зеркало из https://github.com/AvaloniaUI/angle.git
Fixes improper error generation by DeleteShader
TRAC #11662 Signed-off-by: Nicolas Capens Signed-off-by: Daniel Koch Author: Shannon Woods git-svn-id: https://angleproject.googlecode.com/svn/trunk@134 736b8ea6-26fd-11df-bfd4-992fa37f6226
This commit is contained in:
Родитель
0cefaf45e4
Коммит
75401e61fb
|
@ -1104,10 +1104,27 @@ void __stdcall glDeleteProgram(GLuint program)
|
|||
|
||||
try
|
||||
{
|
||||
if (program == 0)
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
gl::Context *context = gl::getContext();
|
||||
|
||||
if (context)
|
||||
{
|
||||
if (!context->getProgram(program))
|
||||
{
|
||||
if(context->getShader(program))
|
||||
{
|
||||
return error(GL_INVALID_OPERATION);
|
||||
}
|
||||
else
|
||||
{
|
||||
return error(GL_INVALID_VALUE);
|
||||
}
|
||||
}
|
||||
|
||||
context->deleteProgram(program);
|
||||
}
|
||||
}
|
||||
|
@ -1150,10 +1167,27 @@ void __stdcall glDeleteShader(GLuint shader)
|
|||
|
||||
try
|
||||
{
|
||||
if (shader == 0)
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
gl::Context *context = gl::getContext();
|
||||
|
||||
if (context)
|
||||
{
|
||||
if (!context->getShader(shader))
|
||||
{
|
||||
if(context->getProgram(shader))
|
||||
{
|
||||
return error(GL_INVALID_OPERATION);
|
||||
}
|
||||
else
|
||||
{
|
||||
return error(GL_INVALID_VALUE);
|
||||
}
|
||||
}
|
||||
|
||||
context->deleteShader(shader);
|
||||
}
|
||||
}
|
||||
|
|
Загрузка…
Ссылка в новой задаче