]> de.git.xonotic.org Git - xonotic/darkplaces.git/blobdiff - gl_rmain.c
added collision.c, cl_collision.c. collision.h, cl_collision.h
[xonotic/darkplaces.git] / gl_rmain.c
index d75dc16473c16ffc5fb549493836c0661757ed7a..cae6f82dcfd72c0ea39270287575ea5d82701d5c 100644 (file)
@@ -79,7 +79,7 @@ cvar_t        gl_fogstart = {0, "gl_fogstart", "0"};
 cvar_t gl_fogend = {0, "gl_fogend","0"};
 
 cvar_t r_ser = {CVAR_SAVE, "r_ser", "1"};
-cvar_t gl_viewmodeldepthhack = {0, "gl_viewmodeldepthhack", "1"};
+//cvar_t       gl_viewmodeldepthhack = {0, "gl_viewmodeldepthhack", "1"};
 
 cvar_t r_multitexture = {0, "r_multitexture", "1"};
 
@@ -98,15 +98,16 @@ static void R_TimeRefresh_f (void)
 
        intimerefresh = 1;
        start = Sys_DoubleTime ();
-       glDrawBuffer (GL_FRONT);
+       //qglDrawBuffer (GL_FRONT);
        for (i = 0;i < 128;i++)
        {
                r_refdef.viewangles[0] = 0;
                r_refdef.viewangles[1] = i/128.0*360.0;
                r_refdef.viewangles[2] = 0;
-               R_RenderView();
+               CL_UpdateScreen();
+               //R_RenderView();
        }
-       glDrawBuffer  (GL_BACK);
+       //qglDrawBuffer  (GL_BACK);
 
        stop = Sys_DoubleTime ();
        intimerefresh = 0;
@@ -260,7 +261,7 @@ void GL_Main_Init(void)
        Cvar_RegisterVariable (&r_waterripple);
        Cvar_RegisterVariable (&r_fullbright);
        Cvar_RegisterVariable (&r_ser);
-       Cvar_RegisterVariable (&gl_viewmodeldepthhack);
+//     Cvar_RegisterVariable (&gl_viewmodeldepthhack);
        Cvar_RegisterVariable (&r_multitexture);
        if (gamemode == GAME_NEHAHRA)
                Cvar_SetValue("r_fullbrights", 0);
@@ -346,10 +347,10 @@ void GL_Init (void)
        // LordHavoc: report supported extensions
        Con_Printf ("\nengine extensions: %s\n", ENGINE_EXTENSIONS);
 
-       glCullFace(GL_FRONT);
-       glEnable(GL_TEXTURE_2D);
+       qglCullFace(GL_FRONT);
+       qglEnable(GL_TEXTURE_2D);
 
-//     glPolygonMode (GL_FRONT_AND_BACK, GL_FILL);
+//     qglPolygonMode (GL_FRONT_AND_BACK, GL_FILL);
 }
 
 
@@ -465,17 +466,17 @@ void R_DrawViewModel (void)
        R_LerpAnimation(currentrenderentity);
 
        // hack the depth range to prevent view model from poking into walls
-       if (gl_viewmodeldepthhack.integer)
-       {
-               R_Mesh_Render();
-               glDepthRange (gldepthmin, gldepthmin + 0.3*(gldepthmax-gldepthmin));
-       }
+//     if (gl_viewmodeldepthhack.integer)
+//     {
+//             R_Mesh_Render();
+//             qglDepthRange (gldepthmin, gldepthmin + 0.3*(gldepthmax-gldepthmin));
+//     }
        currentrenderentity->model->Draw();
-       if (gl_viewmodeldepthhack.integer)
-       {
-               R_Mesh_Render();
-               glDepthRange (gldepthmin, gldepthmax);
-       }
+//     if (gl_viewmodeldepthhack.integer)
+//     {
+//             R_Mesh_Render();
+//             qglDepthRange (gldepthmin, gldepthmax);
+//     }
 }
 
 static void R_SetFrustum (void)
@@ -543,7 +544,7 @@ static int blendviewpolyindex[3] = {0, 1, 2};
 static void R_BlendView(void)
 {
        rmeshinfo_t m;
-       float tvxyz[3][4];
+       float tvxyz[3][4], r;
 
        if (!r_render.integer)
                return;
@@ -565,39 +566,41 @@ static void R_BlendView(void)
        m.cg = r_refdef.viewblend[1];
        m.cb = r_refdef.viewblend[2];
        m.ca = r_refdef.viewblend[3];
-       tvxyz[0][0] = r_origin[0] + vpn[0] * 8 - vright[0] * 16 - vup[0] * 16;
-       tvxyz[0][1] = r_origin[1] + vpn[1] * 8 - vright[1] * 16 - vup[1] * 16;
-       tvxyz[0][2] = r_origin[2] + vpn[2] * 8 - vright[2] * 16 - vup[2] * 16;
-       tvxyz[1][0] = tvxyz[0][0] + vup[0] * 48;
-       tvxyz[1][1] = tvxyz[0][1] + vup[1] * 48;
-       tvxyz[1][2] = tvxyz[0][2] + vup[2] * 48;
-       tvxyz[2][0] = tvxyz[0][0] + vright[0] * 48;
-       tvxyz[2][1] = tvxyz[0][1] + vright[1] * 48;
-       tvxyz[2][2] = tvxyz[0][2] + vright[2] * 48;
+       r = 64000;
+       tvxyz[0][0] = r_origin[0] + vpn[0] * 1.5 - vright[0] * r - vup[0] * r;
+       tvxyz[0][1] = r_origin[1] + vpn[1] * 1.5 - vright[1] * r - vup[1] * r;
+       tvxyz[0][2] = r_origin[2] + vpn[2] * 1.5 - vright[2] * r - vup[2] * r;
+       r *= 3;
+       tvxyz[1][0] = tvxyz[0][0] + vup[0] * r;
+       tvxyz[1][1] = tvxyz[0][1] + vup[1] * r;
+       tvxyz[1][2] = tvxyz[0][2] + vup[2] * r;
+       tvxyz[2][0] = tvxyz[0][0] + vright[0] * r;
+       tvxyz[2][1] = tvxyz[0][1] + vright[1] * r;
+       tvxyz[2][2] = tvxyz[0][2] + vright[2] * r;
        R_Mesh_Draw(&m);
 
        /*
-       glMatrixMode(GL_PROJECTION);
-       glLoadIdentity ();
-       glOrtho  (0, 1, 1, 0, -99999, 99999);
-       glMatrixMode(GL_MODELVIEW);
-       glLoadIdentity ();
-       glDisable (GL_DEPTH_TEST);
-       glDisable (GL_CULL_FACE);
-       glDisable(GL_TEXTURE_2D);
-       glEnable(GL_BLEND);
-       glBlendFunc (GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);
-       glBegin (GL_TRIANGLES);
-       glColor4f (r_refdef.viewblend[0] * overbrightscale, r_refdef.viewblend[1] * overbrightscale, r_refdef.viewblend[2] * overbrightscale, r_refdef.viewblend[3]);
-       glVertex2f (-5, -5);
-       glVertex2f (10, -5);
-       glVertex2f (-5, 10);
-       glEnd ();
-
-       glEnable (GL_CULL_FACE);
-       glEnable (GL_DEPTH_TEST);
-       glDisable(GL_BLEND);
-       glEnable(GL_TEXTURE_2D);
+       qglMatrixMode(GL_PROJECTION);
+       qglLoadIdentity ();
+       qglOrtho  (0, 1, 1, 0, -99999, 99999);
+       qglMatrixMode(GL_MODELVIEW);
+       qglLoadIdentity ();
+       qglDisable (GL_DEPTH_TEST);
+       qglDisable (GL_CULL_FACE);
+       qglDisable(GL_TEXTURE_2D);
+       qglEnable(GL_BLEND);
+       qglBlendFunc (GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);
+       qglBegin (GL_TRIANGLES);
+       qglColor4f (r_refdef.viewblend[0] * overbrightscale, r_refdef.viewblend[1] * overbrightscale, r_refdef.viewblend[2] * overbrightscale, r_refdef.viewblend[3]);
+       qglVertex2f (-5, -5);
+       qglVertex2f (10, -5);
+       qglVertex2f (-5, 10);
+       qglEnd ();
+
+       qglEnable (GL_CULL_FACE);
+       qglEnable (GL_DEPTH_TEST);
+       qglDisable(GL_BLEND);
+       qglEnable(GL_TEXTURE_2D);
        */
 }
 
@@ -611,7 +614,7 @@ r_refdef must be set before the first call
 void R_RenderView (void)
 {
        if (!cl.worldmodel)
-               Host_Error ("R_RenderView: NULL worldmodel");
+               return; //Host_Error ("R_RenderView: NULL worldmodel");
 
        // FIXME: move to client
        R_MoveExplosions();
@@ -625,7 +628,7 @@ void R_RenderView (void)
                R_Clip_StartFrame();
        R_BuildLightList();
 
-       R_Mesh_Clear();
+       R_Mesh_Start();
 
        R_TimeReport("setup");
 
@@ -661,7 +664,6 @@ void R_RenderView (void)
 
        R_DrawSurfaces(SHADERSTAGE_SKY);
        R_DrawSurfaces(SHADERSTAGE_NORMAL);
-       R_DrawSurfaces(SHADERSTAGE_FOG);
        R_TimeReport("surfdraw");
 
        if (r_drawportals.integer)
@@ -700,8 +702,8 @@ void R_RenderView (void)
        R_TimeReport("blendview");
 
        // render any queued meshs
-       R_Mesh_Render();
-       R_TimeReport("meshrender");
+       R_Mesh_Finish();
+       R_TimeReport("meshfinish");
 
        //Mem_CheckSentinelsGlobal();
        //R_TimeReport("memtest");