Commit Graph
30 Commits
Author SHA1 Message Date
baldurk 089126c34b Add a new in-app API function ShowReplayUI to raise the UI window
* This is not guaranteed to work, e.g. on windows where for good reason
  background windows can't necessarily raise themselves.
2022-01-12 11:24:22 +00:00
baldurk 7149302680 Rename 'draw' or 'drawcall' to action
* There's not a good accepted terminology for this kind of event, and for
  historical reasons 'drawcall' has been the accepted term, even though
  that can be quite confusing when a dispatch or a copy is a 'drawcall'.
* This is particularly highlighted by the event browser filters where
  $draw() includes draws and dispatches, but $dispatch() only includes
  dispatches, it's hard to intuitively understand why $draw() matches all
  of these calls.
* As a result we've defined the term 'action' to cover these types of
  events in the same way that we defined 'event' in the first place to
  mean a single atomic API call.
2021-07-01 15:15:05 +01:00
baldurk 026da176bb Update copyright years to 2021 2021-01-13 13:56:10 +00:00
baldurk e5f4ca7bb8 Remove use of const char * in public API and OS specific where possible
* This prevents unnecessary conversions back and forth between rdcstr and const
  char * when going through interfaces. In the OS specific layer this is rarely
  an issue because most of the implementations don't convert to rdcstr, but it
  is convenient to be able to pass in an rdcstr directly. The few cases where
  there's an unecessary construction of an rdcstr is acceptable.
* A couple of places in the public API need to return a string from a global
  function, so can't return an rdcstr due to C ABI, so they still return a const
  char *.
* Similarly const char * is kept for logging, to avoid a dependency on rdcstr
  and because that's one place where unnecessary conversions/constructions may
  be impactful.
2020-12-07 17:44:50 +00:00
baldurk e1fe211f3c Rename Shutdown to RemoveHooks in in-application API. Version is 1.4.1
* This is a binary and source backwards compatible change.
2020-01-30 13:02:23 +00:00
baldurk 2916c0f9f7 Update copyright years to 2020 2020-01-06 16:20:45 +00:00
baldurk bd9f4fc389 Remove use of vector/string from core project
* This also affects the drivers via interfaces e.g. IReplayDriver and some
  utility functions.
2019-12-16 18:10:31 +00:00
baldurk f68645bddc Reduce dependencies pulled in by common.h 2019-12-16 17:06:16 +00:00
baldurk 7206a0cd25 Removing 'use std::vector' 2019-05-17 16:32:56 +01:00
baldurk a965a3a703 Remove 'using std::string'
* This will make it easier to replace std::string with rdcstr in future
2019-05-17 16:32:56 +01:00
baldurk 86ff87863e Update copyright years to 2019 2019-02-01 18:32:13 +00:00
baldurk ab8d07f29c Add DiscardFrameCapture to in-application API, bumped to version 1.4.0 2019-01-08 11:35:48 +00:00
baldurk f75b5e235e Change verify map writes capture option to verify buffer access.
* This option will now toggle on the behaviour to fill undefined buffer contents
  with a marker value, both if they're created without data (it will be zero
  filled instead) or mapped with discard (it will keep the old contents
  instead).
* There were too many hard to find problems or misconceptions about the buffer
  filling for it to be useful. Now it will be opt-in instead.
2018-11-23 11:25:39 +00:00
baldurk 84a90bfdaf Update RenderDoc API version to 1.2.0, add new function. Closes #1037
* The new function SetCaptureFileComments allows users to add comments to a
  capture after creating it at any time.
* We also use anonymous union to remove the need to duplicate API structs for
  backwards compatibility.
2018-08-03 11:16:24 +01:00
baldurk c70c116bd7 Refactor hooks towards more unified/clean approach
* Hooking is now done the same way across platform, with different OS
  implementations.
* Regardless of how exactly hooks are implemented, we register libraries to hook
  and functions to hook within those libraries, and provide a location to store
  the original/onwards function pointer. This allows hooking to work whether
  it's done using import hooking that doesn't modify target libraries (so using
  dlsym or GetProcAddress will return the same value for the onwards function
  pointer) or whether it's implemented with prologue patching and trampolines,
  where we'd create an infinite loop if we did that.
* We also provide stronger guarantees - the original function pointers will
  _always_ be made available as soon as the library is loaded, whether hooked or
  not, no exceptions. This means less uncertainty in hooking code about when or
  how onward functions will be available.
* OS-specific hook functions are changed to just be implementations of
  LibraryHooks functions rather than indirected through macros and pre-processor
  definitions.
* In this commit we provide some temporary functions providing the old interface
  to reduce churn - the library-specific hook code will be updated shortly after
2018-07-06 22:44:20 +01:00
baldurk b74f917975 Add application API version 1.1.2, with renamed log file -> capture file 2018-02-20 20:33:30 +00:00
baldurk 24db8dbffc Add an 'internal' flag when launching processes, to reduce log spam 2018-01-26 15:33:17 +00:00
baldurk e305029ddd Update copyright years to 2018 2018-01-01 17:55:29 +00:00
baldurk 030cbfde9a Batch update copyright years everywhere 2017-01-06 12:13:31 +00:00
baldurk d461e40711 When an unsupported API version is requested, print supported versions 2016-09-08 15:51:06 +02:00
baldurk 481a28dc29 Rename RemoteAccess to TargetControl to better disambiguate RemoteServer 2016-08-19 12:23:19 +02:00
baldurk 5a64a78d2a Add multiple-frame capture, grabbing N successive frames to captures
* In-application API is bumped to 1.1.0 as a new function pointer is
  added to the end of the structure.
* This comes with some caveats - capturing a frame is fairly heavy
  weight, so capturing a frame might throw off timing-related bugs you
  are trying to capture in subsequent frames. If you know your bug is
  every other frame though, capturing two can be a quick way to ensure
  you get it.
2016-07-18 18:51:36 +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 4b7e068703 Rename 'create debug device' capture option to 'API validation'
* More appropriate for non-D3D11 APIs and will cause less confusion.
2016-05-17 21:16:17 +02:00
baldurk 2e0ffa7813 Batch update copyright years everywhere 2016-02-07 18:50:45 +01:00
baldurk 278a9774a0 When StartFrameCapture() is called on API, also make that wnd active 2016-01-21 18:21:19 +01:00
baldurk 59e604be91 Bump in-application API to 1.0.1. Backwards ABI compatible with 1.0.0 2015-09-30 22:14:38 +02:00
baldurk 455797f93e Change dllexport'd RENDERDOC_GetAPI to a function pointer typedef
* Apps don't link against renderdoc so a dllexport is meaningless, they
  need a typedef to declare the function pointer they will
  GetProcAddress().
2015-08-27 17:57:18 +02:00
baldurk 357735d1d2 Linux compile fixes 2015-08-23 20:38:13 +02:00
baldurk 4609fa710b Update RenderDoc application-facing API to a stable/mature version.
* This API is now intended to be forward and backward compatible as much
  as possible. Meaning applications should be able to run without
  changing on many RenderDoc versions after the one they are built
  against without breaking.
* All function pointers are fetched at once in one versioned GetAPI()
  function, to save on constant GetProcAddress/dlsym'ing.
* Otherwise, it's largely similar to the previous API.
2015-08-23 15:12:05 +02:00