mirror of
https://github.com/scratchfoundation/bgfx.git
synced 2025-02-17 12:20:55 -05:00
Updated example.
This commit is contained in:
parent
7f5e8b2f91
commit
58a4549dce
11 changed files with 437 additions and 28 deletions
102
examples/common/dbg.cpp
Normal file
102
examples/common/dbg.cpp
Normal file
|
@ -0,0 +1,102 @@
|
|||
/*
|
||||
* Copyright 2011-2012 Branimir Karadzic. All rights reserved.
|
||||
* License: http://www.opensource.org/licenses/BSD-2-Clause
|
||||
*/
|
||||
|
||||
#include <bx/bx.h>
|
||||
|
||||
#include <stdio.h>
|
||||
#include <stdint.h>
|
||||
#include <inttypes.h>
|
||||
#include <ctype.h> // isprint
|
||||
|
||||
#include "dbg.h"
|
||||
|
||||
#if BX_COMPILER_MSVC
|
||||
# define snprintf _snprintf
|
||||
#endif // BX_COMPILER_MSVC
|
||||
|
||||
#if BX_PLATFORM_WINDOWS
|
||||
extern "C"
|
||||
{
|
||||
__declspec(dllimport) void __stdcall OutputDebugStringA(const char* _str);
|
||||
}
|
||||
#endif // BX_PLATFORM_WINDOWS
|
||||
|
||||
void dbgOutput(const char* _out)
|
||||
{
|
||||
#if BX_PLATFORM_WINDOWS || BX_PLATFORM_XBOX360
|
||||
OutputDebugStringA(_out);
|
||||
#elif BX_PLATFORM_NACL || BX_PLATFORM_LINUX
|
||||
fputs(_out, stderr);
|
||||
fflush(stderr);
|
||||
#endif // BX_PLATFORM_
|
||||
}
|
||||
|
||||
void dbgPrintfVargs(const char* _format, va_list _argList)
|
||||
{
|
||||
char temp[8192];
|
||||
vsnprintf(temp, sizeof(temp), _format, _argList);
|
||||
temp[sizeof(temp)-1] = '\0';
|
||||
dbgOutput(temp);
|
||||
}
|
||||
|
||||
void dbgPrintf(const char* _format, ...)
|
||||
{
|
||||
va_list argList;
|
||||
va_start(argList, _format);
|
||||
dbgPrintfVargs(_format, argList);
|
||||
va_end(argList);
|
||||
}
|
||||
|
||||
#define DBG_ADDRESS "%" PRIxPTR
|
||||
|
||||
void dbgPrintfData(const void* _data, uint32_t _size, const char* _format, ...)
|
||||
{
|
||||
#define HEX_DUMP_WIDTH 16
|
||||
#define HEX_DUMP_SPACE_WIDTH 48
|
||||
#define HEX_DUMP_FORMAT "%-" DBG_STRINGIZE(HEX_DUMP_SPACE_WIDTH) "." DBG_STRINGIZE(HEX_DUMP_SPACE_WIDTH) "s"
|
||||
|
||||
va_list argList;
|
||||
va_start(argList, _format);
|
||||
dbgPrintf(_format, argList);
|
||||
va_end(argList);
|
||||
|
||||
dbgPrintf("\ndata: " DBG_ADDRESS ", size: %d\n", _data, _size);
|
||||
|
||||
if (NULL != _data)
|
||||
{
|
||||
const uint8_t* data = reinterpret_cast<const uint8_t*>(_data);
|
||||
char hex[HEX_DUMP_WIDTH*3+1];
|
||||
char ascii[HEX_DUMP_WIDTH+1];
|
||||
uint32_t hexPos = 0;
|
||||
uint32_t asciiPos = 0;
|
||||
for (uint32_t ii = 0; ii < _size; ++ii)
|
||||
{
|
||||
snprintf(&hex[hexPos], sizeof(hex)-hexPos, "%02x ", data[asciiPos]);
|
||||
hexPos += 3;
|
||||
|
||||
ascii[asciiPos] = isprint(data[asciiPos]) ? data[asciiPos] : '.';
|
||||
asciiPos++;
|
||||
|
||||
if (HEX_DUMP_WIDTH == asciiPos)
|
||||
{
|
||||
ascii[asciiPos] = '\0';
|
||||
dbgPrintf("\t" DBG_ADDRESS "\t" HEX_DUMP_FORMAT "\t%s\n", data, hex, ascii);
|
||||
data += asciiPos;
|
||||
hexPos = 0;
|
||||
asciiPos = 0;
|
||||
}
|
||||
}
|
||||
|
||||
if (0 != asciiPos)
|
||||
{
|
||||
ascii[asciiPos] = '\0';
|
||||
dbgPrintf("\t" DBG_ADDRESS "\t" HEX_DUMP_FORMAT "\t%s\n", data, hex, ascii);
|
||||
}
|
||||
}
|
||||
|
||||
#undef HEX_DUMP_WIDTH
|
||||
#undef HEX_DUMP_SPACE_WIDTH
|
||||
#undef HEX_DUMP_FORMAT
|
||||
}
|
21
examples/common/dbg.h
Normal file
21
examples/common/dbg.h
Normal file
|
@ -0,0 +1,21 @@
|
|||
/*
|
||||
* Copyright 2011-2012 Branimir Karadzic. All rights reserved.
|
||||
* License: http://www.opensource.org/licenses/BSD-2-Clause
|
||||
*/
|
||||
|
||||
#ifndef __DBG_H__
|
||||
#define __DBG_H__
|
||||
|
||||
#include <stdarg.h> // va_list
|
||||
|
||||
#define DBG_STRINGIZE(_x) DBG_STRINGIZE_(_x)
|
||||
#define DBG_STRINGIZE_(_x) #_x
|
||||
#define DBG_FILE_LINE_LITERAL "" __FILE__ "(" DBG_STRINGIZE(__LINE__) "): "
|
||||
#define DBG(_format, ...) dbgPrintf(DBG_FILE_LINE_LITERAL "" _format "\n", ##__VA_ARGS__)
|
||||
|
||||
extern void dbgOutput(const char* _out);
|
||||
extern void dbgPrintfVargs(const char* _format, va_list _argList);
|
||||
extern void dbgPrintf(const char* _format, ...);
|
||||
extern void dbgPrintfData(const void* _data, uint32_t _size, const char* _format, ...);
|
||||
|
||||
#endif // __DBG_H__
|
130
examples/common/entry_nacl.cpp
Normal file
130
examples/common/entry_nacl.cpp
Normal file
|
@ -0,0 +1,130 @@
|
|||
/*
|
||||
* Copyright 2011-2012 Branimir Karadzic. All rights reserved.
|
||||
* License: http://www.opensource.org/licenses/BSD-2-Clause
|
||||
*/
|
||||
|
||||
#include <bgfx.h>
|
||||
#include <bx/bx.h>
|
||||
#include "dbg.h"
|
||||
#include <stdio.h>
|
||||
|
||||
#if BX_PLATFORM_NACL
|
||||
|
||||
#include <string.h>
|
||||
#include <pthread.h>
|
||||
|
||||
#include <ppapi/c/pp_errors.h>
|
||||
#include <ppapi/c/pp_module.h>
|
||||
#include <ppapi/c/ppb.h>
|
||||
#include <ppapi/c/ppb_graphics_3d.h>
|
||||
#include <ppapi/c/ppb_instance.h>
|
||||
#include <ppapi/c/ppp.h>
|
||||
#include <ppapi/c/ppp_instance.h>
|
||||
#include <ppapi/gles2/gl2ext_ppapi.h>
|
||||
|
||||
namespace bgfx
|
||||
{
|
||||
typedef void (*PostSwapBuffersFn)(uint32_t _width, uint32_t _height);
|
||||
extern void naclSetIntefraces(PP_Instance, const PPB_Instance*, const PPB_Graphics3D*, PostSwapBuffersFn);
|
||||
}
|
||||
|
||||
extern int _main_(int _argc, char** _argv);
|
||||
|
||||
static void* _entry_(void*)
|
||||
{
|
||||
const char* argv[1] = { "nacl.nexe" };
|
||||
_main_(1, const_cast<char**>(argv) );
|
||||
return NULL;
|
||||
}
|
||||
|
||||
struct NaclContext
|
||||
{
|
||||
NaclContext()
|
||||
: m_thread(0)
|
||||
{
|
||||
}
|
||||
|
||||
const PPB_Instance* m_instInterface;
|
||||
const PPB_Graphics3D* m_graphicsInterface;
|
||||
|
||||
pthread_t m_thread;
|
||||
PP_Module m_module;
|
||||
PP_Instance m_instance;
|
||||
};
|
||||
|
||||
static NaclContext s_ctx;
|
||||
|
||||
static PP_Bool naclInstanceDidCreate(PP_Instance _instance, uint32_t _argc, const char* _argn[], const char* _argv[])
|
||||
{
|
||||
s_ctx.m_instance = _instance;
|
||||
|
||||
bgfx::naclSetIntefraces(s_ctx.m_instance, s_ctx.m_instInterface, s_ctx.m_graphicsInterface, NULL);
|
||||
pthread_create(&s_ctx.m_thread, NULL, _entry_, NULL);
|
||||
|
||||
return PP_TRUE;
|
||||
}
|
||||
|
||||
static void naclInstanceDidDestroy(PP_Instance _instance)
|
||||
{
|
||||
if (s_ctx.m_thread)
|
||||
{
|
||||
pthread_join(s_ctx.m_thread, NULL);
|
||||
}
|
||||
}
|
||||
|
||||
static void naclInstanceDidChangeView(PP_Instance _instance, PP_Resource _view)
|
||||
{
|
||||
}
|
||||
|
||||
static void naclInstanceDidChangeFocus(PP_Instance _instance, PP_Bool _focus)
|
||||
{
|
||||
}
|
||||
|
||||
static PP_Bool naclInstanceHandleDocumentLoad(PP_Instance _instance, PP_Resource _urlLoader)
|
||||
{
|
||||
return PP_FALSE;
|
||||
}
|
||||
|
||||
PP_EXPORT const void* PPP_GetInterface(const char* _name)
|
||||
{
|
||||
if (0 == strcmp(_name, PPP_INSTANCE_INTERFACE) )
|
||||
{
|
||||
static PPP_Instance instanceInterface =
|
||||
{
|
||||
&naclInstanceDidCreate,
|
||||
&naclInstanceDidDestroy,
|
||||
&naclInstanceDidChangeView,
|
||||
&naclInstanceDidChangeFocus,
|
||||
&naclInstanceHandleDocumentLoad,
|
||||
};
|
||||
|
||||
return &instanceInterface;
|
||||
}
|
||||
|
||||
return NULL;
|
||||
}
|
||||
|
||||
template<typename Type>
|
||||
bool initializeInterface(const Type*& _result, PPB_GetInterface _interface, const char* _name)
|
||||
{
|
||||
_result = reinterpret_cast<const Type*>(_interface(_name) );
|
||||
return NULL != _result;
|
||||
}
|
||||
|
||||
PP_EXPORT int32_t PPP_InitializeModule(PP_Module _module, PPB_GetInterface _interface)
|
||||
{
|
||||
s_ctx.m_module = _module;
|
||||
|
||||
bool result = true;
|
||||
result &= initializeInterface(s_ctx.m_instInterface, _interface, PPB_INSTANCE_INTERFACE);
|
||||
result &= initializeInterface(s_ctx.m_graphicsInterface, _interface, PPB_GRAPHICS_3D_INTERFACE);
|
||||
result &= glInitializePPAPI(_interface);
|
||||
|
||||
return result ? PP_OK : PP_ERROR_NOINTERFACE;
|
||||
}
|
||||
|
||||
PP_EXPORT void PPP_ShutdownModule()
|
||||
{
|
||||
}
|
||||
|
||||
#endif // BX_PLATFROM_NACL
|
17
examples/common/entry_windows.cpp
Normal file
17
examples/common/entry_windows.cpp
Normal file
|
@ -0,0 +1,17 @@
|
|||
/*
|
||||
* Copyright 2011-2012 Branimir Karadzic. All rights reserved.
|
||||
* License: http://www.opensource.org/licenses/BSD-2-Clause
|
||||
*/
|
||||
|
||||
#include <bx/bx.h>
|
||||
|
||||
#if BX_PLATFORM_WINDOWS
|
||||
|
||||
extern int _main_(int _argc, char** _argv);
|
||||
|
||||
int main(int _argc, char** _argv)
|
||||
{
|
||||
return _main_(_argc, _argv);
|
||||
}
|
||||
|
||||
#endif // BX_PLATFORM_WINDOWS
|
|
@ -4,21 +4,32 @@
|
|||
*/
|
||||
|
||||
#include <bgfx.h>
|
||||
#include <conio.h>
|
||||
#include <bx/bx.h>
|
||||
#include "../common/dbg.h"
|
||||
|
||||
int main(int _argc, const char** _argv)
|
||||
void fatalCb(bgfx::Fatal::Enum _code, const char* _str)
|
||||
{
|
||||
bgfx::init(true);
|
||||
DBG("%x: %s", _code, _str);
|
||||
}
|
||||
|
||||
int _main_(int _argc, char** _argv)
|
||||
{
|
||||
bgfx::init(BX_PLATFORM_WINDOWS, fatalCb);
|
||||
bgfx::reset(1280, 720);
|
||||
|
||||
bgfx::setDebug(BGFX_DEBUG_TEXT);
|
||||
|
||||
while (!_kbhit() )
|
||||
{
|
||||
bgfx::dbgTextClear();
|
||||
bgfx::dbgTextPrintf(0, 0, 0x4f, "Hello world!");
|
||||
bgfx::setViewRect(0, 0, 0, 1280, 720);
|
||||
bgfx::setViewClear(0, BGFX_CLEAR_COLOR_BIT|BGFX_CLEAR_DEPTH_BIT, 0x000000ff, 0.0f, 0);
|
||||
|
||||
bgfx::dbgTextPrintf(0, 5, 0x6f, "BGFX initialization and debug text.");
|
||||
while (true)
|
||||
{
|
||||
bgfx::submit(0);
|
||||
|
||||
bgfx::dbgTextClear();
|
||||
bgfx::dbgTextPrintf(0, 1, 0x4f, "BGFX: Hello, World!");
|
||||
|
||||
bgfx::dbgTextPrintf(0, 2, 0x6f, "Initialization and debug text.");
|
||||
|
||||
bgfx::frame();
|
||||
}
|
||||
|
|
6
examples/helloworld/helloworld.nmf
Normal file
6
examples/helloworld/helloworld.nmf
Normal file
|
@ -0,0 +1,6 @@
|
|||
{
|
||||
"program": {
|
||||
"x86-32": {"url": "nacl-x86/helloworldRelease.nexe"},
|
||||
"x86-64": {"url": "nacl-x64/helloworldRelease.nexe"}
|
||||
}
|
||||
}
|
15
examples/helloworld/index.htm
Normal file
15
examples/helloworld/index.htm
Normal file
|
@ -0,0 +1,15 @@
|
|||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<title>BGFX: Hello, World!</title>
|
||||
</head>
|
||||
<body>
|
||||
<embed name="nacl_module"
|
||||
id="helloworld"
|
||||
width=1280
|
||||
height=720
|
||||
src="helloworld.nmf"
|
||||
type="application/x-nacl"
|
||||
/>
|
||||
</body>
|
||||
</html>
|
10
examples/helloworld/nacl-chrome.bat
Normal file
10
examples/helloworld/nacl-chrome.bat
Normal file
|
@ -0,0 +1,10 @@
|
|||
@echo off
|
||||
setlocal
|
||||
set NACL_DEBUG=%~dp0..\..\.debug\nacl
|
||||
set NACL_EXE_STDERR=%NACL_DEBUG%\stderr.txt
|
||||
set NACL_EXE_STDOUT=%NACL_DEBUG%\stdout.txt
|
||||
set NACL_DANGEROUS_ENABLE_FILE_ACCESS=1
|
||||
mkdir %NACL_DEBUG% > nul
|
||||
rm -rf %NACL_EXE_STDERR% > nul
|
||||
rm -rf %NACL_EXE_STDOUT% > nul
|
||||
start %LOCALAPPDATA%\Google\Chrome\Application\chrome.exe --incognito --no-sandbox --show-fps-counter http://localhost:8080 %*
|
|
@ -23,6 +23,7 @@ newoption {
|
|||
description = "Choose GCC flavor",
|
||||
allowed = {
|
||||
{ "mingw", "MinGW" },
|
||||
{ "nacl", "Google Native Client" },
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -40,6 +41,10 @@ location (BUILD_DIR .. "projects/" .. _ACTION)
|
|||
|
||||
if _ACTION == "gmake" then
|
||||
|
||||
flags {
|
||||
"ExtraWarnings",
|
||||
}
|
||||
|
||||
if "linux" ~= os.get() and nil == _OPTIONS["gcc"] then
|
||||
print("GCC flavor must be specified!")
|
||||
os.exit(1)
|
||||
|
@ -50,6 +55,18 @@ if _ACTION == "gmake" then
|
|||
premake.gcc.cxx = "$(MINGW)/bin/mingw32-g++"
|
||||
premake.gcc.ar = "$(MINGW)/bin/ar"
|
||||
end
|
||||
|
||||
if "nacl" == _OPTIONS["gcc"] then
|
||||
|
||||
if not os.getenv("NACL") then
|
||||
print("Set NACL enviroment variables.")
|
||||
end
|
||||
|
||||
premake.gcc.cc = "$(NACL)/bin/x86_64-nacl-gcc"
|
||||
premake.gcc.cxx = "$(NACL)/bin/x86_64-nacl-g++"
|
||||
premake.gcc.ar = "$(NACL)/bin/x86_64-nacl-ar"
|
||||
location (BUILD_DIR .. "projects/" .. _ACTION .. "-nacl")
|
||||
end
|
||||
end
|
||||
|
||||
flags {
|
||||
|
@ -57,25 +74,22 @@ flags {
|
|||
"NoMinimalRebuild",
|
||||
"NoPCH",
|
||||
"NativeWChar",
|
||||
-- "ExtraWarnings",
|
||||
"NoRTTI",
|
||||
"NoExceptions",
|
||||
"NoEditAndContinue",
|
||||
"Symbols",
|
||||
}
|
||||
|
||||
includedirs {
|
||||
ROOT_DIR .. "../_bx/include",
|
||||
ROOT_DIR .. "../bx/include",
|
||||
}
|
||||
|
||||
configuration "Debug"
|
||||
defines {
|
||||
"BGFX_BUILD_DEBUG=1",
|
||||
}
|
||||
targetsuffix "Debug"
|
||||
|
||||
configuration "Release"
|
||||
defines {
|
||||
"BGFX_BUILD_RELEASE=1",
|
||||
flags {
|
||||
"OptimizeSpeed",
|
||||
}
|
||||
targetsuffix "Release"
|
||||
|
||||
|
@ -115,6 +129,46 @@ configuration { "x64", "mingw" }
|
|||
objdir (BUILD_DIR .. "win64_mingw" .. "/obj")
|
||||
includedirs { THIRD_PARTY_DIR .. "compiler/mingw" }
|
||||
|
||||
configuration { "nacl" }
|
||||
defines { "_BSD_SOURCE=1", "_POSIX_C_SOURCE=199506", "_XOPEN_SOURCE=600" }
|
||||
links {
|
||||
"ppapi",
|
||||
"ppapi_gles2",
|
||||
}
|
||||
includedirs { THIRD_PARTY_DIR .. "compiler/nacl" }
|
||||
buildoptions {
|
||||
"-std=c++0x",
|
||||
"-U__STRICT_ANSI__",
|
||||
"-pthread",
|
||||
"-fno-stack-protector",
|
||||
"-fdiagnostics-show-option",
|
||||
"-Wunused-value",
|
||||
"-fdata-sections",
|
||||
"-ffunction-sections",
|
||||
"-mfpmath=sse", -- force SSE to get 32-bit and 64-bit builds deterministic.
|
||||
"-msse2",
|
||||
-- "-fmerge-all-constants",
|
||||
}
|
||||
linkoptions {
|
||||
"-Wl,--gc-sections",
|
||||
}
|
||||
|
||||
configuration { "x32", "nacl" }
|
||||
targetdir (BUILD_DIR .. "nacl-x86" .. "/bin")
|
||||
objdir (BUILD_DIR .. "nacl-x86" .. "/obj")
|
||||
libdirs { THIRD_PARTY_DIR .. "lib/nacl-x86" }
|
||||
linkoptions {
|
||||
"-melf32_nacl",
|
||||
}
|
||||
|
||||
configuration { "x64", "nacl" }
|
||||
targetdir (BUILD_DIR .. "nacl-x64" .. "/bin")
|
||||
objdir (BUILD_DIR .. "nacl-x64" .. "/obj")
|
||||
libdirs { THIRD_PARTY_DIR .. "lib/nacl-x64" }
|
||||
linkoptions {
|
||||
"-melf64_nacl",
|
||||
}
|
||||
|
||||
configuration { "x32", "linux" }
|
||||
targetdir (BUILD_DIR .. "linux32" .. "/bin")
|
||||
objdir (BUILD_DIR .. "linux32" .. "/obj")
|
||||
|
@ -236,16 +290,29 @@ project "makedisttex"
|
|||
|
||||
project "helloworld"
|
||||
uuid "ff2c8450-ebf4-11e0-9572-0800200c9a66"
|
||||
kind "ConsoleApp"
|
||||
kind "WindowedApp"
|
||||
|
||||
includedirs {
|
||||
ROOT_DIR .. "include",
|
||||
}
|
||||
|
||||
files {
|
||||
ROOT_DIR .. "examples/helloworld/**",
|
||||
ROOT_DIR .. "examples/common/**.cpp",
|
||||
ROOT_DIR .. "examples/common/**.h",
|
||||
ROOT_DIR .. "examples/helloworld/**.cpp",
|
||||
ROOT_DIR .. "examples/helloworld/**.h",
|
||||
}
|
||||
|
||||
links {
|
||||
"bgfx",
|
||||
}
|
||||
|
||||
configuration { "nacl" }
|
||||
targetextension ".nexe"
|
||||
|
||||
configuration { "nacl", "Release" }
|
||||
postbuildcommands {
|
||||
"@echo Stripping symbols.",
|
||||
"@$(NACL)/bin/x86_64-nacl-strip -s \"$(TARGET)\""
|
||||
}
|
||||
|
||||
|
|
45
src/bgfx_p.h
45
src/bgfx_p.h
|
@ -293,8 +293,8 @@ namespace bgfx
|
|||
|| m_small != _small)
|
||||
{
|
||||
m_small = _small;
|
||||
m_width = width;
|
||||
m_height = height;
|
||||
m_width = (uint16_t)width;
|
||||
m_height = (uint16_t)height;
|
||||
m_size = m_width * m_height * 2;
|
||||
|
||||
m_mem = (uint8_t*)g_realloc(m_mem, m_size);
|
||||
|
@ -2445,8 +2445,22 @@ namespace bgfx
|
|||
{
|
||||
if (NULL == g_bgfxHwnd)
|
||||
{
|
||||
g_bgfxHwnd = CreateWindow( "EDIT"
|
||||
, NULL
|
||||
HINSTANCE instance = (HINSTANCE)GetModuleHandle(NULL);
|
||||
|
||||
WNDCLASSEX wnd;
|
||||
memset(&wnd, 0, sizeof(wnd) );
|
||||
wnd.cbSize = sizeof(wnd);
|
||||
wnd.style = CS_HREDRAW | CS_VREDRAW;
|
||||
wnd.lpfnWndProc = wndProc;
|
||||
wnd.hInstance = instance;
|
||||
wnd.hIcon = LoadIcon(instance, IDI_APPLICATION);
|
||||
wnd.hCursor = LoadCursor(instance, IDC_ARROW);
|
||||
wnd.lpszClassName = "bgfx";
|
||||
wnd.hIconSm = LoadIcon(instance, IDI_APPLICATION);
|
||||
RegisterClassExA(&wnd);
|
||||
|
||||
g_bgfxHwnd = CreateWindowA("bgfx"
|
||||
, "BGFX"
|
||||
, WS_OVERLAPPEDWINDOW|WS_VISIBLE
|
||||
, 0
|
||||
, 0
|
||||
|
@ -2462,15 +2476,32 @@ namespace bgfx
|
|||
}
|
||||
}
|
||||
|
||||
static LRESULT CALLBACK wndProc(HWND _hwnd, UINT _id, WPARAM _wparam, LPARAM _lparam)
|
||||
{
|
||||
switch (_id)
|
||||
{
|
||||
case WM_CLOSE:
|
||||
TerminateProcess(GetCurrentProcess(), 0);
|
||||
break;
|
||||
|
||||
default:
|
||||
break;
|
||||
}
|
||||
|
||||
return DefWindowProc(_hwnd, _id, _wparam, _lparam);
|
||||
}
|
||||
|
||||
void update()
|
||||
{
|
||||
if (m_update)
|
||||
{
|
||||
MSG msg;
|
||||
msg.message = WM_NULL;
|
||||
PeekMessage(&msg, NULL, 0U, 0U, PM_REMOVE);
|
||||
TranslateMessage( &msg );
|
||||
DispatchMessage( &msg );
|
||||
if (0 != PeekMessage(&msg, NULL, 0U, 0U, PM_REMOVE) )
|
||||
{
|
||||
TranslateMessage(&msg);
|
||||
DispatchMessage(&msg);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -65,7 +65,6 @@ namespace bgfx
|
|||
|
||||
void setRenderContextSize(uint32_t _width, uint32_t _height)
|
||||
{
|
||||
BX_TRACE("1");
|
||||
if (_width != 0
|
||||
|| _height != 0)
|
||||
{
|
||||
|
@ -1019,18 +1018,18 @@ namespace bgfx
|
|||
|
||||
Material& material = s_renderCtx.m_materials[m_material.idx];
|
||||
GL_CHECK(glUseProgram(material.m_id) );
|
||||
GL_CHECK(glUniform1i(material.m_sampler[0], 0) );
|
||||
|
||||
float proj[16];
|
||||
matrix_ortho(proj, 0.0f, (float)width, (float)height, 0.0f, 0.0f, 1000.0f);
|
||||
|
||||
PredefinedUniform& predefined = material.m_predefined[0];
|
||||
|
||||
GL_CHECK(glUniformMatrix4fv(predefined.m_loc
|
||||
GL_CHECK(glUniformMatrix4fv(material.m_predefined[0].m_loc
|
||||
, 1
|
||||
, GL_FALSE
|
||||
, proj
|
||||
) );
|
||||
|
||||
GL_CHECK(glActiveTexture(GL_TEXTURE0) );
|
||||
GL_CHECK(glBindTexture(GL_TEXTURE_2D, s_renderCtx.m_textures[m_texture.idx].m_id) );
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in a new issue