mirror of
https://github.com/scratchfoundation/bgfx.git
synced 2024-11-28 18:45:54 -05:00
Added bgfx platform C99 header.
This commit is contained in:
parent
82216b2176
commit
0f330a7a08
3 changed files with 132 additions and 2 deletions
85
include/bgfxplatform.c99.h
Normal file
85
include/bgfxplatform.c99.h
Normal file
|
@ -0,0 +1,85 @@
|
||||||
|
/*
|
||||||
|
* Copyright 2011-2014 Branimir Karadzic. All rights reserved.
|
||||||
|
* License: https://github.com/bkaradzic/bgfx/blob/master/LICENSE
|
||||||
|
*
|
||||||
|
* vim: set tabstop=4 expandtab:
|
||||||
|
*/
|
||||||
|
|
||||||
|
#ifndef BGFX_PLATFORM_C99_H_HEADER_GUARD
|
||||||
|
#define BGFX_PLATFORM_C99_H_HEADER_GUARD
|
||||||
|
|
||||||
|
// NOTICE:
|
||||||
|
// This header file contains platform specific interfaces. It is only
|
||||||
|
// necessary to use this header in conjunction with creating windows.
|
||||||
|
|
||||||
|
#include <bx/platform.h>
|
||||||
|
|
||||||
|
typedef enum bgfx_render_frame
|
||||||
|
{
|
||||||
|
BGFX_RENDER_FRAME_NO_CONTEXT,
|
||||||
|
BGFX_RENDER_FRAME_RENDER,
|
||||||
|
BGFX_RENDER_FRAME_EXITING,
|
||||||
|
|
||||||
|
BGFX_RENDER_FRAME_COUNT
|
||||||
|
|
||||||
|
} bgfx_render_frame_t;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* WARNING: This call should be only used on platforms that don't
|
||||||
|
* allow creating separate rendering thread. If it is called before
|
||||||
|
* to bgfx_init, render thread won't be created by bgfx_init call.
|
||||||
|
*/
|
||||||
|
BGFX_C_API bgfx_render_frame_t bgfx_render_frame();
|
||||||
|
|
||||||
|
#if BX_PLATFORM_ANDROID
|
||||||
|
# include <android/native_window.h>
|
||||||
|
|
||||||
|
/**
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
BGFX_C_API void bgfx_android_set_window(ANativeWindow* _window);
|
||||||
|
|
||||||
|
#elif BX_PLATFORM_IOS
|
||||||
|
|
||||||
|
/**
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
BGFX_C_API void bgfx_ios_set_eagl_layer(void* _layer);
|
||||||
|
|
||||||
|
#elif BX_PLATFORM_LINUX
|
||||||
|
# include <X11/Xlib.h>
|
||||||
|
|
||||||
|
/**
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
BGFX_C_API void bgfx_x11_set_display_window(Display* _display, Window _window);
|
||||||
|
|
||||||
|
#elif BX_PLATFORM_NACL
|
||||||
|
# include <ppapi/c/ppb_graphics_3d.h>
|
||||||
|
# include <ppapi/c/ppb_instance.h>
|
||||||
|
|
||||||
|
typedef void (*bgfx_post_swap_buffers_fn)(uint32_t _width, uint32_t _height);
|
||||||
|
|
||||||
|
/**
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
BGFX_C_API bool bgfx_nacl_set_interfaces(PP_Instance, const PPB_Instance*, const PPB_Graphics3D*, bgfx_post_swap_buffers_fn);
|
||||||
|
|
||||||
|
#elif BX_PLATFORM_OSX
|
||||||
|
|
||||||
|
/**
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
BGFX_C_API void bgfx_osx_set_ns_window(void* _window);
|
||||||
|
|
||||||
|
#elif BX_PLATFORM_WINDOWS
|
||||||
|
# include <windows.h>
|
||||||
|
|
||||||
|
/**
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
BGFX_C_API void bgfx_win_set_hwnd(HWND _window);
|
||||||
|
|
||||||
|
#endif // BX_PLATFORM_
|
||||||
|
|
||||||
|
#endif // BGFX_PLATFORM_C99_H_HEADER_GUARD
|
|
@ -1,6 +1,6 @@
|
||||||
/*
|
/*
|
||||||
* Copyright 2011-2014 Branimir Karadzic. All rights reserved.
|
* Copyright 2011-2014 Branimir Karadzic. All rights reserved.
|
||||||
* License: http://www.opensource.org/licenses/BSD-2-Clause
|
* License: https://github.com/bkaradzic/bgfx/blob/master/LICENSE
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#ifndef BGFX_PLATFORM_H_HEADER_GUARD
|
#ifndef BGFX_PLATFORM_H_HEADER_GUARD
|
||||||
|
@ -10,7 +10,7 @@
|
||||||
// This header file contains platform specific interfaces. It is only
|
// This header file contains platform specific interfaces. It is only
|
||||||
// necessary to use this header in conjunction with creating windows.
|
// necessary to use this header in conjunction with creating windows.
|
||||||
|
|
||||||
#include <bx/bx.h>
|
#include <bx/platform.h>
|
||||||
|
|
||||||
namespace bgfx
|
namespace bgfx
|
||||||
{
|
{
|
||||||
|
|
45
src/bgfx.cpp
45
src/bgfx.cpp
|
@ -2605,12 +2605,14 @@ again:
|
||||||
} // namespace bgfx
|
} // namespace bgfx
|
||||||
|
|
||||||
#include <bgfx.c99.h>
|
#include <bgfx.c99.h>
|
||||||
|
#include <bgfxplatform.c99.h>
|
||||||
|
|
||||||
BX_STATIC_ASSERT(bgfx::RendererType::Count == bgfx::RendererType::Enum(BGFX_RENDERER_TYPE_COUNT) );
|
BX_STATIC_ASSERT(bgfx::RendererType::Count == bgfx::RendererType::Enum(BGFX_RENDERER_TYPE_COUNT) );
|
||||||
BX_STATIC_ASSERT(bgfx::Attrib::Count == bgfx::Attrib::Enum(BGFX_ATTRIB_COUNT) );
|
BX_STATIC_ASSERT(bgfx::Attrib::Count == bgfx::Attrib::Enum(BGFX_ATTRIB_COUNT) );
|
||||||
BX_STATIC_ASSERT(bgfx::AttribType::Count == bgfx::AttribType::Enum(BGFX_ATTRIB_TYPE_COUNT) );
|
BX_STATIC_ASSERT(bgfx::AttribType::Count == bgfx::AttribType::Enum(BGFX_ATTRIB_TYPE_COUNT) );
|
||||||
BX_STATIC_ASSERT(bgfx::TextureFormat::Count == bgfx::TextureFormat::Enum(BGFX_TEXTURE_FORMAT_COUNT) );
|
BX_STATIC_ASSERT(bgfx::TextureFormat::Count == bgfx::TextureFormat::Enum(BGFX_TEXTURE_FORMAT_COUNT) );
|
||||||
BX_STATIC_ASSERT(bgfx::UniformType::Count == bgfx::UniformType::Enum(BGFX_UNIFORM_TYPE_COUNT) );
|
BX_STATIC_ASSERT(bgfx::UniformType::Count == bgfx::UniformType::Enum(BGFX_UNIFORM_TYPE_COUNT) );
|
||||||
|
BX_STATIC_ASSERT(bgfx::RenderFrame::Count == bgfx::RenderFrame::Enum(BGFX_RENDER_FRAME_COUNT) );
|
||||||
|
|
||||||
BX_STATIC_ASSERT(sizeof(bgfx::Memory) == sizeof(bgfx_memory_t) );
|
BX_STATIC_ASSERT(sizeof(bgfx::Memory) == sizeof(bgfx_memory_t) );
|
||||||
BX_STATIC_ASSERT(sizeof(bgfx::VertexDecl) == sizeof(bgfx_vertex_decl_t) );
|
BX_STATIC_ASSERT(sizeof(bgfx::VertexDecl) == sizeof(bgfx_vertex_decl_t) );
|
||||||
|
@ -3196,3 +3198,46 @@ BGFX_C_API void bgfx_save_screen_shot(const char* _filePath)
|
||||||
{
|
{
|
||||||
bgfx::saveScreenShot(_filePath);
|
bgfx::saveScreenShot(_filePath);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
BGFX_C_API bgfx_render_frame_t bgfx_render_frame()
|
||||||
|
{
|
||||||
|
return bgfx_render_frame_t(bgfx::renderFrame() );
|
||||||
|
}
|
||||||
|
|
||||||
|
#if BX_PLATFORM_ANDROID
|
||||||
|
BGFX_C_API void bgfx_android_set_window(ANativeWindow* _window)
|
||||||
|
{
|
||||||
|
bgfx::androidSetWindow(_window);
|
||||||
|
}
|
||||||
|
|
||||||
|
#elif BX_PLATFORM_IOS
|
||||||
|
BGFX_C_API void bgfx_ios_set_eagl_layer(void* _layer)
|
||||||
|
{
|
||||||
|
bgfx::iosSetEaglLayer(_layer);
|
||||||
|
}
|
||||||
|
|
||||||
|
#elif BX_PLATFORM_LINUX
|
||||||
|
BGFX_C_API void bgfx_x11_set_display_window(::Display* _display, ::Window _window)
|
||||||
|
{
|
||||||
|
bgfx::x11SetDisplayWindow(_display, _window);
|
||||||
|
}
|
||||||
|
|
||||||
|
#elif BX_PLATFORM_NACL
|
||||||
|
BGFX_C_API bool bgfx_nacl_set_interfaces(PP_Instance _instance, const PPB_Instance* _instInterface, const PPB_Graphics3D* _graphicsInterface, bgfx_post_swap_buffers_fn _postSwapBuffers)
|
||||||
|
{
|
||||||
|
return bgfx::naclSetInterfaces(_instance, _instInterface, _graphicsInterface, _postSwapBuffers);
|
||||||
|
}
|
||||||
|
|
||||||
|
#elif BX_PLATFORM_OSX
|
||||||
|
BGFX_C_API void bgfx_osx_set_ns_window(void* _window)
|
||||||
|
{
|
||||||
|
bgfx::osxSetNSWindow(_window);
|
||||||
|
}
|
||||||
|
|
||||||
|
#elif BX_PLATFORM_WINDOWS
|
||||||
|
BGFX_C_API void bgfx_win_set_hwnd(HWND _window)
|
||||||
|
{
|
||||||
|
bgfx::winSetHwnd(_window);
|
||||||
|
}
|
||||||
|
|
||||||
|
#endif // BX_PLATFORM_*
|
||||||
|
|
Loading…
Reference in a new issue