cr_texture.h revision c62d2520ac91e12cf4665c936f490dd2064152d3
/* Copyright (c) 2001, Stanford University
* All rights reserved.
*
* See the file LICENSE.txt for information on redistributing this software.
*/
#ifndef CR_STATE_TEXTURE_H
#define CR_STATE_TEXTURE_H
#include "cr_hash.h"
#include "state/cr_statetypes.h"
#include "state/cr_limits.h"
#ifdef __cplusplus
extern "C" {
#endif
* and avoid host memory allocation.
*/
#define CR_STATE_NO_TEXTURE_IMAGE_STORE
#if defined(CR_ARB_pixel_buffer_object) && !defined(CR_STATE_NO_TEXTURE_IMAGE_STORE)
#endif
#define CR_MAX_MIPMAP_LEVELS 20
typedef struct {
typedef struct {
int bytes;
int bytesPerPixel;
#endif
const CRTextureFormat *texFormat;
typedef struct {
/* The mipmap levels */
#ifdef CR_OPENGL_VERSION_1_2
#endif
#endif
#ifdef CR_ARB_depth_texture
#endif
#ifdef CR_ARB_shadow
#endif
#ifdef CR_ARB_shadow_ambient
#endif
#ifdef CR_SGIS_generate_mipmap
#endif
} CRTextureObj;
typedef struct {
/* XXX someday create more bits for texture env state */
typedef struct {
/* Current texture objects (in terms of glBindTexture and glActiveTexture) */
#ifdef CR_ARB_texture_cube_map
#endif
#ifdef CR_NV_texture_rectangle
#endif
#ifdef CR_ARB_texture_cube_map
#endif
#ifdef CR_NV_texture_rectangle
#endif
#ifdef CR_EXT_texture_lod_bias
#endif
/* GL_ARB_texture_env_combine */
#ifdef CR_ARB_texture_cube_map
#endif
#ifdef CR_NV_texture_rectangle
#endif
typedef struct {
/* Default texture objects (name = 0) */
#ifdef CR_ARB_texture_cube_map
#endif
#ifdef CR_NV_texture_rectangle
#endif
/* Proxy texture objects */
#ifdef CR_ARB_texture_cube_map
#endif
#ifdef CR_NV_texture_rectangle
#endif
/* Indicates that we have to resend texture data to GPU on first glMakeCurrent call with owning context */
/* Per-texture unit state: */
/*void crStateTextureDelete(GLuint name);*/
DECLEXPORT(int) crStateTextureCheckDirtyImages(CRContext *from, CRContext *to, GLenum target, int textureUnit);
const CRbitvalue *bitID,
const CRbitvalue *nbitID,
DECLEXPORT(void) crStateDiffAllTextureObjects( CRContext *g, CRbitvalue *bitID, GLboolean bForceUpdate );
#ifdef __cplusplus
}
#endif
#endif /* CR_STATE_TEXTURE_H */