mirror of
https://github.com/scratchfoundation/bgfx.git
synced 2024-11-24 16:48:18 -05:00
Embedded shaders and font into 17-drawstress.
This commit is contained in:
parent
35f895adb3
commit
2c05b90792
20 changed files with 12152 additions and 120 deletions
|
@ -14,6 +14,13 @@
|
||||||
#include <stdio.h>
|
#include <stdio.h>
|
||||||
#include <string.h>
|
#include <string.h>
|
||||||
|
|
||||||
|
// embedded shaders
|
||||||
|
#include "vs_drawstress.bin.h"
|
||||||
|
#include "fs_drawstress.bin.h"
|
||||||
|
|
||||||
|
// embedded font
|
||||||
|
#include "droidsans.ttf.h"
|
||||||
|
|
||||||
struct PosColorVertex
|
struct PosColorVertex
|
||||||
{
|
{
|
||||||
float m_x;
|
float m_x;
|
||||||
|
@ -52,48 +59,6 @@ static const uint16_t s_cubeIndices[36] =
|
||||||
6, 3, 7,
|
6, 3, 7,
|
||||||
};
|
};
|
||||||
|
|
||||||
static const char* s_shaderPath = NULL;
|
|
||||||
|
|
||||||
static void shaderFilePath(char* _out, const char* _name)
|
|
||||||
{
|
|
||||||
strcpy(_out, s_shaderPath);
|
|
||||||
strcat(_out, _name);
|
|
||||||
strcat(_out, ".bin");
|
|
||||||
}
|
|
||||||
|
|
||||||
long int fsize(FILE* _file)
|
|
||||||
{
|
|
||||||
long int pos = ftell(_file);
|
|
||||||
fseek(_file, 0L, SEEK_END);
|
|
||||||
long int size = ftell(_file);
|
|
||||||
fseek(_file, pos, SEEK_SET);
|
|
||||||
return size;
|
|
||||||
}
|
|
||||||
|
|
||||||
static const bgfx::Memory* load(const char* _filePath)
|
|
||||||
{
|
|
||||||
FILE* file = fopen(_filePath, "rb");
|
|
||||||
if (NULL != file)
|
|
||||||
{
|
|
||||||
uint32_t size = (uint32_t)fsize(file);
|
|
||||||
const bgfx::Memory* mem = bgfx::alloc(size+1);
|
|
||||||
size_t ignore = fread(mem->data, 1, size, file);
|
|
||||||
BX_UNUSED(ignore);
|
|
||||||
fclose(file);
|
|
||||||
mem->data[mem->size-1] = '\0';
|
|
||||||
return mem;
|
|
||||||
}
|
|
||||||
|
|
||||||
return NULL;
|
|
||||||
}
|
|
||||||
|
|
||||||
static const bgfx::Memory* loadShader(const char* _name)
|
|
||||||
{
|
|
||||||
char filePath[512];
|
|
||||||
shaderFilePath(filePath, _name);
|
|
||||||
return load(filePath);
|
|
||||||
}
|
|
||||||
|
|
||||||
int _main_(int /*_argc*/, char** /*_argv*/)
|
int _main_(int /*_argc*/, char** /*_argv*/)
|
||||||
{
|
{
|
||||||
uint32_t width = 1280;
|
uint32_t width = 1280;
|
||||||
|
@ -115,35 +80,39 @@ int _main_(int /*_argc*/, char** /*_argv*/)
|
||||||
, 0
|
, 0
|
||||||
);
|
);
|
||||||
|
|
||||||
// Setup root path for binary shaders. Shader binaries are different
|
|
||||||
// for each renderer.
|
|
||||||
switch (bgfx::getRendererType() )
|
|
||||||
{
|
|
||||||
default:
|
|
||||||
case bgfx::RendererType::Direct3D9:
|
|
||||||
s_shaderPath = "shaders/dx9/";
|
|
||||||
break;
|
|
||||||
|
|
||||||
case bgfx::RendererType::Direct3D11:
|
|
||||||
s_shaderPath = "shaders/dx11/";
|
|
||||||
break;
|
|
||||||
|
|
||||||
case bgfx::RendererType::OpenGL:
|
|
||||||
s_shaderPath = "shaders/glsl/";
|
|
||||||
break;
|
|
||||||
|
|
||||||
case bgfx::RendererType::OpenGLES2:
|
|
||||||
case bgfx::RendererType::OpenGLES3:
|
|
||||||
s_shaderPath = "shaders/gles/";
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
|
|
||||||
// Create vertex stream declaration.
|
// Create vertex stream declaration.
|
||||||
s_PosColorDecl.begin();
|
s_PosColorDecl.begin();
|
||||||
s_PosColorDecl.add(bgfx::Attrib::Position, 3, bgfx::AttribType::Float);
|
s_PosColorDecl.add(bgfx::Attrib::Position, 3, bgfx::AttribType::Float);
|
||||||
s_PosColorDecl.add(bgfx::Attrib::Color0, 4, bgfx::AttribType::Uint8, true);
|
s_PosColorDecl.add(bgfx::Attrib::Color0, 4, bgfx::AttribType::Uint8, true);
|
||||||
s_PosColorDecl.end();
|
s_PosColorDecl.end();
|
||||||
|
|
||||||
|
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:
|
||||||
|
vs_drawstress = bgfx::makeRef(vs_drawstress_dx11, sizeof(vs_drawstress_dx11) );
|
||||||
|
fs_drawstress = bgfx::makeRef(fs_drawstress_dx11, sizeof(fs_drawstress_dx11) );
|
||||||
|
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::VertexShaderHandle vsh = bgfx::createVertexShader(vs_drawstress);
|
||||||
|
bgfx::FragmentShaderHandle fsh = bgfx::createFragmentShader(fs_drawstress);
|
||||||
|
|
||||||
|
// Create program from shaders.
|
||||||
|
bgfx::ProgramHandle program = bgfx::createProgram(vsh, fsh);
|
||||||
|
|
||||||
const bgfx::Memory* mem;
|
const bgfx::Memory* mem;
|
||||||
|
|
||||||
// Create static vertex buffer.
|
// Create static vertex buffer.
|
||||||
|
@ -154,17 +123,6 @@ int _main_(int /*_argc*/, char** /*_argv*/)
|
||||||
mem = bgfx::makeRef(s_cubeIndices, sizeof(s_cubeIndices) );
|
mem = bgfx::makeRef(s_cubeIndices, sizeof(s_cubeIndices) );
|
||||||
bgfx::IndexBufferHandle ibh = bgfx::createIndexBuffer(mem);
|
bgfx::IndexBufferHandle ibh = bgfx::createIndexBuffer(mem);
|
||||||
|
|
||||||
// Load vertex shader.
|
|
||||||
mem = loadShader("vs_drawstress");
|
|
||||||
bgfx::VertexShaderHandle vsh = bgfx::createVertexShader(mem);
|
|
||||||
|
|
||||||
// Load fragment shader.
|
|
||||||
mem = loadShader("fs_drawstress");
|
|
||||||
bgfx::FragmentShaderHandle fsh = bgfx::createFragmentShader(mem);
|
|
||||||
|
|
||||||
// Create program from shaders.
|
|
||||||
bgfx::ProgramHandle program = bgfx::createProgram(vsh, fsh);
|
|
||||||
|
|
||||||
// We can destroy vertex and fragment shader here since
|
// We can destroy vertex and fragment shader here since
|
||||||
// their reference is kept inside bgfx after calling createProgram.
|
// their reference is kept inside bgfx after calling createProgram.
|
||||||
// Vertex and fragment shader will be destroyed once program is
|
// Vertex and fragment shader will be destroyed once program is
|
||||||
|
@ -172,16 +130,7 @@ int _main_(int /*_argc*/, char** /*_argv*/)
|
||||||
bgfx::destroyVertexShader(vsh);
|
bgfx::destroyVertexShader(vsh);
|
||||||
bgfx::destroyFragmentShader(fsh);
|
bgfx::destroyFragmentShader(fsh);
|
||||||
|
|
||||||
FILE* file = fopen("font/droidsans.ttf", "rb");
|
imguiCreate(s_droidSansTtf, sizeof(s_droidSansTtf) );
|
||||||
uint32_t size = (uint32_t)fsize(file);
|
|
||||||
void* data = malloc(size);
|
|
||||||
size_t ignore = fread(data, 1, size, file);
|
|
||||||
BX_UNUSED(ignore);
|
|
||||||
fclose(file);
|
|
||||||
|
|
||||||
imguiCreate(data, size);
|
|
||||||
|
|
||||||
free(data);
|
|
||||||
|
|
||||||
bool autoAdjust = true;
|
bool autoAdjust = true;
|
||||||
int32_t scrollArea = 0;
|
int32_t scrollArea = 0;
|
||||||
|
|
11889
examples/17-drawstress/droidsans.ttf.h
Normal file
11889
examples/17-drawstress/droidsans.ttf.h
Normal file
File diff suppressed because it is too large
Load diff
58
examples/17-drawstress/fs_drawstress.bin.h
Normal file
58
examples/17-drawstress/fs_drawstress.bin.h
Normal file
|
@ -0,0 +1,58 @@
|
||||||
|
static const uint8_t fs_drawstress_glsl[130] =
|
||||||
|
{
|
||||||
|
0x46, 0x53, 0x48, 0x01, 0xa4, 0x8b, 0xef, 0x49, 0x23, 0x69, 0x66, 0x64, 0x65, 0x66, 0x20, 0x47, // FSH....I#ifdef G
|
||||||
|
0x4c, 0x5f, 0x45, 0x53, 0x0a, 0x70, 0x72, 0x65, 0x63, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x20, 0x68, // L_ES.precision h
|
||||||
|
0x69, 0x67, 0x68, 0x70, 0x20, 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x3b, 0x0a, 0x23, 0x65, 0x6e, 0x64, // ighp float;.#end
|
||||||
|
0x69, 0x66, 0x20, 0x2f, 0x2f, 0x20, 0x47, 0x4c, 0x5f, 0x45, 0x53, 0x0a, 0x0a, 0x76, 0x61, 0x72, // if // GL_ES..var
|
||||||
|
0x79, 0x69, 0x6e, 0x67, 0x20, 0x76, 0x65, 0x63, 0x34, 0x20, 0x76, 0x5f, 0x63, 0x6f, 0x6c, 0x6f, // ying vec4 v_colo
|
||||||
|
0x72, 0x30, 0x3b, 0x0a, 0x76, 0x6f, 0x69, 0x64, 0x20, 0x6d, 0x61, 0x69, 0x6e, 0x20, 0x28, 0x29, // r0;.void main ()
|
||||||
|
0x0a, 0x7b, 0x0a, 0x20, 0x20, 0x67, 0x6c, 0x5f, 0x46, 0x72, 0x61, 0x67, 0x43, 0x6f, 0x6c, 0x6f, // .{. gl_FragColo
|
||||||
|
0x72, 0x20, 0x3d, 0x20, 0x76, 0x5f, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x30, 0x3b, 0x0a, 0x7d, 0x0a, // r = v_color0;.}.
|
||||||
|
0x0a, 0x00, // ..
|
||||||
|
};
|
||||||
|
static const uint8_t fs_drawstress_dx9[137] =
|
||||||
|
{
|
||||||
|
0x46, 0x53, 0x48, 0x01, 0xa4, 0x8b, 0xef, 0x49, 0x00, 0x00, 0x7c, 0x00, 0x00, 0x03, 0xff, 0xff, // FSH....I..|.....
|
||||||
|
0xfe, 0xff, 0x16, 0x00, 0x43, 0x54, 0x41, 0x42, 0x1c, 0x00, 0x00, 0x00, 0x23, 0x00, 0x00, 0x00, // ....CTAB....#...
|
||||||
|
0x00, 0x03, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x81, 0x00, 0x00, // ................
|
||||||
|
0x1c, 0x00, 0x00, 0x00, 0x70, 0x73, 0x5f, 0x33, 0x5f, 0x30, 0x00, 0x4d, 0x69, 0x63, 0x72, 0x6f, // ....ps_3_0.Micro
|
||||||
|
0x73, 0x6f, 0x66, 0x74, 0x20, 0x28, 0x52, 0x29, 0x20, 0x48, 0x4c, 0x53, 0x4c, 0x20, 0x53, 0x68, // soft (R) HLSL Sh
|
||||||
|
0x61, 0x64, 0x65, 0x72, 0x20, 0x43, 0x6f, 0x6d, 0x70, 0x69, 0x6c, 0x65, 0x72, 0x20, 0x39, 0x2e, // ader Compiler 9.
|
||||||
|
0x32, 0x39, 0x2e, 0x39, 0x35, 0x32, 0x2e, 0x33, 0x31, 0x31, 0x31, 0x00, 0x1f, 0x00, 0x00, 0x02, // 29.952.3111.....
|
||||||
|
0x0a, 0x00, 0x00, 0x80, 0x00, 0x00, 0x0f, 0x90, 0x01, 0x00, 0x00, 0x02, 0x00, 0x08, 0x0f, 0x80, // ................
|
||||||
|
0x00, 0x00, 0xe4, 0x90, 0xff, 0xff, 0x00, 0x00, 0x00, // .........
|
||||||
|
};
|
||||||
|
static const uint8_t fs_drawstress_dx11[494] =
|
||||||
|
{
|
||||||
|
0x46, 0x53, 0x48, 0x01, 0xa4, 0x8b, 0xef, 0x49, 0x00, 0x00, 0x00, 0xff, 0x00, 0x00, 0x00, 0x00, // FSH....I........
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xd0, 0x01, 0x44, 0x58, 0x42, // .............DXB
|
||||||
|
0x43, 0xa9, 0x98, 0xd1, 0xdb, 0x4a, 0xa2, 0x9c, 0xfe, 0x9c, 0xf1, 0xe4, 0xd0, 0x2c, 0xa5, 0xd6, // C....J.......,..
|
||||||
|
0xb6, 0x01, 0x00, 0x00, 0x00, 0xd0, 0x01, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 0x34, 0x00, 0x00, // .............4..
|
||||||
|
0x00, 0x8c, 0x00, 0x00, 0x00, 0xe0, 0x00, 0x00, 0x00, 0x14, 0x01, 0x00, 0x00, 0x54, 0x01, 0x00, // .............T..
|
||||||
|
0x00, 0x52, 0x44, 0x45, 0x46, 0x50, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // .RDEFP..........
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x1c, 0x00, 0x00, 0x00, 0x00, 0x04, 0xff, 0xff, 0x00, 0x91, 0x00, // ................
|
||||||
|
0x00, 0x1c, 0x00, 0x00, 0x00, 0x4d, 0x69, 0x63, 0x72, 0x6f, 0x73, 0x6f, 0x66, 0x74, 0x20, 0x28, // .....Microsoft (
|
||||||
|
0x52, 0x29, 0x20, 0x48, 0x4c, 0x53, 0x4c, 0x20, 0x53, 0x68, 0x61, 0x64, 0x65, 0x72, 0x20, 0x43, // R) HLSL Shader C
|
||||||
|
0x6f, 0x6d, 0x70, 0x69, 0x6c, 0x65, 0x72, 0x20, 0x39, 0x2e, 0x32, 0x39, 0x2e, 0x39, 0x35, 0x32, // ompiler 9.29.952
|
||||||
|
0x2e, 0x33, 0x31, 0x31, 0x31, 0x00, 0xab, 0xab, 0xab, 0x49, 0x53, 0x47, 0x4e, 0x4c, 0x00, 0x00, // .3111....ISGNL..
|
||||||
|
0x00, 0x02, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x38, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // .........8......
|
||||||
|
0x00, 0x01, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0f, 0x00, 0x00, // ................
|
||||||
|
0x00, 0x44, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, // .D..............
|
||||||
|
0x00, 0x01, 0x00, 0x00, 0x00, 0x0f, 0x0f, 0x00, 0x00, 0x53, 0x56, 0x5f, 0x50, 0x4f, 0x53, 0x49, // .........SV_POSI
|
||||||
|
0x54, 0x49, 0x4f, 0x4e, 0x00, 0x43, 0x4f, 0x4c, 0x4f, 0x52, 0x00, 0xab, 0xab, 0x4f, 0x53, 0x47, // TION.COLOR...OSG
|
||||||
|
0x4e, 0x2c, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, // N,........... ..
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // ................
|
||||||
|
0x00, 0x0f, 0x00, 0x00, 0x00, 0x53, 0x56, 0x5f, 0x54, 0x41, 0x52, 0x47, 0x45, 0x54, 0x00, 0xab, // .....SV_TARGET..
|
||||||
|
0xab, 0x53, 0x48, 0x44, 0x52, 0x38, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, 0x0e, 0x00, 0x00, // .SHDR8...@......
|
||||||
|
0x00, 0x62, 0x10, 0x00, 0x03, 0xf2, 0x10, 0x10, 0x00, 0x01, 0x00, 0x00, 0x00, 0x65, 0x00, 0x00, // .b...........e..
|
||||||
|
0x03, 0xf2, 0x20, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x36, 0x00, 0x00, 0x05, 0xf2, 0x20, 0x10, // .. ......6.... .
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x46, 0x1e, 0x10, 0x00, 0x01, 0x00, 0x00, 0x00, 0x3e, 0x00, 0x00, // .....F.......>..
|
||||||
|
0x01, 0x53, 0x54, 0x41, 0x54, 0x74, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // .STATt..........
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // ................
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // ................
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // ................
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // ................
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // ................
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // ................
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // ..............
|
||||||
|
};
|
|
@ -3,15 +3,8 @@
|
||||||
# License: http://www.opensource.org/licenses/BSD-2-Clause
|
# License: http://www.opensource.org/licenses/BSD-2-Clause
|
||||||
#
|
#
|
||||||
|
|
||||||
BGFX_DIR=../..
|
include ../../premake/shader-embeded.mk
|
||||||
RUNTIME_DIR=$(BGFX_DIR)/examples/runtime
|
|
||||||
BUILD_DIR=../../.build
|
|
||||||
|
|
||||||
include $(BGFX_DIR)/premake/shader.mk
|
|
||||||
|
|
||||||
rebuild:
|
rebuild:
|
||||||
@make -s --no-print-directory TARGET=0 clean all
|
@make -s --no-print-directory clean all
|
||||||
@make -s --no-print-directory TARGET=1 clean all
|
@bin2c -c --name s_droidSansTtf ../runtime/font/droidsans.ttf > droidsans.ttf.h
|
||||||
@make -s --no-print-directory TARGET=2 clean all
|
|
||||||
@make -s --no-print-directory TARGET=3 clean all
|
|
||||||
@make -s --no-print-directory TARGET=4 clean all
|
|
||||||
|
|
126
examples/17-drawstress/vs_drawstress.bin.h
Normal file
126
examples/17-drawstress/vs_drawstress.bin.h
Normal file
|
@ -0,0 +1,126 @@
|
||||||
|
static const uint8_t vs_drawstress_glsl[320] =
|
||||||
|
{
|
||||||
|
0x56, 0x53, 0x48, 0x01, 0xa4, 0x8b, 0xef, 0x49, 0x23, 0x69, 0x66, 0x64, 0x65, 0x66, 0x20, 0x47, // VSH....I#ifdef G
|
||||||
|
0x4c, 0x5f, 0x45, 0x53, 0x0a, 0x70, 0x72, 0x65, 0x63, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x20, 0x68, // L_ES.precision h
|
||||||
|
0x69, 0x67, 0x68, 0x70, 0x20, 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x3b, 0x0a, 0x23, 0x65, 0x6e, 0x64, // ighp float;.#end
|
||||||
|
0x69, 0x66, 0x20, 0x2f, 0x2f, 0x20, 0x47, 0x4c, 0x5f, 0x45, 0x53, 0x0a, 0x0a, 0x75, 0x6e, 0x69, // if // GL_ES..uni
|
||||||
|
0x66, 0x6f, 0x72, 0x6d, 0x20, 0x6d, 0x61, 0x74, 0x34, 0x20, 0x75, 0x5f, 0x6d, 0x6f, 0x64, 0x65, // form mat4 u_mode
|
||||||
|
0x6c, 0x56, 0x69, 0x65, 0x77, 0x50, 0x72, 0x6f, 0x6a, 0x3b, 0x0a, 0x76, 0x61, 0x72, 0x79, 0x69, // lViewProj;.varyi
|
||||||
|
0x6e, 0x67, 0x20, 0x76, 0x65, 0x63, 0x34, 0x20, 0x76, 0x5f, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x30, // ng vec4 v_color0
|
||||||
|
0x3b, 0x0a, 0x61, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x20, 0x76, 0x65, 0x63, 0x33, // ;.attribute vec3
|
||||||
|
0x20, 0x61, 0x5f, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x3b, 0x0a, 0x61, 0x74, 0x74, // a_position;.att
|
||||||
|
0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x20, 0x76, 0x65, 0x63, 0x34, 0x20, 0x61, 0x5f, 0x63, 0x6f, // ribute vec4 a_co
|
||||||
|
0x6c, 0x6f, 0x72, 0x30, 0x3b, 0x0a, 0x76, 0x6f, 0x69, 0x64, 0x20, 0x6d, 0x61, 0x69, 0x6e, 0x20, // lor0;.void main
|
||||||
|
0x28, 0x29, 0x0a, 0x7b, 0x0a, 0x20, 0x20, 0x76, 0x65, 0x63, 0x34, 0x20, 0x74, 0x6d, 0x70, 0x76, // ().{. vec4 tmpv
|
||||||
|
0x61, 0x72, 0x5f, 0x31, 0x3b, 0x0a, 0x20, 0x20, 0x74, 0x6d, 0x70, 0x76, 0x61, 0x72, 0x5f, 0x31, // ar_1;. tmpvar_1
|
||||||
|
0x2e, 0x77, 0x20, 0x3d, 0x20, 0x31, 0x2e, 0x30, 0x3b, 0x0a, 0x20, 0x20, 0x74, 0x6d, 0x70, 0x76, // .w = 1.0;. tmpv
|
||||||
|
0x61, 0x72, 0x5f, 0x31, 0x2e, 0x78, 0x79, 0x7a, 0x20, 0x3d, 0x20, 0x61, 0x5f, 0x70, 0x6f, 0x73, // ar_1.xyz = a_pos
|
||||||
|
0x69, 0x74, 0x69, 0x6f, 0x6e, 0x3b, 0x0a, 0x20, 0x20, 0x67, 0x6c, 0x5f, 0x50, 0x6f, 0x73, 0x69, // ition;. gl_Posi
|
||||||
|
0x74, 0x69, 0x6f, 0x6e, 0x20, 0x3d, 0x20, 0x28, 0x75, 0x5f, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x56, // tion = (u_modelV
|
||||||
|
0x69, 0x65, 0x77, 0x50, 0x72, 0x6f, 0x6a, 0x20, 0x2a, 0x20, 0x74, 0x6d, 0x70, 0x76, 0x61, 0x72, // iewProj * tmpvar
|
||||||
|
0x5f, 0x31, 0x29, 0x3b, 0x0a, 0x20, 0x20, 0x76, 0x5f, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x30, 0x20, // _1);. v_color0
|
||||||
|
0x3d, 0x20, 0x61, 0x5f, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x30, 0x3b, 0x0a, 0x7d, 0x0a, 0x0a, 0x00, // = a_color0;.}...
|
||||||
|
};
|
||||||
|
static const uint8_t vs_drawstress_dx9[319] =
|
||||||
|
{
|
||||||
|
0x56, 0x53, 0x48, 0x01, 0xa4, 0x8b, 0xef, 0x49, 0x01, 0x00, 0x0f, 0x75, 0x5f, 0x6d, 0x6f, 0x64, // VSH....I...u_mod
|
||||||
|
0x65, 0x6c, 0x56, 0x69, 0x65, 0x77, 0x50, 0x72, 0x6f, 0x6a, 0x09, 0x01, 0x00, 0x00, 0x04, 0x00, // elViewProj......
|
||||||
|
0x1c, 0x01, 0x00, 0x03, 0xfe, 0xff, 0xfe, 0xff, 0x23, 0x00, 0x43, 0x54, 0x41, 0x42, 0x1c, 0x00, // ........#.CTAB..
|
||||||
|
0x00, 0x00, 0x57, 0x00, 0x00, 0x00, 0x00, 0x03, 0xfe, 0xff, 0x01, 0x00, 0x00, 0x00, 0x1c, 0x00, // ..W.............
|
||||||
|
0x00, 0x00, 0x00, 0x81, 0x00, 0x00, 0x50, 0x00, 0x00, 0x00, 0x30, 0x00, 0x00, 0x00, 0x02, 0x00, // ......P...0.....
|
||||||
|
0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x75, 0x5f, // ......@.......u_
|
||||||
|
0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x56, 0x69, 0x65, 0x77, 0x50, 0x72, 0x6f, 0x6a, 0x00, 0x03, 0x00, // modelViewProj...
|
||||||
|
0x03, 0x00, 0x04, 0x00, 0x04, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x76, 0x73, // ..............vs
|
||||||
|
0x5f, 0x33, 0x5f, 0x30, 0x00, 0x4d, 0x69, 0x63, 0x72, 0x6f, 0x73, 0x6f, 0x66, 0x74, 0x20, 0x28, // _3_0.Microsoft (
|
||||||
|
0x52, 0x29, 0x20, 0x48, 0x4c, 0x53, 0x4c, 0x20, 0x53, 0x68, 0x61, 0x64, 0x65, 0x72, 0x20, 0x43, // R) HLSL Shader C
|
||||||
|
0x6f, 0x6d, 0x70, 0x69, 0x6c, 0x65, 0x72, 0x20, 0x39, 0x2e, 0x32, 0x39, 0x2e, 0x39, 0x35, 0x32, // ompiler 9.29.952
|
||||||
|
0x2e, 0x33, 0x31, 0x31, 0x31, 0x00, 0x1f, 0x00, 0x00, 0x02, 0x0a, 0x00, 0x00, 0x80, 0x00, 0x00, // .3111...........
|
||||||
|
0x0f, 0x90, 0x1f, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x80, 0x01, 0x00, 0x0f, 0x90, 0x1f, 0x00, // ................
|
||||||
|
0x00, 0x02, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x0f, 0xe0, 0x1f, 0x00, 0x00, 0x02, 0x0a, 0x00, // ................
|
||||||
|
0x00, 0x80, 0x01, 0x00, 0x0f, 0xe0, 0x05, 0x00, 0x00, 0x03, 0x00, 0x00, 0x0f, 0x80, 0x01, 0x00, // ................
|
||||||
|
0xe4, 0xa0, 0x01, 0x00, 0x55, 0x90, 0x04, 0x00, 0x00, 0x04, 0x00, 0x00, 0x0f, 0x80, 0x00, 0x00, // ....U...........
|
||||||
|
0xe4, 0xa0, 0x01, 0x00, 0x00, 0x90, 0x00, 0x00, 0xe4, 0x80, 0x04, 0x00, 0x00, 0x04, 0x00, 0x00, // ................
|
||||||
|
0x0f, 0x80, 0x02, 0x00, 0xe4, 0xa0, 0x01, 0x00, 0xaa, 0x90, 0x00, 0x00, 0xe4, 0x80, 0x02, 0x00, // ................
|
||||||
|
0x00, 0x03, 0x00, 0x00, 0x0f, 0xe0, 0x00, 0x00, 0xe4, 0x80, 0x03, 0x00, 0xe4, 0xa0, 0x01, 0x00, // ................
|
||||||
|
0x00, 0x02, 0x01, 0x00, 0x0f, 0xe0, 0x00, 0x00, 0xe4, 0x90, 0xff, 0xff, 0x00, 0x00, 0x00, // ...............
|
||||||
|
};
|
||||||
|
static const uint8_t vs_drawstress_dx11[1232] =
|
||||||
|
{
|
||||||
|
0x56, 0x53, 0x48, 0x01, 0xa4, 0x8b, 0xef, 0x49, 0xff, 0x00, 0x00, 0xff, 0x00, 0x00, 0x00, 0x00, // VSH....I........
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0xb0, 0x09, 0x0f, 0x75, 0x5f, 0x6d, 0x6f, // ............u_mo
|
||||||
|
0x64, 0x65, 0x6c, 0x56, 0x69, 0x65, 0x77, 0x50, 0x72, 0x6f, 0x6a, 0x09, 0x00, 0xe0, 0x08, 0x04, // delViewProj.....
|
||||||
|
0x00, 0x9c, 0x04, 0x44, 0x58, 0x42, 0x43, 0x28, 0xef, 0x2e, 0x21, 0x92, 0x96, 0x19, 0x3a, 0x9c, // ...DXBC(..!...:.
|
||||||
|
0xc4, 0xe5, 0xc7, 0x19, 0xe5, 0xbf, 0xc1, 0x01, 0x00, 0x00, 0x00, 0x9c, 0x04, 0x00, 0x00, 0x05, // ................
|
||||||
|
0x00, 0x00, 0x00, 0x34, 0x00, 0x00, 0x00, 0x78, 0x02, 0x00, 0x00, 0xc8, 0x02, 0x00, 0x00, 0x1c, // ...4...x........
|
||||||
|
0x03, 0x00, 0x00, 0x20, 0x04, 0x00, 0x00, 0x52, 0x44, 0x45, 0x46, 0x3c, 0x02, 0x00, 0x00, 0x01, // ... ...RDEF<....
|
||||||
|
0x00, 0x00, 0x00, 0x48, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x1c, 0x00, 0x00, 0x00, 0x00, // ...H............
|
||||||
|
0x04, 0xfe, 0xff, 0x00, 0x91, 0x00, 0x00, 0x08, 0x02, 0x00, 0x00, 0x3c, 0x00, 0x00, 0x00, 0x00, // ...........<....
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // ................
|
||||||
|
0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x24, 0x47, 0x6c, 0x6f, 0x62, // ...........$Glob
|
||||||
|
0x61, 0x6c, 0x73, 0x00, 0xab, 0xab, 0xab, 0x3c, 0x00, 0x00, 0x00, 0x0a, 0x00, 0x00, 0x00, 0x60, // als....<.......`
|
||||||
|
0x00, 0x00, 0x00, 0xb0, 0x09, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x50, // ...............P
|
||||||
|
0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x5c, // ................
|
||||||
|
0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x6c, 0x01, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x10, // .......l........
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x5c, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x78, // ...............x
|
||||||
|
0x01, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, // ... ...@........
|
||||||
|
0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x90, 0x01, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x40, // ...........`...@
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x9b, // ................
|
||||||
|
0x01, 0x00, 0x00, 0xa0, 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xa4, // ................
|
||||||
|
0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xb4, 0x01, 0x00, 0x00, 0xa0, 0x08, 0x00, 0x00, 0x40, // ...............@
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, // ................
|
||||||
|
0x01, 0x00, 0x00, 0xe0, 0x08, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x80, // .......@........
|
||||||
|
0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xd0, 0x01, 0x00, 0x00, 0x20, 0x09, 0x00, 0x00, 0x40, // ........... ...@
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe1, // ................
|
||||||
|
0x01, 0x00, 0x00, 0x60, 0x09, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, // ...`...@........
|
||||||
|
0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xed, 0x01, 0x00, 0x00, 0xa0, 0x09, 0x00, 0x00, 0x04, // ................
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf8, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x75, // ...............u
|
||||||
|
0x5f, 0x76, 0x69, 0x65, 0x77, 0x52, 0x65, 0x63, 0x74, 0x00, 0xab, 0x01, 0x00, 0x03, 0x00, 0x01, // _viewRect.......
|
||||||
|
0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x75, 0x5f, 0x76, 0x69, 0x65, // ...........u_vie
|
||||||
|
0x77, 0x54, 0x65, 0x78, 0x65, 0x6c, 0x00, 0x75, 0x5f, 0x76, 0x69, 0x65, 0x77, 0x00, 0xab, 0x03, // wTexel.u_view...
|
||||||
|
0x00, 0x03, 0x00, 0x04, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x75, // ...............u
|
||||||
|
0x5f, 0x76, 0x69, 0x65, 0x77, 0x50, 0x72, 0x6f, 0x6a, 0x00, 0x75, 0x5f, 0x6d, 0x6f, 0x64, 0x65, // _viewProj.u_mode
|
||||||
|
0x6c, 0x00, 0xab, 0x03, 0x00, 0x03, 0x00, 0x04, 0x00, 0x04, 0x00, 0x20, 0x00, 0x00, 0x00, 0x00, // l.......... ....
|
||||||
|
0x00, 0x00, 0x00, 0x75, 0x5f, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x56, 0x69, 0x65, 0x77, 0x00, 0x75, // ...u_modelView.u
|
||||||
|
0x5f, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x56, 0x69, 0x65, 0x77, 0x50, 0x72, 0x6f, 0x6a, 0x00, 0x75, // _modelViewProj.u
|
||||||
|
0x5f, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x56, 0x69, 0x65, 0x77, 0x50, 0x72, 0x6f, 0x6a, 0x58, 0x00, // _modelViewProjX.
|
||||||
|
0x75, 0x5f, 0x76, 0x69, 0x65, 0x77, 0x50, 0x72, 0x6f, 0x6a, 0x58, 0x00, 0x75, 0x5f, 0x61, 0x6c, // u_viewProjX.u_al
|
||||||
|
0x70, 0x68, 0x61, 0x52, 0x65, 0x66, 0x00, 0x00, 0x00, 0x03, 0x00, 0x01, 0x00, 0x01, 0x00, 0x00, // phaRef..........
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x4d, 0x69, 0x63, 0x72, 0x6f, 0x73, 0x6f, 0x66, 0x74, // .......Microsoft
|
||||||
|
0x20, 0x28, 0x52, 0x29, 0x20, 0x48, 0x4c, 0x53, 0x4c, 0x20, 0x53, 0x68, 0x61, 0x64, 0x65, 0x72, // (R) HLSL Shader
|
||||||
|
0x20, 0x43, 0x6f, 0x6d, 0x70, 0x69, 0x6c, 0x65, 0x72, 0x20, 0x39, 0x2e, 0x32, 0x39, 0x2e, 0x39, // Compiler 9.29.9
|
||||||
|
0x35, 0x32, 0x2e, 0x33, 0x31, 0x31, 0x31, 0x00, 0xab, 0xab, 0xab, 0x49, 0x53, 0x47, 0x4e, 0x48, // 52.3111....ISGNH
|
||||||
|
0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x38, 0x00, 0x00, 0x00, 0x00, // ...........8....
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0f, // ................
|
||||||
|
0x0f, 0x00, 0x00, 0x3e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, // ...>............
|
||||||
|
0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x07, 0x07, 0x00, 0x00, 0x43, 0x4f, 0x4c, 0x4f, 0x52, // ...........COLOR
|
||||||
|
0x00, 0x50, 0x4f, 0x53, 0x49, 0x54, 0x49, 0x4f, 0x4e, 0x00, 0xab, 0x4f, 0x53, 0x47, 0x4e, 0x4c, // .POSITION..OSGNL
|
||||||
|
0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x38, 0x00, 0x00, 0x00, 0x00, // ...........8....
|
||||||
|
0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0f, // ................
|
||||||
|
0x00, 0x00, 0x00, 0x44, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, // ...D............
|
||||||
|
0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x0f, 0x00, 0x00, 0x00, 0x53, 0x56, 0x5f, 0x50, 0x4f, // ...........SV_PO
|
||||||
|
0x53, 0x49, 0x54, 0x49, 0x4f, 0x4e, 0x00, 0x43, 0x4f, 0x4c, 0x4f, 0x52, 0x00, 0xab, 0xab, 0x53, // SITION.COLOR...S
|
||||||
|
0x48, 0x44, 0x52, 0xfc, 0x00, 0x00, 0x00, 0x40, 0x00, 0x01, 0x00, 0x3f, 0x00, 0x00, 0x00, 0x59, // HDR....@...?...Y
|
||||||
|
0x00, 0x00, 0x04, 0x46, 0x8e, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x92, 0x00, 0x00, 0x00, 0x5f, // ...F. ........._
|
||||||
|
0x00, 0x00, 0x03, 0xf2, 0x10, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x5f, 0x00, 0x00, 0x03, 0x72, // ..........._...r
|
||||||
|
0x10, 0x10, 0x00, 0x01, 0x00, 0x00, 0x00, 0x67, 0x00, 0x00, 0x04, 0xf2, 0x20, 0x10, 0x00, 0x00, // .......g.... ...
|
||||||
|
0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x65, 0x00, 0x00, 0x03, 0xf2, 0x20, 0x10, 0x00, 0x01, // .......e.... ...
|
||||||
|
0x00, 0x00, 0x00, 0x68, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x00, 0x38, 0x00, 0x00, 0x08, 0xf2, // ...h.......8....
|
||||||
|
0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x56, 0x15, 0x10, 0x00, 0x01, 0x00, 0x00, 0x00, 0x46, // .......V.......F
|
||||||
|
0x8e, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x8f, 0x00, 0x00, 0x00, 0x32, 0x00, 0x00, 0x0a, 0xf2, // . .........2....
|
||||||
|
0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x46, 0x8e, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x8e, // .......F. ......
|
||||||
|
0x00, 0x00, 0x00, 0x06, 0x10, 0x10, 0x00, 0x01, 0x00, 0x00, 0x00, 0x46, 0x0e, 0x10, 0x00, 0x00, // ...........F....
|
||||||
|
0x00, 0x00, 0x00, 0x32, 0x00, 0x00, 0x0a, 0xf2, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x46, // ...2...........F
|
||||||
|
0x8e, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x90, 0x00, 0x00, 0x00, 0xa6, 0x1a, 0x10, 0x00, 0x01, // . ..............
|
||||||
|
0x00, 0x00, 0x00, 0x46, 0x0e, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0xf2, // ...F............
|
||||||
|
0x20, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x46, 0x0e, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x46, // ......F.......F
|
||||||
|
0x8e, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x91, 0x00, 0x00, 0x00, 0x36, 0x00, 0x00, 0x05, 0xf2, // . .........6....
|
||||||
|
0x20, 0x10, 0x00, 0x01, 0x00, 0x00, 0x00, 0x46, 0x1e, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3e, // ......F.......>
|
||||||
|
0x00, 0x00, 0x01, 0x53, 0x54, 0x41, 0x54, 0x74, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x01, // ...STATt........
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, // ................
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // ................
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // ................
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // ................
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // ................
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // ................
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // ................
|
||||||
|
};
|
|
@ -74,6 +74,7 @@ namespace entry
|
||||||
bool initializeInterface(PPB_GetInterface _interface, const char* _name, const Type*& _result)
|
bool initializeInterface(PPB_GetInterface _interface, const char* _name, const Type*& _result)
|
||||||
{
|
{
|
||||||
_result = reinterpret_cast<const Type*>(_interface(_name) );
|
_result = reinterpret_cast<const Type*>(_interface(_name) );
|
||||||
|
// DBG("%p %s", _result, _name);
|
||||||
return NULL != _result;
|
return NULL != _result;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -93,7 +94,6 @@ namespace entry
|
||||||
m_mte.m_argc = 1;
|
m_mte.m_argc = 1;
|
||||||
m_mte.m_argv = const_cast<char**>(argv);
|
m_mte.m_argv = const_cast<char**>(argv);
|
||||||
|
|
||||||
bgfx::naclSetInterfaces(g_instance, g_instInterface, g_graphicsInterface, NULL);
|
|
||||||
m_thread.init(MainThreadEntry::threadFunc, &m_mte);
|
m_thread.init(MainThreadEntry::threadFunc, &m_mte);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -122,8 +122,14 @@ namespace entry
|
||||||
static PP_Bool naclInstanceDidCreate(PP_Instance _instance, uint32_t /*_argc*/, const char* /*_argn*/[], const char* /*_argv*/[])
|
static PP_Bool naclInstanceDidCreate(PP_Instance _instance, uint32_t /*_argc*/, const char* /*_argn*/[], const char* /*_argv*/[])
|
||||||
{
|
{
|
||||||
g_instance = _instance; // one instance only!
|
g_instance = _instance; // one instance only!
|
||||||
s_ctx = new NaclContext;
|
|
||||||
return PP_TRUE;
|
if (bgfx::naclSetInterfaces(g_instance, g_instInterface, g_graphicsInterface, NULL) )
|
||||||
|
{
|
||||||
|
s_ctx = new NaclContext;
|
||||||
|
return PP_TRUE;
|
||||||
|
}
|
||||||
|
|
||||||
|
return PP_FALSE;
|
||||||
}
|
}
|
||||||
|
|
||||||
static void naclInstanceDidDestroy(PP_Instance _instance)
|
static void naclInstanceDidDestroy(PP_Instance _instance)
|
||||||
|
|
|
@ -155,7 +155,7 @@ struct Imgui
|
||||||
m_textureProgram.idx = bgfx::invalidHandle;
|
m_textureProgram.idx = bgfx::invalidHandle;
|
||||||
}
|
}
|
||||||
|
|
||||||
bool create(void* _data, uint32_t /*_size*/)
|
bool create(const void* _data, uint32_t /*_size*/)
|
||||||
{
|
{
|
||||||
for (int32_t ii = 0; ii < NUM_CIRCLE_VERTS; ++ii)
|
for (int32_t ii = 0; ii < NUM_CIRCLE_VERTS; ++ii)
|
||||||
{
|
{
|
||||||
|
@ -1418,7 +1418,7 @@ struct Imgui
|
||||||
|
|
||||||
static Imgui s_imgui;
|
static Imgui s_imgui;
|
||||||
|
|
||||||
bool imguiCreate(void* _data, uint32_t _size)
|
bool imguiCreate(const void* _data, uint32_t _size)
|
||||||
{
|
{
|
||||||
return s_imgui.create(_data, _size);
|
return s_imgui.create(_data, _size);
|
||||||
}
|
}
|
||||||
|
|
|
@ -49,7 +49,7 @@ inline uint32_t imguiRGBA(uint8_t _r, uint8_t _g, uint8_t _b, uint8_t _a = 255)
|
||||||
;
|
;
|
||||||
}
|
}
|
||||||
|
|
||||||
bool imguiCreate(void* _data, uint32_t _size);
|
bool imguiCreate(const void* _data, uint32_t _size);
|
||||||
void imguiDestroy();
|
void imguiDestroy();
|
||||||
|
|
||||||
void imguiBeginFrame(int32_t _mx, int32_t _my, uint8_t _button, int32_t _scroll, uint16_t _width, uint16_t _height, uint8_t _view = 31);
|
void imguiBeginFrame(int32_t _mx, int32_t _my, uint8_t _button, int32_t _scroll, uint16_t _width, uint16_t _height, uint8_t _view = 31);
|
||||||
|
|
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
|
@ -69,7 +69,7 @@ namespace bgfx
|
||||||
typedef void (*PostSwapBuffersFn)(uint32_t _width, uint32_t _height);
|
typedef void (*PostSwapBuffersFn)(uint32_t _width, uint32_t _height);
|
||||||
|
|
||||||
///
|
///
|
||||||
void naclSetInterfaces(::PP_Instance, const ::PPB_Instance*, const ::PPB_Graphics3D*, PostSwapBuffersFn);
|
bool naclSetInterfaces(::PP_Instance, const ::PPB_Instance*, const ::PPB_Graphics3D*, PostSwapBuffersFn);
|
||||||
|
|
||||||
} // namespace bgfx
|
} // namespace bgfx
|
||||||
|
|
||||||
|
|
22
src/bgfx.cpp
22
src/bgfx.cpp
|
@ -209,7 +209,7 @@ namespace bgfx
|
||||||
|
|
||||||
static BX_THREAD uint32_t s_threadIndex = 0;
|
static BX_THREAD uint32_t s_threadIndex = 0;
|
||||||
static Context* s_ctx = NULL;
|
static Context* s_ctx = NULL;
|
||||||
static bool s_renderFrame = false;
|
static bool s_renderFrameCalled = false;
|
||||||
|
|
||||||
void setGraphicsDebuggerPresent(bool _present)
|
void setGraphicsDebuggerPresent(bool _present)
|
||||||
{
|
{
|
||||||
|
@ -733,10 +733,7 @@ namespace bgfx
|
||||||
s_threadIndex = BGFX_MAIN_THREAD_MAGIC;
|
s_threadIndex = BGFX_MAIN_THREAD_MAGIC;
|
||||||
|
|
||||||
s_ctx = BX_NEW(g_allocator, Context);
|
s_ctx = BX_NEW(g_allocator, Context);
|
||||||
|
s_ctx->init();
|
||||||
// When bgfx::renderFrame is called before init render thread
|
|
||||||
// should not be created.
|
|
||||||
s_ctx->init(!s_renderFrame);
|
|
||||||
|
|
||||||
const uint64_t emulatedCaps = 0
|
const uint64_t emulatedCaps = 0
|
||||||
| BGFX_CAPS_TEXTURE_FORMAT_BC1
|
| BGFX_CAPS_TEXTURE_FORMAT_BC1
|
||||||
|
@ -821,7 +818,7 @@ namespace bgfx
|
||||||
{
|
{
|
||||||
if (NULL == s_ctx)
|
if (NULL == s_ctx)
|
||||||
{
|
{
|
||||||
s_renderFrame = true;
|
s_renderFrameCalled = true;
|
||||||
return RenderFrame::NoContext;
|
return RenderFrame::NoContext;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -871,7 +868,7 @@ namespace bgfx
|
||||||
write(_marker, num);
|
write(_marker, num);
|
||||||
}
|
}
|
||||||
|
|
||||||
void Context::init(bool _createRenderThread)
|
void Context::init()
|
||||||
{
|
{
|
||||||
BX_CHECK(!m_rendererInitialized, "Already initialized?");
|
BX_CHECK(!m_rendererInitialized, "Already initialized?");
|
||||||
|
|
||||||
|
@ -885,12 +882,19 @@ namespace bgfx
|
||||||
m_render->create();
|
m_render->create();
|
||||||
|
|
||||||
#if BGFX_CONFIG_MULTITHREADED
|
#if BGFX_CONFIG_MULTITHREADED
|
||||||
if (_createRenderThread)
|
if (s_renderFrameCalled)
|
||||||
{
|
{
|
||||||
|
// When bgfx::renderFrame is called before init render thread
|
||||||
|
// should not be created.
|
||||||
|
BX_TRACE("Application called bgfx::renderFrame directly, not creating render thread.");
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
BX_TRACE("Creating rendering thread.");
|
||||||
m_thread.init(renderThread, this);
|
m_thread.init(renderThread, this);
|
||||||
}
|
}
|
||||||
#else
|
#else
|
||||||
BX_UNUSED(_createRenderThread);
|
BX_TRACE("Multithreaded renderer is disabled.");
|
||||||
#endif // BGFX_CONFIG_MULTITHREADED
|
#endif // BGFX_CONFIG_MULTITHREADED
|
||||||
|
|
||||||
memset(m_rt, 0xff, sizeof(m_rt) );
|
memset(m_rt, 0xff, sizeof(m_rt) );
|
||||||
|
|
|
@ -1582,7 +1582,7 @@ namespace bgfx
|
||||||
}
|
}
|
||||||
|
|
||||||
// game thread
|
// game thread
|
||||||
void init(bool _createRenderThread);
|
void init();
|
||||||
void shutdown();
|
void shutdown();
|
||||||
|
|
||||||
CommandBuffer& getCommandBuffer(CommandBuffer::Enum _cmd)
|
CommandBuffer& getCommandBuffer(CommandBuffer::Enum _cmd)
|
||||||
|
|
|
@ -37,7 +37,7 @@ namespace bgfx
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
void setInterfaces(PP_Instance _instance, const PPB_Instance* _instInterface, const PPB_Graphics3D* _graphicsInterface, PostSwapBuffersFn _postSwapBuffers);
|
bool setInterfaces(PP_Instance _instance, const PPB_Instance* _instInterface, const PPB_Graphics3D* _graphicsInterface, PostSwapBuffersFn _postSwapBuffers);
|
||||||
|
|
||||||
void resize(uint32_t _width, uint32_t _height, bool /*_vsync*/)
|
void resize(uint32_t _width, uint32_t _height, bool /*_vsync*/)
|
||||||
{
|
{
|
||||||
|
@ -96,18 +96,15 @@ namespace bgfx
|
||||||
s_ppapi.m_instancedArrays->DrawElementsInstancedANGLE(s_ppapi.m_context, _mode, _count, _type, _indices, _primcount);
|
s_ppapi.m_instancedArrays->DrawElementsInstancedANGLE(s_ppapi.m_context, _mode, _count, _type, _indices, _primcount);
|
||||||
}
|
}
|
||||||
|
|
||||||
void naclSetInterfaces(PP_Instance _instance, const PPB_Instance* _instInterface, const PPB_Graphics3D* _graphicsInterface, PostSwapBuffersFn _postSwapBuffers)
|
bool naclSetInterfaces(PP_Instance _instance, const PPB_Instance* _instInterface, const PPB_Graphics3D* _graphicsInterface, PostSwapBuffersFn _postSwapBuffers)
|
||||||
{
|
{
|
||||||
s_ppapi.setInterfaces( _instance, _instInterface, _graphicsInterface, _postSwapBuffers);
|
return s_ppapi.setInterfaces( _instance, _instInterface, _graphicsInterface, _postSwapBuffers);
|
||||||
}
|
}
|
||||||
|
|
||||||
void Ppapi::setInterfaces(PP_Instance _instance, const PPB_Instance* _instInterface, const PPB_Graphics3D* _graphicsInterface, PostSwapBuffersFn _postSwapBuffers)
|
bool Ppapi::setInterfaces(PP_Instance _instance, const PPB_Instance* _instInterface, const PPB_Graphics3D* _graphicsInterface, PostSwapBuffersFn _postSwapBuffers)
|
||||||
{
|
{
|
||||||
BX_TRACE("PPAPI Interfaces");
|
BX_TRACE("PPAPI Interfaces");
|
||||||
|
|
||||||
// Prevent render thread creation.
|
|
||||||
renderFrame();
|
|
||||||
|
|
||||||
m_instance = _instance;
|
m_instance = _instance;
|
||||||
m_instInterface = _instInterface;
|
m_instInterface = _instInterface;
|
||||||
m_graphicsInterface = _graphicsInterface;
|
m_graphicsInterface = _graphicsInterface;
|
||||||
|
@ -127,6 +124,12 @@ namespace bgfx
|
||||||
};
|
};
|
||||||
|
|
||||||
m_context = m_graphicsInterface->Create(m_instance, 0, attribs);
|
m_context = m_graphicsInterface->Create(m_instance, 0, attribs);
|
||||||
|
if (0 == m_context)
|
||||||
|
{
|
||||||
|
BX_TRACE("Failed to create context!");
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
m_instInterface->BindGraphics(m_instance, m_context);
|
m_instInterface->BindGraphics(m_instance, m_context);
|
||||||
glSetCurrentContextPPAPI(m_context);
|
glSetCurrentContextPPAPI(m_context);
|
||||||
m_graphicsInterface->SwapBuffers(m_context, naclSwapComplete);
|
m_graphicsInterface->SwapBuffers(m_context, naclSwapComplete);
|
||||||
|
@ -134,6 +137,10 @@ namespace bgfx
|
||||||
glVertexAttribDivisor = naclVertexAttribDivisor;
|
glVertexAttribDivisor = naclVertexAttribDivisor;
|
||||||
glDrawArraysInstanced = naclDrawArraysInstanced;
|
glDrawArraysInstanced = naclDrawArraysInstanced;
|
||||||
glDrawElementsInstanced = naclDrawElementsInstanced;
|
glDrawElementsInstanced = naclDrawElementsInstanced;
|
||||||
|
|
||||||
|
// Prevent render thread creation.
|
||||||
|
RenderFrame::Enum result = renderFrame();
|
||||||
|
return RenderFrame::NoContext == result;
|
||||||
}
|
}
|
||||||
|
|
||||||
void GlContext::create(uint32_t _width, uint32_t _height)
|
void GlContext::create(uint32_t _width, uint32_t _height)
|
||||||
|
|
Loading…
Reference in a new issue