From: rlk Date: Tue, 5 Apr 2011 19:22:23 +0000 (+0000) Subject: Fixed the level fade-out. X-Git-Url: https://vcs.maemo.org/git/?a=commitdiff_plain;h=d9893c5712a5718e39c77742f7441b4562f88386;p=neverball Fixed the level fade-out. Reworked the shadow texture transform, fixing it for rotating bodies. Conditioned out separate specular for ES. Macroed glOrtho for ES compatibility. Added glClientActiveTexture extension function. Expanded a few glColorv functions. Change glLightModeli to glLightModelf for ES compatibility. Implemented a glClipPlane function compatible with both GL and ES. git-svn-id: https://s.snth.net/svn/neverball/branches/gles@3559 78b8d119-cf0a-0410-b17c-f493084dd1d7 --- diff --git a/Makefile b/Makefile index 024c6e6..046c02a 100644 --- a/Makefile +++ b/Makefile @@ -42,6 +42,7 @@ endif ifeq ($(DEBUG),1) CFLAGS := -g +# CFLAGS := -O2 -pg CPPFLAGS := else CFLAGS := -O2 diff --git a/ball/game_draw.c b/ball/game_draw.c index ea29863..32f0c2f 100644 --- a/ball/game_draw.c +++ b/ball/game_draw.c @@ -48,7 +48,7 @@ static const struct d_mtrl *game_draw_balls(const struct d_mtrl *mq, vary->uv[0].r, vary->uv[0].r); - glColor4fv(c); + glColor4f(c[0], c[1], c[2], c[3]); mq = ball_draw(mq, ball_M, pend_M, bill_M, t); } glPopMatrix(); @@ -290,14 +290,7 @@ static void game_clip_refl(int d) { /* Fudge to eliminate the floor from reflection. */ - GLdouble e[4], k = -0.00001; - - e[0] = 0; - e[1] = 1; - e[2] = 0; - e[3] = k; - - glClipPlane(GL_CLIP_PLANE0, e); + glClipPlane4f(GL_CLIP_PLANE0, 0, 1, 0, -0.00001); } static void game_clip_ball(const struct game_draw *gd, int d, const float *p) @@ -335,8 +328,8 @@ static void game_clip_ball(const struct game_draw *gd, int d, const float *p) pz[1] *= d; nz[1] *= d; - glClipPlane(GL_CLIP_PLANE1, nz); - glClipPlane(GL_CLIP_PLANE2, pz); + glClipPlane4f(GL_CLIP_PLANE1, nz[0], nz[1], nz[2], nz[3]); + glClipPlane4f(GL_CLIP_PLANE2, pz[0], pz[1], pz[2], pz[3]); } static const struct d_mtrl *game_draw_fore(const struct d_mtrl *mq, @@ -521,11 +514,10 @@ void game_draw(const struct game_draw *gd, int pose, float t) glPopMatrix(); video_pop_matrix(); - sol_draw_disable(mq); - /* Draw the fade overlay. */ sol_fade(&gd->draw, gd->fade_k); + sol_draw_disable(mq); } } diff --git a/share/geom.c b/share/geom.c index 5ce2f21..958203f 100644 --- a/share/geom.c +++ b/share/geom.c @@ -144,14 +144,14 @@ const struct d_mtrl *goal_draw(const struct d_mtrl *mq, float t) const struct d_mtrl *jump_draw(const struct d_mtrl *mq, float t, int h) { - static GLfloat jump_colors[4][4] = { + static GLfloat c[4][4] = { { 0.75f, 0.5f, 1.0f, 0.5f }, { 0.75f, 0.5f, 1.0f, 0.8f }, }; glPushMatrix(); { - glColor4fv(jump_colors[h]); + glColor4f(c[h][0], c[h][1], c[h][2], c[h][3]); glScalef(1.0f, 2.0f, 1.0f); @@ -174,18 +174,20 @@ const struct d_mtrl *jump_draw(const struct d_mtrl *mq, float t, int h) const struct d_mtrl *swch_draw(const struct d_mtrl *mq, int b, int e) { - static GLfloat swch_colors[4][4] = { + static GLfloat c[4][4] = { { 1.0f, 0.0f, 0.0f, 0.5f }, /* red out */ { 1.0f, 0.0f, 0.0f, 0.8f }, /* red in */ { 0.0f, 1.0f, 0.0f, 0.5f }, /* green out */ { 0.0f, 1.0f, 0.0f, 0.8f }, /* green in */ }; + const int h = 2 * b + e; + glPushMatrix(); { glScalef(1.0f, 2.0f, 1.0f); - glColor4fv(swch_colors[b * 2 + e]); + glColor4f(c[h][0], c[h][1], c[h][2], c[h][3]); mq = sol_draw(&beam.draw, mq, 1, 1); glColor4f(1.0f, 1.0f, 1.0f, 1.0f); } diff --git a/share/glext.c b/share/glext.c index d1d3dde..feccbb2 100644 --- a/share/glext.c +++ b/share/glext.c @@ -20,16 +20,17 @@ #ifndef CONF_OPENGLES -PFNGLACTIVETEXTURE_PROC glActiveTexture_; +PFNGLCLIENTACTIVETEXTURE_PROC glClientActiveTexture_; +PFNGLACTIVETEXTURE_PROC glActiveTexture_; -PFNGLGENBUFFERS_PROC glGenBuffers_; -PFNGLBINDBUFFER_PROC glBindBuffer_; -PFNGLBUFFERDATA_PROC glBufferData_; -PFNGLBUFFERSUBDATA_PROC glBufferSubData_; -PFNGLDELETEBUFFERS_PROC glDeleteBuffers_; -PFNGLISBUFFER_PROC glIsBuffer_; +PFNGLGENBUFFERS_PROC glGenBuffers_; +PFNGLBINDBUFFER_PROC glBindBuffer_; +PFNGLBUFFERDATA_PROC glBufferData_; +PFNGLBUFFERSUBDATA_PROC glBufferSubData_; +PFNGLDELETEBUFFERS_PROC glDeleteBuffers_; +PFNGLISBUFFER_PROC glIsBuffer_; -PFNGLPOINTPARAMETERFV_PROC glPointParameterfv_; +PFNGLPOINTPARAMETERFV_PROC glPointParameterfv_; #endif @@ -57,7 +58,7 @@ int glext_check(const char *needle) /*---------------------------------------------------------------------------*/ #define SDL_GL_GFPA(fun, str) do { \ - ptr = SDL_GL_GetProcAddress(str); \ + ptr = SDL_GL_GetProcAddress(str); \ memcpy(&fun, &ptr, sizeof (void *)); \ } while(0) @@ -70,20 +71,52 @@ void glext_init(void) void *ptr; if (glext_check("ARB_multitexture")) - SDL_GL_GFPA(glActiveTexture_, "glActiveTextureARB"); + { + SDL_GL_GFPA(glClientActiveTexture_, "glClientActiveTextureARB"); + SDL_GL_GFPA(glActiveTexture_, "glActiveTextureARB"); + } if (glext_check("ARB_vertex_buffer_object")) { - SDL_GL_GFPA(glGenBuffers_, "glGenBuffersARB"); - SDL_GL_GFPA(glBindBuffer_, "glBindBufferARB"); - SDL_GL_GFPA(glBufferData_, "glBufferDataARB"); - SDL_GL_GFPA(glBufferSubData_, "glBufferSubDataARB"); - SDL_GL_GFPA(glDeleteBuffers_, "glDeleteBuffersARB"); - SDL_GL_GFPA(glIsBuffer_, "glIsBufferARB"); + SDL_GL_GFPA(glGenBuffers_, "glGenBuffersARB"); + SDL_GL_GFPA(glBindBuffer_, "glBindBufferARB"); + SDL_GL_GFPA(glBufferData_, "glBufferDataARB"); + SDL_GL_GFPA(glBufferSubData_, "glBufferSubDataARB"); + SDL_GL_GFPA(glDeleteBuffers_, "glDeleteBuffersARB"); + SDL_GL_GFPA(glIsBuffer_, "glIsBufferARB"); } if (glext_check("ARB_point_parameters")) - SDL_GL_GFPA(glPointParameterfv_, "glPointParameterfvARB"); + SDL_GL_GFPA(glPointParameterfv_, "glPointParameterfvARB"); + +#endif +} + +/*---------------------------------------------------------------------------*/ + +void glClipPlane4f(GLenum p, GLfloat a, GLfloat b, GLfloat c, GLfloat d) +{ +#ifdef CONF_OPENGLES + + GLfloat v[4]; + + v[0] = a; + v[1] = b; + v[2] = c; + v[3] = d; + + glClipPlanef(p, v); + +#else + + GLdouble v[4]; + + v[0] = a; + v[1] = b; + v[2] = c; + v[3] = d; + + glClipPlane(p, v); #endif } diff --git a/share/glext.h b/share/glext.h index 506bd31..06b54e3 100644 --- a/share/glext.h +++ b/share/glext.h @@ -35,64 +35,96 @@ /*---------------------------------------------------------------------------*/ -/* Exercise extreme paranoia in defining a cross-platform OpenGL interface. */ -/* If we're compiling against OpenGL ES then we must assume native linkage */ -/* of the extensions we use. Otherwise, GetProc them regardless of whether */ -/* they need it or not. */ - -#if defined(GL_VERSION_ES_CM_1_0) || \ - defined(GL_VERSION_ES_CM_1_1) || \ - defined(GL_OES_VERSION_1_0) - -#define CONF_OPENGLES 1 - -#else /* ... define the extension API. */ - -/*---------------------------------------------------------------------------*/ -/* ARB_multisample */ - #ifndef GL_MULTISAMPLE -#define GL_MULTISAMPLE 0x809D +#define GL_MULTISAMPLE 0x809D #endif -/*---------------------------------------------------------------------------*/ -/* ARB_multitexture */ - #ifndef GL_TEXTURE0 -#define GL_TEXTURE0 0x84C0 +#define GL_TEXTURE0 0x84C0 #endif #ifndef GL_TEXTURE1 -#define GL_TEXTURE1 0x84C1 +#define GL_TEXTURE1 0x84C1 #endif #ifndef GL_TEXTURE2 -#define GL_TEXTURE2 0x84C2 +#define GL_TEXTURE2 0x84C2 #endif -typedef void (*PFNGLACTIVETEXTURE_PROC)(GLenum); - -extern PFNGLACTIVETEXTURE_PROC glActiveTexture_; - -/*---------------------------------------------------------------------------*/ -/* ARB_vertex_buffer_object */ - #ifndef GL_ARRAY_BUFFER -#define GL_ARRAY_BUFFER 0x8892 +#define GL_ARRAY_BUFFER 0x8892 #endif #ifndef GL_ELEMENT_ARRAY_BUFFER -#define GL_ELEMENT_ARRAY_BUFFER 0x8893 +#define GL_ELEMENT_ARRAY_BUFFER 0x8893 #endif #ifndef GL_STATC_DRAW -#define GL_STATIC_DRAW 0x88E4 +#define GL_STATIC_DRAW 0x88E4 #endif #ifndef GL_DYNAMIC_DRAW -#define GL_DYNAMIC_DRAW 0x88E8 +#define GL_DYNAMIC_DRAW 0x88E8 +#endif + +#ifndef GL_POINT_SPRITE +#define GL_POINT_SPRITE 0x8861 #endif +#ifndef GL_COORD_REPLACE +#define GL_COORD_REPLACE 0x8862 +#endif + +#ifndef GL_POINT_DISTANCE_ATTENUATIAN +#define GL_POINT_DISTANCE_ATTENUATION 0x8129 +#endif + +/*---------------------------------------------------------------------------*/ + +int glext_check(const char *); +void glext_init(void); + +/*---------------------------------------------------------------------------*/ + +/* Exercise extreme paranoia in defining a cross-platform OpenGL interface. */ +/* If we're compiling against OpenGL ES then we must assume native linkage */ +/* of the extensions we use. Otherwise, GetProc them regardless of whether */ +/* they need it or not. */ + +#if defined(GL_VERSION_ES_CM_1_0) || \ + defined(GL_VERSION_ES_CM_1_1) || \ + defined(GL_OES_VERSION_1_0) + +#define CONF_OPENGLES 1 + +#define glClientActiveTexture_ glClientActiveTexture +#define glActiveTexture_ glActiveTexture +#define glGenBuffers_ glGenBuffers +#define glBindBuffer_ glBindBuffer +#define glBufferData_ glBufferData +#define glBufferSubData_ glBufferSubData +#define glDeleteBuffers_ glDeleteBuffers +#define glIsBuffer_ glIsBuffer +#define glPointParameterfv_ glPointParameterfv + +#define glOrtho_ glOrtho + +#else /* No native linkage? Define the extension API. */ + +#define glOrtho_ glOrtho + +/*---------------------------------------------------------------------------*/ +/* ARB_multitexture */ + +typedef void (*PFNGLACTIVETEXTURE_PROC)(GLenum); +typedef void (*PFNGLCLIENTACTIVETEXTURE_PROC)(GLenum); + +extern PFNGLCLIENTACTIVETEXTURE_PROC glClientActiveTexture_; +extern PFNGLACTIVETEXTURE_PROC glActiveTexture_; + +/*---------------------------------------------------------------------------*/ +/* ARB_vertex_buffer_object */ + typedef void (*PFNGLGENBUFFERS_PROC)(GLsizei, GLuint *); typedef void (*PFNGLBINDBUFFER_PROC)(GLenum, GLuint); typedef void (*PFNGLBUFFERDATA_PROC)(GLenum, GLsizeiptr, const GLvoid *, GLenum); @@ -108,23 +140,8 @@ extern PFNGLDELETEBUFFERS_PROC glDeleteBuffers_; extern PFNGLISBUFFER_PROC glIsBuffer_; /*---------------------------------------------------------------------------*/ -/* ARB_point_sprite */ - -#ifndef GL_POINT_SPRITE -#define GL_POINT_SPRITE 0x8861 -#endif - -#ifndef GL_COORD_REPLACE -#define GL_COORD_REPLACE 0x8862 -#endif - -/*---------------------------------------------------------------------------*/ /* ARB_point_parameters */ -#ifndef GL_POINT_DISTANCE_ATTENUATIAN -#define GL_POINT_DISTANCE_ATTENUATION 0x8129 -#endif - typedef void (*PFNGLPOINTPARAMETERFV_PROC)(GLenum, const GLfloat *); extern PFNGLPOINTPARAMETERFV_PROC glPointParameterfv_; @@ -132,8 +149,7 @@ extern PFNGLPOINTPARAMETERFV_PROC glPointParameterfv_; /*---------------------------------------------------------------------------*/ #endif /* !CONF_OPENGLES */ -int glext_check(const char *); -void glext_init(void); +void glClipPlane4f(GLenum, GLfloat, GLfloat, GLfloat, GLfloat); /*---------------------------------------------------------------------------*/ #endif diff --git a/share/gui.c b/share/gui.c index 54181bf..5197a57 100644 --- a/share/gui.c +++ b/share/gui.c @@ -1349,7 +1349,7 @@ static void gui_paint_image(int id) widget[id].scale); glBindTexture(GL_TEXTURE_2D, widget[id].image); - glColor4ubv(gui_wht); + glColor4ub(gui_wht[0], gui_wht[1], gui_wht[2], gui_wht[3]); draw_rect(id); } glPopMatrix(); diff --git a/share/item.c b/share/item.c index 7d6d7f3..1d49e3b 100644 --- a/share/item.c +++ b/share/item.c @@ -30,7 +30,6 @@ void item_color(const struct v_item *hp, float *c) { switch (hp->t) { - case ITEM_COIN: if (hp->n >= 1) @@ -38,18 +37,21 @@ void item_color(const struct v_item *hp, float *c) c[0] = 1.0f; c[1] = 1.0f; c[2] = 0.2f; + c[3] = 1.0f; } if (hp->n >= 5) { c[0] = 1.0f; c[1] = 0.2f; c[2] = 0.2f; + c[3] = 1.0f; } if (hp->n >= 10) { c[0] = 0.2f; c[1] = 0.2f; c[2] = 1.0f; + c[3] = 1.0f; } break; @@ -58,6 +60,7 @@ void item_color(const struct v_item *hp, float *c) c[0] = 0.00f; c[1] = 0.51f; c[2] = 0.80f; + c[3] = 1.00f; break; @@ -66,6 +69,7 @@ void item_color(const struct v_item *hp, float *c) c[0] = 1.00f; c[1] = 0.76f; c[2] = 0.00f; + c[3] = 1.00f; break; @@ -74,6 +78,7 @@ void item_color(const struct v_item *hp, float *c) c[0] = 1.0f; c[1] = 1.0f; c[2] = 1.0f; + c[3] = 1.0f; break; } @@ -98,7 +103,7 @@ const struct d_mtrl *item_draw(const struct d_mtrl *mq, const GLfloat *M, float t) { struct s_draw *draw = NULL; - float c[3]; + float c[4]; switch (hp->t) { @@ -109,7 +114,7 @@ const struct d_mtrl *item_draw(const struct d_mtrl *mq, item_color(hp, c); - glColor3fv(c); + glColor4fv(c); glDepthMask(GL_FALSE); { diff --git a/share/part.c b/share/part.c index 407cd33..d6968e0 100644 --- a/share/part.c +++ b/share/part.c @@ -240,9 +240,9 @@ const struct d_mtrl *part_draw_coin(const struct d_mtrl *mq) glBindBuffer_(GL_ARRAY_BUFFER, 0); #endif - glClientActiveTexture(GL_TEXTURE1); + glClientActiveTexture_(GL_TEXTURE1); glDisableClientState(GL_TEXTURE_COORD_ARRAY); - glClientActiveTexture(GL_TEXTURE0); + glClientActiveTexture_(GL_TEXTURE0); glDisableClientState(GL_TEXTURE_COORD_ARRAY); glDisableClientState(GL_NORMAL_ARRAY); @@ -272,9 +272,9 @@ const struct d_mtrl *part_draw_coin(const struct d_mtrl *mq) glEnableClientState(GL_NORMAL_ARRAY); glEnableClientState(GL_TEXTURE_COORD_ARRAY); - glClientActiveTexture(GL_TEXTURE1); + glClientActiveTexture_(GL_TEXTURE1); glEnableClientState(GL_TEXTURE_COORD_ARRAY); - glClientActiveTexture(GL_TEXTURE0); + glClientActiveTexture_(GL_TEXTURE0); return mq; } diff --git a/share/solid_draw.c b/share/solid_draw.c index 9b0dfa0..f2b206c 100644 --- a/share/solid_draw.c +++ b/share/solid_draw.c @@ -59,12 +59,11 @@ static void sol_transform(const struct s_vary *vary, const struct v_body *bp) { float a; - float d[4]; float e[4]; float p[3]; float v[3]; - /* Compute the body transform. */ + /* Apply the body position and rotation to the model-view matrix. */ sol_body_p(p, vary, bp->pi, bp->t); sol_body_e(e, vary, bp, 0); @@ -74,7 +73,7 @@ static void sol_transform(const struct s_vary *vary, glTranslatef(p[0], p[1], p[2]); glRotatef(V_DEG(a), v[0], v[1], v[2]); - /* Compute the shadow texture transform */ + /* Apply the shadow transform to the texture matrix. */ if (vary->uc && vary->uv->r > 0.0) { @@ -83,12 +82,30 @@ static void sol_transform(const struct s_vary *vary, { float k = 0.25f / vary->uv->r; - v_sub(d, vary->uv->p, p); - glLoadIdentity(); - glTranslatef(0.5f - k * d[0], - 0.5f - k * d[2], 0.0f); - glScalef(k, k, 0.0f); + + /* Center the shadow texture on the ball. */ + + glTranslatef(0.5f, 0.5f, 0.0f); + + /* Transform ball XZ position to ST texture coordinate. */ + + glRotatef(-90.0f, 1.0f, 0.0f, 0.0f); + + /* Move the shadow texture under the ball. */ + + glTranslatef(-vary->uv->p[0], + -vary->uv->p[1], + -vary->uv->p[2]); + + /* Scale the shadow texture to the radius of the ball. */ + + glScalef(k, k, k); + + /* Apply the body position and rotation. */ + + glTranslatef(p[0], p[1], p[2]); + glRotatef(V_DEG(a), v[0], v[1], v[2]); } glMatrixMode(GL_MODELVIEW); glActiveTexture_(GL_TEXTURE0); @@ -157,9 +174,9 @@ static void sol_bill_enable(const struct s_draw *draw) const size_t s = sizeof (GLfloat); /* glDisableClientState(GL_NORMAL_ARRAY); - glClientActiveTexture(GL_TEXTURE1); + glClientActiveTexture_(GL_TEXTURE1); glDisableClientState(GL_TEXTURE_COORD_ARRAY); - glClientActiveTexture(GL_TEXTURE0); + glClientActiveTexture_(GL_TEXTURE0); */ glBindBuffer_(GL_ARRAY_BUFFER, draw->bill); @@ -171,9 +188,9 @@ static void sol_bill_disable(void) { /* glEnableClientState(GL_NORMAL_ARRAY); - glClientActiveTexture(GL_TEXTURE1); + glClientActiveTexture_(GL_TEXTURE1); glEnableClientState(GL_TEXTURE_COORD_ARRAY); - glClientActiveTexture(GL_TEXTURE0); + glClientActiveTexture_(GL_TEXTURE0); */ } @@ -238,6 +255,7 @@ const struct d_mtrl *sol_apply_mtrl(const struct d_mtrl *mp_draw, /* Environment mapping. */ +#ifndef CONF_OPENGLES if ((mp_base->fl & M_ENVIRONMENT) && !(mq_base->fl & M_ENVIRONMENT)) { glEnable(GL_TEXTURE_GEN_S); @@ -252,6 +270,7 @@ const struct d_mtrl *sol_apply_mtrl(const struct d_mtrl *mp_draw, glDisable(GL_TEXTURE_GEN_S); glDisable(GL_TEXTURE_GEN_T); } +#endif /* Additive blending. */ @@ -266,13 +285,13 @@ const struct d_mtrl *sol_apply_mtrl(const struct d_mtrl *mp_draw, if ((mp_base->fl & M_TWO_SIDED) && !(mq_base->fl & M_TWO_SIDED)) { glDisable(GL_CULL_FACE); - glLightModeli(GL_LIGHT_MODEL_TWO_SIDE, 1); + glLightModelf(GL_LIGHT_MODEL_TWO_SIDE, 1); } if ((mq_base->fl & M_TWO_SIDED) && !(mp_base->fl & M_TWO_SIDED)) { glEnable(GL_CULL_FACE); - glLightModeli(GL_LIGHT_MODEL_TWO_SIDE, 0); + glLightModelf(GL_LIGHT_MODEL_TWO_SIDE, 0); } /* Decal offset. */ @@ -424,9 +443,6 @@ static void sol_mesh_vert(struct d_vert *vp, vp->t[0] = tq->u[0]; vp->t[1] = tq->u[1]; - - vp->u[0] = vq->p[0]; - vp->u[1] = vq->p[2]; } static void sol_mesh_geom(struct d_vert *vv, int *vn, @@ -563,9 +579,9 @@ static const struct d_mtrl *sol_draw_mesh(const struct d_mesh *mp, glVertexPointer (3, T, s, (GLvoid *) offsetof (struct d_vert, p)); glNormalPointer ( T, s, (GLvoid *) offsetof (struct d_vert, n)); - glClientActiveTexture(GL_TEXTURE1); - glTexCoordPointer(2, T, s, (GLvoid *) offsetof (struct d_vert, u)); - glClientActiveTexture(GL_TEXTURE0); + glClientActiveTexture_(GL_TEXTURE1); + glTexCoordPointer(3, T, s, (GLvoid *) offsetof (struct d_vert, p)); + glClientActiveTexture_(GL_TEXTURE0); glTexCoordPointer(2, T, s, (GLvoid *) offsetof (struct d_vert, t)); /* Draw the mesh. */ @@ -717,9 +733,9 @@ const struct d_mtrl *sol_draw_enable(void) glEnableClientState(GL_VERTEX_ARRAY); glEnableClientState(GL_NORMAL_ARRAY); - glClientActiveTexture(GL_TEXTURE1); + glClientActiveTexture_(GL_TEXTURE1); glEnableClientState(GL_TEXTURE_COORD_ARRAY); - glClientActiveTexture(GL_TEXTURE0); + glClientActiveTexture_(GL_TEXTURE0); glEnableClientState(GL_TEXTURE_COORD_ARRAY); return &default_draw_mtrl; @@ -729,9 +745,9 @@ void sol_draw_disable(const struct d_mtrl *mq) { sol_apply_mtrl(&default_draw_mtrl, mq); - glClientActiveTexture(GL_TEXTURE1); + glClientActiveTexture_(GL_TEXTURE1); glDisableClientState(GL_TEXTURE_COORD_ARRAY); - glClientActiveTexture(GL_TEXTURE0); + glClientActiveTexture_(GL_TEXTURE0); glDisableClientState(GL_TEXTURE_COORD_ARRAY); glDisableClientState(GL_NORMAL_ARRAY); diff --git a/share/solid_draw.h b/share/solid_draw.h index b7ea81d..0485c99 100644 --- a/share/solid_draw.h +++ b/share/solid_draw.h @@ -30,7 +30,6 @@ struct d_vert float p[3]; float n[3]; float t[2]; - float u[2]; }; struct d_geom diff --git a/share/video.c b/share/video.c index 18425d2..5418d34 100644 --- a/share/video.c +++ b/share/video.c @@ -98,8 +98,10 @@ int video_mode(int f, int w, int h) glEnable(GL_LIGHTING); glEnable(GL_BLEND); +#ifndef CONF_OPENGLES glLightModeli(GL_LIGHT_MODEL_COLOR_CONTROL, GL_SEPARATE_SPECULAR_COLOR); +#endif glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA); glDepthFunc(GL_LEQUAL); @@ -286,7 +288,7 @@ void video_push_ortho(void) { glPushMatrix(); glLoadIdentity(); - glOrtho(0.0, w, 0.0, h, -1.0, +1.0); + glOrtho_(0.0, w, 0.0, h, -1.0, +1.0); } glMatrixMode(GL_MODELVIEW); } @@ -302,14 +304,6 @@ void video_pop_matrix(void) void video_clear(void) { -/* - if (config_get_d(CONFIG_REFLECTION)) - glClear(GL_COLOR_BUFFER_BIT | - GL_DEPTH_BUFFER_BIT | - GL_STENCIL_BUFFER_BIT); - else - glClear(GL_DEPTH_BUFFER_BIT); -*/ if (config_get_d(CONFIG_REFLECTION)) glClear(GL_DEPTH_BUFFER_BIT | GL_STENCIL_BUFFER_BIT);