88 Commits

Author SHA1 Message Date
baldurk 89945f711d Switch to SVG topology diagrams
* We need to custom paint the SVG at the right devicepixelratio because
  Qt seems to be busted at scaling up - nothing I can see causes the
  SVG to be rendered at higher than it's default resolution, so you end
  up with plain bilinear upscale.
* Since we're doing custom palette swap anyway, it's not much harm to
  just render ourselves, as we already basically had a dependency on
  QtSvg - just need to add the include files to the dependencies.
2017-07-28 19:06:46 +01:00
baldurk 9a782158fd Fork RDStyle to RDTweakedNativeStyle
* The idea is tha this style won't change the palette and will just do
  some minimal additions/changes to whatever the native style is, to
  work around some rough spots.
2017-07-28 19:06:41 +01:00
baldurk 83c413129e Add the beginnings of a unified cross-OS style
* First thing changed, auto-raise toolbuttons don't sink when enabled,
  but remain flat and highlighted.
2017-07-28 19:06:40 +01:00
baldurk 50ca57aaaa Add quoting necessary to build qrenderdoc in path with spaces or dashes
* The paths need to be quoted so that spaces don't expand to multiple
  arguments.
2017-07-13 19:03:40 +01:00
baldurk d3d1bcd136 Add work in progress timeline bar
* Has an EID scale bar along the top, and simple zoom/pan, but nothing
  else.
2017-07-13 18:44:41 +01:00
baldurk a2004f924f Set default LocalDebuggerWorkingDirectory in the right place
* Somehow vcxproj are order-specific which sounds horrible but doing
  this too early or too late doesn't get picked up.
2017-07-12 16:16:39 +01:00
baldurk def80ac8da Only build qt.conf on windows, it breaks linux platform plugin search :( 2017-06-13 14:56:40 +01:00
baldurk 25f18defd4 Use a qt.conf to point plugins at qtplugins/ in the application path.
* We can point the platform plugins path at the application dir for
  qwindows.dll for example, but there's no equivalent for image format
  plugins which we need for qsvg.dll. So instead we shove them all under
  an explicit qtplugins path.
* Also now that we have this, copy qsvg.dll into the distribution.
2017-06-13 14:56:40 +01:00
baldurk 3b6f63be0d Make event browser columns properly resizable and re-orderable
* Annoyingly although Qt has an internal bool allowUserMoveOfSection0
  which does exactly what we want allowing the tree column to be
  movable, we can't enable it because it's private. So instead we have
  to re-implement section moving ourselves.
* Minor tweak - also made RDTreeWidgets non-movable by default since
  usually we don't want to allow it.
2017-06-03 00:38:02 +01:00
baldurk 26c4284b26 Add new ToolWindowManagerSplitter files to projects 2017-06-01 12:31:29 +01:00
baldurk 158bc4d583 Update code for new toolwindowmanager 2017-05-29 13:31:28 +01:00
baldurk 441d136177 Add extended RDToolButton 2017-05-10 17:20:39 +01:00
baldurk 007e0f7b40 Disable optimisation for QTDebug target in qrenderdoc too 2017-05-10 17:20:35 +01:00
baldurk 0ecc6ca877 Enable QT_NO_CAST_FROM_ASCII & QT_NO_CAST_TO_ASCII
* Added a couple of utility macros to help with the conversion. lit() is
  paired with tr() for untranslated text.
* QFormatStr is more explicitly for non-textual formatting strings.
* Both are just #define'd to QStringLiteral()
2017-05-02 22:58:12 +01:00
baldurk 22c5b7863d Get some VS null changes to the vcxproj's xml out of the way 2017-05-02 22:58:11 +01:00
baldurk 8580b7b2c7 Hand-edit vcxproj files to remove duplicated properties
* By default VS creates a huge section of properties copy-pasted for
  every Configuration|Platform combination, which is almost all the
  same for each one.
* We instead create a common section with most of the properties that
  are fixed, and then override/add to them for the few that vary (e.g.
  optimisation settings for release, preprocessor macros).
2017-04-28 18:36:55 +01:00
baldurk 1f8a93c37a Add precompiled header file use to qrenderdoc on VS 2017-04-28 18:36:55 +01:00
baldurk 07a73d53ce Tidy up qrenderdoc warning settings a bit 2017-04-28 18:36:55 +01:00
baldurk 628df6d9c8 Fix some warnings in ToolWindowManager so we can keep level 4 globally
* Nested foreach() hiding a local variable in the macro definition.
* Declarations of 'data' parameters that hide a class member variable.
2017-04-28 18:36:55 +01:00
baldurk 2a4596e06a Add python shell qt window 2017-04-19 18:03:19 +01:00
baldurk a740696dbe Add an extended RDTextEdit control subclassed from QTextEdit 2017-04-18 14:57:49 +01:00
baldurk 494086f40d Rename RenderManager to ReplayManager 2017-04-18 14:57:48 +01:00
baldurk b8d3efdb31 Move document checking to a C++ header file
* It's better to edit C++ source natively not in the SWIG file, and also
  clang-format can format it.
2017-04-18 14:57:44 +01:00
baldurk 694d7b6c7b Split apart renderdoc.i for better organisation 2017-04-18 14:57:43 +01:00
baldurk cbc27222e2 Add qrenderdoc python SWIG bindings, for the stable/clean interface 2017-04-18 14:57:43 +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 8c5a2ca34e Remove unused /MANIFESTDEPENDENCY option 2017-04-18 14:57:41 +01:00
baldurk 2e2a58950a Integrate pyside2/shiboken2 to be able to bind Qt to python
* On linux we make it optional since it's too large a project to add
  as a build step via ExternalProject_add.
2017-04-18 14:57:41 +01:00
baldurk cb510298d8 Add wrapper around tracking a python context and executing scripts 2017-04-18 14:57:41 +01:00
baldurk 12472d93bc Link against python in qrenderdoc 2017-04-18 14:57:41 +01:00
baldurk 940d3662eb Add SWIG file to generate python bindings for internal replay API
* SWIG outputs two files - renderdoc_python.cpp with the main actual
  wrapping code, and renderdoc.py a small module that does some
  bootstrapping on python side.
* We use a custom version of SWIG that generates strong/typed enums in
  python based on enum classes, so in cmake we add this custom swig
  fork as an external project and compile it before generating the
  wrappers. On windows there's a committed version of the SWIG binary
  that gets run directly from the .pro or .vcxproj.
* The renderdoc.py gets embedded as a resource on windows or as a C
  generated unsigned char array via include-bin on other platforms, so
  that we can insert it into the python context without needing it to
  sit around on disk somewhere in sys.path
2017-04-18 14:57:40 +01:00
Dimitris Kapnopoulos d3faa58a78 Added Tips Dialog. Changed Tips_SeenFirst to Tips_HasSeenFirst 2017-03-21 04:09:47 -07:00
baldurk 705462b43c Add RDSplitter to visual studio project 2017-03-13 17:23:38 +00:00
baldurk fa04d5a72e Add a find/replace tool for use with Scintilla 2017-02-16 17:10:07 +00:00
baldurk 8b760ced92 Add environment variable editor for capture dialog in Qt 2017-02-16 17:10:05 +00:00
baldurk a3e31489f8 Fix some VS project filters that got mixed up after generated files move 2017-02-16 17:10:04 +00:00
baldurk bc2ef77405 Centralise object file dirs in VS so they're not all over the tree 2017-02-14 19:14:52 +00:00
baldurk 871a48d7fa Add flowchart custom widget to show select pipeline stages 2017-02-13 19:20:25 +00:00
baldurk 399a9f5a1e For QTDebug target, copy in debug versions of Qt dlls to output folder 2017-02-13 19:20:24 +00:00
baldurk 2bbbeb3369 Reskin the about dialog slightly, switch to an SVG logo 2017-02-13 19:20:23 +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 4d8e799a0e Add pixel history window 2017-02-09 23:21:45 +00:00
baldurk e1d180246c Add dialog for both managing remote hosts (add/remove) and attaching 2017-02-09 19:28:23 +00:00
baldurk aaf87aec96 Add a QTDebug project configuration for compiling against Qt debug DLLs 2017-02-09 19:28:23 +00:00
baldurk 2156fc56f3 Compile with moc/uic/rcc custom tools in local vcxproj
* The plan is to commit those executables with the headers/libs/dlls we
  were already going to commit once the Qt UI is shipping on windows.
2017-02-09 19:28:22 +00:00
baldurk 9d6aed683e Default to TargetDir for debugging working dir (the dir with the exe) 2017-02-09 19:28:22 +00:00
baldurk 9c03eb69bc Add remote file browsing dialog 2017-02-09 19:28:21 +00:00
baldurk 267ad262ee Add dialog for suggesting remote replays for non-local captures 2017-02-09 19:28:21 +00:00
baldurk f67b02ecf0 Add class for managing remote hosts 2017-02-09 19:28:21 +00:00
baldurk fb1dfbd184 Add ordered list editor for configuring shader search paths in settings 2017-02-09 19:28:20 +00:00