diff options
Diffstat (limited to '3rdparty/bgfx/examples/00-helloworld/helloworld.cpp')
-rw-r--r-- | 3rdparty/bgfx/examples/00-helloworld/helloworld.cpp | 120 |
1 files changed, 71 insertions, 49 deletions
diff --git a/3rdparty/bgfx/examples/00-helloworld/helloworld.cpp b/3rdparty/bgfx/examples/00-helloworld/helloworld.cpp index b23a878e2dc..92996ae0314 100644 --- a/3rdparty/bgfx/examples/00-helloworld/helloworld.cpp +++ b/3rdparty/bgfx/examples/00-helloworld/helloworld.cpp @@ -3,60 +3,82 @@ * License: https://github.com/bkaradzic/bgfx#license-bsd-2-clause */ -#include "common.h" -#include <bgfx/bgfx.h> #include <bx/uint32_t.h> +#include "common.h" +#include "bgfx_utils.h" #include "logo.h" -int _main_(int /*_argc*/, char** /*_argv*/) +class ExampleHelloWorld : public entry::AppI { - uint32_t width = 1280; - uint32_t height = 720; - uint32_t debug = BGFX_DEBUG_TEXT; - uint32_t reset = BGFX_RESET_VSYNC; - - bgfx::init(); - bgfx::reset(width, height, reset); - - // Enable debug text. - bgfx::setDebug(debug); - - // Set view 0 clear state. - bgfx::setViewClear(0 - , BGFX_CLEAR_COLOR|BGFX_CLEAR_DEPTH - , 0x303030ff - , 1.0f - , 0 - ); - - while (!entry::processEvents(width, height, debug, reset) ) + void init(int _argc, char** _argv) BX_OVERRIDE + { + Args args(_argc, _argv); + + m_width = 1280; + m_height = 720; + m_debug = BGFX_DEBUG_TEXT; + m_reset = BGFX_RESET_VSYNC; + + bgfx::init(args.m_type, args.m_pciId); + bgfx::reset(m_width, m_height, m_reset); + + // Enable debug text. + bgfx::setDebug(m_debug); + + // Set view 0 clear state. + bgfx::setViewClear(0 + , BGFX_CLEAR_COLOR|BGFX_CLEAR_DEPTH + , 0x303030ff + , 1.0f + , 0 + ); + } + + virtual int shutdown() BX_OVERRIDE { - // Set view 0 default viewport. - bgfx::setViewRect(0, 0, 0, width, height); - - // This dummy draw call is here to make sure that view 0 is cleared - // if no other draw calls are submitted to view 0. - bgfx::touch(0); - - // Use debug font to print information about this example. - bgfx::dbgTextClear(); - bgfx::dbgTextImage(bx::uint16_max(width/2/8, 20)-20 - , bx::uint16_max(height/2/16, 6)-6 - , 40 - , 12 - , s_logo - , 160 - ); - bgfx::dbgTextPrintf(0, 1, 0x4f, "bgfx/examples/00-helloworld"); - bgfx::dbgTextPrintf(0, 2, 0x6f, "Description: Initialization and debug text."); - - // Advance to next frame. Rendering thread will be kicked to - // process submitted rendering primitives. - bgfx::frame(); + // Shutdown bgfx. + bgfx::shutdown(); + + return 0; + } + + bool update() BX_OVERRIDE + { + if (!entry::processEvents(m_width, m_height, m_debug, m_reset) ) + { + // Set view 0 default viewport. + bgfx::setViewRect(0, 0, 0, m_width, m_height); + + // This dummy draw call is here to make sure that view 0 is cleared + // if no other draw calls are submitted to view 0. + bgfx::touch(0); + + // Use debug font to print information about this example. + bgfx::dbgTextClear(); + bgfx::dbgTextImage(bx::uint16_max(m_width /2/8, 20)-20 + , bx::uint16_max(m_height/2/16, 6)-6 + , 40 + , 12 + , s_logo + , 160 + ); + bgfx::dbgTextPrintf(0, 1, 0x4f, "bgfx/examples/00-helloworld"); + bgfx::dbgTextPrintf(0, 2, 0x6f, "Description: Initialization and debug text."); + + // Advance to next frame. Rendering thread will be kicked to + // process submitted rendering primitives. + bgfx::frame(); + + return true; + } + + return false; } - // Shutdown bgfx. - bgfx::shutdown(); + uint32_t m_width; + uint32_t m_height; + uint32_t m_debug; + uint32_t m_reset; +}; - return 0; -} +ENTRY_IMPLEMENT_MAIN(ExampleHelloWorld); |