mirror of
https://github.com/ZDoom/Raze.git
synced 2024-11-15 08:51:24 +00:00
- converted the clear screen commands.
This commit is contained in:
parent
b549228d4d
commit
3380420de9
6 changed files with 38 additions and 42 deletions
|
@ -375,7 +375,7 @@ void animvpx_setup_glstate(int32_t animvpx_flags)
|
||||||
texuploaded = 0;
|
texuploaded = 0;
|
||||||
////////////////////
|
////////////////////
|
||||||
|
|
||||||
GLInterface.ClearScreen(0, 0, 0, true);
|
GLInterface.ClearScreen(0, true);
|
||||||
}
|
}
|
||||||
|
|
||||||
void animvpx_restore_glstate(void)
|
void animvpx_restore_glstate(void)
|
||||||
|
|
|
@ -993,7 +993,7 @@ void yax_drawrooms(void (*SpriteAnimFunc)(int32_t,int32_t,int32_t,int32_t,int32_
|
||||||
#ifdef USE_OPENGL
|
#ifdef USE_OPENGL
|
||||||
if (videoGetRenderMode() == REND_POLYMOST)
|
if (videoGetRenderMode() == REND_POLYMOST)
|
||||||
{
|
{
|
||||||
GLInterface.ClearScreen(0, 0, 0, true);
|
GLInterface.ClearScreen(0, true);
|
||||||
yax_polymostclearzbuffer = 0;
|
yax_polymostclearzbuffer = 0;
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
@ -10533,10 +10533,7 @@ void videoClearViewableArea(int32_t dacol)
|
||||||
{
|
{
|
||||||
palette_t const p = paletteGetColor(dacol);
|
palette_t const p = paletteGetColor(dacol);
|
||||||
|
|
||||||
GLInterface.ClearScreen((float)p.r * (1.f/255.f),
|
GLInterface.ClearScreen(PalEntry(p.r, p.g, p.b), false);
|
||||||
(float)p.g * (1.f/255.f),
|
|
||||||
(float)p.b * (1.f/255.f),
|
|
||||||
false);
|
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
@ -10571,8 +10568,7 @@ void videoClearScreen(int32_t dacol)
|
||||||
glox1 = -1;
|
glox1 = -1;
|
||||||
|
|
||||||
palette_t const p = paletteGetColor(dacol);
|
palette_t const p = paletteGetColor(dacol);
|
||||||
PalEntry clearcol = PalEntry(255, p.r, p.g, p.b);
|
GLInterface.ClearScreen(PalEntry(255, p.r, p.g, p.b));
|
||||||
GLInterface.ClearScreen(clearcol);
|
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
|
@ -310,7 +310,7 @@ static void resizeglcheck(void)
|
||||||
}
|
}
|
||||||
if (hw_polygonmode) //FUK
|
if (hw_polygonmode) //FUK
|
||||||
{
|
{
|
||||||
GLInterface.ClearScreen(1, 1, 1, true);
|
GLInterface.ClearScreen(0xffffff, true);
|
||||||
}
|
}
|
||||||
|
|
||||||
if ((glox1 != windowxy1.x) || (gloy1 != windowxy1.y) || (glox2 != windowxy2.x) || (gloy2 != windowxy2.y) || (gloxyaspect != gxyaspect) || (gloyxscale != gyxscale) || (glohoriz2 != ghoriz2) || (glohorizcorrect != ghorizcorrect) || (glotang != gtang))
|
if ((glox1 != windowxy1.x) || (gloy1 != windowxy1.y) || (glox2 != windowxy2.x) || (gloy2 != windowxy2.y) || (gloxyaspect != gxyaspect) || (gloyxscale != gyxscale) || (glohoriz2 != ghoriz2) || (glohorizcorrect != ghorizcorrect) || (glotang != gtang))
|
||||||
|
|
|
@ -33,6 +33,8 @@ enum PRSFlags
|
||||||
STF_CULLCW = 128,
|
STF_CULLCW = 128,
|
||||||
STF_CULLCCW = 256,
|
STF_CULLCCW = 256,
|
||||||
STF_WIREFRAME = 512,
|
STF_WIREFRAME = 512,
|
||||||
|
STF_CLEARCOLOR = 1024,
|
||||||
|
STF_CLEARDEPTH = 2048,
|
||||||
|
|
||||||
|
|
||||||
};
|
};
|
||||||
|
@ -51,6 +53,7 @@ struct PolymostRenderState
|
||||||
bool AlphaTest = true;
|
bool AlphaTest = true;
|
||||||
|
|
||||||
int StateFlags = STF_COLORMASK|STF_DEPTHMASK;
|
int StateFlags = STF_COLORMASK|STF_DEPTHMASK;
|
||||||
|
PalEntry ClearColor = 0;
|
||||||
|
|
||||||
PalEntry FogColor;
|
PalEntry FogColor;
|
||||||
|
|
||||||
|
|
|
@ -49,7 +49,6 @@
|
||||||
#include "v_video.h"
|
#include "v_video.h"
|
||||||
#include "gl_renderer.h"
|
#include "gl_renderer.h"
|
||||||
|
|
||||||
extern int xdim, ydim;
|
|
||||||
float shadediv[MAXPALOOKUPS];
|
float shadediv[MAXPALOOKUPS];
|
||||||
|
|
||||||
FileReader GetResource(const char* fn)
|
FileReader GetResource(const char* fn)
|
||||||
|
@ -375,17 +374,6 @@ void GLInstance::SetBlendOp(int op)
|
||||||
glBlendEquation(renderops[op]);
|
glBlendEquation(renderops[op]);
|
||||||
}
|
}
|
||||||
|
|
||||||
void GLInstance::ClearScreen(float r, float g, float b, bool depth)
|
|
||||||
{
|
|
||||||
glClearColor(r, g, b, 1.f);
|
|
||||||
glClear(depth ? GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT : GL_COLOR_BUFFER_BIT);
|
|
||||||
}
|
|
||||||
|
|
||||||
void GLInstance::ClearDepth()
|
|
||||||
{
|
|
||||||
glClear(GL_DEPTH_BUFFER_BIT);
|
|
||||||
}
|
|
||||||
|
|
||||||
void GLInstance::SetViewport(int x, int y, int w, int h)
|
void GLInstance::SetViewport(int x, int y, int w, int h)
|
||||||
{
|
{
|
||||||
glViewport(x, y, w, h);
|
glViewport(x, y, w, h);
|
||||||
|
@ -442,24 +430,6 @@ void GLInstance::DrawImGui(ImDrawData* data)
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
void GLInstance::ClearScreen(PalEntry color)
|
|
||||||
{
|
|
||||||
twod->Clear(); // Since we clear the entire screen, all previous draw operations become redundant, so delete them.
|
|
||||||
#if 1
|
|
||||||
|
|
||||||
SetViewport(0, 0, xdim, ydim);
|
|
||||||
ClearScreen((float)color.r * (1.f / 255.f),
|
|
||||||
(float)color.g * (1.f / 255.f),
|
|
||||||
(float)color.b * (1.f / 255.f),
|
|
||||||
false);
|
|
||||||
#else
|
|
||||||
// This must be synchronized with the rest of the 2D operations.
|
|
||||||
twod->AddColorOnlyQuad(0, 0, xdim, ydim, );
|
|
||||||
#endif
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
void PolymostRenderState::Apply(PolymostShader* shader, int &oldstate)
|
void PolymostRenderState::Apply(PolymostShader* shader, int &oldstate)
|
||||||
{
|
{
|
||||||
if (StateFlags != oldstate)
|
if (StateFlags != oldstate)
|
||||||
|
@ -527,6 +497,17 @@ void PolymostRenderState::Apply(PolymostShader* shader, int &oldstate)
|
||||||
{
|
{
|
||||||
glPolygonMode(GL_FRONT_AND_BACK, (StateFlags & STF_WIREFRAME) ? GL_LINE : GL_FILL);
|
glPolygonMode(GL_FRONT_AND_BACK, (StateFlags & STF_WIREFRAME) ? GL_LINE : GL_FILL);
|
||||||
}
|
}
|
||||||
|
if (StateFlags & (STF_CLEARCOLOR| STF_CLEARDEPTH))
|
||||||
|
{
|
||||||
|
glClearColor(ClearColor.r / 255.f, ClearColor.g / 255.f, ClearColor.b / 255.f, 1.f);
|
||||||
|
int bit = 0;
|
||||||
|
if (StateFlags & STF_CLEARCOLOR) bit |= GL_COLOR_BUFFER_BIT;
|
||||||
|
if (StateFlags & STF_CLEARDEPTH) bit |= GL_DEPTH_BUFFER_BIT;
|
||||||
|
glClear(bit);
|
||||||
|
StateFlags &= ~(STF_CLEARCOLOR|STF_CLEARDEPTH);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
oldstate = StateFlags;
|
oldstate = StateFlags;
|
||||||
}
|
}
|
||||||
// Disable brightmaps if non-black fog is used.
|
// Disable brightmaps if non-black fog is used.
|
||||||
|
|
|
@ -18,6 +18,7 @@ class FTexture;
|
||||||
class GLInstance;
|
class GLInstance;
|
||||||
class F2DDrawer;
|
class F2DDrawer;
|
||||||
struct palette_t;
|
struct palette_t;
|
||||||
|
extern int xdim, ydim;
|
||||||
|
|
||||||
struct PaletteData
|
struct PaletteData
|
||||||
{
|
{
|
||||||
|
@ -283,8 +284,6 @@ public:
|
||||||
void SetDepthFunc(int func);
|
void SetDepthFunc(int func);
|
||||||
void SetBlendFunc(int src, int dst);
|
void SetBlendFunc(int src, int dst);
|
||||||
void SetBlendOp(int op);
|
void SetBlendOp(int op);
|
||||||
void ClearScreen(float r, float g, float b, bool depth);
|
|
||||||
void ClearDepth();
|
|
||||||
void SetViewport(int x, int y, int w, int h);
|
void SetViewport(int x, int y, int w, int h);
|
||||||
void SetPolymostShader();
|
void SetPolymostShader();
|
||||||
void SetSurfaceShader();
|
void SetSurfaceShader();
|
||||||
|
@ -292,7 +291,6 @@ public:
|
||||||
void SetPalette(int palette);
|
void SetPalette(int palette);
|
||||||
bool ApplyTextureProps(FTexture *tex, int pal);
|
bool ApplyTextureProps(FTexture *tex, int pal);
|
||||||
void RestoreTextureProps();
|
void RestoreTextureProps();
|
||||||
void ClearScreen(PalEntry color);
|
|
||||||
|
|
||||||
void ReadPixels(int w, int h, uint8_t* buffer);
|
void ReadPixels(int w, int h, uint8_t* buffer);
|
||||||
|
|
||||||
|
@ -394,6 +392,24 @@ public:
|
||||||
else renderState.StateFlags &= ~STF_WIREFRAME;
|
else renderState.StateFlags &= ~STF_WIREFRAME;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void ClearScreen(PalEntry pe, bool depth)
|
||||||
|
{
|
||||||
|
renderState.ClearColor = pe;
|
||||||
|
renderState.StateFlags |= STF_CLEARCOLOR;
|
||||||
|
if (depth) renderState.StateFlags |= STF_CLEARDEPTH;
|
||||||
|
}
|
||||||
|
|
||||||
|
void ClearScreen(PalEntry pe)
|
||||||
|
{
|
||||||
|
//twod->Clear();
|
||||||
|
SetViewport(0, 0, xdim, ydim);
|
||||||
|
ClearScreen(pe, false);
|
||||||
|
}
|
||||||
|
|
||||||
|
void ClearDepth()
|
||||||
|
{
|
||||||
|
renderState.StateFlags |= STF_CLEARDEPTH;
|
||||||
|
}
|
||||||
|
|
||||||
void UseColorOnly(bool yes)
|
void UseColorOnly(bool yes)
|
||||||
{
|
{
|
||||||
|
|
Loading…
Reference in a new issue