From 4c6a77d5d8da5af66ca834c4898b9b4706c1bdbe Mon Sep 17 00:00:00 2001 From: baldurk Date: Wed, 25 Mar 2015 20:17:22 +0000 Subject: [PATCH] Slight tweaks (non-final) to get deallocate working properly in Qt UI --- renderdoc/api/replay/basic_types.h | 4 ++++ renderdoc/api/replay/renderdoc_replay.h | 12 +++++++----- 2 files changed, 11 insertions(+), 5 deletions(-) diff --git a/renderdoc/api/replay/basic_types.h b/renderdoc/api/replay/basic_types.h index 26887328f..30b774cca 100644 --- a/renderdoc/api/replay/basic_types.h +++ b/renderdoc/api/replay/basic_types.h @@ -62,7 +62,11 @@ struct array elems = 0; count = 0; } +#ifdef RENDERDOC_EXPORTS static void deallocate(const void *p) { free((void *)p); } +#else + static void deallocate(const void *p) { RENDERDOC_FreeArrayMem(p); } +#endif static void *allocate(size_t s) { return malloc(s); } T &operator [](size_t i) { return elems[i]; } diff --git a/renderdoc/api/replay/renderdoc_replay.h b/renderdoc/api/replay/renderdoc_replay.h index 68080565e..9c2e5d39e 100644 --- a/renderdoc/api/replay/renderdoc_replay.h +++ b/renderdoc/api/replay/renderdoc_replay.h @@ -30,8 +30,6 @@ typedef uint8_t byte; typedef uint32_t bool32; -#include "basic_types.h" - #ifdef WIN32 #ifdef RENDERDOC_EXPORTS @@ -57,6 +55,13 @@ typedef uint32_t bool32; #endif +// needs to be declared up here for reference in basic_types + +extern "C" RENDERDOC_API void RENDERDOC_CC RENDERDOC_FreeArrayMem(const void *mem); +typedef void (RENDERDOC_CC *pRENDERDOC_FreeArrayMem)(const void *mem); + +#include "basic_types.h" + // We give every resource a globally unique ID so that we can differentiate // between two textures allocated in the same memory (after the first is freed) // @@ -296,6 +301,3 @@ typedef void (RENDERDOC_CC *pRENDERDOC_LogText)(const char *text); extern "C" RENDERDOC_API bool32 RENDERDOC_CC RENDERDOC_GetThumbnail(const char *filename, byte *buf, uint32_t &len); typedef bool32 (RENDERDOC_CC *pRENDERDOC_GetThumbnail)(const char *filename, byte *buf, uint32_t &len); - -extern "C" RENDERDOC_API void RENDERDOC_CC RENDERDOC_FreeArrayMem(const void *mem); -typedef void (RENDERDOC_CC *pRENDERDOC_FreeArrayMem)(const void *mem);