X-Git-Url: https://de.git.xonotic.org/?a=blobdiff_plain;f=gl_rmain.c;h=bcaf390d9cb26e1260c40a0edb2b9a2a7902e3dd;hb=73624ef15d754ca65acb6f2037989fb582cd7b92;hp=9c0dfd0d027413989bf2c6981e84a7d34829712f;hpb=9308068bbd92e3d211fabba4a451c09235688c4a;p=xonotic%2Fdarkplaces.git diff --git a/gl_rmain.c b/gl_rmain.c index 9c0dfd0d..bcaf390d 100644 --- a/gl_rmain.c +++ b/gl_rmain.c @@ -144,7 +144,7 @@ static void R_TimeRefresh_f (void) VectorCopy(oldangles, cl.viewangles); intimerefresh = 0; - Con_Printf ("%f seconds (%f fps)\n", timedelta, 128/timedelta); + Con_Printf("%f seconds (%f fps)\n", timedelta, 128/timedelta); } vec3_t fogcolor; @@ -558,12 +558,12 @@ static void R_BlendView(void) R_Mesh_Matrix(&r_identitymatrix); memset(&m, 0, sizeof(m)); - R_Mesh_State_Texture(&m); + m.pointer_vertex = vertex3f; + R_Mesh_State(&m); GL_BlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA); GL_DepthMask(true); GL_DepthTest(false); // magic - GL_VertexPointer(vertex3f); GL_Color(r_refdef.viewblend[0], r_refdef.viewblend[1], r_refdef.viewblend[2], r_refdef.viewblend[3]); r = 64; vertex3f[0] = r_vieworigin[0] + r_viewforward[0] * 1.5 + r_viewleft[0] * r - r_viewup[0] * r; @@ -585,7 +585,7 @@ void R_UpdateWorld(void) if (r_shadow_realtime_world.integer && !gl_stencil) { - Con_Printf("Realtime world lighting requires 32bit color; turning off r_shadow_realtime_world, please type vid_bitsperpixel 32;vid_restart and try again\n"); + Con_Print("Realtime world lighting requires 32bit color; turning off r_shadow_realtime_world, please type vid_bitsperpixel 32;vid_restart and try again\n"); Cvar_SetValueQuick(&r_shadow_realtime_world, 0); } @@ -628,8 +628,6 @@ void R_RenderView(void) GL_Scissor(r_view_x, r_view_y, r_view_width, r_view_height); GL_ScissorTest(true); R_ClearScreen(); - - R_Mesh_Start(); R_TimeReport("setup"); qglDepthFunc(GL_LEQUAL); @@ -637,19 +635,6 @@ void R_RenderView(void) qglEnable(GL_POLYGON_OFFSET_FILL); R_RenderScene(); - if (r_showtris.integer) - { - rmeshstate_t m; - GL_Color(1,1,1,1); - GL_BlendFunc(GL_ONE, GL_ZERO); - GL_DepthTest(GL_FALSE); - GL_DepthMask(GL_FALSE); - memset(&m, 0, sizeof(m)); - R_Mesh_State_Texture(&m); - r_showtrispass = true; - R_RenderScene(); - r_showtrispass = false; - } qglPolygonOffset(0, 0); qglDisable(GL_POLYGON_OFFSET_FILL); @@ -657,9 +642,6 @@ void R_RenderView(void) R_BlendView(); R_TimeReport("blendview"); - R_Mesh_Finish(); - R_TimeReport("meshfinish"); - GL_Scissor(0, 0, vid.realwidth, vid.realheight); GL_ScissorTest(false); } @@ -675,6 +657,8 @@ void R_RenderScene(void) r_framecount++; + GL_ShowTrisColor(0.05, 0.05, 0.05, 1); + R_SetFrustum(); r_farclip = R_FarClip(r_vieworigin, r_viewforward, 768.0f) + 256.0f; @@ -715,6 +699,8 @@ void R_RenderScene(void) if (!intimerefresh && !r_speeds.integer) S_ExtraUpdate (); + GL_ShowTrisColor(0, 0.015, 0, 1); + R_DrawModels(); R_TimeReport("models"); @@ -722,6 +708,7 @@ void R_RenderScene(void) if (!intimerefresh && !r_speeds.integer) S_ExtraUpdate (); + GL_ShowTrisColor(0, 0, 0.033, 1); R_ShadowVolumeLighting(false); R_TimeReport("rtlights"); @@ -729,6 +716,8 @@ void R_RenderScene(void) if (!intimerefresh && !r_speeds.integer) S_ExtraUpdate (); + GL_ShowTrisColor(0.1, 0, 0, 1); + R_DrawLightningBeams(); R_TimeReport("lightning"); @@ -750,12 +739,14 @@ void R_RenderScene(void) R_MeshQueue_Render(); R_MeshQueue_EndScene(); - if (r_shadow_visiblevolumes.integer) + if (r_shadow_visiblevolumes.integer && !r_showtrispass) { R_ShadowVolumeLighting(true); R_TimeReport("shadowvolume"); } + GL_ShowTrisColor(0.05, 0.05, 0.05, 1); + // don't let sound skip if going slow if (!intimerefresh && !r_speeds.integer) S_ExtraUpdate (); @@ -772,10 +763,6 @@ void R_DrawBBoxMesh(vec3_t mins, vec3_t maxs, float cr, float cg, float cb, floa GL_DepthTest(true); R_Mesh_Matrix(&r_identitymatrix); - memset(&m, 0, sizeof(m)); - R_Mesh_State_Texture(&m); - - R_Mesh_GetSpace(8); vertex3f[ 0] = mins[0];vertex3f[ 1] = mins[1];vertex3f[ 2] = mins[2]; vertex3f[ 3] = maxs[0];vertex3f[ 4] = mins[1];vertex3f[ 5] = mins[2]; vertex3f[ 6] = mins[0];vertex3f[ 7] = maxs[1];vertex3f[ 8] = mins[2]; @@ -784,7 +771,6 @@ void R_DrawBBoxMesh(vec3_t mins, vec3_t maxs, float cr, float cg, float cb, floa vertex3f[15] = maxs[0];vertex3f[16] = mins[1];vertex3f[17] = maxs[2]; vertex3f[18] = mins[0];vertex3f[19] = maxs[1];vertex3f[20] = maxs[2]; vertex3f[21] = maxs[0];vertex3f[22] = maxs[1];vertex3f[23] = maxs[2]; - GL_ColorPointer(color); R_FillColors(color, 8, cr, cg, cb, ca); if (fogenabled) { @@ -798,6 +784,10 @@ void R_DrawBBoxMesh(vec3_t mins, vec3_t maxs, float cr, float cg, float cb, floa c[2] = c[2] * f1 + fogcolor[2] * f2; } } + memset(&m, 0, sizeof(m)); + m.pointer_vertex = vertex3f; + m.pointer_color = color; + R_Mesh_State(&m); R_Mesh_Draw(8, 12); } */ @@ -844,7 +834,7 @@ void R_DrawNoModelCallback(const void *calldata1, int calldata2) R_Mesh_Matrix(&ent->matrix); memset(&m, 0, sizeof(m)); - R_Mesh_State_Texture(&m); + m.pointer_vertex = nomodelvertex3f; if (ent->flags & EF_ADDITIVE) { @@ -862,11 +852,10 @@ void R_DrawNoModelCallback(const void *calldata1, int calldata2) GL_DepthMask(true); } GL_DepthTest(true); - GL_VertexPointer(nomodelvertex3f); if (fogenabled) { memcpy(color4f, nomodelcolor4f, sizeof(float[6*4])); - GL_ColorPointer(color4f); + m.pointer_color = color4f; VectorSubtract(ent->origin, r_vieworigin, diff); f2 = exp(fogdensity/DotProduct(diff, diff)); f1 = 1 - f2; @@ -881,12 +870,13 @@ void R_DrawNoModelCallback(const void *calldata1, int calldata2) else if (ent->alpha != 1) { memcpy(color4f, nomodelcolor4f, sizeof(float[6*4])); - GL_ColorPointer(color4f); + m.pointer_color = color4f; for (i = 0, c = color4f;i < 6;i++, c += 4) c[3] *= ent->alpha; } else - GL_ColorPointer(nomodelcolor4f); + m.pointer_color = nomodelcolor4f; + R_Mesh_State(&m); R_Mesh_Draw(6, 8, nomodelelements); } @@ -943,17 +933,10 @@ void R_DrawSprite(int blendfunc1, int blendfunc2, rtexture_t *texture, int depth } R_Mesh_Matrix(&r_identitymatrix); - GL_Color(cr, cg, cb, ca); - GL_VertexPointer(varray_vertex3f); GL_BlendFunc(blendfunc1, blendfunc2); GL_DepthMask(false); GL_DepthTest(!depthdisable); - memset(&m, 0, sizeof(m)); - m.tex[0] = R_GetTexture(texture); - m.pointer_texcoord[0] = spritetexcoord2f; - R_Mesh_State_Texture(&m); - varray_vertex3f[ 0] = origin[0] + left[0] * scalex2 + up[0] * scaley1; varray_vertex3f[ 1] = origin[1] + left[1] * scalex2 + up[1] * scaley1; varray_vertex3f[ 2] = origin[2] + left[2] * scalex2 + up[2] * scaley1; @@ -966,6 +949,13 @@ void R_DrawSprite(int blendfunc1, int blendfunc2, rtexture_t *texture, int depth varray_vertex3f[ 9] = origin[0] + left[0] * scalex1 + up[0] * scaley1; varray_vertex3f[10] = origin[1] + left[1] * scalex1 + up[1] * scaley1; varray_vertex3f[11] = origin[2] + left[2] * scalex1 + up[2] * scaley1; + + memset(&m, 0, sizeof(m)); + m.tex[0] = R_GetTexture(texture); + m.pointer_texcoord[0] = spritetexcoord2f; + m.pointer_vertex = varray_vertex3f; + R_Mesh_State(&m); + GL_Color(cr, cg, cb, ca); R_Mesh_Draw(4, 2, polygonelements); }