baldurk
a02741381b
For convenience expose InvokeOntoUIThread directly from CaptureContext
...
* This can be useful in python scripts and it's odd to have to go via the
MiniQtHelper just for this.
2026-08-13 17:46:46 +01:00
baldurk
2d0ba78a49
Add a function to fetch the texture display config from texture viewer
2026-08-13 17:46:46 +01:00
baldurk
7d2477026a
Add TextureViewer.GetChannelVisibility that returns a tuple
...
* This is more natural to access and use from python. The old function could
probably be removed but since we also changed the name we'll keep it.
2026-08-13 17:46:46 +01:00
baldurk
3f653cfbf2
Remove RENDERDOC_GetDefaultCaptureOptions, initialise in constructor
2026-08-13 17:46:46 +01:00
baldurk
e3b0fa0a24
Add UI thread invokers for all windows
...
* This is necessary as they expect to be run on the UI thread, but can be
fetched from python scripts running on the python script thread. We block
invoke over to the UI and suspend python's GIL to avoid deadlocks.
2026-08-13 17:46:46 +01:00
baldurk
db75eec620
Expose capture connection windows to python scripting
2026-08-13 17:46:46 +01:00
baldurk
e6cd4d2e98
Add an entry to the recent files list for unsaved/temp recovery script
2026-08-13 17:46:45 +01:00
baldurk
782e7101e6
Improve formatting of function tooltips
2026-08-13 17:46:45 +01:00
baldurk
b83fabce3a
Try to patch in 'pass' instead of commenting to preserve scopes
2026-08-13 17:46:45 +01:00
baldurk
21ebe7e6cc
When reloading an extension send errors to its output channel
2026-08-13 17:46:44 +01:00
baldurk
16a24406b2
In python extensions, set pyrenderdoc global before calling register()
2026-08-13 17:46:44 +01:00
baldurk
c97850e39b
Allow customisation of VS Code executable
2026-08-13 17:46:44 +01:00
baldurk
ca0ac6157a
Fix some issues with reference counting on python objects
2026-08-13 17:46:44 +01:00
baldurk
c95a69c8a1
Returning const arrays forces a copy
...
* This doesn't cover all cases but helps with 'pythonic' cases where a list
returned from a function should be expected to be mutable. Modifying direct
'members' can still modify through const.
2026-08-13 17:46:43 +01:00
baldurk
88782bea97
Use reflection script for autocomplete and help in python shell
...
* Also add syntax checking via parse attempts.
2026-08-13 17:46:43 +01:00
baldurk
8a86b754f6
Generate autocomplete tooltips inside python reflector
2026-08-13 17:46:43 +01:00
baldurk
b9595f3685
Handle forward-referenced string return annotations
2026-08-13 17:46:43 +01:00
baldurk
09c036bd36
Embed and initialise reflection script in python context
2026-08-13 17:46:42 +01:00
baldurk
be3d34fb93
Add support for aliasing modules when processing reflection
...
* This is a little specific to us, but when we see references to a `renderdoc`
module etc we want to be able to look up the generated stubs instead as they
have better type hints for processing.
2026-08-13 17:46:42 +01:00
baldurk
64645aa9d6
Add autocomplete helpers for members and function calls
...
* This requires a small quasi-hack for tracking user defined function calls
while looking up types.
2026-08-13 17:46:42 +01:00
baldurk
e0ca14d55a
Add a helper to figure out which function call and argument we're in
2026-08-13 17:46:42 +01:00
baldurk
575d8ed853
Add a function to figure out the trailing subexpression in an expr
...
* This is what will be used for autocompletion at a cursor point
2026-08-13 17:46:42 +01:00
baldurk
1b5ba59336
Return the correct type for list comprehension targets
2026-08-13 17:46:42 +01:00
baldurk
d7c3371777
Add a helper function that replaces contents of any strings with "xxx"
2026-08-13 17:46:42 +01:00
baldurk
6a2fca967c
Add a helper to get the friendly name for a type
2026-08-13 17:46:42 +01:00
baldurk
6b85e503fe
Add testing for type checking
2026-08-13 17:46:42 +01:00
baldurk
e7845446db
Add a query to pull the type of a given location
2026-08-13 17:46:41 +01:00
baldurk
f090436670
Determine best-effort type information for AST nodes
...
* This is not perfect but does a good enough job for most common cases.
2026-08-13 17:46:41 +01:00
baldurk
e57d9db9c4
Process scope declarations and identifiers in AST tree
...
* We don't generate type information yet, _get_type is stubbed out.
2026-08-13 17:46:41 +01:00
baldurk
b2b46e7e7c
Add structs for tracking identifiers and scopes
2026-08-13 17:46:41 +01:00
baldurk
08369056d3
Add python script for autocompletion parsing
...
* This tries to ast parse source that may contain an error.
* We don't try to fully error recover from unlimited problems, but a single
statement that is being edited can be tolerated by commenting out lines around
it
2026-08-13 17:46:41 +01:00
baldurk
23ca2cf053
Show syntax errors when editing in python script editor
2026-08-13 17:46:41 +01:00
baldurk
02ead51303
Add a status entry showing loaded python extensions & debugger status
2026-08-13 17:46:40 +01:00
baldurk
3c6dfd23b4
Add a drop-down for the script output panel to switch context
...
* By default we still display all messages, but this allows users to switch to
just seeing the output from one extension if desired.
2026-08-13 17:46:40 +01:00
baldurk
768d8fa615
Add a static context for connecting Qt signals for python extensions
2026-08-13 17:46:40 +01:00
baldurk
b1f0b9d310
Flush output before an exception
...
* We buffer output to avoid spamming huge numbers of signals especially when
single lines can be many write calls. This means if an exception is processed
immediately after a print the output from the print may come after the
extension.
2026-08-13 17:46:40 +01:00
baldurk
229c4c8746
Avoid polluting globals with completion objects
2026-08-13 17:46:40 +01:00
baldurk
60b989f2b7
Give extensions their own OutputRedirector object to identify them
2026-08-13 17:46:40 +01:00
baldurk
3ff393c91f
Add option to launch/wait for debugger on python contexts
2026-08-13 17:46:40 +01:00
baldurk
3dfd829331
Initialise debugpy on a thread to reduce startup time
2026-08-13 17:46:40 +01:00
baldurk
d71827d6a1
Load debugpy when possible to allow python debugging in-program
2026-08-13 17:46:39 +01:00
baldurk
9fc3c3cdcd
Use sys.settrace instead of PyEval_SetTrace for better compatibility
2026-08-13 17:46:39 +01:00
baldurk
e5f395497c
Allow custom python folder to contain platform-subfolders
...
* This is not the default python layout but is convenient for sharing the
standard library .zip and include folder with separate binary folders per-
platform. The layout mirrors what we include in the repository.
2026-08-13 17:46:39 +01:00
baldurk
7e11dc9cc5
Allow loading a custom PySide2 with a customised python location
...
* This is expected to be in a pyside\ subfolder, with an organisation matching
our default setup.
* We also now copy the shiboken2 python module (if it exists) as required by new
pyside2 versions.
2026-08-13 17:46:39 +01:00
baldurk
965d788fe5
Add a settings window entry to add extra python stubs paths
2026-08-13 17:46:39 +01:00
baldurk
26a84363b8
Embed stubsgen.py and automatically generate stubs into user folder
...
* We create both a stubs folder for each specific version, and a 'latest' that
is updated by newer RD versions.
* For development, the stubs will be regenerated any time the git commit hash
changes for development builds.
2026-08-13 17:46:39 +01:00
baldurk
a23ee5f526
Change documentation for callbacks to use Callable[]
2026-08-13 17:46:38 +01:00
baldurk
7567cc11c9
Fix GC collection of python contexts
2026-08-13 17:46:38 +01:00
baldurk
63b38ef8b4
Encode information for ASTC/PVRTC blocks in ResourceFormat
2026-07-27 11:22:02 +01:00
baldurk
4edf26d6f7
Choose native VS toolset per version as with SDK version
2026-07-02 16:24:42 +01:00