* commit '91ed228d78e9c53ca4765c2968ec6873c7ef3a99': opengl translator: fixed normalized vertex attribs
This commit is contained in:
@@ -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);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -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();
|
||||
|
||||
@@ -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) {
|
||||
|
||||
@@ -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();
|
||||
};
|
||||
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -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();
|
||||
|
||||
Reference in New Issue
Block a user