From fbb0a2559c0c5f6b5ff7ff80d028bb72b9cc4ad4 Mon Sep 17 00:00:00 2001 From: havoc Date: Tue, 22 May 2018 01:31:16 +0000 Subject: [PATCH] Remove use of glPolygonStipple - it will need to be reimplemented in the shader using discard, or drawn as an overlay over the area. git-svn-id: svn://svn.icculus.org/twilight/trunk/darkplaces@12429 d7cf8633-e32d-0410-b094-e92efae38249 --- cl_screen.c | 29 +++-------------------------- cl_video.c | 27 +++------------------------ glquake.h | 2 -- vid_sdl.c | 1 - vid_shared.c | 3 --- 5 files changed, 6 insertions(+), 56 deletions(-) diff --git a/cl_screen.c b/cl_screen.c index d86c9686..197e632e 100644 --- a/cl_screen.c +++ b/cl_screen.c @@ -2818,34 +2818,11 @@ void CL_UpdateScreen(void) // calculate r_refdef.view.quality r_refdef.view.quality = cl_updatescreen_quality; -#ifndef USE_GLES2 - if (qglPolygonStipple) + if(scr_stipple.integer) { - if(scr_stipple.integer) - { - GLubyte stipple[128]; - int i, s, width, parts; - static int frame = 0; - ++frame; - - s = scr_stipple.integer; - parts = (s & 007); - width = (s & 070) >> 3; - - qglEnable(GL_POLYGON_STIPPLE);CHECKGLERROR // 0x0B42 - for(i = 0; i < 128; ++i) - { - int line = i/4; - stipple[i] = (((line >> width) + frame) & ((1 << parts) - 1)) ? 0x00 : 0xFF; - } - qglPolygonStipple(stipple);CHECKGLERROR - } - else - { - qglDisable(GL_POLYGON_STIPPLE);CHECKGLERROR - } + Con_Print("FIXME: scr_stipple not implemented\n"); + Cvar_SetValueQuick(&scr_stipple, 0); } -#endif #ifndef USE_GLES2 if (R_Stereo_Active()) diff --git a/cl_video.c b/cl_video.c index 7543c306..9e5ca0d6 100644 --- a/cl_video.c +++ b/cl_video.c @@ -533,25 +533,12 @@ void CL_DrawVideo(void) if (cl_video_stipple.integer || px != 0 || py != 0 || sx != vid_conwidth.integer || sy != vid_conheight.integer) DrawQ_Fill(0, 0, vid_conwidth.integer, vid_conheight.integer, 0, 0, 0, 1, 0); -#ifndef USE_GLES2 // enable video-only polygon stipple (of global stipple is not active) - if (qglPolygonStipple && !scr_stipple.integer && cl_video_stipple.integer) + if (!scr_stipple.integer && cl_video_stipple.integer) { - GLubyte stipple[128]; - int s, width, parts; - - s = cl_video_stipple.integer; - parts = (s & 007); - width = (s & 070) >> 3; - qglEnable(GL_POLYGON_STIPPLE);CHECKGLERROR // 0x0B42 - for(i = 0; i < 128; ++i) - { - int line = i/4; - stipple[i] = ((line >> width) & ((1 << parts) - 1)) ? 0x00 : 0xFF; - } - qglPolygonStipple(stipple);CHECKGLERROR + Con_Print("FIXME: cl_video_stipple not implemented\n"); + Cvar_SetValueQuick(&cl_video_stipple, 0); } -#endif // draw video if (v_glslgamma_video.value >= 1) @@ -563,14 +550,6 @@ void CL_DrawVideo(void) DrawQ_SuperPic(px, py, video->cachepic, sx, sy, st[0], st[1], b, b, b, v_glslgamma_video.value, st[2], st[3], b, b, b, v_glslgamma_video.value, st[4], st[5], b, b, b, v_glslgamma_video.value, st[6], st[7], b, b, b, v_glslgamma_video.value, 0); } -#ifndef USE_GLES2 - // disable video-only stipple - if (qglPolygonStipple && !scr_stipple.integer && cl_video_stipple.integer) - { - qglDisable(GL_POLYGON_STIPPLE);CHECKGLERROR - } -#endif - // VorteX: draw subtitle_text if (!video->subtitles || !cl_video_subtitles.integer) return; diff --git a/glquake.h b/glquake.h index c3cd3d5a..38ec3d7c 100644 --- a/glquake.h +++ b/glquake.h @@ -837,7 +837,6 @@ extern void (GLAPIENTRY *qglGetActiveUniform)(GLuint programObj, GLuint index, G extern void (GLAPIENTRY *qglGetUniformfv)(GLuint programObj, GLint location, GLfloat *params); extern void (GLAPIENTRY *qglGetUniformiv)(GLuint programObj, GLint location, GLint *params); extern void (GLAPIENTRY *qglGetShaderSource)(GLuint obj, GLsizei maxLength, GLsizei *length, GLchar *source); -extern void (GLAPIENTRY *qglPolygonStipple)(const GLubyte *mask); #ifndef GL_PROGRAM_OBJECT #define GL_PROGRAM_OBJECT 0x8B40 #define GL_DELETE_STATUS 0x8B80 @@ -1183,7 +1182,6 @@ void GL_PrintError(int errornumber, const char *filename, int linenumber); #define qglPointSize glPointSize //#define qglPolygonMode glPolygonMode #define qglPolygonOffset glPolygonOffset -//#define qglPolygonStipple glPolygonStipple #define qglReadBuffer glReadBuffer #define qglReadPixels glReadPixels #define qglRenderbufferStorage glRenderbufferStorage diff --git a/vid_sdl.c b/vid_sdl.c index 0e4e7b86..0b6ce5ac 100644 --- a/vid_sdl.c +++ b/vid_sdl.c @@ -1599,7 +1599,6 @@ void GLES_Init(void) qglPointSize = wrapglPointSize; // qglPolygonMode = wrapglPolygonMode; qglPolygonOffset = wrapglPolygonOffset; -// qglPolygonStipple = wrapglPolygonStipple; qglReadBuffer = wrapglReadBuffer; qglReadPixels = wrapglReadPixels; qglRenderbufferStorage = wrapglRenderbufferStorage; diff --git a/vid_shared.c b/vid_shared.c index 6041fec2..04702096 100644 --- a/vid_shared.c +++ b/vid_shared.c @@ -275,7 +275,6 @@ void (GLAPIENTRY *qglScissor)(GLint x, GLint y, GLsizei width, GLsizei height); void (GLAPIENTRY *qglPolygonOffset)(GLfloat factor, GLfloat units); void (GLAPIENTRY *qglPolygonMode)(GLenum face, GLenum mode); -void (GLAPIENTRY *qglPolygonStipple)(const GLubyte *mask); void (GLAPIENTRY *qglPointSize)(GLfloat size); @@ -575,7 +574,6 @@ static dllfunction_t openglfuncs[] = {"glScissor", (void **) &qglScissor}, {"glPolygonOffset", (void **) &qglPolygonOffset}, {"glPolygonMode", (void **) &qglPolygonMode}, - {"glPolygonStipple", (void **) &qglPolygonStipple}, {"glActiveTexture", (void **) &qglActiveTexture}, {"glTexImage3D", (void **) &qglTexImage3D}, {"glTexSubImage3D", (void **) &qglTexSubImage3D}, @@ -784,7 +782,6 @@ void VID_ClearExtensions(void) #ifndef USE_GLES2 // this is a complete list of all functions that are directly checked in the renderer qglDrawBuffer = NULL; - qglPolygonStipple = NULL; qglFlush = NULL; qglActiveTexture = NULL; qglGetCompressedTexImageARB = NULL; -- 2.39.2