am 2d233e86: Merge "opengl translator: fixed normalized vertex attribs"

* commit '2d233e8633fdca4c34b9f620b36851b6f2678ab8':
  opengl translator: fixed normalized vertex attribs
This commit is contained in:
David Turner
2011-07-08 10:43:31 -07:00
committed by Android Git Automerger
6 changed files with 12 additions and 10 deletions

View File

@@ -63,7 +63,7 @@ GLEScmContext::~GLEScmContext(){
//setting client side arr
void GLEScmContext::setupArr(const GLvoid* arr,GLenum arrayType,GLenum dataType,GLint size,GLsizei stride,int index){
void GLEScmContext::setupArr(const GLvoid* arr,GLenum arrayType,GLenum dataType,GLint size,GLsizei stride,GLboolean normalized, int index){
if( arr == NULL) return;
switch(arrayType) {
case GL_VERTEX_ARRAY:
@@ -92,10 +92,10 @@ void GLEScmContext::setupArrayPointerHelper(GLESConversionArrays& cArrs,GLint fi
if(needConvert(cArrs,first,count,type,indices,direct,p,array_id)){
//conversion has occured
ArrayData currentArr = cArrs.getCurrentArray();
setupArr(currentArr.data,array_id,currentArr.type,size,currentArr.stride,cArrs.getCurrentIndex());
setupArr(currentArr.data,array_id,currentArr.type,size,currentArr.stride,GL_FALSE, cArrs.getCurrentIndex());
++cArrs;
} else {
setupArr(p->getData(),array_id,dataType,size,p->getStride());
setupArr(p->getData(),array_id,dataType,size,p->getStride(), GL_FALSE);
}
}

View File

@@ -55,7 +55,7 @@ protected:
bool needConvert(GLESConversionArrays& fArrs,GLint first,GLsizei count,GLenum type,const GLvoid* indices,bool direct,GLESpointer* p,GLenum array_id);
private:
void setupArrayPointerHelper(GLESConversionArrays& fArrs,GLint first,GLsizei count,GLenum type,const GLvoid* indices,bool direct,GLenum array_id,GLESpointer* p);
void setupArr(const GLvoid* arr,GLenum arrayType,GLenum dataType,GLint size,GLsizei stride,int pointsIndex = -1);
void setupArr(const GLvoid* arr,GLenum arrayType,GLenum dataType,GLint size,GLsizei stride,GLboolean normalized, int pointsIndex = -1);
void drawPoints(PointSizeIndices* points);
void drawPointsData(GLESConversionArrays& arrs,GLint first,GLsizei count,GLenum type,const GLvoid* indices_in,bool isElemsDraw);
void initExtensionString();

View File

@@ -46,18 +46,19 @@ void GLESv2Context::setupArraysPointers(GLESConversionArrays& cArrs,GLint first,
if(needConvert(cArrs,first,count,type,indices,direct,p,array_id)){
//conversion has occured
ArrayData currentArr = cArrs.getCurrentArray();
setupArr(currentArr.data,array_id,currentArr.type,size,currentArr.stride);
setupArr(currentArr.data,array_id,currentArr.type,size,currentArr.stride, p->getNormalized());
++cArrs;
} else {
setupArr(p->getData(),array_id,p->getType(),size,p->getStride());
setupArr(p->getData(),array_id,p->getType(),
size,p->getStride(), p->getNormalized());
}
}
}
//setting client side arr
void GLESv2Context::setupArr(const GLvoid* arr,GLenum arrayType,GLenum dataType,GLint size,GLsizei stride,int index){
void GLESv2Context::setupArr(const GLvoid* arr,GLenum arrayType,GLenum dataType,GLint size,GLsizei stride,GLboolean normalized, int index){
if(arr == NULL) return;
s_glDispatch.glVertexAttribPointer(arrayType,size,dataType,GL_FALSE,stride,arr);
s_glDispatch.glVertexAttribPointer(arrayType,size,dataType,normalized,stride,arr);
}
bool GLESv2Context::needConvert(GLESConversionArrays& cArrs,GLint first,GLsizei count,GLenum type,const GLvoid* indices,bool direct,GLESpointer* p,GLenum array_id) {

View File

@@ -33,7 +33,7 @@ public:
protected:
bool needConvert(GLESConversionArrays& fArrs,GLint first,GLsizei count,GLenum type,const GLvoid* indices,bool direct,GLESpointer* p,GLenum array_id);
private:
void setupArr(const GLvoid* arr,GLenum arrayType,GLenum dataType,GLint size,GLsizei stride,int pointsIndex = -1);
void setupArr(const GLvoid* arr,GLenum arrayType,GLenum dataType,GLint size,GLsizei stride,GLboolean normalized, int pointsIndex = -1);
void initExtensionString();
};

View File

@@ -159,7 +159,7 @@ protected:
private:
virtual void setupArr(const GLvoid* arr,GLenum arrayType,GLenum dataType,GLint size,GLsizei stride,int pointsIndex = -1) = 0 ;
virtual void setupArr(const GLvoid* arr,GLenum arrayType,GLenum dataType,GLint size,GLsizei stride, GLboolean normalized, int pointsIndex = -1) = 0 ;
GLuint getBuffer(GLenum target);
ShareGroupPtr m_shareGroup;

View File

@@ -30,6 +30,7 @@ public:
const GLvoid* getArrayData() const;
GLvoid* getBufferData() const;
GLuint getBufferName() const;
GLboolean getNormalized() const { return m_normalize ? GL_TRUE : GL_FALSE; }
const GLvoid* getData() const;
unsigned int getBufferOffset() const;
void redirectPointerData();