X-Git-Url: http://de.git.xonotic.org/?p=xonotic%2Fdarkplaces.git;a=blobdiff_plain;f=r_explosion.c;h=e26ba58ae1b9d3cd2e6920f27a93e03da4184a73;hp=5e46117b3b950b93735ba4b0287c2ec553926907;hb=756dc9eb6b0a36c9dcb08cf588cf3b4f7aa14a25;hpb=4b8d867847ff1770d44e77661a6587d62f3e7aa7 diff --git a/r_explosion.c b/r_explosion.c index 5e46117b..e26ba58a 100644 --- a/r_explosion.c +++ b/r_explosion.c @@ -63,7 +63,7 @@ extern qboolean r_loadfog; static void r_explosion_start(void) { int x, y; - unsigned char noise1[128][128], noise2[128][128], noise3[128][128], data[128][128][4]; + static unsigned char noise1[128][128], noise2[128][128], noise3[128][128], data[128][128][4]; explosiontexturepool = R_AllocTexturePool(); explosiontexture = NULL; explosiontexturefog = NULL; @@ -86,13 +86,13 @@ static void r_explosion_start(void) data[y][x][3] = bound(0, a, 255); } } - explosiontexture = R_LoadTexture2D(explosiontexturepool, "explosiontexture", 128, 128, &data[0][0][0], TEXTYPE_BGRA, TEXF_MIPMAP | TEXF_ALPHA | TEXF_PRECACHE | TEXF_FORCELINEAR, NULL); + explosiontexture = R_LoadTexture2D(explosiontexturepool, "explosiontexture", 128, 128, &data[0][0][0], TEXTYPE_BGRA, TEXF_MIPMAP | TEXF_ALPHA | TEXF_FORCELINEAR, NULL); if (r_loadfog) { for (y = 0;y < 128;y++) for (x = 0;x < 128;x++) data[y][x][0] = data[y][x][1] = data[y][x][2] = 255; - explosiontexturefog = R_LoadTexture2D(explosiontexturepool, "explosiontexture_fog", 128, 128, &data[0][0][0], TEXTYPE_BGRA, TEXF_MIPMAP | TEXF_ALPHA | TEXF_PRECACHE | TEXF_FORCELINEAR, NULL); + explosiontexturefog = R_LoadTexture2D(explosiontexturepool, "explosiontexture_fog", 128, 128, &data[0][0][0], TEXTYPE_BGRA, TEXF_MIPMAP | TEXF_ALPHA | TEXF_FORCELINEAR, NULL); } // note that explosions survive the restart } @@ -204,21 +204,18 @@ static void R_DrawExplosion_TransparentCallback(const entity_render_t *ent, cons { int surfacelistindex = 0; const int numtriangles = EXPLOSIONTRIS, numverts = EXPLOSIONVERTS; - rmeshstate_t m; GL_BlendFunc(GL_SRC_ALPHA, GL_ONE); GL_DepthMask(false); GL_DepthRange(0, 1); GL_PolygonOffset(r_refdef.polygonfactor, r_refdef.polygonoffset); GL_DepthTest(true); GL_CullFace(r_refdef.view.cullface_back); - R_Mesh_Matrix(&identitymatrix); + R_EntityMatrix(&identitymatrix); - R_SetupGenericShader(true); R_Mesh_ColorPointer(NULL, 0, 0); - memset(&m, 0, sizeof(m)); - m.tex[0] = R_GetTexture(explosiontexture); - m.pointer_texcoord[0] = explosiontexcoord2f[0]; - R_Mesh_TextureState(&m); + R_Mesh_ResetTextureState(); + R_SetupShader_Generic(explosiontexture, NULL, GL_MODULATE, 1); + R_Mesh_TexCoordPointer(0, 2, explosiontexcoord2f[0], 0, 0); for (surfacelistindex = 0;surfacelistindex < numsurfaces;surfacelistindex++) { const explosion_t *e = explosion + surfacelist[surfacelistindex];