mirror of
https://github.com/bkaradzic/bgfx.git
synced 2026-02-17 20:52:36 +01:00
noop: Pretend all features are available.
This commit is contained in:
47
src/bgfx.cpp
47
src/bgfx.cpp
@@ -1659,12 +1659,12 @@ namespace bgfx
|
||||
return m_uniformRef[_handle.idx].m_name.getPtr();
|
||||
}
|
||||
|
||||
RenderFrame::Enum Context::renderFrame(int32_t _msecs)
|
||||
{
|
||||
BGFX_PROFILER_SCOPE(bgfx, render_frame, 0xff2040ff);
|
||||
RendererContextI* rendererCreate(RendererType::Enum _type);
|
||||
void rendererDestroy(RendererContextI* _renderCtx);
|
||||
|
||||
void Context::flip()
|
||||
{
|
||||
if (m_rendererInitialized
|
||||
&& !m_flipAfterRender
|
||||
&& !m_flipped)
|
||||
{
|
||||
m_renderCtx->flip(m_render->m_hmd);
|
||||
@@ -1673,10 +1673,22 @@ namespace bgfx
|
||||
if (m_renderCtx->isDeviceRemoved() )
|
||||
{
|
||||
// Something horribly went wrong, fallback to noop renderer.
|
||||
m_renderCtx = m_renderNoop;
|
||||
g_caps.rendererType = m_renderCtx->getRendererType();
|
||||
rendererDestroy(m_renderCtx);
|
||||
|
||||
m_renderCtx = rendererCreate(RendererType::Noop);
|
||||
g_caps.rendererType = RendererType::Noop;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
RenderFrame::Enum Context::renderFrame(int32_t _msecs)
|
||||
{
|
||||
BGFX_PROFILER_SCOPE(bgfx, render_frame, 0xff2040ff);
|
||||
|
||||
if (!m_flipAfterRender)
|
||||
{
|
||||
flip();
|
||||
}
|
||||
|
||||
if (apiSemWait(_msecs) )
|
||||
{
|
||||
@@ -1691,11 +1703,9 @@ namespace bgfx
|
||||
|
||||
renderSemPost();
|
||||
|
||||
if (m_rendererInitialized
|
||||
&& m_flipAfterRender)
|
||||
if (m_flipAfterRender)
|
||||
{
|
||||
m_renderCtx->flip(m_render->m_hmd);
|
||||
m_flipped = true;
|
||||
flip();
|
||||
}
|
||||
}
|
||||
else
|
||||
@@ -2027,9 +2037,9 @@ namespace bgfx
|
||||
RendererType::Enum type;
|
||||
_cmdbuf.read(type);
|
||||
|
||||
m_renderMain = rendererCreate(type);
|
||||
m_renderCtx = rendererCreate(type);
|
||||
|
||||
m_rendererInitialized = NULL != m_renderMain;
|
||||
m_rendererInitialized = NULL != m_renderCtx;
|
||||
|
||||
if (!m_rendererInitialized)
|
||||
{
|
||||
@@ -2039,12 +2049,6 @@ namespace bgfx
|
||||
);
|
||||
return;
|
||||
}
|
||||
|
||||
m_renderCtx = m_renderMain;
|
||||
m_renderNoop = RendererType::Noop != type
|
||||
? rendererCreate(RendererType::Noop)
|
||||
: NULL
|
||||
;
|
||||
}
|
||||
break;
|
||||
}
|
||||
@@ -2068,14 +2072,9 @@ namespace bgfx
|
||||
{
|
||||
BX_CHECK(!m_rendererInitialized && !m_exit, "This shouldn't happen! Bad synchronization?");
|
||||
|
||||
rendererDestroy(m_renderCtx);
|
||||
m_renderCtx = NULL;
|
||||
|
||||
rendererDestroy(m_renderMain);
|
||||
m_renderMain = NULL;
|
||||
|
||||
rendererDestroy(m_renderNoop);
|
||||
m_renderNoop = NULL;
|
||||
|
||||
m_exit = true;
|
||||
}
|
||||
// fall through
|
||||
|
||||
@@ -4144,6 +4144,7 @@ namespace bgfx
|
||||
const char* getName(UniformHandle _handle) const;
|
||||
|
||||
// render thread
|
||||
void flip();
|
||||
RenderFrame::Enum renderFrame(int32_t _msecs = -1);
|
||||
void flushTextureUpdateBatch(CommandBuffer& _cmdbuf);
|
||||
void rendererExecCommands(CommandBuffer& _cmdbuf);
|
||||
|
||||
@@ -2334,13 +2334,13 @@ BX_PRAGMA_DIAGNOSTIC_POP();
|
||||
}
|
||||
|
||||
m_lost = d3d11::isLost(hr);
|
||||
BGFX_FATAL(!m_lost
|
||||
, bgfx::Fatal::DeviceLost
|
||||
, "Device is lost. FAILED 0x%08x %s (%s)"
|
||||
, hr
|
||||
, getLostReason(hr)
|
||||
, DXGI_ERROR_DEVICE_REMOVED == hr ? getLostReason(m_device->GetDeviceRemovedReason() ) : "no info"
|
||||
);
|
||||
// BGFX_FATAL(!m_lost
|
||||
// , bgfx::Fatal::DeviceLost
|
||||
// , "Device is lost. FAILED 0x%08x %s (%s)"
|
||||
// , hr
|
||||
// , getLostReason(hr)
|
||||
// , DXGI_ERROR_DEVICE_REMOVED == hr ? getLostReason(m_device->GetDeviceRemovedReason() ) : "no info"
|
||||
// );
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -11,28 +11,32 @@ namespace bgfx { namespace noop
|
||||
{
|
||||
RendererContextNOOP()
|
||||
{
|
||||
// Pretend all features that are not returning results to CPU
|
||||
// are available.
|
||||
// Pretend all features are available.
|
||||
g_caps.supported = 0
|
||||
| BGFX_CAPS_TEXTURE_COMPARE_LEQUAL
|
||||
| BGFX_CAPS_TEXTURE_COMPARE_ALL
|
||||
| BGFX_CAPS_TEXTURE_3D
|
||||
| BGFX_CAPS_VERTEX_ATTRIB_HALF
|
||||
| BGFX_CAPS_VERTEX_ATTRIB_UINT10
|
||||
| BGFX_CAPS_INSTANCING
|
||||
| BGFX_CAPS_FRAGMENT_DEPTH
|
||||
| BGFX_CAPS_ALPHA_TO_COVERAGE
|
||||
| BGFX_CAPS_BLEND_INDEPENDENT
|
||||
| BGFX_CAPS_COMPUTE
|
||||
| BGFX_CAPS_FRAGMENT_ORDERING
|
||||
| BGFX_CAPS_SWAP_CHAIN
|
||||
| BGFX_CAPS_INDEX32
|
||||
| BGFX_CAPS_DRAW_INDIRECT
|
||||
| BGFX_CAPS_HIDPI
|
||||
| BGFX_CAPS_TEXTURE_BLIT
|
||||
| BGFX_CAPS_ALPHA_TO_COVERAGE
|
||||
| BGFX_CAPS_CONSERVATIVE_RASTER
|
||||
| BGFX_CAPS_DRAW_INDIRECT
|
||||
| BGFX_CAPS_FRAGMENT_DEPTH
|
||||
| BGFX_CAPS_FRAGMENT_ORDERING
|
||||
| BGFX_CAPS_GRAPHICS_DEBUGGER
|
||||
| BGFX_CAPS_HIDPI
|
||||
| BGFX_CAPS_HMD
|
||||
| BGFX_CAPS_INDEX32
|
||||
| BGFX_CAPS_INSTANCING
|
||||
| BGFX_CAPS_OCCLUSION_QUERY
|
||||
| BGFX_CAPS_RENDERER_MULTITHREADED
|
||||
| BGFX_CAPS_SWAP_CHAIN
|
||||
| BGFX_CAPS_TEXTURE_2D_ARRAY
|
||||
| BGFX_CAPS_TEXTURE_3D
|
||||
| BGFX_CAPS_TEXTURE_BLIT
|
||||
| BGFX_CAPS_TEXTURE_COMPARE_ALL
|
||||
| BGFX_CAPS_TEXTURE_COMPARE_LEQUAL
|
||||
| BGFX_CAPS_TEXTURE_CUBE_ARRAY
|
||||
| BGFX_CAPS_TEXTURE_READ_BACK
|
||||
| BGFX_CAPS_VERTEX_ATTRIB_HALF
|
||||
| BGFX_CAPS_VERTEX_ATTRIB_UINT10
|
||||
;
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user