mirror of
https://github.com/UberGames/ioef.git
synced 2024-11-24 05:01:40 +00:00
#5878: Ensure surfaces are drawn before executing full-screen render commands, and when at the end of the render command list.
This commit is contained in:
parent
c0d5ba9e06
commit
bff574e04e
2 changed files with 31 additions and 2 deletions
|
@ -1410,6 +1410,10 @@ const void *RB_DrawBuffer( const void *data ) {
|
||||||
|
|
||||||
cmd = (const drawBufferCommand_t *)data;
|
cmd = (const drawBufferCommand_t *)data;
|
||||||
|
|
||||||
|
// finish any 2D drawing if needed
|
||||||
|
if(tess.numIndexes)
|
||||||
|
RB_EndSurface();
|
||||||
|
|
||||||
if (glRefConfig.framebufferObject)
|
if (glRefConfig.framebufferObject)
|
||||||
FBO_Bind(NULL);
|
FBO_Bind(NULL);
|
||||||
|
|
||||||
|
@ -1493,6 +1497,10 @@ const void *RB_ColorMask(const void *data)
|
||||||
{
|
{
|
||||||
const colorMaskCommand_t *cmd = data;
|
const colorMaskCommand_t *cmd = data;
|
||||||
|
|
||||||
|
// finish any 2D drawing if needed
|
||||||
|
if(tess.numIndexes)
|
||||||
|
RB_EndSurface();
|
||||||
|
|
||||||
if (glRefConfig.framebufferObject)
|
if (glRefConfig.framebufferObject)
|
||||||
{
|
{
|
||||||
// reverse color mask, so 0 0 0 0 is the default
|
// reverse color mask, so 0 0 0 0 is the default
|
||||||
|
@ -1517,6 +1525,7 @@ const void *RB_ClearDepth(const void *data)
|
||||||
{
|
{
|
||||||
const clearDepthCommand_t *cmd = data;
|
const clearDepthCommand_t *cmd = data;
|
||||||
|
|
||||||
|
// finish any 2D drawing if needed
|
||||||
if(tess.numIndexes)
|
if(tess.numIndexes)
|
||||||
RB_EndSurface();
|
RB_EndSurface();
|
||||||
|
|
||||||
|
@ -1648,6 +1657,10 @@ const void *RB_CapShadowMap(const void *data)
|
||||||
{
|
{
|
||||||
const capShadowmapCommand_t *cmd = data;
|
const capShadowmapCommand_t *cmd = data;
|
||||||
|
|
||||||
|
// finish any 2D drawing if needed
|
||||||
|
if(tess.numIndexes)
|
||||||
|
RB_EndSurface();
|
||||||
|
|
||||||
if (cmd->map != -1)
|
if (cmd->map != -1)
|
||||||
{
|
{
|
||||||
GL_SelectTexture(0);
|
GL_SelectTexture(0);
|
||||||
|
@ -1680,6 +1693,10 @@ const void *RB_PostProcess(const void *data)
|
||||||
FBO_t *srcFbo;
|
FBO_t *srcFbo;
|
||||||
qboolean autoExposure;
|
qboolean autoExposure;
|
||||||
|
|
||||||
|
// finish any 2D drawing if needed
|
||||||
|
if(tess.numIndexes)
|
||||||
|
RB_EndSurface();
|
||||||
|
|
||||||
if (!glRefConfig.framebufferObject || !r_postProcess->integer)
|
if (!glRefConfig.framebufferObject || !r_postProcess->integer)
|
||||||
{
|
{
|
||||||
// do nothing
|
// do nothing
|
||||||
|
@ -1812,6 +1829,10 @@ void RB_ExecuteRenderCommands( const void *data ) {
|
||||||
break;
|
break;
|
||||||
case RC_END_OF_LIST:
|
case RC_END_OF_LIST:
|
||||||
default:
|
default:
|
||||||
|
// finish any 2D drawing if needed
|
||||||
|
if(tess.numIndexes)
|
||||||
|
RB_EndSurface();
|
||||||
|
|
||||||
// stop rendering
|
// stop rendering
|
||||||
t2 = ri.Milliseconds ();
|
t2 = ri.Milliseconds ();
|
||||||
backEnd.pc.msec = t2 - t1;
|
backEnd.pc.msec = t2 - t1;
|
||||||
|
|
|
@ -538,7 +538,11 @@ const void *RB_TakeScreenshotCmd( const void *data ) {
|
||||||
const screenshotCommand_t *cmd;
|
const screenshotCommand_t *cmd;
|
||||||
|
|
||||||
cmd = (const screenshotCommand_t *)data;
|
cmd = (const screenshotCommand_t *)data;
|
||||||
|
|
||||||
|
// finish any 2D drawing if needed
|
||||||
|
if(tess.numIndexes)
|
||||||
|
RB_EndSurface();
|
||||||
|
|
||||||
if (cmd->jpeg)
|
if (cmd->jpeg)
|
||||||
RB_TakeScreenshotJPEG( cmd->x, cmd->y, cmd->width, cmd->height, cmd->fileName);
|
RB_TakeScreenshotJPEG( cmd->x, cmd->y, cmd->width, cmd->height, cmd->fileName);
|
||||||
else
|
else
|
||||||
|
@ -820,7 +824,11 @@ const void *RB_TakeVideoFrameCmd( const void *data )
|
||||||
size_t memcount, linelen;
|
size_t memcount, linelen;
|
||||||
int padwidth, avipadwidth, padlen, avipadlen;
|
int padwidth, avipadwidth, padlen, avipadlen;
|
||||||
GLint packAlign;
|
GLint packAlign;
|
||||||
|
|
||||||
|
// finish any 2D drawing if needed
|
||||||
|
if(tess.numIndexes)
|
||||||
|
RB_EndSurface();
|
||||||
|
|
||||||
cmd = (const videoFrameCommand_t *)data;
|
cmd = (const videoFrameCommand_t *)data;
|
||||||
|
|
||||||
qglGetIntegerv(GL_PACK_ALIGNMENT, &packAlign);
|
qglGetIntegerv(GL_PACK_ALIGNMENT, &packAlign);
|
||||||
|
|
Loading…
Reference in a new issue