| @@ -1,4 +1,4 @@ | |||
| /* $Id: osmesa.c,v 1.16 2000/04/22 01:05:40 brianp Exp $ */ | |||
| /* $Id: osmesa.c,v 1.17 2000/05/26 14:44:59 brianp Exp $ */ | |||
| /* | |||
| * Mesa 3-D graphics library | |||
| @@ -226,6 +226,7 @@ OSMesaCreateContext( GLenum format, OSMesaContext sharelist ) | |||
| return NULL; | |||
| } | |||
| gl_extensions_enable(&(osmesa->gl_ctx),"GL_HP_occlusion_test"); | |||
| gl_extensions_enable(&(osmesa->gl_ctx), "GL_ARB_texture_cube_map"); | |||
| osmesa->gl_buffer = gl_create_framebuffer( osmesa->gl_visual, | |||
| osmesa->gl_visual->DepthBits > 0, | |||
| @@ -1,4 +1,4 @@ | |||
| /* $Id: context.c,v 1.69 2000/05/24 15:04:45 brianp Exp $ */ | |||
| /* $Id: context.c,v 1.70 2000/05/26 14:44:59 brianp Exp $ */ | |||
| /* | |||
| * Mesa 3-D graphics library | |||
| @@ -467,6 +467,14 @@ alloc_shared_state( void ) | |||
| ss->DefaultD[d]->RefCount++; /* don't free if not in use */ | |||
| } | |||
| ss->DefaultCubeMap = gl_alloc_texture_object(ss, 0, 6); | |||
| if (!ss->DefaultCubeMap) { | |||
| outOfMemory = GL_TRUE; | |||
| } | |||
| else { | |||
| ss->DefaultCubeMap->RefCount++; | |||
| } | |||
| if (!ss->DisplayList || !ss->TexObjects || outOfMemory) { | |||
| /* Ran out of memory at some point. Free everything and return NULL */ | |||
| if (ss->DisplayList) | |||
| @@ -479,6 +487,8 @@ alloc_shared_state( void ) | |||
| gl_free_texture_object(ss, ss->DefaultD[2]); | |||
| if (ss->DefaultD[3]) | |||
| gl_free_texture_object(ss, ss->DefaultD[3]); | |||
| if (ss->DefaultCubeMap) | |||
| gl_free_texture_object(ss, ss->DefaultCubeMap); | |||
| FREE(ss); | |||
| return NULL; | |||
| } | |||
| @@ -603,6 +613,7 @@ init_texture_unit( GLcontext *ctx, GLuint unit ) | |||
| texUnit->CurrentD[1] = ctx->Shared->DefaultD[1]; | |||
| texUnit->CurrentD[2] = ctx->Shared->DefaultD[2]; | |||
| texUnit->CurrentD[3] = ctx->Shared->DefaultD[3]; | |||
| texUnit->CurrentCubeMap = ctx->Shared->DefaultCubeMap; | |||
| } | |||
| @@ -1835,7 +1846,7 @@ _mesa_get_dispatch(GLcontext *ctx) | |||
| void gl_problem( const GLcontext *ctx, const char *s ) | |||
| { | |||
| fprintf( stderr, "Mesa implementation error: %s\n", s ); | |||
| fprintf( stderr, "Report to mesa-bugs@mesa3d.org\n" ); | |||
| fprintf( stderr, "Report to Mesa bug database at www.mesa3d.org\n" ); | |||
| (void) ctx; | |||
| } | |||
| @@ -1,4 +1,4 @@ | |||
| /* $Id: state.c,v 1.14 2000/05/24 15:04:45 brianp Exp $ */ | |||
| /* $Id: state.c,v 1.15 2000/05/26 14:44:59 brianp Exp $ */ | |||
| /* | |||
| * Mesa 3-D graphics library | |||
| @@ -931,8 +931,7 @@ void gl_update_state( GLcontext *ctx ) | |||
| ctx->Enabled &= ~(ENABLE_TEXMAT0|ENABLE_TEXMAT1); | |||
| for (i=0; i < MAX_TEXTURE_UNITS; i++) { | |||
| if (ctx->TextureMatrix[i].flags & MAT_DIRTY_ALL_OVER) | |||
| { | |||
| if (ctx->TextureMatrix[i].flags & MAT_DIRTY_ALL_OVER) { | |||
| gl_matrix_analyze( &ctx->TextureMatrix[i] ); | |||
| ctx->TextureMatrix[i].flags &= ~MAT_DIRTY_DEPENDENTS; | |||
| @@ -946,7 +945,7 @@ void gl_update_state( GLcontext *ctx ) | |||
| if (ctx->NewState & (NEW_TEXTURING | NEW_TEXTURE_ENABLE)) { | |||
| ctx->Texture.NeedNormals = GL_FALSE; | |||
| gl_update_dirty_texobjs(ctx); | |||
| ctx->Enabled &= ~(ENABLE_TEXGEN0|ENABLE_TEXGEN1); | |||
| ctx->Enabled &= ~(ENABLE_TEXGEN0 | ENABLE_TEXGEN1); | |||
| ctx->Texture.ReallyEnabled = 0; | |||
| for (i=0; i < MAX_TEXTURE_UNITS; i++) { | |||
| @@ -954,19 +953,17 @@ void gl_update_state( GLcontext *ctx ) | |||
| gl_update_texture_unit( ctx, &ctx->Texture.Unit[i] ); | |||
| ctx->Texture.ReallyEnabled |= | |||
| ctx->Texture.Unit[i].ReallyEnabled<<(i*4); | |||
| ctx->Texture.Unit[i].ReallyEnabled << (i * 4); | |||
| if (ctx->Texture.Unit[i].GenFlags != 0) { | |||
| ctx->Enabled |= ENABLE_TEXGEN0 << i; | |||
| if (ctx->Texture.Unit[i].GenFlags & TEXGEN_NEED_NORMALS) | |||
| { | |||
| if (ctx->Texture.Unit[i].GenFlags & TEXGEN_NEED_NORMALS) { | |||
| ctx->Texture.NeedNormals = GL_TRUE; | |||
| ctx->Texture.NeedEyeCoords = GL_TRUE; | |||
| } | |||
| if (ctx->Texture.Unit[i].GenFlags & TEXGEN_NEED_EYE_COORD) | |||
| { | |||
| if (ctx->Texture.Unit[i].GenFlags & TEXGEN_NEED_EYE_COORD) { | |||
| ctx->Texture.NeedEyeCoords = GL_TRUE; | |||
| } | |||
| } | |||
| @@ -472,7 +472,7 @@ set_tex_image(struct gl_texture_object *tObj, | |||
| tObj->Image[level] = texImage; | |||
| return; | |||
| case GL_TEXTURE_CUBE_MAP_POSITIVE_X_ARB: | |||
| tObj->PosX[level] = texImage; | |||
| tObj->Image[level] = texImage; | |||
| return; | |||
| case GL_TEXTURE_CUBE_MAP_NEGATIVE_X_ARB: | |||
| tObj->NegX[level] = texImage; | |||
| @@ -630,7 +630,7 @@ _mesa_select_tex_image(GLcontext *ctx, const struct gl_texture_unit *texUnit, | |||
| return ctx->Texture.Proxy3D->Image[level]; | |||
| case GL_TEXTURE_CUBE_MAP_POSITIVE_X_ARB: | |||
| if (ctx->Extensions.HaveTextureCubeMap) | |||
| return texUnit->CurrentCubeMap->PosX[level]; | |||
| return texUnit->CurrentCubeMap->Image[level]; | |||
| else | |||
| return NULL; | |||
| case GL_TEXTURE_CUBE_MAP_NEGATIVE_X_ARB: | |||
| @@ -660,7 +660,7 @@ _mesa_select_tex_image(GLcontext *ctx, const struct gl_texture_unit *texUnit, | |||
| return NULL; | |||
| case GL_PROXY_TEXTURE_CUBE_MAP_ARB: | |||
| if (ctx->Extensions.HaveTextureCubeMap) | |||
| return ctx->Texture.ProxyCubeMap->PosX[level]; | |||
| return ctx->Texture.ProxyCubeMap->Image[level]; | |||
| else | |||
| return NULL; | |||
| default: | |||
| @@ -903,7 +903,10 @@ texture_error_check( GLcontext *ctx, GLenum target, | |||
| } | |||
| else if (dimensions == 2) { | |||
| isProxy = (GLboolean) (target == GL_PROXY_TEXTURE_2D); | |||
| if (target != GL_TEXTURE_2D && !isProxy) { | |||
| if (target != GL_TEXTURE_2D && !isProxy && | |||
| !(ctx->Extensions.HaveTextureCubeMap && | |||
| target >= GL_TEXTURE_CUBE_MAP_POSITIVE_X_ARB && | |||
| target <= GL_TEXTURE_CUBE_MAP_NEGATIVE_Z_ARB)) { | |||
| gl_error( ctx, GL_INVALID_ENUM, "glTexImage2D(target)" ); | |||
| return GL_TRUE; | |||
| } | |||
| @@ -306,6 +306,10 @@ _mesa_test_texobj_completeness( const GLcontext *ctx, | |||
| return; /* found smallest needed mipmap, all done! */ | |||
| } | |||
| } | |||
| } | |||
| else if (t->Dimensions == 6) { /* cube map */ | |||
| } | |||
| else { | |||
| /* Dimensions = ??? */ | |||