From 04b1549c0f299e00260a2f68db2b6a46a3460dad Mon Sep 17 00:00:00 2001 From: baldurk Date: Fri, 2 May 2014 08:12:54 +0100 Subject: [PATCH] Update README with source information --- README.md | 96 +++++++++++++++++++++++++++++++++++++++++++++++++++++-- 1 file changed, 93 insertions(+), 3 deletions(-) diff --git a/README.md b/README.md index 8f03f354c..56467da37 100644 --- a/README.md +++ b/README.md @@ -3,12 +3,102 @@ RenderDoc Welcome to RenderDoc - a graphics debugger, currently available for D3D11 development on windows. -This repository is here to keep track of bugs and discussion, as well as to (eventually) house the source code to the application, when it's released. +Quick Links: -More information can be found at http://cryengine.com/renderdoc +* **Homepage**: http://cryengine.com/renderdoc +* **Forums**: http://crydev.net/renderdoc +* **Documentation**: renderdoc.chm in the build, or http://docs.renderdoc.org/ +* **Tutorials**: There are some video tutorials on Youtube: http://www.youtube.com/user/baldurkarlsson/ +* **Email contact**: renderdoc@crytek.com +* **IRC channel**: #renderdoc on freenode +* **Roadmap/future development**: Roadmap on the wiki + +Downloads +-------------- + +There are binary releases available, built from the release targets. If you just want to use the program and you ended up here, this is what you want :). + +* http://cryengine.com/renderdoc - Official stable installers +* http://renderdoc.org/autobuild - Automated builds from the master branch, as just zipped folders + +It's recommended that if you're new you start with the latest official stable installer, and only use the automated builds if you want the bleeding edge, or you want a specific bugfix. + +Documentation & How to use +-------------- + +The documentation is included in the builds, and also available here: http://docs.renderdoc.org/. There are some video tutorials on Youtube: http://www.youtube.com/user/baldurkarlsson/ License -------------- -RenderDoc is released under the MIT license, so there are no restrictions on your use of it either commercial or non-commercial. This license will also not change when the source is released, so any source modifications will be equally unrestricted. +RenderDoc is released under the MIT license, see LICENSE.md for full text as well as 3rd party library acknowledgements. + +Contributing & Development +-------------- + +There are always plenty of things to do, if you'd like to chip in! Check out the roadmap page in the wiki for future tasks to tackle, or have a look at the issues for outstanding bugs. I'll try and tag things that seem like small changes that would be a good way for someone to get started with. + +The **master** branch is kept relatively stable - ie. it should always build and run but might contain new bugs compared to a stable release. There are auto-builds that come off this branch. If you're working on any changes you should branch from **master** and submit pull requests against **master**. + +The **dev** branch is where I work and it is liable to not compile, be horribly broken, have its history rewritten as I rebase against **master**, etc. The reason for having this branch is mostly so that what I'm doing is visible if people are interested and so I have somewhere to push to, to sync between work and home etc. + +If you're tackling anything large then please contact me and post an issue so that everyone knows you're working on it and there's not duplicated effort. *Specifically* if you want to extend RenderDoc to a platform or API that it doesn't already support please get in touch, as there might already be code that isn't committed yet. Particularly if this is not a public API that anyone can write against. + +Official releases will get a branch made from **master** for them, autobuilds are just marked with the hash of the commit they were built from. + +Please don't distribute releases marked with a version number as it will confuse me with auto-submitted crashes since I won't have the symbols for them. If you distribute releases leave the version information as is (master is always marked as an unofficial non-versioned build). + +Building +-------------- + +Building RenderDoc is fairly straight forward. + +### Windows ### + +The main solution is in the root folder. renderdoc.sln is a VS2010 solution, there may be other versions as side .sln files next to it. + +The only external dependency should be the Windows 8.1 SDK. The 8.0 SDK should also work fine, but the vcxproj is set up to look in $(ProgramFiles)\Windows Kits\8.1\ for the necessary paths. If your SDK is installed elsewhere you'll also need to change these locally. + +Profile is recommended for day-to-day dev. It's debuggable but not too slow. Release is obviously what you should build for any builds you'll send out to people or if you want to evaluate performance. + +### Linux ### + +Just 'make' in the root should do the trick. This build system is work in progress as the linux port is very early, so it may change! + +Code Explanation +-------------- + +There are several pages on the wiki explaining different aspects of how the code fits together - like how the capture-side works vs replay-side, how shader debugging works, etc. + + renderdoc/ + dist.sh ; a little script that will build into dist/ with everything necessary + ; to distribute a build - assumes that exes etc are already built + renderdoc/ + 3rdparty/ ; third party utilities & libraries included + ... ; everything else in here consists of the core renderdoc runtime + renderdoccmd/ ; A small C++ utility program that runs to do various little tasks + renderdocui/ ; The .NET UI layer built on top of renderdoc/ + pdblocate/ ; a simple stub program to invoke DIA to look up symbols/pdbs + ; for callstack resolution on windows + docs/ ; source documentation for the .chm file or http://docs.renderdoc.org/ + ; in the Sandcastle help file builder + installer/ ; installer scripts for WiX Toolset + ScintillaNET/ ; .NET component for using Scintilla in the shader viewers + WinFormsUI/ ; dockpanelsuite for docking UI + breakpad/ ; parts of google breakpad necessary for crash reporting system + +Tips +-------------- + +### Visual Studio Visualisers ### + +You might find these visualisers useful, going under your [Visualizer] section in autoexp.dat: + + rdctype::wstr { preview([$e.elems,su]) stringview([$e.elems,su]) } + rdctype::str { preview([$e.elems,s]) stringview([$e.elems,s]) } + + rdctype::array<*> { + preview ( #( "[",$e.count,"] {", #array(expr: $e.elems[$i], size: $e.count), "}") ) + children ( #( #([size] : $e.count), #array(expr: $e.elems[$i], size: $e.count) ) ) + }