mirror of
https://github.com/scratchfoundation/bgfx.git
synced 2025-02-26 16:44:00 -05:00
Added R11G11B10F format.
This commit is contained in:
parent
3b73fb2063
commit
4fb802e405
9 changed files with 199 additions and 146 deletions
|
@ -112,6 +112,7 @@ typedef enum bgfx_texture_format
|
|||
BGFX_TEXTURE_FORMAT_RGBA4,
|
||||
BGFX_TEXTURE_FORMAT_RGB5A1,
|
||||
BGFX_TEXTURE_FORMAT_RGB10A2,
|
||||
BGFX_TEXTURE_FORMAT_R11G11B10F,
|
||||
|
||||
BGFX_TEXTURE_FORMAT_UNKNOWN_DEPTH,
|
||||
|
||||
|
|
|
@ -144,6 +144,7 @@ namespace bgfx
|
|||
RGBA4,
|
||||
RGB5A1,
|
||||
RGB10A2,
|
||||
R11G11B10F,
|
||||
|
||||
UnknownDepth, // depth formats below
|
||||
|
||||
|
|
22
src/bgfx_p.h
22
src/bgfx_p.h
|
@ -140,8 +140,28 @@ namespace stl
|
|||
#define BGFX_RENDERER_NULL_NAME "NULL"
|
||||
|
||||
#if BGFX_CONFIG_RENDERER_OPENGL
|
||||
# if BGFX_CONFIG_RENDERER_OPENGL >= 31
|
||||
# if BGFX_CONFIG_RENDERER_OPENGL >= 31 && BGFX_CONFIG_RENDERER_OPENGL <= 33
|
||||
# if BGFX_CONFIG_RENDERER_OPENGL == 31
|
||||
# define BGFX_RENDERER_OPENGL_NAME "OpenGL 3.1"
|
||||
# elif BGFX_CONFIG_RENDERER_OPENGL == 32
|
||||
# define BGFX_RENDERER_OPENGL_NAME "OpenGL 3.2"
|
||||
# else
|
||||
# define BGFX_RENDERER_OPENGL_NAME "OpenGL 3.3"
|
||||
# endif // 31+
|
||||
# elif BGFX_CONFIG_RENDERER_OPENGL >= 40 && BGFX_CONFIG_RENDERER_OPENGL <= 45
|
||||
# if BGFX_CONFIG_RENDERER_OPENGL == 40
|
||||
# define BGFX_RENDERER_OPENGL_NAME "OpenGL 4.0"
|
||||
# elif BGFX_CONFIG_RENDERER_OPENGL == 41
|
||||
# define BGFX_RENDERER_OPENGL_NAME "OpenGL 4.1"
|
||||
# elif BGFX_CONFIG_RENDERER_OPENGL == 42
|
||||
# define BGFX_RENDERER_OPENGL_NAME "OpenGL 4.2"
|
||||
# elif BGFX_CONFIG_RENDERER_OPENGL == 43
|
||||
# define BGFX_RENDERER_OPENGL_NAME "OpenGL 4.3"
|
||||
# elif BGFX_CONFIG_RENDERER_OPENGL == 44
|
||||
# define BGFX_RENDERER_OPENGL_NAME "OpenGL 4.4"
|
||||
# else
|
||||
# define BGFX_RENDERER_OPENGL_NAME "OpenGL 4.5"
|
||||
# endif // 40+
|
||||
# else
|
||||
# define BGFX_RENDERER_OPENGL_NAME "OpenGL 2.1"
|
||||
# endif // BGFX_CONFIG_RENDERER_OPENGL
|
||||
|
|
|
@ -192,8 +192,8 @@ namespace bgfx
|
|||
int32_t contextAttrs[9] =
|
||||
{
|
||||
#if BGFX_CONFIG_RENDERER_OPENGL >= 31
|
||||
WGL_CONTEXT_MAJOR_VERSION_ARB, 3,
|
||||
WGL_CONTEXT_MINOR_VERSION_ARB, 1,
|
||||
WGL_CONTEXT_MAJOR_VERSION_ARB, BGFX_CONFIG_RENDERER_OPENGL / 10,
|
||||
WGL_CONTEXT_MINOR_VERSION_ARB, BGFX_CONFIG_RENDERER_OPENGL % 10,
|
||||
WGL_CONTEXT_FLAGS_ARB, flags,
|
||||
WGL_CONTEXT_PROFILE_MASK_ARB, WGL_CONTEXT_CORE_PROFILE_BIT_ARB,
|
||||
#else
|
||||
|
|
|
@ -50,6 +50,7 @@ namespace bgfx
|
|||
{ 16, 1, 1, 2 }, // RGBA4
|
||||
{ 16, 1, 1, 2 }, // RGB5A1
|
||||
{ 32, 1, 1, 4 }, // RGB10A2
|
||||
{ 32, 1, 1, 4 }, // R11G11B10F
|
||||
{ 0, 0, 0, 0 }, // UnknownDepth
|
||||
{ 16, 1, 1, 2 }, // D16
|
||||
{ 24, 1, 1, 3 }, // D24
|
||||
|
@ -102,6 +103,7 @@ namespace bgfx
|
|||
"RGBA4", // RGBA4
|
||||
"RGB5A1", // RGB5A1
|
||||
"RGB10A2", // RGB10A2
|
||||
"R11G11B10F", // R11G11B10F
|
||||
"<unknown>", // UnknownDepth
|
||||
"D16", // D16
|
||||
"D24", // D24
|
||||
|
|
|
@ -237,6 +237,7 @@ namespace bgfx
|
|||
{ DXGI_FORMAT_B4G4R4A4_UNORM, DXGI_FORMAT_B4G4R4A4_UNORM, DXGI_FORMAT_UNKNOWN }, // RGBA4
|
||||
{ DXGI_FORMAT_B5G5R5A1_UNORM, DXGI_FORMAT_B5G5R5A1_UNORM, DXGI_FORMAT_UNKNOWN }, // RGB5A1
|
||||
{ DXGI_FORMAT_R10G10B10A2_UNORM, DXGI_FORMAT_R10G10B10A2_UNORM, DXGI_FORMAT_UNKNOWN }, // RGB10A2
|
||||
{ DXGI_FORMAT_R11G11B10_FLOAT, DXGI_FORMAT_R11G11B10_FLOAT, DXGI_FORMAT_UNKNOWN }, // R11G11B10F
|
||||
{ DXGI_FORMAT_UNKNOWN, DXGI_FORMAT_UNKNOWN, DXGI_FORMAT_UNKNOWN }, // UnknownDepth
|
||||
{ DXGI_FORMAT_R16_TYPELESS, DXGI_FORMAT_R16_UNORM, DXGI_FORMAT_D16_UNORM }, // D16
|
||||
{ DXGI_FORMAT_R24G8_TYPELESS, DXGI_FORMAT_R24_UNORM_X8_TYPELESS, DXGI_FORMAT_D24_UNORM_S8_UINT }, // D24
|
||||
|
|
|
@ -223,6 +223,7 @@ namespace bgfx
|
|||
{ D3DFMT_A4R4G4B4 }, // RGBA4
|
||||
{ D3DFMT_A1R5G5B5 }, // RGB5A1
|
||||
{ D3DFMT_A2B10G10R10 }, // RGB10A2
|
||||
{ D3DFMT_UNKNOWN }, // R11G11B10F
|
||||
{ D3DFMT_UNKNOWN }, // UnknownDepth
|
||||
{ D3DFMT_D16 }, // D16
|
||||
{ D3DFMT_D24X8 }, // D24
|
||||
|
|
|
@ -218,6 +218,7 @@ namespace bgfx
|
|||
{ GL_RGBA4, GL_RGBA, GL_UNSIGNED_SHORT_4_4_4_4, true }, // RGBA4
|
||||
{ GL_RGB5_A1, GL_RGBA, GL_UNSIGNED_SHORT_5_5_5_1, true }, // RGB5A1
|
||||
{ GL_RGB10_A2, GL_RGBA, GL_UNSIGNED_INT_2_10_10_10_REV, true }, // RGB10A2
|
||||
{ GL_R11F_G11F_B10F, GL_RGB, GL_UNSIGNED_INT_10F_11F_11F_REV, true }, // R11G11B10F
|
||||
{ GL_ZERO, GL_ZERO, GL_ZERO, true }, // UnknownDepth
|
||||
{ GL_DEPTH_COMPONENT16, GL_DEPTH_COMPONENT, GL_UNSIGNED_SHORT, false }, // D16
|
||||
{ GL_DEPTH_COMPONENT24, GL_DEPTH_COMPONENT, GL_UNSIGNED_INT, false }, // D24
|
||||
|
@ -270,6 +271,7 @@ namespace bgfx
|
|||
GL_RGBA4, // RGBA4
|
||||
GL_RGB5_A1, // RGB5A1
|
||||
GL_RGB10_A2, // RGB10A2
|
||||
GL_R11F_G11F_B10F, // R11G11B10F
|
||||
GL_ZERO, // UnknownDepth
|
||||
GL_ZERO, // D16
|
||||
GL_ZERO, // D24
|
||||
|
@ -286,6 +288,8 @@ namespace bgfx
|
|||
{
|
||||
enum Enum
|
||||
{
|
||||
AMD_conservative_depth,
|
||||
|
||||
ANGLE_depth_texture,
|
||||
ANGLE_framebuffer_blit,
|
||||
ANGLE_framebuffer_multisample,
|
||||
|
@ -299,10 +303,13 @@ namespace bgfx
|
|||
APPLE_texture_max_level,
|
||||
|
||||
ARB_compute_shader,
|
||||
ARB_conservative_depth,
|
||||
ARB_debug_label,
|
||||
ARB_debug_output,
|
||||
ARB_depth_buffer_float,
|
||||
ARB_depth_clamp,
|
||||
ARB_draw_buffers_blend,
|
||||
ARB_draw_instanced,
|
||||
ARB_ES3_compatibility,
|
||||
ARB_framebuffer_object,
|
||||
ARB_framebuffer_sRGB,
|
||||
|
@ -312,9 +319,12 @@ namespace bgfx
|
|||
ARB_instanced_arrays,
|
||||
ARB_map_buffer_range,
|
||||
ARB_multisample,
|
||||
ARB_occlusion_query,
|
||||
ARB_occlusion_query2,
|
||||
ARB_program_interface_query,
|
||||
ARB_sampler_objects,
|
||||
ARB_seamless_cube_map,
|
||||
ARB_shader_bit_encoding,
|
||||
ARB_shader_image_load_store,
|
||||
ARB_shader_storage_buffer_object,
|
||||
ARB_shader_texture_lod,
|
||||
|
@ -351,6 +361,7 @@ namespace bgfx
|
|||
EXT_framebuffer_object,
|
||||
EXT_framebuffer_sRGB,
|
||||
EXT_occlusion_query_boolean,
|
||||
EXT_packed_float,
|
||||
EXT_read_format_bgra,
|
||||
EXT_shader_image_load_store,
|
||||
EXT_shader_texture_lod,
|
||||
|
@ -432,6 +443,8 @@ namespace bgfx
|
|||
|
||||
static Extension s_extension[Extension::Count] =
|
||||
{
|
||||
{ "AMD_conservative_depth", false, true },
|
||||
|
||||
{ "ANGLE_depth_texture", false, true },
|
||||
{ "ANGLE_framebuffer_blit", false, true },
|
||||
{ "ANGLE_framebuffer_multisample", false, false },
|
||||
|
@ -445,10 +458,13 @@ namespace bgfx
|
|||
{ "APPLE_texture_max_level", false, true },
|
||||
|
||||
{ "ARB_compute_shader", BGFX_CONFIG_RENDERER_OPENGL >= 43, true },
|
||||
{ "ARB_conservative_depth", BGFX_CONFIG_RENDERER_OPENGL >= 42, true },
|
||||
{ "ARB_debug_label", false, true },
|
||||
{ "ARB_debug_output", BGFX_CONFIG_RENDERER_OPENGL >= 43, true },
|
||||
{ "ARB_depth_buffer_float", BGFX_CONFIG_RENDERER_OPENGL >= 33, true },
|
||||
{ "ARB_depth_clamp", BGFX_CONFIG_RENDERER_OPENGL >= 32, true },
|
||||
{ "ARB_draw_buffers_blend", BGFX_CONFIG_RENDERER_OPENGL >= 40, true },
|
||||
{ "ARB_draw_instanced", BGFX_CONFIG_RENDERER_OPENGL >= 33, true },
|
||||
{ "ARB_ES3_compatibility", BGFX_CONFIG_RENDERER_OPENGL >= 43, true },
|
||||
{ "ARB_framebuffer_object", BGFX_CONFIG_RENDERER_OPENGL >= 30, true },
|
||||
{ "ARB_framebuffer_sRGB", BGFX_CONFIG_RENDERER_OPENGL >= 30, true },
|
||||
|
@ -458,9 +474,12 @@ namespace bgfx
|
|||
{ "ARB_instanced_arrays", BGFX_CONFIG_RENDERER_OPENGL >= 33, true },
|
||||
{ "ARB_map_buffer_range", BGFX_CONFIG_RENDERER_OPENGL >= 30, true },
|
||||
{ "ARB_multisample", false, true },
|
||||
{ "ARB_occlusion_query", BGFX_CONFIG_RENDERER_OPENGL >= 33, true },
|
||||
{ "ARB_occlusion_query2", BGFX_CONFIG_RENDERER_OPENGL >= 33, true },
|
||||
{ "ARB_program_interface_query", BGFX_CONFIG_RENDERER_OPENGL >= 43, true },
|
||||
{ "ARB_sampler_objects", BGFX_CONFIG_RENDERER_OPENGL >= 33, true },
|
||||
{ "ARB_seamless_cube_map", BGFX_CONFIG_RENDERER_OPENGL >= 32, true },
|
||||
{ "ARB_shader_bit_encoding", BGFX_CONFIG_RENDERER_OPENGL >= 33, true },
|
||||
{ "ARB_shader_image_load_store", BGFX_CONFIG_RENDERER_OPENGL >= 42, true },
|
||||
{ "ARB_shader_storage_buffer_object", BGFX_CONFIG_RENDERER_OPENGL >= 43, true },
|
||||
{ "ARB_shader_texture_lod", BGFX_CONFIG_RENDERER_OPENGL >= 30, true },
|
||||
|
@ -497,6 +516,7 @@ namespace bgfx
|
|||
{ "EXT_framebuffer_object", BGFX_CONFIG_RENDERER_OPENGL >= 30, true },
|
||||
{ "EXT_framebuffer_sRGB", BGFX_CONFIG_RENDERER_OPENGL >= 30, true },
|
||||
{ "EXT_occlusion_query_boolean", false, true },
|
||||
{ "EXT_packed_float", BGFX_CONFIG_RENDERER_OPENGL >= 33, true },
|
||||
{ "EXT_read_format_bgra", false, true },
|
||||
{ "EXT_shader_image_load_store", false, true },
|
||||
{ "EXT_shader_texture_lod", false, true }, // GLES2 extension.
|
||||
|
@ -4812,7 +4832,6 @@ namespace bgfx
|
|||
|
||||
GLint totalAvail;
|
||||
GL_CHECK(glGetIntegerv(GL_GPU_MEMORY_INFO_TOTAL_AVAILABLE_MEMORY_NVX, &totalAvail) );
|
||||
|
||||
GLint currAvail;
|
||||
GL_CHECK(glGetIntegerv(GL_GPU_MEMORY_INFO_CURRENT_AVAILABLE_VIDMEM_NVX, &currAvail) );
|
||||
|
||||
|
|
|
@ -191,6 +191,14 @@ typedef uint64_t GLuint64;
|
|||
# define GL_RGBA16UI 0x8D76
|
||||
#endif // GL_RGBA16UI
|
||||
|
||||
#ifndef GL_R11F_G11F_B10F
|
||||
# define GL_R11F_G11F_B10F 0x8C3A
|
||||
#endif // GL_R11F_G11F_B10F
|
||||
|
||||
#ifndef GL_UNSIGNED_INT_10F_11F_11F_REV
|
||||
# define GL_UNSIGNED_INT_10F_11F_11F_REV 0x8C3B
|
||||
#endif // GL_UNSIGNED_INT_10F_11F_11F_REV
|
||||
|
||||
#ifndef GL_COMPRESSED_RGB_S3TC_DXT1_EXT
|
||||
# define GL_COMPRESSED_RGB_S3TC_DXT1_EXT 0x83F0
|
||||
#endif // GL_COMPRESSED_RGB_S3TC_DXT1_EXT
|
||||
|
|
Loading…
Reference in a new issue