/* Copyright (c) 2001, Stanford University
* All rights reserved.
*
* See the file LICENSE.txt for information on redistributing this software.
*/
#ifndef CR_STATE_PROGRAM_H
#define CR_STATE_PROGRAM_H
#include "cr_hash.h"
#include "state/cr_statetypes.h"
#include "state/cr_limits.h"
/*
* Dirty bits for per-context program state. Per-program dirty bits
* are in the CRProgram structure.
*/
typedef struct {
/* per-param flags: */
/* any param flags: */
/*
* within the fragment program that can also be set with the
* glProgramNamedParameter4*NV() functions.
* We keep a linked list of these CRProgramSymbol structures to implement
* a symbol table. A simple linked list is sufficient since a fragment
* program typically has just a few symbols.
*/
typedef struct CRProgramSymbol {
const char *name;
/*
* A vertex or fragment program.
*/
typedef struct {
/* Set with ProgramNamedParameterNV */
/* Set with ProgramLocalParameterARB: */
/* ARB info (this could be impossible to implement without parsing */
} CRProgram;
typedef struct {
/* tracking matrices for vertex programs */
/* Indicates that we have to resend program data to GPU on first glMakeCurrent call with owning context */
#endif /* CR_STATE_PROGRAM_H */