diff options
Diffstat (limited to '3rdparty/bgfx/src/renderer_gl.h')
-rw-r--r-- | 3rdparty/bgfx/src/renderer_gl.h | 55 |
1 files changed, 47 insertions, 8 deletions
diff --git a/3rdparty/bgfx/src/renderer_gl.h b/3rdparty/bgfx/src/renderer_gl.h index bccee98fe48..e8d653c93ce 100644 --- a/3rdparty/bgfx/src/renderer_gl.h +++ b/3rdparty/bgfx/src/renderer_gl.h @@ -1,5 +1,5 @@ /* - * Copyright 2011-2018 Branimir Karadzic. All rights reserved. + * Copyright 2011-2019 Branimir Karadzic. All rights reserved. * License: https://github.com/bkaradzic/bgfx#license-bsd-2-clause */ @@ -9,7 +9,6 @@ #define BGFX_USE_EGL (BGFX_CONFIG_RENDERER_OPENGLES && (0 \ || BX_PLATFORM_ANDROID \ || BX_PLATFORM_BSD \ - || BX_PLATFORM_EMSCRIPTEN \ || BX_PLATFORM_LINUX \ || BX_PLATFORM_NX \ || BX_PLATFORM_RPI \ @@ -17,6 +16,10 @@ || BX_PLATFORM_WINDOWS \ ) ) +#define BGFX_USE_HTML5 (BGFX_CONFIG_RENDERER_OPENGLES && (0 \ + || BX_PLATFORM_EMSCRIPTEN \ + ) ) + #define BGFX_USE_WGL (BGFX_CONFIG_RENDERER_OPENGL && BX_PLATFORM_WINDOWS) #define BGFX_USE_GLX (BGFX_CONFIG_RENDERER_OPENGL && (0 \ || BX_PLATFORM_BSD \ @@ -30,6 +33,24 @@ || BX_PLATFORM_WINDOWS \ ) +#define BGFX_GL_PROFILER_BEGIN(_view, _abgr) \ + BX_MACRO_BLOCK_BEGIN \ + GL_CHECK(glPushDebugGroup(GL_DEBUG_SOURCE_APPLICATION, 0, -1, s_viewName[view]) ); \ + BGFX_PROFILER_BEGIN(s_viewName[view], _abgr); \ + BX_MACRO_BLOCK_END + +#define BGFX_GL_PROFILER_BEGIN_LITERAL(_name, _abgr) \ + BX_MACRO_BLOCK_BEGIN \ + GL_CHECK(glPushDebugGroup(GL_DEBUG_SOURCE_APPLICATION, 0, -1, "" # _name) ); \ + BGFX_PROFILER_BEGIN_LITERAL("" # _name, _abgr); \ + BX_MACRO_BLOCK_END + +#define BGFX_GL_PROFILER_END() \ + BX_MACRO_BLOCK_BEGIN \ + BGFX_PROFILER_END(); \ + GL_CHECK(glPopDebugGroup() ); \ + BX_MACRO_BLOCK_END + #if BGFX_CONFIG_RENDERER_OPENGL # if BGFX_CONFIG_RENDERER_OPENGL >= 31 # include <gl/glcorearb.h> @@ -107,6 +128,10 @@ typedef uint64_t GLuint64; # include "glcontext_egl.h" # endif // BGFX_USE_EGL +# if BGFX_USE_HTML5 +# include "glcontext_html5.h" +# endif // BGFX_USE_EGL + # if BX_PLATFORM_EMSCRIPTEN # include <emscripten/emscripten.h> # endif // BX_PLATFORM_EMSCRIPTEN @@ -587,6 +612,10 @@ typedef uint64_t GLuint64; # define GL_MAX_ARRAY_TEXTURE_LAYERS 0x88FF #endif // GL_MAX_ARRAY_TEXTURE_LAYERS +#ifndef GL_MAX_LABEL_LENGTH +# define GL_MAX_LABEL_LENGTH 0x82E8 +#endif // GL_MAX_LABEL_LENGTH + #ifndef GL_QUERY_RESULT # define GL_QUERY_RESULT 0x8866 #endif // GL_QUERY_RESULT @@ -631,7 +660,7 @@ typedef uint64_t GLuint64; # define GL_RENDERBUFFER_FREE_MEMORY_ATI 0x87FD #endif // GL_RENDERBUFFER_FREE_MEMORY_ATI -// http://developer.download.nvidia.com/opengl/specs/GL_NVX_gpu_memory_info.txt +// https://web.archive.org/web/20190207230448/http://developer.download.nvidia.com/opengl/specs/GL_NVX_gpu_memory_info.txt #ifndef GL_GPU_MEMORY_INFO_DEDICATED_VIDMEM_NVX # define GL_GPU_MEMORY_INFO_DEDICATED_VIDMEM_NVX 0x9047 #endif // GL_GPU_MEMORY_INFO_DEDICATED_VIDMEM_NVX @@ -916,6 +945,14 @@ typedef uint64_t GLuint64; # define GL_TEXTURE 0x1702 #endif // GL_TEXTURE +#ifndef GL_BUFFER +# define GL_BUFFER 0x82E0 +#endif // GL_BUFFER + +#ifndef GL_COMMAND_BARRIER_BIT +# define GL_COMMAND_BARRIER_BIT 0x00000040 +#endif // GL_COMMAND_BARRIER_BIT + // _KHR or _ARB... #define GL_DEBUG_OUTPUT_SYNCHRONOUS 0x8242 #define GL_DEBUG_NEXT_LOGGED_MESSAGE_LENGTH 0x8243 @@ -1177,10 +1214,10 @@ namespace bgfx { namespace gl struct VertexBufferGL { - void create(uint32_t _size, void* _data, VertexDeclHandle _declHandle, uint16_t _flags) + void create(uint32_t _size, void* _data, VertexLayoutHandle _layoutHandle, uint16_t _flags) { m_size = _size; - m_decl = _declHandle; + m_layoutHandle = _layoutHandle; const bool drawIndirect = 0 != (_flags & BGFX_BUFFER_DRAW_INDIRECT); m_target = drawIndirect ? GL_DRAW_INDIRECT_BUFFER : GL_ARRAY_BUFFER; @@ -1204,7 +1241,7 @@ namespace bgfx { namespace gl { // orphan buffer... destroy(); - create(m_size, NULL, m_decl, 0); + create(m_size, NULL, m_layoutHandle, 0); } GL_CHECK(glBindBuffer(m_target, m_id) ); @@ -1221,7 +1258,7 @@ namespace bgfx { namespace gl GLuint m_id; GLenum m_target; uint32_t m_size; - VertexDeclHandle m_decl; + VertexLayoutHandle m_layoutHandle; }; struct TextureGL @@ -1265,6 +1302,7 @@ namespace bgfx { namespace gl uint32_t m_width; uint32_t m_height; uint32_t m_depth; + uint32_t m_numLayers; uint8_t m_numMips; uint8_t m_requestedFormat; uint8_t m_textureFormat; @@ -1304,6 +1342,7 @@ namespace bgfx { namespace gl uint16_t destroy(); void resolve(); void discard(uint16_t _flags); + void set(); SwapChainGL* m_swapChain; GLuint m_fbo[2]; @@ -1336,7 +1375,7 @@ namespace bgfx { namespace gl bx::memCopy(m_unboundUsedAttrib, m_used, sizeof(m_unboundUsedAttrib) ); } - void bindAttributes(const VertexDecl& _vertexDecl, uint32_t _baseVertex = 0); + void bindAttributes(const VertexLayout& _layout, uint32_t _baseVertex = 0); void bindAttributesEnd() { |