summaryrefslogtreecommitdiff
path: root/tools/emulator/opengl/shared/OpenglCodecCommon/GLDecoderContextData.h
diff options
context:
space:
mode:
Diffstat (limited to 'tools/emulator/opengl/shared/OpenglCodecCommon/GLDecoderContextData.h')
-rw-r--r--tools/emulator/opengl/shared/OpenglCodecCommon/GLDecoderContextData.h18
1 files changed, 15 insertions, 3 deletions
diff --git a/tools/emulator/opengl/shared/OpenglCodecCommon/GLDecoderContextData.h b/tools/emulator/opengl/shared/OpenglCodecCommon/GLDecoderContextData.h
index eeb473432..2700554f2 100644
--- a/tools/emulator/opengl/shared/OpenglCodecCommon/GLDecoderContextData.h
+++ b/tools/emulator/opengl/shared/OpenglCodecCommon/GLDecoderContextData.h
@@ -19,6 +19,7 @@
#include <assert.h>
#include <string.h>
#include "FixedBuffer.h"
+#include "codec_defs.h"
class GLDecoderContextData {
public:
@@ -40,18 +41,29 @@ public:
LAST_LOCATION = 14
} PointerDataLocation;
+ GLDecoderContextData(int nLocations = CODEC_MAX_VERTEX_ATTRIBUTES) :
+ m_nLocations(nLocations)
+ {
+ m_pointerData = new FixedBuffer(m_nLocations);
+ }
+
+ ~GLDecoderContextData() {
+ delete m_pointerData;
+ }
+
void storePointerData(PointerDataLocation loc, void *data, size_t len) {
- assert(loc < LAST_LOCATION);
+ assert(loc < m_nLocations);
m_pointerData[loc].alloc(len);
memcpy(m_pointerData[loc].ptr(), data, len);
}
void *pointerData(PointerDataLocation loc) {
- assert(loc < LAST_LOCATION);
+ assert(loc < m_nLocations);
return m_pointerData[loc].ptr();
}
private:
- FixedBuffer m_pointerData[LAST_LOCATION];
+ FixedBuffer *m_pointerData;
+ int m_nLocations;
};
#endif