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:
daniel@transgaming.com 2010-04-13 03:26:39 +00:00
Родитель 0cefaf45e4
Коммит 75401e61fb
1 изменённых файлов: 34 добавлений и 0 удалений

Просмотреть файл

@ -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);
}
}