mirror of
https://github.com/ReactionQuake3/reaction.git
synced 2025-02-23 12:11:27 +00:00
Clear render buffer on allocate, fixes corrupt screen issue
Use GL_RGB16_F instead of GL_RGBA16_F for hdr render buffer
This commit is contained in:
parent
481aa033cf
commit
51d3c26bc5
2 changed files with 10 additions and 3 deletions
|
@ -386,7 +386,7 @@ void FBO_Init(void)
|
||||||
hdrFormat = GL_RGBA8;
|
hdrFormat = GL_RGBA8;
|
||||||
if (r_hdr->integer && glRefConfig.framebufferObject && glRefConfig.textureFloat)
|
if (r_hdr->integer && glRefConfig.framebufferObject && glRefConfig.textureFloat)
|
||||||
{
|
{
|
||||||
hdrFormat = GL_RGBA16F_ARB;
|
hdrFormat = GL_RGB16F_ARB;
|
||||||
}
|
}
|
||||||
|
|
||||||
qglGetIntegerv(GL_MAX_SAMPLES_EXT, &multisample);
|
qglGetIntegerv(GL_MAX_SAMPLES_EXT, &multisample);
|
||||||
|
@ -439,6 +439,13 @@ void FBO_Init(void)
|
||||||
|
|
||||||
R_CheckFBO(tr.renderFbo);
|
R_CheckFBO(tr.renderFbo);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// clear render buffer
|
||||||
|
// this fixes the corrupt screen bug with r_hdr 1 on older hardware
|
||||||
|
FBO_Bind(tr.renderFbo);
|
||||||
|
qglClearColor( 1, 0, 0.5, 1 );
|
||||||
|
qglClear( GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT );
|
||||||
|
FBO_Bind(NULL);
|
||||||
|
|
||||||
#ifdef REACTION
|
#ifdef REACTION
|
||||||
{
|
{
|
||||||
|
|
|
@ -2706,7 +2706,7 @@ void R_CreateBuiltinImages( void ) {
|
||||||
|
|
||||||
hdrFormat = GL_RGBA8;
|
hdrFormat = GL_RGBA8;
|
||||||
if (r_hdr->integer && glRefConfig.framebufferObject && glRefConfig.textureFloat)
|
if (r_hdr->integer && glRefConfig.framebufferObject && glRefConfig.textureFloat)
|
||||||
hdrFormat = GL_RGBA16F_ARB;
|
hdrFormat = GL_RGB16F_ARB;
|
||||||
|
|
||||||
tr.renderImage = R_CreateImage2("_render", NULL, width, height, IMGFLAG_NO_COMPRESSION | IMGFLAG_CLAMPTOEDGE, hdrFormat);
|
tr.renderImage = R_CreateImage2("_render", NULL, width, height, IMGFLAG_NO_COMPRESSION | IMGFLAG_CLAMPTOEDGE, hdrFormat);
|
||||||
#ifdef REACTION
|
#ifdef REACTION
|
||||||
|
@ -2734,7 +2734,7 @@ void R_CreateBuiltinImages( void ) {
|
||||||
unsigned short sdata[4];
|
unsigned short sdata[4];
|
||||||
void *p;
|
void *p;
|
||||||
|
|
||||||
if (hdrFormat == GL_RGBA16F_ARB)
|
if (hdrFormat == GL_RGB16F_ARB)
|
||||||
{
|
{
|
||||||
sdata[0] = FloatToHalf(0.0f);
|
sdata[0] = FloatToHalf(0.0f);
|
||||||
sdata[1] = FloatToHalf(0.45f);
|
sdata[1] = FloatToHalf(0.45f);
|
||||||
|
|
Loading…
Reference in a new issue