uintptr_t next;
public:
+ inline
ScopedAllocator() :
next(0) {
}
return static_cast<void *>(&buf[1]);
}
- template< class T >
- inline T *
- alloc(size_t n = 1) {
- return static_cast<T *>(alloc(sizeof(T) * n));
- }
-
/**
* Allocate an array with the same dimensions as the specified value.
*/
- template< class T >
- inline T *
- alloc(const trace::Value *value) {
+ inline void *
+ alloc(const trace::Value *value, size_t size) {
const trace::Array *array = dynamic_cast<const trace::Array *>(value);
if (array) {
- return alloc<T>(array->size());
+ return alloc(array->size() * size);
}
const trace::Null *null = dynamic_cast<const trace::Null *>(value);
if (null) {
* Add profiling data to the dump when retracing.
*/
extern bool profiling;
+extern bool profilingCpuTimes;
+extern bool profilingGpuTimes;
+extern bool profilingPixelsDrawn;
/**
* State dumping.
extern bool dumpingState;
+enum Driver {
+ DRIVER_DEFAULT,
+ DRIVER_HARDWARE, // force hardware
+ DRIVER_SOFTWARE,
+ DRIVER_REFERENCE,
+ DRIVER_NULL,
+ DRIVER_MODULE,
+};
+
+extern Driver driver;
+extern const char *driverModule;
+
extern bool doubleBuffer;
extern bool coreProfile;
-extern bool profileGPU;
-
extern unsigned frameNo;
+extern unsigned callNo;
std::ostream &warning(trace::Call &call);
};
+class Dumper
+{
+public:
+ virtual image::Image *
+ getSnapshot(void) {
+ return NULL;
+ }
+
+ virtual bool
+ dumpState(std::ostream &os) {
+ return false;
+ }
+};
+
+
+extern Dumper *dumper;
+
+
void
setUp(void);
void
frameComplete(trace::Call &call);
-image::Image *
-getSnapshot(void);
-bool
-dumpState(std::ostream &os);
void
flushRendering(void);