Adds AcquireNextBackbuffer to CDevice to have something to present.
This was SVN commit r27148.
This commit is contained in:
parent
344ec2c166
commit
8ae3a2bfd6
@ -426,6 +426,9 @@ void CRenderer::RenderFrame(const bool needsPresent)
|
||||
}
|
||||
else
|
||||
{
|
||||
if (needsPresent)
|
||||
g_VideoMode.GetBackendDevice()->AcquireNextBackbuffer();
|
||||
|
||||
RenderFrameImpl(true, true);
|
||||
|
||||
m->deviceCommandContext->Flush();
|
||||
@ -540,6 +543,9 @@ 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 bpp = 24;
|
||||
|
||||
if (needsPresent)
|
||||
g_VideoMode.GetBackendDevice()->AcquireNextBackbuffer();
|
||||
|
||||
// Hide log messages and re-render
|
||||
RenderFrameImpl(true, false);
|
||||
|
||||
@ -647,6 +653,9 @@ void CRenderer::RenderBigScreenShot(const bool needsPresent)
|
||||
}
|
||||
g_Game->GetView()->GetCamera()->SetProjection(projection);
|
||||
|
||||
if (needsPresent)
|
||||
g_VideoMode.GetBackendDevice()->AcquireNextBackbuffer();
|
||||
|
||||
RenderFrameImpl(false, false);
|
||||
|
||||
m->deviceCommandContext->ReadbackFramebufferSync(0, 0, tileWidth, tileHeight, tileData);
|
||||
|
@ -95,6 +95,7 @@ public:
|
||||
virtual std::unique_ptr<IShaderProgram> CreateShaderProgram(
|
||||
const CStr& name, const CShaderDefines& defines) = 0;
|
||||
|
||||
virtual void AcquireNextBackbuffer() = 0;
|
||||
virtual void Present() = 0;
|
||||
|
||||
virtual bool IsTextureFormatSupported(const Format format) const = 0;
|
||||
|
@ -112,6 +112,11 @@ std::unique_ptr<IShaderProgram> CDevice::CreateShaderProgram(
|
||||
return CShaderProgram::Create(this);
|
||||
}
|
||||
|
||||
void CDevice::AcquireNextBackbuffer()
|
||||
{
|
||||
// We have nothing to acquire.
|
||||
}
|
||||
|
||||
void CDevice::Present()
|
||||
{
|
||||
// We have nothing to present.
|
||||
|
@ -72,6 +72,7 @@ public:
|
||||
std::unique_ptr<IShaderProgram> CreateShaderProgram(
|
||||
const CStr& name, const CShaderDefines& defines) override;
|
||||
|
||||
void AcquireNextBackbuffer() override;
|
||||
void Present() override;
|
||||
|
||||
bool IsTextureFormatSupported(const Format format) const override;
|
||||
|
@ -904,8 +904,17 @@ std::unique_ptr<IShaderProgram> CDevice::CreateShaderProgram(
|
||||
return CShaderProgram::Create(this, name, defines);
|
||||
}
|
||||
|
||||
void CDevice::AcquireNextBackbuffer()
|
||||
{
|
||||
ENSURE(!m_BackbufferAcquired);
|
||||
m_BackbufferAcquired = true;
|
||||
}
|
||||
|
||||
void CDevice::Present()
|
||||
{
|
||||
ENSURE(m_BackbufferAcquired);
|
||||
m_BackbufferAcquired = false;
|
||||
|
||||
if (m_Window)
|
||||
{
|
||||
PROFILE3("swap buffers");
|
||||
|
@ -89,6 +89,7 @@ public:
|
||||
std::unique_ptr<IShaderProgram> CreateShaderProgram(
|
||||
const CStr& name, const CShaderDefines& defines) override;
|
||||
|
||||
void AcquireNextBackbuffer() override;
|
||||
void Present() override;
|
||||
|
||||
bool IsTextureFormatSupported(const Format format) const override;
|
||||
@ -116,6 +117,7 @@ private:
|
||||
CDeviceCommandContext* m_ActiveCommandContext = nullptr;
|
||||
|
||||
std::unique_ptr<CFramebuffer> m_Backbuffer;
|
||||
bool m_BackbufferAcquired = false;
|
||||
|
||||
Capabilities m_Capabilities{};
|
||||
};
|
||||
|
@ -152,6 +152,10 @@ std::unique_ptr<IShaderProgram> CDevice::CreateShaderProgram(
|
||||
return nullptr;
|
||||
}
|
||||
|
||||
void CDevice::AcquireNextBackbuffer()
|
||||
{
|
||||
}
|
||||
|
||||
void CDevice::Present()
|
||||
{
|
||||
}
|
||||
|
@ -77,6 +77,7 @@ public:
|
||||
std::unique_ptr<IShaderProgram> CreateShaderProgram(
|
||||
const CStr& name, const CShaderDefines& defines) override;
|
||||
|
||||
void AcquireNextBackbuffer() override;
|
||||
void Present() override;
|
||||
|
||||
bool IsTextureFormatSupported(const Format format) const override;
|
||||
|
@ -223,6 +223,8 @@ void AtlasViewGame::Update(float realFrameLength)
|
||||
|
||||
void AtlasViewGame::Render()
|
||||
{
|
||||
g_VideoMode.GetBackendDevice()->AcquireNextBackbuffer();
|
||||
|
||||
SViewPort vp = { 0, 0, g_xres, g_yres };
|
||||
CCamera& camera = GetCamera();
|
||||
camera.SetViewPort(vp);
|
||||
|
Loading…
Reference in New Issue
Block a user