63 Commits

Author SHA1 Message Date
baldurk ebe442d1d8 Update tips dialog and add a menu item for it. 2015-09-25 21:09:12 +02:00
baldurk 1f3a83cf38 Don't make UpdateDialog TopMost, that's globally always-on-top 2015-09-15 18:42:42 +02:00
baldurk 96b43aa54d Allow the queued capturing of frame 1 immediately. Refs #150 2015-09-12 17:23:30 +02:00
baldurk 2d12d5abee Add an update dialog that shows update notes & does upgrade smoothly 2015-08-30 00:11:48 +02:00
baldurk 95be5454f9 Add a "Find in all files" dialog on ctrl-shift-f to shader viewer 2015-08-29 19:26:50 +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 f6b4b2fe22 Change python embedding to get standard library from zip, not a dll
* This seems way more reliable and smaller than shipping a compiled .dll
* For some reason I didn't find this method before (I only knew that
  you could ship the loose files which wasn't a good solution).
2015-08-23 11:17:46 +02:00
baldurk 4b0c1cbde8 Move the source data for tips online, a webpage will generate code 2015-07-10 23:31:52 +02:00
baldurk 44adfc7b82 Add a 'tips' dialog. Still needs to be mostly filled out with tips 2015-07-08 00:18:58 +02:00
baldurk c915d44af7 Clamp the selected sample to valid range 2015-07-07 19:40:07 +02:00
baldurk f6527107dc Add try {} catch to handle exceptions thrown from IO operations 2015-07-07 19:06:31 +02:00
baldurk 36f12d1ef2 Add export to CSV option in cbuffer previewer. Refs #140 2015-07-06 18:16:20 +02:00
baldurk 23404656ce Make sure not to try to set empty text to clipboard 2015-04-25 13:19:48 +02:00
baldurk 7339be3c00 Fix crash if Ctrl-C is pressed while no log is loaded 2015-04-25 13:19:37 +02:00
baldurk 7f61f85201 Fix tooltip on "Allow global process hooking" option. Closes #132 2015-04-20 13:40:35 +02:00
baldurk 7a1cc84f41 Keep temporary log around to be able to save multiple times. Closes #130
* Previously if a temporary log was saved once, it would be moved there,
  so the user could in theory delete it and lose the only copy of the
  log.
* Now the temporary log is held until it's closed in the UI, to be able
  to be saved again. If the user saves the log though, this will stop
  any "unsaved log" prompts in the main UI window, so there is nothing
  stopping the user from saving the log, deleting that copy, then
  closing and they'll lose the log without prompt.
2015-04-12 18:37:16 +01: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 8b9caa6cc2 When executing python scripts temporarily catch exceptions in renderer
* Errors like syntax and runtime errors in python are thrown as
  exceptions. So for when we invoke onto the renderer thread to do some
  work, we need to be able to catch those exceptions otherwise the whole
  program dies. So over the execute, temporarily switch the thread into
  a catching-exception mode, which then gets rethrown on the invoker's
  thread.
* Note that BeginInvoke shouldn't be used by python since the callback
  might happen after the execution has finished (there's no way to wait
  at the moment).
2015-03-29 19:59:40 +01:00
baldurk 1759a7ba35 Fix crash if constant buffer preview window is too small
* You can't set SplitterDistance unless both MinSize values will be
  respected, which needs a big enough window. Smaller than that, we just
  have to skip setting the size.
2015-03-18 17:34:18 +00:00
baldurk c30fd3e1e1 Fix a crash if constant buffer is still open when log is closed 2015-03-12 00:39:47 +00:00
baldurk 9e908779ce Fix lone unescaped & being interpreted as accelerator 2015-02-27 11:05:11 +00:00
baldurk 80329f6e9b Channels selection and mip/slice selection are now stored per-texture
* For each texture you view, it will reset back to mip 0 and slice 0
  as it previously did, and it will also reset the channels back to
  RGB only, which is new behaviour.
* Then each texture remembers those settings, so if you choose to view
  slice 6 & alpha only of a texture any time you switch back to it
  you'll see slice 6 & alpha only.
* It can be disabled in the options, but this is the new default
  behaviour. Possibly in future the zoom level and visible range might
  be rolled into this, but for now I think they might work better as
  global state.
2015-02-14 12:19:13 +00:00
baldurk 96b8818120 Give constant buffer previewer proper naming on OpenGL logs 2015-01-20 14:57:20 +00:00
baldurk 75e3a54d32 Update visible copyrights (non-code) to 2015 2015-01-16 22:14:06 +00:00
baldurk d35abd9727 Give proper name on constant buffer previewer for GL 2015-01-16 02:01:56 +00:00
baldurk 1c9269fc8d Add simple OpenEXR save/load support using tinyexr
* Thanks to https://github.com/syoyo/tinyexr for the load and save code!
2015-01-06 17:43:19 +00:00
baldurk 6b34b5815d Don't kill connection thread if user cancels closing 2014-12-18 18:02:50 +00:00
baldurk 52476118de Support doubles in shader vars natively, not packed in 2*uint32 each 2014-12-02 00:16:12 +00:00
valeriog 91871a7a18 Fixes for pull request #101 2014-10-28 20:27:33 +01:00
valeriog 71b10310cd Reduce thread spawning in python script trace callback and highlight the line where an exception happens. 2014-10-28 18:08:55 +01:00
baldurk f45b2870d1 Prevent crash when custom cbuffer format is larger than buffer 2014-10-22 23:09:44 +01:00
baldurk 32eadbcade Remember last filename as well as last directory for capturing 2014-10-15 18:45:31 +01:00
baldurk 29894e4db3 Add Interactive/script running python shell window 2014-10-10 21:30:40 +01:00
baldurk cfbdc98212 Re-hook up KeyDown handler that mysteriously went missing. Refs #92 2014-10-07 00:11:23 +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 a23f597c99 Fix some stupid typos/errors with commit e749f4287 2014-10-05 22:25:01 +01:00
baldurk f198e71806 [Refs #87: Static Analysis] Remove unused variables 2014-10-05 19:01:27 +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 49539033c9 Connection dialog now follows child processes launched. Closes #78
* Whenever a child process is hooked, that's passed back up to the UI and
  a list is shown with all the child processes of the one you are connected
  to in the dialog.
* At any point you can double click to create a new dialog latched to that
  process.
* If the process you're attached to closes and has one child, similar to if
  you only have one capture made the dialog will close itself and open a
  new connection to the child process. This is the case for e.g launcher ->
  editor
* This behaviour is overridden if you made a capture, as it assumes you
  then don't care about the child processes and instead want to open the
  capture. You can always do file -> attach later.
* If it has multiple children when the process closes, the dialog stays
  open to allow you to peruse the list and maybe open up a connection to
  one of the children.
2014-09-28 15:07:59 +01:00
baldurk a0d6d771f2 Pass through child processes via remote access to UI. Refs #78 2014-09-28 13:58:18 +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 a3c5e4a51b Convert capture timestamp to local time 2014-09-19 17:55:35 +01:00
baldurk 0b502f17ff Fix edge case with save options 2014-09-16 19:52:24 +01:00
baldurk 5596533459 Add handler for escape/enter shortcut keys in the dialog 2014-09-16 19:52:24 +01:00
baldurk 29e78c467e Set tab order on the form 2014-09-16 19:52:23 +01:00
baldurk eccf3fc052 Handle overwrite & invalid path on save click to validate filename 2014-09-16 19:52:23 +01:00
baldurk 339ee48ea6 Texture save dialog should be non-sizeable 2014-09-16 19:00:34 +01:00
baldurk e81169f021 Add a dialog to guide users to selecting available save options 2014-09-16 01:27:08 +01:00