mirror of
https://github.com/libretro/RetroArch
synced 2025-04-07 13:23:32 +00:00
(RGL) Remove rglFifoGlVertexAttribPointer
This commit is contained in:
parent
83a361cd82
commit
408a0c34bc
@ -243,64 +243,6 @@ DECLARE_PACKED_TYPE(GL_##REALTYPE,PACKED_TYPE(REALTYPE,N,S1,S2,S3,S4,REV),N,S1,S
|
|||||||
#define GET_BITS(to,from,first,count) if ((count)>0) to=((GLfloat)(((from)>>(first))&((1<<(count))-1)))/(GLfloat)((1<<((count==0)?1:count))-1)
|
#define GET_BITS(to,from,first,count) if ((count)>0) to=((GLfloat)(((from)>>(first))&((1<<(count))-1)))/(GLfloat)((1<<((count==0)?1:count))-1)
|
||||||
#define PUT_BITS(from,to,first,count) if ((count)>0) to|=((unsigned int)((from)*((GLfloat)((1<<((count==0)?1:count))-1))))<<(first);
|
#define PUT_BITS(from,to,first,count) if ((count)>0) to|=((unsigned int)((from)*((GLfloat)((1<<((count==0)?1:count))-1))))<<(first);
|
||||||
|
|
||||||
static inline void _RGLFifoGlVertexAttribPointer
|
|
||||||
(
|
|
||||||
GLuint index,
|
|
||||||
GLint size,
|
|
||||||
RGLEnum type,
|
|
||||||
GLboolean normalized,
|
|
||||||
GLsizei stride,
|
|
||||||
GLushort frequency,
|
|
||||||
GLuint offset
|
|
||||||
)
|
|
||||||
{
|
|
||||||
|
|
||||||
switch(size)
|
|
||||||
{
|
|
||||||
case 0:
|
|
||||||
stride = 0;
|
|
||||||
normalized = 0;
|
|
||||||
type = RGL_FLOAT;
|
|
||||||
offset = 0;
|
|
||||||
break;
|
|
||||||
case 1:
|
|
||||||
case 2:
|
|
||||||
case 3:
|
|
||||||
case 4:
|
|
||||||
break;
|
|
||||||
default:
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
|
|
||||||
uint8_t gcmType = 0;
|
|
||||||
switch ( type )
|
|
||||||
{
|
|
||||||
case RGL_UNSIGNED_BYTE:
|
|
||||||
if (normalized)
|
|
||||||
gcmType = CELL_GCM_VERTEX_UB;
|
|
||||||
else
|
|
||||||
gcmType = CELL_GCM_VERTEX_UB256;
|
|
||||||
break;
|
|
||||||
case RGL_SHORT:
|
|
||||||
gcmType = normalized ? CELL_GCM_VERTEX_S1 : CELL_GCM_VERTEX_S32K;
|
|
||||||
break;
|
|
||||||
case RGL_FLOAT:
|
|
||||||
gcmType = CELL_GCM_VERTEX_F;
|
|
||||||
break;
|
|
||||||
case RGL_HALF_FLOAT:
|
|
||||||
gcmType = CELL_GCM_VERTEX_SF;
|
|
||||||
break;
|
|
||||||
case RGL_CMP:
|
|
||||||
size = 1;
|
|
||||||
gcmType = CELL_GCM_VERTEX_CMP;
|
|
||||||
break;
|
|
||||||
default:
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
|
|
||||||
cellGcmSetVertexDataArrayInline( &_RGLState.fifo, index, frequency, stride, size, gcmType, CELL_GCM_LOCATION_LOCAL, offset );
|
|
||||||
}
|
|
||||||
|
|
||||||
static void _RGLResetAttributeState( jsAttributeState* as )
|
static void _RGLResetAttributeState( jsAttributeState* as )
|
||||||
{
|
{
|
||||||
for(int i = 0; i < MAX_VERTEX_ATTRIBS; ++i)
|
for(int i = 0; i < MAX_VERTEX_ATTRIBS; ++i)
|
||||||
@ -1742,12 +1684,14 @@ GLAPI void APIENTRY glClear( GLbitfield mask )
|
|||||||
GLuint bufferId = gmmAlloc(0, sizeof(_RGLClearVertexBuffer));
|
GLuint bufferId = gmmAlloc(0, sizeof(_RGLClearVertexBuffer));
|
||||||
memcpy( gmmIdToAddress(bufferId), _RGLClearVertexBuffer, sizeof( _RGLClearVertexBuffer ) );
|
memcpy( gmmIdToAddress(bufferId), _RGLClearVertexBuffer, sizeof( _RGLClearVertexBuffer ) );
|
||||||
GmmBaseBlock *pBaseBlock = (GmmBaseBlock *)bufferId;
|
GmmBaseBlock *pBaseBlock = (GmmBaseBlock *)bufferId;
|
||||||
_RGLFifoGlVertexAttribPointer( 0, 3, RGL_FLOAT, CELL_GCM_FALSE, 3*sizeof( GLfloat ), 1, gmmAddressToOffset(pBaseBlock->address, pBaseBlock->isMain));
|
|
||||||
|
cellGcmSetVertexDataArrayInline( &_RGLState.fifo, 0 /* index */, 1/* frequency */, 3 * sizeof(GLfloat)/*stride */, 3 /* size */, CELL_GCM_VERTEX_F /* gcmType */, CELL_GCM_LOCATION_LOCAL, gmmAddressToOffset(pBaseBlock->address, pBaseBlock->isMain)/* offset */);
|
||||||
|
|
||||||
RGLBIT_TRUE( LContext->attribs->DirtyMask, 0 );
|
RGLBIT_TRUE( LContext->attribs->DirtyMask, 0 );
|
||||||
|
|
||||||
for(int i = 1; i < MAX_VERTEX_ATTRIBS; ++i)
|
for(int i = 1; i < MAX_VERTEX_ATTRIBS; ++i)
|
||||||
{
|
{
|
||||||
_RGLFifoGlVertexAttribPointer( i, 0, RGL_FLOAT, 0, 0, 0, 0 );
|
cellGcmSetVertexDataArrayInline( &_RGLState.fifo, i/* index */, 0/* frequency */, 0/*stride */, 0/* size */, CELL_GCM_VERTEX_F /*gcmType */, CELL_GCM_LOCATION_LOCAL, 0/* offset */ );
|
||||||
RGLBIT_TRUE( LContext->attribs->DirtyMask, i );
|
RGLBIT_TRUE( LContext->attribs->DirtyMask, i );
|
||||||
}
|
}
|
||||||
cellGcmSetVertexData4fInline( &_RGLState.fifo, _RGL_ATTRIB_PRIMARY_COLOR_INDEX, (GLfloat*)&LContext->ClearColor);
|
cellGcmSetVertexData4fInline( &_RGLState.fifo, _RGL_ATTRIB_PRIMARY_COLOR_INDEX, (GLfloat*)&LContext->ClearColor);
|
||||||
@ -5891,9 +5835,10 @@ static GLuint _RGLValidateAttributesSlow( jsDrawParams *dparams)
|
|||||||
continue;
|
continue;
|
||||||
|
|
||||||
jsAttribute* attrib = as->attrib + i;
|
jsAttribute* attrib = as->attrib + i;
|
||||||
|
|
||||||
if ( RGLBIT_GET( as->EnabledMask, i ) )
|
if ( RGLBIT_GET( as->EnabledMask, i ) )
|
||||||
{
|
{
|
||||||
const GLsizei stride = attrib->clientStride;
|
GLsizei stride = attrib->clientStride;
|
||||||
const GLuint freq = attrib->frequency;
|
const GLuint freq = attrib->frequency;
|
||||||
|
|
||||||
if ( RGL_UNLIKELY( dparams->attribXferSize[i] ) )
|
if ( RGL_UNLIKELY( dparams->attribXferSize[i] ) )
|
||||||
@ -5921,12 +5866,43 @@ static GLuint _RGLValidateAttributesSlow( jsDrawParams *dparams)
|
|||||||
gpuOffset = gmmAddressToOffset(pBaseBlock->address, pBaseBlock->isMain) + (( const GLubyte* )attrib->clientData - ( const GLubyte* )NULL );
|
gpuOffset = gmmAddressToOffset(pBaseBlock->address, pBaseBlock->isMain) + (( const GLubyte* )attrib->clientData - ( const GLubyte* )NULL );
|
||||||
}
|
}
|
||||||
|
|
||||||
_RGLFifoGlVertexAttribPointer( i, attrib->clientSize,
|
if(attrib->clientSize == 0)
|
||||||
( RGLEnum )attrib->clientType, attrib->normalized, stride, freq, gpuOffset );
|
{
|
||||||
|
stride = 0;
|
||||||
|
attrib->normalized = 0;
|
||||||
|
attrib->clientType = RGL_FLOAT;
|
||||||
|
gpuOffset = 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
uint8_t gcmType = 0;
|
||||||
|
|
||||||
|
switch ( (RGLEnum)attrib->clientType )
|
||||||
|
{
|
||||||
|
case RGL_UNSIGNED_BYTE:
|
||||||
|
gcmType = attrib->normalized ? CELL_GCM_VERTEX_UB : CELL_GCM_VERTEX_UB256;
|
||||||
|
break;
|
||||||
|
case RGL_SHORT:
|
||||||
|
gcmType = attrib->normalized ? CELL_GCM_VERTEX_S1 : CELL_GCM_VERTEX_S32K;
|
||||||
|
break;
|
||||||
|
case RGL_FLOAT:
|
||||||
|
gcmType = CELL_GCM_VERTEX_F;
|
||||||
|
break;
|
||||||
|
case RGL_HALF_FLOAT:
|
||||||
|
gcmType = CELL_GCM_VERTEX_SF;
|
||||||
|
break;
|
||||||
|
case RGL_CMP:
|
||||||
|
attrib->clientSize = 1;
|
||||||
|
gcmType = CELL_GCM_VERTEX_CMP;
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
|
cellGcmSetVertexDataArrayInline( &_RGLState.fifo, i, freq, stride, attrib->clientSize, gcmType, CELL_GCM_LOCATION_LOCAL, gpuOffset );
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
_RGLFifoGlVertexAttribPointer( i, 0, RGL_FLOAT, 0, 0, 0, 0 );
|
cellGcmSetVertexDataArrayInline( &_RGLState.fifo, i, 0, 0, 0, CELL_GCM_VERTEX_F, CELL_GCM_LOCATION_LOCAL, 0);
|
||||||
cellGcmSetVertexData4fInline( &_RGLState.fifo, i,attrib->value);
|
cellGcmSetVertexData4fInline( &_RGLState.fifo, i,attrib->value);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -7520,9 +7496,7 @@ static _CGparameter *_cgGetNamedParameter( _CGprogram* progPtr, const char* name
|
|||||||
break;
|
break;
|
||||||
case CGP_STRUCTURE:
|
case CGP_STRUCTURE:
|
||||||
if ( done )
|
if ( done )
|
||||||
{
|
|
||||||
itemIndex = ( int )( currentEntry - program->parametersEntries );
|
itemIndex = ( int )( currentEntry - program->parametersEntries );
|
||||||
}
|
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
const CgParameterStructure *parameterStructure = _RGLGetParameterStructure( program, currentEntry );
|
const CgParameterStructure *parameterStructure = _RGLGetParameterStructure( program, currentEntry );
|
||||||
|
Loading…
x
Reference in New Issue
Block a user