Commit Graph
17 Commits
Author SHA1 Message Date
baldurk 3d47587957 Add Process::LoadLibrary OS-specific function 2015-08-23 21:51:06 +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
baldurk e22a62ef1f Add log message for launching process 2015-07-18 23:12:20 +02:00
baldurk 3b7a6c4dcf Fix global hook options string being total garbage 2015-07-18 13:19:37 +02:00
baldurk b8226fc97c Add new API calls for embedding renderdoc in apps
* This will easily let an application tell if an instance of the replay
  UI is currently connected, and if not launch it and connect. Good for
  integrating renderdoc somewhere where you can trigger a capture, and
  then have the replay UI pop up to either connect live, or open the
  most recently log.
2015-06-19 22:37:29 +02:00
baldurk 1d96ac2b05 Simplify renderdoc_app.h to remove typedefs and dependency on stl 2015-06-19 22:34:57 +02:00
baldurk c1c6d635d9 Bugfixes for wchar_t handling 2014-11-28 21:11:49 +00:00
baldurk 652e875db2 Bugfix - function doesn't take wchar_t* any more! 2014-11-23 15:00:12 +00:00
baldurk 2484bc8bc7 Use UTF-8 everywhere possible and only use wchar_t where required.
* This means that all APIs pass byte string types. ALL strings everywhere
  in the entire codebase must be assumed to be and treated as UTF-8 content
  not ASCII.
* Gets rid of all the horrible %hs specifiers that caused warnings on
  linux! Hooray.
* We convert to wide strings, or use wide characters, only when necessary
  to use the Win32 API. Some windows specific code will stay in wide chars
  just for convenience.
* Files are already serialised as UTF-8 strings for linux/windows binary
  compatibility, so this change doesn't break backwards compatibility.
2014-11-23 14:45:16 +00:00
baldurk 957e73ce28 [Refs #87: Static Analysis] Add error checks for injecting remote DLL 2014-10-05 19:01:20 +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 e0c57be087 Ensure large enough params buffer, respect & passthru NULL log path 2014-10-04 16:18:36 +01:00
baldurk 8d685de609 Reorganise 3rdparty, include breakpad with sln, drop mhook. Closes #84 2014-09-24 20:24:35 +01:00
Baldur Karlsson 12a30a7b97 Add IAT based hooking to allow hooking 64bit opengl32.dll
* Needs vigorous testing in as many situations as I can think of, not least
  32bit, 64bit, D3D11, D3D9, OpenGL, managed apps, different windows SDKs,
  delay loading dlls (not sure if these will work), statically linked libs,
  LoadLibrary + GetProcAddress
* Credit goes to jslutter for originally bringing it to my attention &
  suggesting it.
* References:
  http://msdn.microsoft.com/en-us/magazine/bb985992.aspx
  http://msdn.microsoft.com/en-us/magazine/cc301808.aspx
  http://www.codeproject.com/Articles/6265/Process-wide-API-spying-an-ultimate-hack
2014-08-06 15:43:16 +01:00
baldurk d10e9e239f On x86 windows IsWow64 returns false always. Closes #66
* On x64 windows IsWow64 returns true for 32bit programs, but on x86
  windows there is no such thing as Wow64 so it returns false. Detect this
  by checking our own processes Wow64 nature (which should always return
  true if Wow64 is a thing).
2014-07-27 22:24:12 +01:00
baldurk 0f080d1f44 Cleaned up renderdoccmd, split out necessary bits to OS-specific files 2014-06-08 11:00:41 +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