Commit Graph

69 Commits

Author SHA1 Message Date
baldurk ae50fa99ee Revamp version tagging, remove ugly suffix on git hash. Refs #571
* Tacking -official onto the git hash was a hack only needed on windows,
  and since we want more information it doesn't scale.
* Instead we track anything we need to know about the version in
  separate variables, like whether it's a stable build or a nightly/
  local build. Or if it's built by a downstream distribution then the
  version number for the downstream build.
2017-04-27 19:47:50 +01:00
baldurk 2eb4a35680 Add a refcount to RemoteManager so it only closes when unused
* We previously were only checking if all lookups had completed before
  self-deleting, but we also need to make sure nothing externally is
  still holding onto the dialog.
2017-04-19 18:29:10 +01:00
baldurk 2a4596e06a Add python shell qt window 2017-04-19 18:03:19 +01:00
baldurk 494086f40d Rename RenderManager to ReplayManager 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 a7ab0d9300 Move capture-file handling functions into a single interface
* This allows us to return complex types like byte arrays or pairs of
  status & render handle.
* Also in future more introspection of the capture file will be possible
  and this provides an easy extension to that without adding new entry
  points.
2017-04-18 14:57:47 +01:00
baldurk bc79e2296f Make EnvironmentModification struct and pass around array directly
* The old 'store in opaque void*' is kept as entry point wrappers only
  for the C# UI.
2017-04-18 14:57:47 +01:00
baldurk f6c045f473 Refactor public interface to be less strict C and more python friendly
* Generally this means removing ref out parameters and instead returning
  values. In a couple of cases we will want to avoid copies in future
  either by returning const references (e.g. to the pipeline state which
  is immutable).
* At the same time, some pointless bool return values that were always
  true and didn't indicate errors have been removed. They can be added
  again if an error condition comes back.
* Some free functions still have out parameters as C linkage doesn't
  allow returning user types by value.
* The C# UI still invokes into C wrappers for all the C++ classes, which
  handle taking the return value and doing a copy into an out parameter
  still for compatibility.
2017-04-18 14:57:46 +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 3e74683a70 Fix qrenderdoc compilation on Win32 2017-04-18 14:57:40 +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
Dimitris Kapnopoulos d3faa58a78 Added Tips Dialog. Changed Tips_SeenFirst to Tips_HasSeenFirst 2017-03-21 04:09:47 -07:00
baldurk c89bcfbb7a More robust isolation of the git commit hash, without special cases 2017-03-10 13:27:59 +00:00
baldurk f76a4cc339 Don't launch blocking execute call on UI thread, pop up progress ticker
* This most commonly happens launching an Android program that takes a
  while to launch, or if you're launching a program with the delay for
  debugger option set.
* Instead of the whole UI hanging, you'll get a progress dialog to
  appear while it's waiting.
2017-02-24 17:34:02 +00:00
baldurk dc46612d37 Remove file before copying so we can overwrite 2017-02-20 14:48:46 +00:00
baldurk 8ffcab84d9 Add self-hosting tool menu items on windows 2017-02-17 12:26:49 +00:00
baldurk 1fe36fc90f Connect up the simple help menu entries for opening websites/docs/log 2017-02-13 19:20:24 +00:00
baldurk f8ed197318 Add static resources collection with pre-constructed QPixmaps & QIcons
* Apart from making the code cleaner when accessing them, creating these
  from strings can be slow if you do it often enough (e.g. once per
  resources for action/action_hover in pipeline state view).
2017-02-13 19:20:22 +00:00
baldurk 5588686fd7 Mitigate remote probe thread delaying full shutdown of program 2017-02-09 23:22:09 +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
baldurk 3d2c4a5b32 Correct checking for remote support (it was stubbed out without a TODO) 2017-02-09 19:28:23 +00:00
baldurk e1d180246c Add dialog for both managing remote hosts (add/remove) and attaching 2017-02-09 19:28:23 +00:00
baldurk 47be248cad Don't run slow blocking remote probes on UI thread 2017-02-09 19:28:23 +00:00
baldurk 9e47ed53b5 Move resources.qrc into Resources/ folder 2017-02-09 19:28:22 +00:00
baldurk 4ec3b4dce3 Add support for remote context capture and replay, including Android
* Still missing is remote file/folder browsing, and managing remote
  hosts adding/removing etc.
2017-02-09 19:28:21 +00:00
baldurk 7c422e3651 Add Load/Save functions around Deserialize/Serialise in config
* This lets us do some processing before saving and after loading
  regardless of the path the load/save takes.
2017-02-09 19:28:21 +00:00
baldurk f4bd51fc21 Revamp progress dialogs to abstract away most of the handling 2017-02-09 19:28:20 +00:00
baldurk 5969160712 Add debug messages refresh when new messages are detected at runtime 2017-02-09 19:28:20 +00:00
baldurk cf1ef45a5e Add settings dialog for Qt 2017-02-03 20:11:06 +00:00
baldurk 923dfbd6fb Add Qt version of statistics viewer 2017-02-03 20:11:06 +00:00
baldurk 346550e012 Add debug message view to Qt 2017-02-03 20:11:04 +00:00
baldurk e29fb14ade Fix empty pixmap for debug messages alternating icon 2017-02-03 11:57:56 +00:00
baldurk 860aab1f0f Add save log menu handler 2017-02-03 11:57:16 +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 4ce3c31fef Add un-finished work in progress mesh buffer viewer 2016-11-25 17:05:58 +01:00
baldurk a2d40f8061 Add constant buffer previewer for qrenderdoc 2016-11-25 14:17:20 +01:00
baldurk 6ef7dbb356 Add pipeline state viewer and implement vulkan viewer
* Minus interactions with as-yet-unimplemented windows like buffer and
  shader viewers.
* Also missing HTML export
2016-11-24 19:47:05 +01:00
baldurk e13b6277ed Add API Inspector 2016-11-21 19:33:19 +01:00
baldurk aa8139fcb4 Add checks of any current captures or temp logs when closing main window 2016-11-21 17:59:01 +01:00
baldurk 46a86dce92 Add utility function to raise a toolwindow 2016-11-21 17:58:00 +01:00
baldurk 23d8c12457 Add status message about log warnings/errors 2016-11-21 17:38:02 +01:00
baldurk bce0b31060 Iterate recent item lists in reverse order, most recent item is last 2016-11-21 17:37:28 +01:00
baldurk 60f83c1b5e Set icons for child windows 2016-11-21 17:04:08 +01:00
baldurk 86c9742309 Let capture context manage singleton window panes 2016-11-14 15:20:51 +01:00
baldurk c39fe4a6c0 Add some TODO notes 2016-11-14 14:21:23 +01:00
baldurk d2c55377f3 Add live capture connection dialog 2016-11-14 14:12:51 +01:00
baldurk b509599a54 Fix a clang-format issue that somehow got in past my pre-commit hook... 2016-11-11 20:56:13 +01:00
baldurk 097b93ce9c Default to deleting windows from ToolWindowManager when closed 2016-11-11 20:35:59 +01:00
baldurk 3290dd1448 Move version information to public API so that all projects can share it 2016-11-11 20:35:59 +01:00