Commit Graph

672 Commits

Author SHA1 Message Date
baldurk fa1b098cc4 Check for python3-config or python3.x-config binary names. Refs #647 2017-06-12 12:11:14 +01:00
baldurk 2454863b80 Implement CSV export in constant buffer previewer. Refs #646 2017-06-12 10:34:42 +01:00
baldurk 472bb820b7 Remove unused events in RangeHistogram 2017-06-12 10:34:17 +01:00
baldurk 348bfbce01 CMake recommends finding PythonInterp before PythonLibs 2017-06-09 21:38:52 +01:00
baldurk ab96b05b53 Remove mistaken double assignment 2017-06-09 19:38:23 +01:00
baldurk 28c1aee05b Add virtual destructor for CaptureContextInvoker 2017-06-09 19:36:57 +01:00
baldurk f6399609f9 Add headers for mouse and key events being used 2017-06-09 19:36:46 +01:00
baldurk 6d02b16935 Add missing override specifier 2017-06-09 19:36:29 +01:00
baldurk ea85b5e366 Fix stub to match changed signature 2017-06-09 19:36:20 +01:00
baldurk a292838f43 Add a custom tooltip to display elided data in RDTreeViews 2017-06-09 18:41:21 +01:00
baldurk 1574103613 Add click-to-highlight for registers 2017-06-09 17:57:33 +01:00
baldurk f3926340e6 update toolwindowmanager to 091b80d 2017-06-09 17:32:10 +01:00
baldurk 0cfa8c1eb9 Add variable tooltips to the shader viewer showing float/int/uint values 2017-06-09 17:04:23 +01:00
baldurk 2400f6e11f Add fix to Scintilla to ensure mouse tracking is restored on show
* See: https://sourceforge.net/p/scintilla/bugs/1948/
2017-06-09 17:03:24 +01:00
baldurk 0b1c3725b9 Add a fallback path for opaque qwidgets if pyside2 isn't compiled in
* Even if we don't have pyside2 to treat qwidgets as full objects and
  access their methods and data, we still need to be able to pass around
  the QWidget* as an opaque pointer to be able to use the API properly.
* This change falls back to just using SWIG's default opaque pointer
  wrapping and unwrapping when pyside2 isn't available.
2017-06-09 17:02:09 +01:00
baldurk 8e423f4c76 Add some parameter checking to the capture context interface 2017-06-09 17:00:44 +01:00
baldurk 1cc2c22195 Invoke CaptureContext function calls onto UI thread, from python thread
* Any work that might use Qt needs to happen on the UI thread, so when
  running a python script on the python thread we need to invoke across.
  We wrap the main ICaptureContext interface to block invoke onto the UI
  for any function calls that aren't just returning internal data.
2017-06-09 17:00:28 +01:00
baldurk 21836c240d Don't crash on NULL pointers being dealloc'd
* The error handling code will be OK if a NULL parameter was passed in
  but during cleanup it will go through tempdealloc, so we need to check
  that the pointer is actually valid.
2017-06-09 16:57:33 +01:00
baldurk 27ae30aaa3 Print messages to Qt logger from command line python scripts 2017-06-09 16:56:47 +01:00
baldurk 7fe267d548 Only add log viewer at the end of constructors, so the window is ready
* Otherwise if OnLogFileLoaded gets called while adding the log viewer
  the window might be partially constructed and crash.
2017-06-09 12:08:39 +01:00
baldurk 2da46640d0 Add watch variables handling to qt shader viewer 2017-06-09 12:06:57 +01:00
baldurk 2319681217 Mark overrided function as override 2017-06-08 21:31:28 +01:00
baldurk 055acb05e1 Fix an unused variable warning with python parameterless callbacks 2017-06-08 21:31:21 +01:00
baldurk 8a59754bf8 Disable save/close capture menu items when there's no capture open 2017-06-08 18:23:23 +01:00
baldurk 199c26adbf Put the MainWindow in charge of handling 'global' type shortcuts
* QShortcut falls down on duplicates. It can have activatedAmbiguously
  events, but these happen in arbitrary order and the shortcuts on
  menu items just swallow the ambiguous activate so it's not useful.
* Instead we just let MainWindow pick up ShortcutOverride events and
  consult a mapping of which shortcuts to use. We can use a smarter
  selection method to choose the more 'local' shortcut if two shortcuts
  that conflict exist.
2017-06-08 18:23:10 +01:00
baldurk 085026aa91 Update toolwindowmanager to f31edfa 2017-06-08 16:35:14 +01:00
baldurk 2f1301e758 Settle on consistent 'capture' name for captured files, dropping 'log' 2017-06-08 16:35:14 +01:00
Peter Gal 4263b55ffa Fix enum flag usages in the qrenderdoc
There are a few places where the logical 'and' operator
was used to check if a given flag is enabled however
that is not the correct operator.

The binary 'and' operator should be used where
the enum acts as a flag.
2017-06-08 08:34:54 -07:00
baldurk ffcbf233d1 Link against python in python modules for now. Refs #639
* This really isn't ideal as it means the python module will only work
  with that specific major.minor version of python, when it could in
  theory work with any python version above 3.2 or so, depending on what
  features are used.
* Since we're not distributing these modules yet though, add this
  linking to support -Wl,--no-undefined.
2017-06-08 14:02:21 +01:00
baldurk 54b9263597 Persist the mesh view's dock layout between sessions 2017-06-03 00:59:57 +01:00
baldurk a4fe376c32 Add column selection popup for event browser and persist column state
* We can add in the Draw # column now, and set up the default state to
  not include the duration column.
2017-06-03 00:53:54 +01:00
baldurk 231c07d390 Make sure to initialise update queueing variable to false 2017-06-03 00:49:16 +01:00
baldurk 63bf0310d3 Fix summing of durations in event browser 2017-06-03 00:46:11 +01:00
baldurk 3b6f63be0d Make event browser columns properly resizable and re-orderable
* Annoyingly although Qt has an internal bool allowUserMoveOfSection0
  which does exactly what we want allowing the tree column to be
  movable, we can't enable it because it's private. So instead we have
  to re-implement section moving ourselves.
* Minor tweak - also made RDTreeWidgets non-movable by default since
  usually we don't want to allow it.
2017-06-03 00:38:02 +01:00
baldurk 0c3dec3b67 Go back to manually drawing PE_PanelItemViewItem in drawBranches()
* There's a messy order-of-operations thing to deal with various
  different themes, as well as a couple of minor problems, but at least
  the highlight and selection bars draw fairly consistently and don't
  leave an ugly gap over the branches.
2017-06-02 17:30:41 +01:00
baldurk 10aa73528d Reset event browser before it's added
* When we add it, if a log is already open that's when we get the
  callback to OnLogFileOpened to initialised. If we close afterwards,
  we'll be in an inconsistent state.
2017-06-01 18:50:14 +01:00
baldurk bf791b7854 Use 20% highlight colour instead of window for hovering on tree widgets 2017-06-01 18:48:05 +01:00
baldurk b311e65dbd Change margins to be a minimum instead of adding them
* The style itself may have added some margins and we don't want to add
  extra margins, just set a minimum.
2017-06-01 18:47:42 +01:00
baldurk 49243c0878 Use a style proxy setting SH_ItemView_ShowDecorationSelected to fill
* This still isn't perfect with some custom style stuff but it's next
  to impossible to get working right. In theory we should manually
  draw PE_PanelItemViewItem in the gap in drawRow() or so to make sure
  we also draw any on-hover highlight over objects, but that doesn't
  seem to work.
2017-06-01 18:28:13 +01:00
baldurk f0116c4c08 Remap topology diagrams to Base/Text palette colours instead of b/w 2017-06-01 15:22:22 +01:00
baldurk 2ddfc40182 Use the palette's lightness for highlighting matching input binds 2017-06-01 14:30:53 +01:00
baldurk fe8c76154f Draw gridlines in WindowText palette color, not just black 2017-06-01 14:23:34 +01:00
baldurk 5c877ae1ae Add default-enabled grid lines to RDTreeView (and so RDTreeWidget) 2017-06-01 14:17:36 +01:00
baldurk 3076b4337b Move size delegate into item margins implemented by RDTreeView 2017-06-01 14:17:00 +01:00
baldurk a30c704e46 Inherit RDTreeWIdget from RDTreeView instead of QTreeView 2017-06-01 14:15:17 +01:00
baldurk 39f2a6d3dc Update toolwindowmanager to 8a1543b 2017-06-01 12:41:12 +01:00
baldurk 26c4284b26 Add new ToolWindowManagerSplitter files to projects 2017-06-01 12:31:29 +01:00
baldurk 2b9f9665f9 Update toolwindowmanager to 9b0b99a 2017-06-01 11:28:40 +01:00
baldurk 59977e47de Use GLSL highlighting for now on vulkan source files
* Later we should pipe through the source language from the SPIR-V and
  use that instead, for the other APIs it's just trivially HLSL/GLSL.
2017-06-01 11:28:38 +01:00
baldurk cbdf9951b9 Style preprocessor commands in HLSL/GLSL 2017-06-01 11:28:38 +01:00