Commit Graph

2135 Commits

Author SHA1 Message Date
baldurk 6f7e8bb396 Add python interface consistency check that we don't use non-class enums
* These enums are generally not preferred anyway, but they also can't have
  docstrings so can't be checked for *missing* docstrings.
2020-12-05 09:57:40 +00:00
baldurk e2d47fa1a5 Fix compilation of PythonCaptureViewer 2020-12-03 21:14:13 +00:00
baldurk 60409caf8d Make event selection 'soft' blocking instead of hard blocking
* Normally SetEventID is synchronous and blocking, and will stall the UI while
  it is processing. However we can at least pop up a progress dialog and allow
  the UI to function (if not be interactive due to the blocking progress dialog)
  when some other long-running task is delaying the processing on the replay
  thread.
2020-12-03 15:09:29 +00:00
baldurk 6bc4e007a0 Fix C++ invokes being responsible for destroying python callbacks
* If the last refcount on a python lambda/temp function is released when a
  wrapping std::function is destroyed in a C++ invoke, we can't destroy it
  safely. Instead we queue up that decref and process it the next chance we're
  able (which is either when the current execution finishes for a python shell
  execution, or on the next function call which handles extensions).
2020-12-03 14:55:02 +00:00
baldurk 0d1f6e3940 Add helper to invoke back onto the UI thread from the replay thread 2020-12-03 14:17:42 +00:00
baldurk a8a40ca3d6 Add the ability to create spacers, for better layouts 2020-12-03 13:24:56 +00:00
baldurk a176849962 Add some new helpers for managing widgets 2020-12-03 11:24:39 +00:00
baldurk 1e1ac07a07 Allow python scripts to implement and register as ICaptureViewer classes 2020-12-03 10:44:27 +00:00
baldurk f38c4c366d Add a ctrl+enter shortcut in capture dialog to launch the capture 2020-12-02 17:44:47 +00:00
baldurk 9610919c16 Fix copy-paste of rich resource text
* We need to cache to the QString text on demand, which requires a context
  potentially sooner than paint/etc time.
2020-12-02 17:44:46 +00:00
baldurk a34d7b1965 Don't bind Qt signals multiple times for custom paint widgets 2020-11-24 16:29:36 +00:00
baldurk 8d4b45cda3 Fix paramref documentation reference 2020-11-20 18:15:00 +00:00
baldurk efac5ad70a Disable runtime and security checks in development builds
* This provides a decent speed boost and these have never caught any issues
  before. Asan/gflags/valgrind etc do a better job of this when needed.
2020-11-20 17:02:33 +00:00
baldurk 58e16414e0 Add a number of control functions to the Qt python interface 2020-11-20 17:02:33 +00:00
baldurk bd9d88b328 Add missing includes 2020-11-19 17:34:11 +00:00
baldurk 3f5a911483 Refactor CustomPaintWidget to handle widget recreation internally
* This allows us to expose to to python as a easy-to-use "replay output ready"
  widget.
2020-11-19 14:47:11 +00:00
baldurk 1dc1b4d167 Add some profile markers in common hotspots 2020-11-19 14:47:11 +00:00
baldurk ef0b3fe8a1 Add virtual destructor 2020-11-18 19:14:35 +00:00
baldurk 916c431dfa Compile fixes 2020-11-18 19:05:03 +00:00
baldurk 0aefcced95 Add a small interface into Qt widgets to our own python wrapping
* This by no means replaces PySide2, but it allows python extensions to write
  simple UIs without needing to rely on PySide2, which might not be available
  (generally all windows builds have it as well as recent binary linux builds,
  but local windows builds may not and most linux builds probably won't).
2020-11-18 18:21:20 +00:00
baldurk ab2f4e4046 Fix exception handling in wrapped python callbacks 2020-11-18 15:41:20 +00:00
baldurk 91d8c30cd3 Fix python object conversion for NULL QWidgets 2020-11-18 13:11:58 +00:00
baldurk 6320923966 When VB stride is 0 read enough data for any single attribute 2020-11-12 17:04:43 +00:00
baldurk 804fddcdf7 Allow python extensions to be loaded from app folder as well as user
* This will let us distribute extensions with the renderdoc builds.
2020-11-10 13:57:27 +00:00
baldurk d9eab23bd5 Fix clipping when rendering RichResourceText documents 2020-11-09 16:02:48 +00:00
baldurk ab28d102cd Fix bug allowing users to close unclosable texture viewer panels 2020-11-09 12:25:20 +00:00
baldurk 695ffaaf24 When viewing a texture from pipeline state, default to view typecast 2020-10-30 16:28:03 +00:00
baldurk caa8bb5be0 Fix incremental build dependencies in python modules 2020-10-30 16:28:03 +00:00
baldurk bb2a8a431f Ensure we reset any android capture settings on close
* If no capture is loaded after launching a program, the capture settings can
  still be present and cause problems with future launches of applications
  depending on the Android version.
2020-10-29 12:03:27 +00:00
baldurk d397b7fdce Fix nit-picky OSX compile error 2020-10-28 15:08:00 +00:00
baldurk 03b7229bad Support choosing multiview viewport in vertex debugging on vulkan 2020-10-28 13:34:08 +00:00
baldurk 05034e7b57 Ignore deprecated declaration warnings in python modules 2020-10-27 15:15:20 +00:00
baldurk 1ceeb159b7 Add lazy-populating item model for SDObjects
* We also add intermediate paging nodes for large arrays to ease expansions
2020-10-27 15:15:20 +00:00
baldurk 935cb113ed Add new string type rdcinflexiblestr specifically for structured data
* This is a string type which heavily optimises for immutability and minimal
  storage. It only contains one pointer to the string data and always
  reallocates on modify. For compile-time literals it doesn't modify or
  allocate.
* On x64 we use the top bit in a tagged pointer to store a flag of whether it's
  heap or literal, on other platforms it uses a separate field (meaning another
  pointer sized value effectively, including padding).
* This is best for structured data which tends to use a lot of immutable strings
  for type/name information, and only a few for actual string data (which are
  only allocated once and aren't modified after that). Similarly we rarely want
  to know only the size of any of these strings, we want the whole string so not
  explicitly storing the size is not a big deal.
* Overall this reduces SDObject from 128 bytes to 80 bytes.
2020-10-27 15:15:19 +00:00
baldurk c58f3edafa Support lazy-generating structured data objects for large arrays
* For certain very large arrays it can be nice to defer generation of structured
  data until it's needed, since often maybe only a handful of elements may be
  needed (or commonly none at all).
2020-10-27 15:15:19 +00:00
baldurk 394896a3c9 Hide list of children completely in structured data
* This makes it easier to enforce object ownership, as well as gives us options
  for e.g. generating structure data on demand lazily.
2020-10-26 10:24:47 +00:00
baldurk 8a4183ae64 Add missing <QRegularExpression> header 2020-10-23 18:16:42 +01:00
baldurk 3d93b7bb6c Add missing override statements 2020-10-23 18:01:05 +01:00
baldurk 369120cddf Link @1234 type text to EIDs in the comments viewer 2020-10-23 13:57:38 +01:00
baldurk 9779c56333 Ensure edited shaders mark a capture as modified for saving 2020-10-23 13:57:38 +01:00
baldurk 806187f613 Save and load edited shaders as capture modifications
* When a shader edit is loaded with a capture, it's loaded as "pending" and not
  immediately applied.
2020-10-21 14:14:20 +01:00
baldurk 5ccf25c3cb Fix compilation of QTDebug qrenderdoc target 2020-10-16 16:13:30 +01:00
baldurk 42c5ab849e Show dynamically unused slots as unused (italic text) on vulkan pipeline 2020-10-16 16:13:30 +01:00
baldurk 8d647e5584 Avoid recalculating header view sizes when irrelevant roles change 2020-10-16 16:13:30 +01:00
baldurk c2a21a9106 Don't emit redundant change signals when nothing changed 2020-10-16 16:13:30 +01:00
baldurk 7fc06ee77e Fix rendering of selected/highlighted rich resource text 2020-10-16 16:13:30 +01:00
Kevin McCullough e213cfafa9 Modifying the TextureList to use EventBrowser-style chooser. 2020-10-15 22:19:44 +01:00
baldurk bf4d68fb03 Account for D3D11 UAV start slot when displaying bindings 2020-10-13 21:31:16 +01:00
baldurk e1d025e4ef Don't fetch buffer data if it's not yet initialised 2020-10-02 12:53:38 +01:00
baldurk 55c57f7e89 Display stencil values in binary and decimal in tooltips. Closes #2052 2020-10-01 15:56:52 +01:00