mirror of
https://git.do.srb2.org/STJr/SRB2.git
synced 2024-11-22 12:31:32 +00:00
Merge branch 'master' into sdl2
This commit is contained in:
commit
ea2e1a1144
7 changed files with 34 additions and 37 deletions
|
@ -268,10 +268,6 @@ static void D_Display(void)
|
||||||
&& wipedefs[wipedefindex] != UINT8_MAX)
|
&& wipedefs[wipedefindex] != UINT8_MAX)
|
||||||
{
|
{
|
||||||
V_DrawFill(0, 0, BASEVIDWIDTH, BASEVIDHEIGHT, 31);
|
V_DrawFill(0, 0, BASEVIDWIDTH, BASEVIDHEIGHT, 31);
|
||||||
#ifdef HWRENDER
|
|
||||||
if(rendermode != render_soft)
|
|
||||||
HWR_PrepFadeToBlack();
|
|
||||||
#endif
|
|
||||||
F_WipeEndScreen();
|
F_WipeEndScreen();
|
||||||
F_RunWipe(wipedefs[wipedefindex], gamestate != GS_TIMEATTACK);
|
F_RunWipe(wipedefs[wipedefindex], gamestate != GS_TIMEATTACK);
|
||||||
}
|
}
|
||||||
|
|
|
@ -288,7 +288,6 @@ void F_RunWipe(UINT8 wipetype, boolean drawMenu)
|
||||||
if (drawMenu)
|
if (drawMenu)
|
||||||
M_Drawer(); // menu is drawn even on top of wipes
|
M_Drawer(); // menu is drawn even on top of wipes
|
||||||
|
|
||||||
if (rendermode == render_soft)
|
|
||||||
I_FinishUpdate(); // page flip or blit buffer
|
I_FinishUpdate(); // page flip or blit buffer
|
||||||
|
|
||||||
if (moviemode)
|
if (moviemode)
|
||||||
|
|
|
@ -1420,6 +1420,9 @@ static void HWR_StoreWallRange(double startfrac, double endfrac)
|
||||||
|
|
||||||
texturevpegtop += gr_sidedef->rowoffset;
|
texturevpegtop += gr_sidedef->rowoffset;
|
||||||
|
|
||||||
|
// This is so that it doesn't overflow and screw up the wall, it doesn't need to go higher than the texture's height anyway
|
||||||
|
texturevpegtop %= SHORT(textures[texturetranslation[gr_sidedef->toptexture]]->height)<<FRACBITS;
|
||||||
|
|
||||||
wallVerts[3].t = wallVerts[2].t = texturevpegtop * grTex->scaleY;
|
wallVerts[3].t = wallVerts[2].t = texturevpegtop * grTex->scaleY;
|
||||||
wallVerts[0].t = wallVerts[1].t = (texturevpegtop + worldtop - worldhigh) * grTex->scaleY;
|
wallVerts[0].t = wallVerts[1].t = (texturevpegtop + worldtop - worldhigh) * grTex->scaleY;
|
||||||
wallVerts[0].s = wallVerts[3].s = cliplow * grTex->scaleX;
|
wallVerts[0].s = wallVerts[3].s = cliplow * grTex->scaleX;
|
||||||
|
@ -1459,6 +1462,9 @@ static void HWR_StoreWallRange(double startfrac, double endfrac)
|
||||||
|
|
||||||
texturevpegbottom += gr_sidedef->rowoffset;
|
texturevpegbottom += gr_sidedef->rowoffset;
|
||||||
|
|
||||||
|
// This is so that it doesn't overflow and screw up the wall, it doesn't need to go higher than the texture's height anyway
|
||||||
|
texturevpegbottom %= SHORT(textures[texturetranslation[gr_sidedef->bottomtexture]]->height)<<FRACBITS;
|
||||||
|
|
||||||
wallVerts[3].t = wallVerts[2].t = texturevpegbottom * grTex->scaleY;
|
wallVerts[3].t = wallVerts[2].t = texturevpegbottom * grTex->scaleY;
|
||||||
wallVerts[0].t = wallVerts[1].t = (texturevpegbottom + worldlow - worldbottom) * grTex->scaleY;
|
wallVerts[0].t = wallVerts[1].t = (texturevpegbottom + worldlow - worldbottom) * grTex->scaleY;
|
||||||
wallVerts[0].s = wallVerts[3].s = cliplow * grTex->scaleX;
|
wallVerts[0].s = wallVerts[3].s = cliplow * grTex->scaleX;
|
||||||
|
@ -1648,12 +1654,12 @@ static void HWR_StoreWallRange(double startfrac, double endfrac)
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
if (grTex->mipmap.flags & TF_TRANSPARENT)
|
if (grTex->mipmap.flags & TF_TRANSPARENT)
|
||||||
blendmode = PF_Environment;
|
blendmode = PF_Translucent;
|
||||||
|
|
||||||
if (gr_frontsector->numlights)
|
if (gr_frontsector->numlights)
|
||||||
{
|
{
|
||||||
if (!(blendmode & PF_Masked))
|
if (!(blendmode & PF_Masked))
|
||||||
HWR_SplitWall(gr_frontsector, wallVerts, gr_midtexture, &Surf, FF_CUTSOLIDS|FF_TRANSLUCENT);
|
HWR_SplitWall(gr_frontsector, wallVerts, gr_midtexture, &Surf, FF_TRANSLUCENT);
|
||||||
else
|
else
|
||||||
HWR_SplitWall(gr_frontsector, wallVerts, gr_midtexture, &Surf, FF_CUTSOLIDS);
|
HWR_SplitWall(gr_frontsector, wallVerts, gr_midtexture, &Surf, FF_CUTSOLIDS);
|
||||||
}
|
}
|
||||||
|
@ -4629,6 +4635,7 @@ void HWR_RenderPlayerView(INT32 viewnumber, player_t *player)
|
||||||
ClearColor.blue = 0.0f;
|
ClearColor.blue = 0.0f;
|
||||||
ClearColor.alpha = 1.0f;
|
ClearColor.alpha = 1.0f;
|
||||||
|
|
||||||
|
if (viewnumber == 0) // Only do it if it's the first screen being rendered
|
||||||
HWD.pfnClearBuffer(true, false, &ClearColor); // Clear the Color Buffer, stops HOMs. Also seems to fix the skybox issue on Intel GPUs.
|
HWD.pfnClearBuffer(true, false, &ClearColor); // Clear the Color Buffer, stops HOMs. Also seems to fix the skybox issue on Intel GPUs.
|
||||||
|
|
||||||
if (skybox && drawsky) // If there's a skybox and we should be drawing the sky, draw the skybox
|
if (skybox && drawsky) // If there's a skybox and we should be drawing the sky, draw the skybox
|
||||||
|
@ -5340,24 +5347,6 @@ void HWR_EndScreenWipe(void)
|
||||||
HWD.pfnEndScreenWipe();
|
HWD.pfnEndScreenWipe();
|
||||||
}
|
}
|
||||||
|
|
||||||
// Prepare the screen for fading to black.
|
|
||||||
void HWR_PrepFadeToBlack(void)
|
|
||||||
{
|
|
||||||
FOutVector v[4];
|
|
||||||
INT32 flags;
|
|
||||||
FSurfaceInfo Surf;
|
|
||||||
|
|
||||||
v[0].x = v[2].y = v[3].x = v[3].y = -1.0f;
|
|
||||||
v[0].y = v[1].x = v[1].y = v[2].x = 1.0f;
|
|
||||||
v[0].z = v[1].z = v[2].z = v[3].z = 1.0f;
|
|
||||||
|
|
||||||
flags = PF_Modulated | PF_Clip | PF_NoZClip | PF_NoDepthTest | PF_NoTexture;
|
|
||||||
Surf.FlatColor.s.red = Surf.FlatColor.s.green = Surf.FlatColor.s.blue = 0x00;
|
|
||||||
Surf.FlatColor.s.alpha = 0xff;
|
|
||||||
|
|
||||||
HWD.pfnDrawPolygon(&Surf, v, 4, flags);
|
|
||||||
}
|
|
||||||
|
|
||||||
void HWR_DrawIntermissionBG(void)
|
void HWR_DrawIntermissionBG(void)
|
||||||
{
|
{
|
||||||
HWD.pfnDrawIntermissionBG();
|
HWD.pfnDrawIntermissionBG();
|
||||||
|
@ -5365,14 +5354,15 @@ void HWR_DrawIntermissionBG(void)
|
||||||
|
|
||||||
void HWR_DoScreenWipe(void)
|
void HWR_DoScreenWipe(void)
|
||||||
{
|
{
|
||||||
HWRWipeCounter -= 0.035f;
|
|
||||||
|
|
||||||
//CONS_Debug(DBG_RENDER, "In HWR_DoScreenWipe(). Alpha =%f\n", HWRWipeCounter);
|
//CONS_Debug(DBG_RENDER, "In HWR_DoScreenWipe(). Alpha =%f\n", HWRWipeCounter);
|
||||||
|
|
||||||
HWD.pfnDoScreenWipe(HWRWipeCounter);
|
HWD.pfnDoScreenWipe(HWRWipeCounter);
|
||||||
|
|
||||||
I_OsPolling();
|
// This works for all the cases in vanilla until fade masks get done
|
||||||
I_FinishUpdate();
|
HWRWipeCounter -= 0.05f; // Go less opaque after
|
||||||
|
|
||||||
|
if (HWRWipeCounter < 0)
|
||||||
|
HWRWipeCounter = 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
#endif // HWRENDER
|
#endif // HWRENDER
|
||||||
|
|
|
@ -64,7 +64,6 @@ void HWR_DoPostProcessor(player_t *player);
|
||||||
void HWR_StartScreenWipe(void);
|
void HWR_StartScreenWipe(void);
|
||||||
void HWR_EndScreenWipe(void);
|
void HWR_EndScreenWipe(void);
|
||||||
void HWR_DoScreenWipe(void);
|
void HWR_DoScreenWipe(void);
|
||||||
void HWR_PrepFadeToBlack(void);
|
|
||||||
void HWR_DrawIntermissionBG(void);
|
void HWR_DrawIntermissionBG(void);
|
||||||
|
|
||||||
// This stuff is put here so MD2's can use them
|
// This stuff is put here so MD2's can use them
|
||||||
|
|
|
@ -1179,6 +1179,8 @@ void HWR_DrawMD2(gr_vissprite_t *spr)
|
||||||
if (!gpatch || !gpatch->mipmap.grInfo.format || !gpatch->mipmap.downloaded)
|
if (!gpatch || !gpatch->mipmap.grInfo.format || !gpatch->mipmap.downloaded)
|
||||||
md2_loadTexture(md2);
|
md2_loadTexture(md2);
|
||||||
|
|
||||||
|
gpatch = md2->grpatch; // Load it again, because it isn't being loaded into gpatch after md2_loadtexture...
|
||||||
|
|
||||||
if (gpatch && gpatch->mipmap.grInfo.format) // else if meant that if a texture couldn't be loaded, it would just end up using something else's texture
|
if (gpatch && gpatch->mipmap.grInfo.format) // else if meant that if a texture couldn't be loaded, it would just end up using something else's texture
|
||||||
{
|
{
|
||||||
// This is safe, since we know the texture has been downloaded
|
// This is safe, since we know the texture has been downloaded
|
||||||
|
|
|
@ -2016,6 +2016,8 @@ EXPORT void HWRAPI(StartScreenWipe) (void)
|
||||||
#ifndef KOS_GL_COMPATIBILITY
|
#ifndef KOS_GL_COMPATIBILITY
|
||||||
pglCopyTexImage2D(GL_TEXTURE_2D, 0, GL_RGBA, 0, 0, texsize, texsize, 0);
|
pglCopyTexImage2D(GL_TEXTURE_2D, 0, GL_RGBA, 0, 0, texsize, texsize, 0);
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
tex_downloaded = 0; // 0 so it knows it doesn't have any of the cached patches downloaded right now
|
||||||
}
|
}
|
||||||
|
|
||||||
// Create Screen to fade to
|
// Create Screen to fade to
|
||||||
|
@ -2043,6 +2045,8 @@ EXPORT void HWRAPI(EndScreenWipe)(void)
|
||||||
#ifndef KOS_GL_COMPATIBILITY
|
#ifndef KOS_GL_COMPATIBILITY
|
||||||
pglCopyTexImage2D(GL_TEXTURE_2D, 0, GL_RGBA, 0, 0, texsize, texsize, 0);
|
pglCopyTexImage2D(GL_TEXTURE_2D, 0, GL_RGBA, 0, 0, texsize, texsize, 0);
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
tex_downloaded = 0; // 0 so it knows it doesn't have any of the cached patches downloaded right now
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -2060,7 +2064,7 @@ EXPORT void HWRAPI(DrawIntermissionBG)(void)
|
||||||
xfix = 1/((float)(texsize)/((float)((screen_width))));
|
xfix = 1/((float)(texsize)/((float)((screen_width))));
|
||||||
yfix = 1/((float)(texsize)/((float)((screen_height))));
|
yfix = 1/((float)(texsize)/((float)((screen_height))));
|
||||||
|
|
||||||
//pglClear(GL_COLOR_BUFFER_BIT|GL_DEPTH_BUFFER_BIT);
|
pglClear(GL_COLOR_BUFFER_BIT|GL_DEPTH_BUFFER_BIT);
|
||||||
|
|
||||||
pglBindTexture(GL_TEXTURE_2D, screentexture);
|
pglBindTexture(GL_TEXTURE_2D, screentexture);
|
||||||
pglBegin(GL_QUADS);
|
pglBegin(GL_QUADS);
|
||||||
|
@ -2083,6 +2087,8 @@ EXPORT void HWRAPI(DrawIntermissionBG)(void)
|
||||||
pglVertex3f(1.0f, -1.0f, 1.0f);
|
pglVertex3f(1.0f, -1.0f, 1.0f);
|
||||||
|
|
||||||
pglEnd();
|
pglEnd();
|
||||||
|
|
||||||
|
tex_downloaded = 0; // 0 so it knows it doesn't have any of the cached patches downloaded right now
|
||||||
}
|
}
|
||||||
|
|
||||||
// Do screen fades!
|
// Do screen fades!
|
||||||
|
@ -2102,6 +2108,8 @@ EXPORT void HWRAPI(DoScreenWipe)(float alpha)
|
||||||
|
|
||||||
pglClear(GL_COLOR_BUFFER_BIT|GL_DEPTH_BUFFER_BIT);
|
pglClear(GL_COLOR_BUFFER_BIT|GL_DEPTH_BUFFER_BIT);
|
||||||
|
|
||||||
|
SetBlend(PF_Modulated|PF_NoDepthTest|PF_Clip|PF_NoZClip);
|
||||||
|
|
||||||
// Draw the screen on bottom to fade to
|
// Draw the screen on bottom to fade to
|
||||||
pglBindTexture(GL_TEXTURE_2D, endScreenWipe);
|
pglBindTexture(GL_TEXTURE_2D, endScreenWipe);
|
||||||
pglBegin(GL_QUADS);
|
pglBegin(GL_QUADS);
|
||||||
|
@ -2124,6 +2132,8 @@ EXPORT void HWRAPI(DoScreenWipe)(float alpha)
|
||||||
pglVertex3f(1.0f, -1.0f, 1.0f);
|
pglVertex3f(1.0f, -1.0f, 1.0f);
|
||||||
pglEnd();
|
pglEnd();
|
||||||
|
|
||||||
|
SetBlend(PF_Modulated|PF_Translucent|PF_NoDepthTest|PF_Clip|PF_NoZClip);
|
||||||
|
|
||||||
// Draw the screen on top that fades.
|
// Draw the screen on top that fades.
|
||||||
pglBindTexture(GL_TEXTURE_2D, startScreenWipe);
|
pglBindTexture(GL_TEXTURE_2D, startScreenWipe);
|
||||||
pglBegin(GL_QUADS);
|
pglBegin(GL_QUADS);
|
||||||
|
@ -2146,6 +2156,8 @@ EXPORT void HWRAPI(DoScreenWipe)(float alpha)
|
||||||
pglVertex3f(1.0f, -1.0f, 1.0f);
|
pglVertex3f(1.0f, -1.0f, 1.0f);
|
||||||
|
|
||||||
pglEnd();
|
pglEnd();
|
||||||
|
|
||||||
|
tex_downloaded = 0; // 0 so it knows it doesn't have any of the cached patches downloaded right now
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -2174,6 +2186,8 @@ EXPORT void HWRAPI(MakeScreenTexture) (void)
|
||||||
#ifndef KOS_GL_COMPATIBILITY
|
#ifndef KOS_GL_COMPATIBILITY
|
||||||
pglCopyTexImage2D(GL_TEXTURE_2D, 0, GL_RGBA, 0, 0, texsize, texsize, 0);
|
pglCopyTexImage2D(GL_TEXTURE_2D, 0, GL_RGBA, 0, 0, texsize, texsize, 0);
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
tex_downloaded = 0; // 0 so it knows it doesn't have any of the cached patches downloaded right now
|
||||||
}
|
}
|
||||||
|
|
||||||
#endif //HWRENDER
|
#endif //HWRENDER
|
||||||
|
|
|
@ -2435,10 +2435,7 @@ noscript:
|
||||||
{
|
{
|
||||||
F_WipeStartScreen();
|
F_WipeStartScreen();
|
||||||
V_DrawFill(0, 0, BASEVIDWIDTH, BASEVIDHEIGHT, 31);
|
V_DrawFill(0, 0, BASEVIDWIDTH, BASEVIDHEIGHT, 31);
|
||||||
#ifdef HWRENDER
|
|
||||||
if(rendermode != render_soft)
|
|
||||||
HWR_PrepFadeToBlack();
|
|
||||||
#endif
|
|
||||||
F_WipeEndScreen();
|
F_WipeEndScreen();
|
||||||
F_RunWipe(wipedefs[wipe_level_toblack], false);
|
F_RunWipe(wipedefs[wipe_level_toblack], false);
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue