Commit Graph
17228 Commits
Author SHA1 Message Date
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 e032466be2 Give more explicit API reference titles to python doc pages 2026-08-13 21:05:12 +01:00
baldurk 1292134b47 Add detailed per-topic writeups of relevant areas for python scripts 2026-08-13 21:05:11 +01:00
baldurk ed38da72ab Add writeups of each example 2026-08-13 21:05:11 +01:00
baldurk ec5cd1f049 Add new python examples, also available embedded into UI 2026-08-13 21:05:11 +01:00
baldurk 11b83f2272 Remove old python documentation, ready for replacement 2026-08-13 21:05:11 +01:00
baldurk 2654224fb5 Clarify ResourceUsage.Unused docstring to be more explicit 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 eb27bd34bf Rename python shell to python scripting window in docs 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 8ca1aa2c8d Expose memory bindings for buffers/textures on Vulkan and D3D12
* This only applies to explicit memory binding APIs - so D3D11 and GL are
  excluded. On D3D12, committed resources will not have anything listed here.
2026-08-13 21:05:10 +01:00
baldurk d4130ce42a Enable nitpicking in sphinx documentation build and fix some broken refs 2026-08-13 17:46:49 +01:00
baldurk 173510cc8d Re-organise in-application API docs to have sections & better type docs
* We create proper docs for all the types we reference, some were omitted or
  implicit as 'notes' in parameters.
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 91cf34e4bd Add cmake option to force a particular python version 2026-08-13 17:46:48 +01:00
baldurk d6c61f28d4 Rename legacy parameter name to be more correct 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 7a1233e17e Fix some python warnings in docs config & docstring checker 2026-08-13 17:46:48 +01:00
baldurk 34a45ed73d Handle DOS newlines in ASCII rdc file sections 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
baldurk 950568fb8f Rename previous/next to previousAction/nextAction in ActionDescription
* swig internally creates 'next' member which we normally want to avoid, so
  prevent shadowing here by using a distinct name.
2026-08-13 17:46:47 +01:00
baldurk 40945e6e8a Explicitly note that MiniQtHelper callbacks are optional 2026-08-13 17:46:47 +01:00
baldurk 61e21aa7b5 Fix incorrect reference in docstring 2026-08-13 17:46:47 +01:00
baldurk a42d8ba2dd Don't push blank lines into python REPL history 2026-08-13 17:46:47 +01:00
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 00159dafac Fix overload documentation for AsyncInvoke in replay manager
* Python can't properly document fully independent overloads, only default-
  parameter type overloads. Moving the tag to last as an optional parameter
  means we can eliminate the different variants.
* For cleanliness in C++ code we make an internal variant that swaps the
  parameters, since it is much cleaner to have a lambda callback as the last
  parameter.
2026-08-13 17:46:46 +01:00
baldurk 6e2069ec54 Add fallback logic to make AddDockWindow place panels somewhere
* We also handle the main window being passed in as the reference - since it's
  the one widget which isn't a child of a docking system itself.
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 7806d1557d Rename CaptureDialog::TriggerCapture to Launch as better naming 2026-08-13 17:46:45 +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 434cb575a4 Call correct function for custom filters with completers 2026-08-13 17:46:45 +01:00
baldurk 782e7101e6 Improve formatting of function tooltips 2026-08-13 17:46:45 +01:00
baldurk f02fbd7ffa Fix cases where function tooltip would stick around too long 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 4f3dab116b Properly update docstrings with optional/default parameters 2026-08-13 17:46:45 +01:00
baldurk ce8941150f Don't print overload per optional parameter in sphinx documentation 2026-08-13 17:46:45 +01:00
baldurk 87825d3d64 Handle and check for default values in docstrings for verify-docstrings 2026-08-13 17:46:45 +01:00
baldurk 567b0228aa Call OnCaptureClosed for capture viewers before resetting capture info 2026-08-13 17:46:45 +01:00
baldurk cd79225daa Call OnSelectedEventChanged() on new capture viewers 2026-08-13 17:46:44 +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 4baf001be9 Prevent tooltips from getting focus even with sloppy focus 2026-08-13 17:46:44 +01:00
baldurk 7fab2e0e0a Add a forwarding ReplayController wrapper for python that auto invokes 2026-08-13 17:46:44 +01:00
baldurk 10272fa35b Make most extension json fields optional
* We require `extension_api` and `version` fields in case needed for future
  compatibility
2026-08-13 17:46:44 +01:00
baldurk a665def9d9 Add a simple wizard to create a new empty extension 2026-08-13 17:46:44 +01:00