X-Git-Url: https://git.cworth.org/git?a=blobdiff_plain;f=retrace%2Fretrace.hpp;h=311cef9474deb62158b236ba0ab361dda014fe8a;hb=addf7f90727a50040d79e6da6d59ffb031074674;hp=f0bc4534b69d068f89518050b6361e0dfc9a0764;hpb=2133d27c0f719205881e2f050c38f9b3d6bcf046;p=apitrace diff --git a/retrace/retrace.hpp b/retrace/retrace.hpp index f0bc453..311cef9 100644 --- a/retrace/retrace.hpp +++ b/retrace/retrace.hpp @@ -36,54 +36,19 @@ #include "trace_model.hpp" #include "trace_parser.hpp" +#include "trace_profiler.hpp" -namespace retrace { - - -extern trace::Parser parser; +namespace image { + class Image; +} -/** - * Handle map. - * - * It is just like a regular std::map container, but lookups of missing - * keys return the key instead of default constructor. - * - * This is necessary for several GL named objects, where one can either request - * the implementation to generate an unique name, or pick a value never used - * before. - * - * XXX: In some cases, instead of returning the key, it would make more sense - * to return an unused data value (e.g., container count). - */ -template -class map -{ -private: - typedef std::map base_type; - base_type base; +namespace retrace { -public: - T & operator[] (const T &key) { - typename base_type::iterator it; - it = base.find(key); - if (it == base.end()) { - return (base[key] = key); - } - return it->second; - } - - const T & operator[] (const T &key) const { - typename base_type::const_iterator it; - it = base.find(key); - if (it == base.end()) { - return (base[key] = key); - } - return it->second; - } -}; +extern trace::Parser parser; +extern trace::Profiler profiler; /** @@ -169,31 +134,34 @@ public: }; -void -addRegion(unsigned long long address, void *buffer, unsigned long long size); - -void -delRegionByPointer(void *ptr); - -void * -toPointer(trace::Value &value, bool bind = false); - - /** * Output verbosity when retracing files. */ extern int verbosity; /** - * Avoid expensive checks when benchmarking. + * Debugging checks. */ -extern bool benchmark; +extern bool debug; /** * Add profiling data to the dump when retracing. */ extern bool profiling; +/** + * State dumping. + */ +extern bool dumpingState; + + +extern bool doubleBuffer; +extern bool coreProfile; + +extern bool profileGPU; + +extern unsigned frameNo; + std::ostream &warning(trace::Call &call); @@ -241,6 +209,31 @@ public: }; +void +setUp(void); + +void +addCallbacks(retrace::Retracer &retracer); + +void +frameComplete(trace::Call &call); + +image::Image * +getSnapshot(void); + +bool +dumpState(std::ostream &os); + +void +flushRendering(void); + +void +waitForInput(void); + +void +cleanUp(void); + + } /* namespace retrace */ #endif /* _RETRACE_HPP_ */