Commit Graph

451 Commits

Author SHA1 Message Date
baldurk 8c5a2ca34e Remove unused /MANIFESTDEPENDENCY option 2017-04-18 14:57:41 +01:00
baldurk 5adce29b44 Add support for documenting bindings API directly in code 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 849f5b443d Change python handling from sub-interpreters to per-context globals
* Using a separate dict for globals/locals for each interpreter means we
  still get separation of variables and no persistence where we don't
  want it, but removing sub-interpreters means pyside can work as it
  uses the PyGILState_ APIs which do not support sub-interpreters.
* We import everything up front then duplicate the __main__ each time we
  create a new context so we keep the __main__ pristine and muck up an
  individual copy.
* Because sys is now shared, the output redirectors that overwrite
  sys.stdout and sys.stderr have a NULL context, and instead they look
  up a specific global which contains the actual context pointer.
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 3e74683a70 Fix qrenderdoc compilation on Win32 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
baldurk fd6fce7a78 Refactor pipeline states to expose opaque string properties as enums.
* Things like addressing modes, stencil operations, and other things the
  UI didn't need to know about previously were only exposed as string
  values to be passed through and displayed.
* Now we describe these with enums so the API can be properly
  introspected and used by consumers that might want to know the actual
  values of these states.
2017-04-18 14:57:40 +01:00
baldurk 8262bd2770 Refactor viewport to have X/Y separate members instead of TopLeft[2] 2017-04-18 14:57:38 +01:00
baldurk f1df7423e2 Standardise pipeline object names with name/customName where relevant 2017-04-18 14:57:38 +01:00
baldurk 587fba0b68 Rename DirectoryFile/FileProperty to Path, and re-use struct in OS code
* They describe directories or files, and really describe a single path
  on the remote system.
2017-04-18 14:57:38 +01:00
baldurk 637d4089e2 Rename colour to color in public API code
* Following the principle of least surprise, color tends to be more
  commonly used in APIs and graphics code even outside the USA.
2017-04-18 14:57:37 +01:00
baldurk 4887ecc851 Remove InvocationIndex shader builtin and remap it
* We map it to either GSInstanceIndex or OutputControlPointIndex
2017-04-18 14:57:36 +01:00
baldurk 0ad5709df3 Remove poorly chosen 'Fetch' prefix from a few data structures.
* This goes all the way back to the first iterations where these were
  the only structures and 'Fetch' referred to them returning data from
  the core code to the UI.
2017-04-18 14:57:36 +01:00
baldurk 1be8c70da6 Make ResourceId::id member private, add ResourceId::Null() 2017-04-18 14:57:35 +01:00
baldurk ce4a99b7b8 Rename ShaderResource::IsSRV to a more generic IsReadOnly property 2017-04-18 14:57:35 +01:00
baldurk 96f11095da Change type of FrameStatistics::recorded to bool32 to be more accurate 2017-04-18 14:57:35 +01:00
baldurk 018dcb073c Rename uavWrite to more generic directShaderWrite 2017-04-18 14:57:35 +01:00
baldurk 36ed9fdc70 Remove unused rawType from SpecialFormat 2017-04-18 14:57:34 +01:00
baldurk c44f355380 Remove nested structs from D3D12 pipeline state and move to namespace 2017-04-18 14:57:34 +01:00
baldurk af33e5d296 Remove nested structs from Vulkan pipeline state and move to namespace 2017-04-18 14:57:34 +01:00
baldurk 9e23443356 Remove nested structs from GL pipeline state and move to namespace 2017-04-18 14:57:34 +01:00
baldurk b4d3401866 Remove nested structs from D3D11 pipeline state and move to namespace
* Moving into a namespace makes it easier to give the structs non-clumsy
  names while still being unique and not overlapping with the other API
  pipeline states.
2017-04-18 14:57:33 +01:00
baldurk d40fc8471d Change API enums to enum class, remove now redundant prefixing
* This gives a little nicer syntax, a bit better type safety, and also
  reflects better for SWIG bindings. Overall it's a minor change but
  better.
* We don't update the C# UI at all, since it's soon to be removed and
  not worth the effort/code churn.
* For now so we're ABI compatible with C#, all enums are uint32_t, but
  that is an obvious optimisation in future to reduce struct packing.
* We avoid 'None' as an enum value, because it's a reserved word in
  python so will cause problems generating bindings.
2017-04-18 14:57:33 +01:00
Peter Gal 588eb083db Remove obsolete workarounds to force shared library linking
As the --no-as-needed linker option was added there is now
no need to force link to GL/EGL shared libraries via
extern methods.
2017-04-17 02:39:29 -07: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
Michael Rennie 3b8aefa061 Make filename column resize to text, needed for long package names.
Previously the empty Size & Date columns resize to their headers, and the
Filename column gets squashed. Also made the dialog wide enough.
2017-04-08 08:12:14 -07:00
baldurk 2978755d54 On D3D11, any non-CS stage can access OM UAVs. Refs #564 2017-04-06 11:46:44 +01:00
baldurk 5f3b75739d Don't try to view buffers with ViewTexture 2017-04-06 11:46:44 +01:00
Dimitris Kapnopoulos 6e06eb5164 Added tooltips for all QToolButtons. RDSplitter checks for valid index.
handleDoubleClicked in RDSplitter checks if the index argument is less than zero or bigger than count
2017-03-28 02:54:15 -07:00
Dimitris Kapnopoulos d3faa58a78 Added Tips Dialog. Changed Tips_SeenFirst to Tips_HasSeenFirst 2017-03-21 04:09:47 -07:00
baldurk d2d86b5726 Add 'floateleven' buffer format for R11G11B10 packed data, fix unpacking 2017-03-20 13:02:20 +00:00
baldurk 8016dea558 Add RDSplitter to project filters file as well as the project proper 2017-03-20 12:13:19 +00:00
baldurk 487a1b7903 Start moving towards C++ only UI code. Assume C++ for the replay API
* The C# P/Invoke stuff doesn't directly use the header, and we are soon
  going to deprecate the C interface entirely.
2017-03-13 17:56:00 +00:00
baldurk 705462b43c Add RDSplitter to visual studio project 2017-03-13 17:23:38 +00:00
Dimitris Kapnopoulos 4ab61286e4 Added custom Splitter class, RDSplitter, with titles in the handles 2017-03-13 10:02:43 -07:00
baldurk c89bcfbb7a More robust isolation of the git commit hash, without special cases 2017-03-10 13:27:59 +00:00
baldurk f76a4cc339 Don't launch blocking execute call on UI thread, pop up progress ticker
* This most commonly happens launching an Android program that takes a
  while to launch, or if you're launching a program with the delay for
  debugger option set.
* Instead of the whole UI hanging, you'll get a progress dialog to
  appear while it's waiting.
2017-02-24 17:34:02 +00: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 f3c3f82cc4 Minor tweaks to GL pipeline view in Qt, to display format for FBO att.s 2017-02-20 14:48:47 +00:00
baldurk dc46612d37 Remove file before copying so we can overwrite 2017-02-20 14:48:46 +00:00
baldurk 04c22d04f2 Reduce some copy-pasting between mesh stage UI elements 2017-02-20 14:48:45 +00:00
baldurk 7a10504260 Only VSIn stage applies baseVertex offset. 2017-02-20 14:48:44 +00:00
baldurk 7495ff37d5 Use bounding box data for placing arcball/WASD cameras 2017-02-20 14:48:43 +00:00
baldurk d014156e45 Don't spinlock when waiting for blocking render commands 2017-02-20 10:32:12 +00:00
baldurk 9721a4d1a4 Set up icon and version for OS X packages 2017-02-17 20:16:21 +00:00