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

* commit '91ed228d78e9c53ca4765c2968ec6873c7ef3a99':
  opengl translator: fixed normalized vertex attribs
This commit is contained in:
David Turner
2011-07-08 10:51:51 -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 //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; if( arr == NULL) return;
switch(arrayType) { switch(arrayType) {
case GL_VERTEX_ARRAY: 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)){ if(needConvert(cArrs,first,count,type,indices,direct,p,array_id)){
//conversion has occured //conversion has occured
ArrayData currentArr = cArrs.getCurrentArray(); 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; ++cArrs;
} else { } 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); bool needConvert(GLESConversionArrays& fArrs,GLint first,GLsizei count,GLenum type,const GLvoid* indices,bool direct,GLESpointer* p,GLenum array_id);
private: private:
void setupArrayPointerHelper(GLESConversionArrays& fArrs,GLint first,GLsizei count,GLenum type,const GLvoid* indices,bool direct,GLenum array_id,GLESpointer* p); 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 drawPoints(PointSizeIndices* points);
void drawPointsData(GLESConversionArrays& arrs,GLint first,GLsizei count,GLenum type,const GLvoid* indices_in,bool isElemsDraw); void drawPointsData(GLESConversionArrays& arrs,GLint first,GLsizei count,GLenum type,const GLvoid* indices_in,bool isElemsDraw);
void initExtensionString(); 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)){ if(needConvert(cArrs,first,count,type,indices,direct,p,array_id)){
//conversion has occured //conversion has occured
ArrayData currentArr = cArrs.getCurrentArray(); 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; ++cArrs;
} else { } 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 //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; 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) { 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: protected:
bool needConvert(GLESConversionArrays& fArrs,GLint first,GLsizei count,GLenum type,const GLvoid* indices,bool direct,GLESpointer* p,GLenum array_id); bool needConvert(GLESConversionArrays& fArrs,GLint first,GLsizei count,GLenum type,const GLvoid* indices,bool direct,GLESpointer* p,GLenum array_id);
private: 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(); void initExtensionString();
}; };

View File

@@ -159,7 +159,7 @@ protected:
private: 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); GLuint getBuffer(GLenum target);
ShareGroupPtr m_shareGroup; ShareGroupPtr m_shareGroup;

View File

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