Commit Graph

30 Commits

Author SHA1 Message Date
baldurk 9f4a60028e Handle injecting environment variable params
* This also fixes the problem of capturing 32-bit programs with 64-bit
  RenderDoc failing to properly insert environment variables and
  error'ing when it tries to do it directly.
2016-09-28 17:55:45 +02:00
baldurk 563fb2dd72 Improve the 'inject into process' UI a bit
* I'd still recommend against using this whenever possible, but there
  are cases where it's useful.
* Added sorting by columns, and a new column with the window title.
* Fixed the refresh button being off the edge of the layout.
* Auto-fill as much space as possible with the list of processes.
* Added a find-as-you-type filter, which works by PID, exe name or
  window title.
2016-09-26 19:09:46 +02:00
baldurk 027bcdb7e8 Don't validate existance of working directories on remote captures 2016-08-19 17:26:34 +02:00
baldurk b5e6f8bef2 Allow specifying environment variable modifications
* This works for local and remote invocations of programs, but is mostly
  useful on unix systems (Windows programs use env vars less often)
2016-08-19 17:26:33 +02:00
baldurk d04c06a229 Add a remote/virtual open file dialog for browsing over the network
* This needs some optimisation - the obvious one being to batch up
  requests for multiple children all at once.
2016-08-19 17:26:30 +02:00
baldurk dca8fe7905 Actually use modified path in working dir hint 2016-08-19 17:26:20 +02:00
baldurk 2060173049 Track busy and active connections and display in UI 2016-08-19 17:26:19 +02:00
baldurk 84baa6d752 Partially implemented support for capturing & opening logs in a context 2016-08-19 17:26:12 +02:00
baldurk 11ee6e2e34 Allow dragging exes in anywhere and they won't be opened as logfiles 2016-06-20 17:30:29 +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 a969f3f5af Crash fix - handle IOException creating NamedPipe for global hooking 2016-04-17 17:10:08 +02:00
baldurk f15ca1fb15 Always convert paths to full UNC paths. Refs #177
* This avoids ambiguity/possible change between a mapped network drive
  like Z:\ and the UNC path \\hostname\foo\bar\
2016-02-18 15:05:46 +01:00
baldurk d865223879 Update vulkan layer banner on first shown
* Prevents an ordering issue where the --updatedone installation of the
  layer happens after the capture dialog first checks layer registration
2016-02-08 23:10:53 +01:00
baldurk 2e0ffa7813 Batch update copyright years everywhere 2016-02-07 18:50:45 +01:00
baldurk 258e08f740 Add a UI to prompt the user to install the vulkan implicit layer
* I don't like the fact that it doesn't "just work" but this is mostly
  limited by design decisions on the side of the vulkan loader.
* There is no good way with the loader to say 'please also include this
  layer in the enumerated lists'. There is an all-or-nothing override of
  layer searching, but that would break any layers the application might
  actually rely on.
* On balance I've decided to go with this method, as it's a one-off
  interruption for the user (unless someone is constantly switching
  between installs).
2016-02-07 18:49:59 +01: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
baldurk f6527107dc Add try {} catch to handle exceptions thrown from IO operations 2015-07-07 19:06:31 +02:00
baldurk 95f4011bcb Add option to favour monospaced font for all data. Refs #118
* The option will enable monospaced fonts for all data displays, like
  the list of events, API calls, etc as well as pipeline displays, entry
  of filename/directory in the capture window and many other places.
  Pure UI labelling etc mostly still stays as a serif font.
* A few sizes of controls were tweaked (like headers in the pipeline
  windows) so that they didn't just barely overflow with the larger
  font.
* While looking at this, it became obvious that buffer viewers and
  constant bufferviewers should always display in monospaced regardless,
  so that has been changed.
2015-04-09 21:49:03 +01:00
baldurk 32eadbcade Remember last filename as well as last directory for capturing 2014-10-15 18:45:31 +01:00
baldurk 56e7f0c754 Add an option to verify Map() writes don't overrun. Closes #42
* Has a couple of limitations - won't check deferred context or
  NO_OVERWRITE Map()s except in a captured frame. This could in theory be
  implemented but it'd be complex and I don't want to complicate/break
  the normal path.
* When an overrun is detected, a messagebox pops up to block the thread,
  and if you hit yes, it will debugbreak.
2014-10-05 23:42:25 +01:00
baldurk e749f42876 [Refs #87: Static Analysis] string compare as uppercase or by length 2014-10-05 19:01:25 +01:00
baldurk 9460fbd970 Add feature to globally hook processes to inject indirectly.
* This allows you to hook into processes that are difficult to launch
  directly with the existing functionality in RenderDoc.
* This is rather risky, as it modifies the AppInit_DLLs registry key to
  inject a small shim dll that checks for the desired process and injects
  the full renderdoc.dll. If that registry key got left, or if there was
  some incompatibility with the shim dll, you could have problems. It
  should only ever be used as a last resort if there's no other way to
  capture.
2014-10-05 13:57:11 +01:00
baldurk 3bc3f7a902 Fix for crash if frame capture is queued & process fails to create 2014-09-25 08:20:47 +01:00
baldurk c1cb2c7333 Comment capture options, deprecate CacheStateObjects. Closes #61 2014-09-24 23:44:31 +01:00
baldurk 4d05273bc1 Fix loading settings not working with the working-dir hint 2014-09-06 16:28:34 +01:00
baldurk 4e6c8202b4 Save on unnecessary thrown ArgumentExceptions (convenience) 2014-08-03 15:03:59 +01:00
baldurk 6e9b08e382 Add faint default working directory when textbox is 'blank'
* If the working directory is empty, the directory containing the exe is
  used instead, make this more clear in the UI.
2014-07-25 10:28:28 +01:00
baldurk 7982301b60 Speculative fix for crash report NullReferenceException in OnInject 2014-05-26 15:00:02 +01:00
baldurk 3ccd8980a3 Fix default capture options not being applied in 0.20 and above
* These capture options used to be propagated through from the C++ struct
  when there was a C++/CLI dll used for interop between C# and C++. Now
  that we use P/Invoke this needs to be added back so a couple of default
  options can be enabled
2014-05-26 13:53:30 +01:00
baldurk c38affcded Initial commit of existing code.
* All renderdoc code up to this point was written by me, history is available by request
2014-05-02 08:33:01 +01:00