123 assert(dimensions >= 0 && dimensions <= 2);
130 obj->Dimensions = dimensions;
135 obj->MinMagThresh = 0.0F;
136 obj->Palette[0] = 255;
137 obj->Palette[1] = 255;
138 obj->Palette[2] = 255;
139 obj->Palette[3] = 255;
140 obj->PaletteSize = 1;
220 if (!
t->Image[0] || !
t->Image[0]->Data) {
234 if (!
t->Image[
i]->Data) {
238 if (
t->Image[
i]->Format !=
t->Image[0]->Format) {
242 if (
t->Image[
i]->Border !=
t->Image[0]->Border) {
250 if (
t->Dimensions==1) {
261 if (!
t->Image[
i]->Data) {
265 if (
t->Image[
i]->Format !=
t->Image[0]->Format) {
269 if (
t->Image[
i]->Border !=
t->Image[0]->Border) {
273 if (
t->Image[
i]->Width2 !=
width ) {
282 else if (
t->Dimensions==2) {
297 if (
t->Image[
i]->Width2 !=
width) {
301 if (
t->Image[
i]->Height2 !=
height) {
371 if (
ctx->Texture.Current1D==
t) {
373 ctx->Texture.Current1D =
ctx->Shared->Default1D;
377 else if (
ctx->Texture.Current2D==
t) {
379 ctx->Texture.Current2D =
ctx->Shared->Default2D;
385 if (
ctx->Driver.DeleteTexture) {
386 (*
ctx->Driver.DeleteTexture)(
ctx,
t );
389 if (
t->RefCount==0) {
415 oldTexObj =
ctx->Texture.Current1D;
416 targetPointer = &
ctx->Texture.Current1D;
417 targetDimensions = 1;
420 oldTexObj =
ctx->Texture.Current2D;
421 targetPointer = &
ctx->Texture.Current2D;
422 targetDimensions = 2;
433 newTexObj =
ctx->Shared->Default1D;
436 newTexObj =
ctx->Shared->Default2D;
451 else if (newTexObj->
Dimensions != targetDimensions) {
465 *targetPointer = newTexObj;
468 if (*targetPointer != oldTexObj && oldTexObj->
Name>0) {
474 if (newTexObj->
Name>0) {
484 || (oldTexObj->
Image[0] && newTexObj->
Image[0] &&
485 (oldTexObj->
Image[0]->Format!=newTexObj->
Image[0]->Format))
493 if (oldTexObj==
ctx->Texture.Current) {
494 ctx->Texture.Current = newTexObj;
501 if (
ctx->Driver.BindTexture) {
const GLuint GLboolean * residences
void gl_DeleteTextures(GLcontext *ctx, GLsizei n, const GLuint *texName)
struct gl_texture_image * Image[MAX_TEXTURE_LEVELS]
GLboolean gl_AreTexturesResident(GLcontext *ctx, GLsizei n, const GLuint *texName, GLboolean *residences)
GLint GLint GLsizei width
struct png_info_def **typedef void(__cdecl typeof(png_destroy_read_struct))(struct png_struct_def **
struct HashTable * TexObjects
GLboolean gl_IsTexture(GLcontext *ctx, GLuint texture)
struct gl_texture_object * TexObjectList
void gl_free_texture_image(struct gl_texture_image *teximage)
void gl_test_texture_object_completeness(struct gl_texture_object *t)
GLuint HashFindFreeKeyBlock(const struct HashTable *table, GLuint numKeys)
struct gl_texture_object * Next
#define INSIDE_BEGIN_END(CTX)
GLsizei GLsizei GLuint * obj
void gl_free_texture_object(struct gl_shared_state *shared, struct gl_texture_object *t)
#define GL_NEAREST_MIPMAP_LINEAR
#define CLAMP(f, min, max)
void * HashLookup(const struct HashTable *table, GLuint key)
void HashInsert(struct HashTable *table, GLuint key, void *data)
const GLuint const GLclampf * priorities
HRESULT Next([in] ULONG celt, [out, size_is(celt), length_is(*pceltFetched)] STATPROPSETSTG *rgelt, [out] ULONG *pceltFetched)
void HashRemove(struct HashTable *table, GLuint key)
#define GL_INVALID_OPERATION
void gl_problem(const GLcontext *ctx, const char *s)
GLint GLint GLsizei GLsizei height
void gl_error(GLcontext *ctx, GLenum error, const char *s)
void gl_GenTextures(GLcontext *ctx, GLsizei n, GLuint *texName)
struct gl_texture_object * gl_alloc_texture_object(struct gl_shared_state *shared, GLuint name, GLuint dimensions)
GLsizei GLenum const GLvoid GLsizei GLenum GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLint GLint GLint GLshort GLshort GLshort GLubyte GLubyte GLubyte GLuint GLuint GLuint GLushort GLushort GLushort GLbyte GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLfloat GLint GLint GLint GLint GLshort GLshort GLshort GLshort GLubyte GLubyte GLubyte GLubyte GLuint GLuint GLuint GLuint GLushort GLushort GLushort GLushort GLboolean const GLdouble const GLfloat const GLint const GLshort const GLbyte const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLdouble const GLfloat const GLfloat const GLint const GLint const GLshort const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort GLenum GLenum GLenum GLfloat GLenum GLint GLenum GLenum GLenum GLfloat GLenum GLenum GLint GLenum GLfloat GLenum GLint GLint GLushort GLenum GLenum GLfloat GLenum GLenum GLint GLfloat const GLubyte GLenum GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLint GLint GLsizei GLsizei GLint GLenum GLenum const GLvoid GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLenum const GLdouble GLenum GLenum const GLfloat GLenum GLenum const GLint GLsizei GLuint GLfloat GLuint GLbitfield GLfloat GLint GLuint GLboolean GLenum GLfloat GLenum GLbitfield GLenum GLfloat GLfloat GLint GLint const GLfloat GLenum GLfloat GLfloat GLint GLint GLfloat GLfloat GLint GLint const GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat const GLdouble const GLfloat const GLdouble const GLfloat GLint i
void gl_PrioritizeTextures(GLcontext *ctx, GLsizei n, const GLuint *texName, const GLclampf *priorities)
#define MAX_TEXTURE_LEVELS
void gl_BindTexture(GLcontext *ctx, GLenum target, GLuint texName)
GLuint const GLchar * name