summaryrefslogtreecommitdiffstatshomepage
path: root/3rdparty/bgfx/examples/common/font/text_buffer_manager.cpp
diff options
context:
space:
mode:
author Branimir Karadžić <branimirkaradzic@gmail.com>2017-01-02 14:05:50 +0100
committer Miodrag Milanovic <mmicko@gmail.com>2017-01-02 14:05:50 +0100
commitfadb547f630d377b1ff69a7ab09f852855930c56 (patch)
treea77a08bbed897113aec7a95657fc5e0d902fc0b6 /3rdparty/bgfx/examples/common/font/text_buffer_manager.cpp
parent04faaaf7ffb422f390262e119fe50db21683a831 (diff)
Updated BGFX (nw)
Diffstat (limited to '3rdparty/bgfx/examples/common/font/text_buffer_manager.cpp')
-rw-r--r--3rdparty/bgfx/examples/common/font/text_buffer_manager.cpp85
1 files changed, 27 insertions, 58 deletions
diff --git a/3rdparty/bgfx/examples/common/font/text_buffer_manager.cpp b/3rdparty/bgfx/examples/common/font/text_buffer_manager.cpp
index 9acb796212f..8d15d6362e0 100644
--- a/3rdparty/bgfx/examples/common/font/text_buffer_manager.cpp
+++ b/3rdparty/bgfx/examples/common/font/text_buffer_manager.cpp
@@ -6,6 +6,8 @@
#include "../common.h"
#include <bgfx/bgfx.h>
+#include <bgfx/embedded_shader.h>
+
#include <stddef.h> // offsetof
#include <memory.h> // memcpy
#include <wchar.h> // wcslen
@@ -21,6 +23,18 @@
#include "vs_font_distance_field_subpixel.bin.h"
#include "fs_font_distance_field_subpixel.bin.h"
+static const bgfx::EmbeddedShader s_embeddedShaders[] =
+{
+ BGFX_EMBEDDED_SHADER(vs_font_basic),
+ BGFX_EMBEDDED_SHADER(fs_font_basic),
+ BGFX_EMBEDDED_SHADER(vs_font_distance_field),
+ BGFX_EMBEDDED_SHADER(fs_font_distance_field),
+ BGFX_EMBEDDED_SHADER(vs_font_distance_field_subpixel),
+ BGFX_EMBEDDED_SHADER(fs_font_distance_field_subpixel),
+
+ BGFX_EMBEDDED_SHADER_END()
+};
+
#define MAX_BUFFERED_CHARACTERS (8192 - 5)
class TextBuffer
@@ -565,70 +579,25 @@ TextBufferManager::TextBufferManager(FontManager* _fontManager)
{
m_textBuffers = new BufferCache[MAX_TEXT_BUFFER_COUNT];
- const bgfx::Memory* vs_font_basic;
- const bgfx::Memory* fs_font_basic;
- const bgfx::Memory* vs_font_distance_field;
- const bgfx::Memory* fs_font_distance_field;
- const bgfx::Memory* vs_font_distance_field_subpixel;
- const bgfx::Memory* fs_font_distance_field_subpixel;
-
- switch (bgfx::getRendererType() )
- {
- case bgfx::RendererType::Direct3D9:
- vs_font_basic = bgfx::makeRef(vs_font_basic_dx9, sizeof(vs_font_basic_dx9) );
- fs_font_basic = bgfx::makeRef(fs_font_basic_dx9, sizeof(fs_font_basic_dx9) );
- vs_font_distance_field = bgfx::makeRef(vs_font_distance_field_dx9, sizeof(vs_font_distance_field_dx9) );
- fs_font_distance_field = bgfx::makeRef(fs_font_distance_field_dx9, sizeof(fs_font_distance_field_dx9) );
- vs_font_distance_field_subpixel = bgfx::makeRef(vs_font_distance_field_subpixel_dx9, sizeof(vs_font_distance_field_subpixel_dx9) );
- fs_font_distance_field_subpixel = bgfx::makeRef(fs_font_distance_field_subpixel_dx9, sizeof(fs_font_distance_field_subpixel_dx9) );
- break;
-
- case bgfx::RendererType::Direct3D11:
- case bgfx::RendererType::Direct3D12:
- vs_font_basic = bgfx::makeRef(vs_font_basic_dx11, sizeof(vs_font_basic_dx11) );
- fs_font_basic = bgfx::makeRef(fs_font_basic_dx11, sizeof(fs_font_basic_dx11) );
- vs_font_distance_field = bgfx::makeRef(vs_font_distance_field_dx11, sizeof(vs_font_distance_field_dx11) );
- fs_font_distance_field = bgfx::makeRef(fs_font_distance_field_dx11, sizeof(fs_font_distance_field_dx11) );
- vs_font_distance_field_subpixel = bgfx::makeRef(vs_font_distance_field_subpixel_dx11, sizeof(vs_font_distance_field_subpixel_dx11) );
- fs_font_distance_field_subpixel = bgfx::makeRef(fs_font_distance_field_subpixel_dx11, sizeof(fs_font_distance_field_subpixel_dx11) );
- break;
-
- case bgfx::RendererType::Metal:
- vs_font_basic = bgfx::makeRef(vs_font_basic_mtl, sizeof(vs_font_basic_mtl) );
- fs_font_basic = bgfx::makeRef(fs_font_basic_mtl, sizeof(fs_font_basic_mtl) );
- vs_font_distance_field = bgfx::makeRef(vs_font_distance_field_mtl, sizeof(vs_font_distance_field_mtl) );
- fs_font_distance_field = bgfx::makeRef(fs_font_distance_field_mtl, sizeof(fs_font_distance_field_mtl) );
- vs_font_distance_field_subpixel = bgfx::makeRef(vs_font_distance_field_subpixel_mtl, sizeof(vs_font_distance_field_subpixel_mtl) );
- fs_font_distance_field_subpixel = bgfx::makeRef(fs_font_distance_field_subpixel_mtl, sizeof(fs_font_distance_field_subpixel_mtl) );
- break;
-
- default:
- vs_font_basic = bgfx::makeRef(vs_font_basic_glsl, sizeof(vs_font_basic_glsl) );
- fs_font_basic = bgfx::makeRef(fs_font_basic_glsl, sizeof(fs_font_basic_glsl) );
- vs_font_distance_field = bgfx::makeRef(vs_font_distance_field_glsl, sizeof(vs_font_distance_field_glsl) );
- fs_font_distance_field = bgfx::makeRef(fs_font_distance_field_glsl, sizeof(fs_font_distance_field_glsl) );
- vs_font_distance_field_subpixel = bgfx::makeRef(vs_font_distance_field_subpixel_glsl, sizeof(vs_font_distance_field_subpixel_glsl) );
- fs_font_distance_field_subpixel = bgfx::makeRef(fs_font_distance_field_subpixel_glsl, sizeof(fs_font_distance_field_subpixel_glsl) );
- break;
- }
+ bgfx::RendererType::Enum type = bgfx::getRendererType();
m_basicProgram = bgfx::createProgram(
- bgfx::createShader(vs_font_basic)
- , bgfx::createShader(fs_font_basic)
- , true
- );
+ bgfx::createEmbeddedShader(s_embeddedShaders, type, "vs_font_basic")
+ , bgfx::createEmbeddedShader(s_embeddedShaders, type, "fs_font_basic")
+ , true
+ );
m_distanceProgram = bgfx::createProgram(
- bgfx::createShader(vs_font_distance_field)
- , bgfx::createShader(fs_font_distance_field)
- , true
- );
+ bgfx::createEmbeddedShader(s_embeddedShaders, type, "vs_font_distance_field")
+ , bgfx::createEmbeddedShader(s_embeddedShaders, type, "fs_font_distance_field")
+ , true
+ );
m_distanceSubpixelProgram = bgfx::createProgram(
- bgfx::createShader(vs_font_distance_field_subpixel)
- , bgfx::createShader(fs_font_distance_field_subpixel)
- , true
- );
+ bgfx::createEmbeddedShader(s_embeddedShaders, type, "vs_font_distance_field_subpixel")
+ , bgfx::createEmbeddedShader(s_embeddedShaders, type, "fs_font_distance_field_subpixel")
+ , true
+ );
m_vertexDecl
.begin()