Commit Graph
3184 Commits
Author SHA1 Message Date
baldurk a1b76c231e Improve the workflow for extensions that fail on import 2026-08-28 15:46:23 +01:00
baldurk f5240a4a47 Add missing function implementations to blocking ReplayController 2026-08-28 15:46:23 +01:00
baldurk 81bec684a3 Expose proper capture closing function to python extensions 2026-08-28 15:46:23 +01:00
baldurk 6237238cf7 Put python version in about dialog 2026-08-28 13:18:26 +01:00
Wehrwolfmann 762ec04267 Add Russian translations to the desktop entry 2026-08-28 02:02:50 +09:00
baldurk 61d9aafb1b Set net manager thread to delete itself on close
* Due to the way Qt works, the owning object acts as if it lives on the thread
  which in this case is running an event loop that tries to delete itself.
2026-08-27 17:29:38 +01:00
baldurk 45b5f1ad1d Remove debug print 2026-08-27 16:34:36 +01:00
baldurk fa5af1bf7c Remove extra ) 2026-08-27 15:29:03 +01:00
baldurk d015c0619a Fix race when initialising help context 2026-08-27 15:27:09 +01:00
baldurk 8cccd45e5b More unused lambda captures 2026-08-27 14:33:53 +01:00
baldurk 675484a382 Remove unused lambda capture 2026-08-27 14:12:36 +01:00
baldurk b100e05053 Add autocomplete for python help entry 2026-08-27 13:43:14 +01:00
baldurk 9a2ec4aa19 Use python invoker wrapper everywhere for pyrenderdoc
* This includes in the parameters of extension callbacks.
2026-08-27 12:45:52 +01:00
baldurk 3026718788 Handle an empty title as "Untitled script" in python editor wrapper 2026-08-27 12:44:00 +01:00
baldurk 72db77ae7c Allow inserting tabs at the start of the REPL input
* If there is no non-whitespace input, we shouldn't try to autocomplete
2026-08-27 12:43:22 +01:00
baldurk 928cfcd80a Ensure python compile error exceptions get handled properly 2026-08-27 12:42:57 +01:00
baldurk a95d4d0461 Use titles instead of filenames for script created new editors 2026-08-26 11:37:46 +01:00
baldurk 85075565cd Don't hang onto new extensions item, recreate each time
* Clearing an RDTreeWidget deletes all items in it, so we would either need to
  remove it before clearing or just recreate it. We only need the handle in
  order to check against it when we see clicks
2026-08-24 17:04:14 +01:00
baldurk 1aeac957bd Compile fixes 2026-08-13 23:23:27 +01:00
baldurk da4350a759 Add an example of advanced buffer format/processing 2026-08-13 21:05:16 +01:00
baldurk 8dd7692282 Improve parsing of enums in buffer formatter
* Add a [[flags]] annotation for enums that should bitmask-match, and add a
  member to each interpreted enum value leaf to provide the string name.
2026-08-13 21:05:16 +01:00
baldurk 63e130e72a Handle example editors better - don't treat example name as filename 2026-08-13 21:05:15 +01:00
baldurk e20c2b9985 Expose buffer interpretation helpers to python 2026-08-13 21:05:15 +01:00
baldurk 964ef04526 Fix some cases where type aliases were not used in reflection 2026-08-13 21:05:15 +01:00
baldurk 71f40cef1a Remove any extra typing aliases that were pulled into module dir()s 2026-08-13 21:05:14 +01:00
baldurk 68bb7e1ceb Track our own custom types for user-defined functions/classes
* This lets us track the docstrings of these for better tooltips
2026-08-13 21:05:14 +01:00
baldurk b3710eba3b Fetch & display tooltips for each entry along with autocomplete options 2026-08-13 21:05:14 +01:00
baldurk 586886b3f5 Add custom change to scintilla to query bounds of autocomplete box 2026-08-13 21:05:14 +01:00
baldurk 79ad933913 Avoid accessing possibly deprecated typing members 2026-08-13 21:05:14 +01:00
baldurk 022a5e1438 Change python scripting 'debug' button to just attach, not run 2026-08-13 21:05:14 +01:00
baldurk 810e6a79d2 Run scripts in their place when they are on disk
* We only write the pytmp/script.py for unsaved scripts, so they can be
  recovered.
2026-08-13 21:05:14 +01:00
baldurk e7f0aac008 Don't run syntax checks while a script is running 2026-08-13 21:05:13 +01:00
baldurk bf710530d2 Don't write scripts to temp file, run in their real location
* This means any changes in the external editor/debugger will be reflected
  properly.
2026-08-13 21:05:13 +01:00
baldurk a113dbbda8 Detect crashes during python extension loads and offer to disable 2026-08-13 21:05:13 +01:00
baldurk bb23fbc741 Remove 'always load' extra opt-in for extensions
* If an extension is enabled in the extension manager, it will be loaded by
  default after that until disabled
2026-08-13 21:05:13 +01:00
baldurk 4bd0245975 Move new extension creation wizard to python scripting
* We remove the operations and interactions from the extension manager and leave
  it purely for browsing extensions and enabling/disabling them.
2026-08-13 21:05:13 +01:00
baldurk 650188f32c Expose UI extension management via context menu in project explorer
* Allow reloading and viewing output from context. Also add items for viewing in
  file explorer.
2026-08-13 21:05:13 +01:00
baldurk 14e636d1a5 Don't allow 'run' when editing UI extension files 2026-08-13 21:05:13 +01:00
baldurk 4f07e09d48 Make editor wrapper a true wrapper to allow displaying warnings per-view 2026-08-13 21:05:12 +01:00
baldurk 45d22e3f0d Set font size properly on scintilla editors 2026-08-13 21:05:12 +01:00
baldurk 1416d92b09 Use properties consistently for custom dependency paths on windows
* This removes the (now undocumented) python env vars, and the never documented
  Qt env vars. We add new build script arguments to specify these paths.
2026-08-13 21:05:12 +01:00
baldurk 5b90b75b79 Rewrite python docs & onboarding to be more opinionated
* The docs now explicitly tell people how to write UI scripts, then UI
  extensions, with as quick a start as possible, and go into detail in later
  documents. Use of the python module directly is also not featured prominently
  as this is a rare use-case for casual scripting needs.
2026-08-13 21:05:12 +01:00
baldurk ec5cd1f049 Add new python examples, also available embedded into UI 2026-08-13 21:05:11 +01:00
baldurk 83a80ad9dc Add some notes to main interface docstrings of where they are obtained 2026-08-13 21:05:11 +01:00
baldurk 1bad994e84 Rate limit how often the current line is updated in python shell
* If there's a very tight loop there could be a _lot_ of updates to the point
  where the UI takes longer to redraw than the script does to step a line.
  Updating at 100Hz is still plenty fast.
2026-08-13 21:05:11 +01:00
baldurk d4130ce42a Enable nitpicking in sphinx documentation build and fix some broken refs 2026-08-13 17:46:49 +01:00
baldurk b60f42d8b1 Move find/replace logic out of shader viewer so it can be reused 2026-08-13 17:46:48 +01:00
baldurk 3ea0d7a37d Remove "preferSourceDebug" compile flag, use sourceDebugInformation
* This was previously only relevant for DXBC shaders that could have source
  debug information but didn't prefer source debug unless optimisation was
  disabled. This is inconsistent with how things are handled on SPIR-V and DXIL
  and in general it's considered now that the benefits of debugging in source
  outweigh the problems of debugging optimised code.
2026-08-13 17:46:48 +01:00
baldurk bb4017a965 Add a spellchecking mode for sphinx and fix some typos
* The worst one was Persistant -> Persistent. This involved renaming
  PersistentConfig but the impact of that is considered minimal enough to be
  worth fixing.
2026-08-13 17:46:47 +01:00
baldurk 5e462c5ebe Add type hints to python for class constructors
* We enforce default and copy constructors where possible, this isn't very
  pythonic but we can't use copy.deepcopy on our types.
* The structs that have specialised constructors e.g. FloatVector or Subresource
  also have those documented though we have no way to enforce it.
2026-08-13 17:46:47 +01:00