emulator Opengl - number of supported vertex attributes

make the number of suppoted vertex attributes (by the codec)
common across the encoder and the decoder.

Change-Id: I699ef62821566cec0764982872adb92ebb8861e9
This commit is contained in:
Jacky Romano
2011-04-13 10:03:53 +03:00
committed by David 'Digit' Turner
parent e72ec4bfbd
commit 68367ae969
4 changed files with 22 additions and 9 deletions

View File

@@ -25,11 +25,9 @@ public:
}
~FixedBuffer() {
if (m_buffer != NULL) {
delete m_buffer;
m_bufferLen = 0;
}
}
void * alloc(size_t size) {
if (m_bufferLen >= size) return (void *)(m_buffer);

View File

@@ -30,6 +30,7 @@
#include <stdio.h>
#include <stdlib.h>
#include "ErrorLog.h"
#include "codec_defs.h"
class GLClientState {
public:
@@ -70,7 +71,7 @@ public:
} PixelStoreState;
public:
GLClientState(int nLocations = 32);
GLClientState(int nLocations = CODEC_MAX_VERTEX_ATTRIBUTES);
~GLClientState();
int nLocations() { return m_nLocations; }
const PixelStoreState *pixelStoreState() { return &m_pixelStore; }

View File

@@ -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;
void storePointerData(PointerDataLocation loc, void *data, size_t len) {
assert(loc < LAST_LOCATION);
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 < 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

View File

@@ -18,4 +18,6 @@
#define CODEC_SERVER_PORT 22468
#define CODEC_MAX_VERTEX_ATTRIBUTES 64
#endif