mesa: use _mesa_validate_shader_target() more frequently.
This patch replaces code in _mesa_new_shader() and delete_shader_cb() that checks the type of a shader with calls to _mesa_validate_shader_target(). This has two advantages: it allows for a more thorough check (since _mesa_validate_shader_target() doesn't permit shader targets that aren't supported by the back-end), and it reduces the amount of code that will need to be modified when adding new shader stages. Reviewed-by: Chris Forbes <chrisf@ijw.co.nz> Reviewed-by: Brian Paul <brianp@vmware.com>
This commit is contained in:
@@ -38,6 +38,7 @@
|
||||
#include "dlist.h"
|
||||
#include "samplerobj.h"
|
||||
#include "set.h"
|
||||
#include "shaderapi.h"
|
||||
#include "shaderobj.h"
|
||||
#include "syncobj.h"
|
||||
|
||||
@@ -218,8 +219,7 @@ delete_shader_cb(GLuint id, void *data, void *userData)
|
||||
{
|
||||
struct gl_context *ctx = (struct gl_context *) userData;
|
||||
struct gl_shader *sh = (struct gl_shader *) data;
|
||||
if (sh->Type == GL_FRAGMENT_SHADER || sh->Type == GL_VERTEX_SHADER ||
|
||||
sh->Type == GL_GEOMETRY_SHADER) {
|
||||
if (_mesa_validate_shader_target(ctx, sh->Type)) {
|
||||
ctx->Driver.DeleteShader(ctx, sh);
|
||||
}
|
||||
else {
|
||||
|
Reference in New Issue
Block a user