Makes AcquireNextBackbuffer returns true in case of successful backbuffer acquirement.
This was SVN commit r27184.
This commit is contained in:
parent
b54ace20ea
commit
3a4c8342a0
@ -420,7 +420,11 @@ void CRenderer::RenderFrame(const bool needsPresent)
|
|||||||
else
|
else
|
||||||
{
|
{
|
||||||
if (needsPresent)
|
if (needsPresent)
|
||||||
g_VideoMode.GetBackendDevice()->AcquireNextBackbuffer();
|
{
|
||||||
|
// In case of no acquired backbuffer we have nothing render to.
|
||||||
|
if (!g_VideoMode.GetBackendDevice()->AcquireNextBackbuffer())
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
if (m_ShouldPreloadResourcesBeforeNextFrame)
|
if (m_ShouldPreloadResourcesBeforeNextFrame)
|
||||||
{
|
{
|
||||||
@ -545,8 +549,8 @@ void CRenderer::RenderScreenShot(const bool needsPresent)
|
|||||||
const size_t width = static_cast<size_t>(g_xres), height = static_cast<size_t>(g_yres);
|
const size_t width = static_cast<size_t>(g_xres), height = static_cast<size_t>(g_yres);
|
||||||
const size_t bpp = 24;
|
const size_t bpp = 24;
|
||||||
|
|
||||||
if (needsPresent)
|
if (needsPresent && !g_VideoMode.GetBackendDevice()->AcquireNextBackbuffer())
|
||||||
g_VideoMode.GetBackendDevice()->AcquireNextBackbuffer();
|
return;
|
||||||
|
|
||||||
// Hide log messages and re-render
|
// Hide log messages and re-render
|
||||||
RenderFrameImpl(true, false);
|
RenderFrameImpl(true, false);
|
||||||
@ -655,15 +659,14 @@ void CRenderer::RenderBigScreenShot(const bool needsPresent)
|
|||||||
}
|
}
|
||||||
g_Game->GetView()->GetCamera()->SetProjection(projection);
|
g_Game->GetView()->GetCamera()->SetProjection(projection);
|
||||||
|
|
||||||
if (needsPresent)
|
if (needsPresent && g_VideoMode.GetBackendDevice()->AcquireNextBackbuffer())
|
||||||
g_VideoMode.GetBackendDevice()->AcquireNextBackbuffer();
|
{
|
||||||
|
RenderFrameImpl(false, false);
|
||||||
|
|
||||||
RenderFrameImpl(false, false);
|
m->deviceCommandContext->ReadbackFramebufferSync(0, 0, tileWidth, tileHeight, tileData);
|
||||||
|
m->deviceCommandContext->Flush();
|
||||||
m->deviceCommandContext->ReadbackFramebufferSync(0, 0, tileWidth, tileHeight, tileData);
|
|
||||||
m->deviceCommandContext->Flush();
|
|
||||||
if (needsPresent)
|
|
||||||
g_VideoMode.GetBackendDevice()->Present();
|
g_VideoMode.GetBackendDevice()->Present();
|
||||||
|
}
|
||||||
|
|
||||||
// Copy the tile pixels into the main image
|
// Copy the tile pixels into the main image
|
||||||
for (int y = 0; y < tileHeight; ++y)
|
for (int y = 0; y < tileHeight; ++y)
|
||||||
|
@ -100,7 +100,7 @@ public:
|
|||||||
virtual std::unique_ptr<IShaderProgram> CreateShaderProgram(
|
virtual std::unique_ptr<IShaderProgram> CreateShaderProgram(
|
||||||
const CStr& name, const CShaderDefines& defines) = 0;
|
const CStr& name, const CShaderDefines& defines) = 0;
|
||||||
|
|
||||||
virtual void AcquireNextBackbuffer() = 0;
|
virtual bool AcquireNextBackbuffer() = 0;
|
||||||
virtual void Present() = 0;
|
virtual void Present() = 0;
|
||||||
|
|
||||||
virtual bool IsTextureFormatSupported(const Format format) const = 0;
|
virtual bool IsTextureFormatSupported(const Format format) const = 0;
|
||||||
|
@ -114,9 +114,10 @@ std::unique_ptr<IShaderProgram> CDevice::CreateShaderProgram(
|
|||||||
return CShaderProgram::Create(this);
|
return CShaderProgram::Create(this);
|
||||||
}
|
}
|
||||||
|
|
||||||
void CDevice::AcquireNextBackbuffer()
|
bool CDevice::AcquireNextBackbuffer()
|
||||||
{
|
{
|
||||||
// We have nothing to acquire.
|
// We have nothing to acquire.
|
||||||
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
void CDevice::Present()
|
void CDevice::Present()
|
||||||
|
@ -77,7 +77,7 @@ public:
|
|||||||
std::unique_ptr<IShaderProgram> CreateShaderProgram(
|
std::unique_ptr<IShaderProgram> CreateShaderProgram(
|
||||||
const CStr& name, const CShaderDefines& defines) override;
|
const CStr& name, const CShaderDefines& defines) override;
|
||||||
|
|
||||||
void AcquireNextBackbuffer() override;
|
bool AcquireNextBackbuffer() override;
|
||||||
void Present() override;
|
void Present() override;
|
||||||
|
|
||||||
bool IsTextureFormatSupported(const Format format) const override;
|
bool IsTextureFormatSupported(const Format format) const override;
|
||||||
|
@ -906,10 +906,11 @@ std::unique_ptr<IShaderProgram> CDevice::CreateShaderProgram(
|
|||||||
return CShaderProgram::Create(this, name, defines);
|
return CShaderProgram::Create(this, name, defines);
|
||||||
}
|
}
|
||||||
|
|
||||||
void CDevice::AcquireNextBackbuffer()
|
bool CDevice::AcquireNextBackbuffer()
|
||||||
{
|
{
|
||||||
ENSURE(!m_BackbufferAcquired);
|
ENSURE(!m_BackbufferAcquired);
|
||||||
m_BackbufferAcquired = true;
|
m_BackbufferAcquired = true;
|
||||||
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
void CDevice::Present()
|
void CDevice::Present()
|
||||||
|
@ -94,7 +94,7 @@ public:
|
|||||||
std::unique_ptr<IShaderProgram> CreateShaderProgram(
|
std::unique_ptr<IShaderProgram> CreateShaderProgram(
|
||||||
const CStr& name, const CShaderDefines& defines) override;
|
const CStr& name, const CShaderDefines& defines) override;
|
||||||
|
|
||||||
void AcquireNextBackbuffer() override;
|
bool AcquireNextBackbuffer() override;
|
||||||
void Present() override;
|
void Present() override;
|
||||||
|
|
||||||
bool IsTextureFormatSupported(const Format format) const override;
|
bool IsTextureFormatSupported(const Format format) const override;
|
||||||
|
@ -150,8 +150,9 @@ std::unique_ptr<IShaderProgram> CDevice::CreateShaderProgram(
|
|||||||
return nullptr;
|
return nullptr;
|
||||||
}
|
}
|
||||||
|
|
||||||
void CDevice::AcquireNextBackbuffer()
|
bool CDevice::AcquireNextBackbuffer()
|
||||||
{
|
{
|
||||||
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
void CDevice::Present()
|
void CDevice::Present()
|
||||||
|
@ -82,7 +82,7 @@ public:
|
|||||||
std::unique_ptr<IShaderProgram> CreateShaderProgram(
|
std::unique_ptr<IShaderProgram> CreateShaderProgram(
|
||||||
const CStr& name, const CShaderDefines& defines) override;
|
const CStr& name, const CShaderDefines& defines) override;
|
||||||
|
|
||||||
void AcquireNextBackbuffer() override;
|
bool AcquireNextBackbuffer() override;
|
||||||
void Present() override;
|
void Present() override;
|
||||||
|
|
||||||
bool IsTextureFormatSupported(const Format format) const override;
|
bool IsTextureFormatSupported(const Format format) const override;
|
||||||
|
@ -223,7 +223,8 @@ void AtlasViewGame::Update(float realFrameLength)
|
|||||||
|
|
||||||
void AtlasViewGame::Render()
|
void AtlasViewGame::Render()
|
||||||
{
|
{
|
||||||
g_VideoMode.GetBackendDevice()->AcquireNextBackbuffer();
|
if (!g_VideoMode.GetBackendDevice()->AcquireNextBackbuffer())
|
||||||
|
return;
|
||||||
|
|
||||||
SViewPort vp = { 0, 0, g_xres, g_yres };
|
SViewPort vp = { 0, 0, g_xres, g_yres };
|
||||||
CCamera& camera = GetCamera();
|
CCamera& camera = GetCamera();
|
||||||
|
Loading…
Reference in New Issue
Block a user