Exemple #1
0
static void r300DeleteProgram(GLcontext * ctx, struct gl_program *prog)
{
    struct r300_vertex_program_cont *vp = (struct r300_vertex_program_cont *)prog;
    struct r300_fragment_program_cont *fp = (struct r300_fragment_program_cont *)prog;

    switch (prog->Target) {
    case GL_VERTEX_PROGRAM_ARB:
        freeVertProgCache(ctx, vp);
        break;
    case GL_FRAGMENT_PROGRAM_ARB:
        freeFragProgCache(ctx, fp);
        break;
    }

    _mesa_delete_program(ctx, prog);
}
Exemple #2
0
static void
r300ProgramStringNotify(GLcontext * ctx, GLenum target, struct gl_program *prog)
{
    struct r300_vertex_program_cont *vp = (struct r300_vertex_program_cont *)prog;
    struct r300_fragment_program_cont *fp = (struct r300_fragment_program_cont *)prog;

    switch (target) {
    case GL_VERTEX_PROGRAM_ARB:
        freeVertProgCache(ctx, vp);
        vp->progs = NULL;
        break;
    case GL_FRAGMENT_PROGRAM_ARB:
        freeFragProgCache(ctx, fp);
        fp->progs = NULL;
        break;
    }

    /* need this for tcl fallbacks */
    _tnl_program_string(ctx, target, prog);
}
static GLboolean
r300ProgramStringNotify(struct gl_context * ctx, GLenum target, struct gl_program *prog)
{
	struct r300_vertex_program_cont *vp = (struct r300_vertex_program_cont *)prog;
	struct r300_fragment_program_cont *fp = (struct r300_fragment_program_cont *)prog;

	switch (target) {
	case GL_VERTEX_PROGRAM_ARB:
		freeVertProgCache(ctx, vp);
		vp->progs = NULL;
		break;
	case GL_FRAGMENT_PROGRAM_ARB:
		freeFragProgCache(ctx, fp);
		fp->progs = NULL;
		break;
	}

	/* need this for tcl fallbacks */
	(void) _tnl_program_string(ctx, target, prog);

	/* XXX check if program is legal, within limits */
	return GL_TRUE;
}