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