This commit is contained in:
bkaradzic
2012-05-31 22:10:32 -07:00
parent a48b3a9ee3
commit 63a76ae99d
5 changed files with 22 additions and 45 deletions

View File

@@ -528,10 +528,10 @@ namespace bgfx
s_ctx.frame(); s_ctx.frame();
} }
void renderFrame() bool renderFrame()
{ {
BGFX_RENDER_THREAD(); BGFX_RENDER_THREAD();
s_ctx.renderFrame(); return s_ctx.renderFrame();
} }
static const uint32_t s_attribTypeSize[AttribType::Count] = static const uint32_t s_attribTypeSize[AttribType::Count] =
@@ -730,6 +730,16 @@ namespace bgfx
m_render->destroy(); m_render->destroy();
} }
#if BX_PLATFORM_WINDOWS
DWORD WINAPI renderThread(LPVOID)
#else
void* renderThread(void*)
#endif // BX_PLATFORM_WINDOWS
{
while (!renderFrame() );
return EXIT_SUCCESS;
}
const Memory* alloc(uint32_t _size) const Memory* alloc(uint32_t _size)
{ {
Memory* mem = (Memory*)g_realloc(NULL, sizeof(Memory) + _size); Memory* mem = (Memory*)g_realloc(NULL, sizeof(Memory) + _size);

View File

@@ -114,11 +114,10 @@ namespace bgfx
extern freeFn g_free; extern freeFn g_free;
extern cacheFn g_cache; extern cacheFn g_cache;
extern void fatal(bgfx::Fatal::Enum _code, const char* _format, ...); void fatal(bgfx::Fatal::Enum _code, const char* _format, ...);
extern void release(Memory* _mem); void release(Memory* _mem);
extern void saveTga(const char* _filePath, uint32_t _width, uint32_t _height, uint32_t _pitch, const void* _data); void saveTga(const char* _filePath, uint32_t _width, uint32_t _height, uint32_t _pitch, const void* _data);
extern const char* getAttribName(Attrib::Enum _attr); const char* getAttribName(Attrib::Enum _attr);
extern void renderFrame();
inline uint32_t uint16_min(uint16_t _a, uint16_t _b) inline uint32_t uint16_min(uint16_t _a, uint16_t _b)
{ {
@@ -1324,6 +1323,7 @@ namespace bgfx
, m_frames(0) , m_frames(0)
, m_debug(BGFX_DEBUG_NONE) , m_debug(BGFX_DEBUG_NONE)
, m_rendererInitialized(false) , m_rendererInitialized(false)
, m_exit(false)
{ {
} }
@@ -1880,7 +1880,7 @@ namespace bgfx
void flip(); void flip();
// render thread // render thread
void renderFrame() bool renderFrame()
{ {
flip(); flip();
@@ -1894,6 +1894,8 @@ namespace bgfx
rendererExecCommands(m_render->m_cmdPost); rendererExecCommands(m_render->m_cmdPost);
renderSemPost(); renderSemPost();
return m_exit;
} }
void rendererInit(); void rendererInit();
@@ -1972,6 +1974,7 @@ namespace bgfx
{ {
rendererShutdown(); rendererShutdown();
m_rendererInitialized = false; m_rendererInitialized = false;
m_exit = true;
} }
break; break;
@@ -2544,6 +2547,7 @@ namespace bgfx
#endif // BX_PLATFORM_WINDOWS #endif // BX_PLATFORM_WINDOWS
bool m_rendererInitialized; bool m_rendererInitialized;
bool m_exit;
}; };
} // namespace bgfx } // namespace bgfx

View File

@@ -1158,20 +1158,6 @@ namespace bgfx
DX_CHECK(s_renderCtx.m_device->SetTexture(_stage, m_colorTexture) ); DX_CHECK(s_renderCtx.m_device->SetTexture(_stage, m_colorTexture) );
} }
static bool s_exit = false;
DWORD WINAPI renderThread(LPVOID _arg)
{
while (!s_exit)
{
renderFrame();
}
s_exit = false;
return EXIT_SUCCESS;
}
void ConstantBuffer::commit(bool _force) void ConstantBuffer::commit(bool _force)
{ {
reset(); reset();
@@ -1316,7 +1302,6 @@ namespace bgfx
void Context::rendererShutdown() void Context::rendererShutdown()
{ {
s_renderCtx.shutdown(); s_renderCtx.shutdown();
s_exit = true;
} }
void Context::rendererCreateIndexBuffer(IndexBufferHandle _handle, Memory* _mem) void Context::rendererCreateIndexBuffer(IndexBufferHandle _handle, Memory* _mem)

View File

@@ -1210,8 +1210,6 @@ namespace bgfx
m_depth.destroy(); m_depth.destroy();
} }
static bool s_exit = false;
void ConstantBuffer::commit(bool _force) void ConstantBuffer::commit(bool _force)
{ {
reset(); reset();
@@ -1444,7 +1442,6 @@ namespace bgfx
void Context::rendererShutdown() void Context::rendererShutdown()
{ {
s_exit = true;
} }
void Context::rendererCreateIndexBuffer(IndexBufferHandle _handle, Memory* _mem) void Context::rendererCreateIndexBuffer(IndexBufferHandle _handle, Memory* _mem)
@@ -2137,22 +2134,6 @@ namespace bgfx
GREMEDY_FRAMETERMINATOR(); GREMEDY_FRAMETERMINATOR();
} }
#if BX_PLATFORM_WINDOWS
DWORD WINAPI renderThread(LPVOID)
#else
void* renderThread(void*)
#endif // BX_PLATFORM_WINDOWS
{
while (!s_exit)
{
renderFrame();
}
s_exit = false;
return 0;
}
} }
#endif // (BGFX_CONFIG_RENDERER_OPENGLES|BGFX_CONFIG_RENDERER_OPENGL) #endif // (BGFX_CONFIG_RENDERER_OPENGLES|BGFX_CONFIG_RENDERER_OPENGL)

View File

@@ -9,8 +9,6 @@
namespace bgfx namespace bgfx
{ {
static bool s_exit = false;
void ConstantBuffer::commit(bool _force) void ConstantBuffer::commit(bool _force)
{ {
} }
@@ -33,7 +31,6 @@ namespace bgfx
void Context::rendererShutdown() void Context::rendererShutdown()
{ {
s_exit = true;
} }
void Context::rendererCreateIndexBuffer(IndexBufferHandle _handle, Memory* _mem) void Context::rendererCreateIndexBuffer(IndexBufferHandle _handle, Memory* _mem)