This is an automated email from the git hooks/post-receive script.

smcv pushed a commit to annotated tag 1.42d
in repository iortcw.

commit 92507813edd9054f03cbb7ba5dd220e39962b791
Author: Zack Middleton <zturtle...@gmail.com>
Date:   Tue Aug 11 14:12:44 2015 -0500

    MP: Add customShader support on brushmodels to Rend2
    
    It's supported by the OpenGL1 renderer, so let's add it to Rend2 as well.
    As far as I know, CGame doesn't ever use customShader on brushmodels though.
---
 MP/code/rend2/tr_world.c | 62 +++++++++++++-----------------------------------
 1 file changed, 16 insertions(+), 46 deletions(-)

diff --git a/MP/code/rend2/tr_world.c b/MP/code/rend2/tr_world.c
index d77ebd6..dbe3183 100644
--- a/MP/code/rend2/tr_world.c
+++ b/MP/code/rend2/tr_world.c
@@ -326,7 +326,7 @@ static int R_PshadowSurface( msurface_t *surf, int 
pshadowBits ) {
 R_AddWorldSurface
 ======================
 */
-static void R_AddWorldSurface( msurface_t *surf, int dlightBits, int 
pshadowBits ) {
+static void R_AddWorldSurface( msurface_t *surf, shader_t *shader, int 
dlightBits, int pshadowBits ) {
        // FIXME: bmodel fog?
 
        // try to cull before dlighting or adding
@@ -346,7 +346,7 @@ static void R_AddWorldSurface( msurface_t *surf, int 
dlightBits, int pshadowBits
                pshadowBits = ( pshadowBits != 0 );
        }
 
-       R_AddDrawSurf( surf->data, surf->shader, surf->fogIndex, dlightBits, 
pshadowBits, surf->cubemapIndex );
+       R_AddDrawSurf( surf->data, shader, surf->fogIndex, dlightBits, 
pshadowBits, surf->cubemapIndex );
 }
 
 /*
@@ -407,47 +407,6 @@ int R_BmodelFogNum( trRefEntity_t *re, bmodel_t *bmodel ) {
 =================
 R_AddBrushModelSurfaces
 =================
-
-void R_AddBrushModelSurfaces( trRefEntity_t *ent ) {
-       bmodel_t    *bmodel;
-       int clip;
-       model_t     *pModel;
-       int i;
-       int fognum;
-
-       pModel = R_GetModelByHandle( ent->e.hModel );
-
-       bmodel = pModel->bmodel;
-
-       clip = R_CullLocalBox( bmodel->bounds );
-       if ( clip == CULL_OUT ) {
-               return;
-       }
-
-       R_SetupEntityLighting( &tr.refdef, ent );
-       R_DlightBmodel( bmodel );
-
-//----(SA) modified
-       // determine if in fog
-       fognum = R_BmodelFogNum( ent, bmodel );
-
-       for ( i = 0 ; i < bmodel->numSurfaces ; i++ ) {
-               ( bmodel->firstSurface + i )->fogIndex = fognum;
-               // Arnout: custom shader support for brushmodels
-               if ( ent->e.customShader ) {
-                       R_AddWorldSurface( bmodel->firstSurface + i, 
R_GetShaderByHandle( ent->e.customShader ), tr.currentEntity->needDlights );
-               } else {
-                       R_AddWorldSurface( bmodel->firstSurface + i, ( ( 
msurface_t * )( bmodel->firstSurface + i ) )->shader, 
tr.currentEntity->needDlights );
-               }
-       }
-//----(SA) end
-}
-*/
-
-/*
-=================
-R_AddBrushModelSurfaces
-=================
 */
 void R_AddBrushModelSurfaces ( trRefEntity_t *ent ) {
        bmodel_t        *bmodel;
@@ -479,7 +438,13 @@ void R_AddBrushModelSurfaces ( trRefEntity_t *ent ) {
                {
                        tr.world->surfacesViewCount[surf] = tr.viewCount;
                        tr.world->surfaces[surf].fogIndex = fognum;
-                       R_AddWorldSurface( tr.world->surfaces + surf, 
tr.currentEntity->needDlights, 0 );
+
+                       // Arnout: custom shader support for brushmodels
+                       if ( ent->e.customShader ) {
+                               R_AddWorldSurface( tr.world->surfaces + surf, 
R_GetShaderByHandle( ent->e.customShader ), tr.currentEntity->needDlights, 0 );
+                       } else {
+                               R_AddWorldSurface( tr.world->surfaces + surf, ( 
( msurface_t * )( tr.world->surfaces + surf ) )->shader, 
tr.currentEntity->needDlights, 0 );
+                       }
                }
        }
 //----(SA) end
@@ -898,6 +863,7 @@ void R_AddWorldSurfaces( void ) {
        // also mask invisible dlights for next frame
        {
                int i;
+               msurface_t *surf;
 
                tr.refdef.dlightMask = 0;
 
@@ -906,7 +872,9 @@ void R_AddWorldSurfaces( void ) {
                        if (tr.world->surfacesViewCount[i] != tr.viewCount)
                                continue;
 
-                       R_AddWorldSurface( tr.world->surfaces + i, 
tr.world->surfacesDlightBits[i], tr.world->surfacesPshadowBits[i] );
+                       surf = (msurface_t*)tr.world->surfaces + i;
+
+                       R_AddWorldSurface( surf, surf->shader, 
tr.world->surfacesDlightBits[i], tr.world->surfacesPshadowBits[i] );
                        tr.refdef.dlightMask |= tr.world->surfacesDlightBits[i];
                }
                for (i = 0; i < tr.world->numMergedSurfaces; i++)
@@ -914,7 +882,9 @@ void R_AddWorldSurfaces( void ) {
                        if (tr.world->mergedSurfacesViewCount[i] != 
tr.viewCount)
                                continue;
 
-                       R_AddWorldSurface( tr.world->mergedSurfaces + i, 
tr.world->mergedSurfacesDlightBits[i], tr.world->mergedSurfacesPshadowBits[i] );
+                       surf = (msurface_t*)tr.world->mergedSurfaces + i;
+
+                       R_AddWorldSurface( surf, surf->shader, 
tr.world->mergedSurfacesDlightBits[i], tr.world->mergedSurfacesPshadowBits[i] );
                        tr.refdef.dlightMask |= 
tr.world->mergedSurfacesDlightBits[i];
                }
 

-- 
Alioth's /usr/local/bin/git-commit-notice on 
/srv/git.debian.org/git/pkg-games/iortcw.git

_______________________________________________
Pkg-games-commits mailing list
Pkg-games-commits@lists.alioth.debian.org
http://lists.alioth.debian.org/cgi-bin/mailman/listinfo/pkg-games-commits

Reply via email to