Commit Graph

107 Commits

Author SHA1 Message Date
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 58e16414e0 Add a number of control functions to the Qt python interface 2020-11-20 17:02:33 +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 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 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 ecd23041a4 Don't delete thread in LambdaThread until destructor
* This means a non-self deleting thread can be waited for or queried about still
  after it's completed.
2020-09-04 18:34:28 +01:00
baldurk e5e9a9c94b Use QDoubleSpinBox for partial 64-bit int support. Closes #1952
* Actually creating a 64-bit spinbox is not feasible without constructing it
  almost from scratch due to how much QAbstractSpinBox depends on private
  internals that can't be overridden. Instead use a QDoubleSpinBox with no
  decimals since we don't need the full 64-bit range, and the mantissa of a
  double is enough.
2020-06-30 12:34:52 +01:00
baldurk 72d789e486 Add necessary padding in buffer formatted between members 2020-05-26 13:52:47 +01:00
baldurk a81994071f Wait for shader viewer background debugging, add cancel button
* Until we properly support background debugging we need to wait for it to
  complete, otherwise the user could close the window and we'd crash.
2020-05-15 20:31:42 +01:00
baldurk 133b8a41b9 Fix handling of column-major matrices in buffer viewer. Closes #1848 2020-04-27 13:46:58 +01:00
baldurk 267798b240 Add boolean vartype 2020-04-24 20:14:48 +01:00
baldurk 97665b2c30 Display resources in shader viewer tooltips properly 2020-04-23 19:14:09 +01:00
baldurk c0e84875f3 Forward signals/slots as well in ForwardingDelegate 2020-03-18 12:02:13 +00:00
baldurk 5e6ec417c1 Add a global font scale option in settings window
* This lets the user override the default application font.
* Unfortunately Qt seems to behave inconsistently with font scaling from the
  system, so we take the font size initially from QApplication::font() (which
  doesn't always pick up the font size) and scale from there. While this might
  cause some font scaling to be lost it does mean at least we have a consistent
  scale, as otherwise you get some text scaling and others not.
2020-02-13 11:01:45 +00:00
baldurk 2916c0f9f7 Update copyright years to 2020 2020-01-06 16:20:45 +00:00
baldurk 27098f8f70 Give our threads debugger-friendly names 2019-12-19 21:50:13 +00:00
baldurk 14d01ff995 Remove support for serialising STL types, remove STL interop 2019-12-16 18:10:32 +00:00
baldurk ff08748238 Ensure all files have trailing new-lines and enforce with clang warning 2019-12-02 20:28:05 +00:00
baldurk e205054317 Add UI support for GPU typed pointers in buffers 2019-11-29 13:53:44 +00:00
baldurk b3979262a5 Replace FormatElement with ShaderConstant/ShaderVariableType
* FormatElement is now a static BufferFormatter class to help generate and parse
  buffer formatting strings
2019-11-29 13:53:44 +00:00
baldurk 324b96c977 Remove FormatElement::byteSize(), move to ResourceFormat 2019-11-29 13:53:44 +00:00
baldurk 00170e2ec3 Make GetVariants a free function taking interpreting format directly
* We also store the format in BufferElementProperties for the buffer viewer
  since we'll later remove the ResourceFormat stored in FormatElement
2019-11-29 13:53:44 +00:00
baldurk f046423664 Split buffer-centric properties out of FormatElement 2019-11-29 13:53:44 +00:00
baldurk 6d40bbb783 Add experimental wayland support. Refs #853
* This is only lightly tested and may break heavily. It is disabled by default
 and must be explicitly enabled.
* In particular this is only known to work for Wayland use at capture time.
 Wayland on replay is still unsupported. Known issues include: EGL pbuffer
 surfaces are not implemented on Wayland, Wayland cannot get window dimensions,
 and there are hangs/failures with GL and vulkan presentation with Wayland.
2019-09-02 15:02:27 +01:00
baldurk 51c50e0da3 Localise addressing mode state display for GL
* On GL addressing modes are called wrap modes, and the wrap value is then known
  as repeat. If we don't 'localise' this then it can be confusing to show that
  it is "Wrap".
2019-05-17 16:32:55 +01:00
baldurk 3d2fa8cd3e Optimise RichResourceText to special-case for single ResourceId text
* Most cases don't have other text together with a ResourceId, so handle an
  isolated ResourceId specially and manually render it.
* Further work - we could cache the name the same way as the RichResourceText
  does. So far it doesn't seem to appear on profiling.
2019-03-29 17:48:15 +00:00
baldurk e2bb45fd8f Restore removed LastCaptureExe saving last exe selected. Closes #1318 2019-03-25 15:12:55 +00:00
baldurk 86ff87863e Update copyright years to 2019 2019-02-01 18:32:13 +00:00
baldurk f39be022a3 Satisfy strange Qt thread-ownership requirements around QProcess objects 2019-01-11 16:03:35 +00:00
baldurk d265a14a45 Change renderdoccmd to be a console program on windows.
* This means it outputs natively/properly to stdout/stderr and its output can be
  redirected with pipes.
* It does mean we need to be very careful whenever it's run internally to not
  pop up a command window, which happens by default.
2019-01-09 16:27:15 +00:00
baldurk ce88558a7c Refactor RDTreeWidgetDelegate into RichTextViewDelegate that is reusable
* This allows us to add rich text support much more easily into other itemviews
  like RDTableView.
* We set it up for debug messages so that resource links in debug messages can
  be linked.
2018-12-17 17:10:34 +00:00
baldurk 94dfb9890b Allow registering window, panel and context menu items with callbacks 2018-10-23 14:23:12 +01:00
baldurk 5472319025 When opening buffer textures, auto-generate a reasonable buffer format. 2018-10-11 11:09:36 +01:00
baldurk cbcfe85d97 Use natural human sort for resources in resource inspector. Refs #1034 2018-08-03 16:52:13 +01:00
baldurk 4561b55464 Persist a default browse directory for file dialogs, if none is provided
* This provides a slightly more sensible default than the application working
  directory.
* The default is shared across all dialogs and open/save.
2018-06-15 19:40:54 +01:00
baldurk 082ab4d75d GUIInvoke takes a QObject* to avoid callbacks after object lifetime
* The GUIInvoke object takes a QObject, and uses QPointer to check that
  it hasn't been deleted when the callback fires. This prevents delayed
  callbacks from executing after the object has been deleted and
  crashing.
* In most cases the pointer is just 'this'.
2018-05-08 11:54:34 +01:00
baldurk 52af0722ee Add a 'human formatting' function for special-case/heuristic display
* For unsigned integers this notices UINT16/32/64_MAX and displays as
  a text string for easier consumption.
* Also for numbers over a given threshold we display them as hex instead
  of decimal.
2018-04-26 12:31:05 +01:00
baldurk 048d2c4f4e Bring RenderDoc window to foreground when event is selected from RGP 2018-04-25 19:10:52 +01:00
baldurk 4a2242f0a1 Make checkerboard colours update immediately when theme changes 2018-02-21 14:29:36 +00:00
baldurk 9f87e6e013 Add a function to reveal a file in the platform's external file browser 2018-02-07 16:07:08 +00:00
baldurk e305029ddd Update copyright years to 2018 2018-01-01 17:55:29 +00:00
baldurk 764b39a23c Add update checking system to Qt UI
* This only runs on windows - on other platforms we rely on system
  distribution or user local builds.
2017-12-19 17:31:32 +00:00
baldurk 203f6b5255 Silence some warnings about casting from one enum type to another
* Reported by Coverity Scan - I don't think any of these were actually
  a problem since the enum definitions all matched.
2017-11-22 19:11:19 +00:00
baldurk 17c2eb37ef Accept a const QWidget* in RichResource functions 2017-11-21 16:56:32 +00:00
baldurk 32a74e20e1 Extract out most code for text-with-ResourceId-links from RDTreeWidget
* The RDTreeWidget items still use this code, but it can now be reused
  on other widgets like RDLabel.
2017-11-21 14:45:22 +00:00
baldurk e399365ba2 Add simple utility functions for serialising QVariantMap to/from JSON 2017-11-17 16:30:57 +00:00
baldurk 200f0799a4 Generate clickable links to resource inspector in RDTreeWidget 2017-11-17 16:30:56 +00:00
baldurk 7c8628b237 Centralise resource naming with capture context to allow customisation
* We remove the now unneeded name fields in buffer/texture descriptions
  and some of the pipeline state structs.
* A single function will give the human-readable name for a resource id.
  This will look up a custom set of renames, on top of the names from
  the resource descriptions.
2017-11-17 16:30:53 +00:00
baldurk bace05d926 Split out code to populate RDTreeWidget with structured data 2017-11-17 16:30:51 +00:00