45 Commits

Author SHA1 Message Date
baldurk 8adde662fd Save target of clear calls that don't clear currently bound targets
* This prevents the UI from showing confusing results when the currently
  bound state doesn't match what's being cleared.
2017-07-17 11:33:50 +01:00
baldurk ac885b1882 Fix handling for a couple of cases where we need device pixel co-ords
* When interacting with the C++ UI we have to use device pixels, so
  multiply/divide by the device pixel ratio.
2017-06-19 16:17:20 +01:00
baldurk 3bd6adddc8 Implement right-click-to-toggle on channels buttons 2017-05-10 17:20:40 +01:00
baldurk ceb73b85d9 Rename ILogViewerForm to ILogViewer 2017-04-18 14:57:48 +01:00
baldurk 6930841705 Rename ReplayRenderer to ReplayController
* It's not a renderer, it's an interface to controlling the replay and
  any 'renderer' type work actually happens in ReplayOutput.
2017-04-18 14:57:47 +01:00
baldurk 094c4164dc Refactor qrenderdoc to provide stable, clean and deliberate API
* Note, this API is still in-flux and beta, so there may still be some
  more changes before it's 'stable', and even then it will still be
  subject to some amount of change.
* This API is then exposed to python via SWIG bindings and hides
  internals that don't need to be visible, and means the actual API is
  easier to work with.
* We also use this API to reduce inter-dependencies between different
  windows that need to interact with each other at a high level.
* The naming is python/standard RenderDoc TitleCase method names, not
  Qt style camelCase methods.

# Conflicts:
#	qrenderdoc/Windows/PipelineState/D3D11PipelineStateViewer.cpp
#	qrenderdoc/Windows/TextureViewer.cpp
2017-04-18 14:57:43 +01:00
baldurk 0ad5709df3 Remove poorly chosen 'Fetch' prefix from a few data structures.
* This goes all the way back to the first iterations where these were
  the only structures and 'Fetch' referred to them returning data from
  the core code to the UI.
2017-04-18 14:57:36 +01:00
baldurk d40fc8471d Change API enums to enum class, remove now redundant prefixing
* This gives a little nicer syntax, a bit better type safety, and also
  reflects better for SWIG bindings. Overall it's a minor change but
  better.
* We don't update the C# UI at all, since it's soon to be removed and
  not worth the effort/code churn.
* For now so we're ABI compatible with C#, all enums are uint32_t, but
  that is an obvious optimisation in future to reduce struct packing.
* We avoid 'None' as an enum value, because it's a reserved word in
  python so will cause problems generating bindings.
2017-04-18 14:57:33 +01:00
baldurk fbae19f622 Add custom shader handling to texture viewer 2017-02-14 19:14:52 +00:00
baldurk 8630f82db3 Update shader viewer to support editing and debugging of shaders 2017-02-10 21:48:50 +00:00
baldurk 354a2707ae Avoid copying large structs, prefer to pass by reference 2017-02-10 21:48:46 +00:00
baldurk 4d8e799a0e Add pixel history window 2017-02-09 23:21:45 +00:00
baldurk 2285b209c3 Access CaptureContext & RenderManager by reference, not pointer
* Neither of these can or should be NULL so enforce it explicitly.
2017-02-09 19:28:24 +00:00
Alex Smith 6e2fc42cbd qrenderdoc: Show currently selected event in the API inspector
Currently, selecting an event with children (e.g. vkCmdExecuteCommands)
in the event browser will cause the API inspector window to show the
final child event, rather than the event itself. This behaviour makes
sense everywhere else: selecting an event with children shows the state
after all children have completed.

However, for the API inspector, we want to be able see API calls for
the parent event when it is selected rather than those of its last
child, particularly in the case of vkCmdExecuteCommands which may have
other API calls leading up to it.

To allow this, distinguish between the "current event" and "selected
event". For an event with children, the former refers to the last
child, while the latter refers to the event itself. ILogViewerForm now
has two separate event callbacks for when either one changes.

The API inspector now makes use of the selected event, while everything
else continues to use the current event.
2017-01-14 20:23:51 +00:00
baldurk 030cbfde9a Batch update copyright years everywhere 2017-01-06 12:13:31 +00:00
baldurk bb2f3a205c Move common Qt utility functions & JSON I/O together in a single place 2016-11-09 13:23:53 +01:00
baldurk c5973d1ed6 Add centralised reset function for restoring to clean state 2016-10-12 16:54:14 +02:00
baldurk 791599b48c Cache texture lookup and only update whenever it changes 2016-10-12 13:24:14 +02:00
baldurk f0c359b329 Remove include guards and change to #pragma once 2016-10-11 21:38:16 +02:00
baldurk db5bdbb05e Add range histogram 2016-10-11 18:33:37 +02:00
baldurk 2507634df9 Add filterable texture list to texture viewer 2016-10-10 18:48:38 +02:00
baldurk a1e9554e66 Implement the ctrl-g texture goto popup 2016-10-10 16:41:48 +02:00
baldurk 3a772f26ce Implement locked texture tabs and partially complete event usage popup 2016-10-10 13:52:00 +02:00
baldurk 3ec1be62ff Paint custom render widgets properly without output, recreate as needed 2016-10-07 19:51:05 +02:00
baldurk 63b92f76c8 Pass IReplayRenderer to INVOKE_MEMFN calls 2016-10-07 19:51:03 +02:00
baldurk e32e26eb83 Save texture viewer dock layout & background colour in persist data 2016-10-07 15:58:50 +02:00
baldurk b96d49190c Avoid naming manually connected slots on_x_y() 2016-10-07 15:58:45 +02:00
baldurk 2be29d9229 Move Following struct declaration to header, add per-texture settings 2016-10-05 20:20:19 +02:00
baldurk da992e9c3e Add following and populating thumbnails
* This is buggy - the UI seems to hang at random until you switch away
  and back, some event I guess is stalling the queue somehow but it's
  still pumping events.
2016-10-04 19:54:35 +02:00
baldurk 0b6b6b3e86 Add MIT License comment to the head of all source files 2016-10-04 19:54:31 +02:00
baldurk e91634004f Rename Core to CaptureContext 2016-10-04 19:54:31 +02:00
baldurk c8015b9e99 Populate mip/slice dropdowns and allow selecting which is visible 2016-10-04 19:54:23 +02:00
baldurk 97130b25d8 Add selection of background colour (or checkerboard pattern) 2016-10-04 19:54:22 +02:00
baldurk 59c5267e24 Set up remaining widgets etc in texture viewer 2016-10-04 14:40:07 +02:00
baldurk eaed889e62 Implement zooming and scaling 2016-09-30 18:18:07 +02:00
baldurk 827815d34e Implement scrolling the texture 2016-09-30 16:20:24 +02:00
baldurk 96fce23e69 Update the texture details part of the status bar 2016-09-30 14:24:12 +02:00
baldurk b8910141eb Set up the texture viewer status bar text 2016-09-30 10:50:29 +02:00
baldurk 5f28b745a2 Format code according to newly added clang-format
_  /)
                 mo / )
                 |/)\)
                  /\_
                  \__|=
                 (    )
                 __)(__
           _____/      \\_____
          |  _     ___   _   ||
          | | \     |   | \  ||
          | |  |    |   |  | ||
          | |_/     |   |_/  ||
          | | \     |   |    ||
          | |  \    |   |    ||
          | |   \. _|_. | .  ||
          |                  ||
          |repository history||
          |                  ||
  *       | *   **    * **   |**      **
   \))ejm97/.,(//,,..,,\||(,,.,\\,.((//
2016-05-22 19:41:53 +02:00
baldurk 70b99a4412 Remove antiquated 'multiple frames in one capture' support.
* Cleans up the code a bunch, this support is unlikely to ever return
  and if it does it will need a rethink anyway.
2016-04-13 00:28:09 +02:00
baldurk f9b69b1002 QRenderDoc: Fetch texid to display correctly for Present() calls 2016-02-07 18:44:26 +01:00
baldurk 332c5e4289 Implement a rather hacky PickPixel implementation 2016-02-07 18:38:46 +01:00
baldurk 97920b7b31 re-indent Qt code to match rest of C++ code 2015-07-10 16:38:41 +02:00
baldurk a405ee13ca Loads of changes, fix thread & invoke helpers, skeleton of Core working
* GUIInvoke helper changed to use QMetaObject::invokeMethod which works
  on threads better.
* LambdaThread helper class now has a thread member, it doesn't derive
  from thread (this seems to be recommended practice).
2015-07-10 16:38:34 +02:00
baldurk 56c4b23c7a Organise source files a bit more, add Core class 2015-07-10 16:38:26 +02:00