mirror of
https://github.com/bkaradzic/bgfx.git
synced 2026-02-17 20:52:36 +01:00
Updating embedded shader handling.
This commit is contained in:
@@ -9,10 +9,20 @@
|
||||
#include <bx/uint32_t.h>
|
||||
#include "imgui/imgui.h"
|
||||
|
||||
#include <bgfx/embedded_shader.h>
|
||||
|
||||
// embedded shaders
|
||||
#include "vs_drawstress.bin.h"
|
||||
#include "fs_drawstress.bin.h"
|
||||
|
||||
static const bgfx::EmbeddedShader s_embeddedShaders[] =
|
||||
{
|
||||
BGFX_EMBEDDED_SHADER(vs_drawstress),
|
||||
BGFX_EMBEDDED_SHADER(fs_drawstress),
|
||||
|
||||
BGFX_EMBEDDED_SHADER_END()
|
||||
};
|
||||
|
||||
struct PosColorVertex
|
||||
{
|
||||
float m_x;
|
||||
@@ -113,37 +123,12 @@ class ExampleDrawStress : public entry::AppI
|
||||
// Create vertex stream declaration.
|
||||
PosColorVertex::init();
|
||||
|
||||
const bgfx::Memory* vs_drawstress;
|
||||
const bgfx::Memory* fs_drawstress;
|
||||
|
||||
switch (bgfx::getRendererType() )
|
||||
{
|
||||
case bgfx::RendererType::Direct3D9:
|
||||
vs_drawstress = bgfx::makeRef(vs_drawstress_dx9, sizeof(vs_drawstress_dx9) );
|
||||
fs_drawstress = bgfx::makeRef(fs_drawstress_dx9, sizeof(fs_drawstress_dx9) );
|
||||
break;
|
||||
|
||||
case bgfx::RendererType::Direct3D11:
|
||||
case bgfx::RendererType::Direct3D12:
|
||||
vs_drawstress = bgfx::makeRef(vs_drawstress_dx11, sizeof(vs_drawstress_dx11) );
|
||||
fs_drawstress = bgfx::makeRef(fs_drawstress_dx11, sizeof(fs_drawstress_dx11) );
|
||||
break;
|
||||
|
||||
case bgfx::RendererType::Metal:
|
||||
vs_drawstress = bgfx::makeRef(vs_drawstress_mtl, sizeof(vs_drawstress_mtl) );
|
||||
fs_drawstress = bgfx::makeRef(fs_drawstress_mtl, sizeof(fs_drawstress_mtl) );
|
||||
break;
|
||||
|
||||
default:
|
||||
vs_drawstress = bgfx::makeRef(vs_drawstress_glsl, sizeof(vs_drawstress_glsl) );
|
||||
fs_drawstress = bgfx::makeRef(fs_drawstress_glsl, sizeof(fs_drawstress_glsl) );
|
||||
break;
|
||||
}
|
||||
bgfx::RendererType::Enum type = bgfx::getRendererType();
|
||||
|
||||
// Create program from shaders.
|
||||
m_program = bgfx::createProgram(
|
||||
bgfx::createShader(vs_drawstress)
|
||||
, bgfx::createShader(fs_drawstress)
|
||||
bgfx::createEmbeddedShader(s_embeddedShaders, type, "vs_drawstress")
|
||||
, bgfx::createEmbeddedShader(s_embeddedShaders, type, "fs_drawstress")
|
||||
, true /* destroy shaders when program is destroyed */
|
||||
);
|
||||
|
||||
|
||||
Reference in New Issue
Block a user