alloc caches for fixed-func vertex/fragment progs
This commit is contained in:
@@ -123,6 +123,7 @@ typedef int GLfixed;
|
||||
/*@{*/
|
||||
struct _mesa_HashTable;
|
||||
struct gl_pixelstore_attrib;
|
||||
struct gl_program_cache;
|
||||
struct gl_texture_format;
|
||||
struct gl_texture_image;
|
||||
struct gl_texture_object;
|
||||
@@ -2000,6 +2001,9 @@ struct gl_vertex_program_state
|
||||
/** Program to emulate fixed-function T&L (see above) */
|
||||
struct gl_vertex_program *_TnlProgram;
|
||||
|
||||
/** Cache of fixed-function programs */
|
||||
struct gl_program_cache *Cache;
|
||||
|
||||
#if FEATURE_MESA_program_debug
|
||||
GLprogramcallbackMESA Callback;
|
||||
GLvoid *CallbackData;
|
||||
@@ -2033,6 +2037,9 @@ struct gl_fragment_program_state
|
||||
/** Program to emulate fixed-function texture env/combine (see above) */
|
||||
struct gl_fragment_program *_TexEnvProgram;
|
||||
|
||||
/** Cache of fixed-function programs */
|
||||
struct gl_program_cache *Cache;
|
||||
|
||||
#if FEATURE_MESA_program_debug
|
||||
GLprogramcallbackMESA Callback;
|
||||
GLvoid *CallbackData;
|
||||
|
@@ -33,6 +33,7 @@
|
||||
#include "context.h"
|
||||
#include "hash.h"
|
||||
#include "program.h"
|
||||
#include "prog_cache.h"
|
||||
#include "prog_parameter.h"
|
||||
#include "prog_instruction.h"
|
||||
|
||||
@@ -66,6 +67,7 @@ _mesa_init_program(GLcontext *ctx)
|
||||
ctx->VertexProgram.TrackMatrix[i] = GL_NONE;
|
||||
ctx->VertexProgram.TrackMatrixTransform[i] = GL_IDENTITY_NV;
|
||||
}
|
||||
ctx->VertexProgram.Cache = _mesa_new_program_cache();
|
||||
#endif
|
||||
|
||||
#if FEATURE_NV_fragment_program || FEATURE_ARB_fragment_program
|
||||
@@ -73,8 +75,10 @@ _mesa_init_program(GLcontext *ctx)
|
||||
ctx->FragmentProgram.Current = (struct gl_fragment_program *) ctx->Shared->DefaultFragmentProgram;
|
||||
assert(ctx->FragmentProgram.Current);
|
||||
ctx->FragmentProgram.Current->Base.RefCount++;
|
||||
ctx->FragmentProgram.Cache = _mesa_new_program_cache();
|
||||
#endif
|
||||
|
||||
|
||||
/* XXX probably move this stuff */
|
||||
#if FEATURE_ATI_fragment_shader
|
||||
ctx->ATIFragmentShader.Enabled = GL_FALSE;
|
||||
|
Reference in New Issue
Block a user