Correct object data handling from shader programs
This commit is contained in:
parent
242bfca03e
commit
1272f453a2
1 changed files with 3 additions and 2 deletions
|
|
@ -2082,7 +2082,8 @@ static void s_unUseCurrentProgram() {
|
||||||
if (!localCurrentProgram) return;
|
if (!localCurrentProgram) return;
|
||||||
|
|
||||||
ObjectDataPtr objData = ctx->shareGroup()->getObjectData(SHADER,localCurrentProgram);
|
ObjectDataPtr objData = ctx->shareGroup()->getObjectData(SHADER,localCurrentProgram);
|
||||||
SET_ERROR_IF(!objData.Ptr() || objData.Ptr()->getDataType()!=PROGRAM_DATA,GL_INVALID_OPERATION);
|
if (!objData) return;
|
||||||
|
SET_ERROR_IF(objData.Ptr()->getDataType()!=PROGRAM_DATA,GL_INVALID_OPERATION);
|
||||||
ProgramData* programData = (ProgramData*)objData.Ptr();
|
ProgramData* programData = (ProgramData*)objData.Ptr();
|
||||||
programData->setInUse(false);
|
programData->setInUse(false);
|
||||||
if (programData->getDeleteStatus()) { glDeleteProgram(localCurrentProgram); }
|
if (programData->getDeleteStatus()) { glDeleteProgram(localCurrentProgram); }
|
||||||
|
|
@ -2094,7 +2095,7 @@ GL_APICALL void GL_APIENTRY glUseProgram(GLuint program){
|
||||||
const GLuint globalProgramName = ctx->shareGroup()->getGlobalName(SHADER,program);
|
const GLuint globalProgramName = ctx->shareGroup()->getGlobalName(SHADER,program);
|
||||||
SET_ERROR_IF(program!=0 && globalProgramName==0,GL_INVALID_VALUE);
|
SET_ERROR_IF(program!=0 && globalProgramName==0,GL_INVALID_VALUE);
|
||||||
ObjectDataPtr objData = ctx->shareGroup()->getObjectData(SHADER,program);
|
ObjectDataPtr objData = ctx->shareGroup()->getObjectData(SHADER,program);
|
||||||
SET_ERROR_IF(!objData.Ptr() || (objData.Ptr()->getDataType()!=PROGRAM_DATA),GL_INVALID_OPERATION);
|
SET_ERROR_IF(objData.Ptr() && (objData.Ptr()->getDataType()!=PROGRAM_DATA),GL_INVALID_OPERATION);
|
||||||
|
|
||||||
s_unUseCurrentProgram();
|
s_unUseCurrentProgram();
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue