invert RenderTarget_FramebufferObject
set viewport
This commit is contained in:
@@ -1909,6 +1909,8 @@ public:
|
|||||||
void StartRenderingTo();
|
void StartRenderingTo();
|
||||||
void FinishRenderingTo();
|
void FinishRenderingTo();
|
||||||
|
|
||||||
|
virtual bool InvertY() const { return true; }
|
||||||
|
|
||||||
private:
|
private:
|
||||||
unsigned int m_iFrameBufferHandle;
|
unsigned int m_iFrameBufferHandle;
|
||||||
unsigned int m_iTexHandle;
|
unsigned int m_iTexHandle;
|
||||||
@@ -1934,6 +1936,8 @@ RenderTarget_FramebufferObject::~RenderTarget_FramebufferObject()
|
|||||||
|
|
||||||
void RenderTarget_FramebufferObject::Create( const RenderTargetParam ¶m, int &iTextureWidthOut, int &iTextureHeightOut )
|
void RenderTarget_FramebufferObject::Create( const RenderTargetParam ¶m, int &iTextureWidthOut, int &iTextureHeightOut )
|
||||||
{
|
{
|
||||||
|
m_Param = param;
|
||||||
|
|
||||||
FlushGLErrors();
|
FlushGLErrors();
|
||||||
|
|
||||||
// Allocate OpenGL texture resource
|
// Allocate OpenGL texture resource
|
||||||
@@ -2041,6 +2045,11 @@ void RageDisplay_OGL::SetRenderTarget( unsigned iTexture, bool bPreserveTexture
|
|||||||
g_bInvertY = false;
|
g_bInvertY = false;
|
||||||
glFrontFace( GL_CCW );
|
glFrontFace( GL_CCW );
|
||||||
|
|
||||||
|
/* Reset the viewport. */
|
||||||
|
int fWidth = g_pWind->GetActualVideoModeParams().width;
|
||||||
|
int fHeight = g_pWind->GetActualVideoModeParams().height;
|
||||||
|
glViewport( 0, 0, fWidth, fHeight );
|
||||||
|
|
||||||
if( g_pCurrentRenderTarget )
|
if( g_pCurrentRenderTarget )
|
||||||
g_pCurrentRenderTarget->FinishRenderingTo();
|
g_pCurrentRenderTarget->FinishRenderingTo();
|
||||||
g_pCurrentRenderTarget = NULL;
|
g_pCurrentRenderTarget = NULL;
|
||||||
@@ -2057,6 +2066,9 @@ void RageDisplay_OGL::SetRenderTarget( unsigned iTexture, bool bPreserveTexture
|
|||||||
pTarget->StartRenderingTo();
|
pTarget->StartRenderingTo();
|
||||||
g_pCurrentRenderTarget = pTarget;
|
g_pCurrentRenderTarget = pTarget;
|
||||||
|
|
||||||
|
/* Set the viewport to the size of the render target. */
|
||||||
|
glViewport( 0, 0, pTarget->GetParam().iWidth, pTarget->GetParam().iHeight );
|
||||||
|
|
||||||
/* If this render target implementation flips Y, compensate. Inverting will
|
/* If this render target implementation flips Y, compensate. Inverting will
|
||||||
* switch the winding order. */
|
* switch the winding order. */
|
||||||
g_bInvertY = pTarget->InvertY();
|
g_bInvertY = pTarget->InvertY();
|
||||||
|
|||||||
@@ -19,6 +19,9 @@
|
|||||||
#undef __glext_h_
|
#undef __glext_h_
|
||||||
#include "glext.h"
|
#include "glext.h"
|
||||||
|
|
||||||
|
/* Import RageDisplay, for types. Do not include RageDisplay_OGL.h. */
|
||||||
|
#include "RageDisplay.h"
|
||||||
|
|
||||||
/* Windows defines GL_EXT_paletted_texture incompletely: */
|
/* Windows defines GL_EXT_paletted_texture incompletely: */
|
||||||
#ifndef GL_TEXTURE_INDEX_SIZE_EXT
|
#ifndef GL_TEXTURE_INDEX_SIZE_EXT
|
||||||
#define GL_TEXTURE_INDEX_SIZE_EXT 0x80ED
|
#define GL_TEXTURE_INDEX_SIZE_EXT 0x80ED
|
||||||
@@ -33,7 +36,6 @@ namespace RageDisplay_OGL_Helpers
|
|||||||
RString GLToString( GLenum e );
|
RString GLToString( GLenum e );
|
||||||
};
|
};
|
||||||
|
|
||||||
struct RenderTargetParam;
|
|
||||||
class RenderTarget
|
class RenderTarget
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
@@ -50,6 +52,11 @@ public:
|
|||||||
virtual void FinishRenderingTo() = 0;
|
virtual void FinishRenderingTo() = 0;
|
||||||
|
|
||||||
virtual bool InvertY() const { return false; }
|
virtual bool InvertY() const { return false; }
|
||||||
|
|
||||||
|
const RenderTargetParam &GetParam() const { return m_Param; }
|
||||||
|
|
||||||
|
protected:
|
||||||
|
RenderTargetParam m_Param;
|
||||||
};
|
};
|
||||||
|
|
||||||
class LowLevelWindow;
|
class LowLevelWindow;
|
||||||
|
|||||||
Reference in New Issue
Block a user