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 becaaf53ebd733300b8c496046a7fe004749c9fc Author: MAN-AT-ARMS <m4n4t4...@gmail.com> Date: Thu Dec 3 13:53:26 2015 -0500 All: Add aspect corrected binocs --- MP/code/cgame/cg_draw.c | 30 ++++++++++++++++++++++-------- SP/code/cgame/cg_draw.c | 31 +++++++++++++++++++++++-------- 2 files changed, 45 insertions(+), 16 deletions(-) diff --git a/MP/code/cgame/cg_draw.c b/MP/code/cgame/cg_draw.c index 8a84319..49023c4 100644 --- a/MP/code/cgame/cg_draw.c +++ b/MP/code/cgame/cg_draw.c @@ -1659,8 +1659,29 @@ CG_DrawBinocReticle ============== */ static void CG_DrawBinocReticle( void ) { + vec4_t color = {0, 0, 0, 1}; + float mask = 0, lb = 0; + if ( cg_fixedAspect.integer ) { - CG_SetScreenPlacement(PLACE_STRETCH, PLACE_STRETCH); + if ( cgs.glconfig.vidWidth * 480.0 > cgs.glconfig.vidHeight * 640.0 ) { + mask = 0.5 * ( ( cgs.glconfig.vidWidth - ( cgs.screenXScale * 640.0 ) ) / cgs.screenXScale ); + + CG_SetScreenPlacement(PLACE_LEFT, PLACE_CENTER); + CG_FillRect( 0, 0, mask, 480, color ); + CG_SetScreenPlacement(PLACE_RIGHT, PLACE_CENTER); + CG_FillRect( 640 - mask, 0, mask, 480, color ); + } else if ( cgs.glconfig.vidWidth * 480.0 < cgs.glconfig.vidHeight * 640.0 ) { + lb = 0.5 * ( ( cgs.glconfig.vidHeight - ( cgs.screenYScale * 480.0 ) ) / cgs.screenYScale ); + + CG_SetScreenPlacement(PLACE_LEFT, PLACE_BOTTOM); + CG_FillRect( 0, 480 - lb, 640, lb, color ); + CG_SetScreenPlacement(PLACE_LEFT, PLACE_TOP); + CG_FillRect( 0, 0, 640, lb, color ); + } + } + + if ( cg_fixedAspect.integer ) { + CG_SetScreenPlacement(PLACE_CENTER, PLACE_CENTER); } if ( cg_reticles.integer ) { @@ -1670,18 +1691,11 @@ static void CG_DrawBinocReticle( void ) { } } else if ( cg_reticleType.integer == 1 ) { // an alternative. This gives nice sharp lines at the expense of a few extra polys - vec4_t color; - color[0] = color[1] = color[2] = 0; - color[3] = 1; if ( cgs.media.binocShaderSimple ) { CG_DrawPic( 0, 0, 640, 480, cgs.media.binocShaderSimple ); } - if ( cg_fixedAspect.integer ) { - CG_SetScreenPlacement(PLACE_CENTER, PLACE_CENTER); - } - CG_FillRect( 146, 239, 348, 1, color ); CG_FillRect( 188, 234, 1, 13, color ); // ll diff --git a/SP/code/cgame/cg_draw.c b/SP/code/cgame/cg_draw.c index 36daf81..683e70e 100644 --- a/SP/code/cgame/cg_draw.c +++ b/SP/code/cgame/cg_draw.c @@ -2310,23 +2310,38 @@ static void CG_DrawBinocReticle( void ) { // an alternative. This gives nice sharp lines at the expense of a few extra polys vec4_t color = {0, 0, 0, 1}; float x, y, w = 320, h = 240; + float mask = 0, lb = 0; if ( cg_fixedAspect.integer ) { - CG_SetScreenPlacement(PLACE_STRETCH, PLACE_STRETCH); - } + if ( cgs.glconfig.vidWidth * 480.0 > cgs.glconfig.vidHeight * 640.0 ) { + mask = 0.5 * ( ( cgs.glconfig.vidWidth - ( cgs.screenXScale * 640.0 ) ) / cgs.screenXScale ); - if ( cgs.media.binocShaderSimpleQ ) { - CG_AdjustFrom640( &x, &y, &w, &h ); - trap_R_DrawStretchPic( 0, 0, w, h, 0, 0, 1, 1, cgs.media.binocShaderSimpleQ ); // tl - trap_R_DrawStretchPic( w, 0, w, h, 1, 0, 0, 1, cgs.media.binocShaderSimpleQ ); // tr - trap_R_DrawStretchPic( 0, h, w, h, 0, 1, 1, 0, cgs.media.binocShaderSimpleQ ); // bl - trap_R_DrawStretchPic( w, h, w, h, 1, 1, 0, 0, cgs.media.binocShaderSimpleQ ); // br + CG_SetScreenPlacement(PLACE_LEFT, PLACE_CENTER); + CG_FillRect( 0, 0, mask, 480, color ); + CG_SetScreenPlacement(PLACE_RIGHT, PLACE_CENTER); + CG_FillRect( 640 - mask, 0, mask, 480, color ); + } else if ( cgs.glconfig.vidWidth * 480.0 < cgs.glconfig.vidHeight * 640.0 ) { + lb = 0.5 * ( ( cgs.glconfig.vidHeight - ( cgs.screenYScale * 480.0 ) ) / cgs.screenYScale ); + + CG_SetScreenPlacement(PLACE_LEFT, PLACE_BOTTOM); + CG_FillRect( 0, 480 - lb, 640, lb, color ); + CG_SetScreenPlacement(PLACE_LEFT, PLACE_TOP); + CG_FillRect( 0, 0, 640, lb, color ); + } } if ( cg_fixedAspect.integer ) { CG_SetScreenPlacement(PLACE_CENTER, PLACE_CENTER); } + if ( cgs.media.binocShaderSimpleQ ) { + CG_AdjustFrom640( &x, &y, &w, &h ); + trap_R_DrawStretchPic( mask * cgs.screenXScale, lb * cgs.screenYScale, w, h, 0, 0, 1, 1, cgs.media.binocShaderSimpleQ ); // tl + trap_R_DrawStretchPic( w + mask * cgs.screenXScale, lb * cgs.screenYScale, w, h, 1, 0, 0, 1, cgs.media.binocShaderSimpleQ ); // tr + trap_R_DrawStretchPic( mask * cgs.screenXScale, h + lb * cgs.screenYScale, w, h, 0, 1, 1, 0, cgs.media.binocShaderSimpleQ ); // bl + trap_R_DrawStretchPic( w + mask * cgs.screenXScale, h + lb * cgs.screenYScale, w, h, 1, 1, 0, 0, cgs.media.binocShaderSimpleQ ); // br + } + CG_FillRect( 146, 239, 348, 1, color ); CG_FillRect( 188, 234, 1, 13, color ); // ll -- 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