Commit Graph

114 Commits

Author SHA1 Message Date
Matthäus G. Chajdas ba4c9d6837 Prepare everything for the performance counter viewer window. 2017-08-24 13:21:02 +01:00
Matthäus G. Chajdas 29376f34cc Add a performance counter selection dialog. 2017-08-24 13:21:01 +01:00
baldurk cfd816d7f3 Enable RDStyle by default, add style selection in the settings dialog 2017-08-16 17:39:37 +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 8476be2300 Fix mac build, split PlistBuddy use to separate script, suppress errors
* There's no "add or replace" so we have to just delete and ignore if
  it fails, then add/set as normal.
2017-07-25 22:06:30 +01:00
baldurk 6612024f43 Fix use of PlistBuddy on subsequent recompilations of qrenderdoc on OS X
* There's an error if you add a property that's already there, so we
  instead delete it each time before adding it.
2017-07-25 09:21:14 +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 def80ac8da Only build qt.conf on windows, it breaks linux platform plugin search :( 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 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 b5e6596512 Make sure we build qrenderdoc with svg 2017-04-27 15:16:34 +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 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 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 66353de7fb Add support for SWIG wrapping python callbacks as std::functions 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
baldurk 7c45218df9 Since we no longer use anything from qmake on windows, don't set dirs 2017-04-18 14:57:40 +01:00
baldurk 2e87ca4531 Require qt creator to locate the cmake project to build on non-windows
* Previously the cmake build would put librenderdoc.so in a /bin folder
  in the source folder so the qt creator project could link against a
  fixed path when just opening the project solo.
* This won't scale though for fetching the SWIG outputs from cmake, and
  it's ugly to modify the source folder for out-of-source builds.
* Instead we have cmake generate a qt creator include file with all of
  the settings and paths needed, and pass the CMAKE_BINARY_DIR into
  qmake when building. This does mean that when opening the project in
  qt creator you need to specify CMAKE_DIR=/path/to/build though.
* As a bonus, this means we can let cmake identify where python is and
  have qt creator link against it rather than having to hardcode include
  paths etc.
2017-04-18 14:57:40 +01:00
Peter Gal 081f65dff1 Disallow the linker to ingore shared libraries during linking
In some cases when the renderdoccmd/qrenderdoc is linked the linker
ignores the libEGL.so and only uses the librenderdoc.so.
This is because the renderdoc shared library provides the
same symbols as the libEGL.so. However we need to keep the
libEGL.so as we are using RTLD_NEXT in the renderdoc shared
library.
2017-04-17 02:39:29 -07:00
Dimitris Kapnopoulos d3faa58a78 Added Tips Dialog. Changed Tips_SeenFirst to Tips_HasSeenFirst 2017-03-21 04:09:47 -07:00
Dimitris Kapnopoulos 4ab61286e4 Added custom Splitter class, RDSplitter, with titles in the handles 2017-03-13 10:02:43 -07:00
baldurk 8ff3ee93b5 Copy libGL force-inclusion hack from renderdoccmd to qrenderdoc
* Normally Qt uses libGL dynamically so this isn't an issue, but if Qt
  is statically linked then we need this.
2017-02-22 17:17:15 +00:00
baldurk 9721a4d1a4 Set up icon and version for OS X packages 2017-02-17 20:16:21 +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 871a48d7fa Add flowchart custom widget to show select pipeline stages 2017-02-13 19:20:25 +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 7caf12aea4 Add $ORIGIN/../lib/ to rpath for renderdoccmd and qrenderdoc 2017-02-10 12:09:05 +00:00
baldurk 7c53c6a0e0 Add RDTreeView to qmake project 2017-02-10 01:53:36 +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 d728a47b99 Use CONFIG += silent to avoid the need to reset MAKEFLAGS
* When cmake custom commands invoke make, the make execution is silent.
  The MAKEFLAGS reset was to remove the silent flag, but it also lost
  the -j parallel build flags.
* Instead, we set qmake to silent mode (which it already was going to
  be), and that causes it to add echo statements to each rule that will
  be printed even when make is silent.
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 9e47ed53b5 Move resources.qrc into Resources/ folder 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
baldurk 95d84f2da7 Add extended RDTableWidget with row re-ordering 2017-02-09 19:28:20 +00:00
baldurk cf1ef45a5e Add settings dialog for Qt 2017-02-03 20:11:06 +00:00