Commit Graph

26 Commits

Author SHA1 Message Date
baldurk 38928667ee Remove most of the code, statically link lib into converter program
* The converter program will be able to open old captures, but is itself
  captureable in new renderdoc builds. This isn't a direct conversion
  but should allow a reasonable estimation and is better than nothing.
* NOTE: The resulting converted file will have no thumbnail, and no
  callstacks (if they were present before). As well as more minor things
  like backbuffers no longer appearing identified as backbuffers, some
  markers losing their colours, etc.
2018-03-06 14:32:50 +00:00
Cody Northrop e42f883d26 cmake: Update javac classpath to work on Windows 2017-08-17 10:00:04 +01:00
Cody Northrop 18be4d91b2 cmake: Add control over Android build-tools version
Specify -DANDROID_BUILD_TOOLS_VERSION=<foo> to change from the
default of 26.0.1.

Also respect the selected Android platform version.
2017-08-17 10:00:03 +01:00
Cody Northrop 83e1e1506b android: Update packaging to work with latest SDK
This removes dependencies on deprecated tools "ant" and "android project"

The new method relies on JAVA_HOME and ANDROID_SDK being set.

It also requires specific versions of the Android build-tools (26.0.1) and
platforms (android-23).  See updates to CONTRIBUTING.md and our Travis-CI
config for details.

Travis-CI and documentation also roll forward to latest public NDK r14b.
2017-08-17 10:00:01 +01:00
Cody Northrop d66afc0144 android: Add ability to check RenderDoc support, try to fix it
After selecting an application to launch on Android, inspect it to see if
it contains the RenderDoc layer and required permissions. If it does not,
display a warning similar to desktop. When clicked, if only the layer was
missing, offer to patch the APK, uninstall, and reinstall, with the
warning that it doesn't work for all applications (or at all for GLES).
Also provides pointers to how to package the layer yourself.

The process works by using the host temp directory to pull the APK and
modify it.  If the steps fail for any reason, the log is populated and
patching is halted.
2017-07-21 10:29:46 -07:00
Cody Northrop 7f0758f0ae android: Rename librenderdoc to libVkLayer_GLES_Renderdoc
This allows the library to be used as a Vulkan layer and shared
object for GLES debugging.  It was already being renamed in the
distribution scripts.  We've been renaming by hand for local
Vulkan development.
2017-07-21 10:29:46 -07:00
baldurk fb87f68b19 Build android apk inside build folder, not in source tree
* This means multiple builds don't cross-contaminate, and removing the
  build folder will clean everything up again.
2017-06-15 05:28:07 -07:00
Cody Northrop f60968b103 android: Target android-23 explicitly for APK
Using "1" here was very specific to the build system, as noted by the comment.
When run on systems with older APIs install, it resulted in java compile errors.
2017-04-26 20:47:04 +01:00
baldurk dae3a41db1 Don't try to put android apk in ${CMAKE_SOURCE_DIR}/bin anymore 2017-04-18 14:57:49 +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
Peter Gal a70bcb8ad3 Add EGL replay implementation 2017-02-15 22:38:26 +00:00
baldurk 7caf12aea4 Add $ORIGIN/../lib/ to rpath for renderdoccmd and qrenderdoc 2017-02-10 12:09:05 +00:00
Michael Rennie d38ad5e2c9 Make APK file itself depend on renderdoc & renderdoccmd.
Previously the custom command wasn't running when .so's changed.
2016-10-13 13:39:28 +02:00
baldurk 528ffcf2a7 Avoid symlinking in favour of copying, and copy apk to root /bin folder 2016-10-12 22:08:48 +02:00
Michael Rennie 7a4c2f9546 Android cmake target for RenderDocCmd.apk
cd android-build
cmake -DBUILD_ANDROID=1 ..
make apk
2016-10-12 17:01:28 +02:00
baldurk 541c2f2d99 Add copies to ./bin for renderdoccmd & librenderdoc.so
* This allows qrenderdoc to link properly when opened directly in
  qtcreator, as otherwise it doesn't know where to link to the generated
  librenderdoc.so somewhere in CMake's build directory
2016-09-14 17:31:45 +02:00
baldurk 90604c6d9c Print custom lines of API support on the version string of renderdoccmd
* An easy way to check what support is compiled into this binary.
2016-08-25 21:07:40 +02:00
baldurk 5d859dfe5a On linux set the rpath to $ORIGIN so that librenderdoc.so will be found
* Distributions will just be a tarball with binaries and library, so if
  the user doesn't install it somewhere in LD_LIBRARY_PATH, we want it
  to still work.
2016-08-25 11:48:30 +02:00
baldurk 872fbe017b Make xlib and xcb support optional (but default on) on linux
* Also allow disabling GL a little better by removing the dependency in
  renderdoccmd.
* Disabling them now completely removes all xcb and xlib build
  dependencies. The resulting library/executable is only useful in
  limited situations - e.g. replaying vulkan remotely which doesn't need
  any window system interaction. Or capturing vulkan as well with the
  KHR_display WSI extension which doesn't need any built-time includes
  or libs.
2016-08-23 16:25:21 +02:00
baldurk a5c7620d24 Add install rules for renderdoc lib & binaries 2016-08-02 16:02:41 +02:00
baldurk ebb889a7ee Report supported windowing systems from replay, and choose which to use
* This is primarily for vulkan, which supports either xlib or xcb (and
  not necessarily both). GL still only supports xlib, windows and
  android only support one system regardless of API.
* This should also support xlib again for fetching keystates etc.
2016-07-22 18:23:30 +02:00
Michael Rennie ad2b266f95 Makefiles to build apk for RenderDocCmd on Android & More replay fixes. 2016-06-17 13:50:00 +02:00
baldurk c1f66de413 Add early OS X compiling support from @Zorro666 - still non-functional!
* Build with cmake -DENABLE_VULKAN=OFF -DENABLE_QRENDERDOC=OFF
2016-05-31 12:05:45 +02:00
Chia-I Wu cb9449230a Update CMake rules
* Suggest users to use VS on Windows
* Add a top-level wrapper Makefile and disallow in-source builds
* Support clang
* Centralize compiler flags
* Remove all occurrences of "if(WIN32)..."
* Make qrenderdoc an external project
2016-03-11 10:23:56 +08:00
Chia-I Wu 73a2e96c93 Use CMake on Linux
The suggested way to build RenderDoc on Linux is now

  $ mkdir build
  $ cd build
  $ cmake ..
  $ make

It will print an error when used on other platforms.
2016-03-10 10:29:52 +08:00