mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2026-05-14 14:28:08 +02:00
use cast wrappers for sanity checking
This commit is contained in:
parent
f2923613a4
commit
79a340bc15
1 changed files with 23 additions and 6 deletions
|
|
@ -269,6 +269,23 @@ slang_resolve_branches(struct gl_program *prog)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/** cast wrapper */
|
||||||
|
static struct gl_vertex_program *
|
||||||
|
vertex_program(struct gl_program *prog)
|
||||||
|
{
|
||||||
|
assert(prog->Target == GL_VERTEX_PROGRAM_ARB);
|
||||||
|
return (struct gl_vertex_program *) prog;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/** cast wrapper */
|
||||||
|
static struct gl_fragment_program *
|
||||||
|
fragment_program(struct gl_program *prog)
|
||||||
|
{
|
||||||
|
assert(prog->Target == GL_FRAGMENT_PROGRAM_ARB);
|
||||||
|
return (struct gl_fragment_program *) prog;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Shader linker. Currently:
|
* Shader linker. Currently:
|
||||||
|
|
@ -305,9 +322,9 @@ _slang_link2(GLcontext *ctx,
|
||||||
fragProg = NULL;
|
fragProg = NULL;
|
||||||
for (i = 0; i < shProg->NumShaders; i++) {
|
for (i = 0; i < shProg->NumShaders; i++) {
|
||||||
if (shProg->Shaders[i]->Type == GL_VERTEX_SHADER)
|
if (shProg->Shaders[i]->Type == GL_VERTEX_SHADER)
|
||||||
vertProg = (struct gl_vertex_program *) shProg->Shaders[i]->Programs[0];
|
vertProg = vertex_program(shProg->Shaders[i]->Programs[0]);
|
||||||
else if (shProg->Shaders[i]->Type == GL_FRAGMENT_SHADER)
|
else if (shProg->Shaders[i]->Type == GL_FRAGMENT_SHADER)
|
||||||
fragProg = (struct gl_fragment_program *) shProg->Shaders[i]->Programs[0];
|
fragProg = fragment_program(shProg->Shaders[i]->Programs[0]);
|
||||||
else
|
else
|
||||||
_mesa_problem(ctx, "unexpected shader target in slang_link2()");
|
_mesa_problem(ctx, "unexpected shader target in slang_link2()");
|
||||||
}
|
}
|
||||||
|
|
@ -329,10 +346,10 @@ _slang_link2(GLcontext *ctx,
|
||||||
* Make copies of the vertex/fragment programs now since we'll be
|
* Make copies of the vertex/fragment programs now since we'll be
|
||||||
* changing src/dst registers after merging the uniforms and varying vars.
|
* changing src/dst registers after merging the uniforms and varying vars.
|
||||||
*/
|
*/
|
||||||
shProg->VertexProgram = (struct gl_vertex_program *)
|
shProg->VertexProgram
|
||||||
_mesa_clone_program(ctx, &vertProg->Base);
|
= vertex_program(_mesa_clone_program(ctx, &vertProg->Base));
|
||||||
shProg->FragmentProgram = (struct gl_fragment_program *)
|
shProg->FragmentProgram
|
||||||
_mesa_clone_program(ctx, &fragProg->Base);
|
= fragment_program(_mesa_clone_program(ctx, &fragProg->Base));
|
||||||
|
|
||||||
link_varying_vars(shProg, &shProg->VertexProgram->Base);
|
link_varying_vars(shProg, &shProg->VertexProgram->Base);
|
||||||
link_varying_vars(shProg, &shProg->FragmentProgram->Base);
|
link_varying_vars(shProg, &shProg->FragmentProgram->Base);
|
||||||
|
|
|
||||||
Loading…
Add table
Reference in a new issue