mirror of
https://github.com/scratchfoundation/bgfx.git
synced 2025-02-27 00:53:59 -05:00
Merge pull request #116 from dariomanesku/master
Lod parameter for imguiImage() and create/set font support for imgui.
This commit is contained in:
commit
3a789c01d4
4 changed files with 227 additions and 116 deletions
|
@ -1,85 +1,139 @@
|
||||||
static const uint8_t fs_imgui_image_glsl[241] =
|
static const uint8_t fs_imgui_image_glsl[310] =
|
||||||
{
|
{
|
||||||
0x46, 0x53, 0x48, 0x02, 0x6f, 0x1e, 0x3e, 0x3c, 0x01, 0x00, 0x0a, 0x75, 0x5f, 0x74, 0x65, 0x78, // FSH.o.><...u_tex
|
0x46, 0x53, 0x48, 0x02, 0x6f, 0x1e, 0x3e, 0x3c, 0x02, 0x00, 0x0a, 0x75, 0x5f, 0x69, 0x6d, 0x61, // FSH.o.><...u_ima
|
||||||
0x43, 0x6f, 0x6c, 0x6f, 0x72, 0x00, 0x01, 0x00, 0x00, 0x01, 0x00, 0xd1, 0x00, 0x00, 0x00, 0x76, // Color..........v
|
0x67, 0x65, 0x4c, 0x6f, 0x64, 0x01, 0x01, 0x00, 0x00, 0x01, 0x00, 0x0a, 0x75, 0x5f, 0x74, 0x65, // geLod.......u_te
|
||||||
0x61, 0x72, 0x79, 0x69, 0x6e, 0x67, 0x20, 0x6d, 0x65, 0x64, 0x69, 0x75, 0x6d, 0x70, 0x20, 0x76, // arying mediump v
|
0x78, 0x43, 0x6f, 0x6c, 0x6f, 0x72, 0x00, 0x01, 0x00, 0x00, 0x01, 0x00, 0x05, 0x01, 0x00, 0x00, // xColor..........
|
||||||
0x65, 0x63, 0x32, 0x20, 0x76, 0x5f, 0x74, 0x65, 0x78, 0x63, 0x6f, 0x6f, 0x72, 0x64, 0x30, 0x3b, // ec2 v_texcoord0;
|
0x76, 0x61, 0x72, 0x79, 0x69, 0x6e, 0x67, 0x20, 0x6d, 0x65, 0x64, 0x69, 0x75, 0x6d, 0x70, 0x20, // varying mediump
|
||||||
0x0a, 0x75, 0x6e, 0x69, 0x66, 0x6f, 0x72, 0x6d, 0x20, 0x73, 0x61, 0x6d, 0x70, 0x6c, 0x65, 0x72, // .uniform sampler
|
0x76, 0x65, 0x63, 0x32, 0x20, 0x76, 0x5f, 0x74, 0x65, 0x78, 0x63, 0x6f, 0x6f, 0x72, 0x64, 0x30, // vec2 v_texcoord0
|
||||||
0x32, 0x44, 0x20, 0x75, 0x5f, 0x74, 0x65, 0x78, 0x43, 0x6f, 0x6c, 0x6f, 0x72, 0x3b, 0x0a, 0x76, // 2D u_texColor;.v
|
0x3b, 0x0a, 0x75, 0x6e, 0x69, 0x66, 0x6f, 0x72, 0x6d, 0x20, 0x6d, 0x65, 0x64, 0x69, 0x75, 0x6d, // ;.uniform medium
|
||||||
0x6f, 0x69, 0x64, 0x20, 0x6d, 0x61, 0x69, 0x6e, 0x20, 0x28, 0x29, 0x0a, 0x7b, 0x0a, 0x20, 0x20, // oid main ().{.
|
0x70, 0x20, 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x20, 0x75, 0x5f, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x4c, // p float u_imageL
|
||||||
0x6c, 0x6f, 0x77, 0x70, 0x20, 0x76, 0x65, 0x63, 0x34, 0x20, 0x74, 0x6d, 0x70, 0x76, 0x61, 0x72, // lowp vec4 tmpvar
|
0x6f, 0x64, 0x3b, 0x0a, 0x75, 0x6e, 0x69, 0x66, 0x6f, 0x72, 0x6d, 0x20, 0x73, 0x61, 0x6d, 0x70, // od;.uniform samp
|
||||||
0x5f, 0x31, 0x3b, 0x0a, 0x20, 0x20, 0x74, 0x6d, 0x70, 0x76, 0x61, 0x72, 0x5f, 0x31, 0x2e, 0x77, // _1;. tmpvar_1.w
|
0x6c, 0x65, 0x72, 0x32, 0x44, 0x20, 0x75, 0x5f, 0x74, 0x65, 0x78, 0x43, 0x6f, 0x6c, 0x6f, 0x72, // ler2D u_texColor
|
||||||
0x20, 0x3d, 0x20, 0x31, 0x2e, 0x30, 0x3b, 0x0a, 0x20, 0x20, 0x74, 0x6d, 0x70, 0x76, 0x61, 0x72, // = 1.0;. tmpvar
|
0x3b, 0x0a, 0x76, 0x6f, 0x69, 0x64, 0x20, 0x6d, 0x61, 0x69, 0x6e, 0x20, 0x28, 0x29, 0x0a, 0x7b, // ;.void main ().{
|
||||||
0x5f, 0x31, 0x2e, 0x78, 0x79, 0x7a, 0x20, 0x3d, 0x20, 0x74, 0x65, 0x78, 0x74, 0x75, 0x72, 0x65, // _1.xyz = texture
|
0x0a, 0x20, 0x20, 0x6c, 0x6f, 0x77, 0x70, 0x20, 0x76, 0x65, 0x63, 0x34, 0x20, 0x74, 0x6d, 0x70, // . lowp vec4 tmp
|
||||||
0x32, 0x44, 0x20, 0x28, 0x75, 0x5f, 0x74, 0x65, 0x78, 0x43, 0x6f, 0x6c, 0x6f, 0x72, 0x2c, 0x20, // 2D (u_texColor,
|
0x76, 0x61, 0x72, 0x5f, 0x31, 0x3b, 0x0a, 0x20, 0x20, 0x74, 0x6d, 0x70, 0x76, 0x61, 0x72, 0x5f, // var_1;. tmpvar_
|
||||||
0x76, 0x5f, 0x74, 0x65, 0x78, 0x63, 0x6f, 0x6f, 0x72, 0x64, 0x30, 0x29, 0x2e, 0x78, 0x79, 0x7a, // v_texcoord0).xyz
|
0x31, 0x2e, 0x77, 0x20, 0x3d, 0x20, 0x31, 0x2e, 0x30, 0x3b, 0x0a, 0x20, 0x20, 0x74, 0x6d, 0x70, // 1.w = 1.0;. tmp
|
||||||
0x3b, 0x0a, 0x20, 0x20, 0x67, 0x6c, 0x5f, 0x46, 0x72, 0x61, 0x67, 0x43, 0x6f, 0x6c, 0x6f, 0x72, // ;. gl_FragColor
|
0x76, 0x61, 0x72, 0x5f, 0x31, 0x2e, 0x78, 0x79, 0x7a, 0x20, 0x3d, 0x20, 0x74, 0x65, 0x78, 0x74, // var_1.xyz = text
|
||||||
0x20, 0x3d, 0x20, 0x74, 0x6d, 0x70, 0x76, 0x61, 0x72, 0x5f, 0x31, 0x3b, 0x0a, 0x7d, 0x0a, 0x0a, // = tmpvar_1;.}..
|
0x75, 0x72, 0x65, 0x32, 0x44, 0x4c, 0x6f, 0x64, 0x20, 0x20, 0x20, 0x20, 0x28, 0x75, 0x5f, 0x74, // ure2DLod (u_t
|
||||||
0x00, // .
|
0x65, 0x78, 0x43, 0x6f, 0x6c, 0x6f, 0x72, 0x2c, 0x20, 0x76, 0x5f, 0x74, 0x65, 0x78, 0x63, 0x6f, // exColor, v_texco
|
||||||
|
0x6f, 0x72, 0x64, 0x30, 0x2c, 0x20, 0x75, 0x5f, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x4c, 0x6f, 0x64, // ord0, u_imageLod
|
||||||
|
0x29, 0x2e, 0x78, 0x79, 0x7a, 0x3b, 0x0a, 0x20, 0x20, 0x67, 0x6c, 0x5f, 0x46, 0x72, 0x61, 0x67, // ).xyz;. gl_Frag
|
||||||
|
0x43, 0x6f, 0x6c, 0x6f, 0x72, 0x20, 0x3d, 0x20, 0x74, 0x6d, 0x70, 0x76, 0x61, 0x72, 0x5f, 0x31, // Color = tmpvar_1
|
||||||
|
0x3b, 0x0a, 0x7d, 0x0a, 0x0a, 0x00, // ;.}...
|
||||||
};
|
};
|
||||||
static const uint8_t fs_imgui_image_dx9[249] =
|
static const uint8_t fs_imgui_image_dx9[342] =
|
||||||
{
|
{
|
||||||
0x46, 0x53, 0x48, 0x02, 0x6f, 0x1e, 0x3e, 0x3c, 0x00, 0x00, 0xec, 0x00, 0x00, 0x03, 0xff, 0xff, // FSH.o.><........
|
0x46, 0x53, 0x48, 0x02, 0x6f, 0x1e, 0x3e, 0x3c, 0x01, 0x00, 0x0a, 0x75, 0x5f, 0x69, 0x6d, 0x61, // FSH.o.><...u_ima
|
||||||
0xfe, 0xff, 0x22, 0x00, 0x43, 0x54, 0x41, 0x42, 0x1c, 0x00, 0x00, 0x00, 0x53, 0x00, 0x00, 0x00, // ..".CTAB....S...
|
0x67, 0x65, 0x4c, 0x6f, 0x64, 0x14, 0x01, 0x00, 0x00, 0x01, 0x00, 0x38, 0x01, 0x00, 0x03, 0xff, // geLod......8....
|
||||||
0x00, 0x03, 0xff, 0xff, 0x01, 0x00, 0x00, 0x00, 0x1c, 0x00, 0x00, 0x00, 0x00, 0x81, 0x00, 0x00, // ................
|
0xff, 0xfe, 0xff, 0x2e, 0x00, 0x43, 0x54, 0x41, 0x42, 0x1c, 0x00, 0x00, 0x00, 0x83, 0x00, 0x00, // .....CTAB.......
|
||||||
0x4c, 0x00, 0x00, 0x00, 0x30, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x01, 0x00, 0x02, 0x00, // L...0...........
|
0x00, 0x00, 0x03, 0xff, 0xff, 0x02, 0x00, 0x00, 0x00, 0x1c, 0x00, 0x00, 0x00, 0x00, 0x81, 0x00, // ................
|
||||||
0x3c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x75, 0x5f, 0x74, 0x65, 0x78, 0x43, 0x6f, 0x6c, // <.......u_texCol
|
0x00, 0x7c, 0x00, 0x00, 0x00, 0x44, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, // .|...D..........
|
||||||
0x6f, 0x72, 0x00, 0xab, 0x04, 0x00, 0x0c, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x00, 0x00, // or..............
|
0x00, 0x50, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, // .P.......`......
|
||||||
0x00, 0x00, 0x00, 0x00, 0x70, 0x73, 0x5f, 0x33, 0x5f, 0x30, 0x00, 0x4d, 0x69, 0x63, 0x72, 0x6f, // ....ps_3_0.Micro
|
0x00, 0x01, 0x00, 0x02, 0x00, 0x6c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x75, 0x5f, 0x69, // .....l.......u_i
|
||||||
0x73, 0x6f, 0x66, 0x74, 0x20, 0x28, 0x52, 0x29, 0x20, 0x48, 0x4c, 0x53, 0x4c, 0x20, 0x53, 0x68, // soft (R) HLSL Sh
|
0x6d, 0x61, 0x67, 0x65, 0x4c, 0x6f, 0x64, 0x00, 0xab, 0x00, 0x00, 0x03, 0x00, 0x01, 0x00, 0x01, // mageLod.........
|
||||||
0x61, 0x64, 0x65, 0x72, 0x20, 0x43, 0x6f, 0x6d, 0x70, 0x69, 0x6c, 0x65, 0x72, 0x20, 0x39, 0x2e, // ader Compiler 9.
|
0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x75, 0x5f, 0x74, 0x65, 0x78, 0x43, 0x6f, // .........u_texCo
|
||||||
0x32, 0x39, 0x2e, 0x39, 0x35, 0x32, 0x2e, 0x33, 0x31, 0x31, 0x31, 0x00, 0x51, 0x00, 0x00, 0x05, // 29.952.3111.Q...
|
0x6c, 0x6f, 0x72, 0x00, 0xab, 0x04, 0x00, 0x0c, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x00, // lor.............
|
||||||
0x00, 0x00, 0x0f, 0xa0, 0x00, 0x00, 0x80, 0x3f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // .......?........
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x70, 0x73, 0x5f, 0x33, 0x5f, 0x30, 0x00, 0x4d, 0x69, 0x63, 0x72, // .....ps_3_0.Micr
|
||||||
0x00, 0x00, 0x00, 0x00, 0x1f, 0x00, 0x00, 0x02, 0x05, 0x00, 0x00, 0x80, 0x00, 0x00, 0x03, 0x90, // ................
|
0x6f, 0x73, 0x6f, 0x66, 0x74, 0x20, 0x28, 0x52, 0x29, 0x20, 0x48, 0x4c, 0x53, 0x4c, 0x20, 0x53, // osoft (R) HLSL S
|
||||||
0x1f, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x90, 0x00, 0x08, 0x0f, 0xa0, 0x42, 0x00, 0x00, 0x03, // ............B...
|
0x68, 0x61, 0x64, 0x65, 0x72, 0x20, 0x43, 0x6f, 0x6d, 0x70, 0x69, 0x6c, 0x65, 0x72, 0x20, 0x39, // hader Compiler 9
|
||||||
0x00, 0x00, 0x0f, 0x80, 0x00, 0x00, 0xe4, 0x90, 0x00, 0x08, 0xe4, 0xa0, 0x01, 0x00, 0x00, 0x02, // ................
|
0x2e, 0x32, 0x39, 0x2e, 0x39, 0x35, 0x32, 0x2e, 0x33, 0x31, 0x31, 0x31, 0x00, 0x51, 0x00, 0x00, // .29.952.3111.Q..
|
||||||
0x00, 0x08, 0x07, 0x80, 0x00, 0x00, 0xe4, 0x80, 0x01, 0x00, 0x00, 0x02, 0x00, 0x08, 0x08, 0x80, // ................
|
0x05, 0x01, 0x00, 0x0f, 0xa0, 0x00, 0x00, 0x80, 0x3f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // ........?.......
|
||||||
0x00, 0x00, 0x00, 0xa0, 0xff, 0xff, 0x00, 0x00, 0x00, // .........
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x1f, 0x00, 0x00, 0x02, 0x05, 0x00, 0x00, 0x80, 0x00, 0x00, 0x03, // ................
|
||||||
|
0x90, 0x1f, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x90, 0x00, 0x08, 0x0f, 0xa0, 0x05, 0x00, 0x00, // ................
|
||||||
|
0x03, 0x00, 0x00, 0x0b, 0x80, 0x01, 0x00, 0x60, 0xa0, 0x00, 0x00, 0x24, 0x90, 0x01, 0x00, 0x00, // .......`...$....
|
||||||
|
0x02, 0x00, 0x00, 0x04, 0x80, 0x00, 0x00, 0x00, 0xa0, 0x5f, 0x00, 0x00, 0x03, 0x00, 0x00, 0x0f, // ........._......
|
||||||
|
0x80, 0x00, 0x00, 0xe4, 0x80, 0x00, 0x08, 0xe4, 0xa0, 0x01, 0x00, 0x00, 0x02, 0x00, 0x08, 0x07, // ................
|
||||||
|
0x80, 0x00, 0x00, 0xe4, 0x80, 0x01, 0x00, 0x00, 0x02, 0x00, 0x08, 0x08, 0x80, 0x01, 0x00, 0x00, // ................
|
||||||
|
0xa0, 0xff, 0xff, 0x00, 0x00, 0x00, // ......
|
||||||
};
|
};
|
||||||
static const uint8_t fs_imgui_image_dx11[690] =
|
static const uint8_t fs_imgui_image_dx11[1395] =
|
||||||
{
|
{
|
||||||
0x46, 0x53, 0x48, 0x02, 0x6f, 0x1e, 0x3e, 0x3c, 0x00, 0x00, 0x94, 0x02, 0x44, 0x58, 0x42, 0x43, // FSH.o.><....DXBC
|
0x46, 0x53, 0x48, 0x02, 0x6f, 0x1e, 0x3e, 0x3c, 0x01, 0x00, 0x0a, 0x75, 0x5f, 0x69, 0x6d, 0x61, // FSH.o.><...u_ima
|
||||||
0xcd, 0xd6, 0xda, 0x96, 0x8b, 0x39, 0x48, 0x47, 0x0c, 0xe7, 0xf1, 0x11, 0x25, 0xc9, 0x14, 0x8f, // .....9HG....%...
|
0x67, 0x65, 0x4c, 0x6f, 0x64, 0x14, 0x00, 0xa4, 0x0a, 0x01, 0x00, 0x44, 0x05, 0x44, 0x58, 0x42, // geLod......D.DXB
|
||||||
0x01, 0x00, 0x00, 0x00, 0x94, 0x02, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 0x34, 0x00, 0x00, 0x00, // ............4...
|
0x43, 0x72, 0xb4, 0x3d, 0x86, 0x6d, 0xa2, 0xb7, 0x76, 0xc9, 0x60, 0x57, 0x0b, 0x4c, 0x38, 0xcf, // Cr.=.m..v.`W.L8.
|
||||||
0xf0, 0x00, 0x00, 0x00, 0x48, 0x01, 0x00, 0x00, 0x7c, 0x01, 0x00, 0x00, 0x18, 0x02, 0x00, 0x00, // ....H...|.......
|
0xe1, 0x01, 0x00, 0x00, 0x00, 0x44, 0x05, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 0x34, 0x00, 0x00, // .....D.......4..
|
||||||
0x52, 0x44, 0x45, 0x46, 0xb4, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // RDEF............
|
0x00, 0x84, 0x03, 0x00, 0x00, 0xdc, 0x03, 0x00, 0x00, 0x10, 0x04, 0x00, 0x00, 0xc8, 0x04, 0x00, // ................
|
||||||
0x02, 0x00, 0x00, 0x00, 0x1c, 0x00, 0x00, 0x00, 0x00, 0x04, 0xff, 0xff, 0x00, 0x91, 0x00, 0x00, // ................
|
0x00, 0x52, 0x44, 0x45, 0x46, 0x48, 0x03, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0xac, 0x00, 0x00, // .RDEFH..........
|
||||||
0x80, 0x00, 0x00, 0x00, 0x5c, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // ................
|
0x00, 0x03, 0x00, 0x00, 0x00, 0x1c, 0x00, 0x00, 0x00, 0x00, 0x04, 0xff, 0xff, 0x00, 0x91, 0x00, // ................
|
||||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, // ................
|
0x00, 0x17, 0x03, 0x00, 0x00, 0x7c, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // .....|..........
|
||||||
0x01, 0x00, 0x00, 0x00, 0x6e, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, // ....n...........
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, // ................
|
||||||
0x04, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, // ................
|
0x00, 0x01, 0x00, 0x00, 0x00, 0x8e, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, // ................
|
||||||
0x0d, 0x00, 0x00, 0x00, 0x75, 0x5f, 0x74, 0x65, 0x78, 0x43, 0x6f, 0x6c, 0x6f, 0x72, 0x53, 0x61, // ....u_texColorSa
|
0x00, 0x04, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, // ................
|
||||||
0x6d, 0x70, 0x6c, 0x65, 0x72, 0x00, 0x75, 0x5f, 0x74, 0x65, 0x78, 0x43, 0x6f, 0x6c, 0x6f, 0x72, // mpler.u_texColor
|
0x00, 0x0d, 0x00, 0x00, 0x00, 0xa0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // ................
|
||||||
0x54, 0x65, 0x78, 0x74, 0x75, 0x72, 0x65, 0x00, 0x4d, 0x69, 0x63, 0x72, 0x6f, 0x73, 0x6f, 0x66, // Texture.Microsof
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, // ................
|
||||||
0x74, 0x20, 0x28, 0x52, 0x29, 0x20, 0x48, 0x4c, 0x53, 0x4c, 0x20, 0x53, 0x68, 0x61, 0x64, 0x65, // t (R) HLSL Shade
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x75, 0x5f, 0x74, 0x65, 0x78, 0x43, 0x6f, 0x6c, 0x6f, 0x72, 0x53, // .....u_texColorS
|
||||||
0x72, 0x20, 0x43, 0x6f, 0x6d, 0x70, 0x69, 0x6c, 0x65, 0x72, 0x20, 0x39, 0x2e, 0x32, 0x39, 0x2e, // r Compiler 9.29.
|
0x61, 0x6d, 0x70, 0x6c, 0x65, 0x72, 0x00, 0x75, 0x5f, 0x74, 0x65, 0x78, 0x43, 0x6f, 0x6c, 0x6f, // ampler.u_texColo
|
||||||
0x39, 0x35, 0x32, 0x2e, 0x33, 0x31, 0x31, 0x31, 0x00, 0xab, 0xab, 0xab, 0x49, 0x53, 0x47, 0x4e, // 952.3111....ISGN
|
0x72, 0x54, 0x65, 0x78, 0x74, 0x75, 0x72, 0x65, 0x00, 0x24, 0x47, 0x6c, 0x6f, 0x62, 0x61, 0x6c, // rTexture.$Global
|
||||||
0x50, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x38, 0x00, 0x00, 0x00, // P...........8...
|
0x73, 0x00, 0xab, 0xab, 0xab, 0xa0, 0x00, 0x00, 0x00, 0x0f, 0x00, 0x00, 0x00, 0xc4, 0x00, 0x00, // s...............
|
||||||
0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // ................
|
0x00, 0xb0, 0x0a, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x2c, 0x02, 0x00, // .............,..
|
||||||
0x0f, 0x00, 0x00, 0x00, 0x44, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // ....D...........
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x38, 0x02, 0x00, // .............8..
|
||||||
0x03, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x03, 0x03, 0x00, 0x00, 0x53, 0x56, 0x5f, 0x50, // ............SV_P
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x48, 0x02, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, // .....H..........
|
||||||
0x4f, 0x53, 0x49, 0x54, 0x49, 0x4f, 0x4e, 0x00, 0x54, 0x45, 0x58, 0x43, 0x4f, 0x4f, 0x52, 0x44, // OSITION.TEXCOORD
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x38, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x54, 0x02, 0x00, // .....8.......T..
|
||||||
0x00, 0xab, 0xab, 0xab, 0x4f, 0x53, 0x47, 0x4e, 0x2c, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, // ....OSGN,.......
|
0x00, 0x20, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x5c, 0x02, 0x00, // . ...@..........
|
||||||
0x08, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // .... ...........
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x6c, 0x02, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, // .....l...`...@..
|
||||||
0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0f, 0x00, 0x00, 0x00, 0x53, 0x56, 0x5f, 0x54, // ............SV_T
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x5c, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x76, 0x02, 0x00, // .............v..
|
||||||
0x41, 0x52, 0x47, 0x45, 0x54, 0x00, 0xab, 0xab, 0x53, 0x48, 0x44, 0x52, 0x94, 0x00, 0x00, 0x00, // ARGET...SHDR....
|
0x00, 0xa0, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x5c, 0x02, 0x00, // .....@..........
|
||||||
0x40, 0x00, 0x00, 0x00, 0x25, 0x00, 0x00, 0x00, 0x5a, 0x00, 0x00, 0x03, 0x00, 0x60, 0x10, 0x00, // @...%...Z....`..
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x7d, 0x02, 0x00, 0x00, 0xe0, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, // .....}.......@..
|
||||||
0x00, 0x00, 0x00, 0x00, 0x58, 0x18, 0x00, 0x04, 0x00, 0x70, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, // ....X....p......
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x5c, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x87, 0x02, 0x00, // ................
|
||||||
0x55, 0x55, 0x00, 0x00, 0x62, 0x10, 0x00, 0x03, 0x32, 0x10, 0x10, 0x00, 0x01, 0x00, 0x00, 0x00, // UU..b...2.......
|
0x00, 0x20, 0x01, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x5c, 0x02, 0x00, // . ...@..........
|
||||||
0x65, 0x00, 0x00, 0x03, 0xf2, 0x20, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x68, 0x00, 0x00, 0x02, // e.... ......h...
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x92, 0x02, 0x00, 0x00, 0x60, 0x01, 0x00, 0x00, 0x40, 0x00, 0x00, // .........`...@..
|
||||||
0x01, 0x00, 0x00, 0x00, 0x45, 0x00, 0x00, 0x09, 0xf2, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, // ....E...........
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x5c, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xa0, 0x02, 0x00, // ................
|
||||||
0x46, 0x10, 0x10, 0x00, 0x01, 0x00, 0x00, 0x00, 0x46, 0x7e, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, // F.......F~......
|
0x00, 0xa0, 0x01, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xa8, 0x02, 0x00, // ................
|
||||||
0x00, 0x60, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x36, 0x00, 0x00, 0x05, 0x72, 0x20, 0x10, 0x00, // .`......6...r ..
|
0x00, 0x00, 0x00, 0x00, 0x00, 0xb8, 0x02, 0x00, 0x00, 0xa0, 0x09, 0x00, 0x00, 0x40, 0x00, 0x00, // .............@..
|
||||||
0x00, 0x00, 0x00, 0x00, 0x46, 0x02, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x36, 0x00, 0x00, 0x05, // ....F.......6...
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x5c, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc4, 0x02, 0x00, // ................
|
||||||
0x82, 0x20, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x40, 0x00, 0x00, 0x00, 0x00, 0x80, 0x3f, // . .......@.....?
|
0x00, 0xe0, 0x09, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x5c, 0x02, 0x00, // .....@..........
|
||||||
0x3e, 0x00, 0x00, 0x01, 0x53, 0x54, 0x41, 0x54, 0x74, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, // >...STATt.......
|
0x00, 0x00, 0x00, 0x00, 0x00, 0xd4, 0x02, 0x00, 0x00, 0x20, 0x0a, 0x00, 0x00, 0x40, 0x00, 0x00, // ......... ...@..
|
||||||
0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // ................
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x5c, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe5, 0x02, 0x00, // ................
|
||||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // ................
|
0x00, 0x60, 0x0a, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x5c, 0x02, 0x00, // .`...@..........
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0xf1, 0x02, 0x00, 0x00, 0xa0, 0x0a, 0x00, 0x00, 0x04, 0x00, 0x00, // ................
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0xfc, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0c, 0x03, 0x00, // ................
|
||||||
|
0x00, 0xa4, 0x0a, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0xfc, 0x02, 0x00, // ................
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x75, 0x5f, 0x76, 0x69, 0x65, 0x77, 0x52, 0x65, 0x63, 0x74, 0x00, // .....u_viewRect.
|
||||||
|
0xab, 0x01, 0x00, 0x03, 0x00, 0x01, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // ................
|
||||||
|
0x00, 0x75, 0x5f, 0x76, 0x69, 0x65, 0x77, 0x54, 0x65, 0x78, 0x65, 0x6c, 0x00, 0x75, 0x5f, 0x76, // .u_viewTexel.u_v
|
||||||
|
0x69, 0x65, 0x77, 0x00, 0xab, 0x03, 0x00, 0x03, 0x00, 0x04, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, // iew.............
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x75, 0x5f, 0x69, 0x6e, 0x76, 0x56, 0x69, 0x65, 0x77, 0x00, 0x75, // .....u_invView.u
|
||||||
|
0x5f, 0x70, 0x72, 0x6f, 0x6a, 0x00, 0x75, 0x5f, 0x69, 0x6e, 0x76, 0x50, 0x72, 0x6f, 0x6a, 0x00, // _proj.u_invProj.
|
||||||
|
0x75, 0x5f, 0x76, 0x69, 0x65, 0x77, 0x50, 0x72, 0x6f, 0x6a, 0x00, 0x75, 0x5f, 0x69, 0x6e, 0x76, // u_viewProj.u_inv
|
||||||
|
0x56, 0x69, 0x65, 0x77, 0x50, 0x72, 0x6f, 0x6a, 0x00, 0x75, 0x5f, 0x6d, 0x6f, 0x64, 0x65, 0x6c, // ViewProj.u_model
|
||||||
|
0x00, 0x03, 0x00, 0x03, 0x00, 0x04, 0x00, 0x04, 0x00, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // ......... ......
|
||||||
|
0x00, 0x75, 0x5f, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x56, 0x69, 0x65, 0x77, 0x00, 0x75, 0x5f, 0x6d, // .u_modelView.u_m
|
||||||
|
0x6f, 0x64, 0x65, 0x6c, 0x56, 0x69, 0x65, 0x77, 0x50, 0x72, 0x6f, 0x6a, 0x00, 0x75, 0x5f, 0x6d, // odelViewProj.u_m
|
||||||
|
0x6f, 0x64, 0x65, 0x6c, 0x56, 0x69, 0x65, 0x77, 0x50, 0x72, 0x6f, 0x6a, 0x58, 0x00, 0x75, 0x5f, // odelViewProjX.u_
|
||||||
|
0x76, 0x69, 0x65, 0x77, 0x50, 0x72, 0x6f, 0x6a, 0x58, 0x00, 0x75, 0x5f, 0x61, 0x6c, 0x70, 0x68, // viewProjX.u_alph
|
||||||
|
0x61, 0x52, 0x65, 0x66, 0x00, 0x00, 0x00, 0x03, 0x00, 0x01, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, // aRef............
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x75, 0x5f, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x4c, 0x6f, 0x64, 0x00, // .....u_imageLod.
|
||||||
|
0x4d, 0x69, 0x63, 0x72, 0x6f, 0x73, 0x6f, 0x66, 0x74, 0x20, 0x28, 0x52, 0x29, 0x20, 0x48, 0x4c, // Microsoft (R) HL
|
||||||
|
0x53, 0x4c, 0x20, 0x53, 0x68, 0x61, 0x64, 0x65, 0x72, 0x20, 0x43, 0x6f, 0x6d, 0x70, 0x69, 0x6c, // SL Shader Compil
|
||||||
|
0x65, 0x72, 0x20, 0x39, 0x2e, 0x32, 0x39, 0x2e, 0x39, 0x35, 0x32, 0x2e, 0x33, 0x31, 0x31, 0x31, // er 9.29.952.3111
|
||||||
|
0x00, 0x49, 0x53, 0x47, 0x4e, 0x50, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, // .ISGNP..........
|
||||||
|
0x00, 0x38, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, // .8..............
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x0f, 0x00, 0x00, 0x00, 0x44, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // .........D......
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x03, 0x03, 0x00, // ................
|
||||||
|
0x00, 0x53, 0x56, 0x5f, 0x50, 0x4f, 0x53, 0x49, 0x54, 0x49, 0x4f, 0x4e, 0x00, 0x54, 0x45, 0x58, // .SV_POSITION.TEX
|
||||||
|
0x43, 0x4f, 0x4f, 0x52, 0x44, 0x00, 0xab, 0xab, 0xab, 0x4f, 0x53, 0x47, 0x4e, 0x2c, 0x00, 0x00, // COORD....OSGN,..
|
||||||
|
0x00, 0x01, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 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, 0xab, 0x53, 0x48, 0x44, // .SV_TARGET...SHD
|
||||||
|
0x52, 0xb0, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, 0x2c, 0x00, 0x00, 0x00, 0x59, 0x00, 0x00, // R....@...,...Y..
|
||||||
|
0x04, 0x46, 0x8e, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0xab, 0x00, 0x00, 0x00, 0x5a, 0x00, 0x00, // .F. .........Z..
|
||||||
|
0x03, 0x00, 0x60, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x58, 0x18, 0x00, 0x04, 0x00, 0x70, 0x10, // ..`......X....p.
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x55, 0x55, 0x00, 0x00, 0x62, 0x10, 0x00, 0x03, 0x32, 0x10, 0x10, // .....UU..b...2..
|
||||||
|
0x00, 0x01, 0x00, 0x00, 0x00, 0x65, 0x00, 0x00, 0x03, 0xf2, 0x20, 0x10, 0x00, 0x00, 0x00, 0x00, // .....e.... .....
|
||||||
|
0x00, 0x68, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x00, 0x48, 0x00, 0x00, 0x0c, 0xf2, 0x00, 0x10, // .h.......H......
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x46, 0x10, 0x10, 0x00, 0x01, 0x00, 0x00, 0x00, 0x46, 0x7e, 0x10, // .....F.......F~.
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x60, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1a, 0x80, 0x20, // ......`........
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0xaa, 0x00, 0x00, 0x00, 0x36, 0x00, 0x00, 0x05, 0x72, 0x20, 0x10, // .........6...r .
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x46, 0x02, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x36, 0x00, 0x00, // .....F.......6..
|
||||||
|
0x05, 0x82, 0x20, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x40, 0x00, 0x00, 0x00, 0x00, 0x80, // .. .......@.....
|
||||||
|
0x3f, 0x3e, 0x00, 0x00, 0x01, 0x53, 0x54, 0x41, 0x54, 0x74, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, // ?>...STATt......
|
||||||
|
0x00, 0x01, 0x00, 0x00, 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, 0x01, 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, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // ................
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 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, 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, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // ................
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // ................
|
||||||
0x00, 0x00, // ..
|
0x00, 0xb0, 0x0a, // ...
|
||||||
};
|
};
|
||||||
|
|
|
@ -7,12 +7,12 @@ $input v_texcoord0
|
||||||
|
|
||||||
#include <bgfx_shader.sh>
|
#include <bgfx_shader.sh>
|
||||||
|
|
||||||
|
uniform float u_imageLod;
|
||||||
SAMPLER2D(u_texColor, 0);
|
SAMPLER2D(u_texColor, 0);
|
||||||
|
|
||||||
void main()
|
void main()
|
||||||
{
|
{
|
||||||
vec4 color = texture2D(u_texColor, v_texcoord0);
|
vec4 color = texture2DLod(u_texColor, v_texcoord0, u_imageLod);
|
||||||
|
|
||||||
gl_FragColor = vec4(color.xyz, 1.0);
|
gl_FragColor = vec4(color.xyz, 1.0);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -27,6 +27,7 @@
|
||||||
#include <bx/string.h>
|
#include <bx/string.h>
|
||||||
#include <bx/uint32_t.h>
|
#include <bx/uint32_t.h>
|
||||||
#include <bx/fpumath.h>
|
#include <bx/fpumath.h>
|
||||||
|
#include <bx/handlealloc.h>
|
||||||
#include <bgfx.h>
|
#include <bgfx.h>
|
||||||
|
|
||||||
#include "../entry/dbg.h"
|
#include "../entry/dbg.h"
|
||||||
|
@ -43,6 +44,8 @@
|
||||||
|
|
||||||
#define USE_NANOVG_FONT 0
|
#define USE_NANOVG_FONT 0
|
||||||
|
|
||||||
|
#define IMGUI_CONFIG_MAX_FONTS 20
|
||||||
|
|
||||||
#define MAX_TEMP_COORDS 100
|
#define MAX_TEMP_COORDS 100
|
||||||
#define NUM_CIRCLE_VERTS (8 * 4)
|
#define NUM_CIRCLE_VERTS (8 * 4)
|
||||||
|
|
||||||
|
@ -296,14 +299,13 @@ struct Imgui
|
||||||
, m_halfTexel(0.0f)
|
, m_halfTexel(0.0f)
|
||||||
, m_nvg(NULL)
|
, m_nvg(NULL)
|
||||||
, m_view(31)
|
, m_view(31)
|
||||||
|
, m_currentFontIdx(0)
|
||||||
{
|
{
|
||||||
m_invTextureWidth = 1.0f/m_textureWidth;
|
m_invTextureWidth = 1.0f/m_textureWidth;
|
||||||
m_invTextureHeight = 1.0f/m_textureHeight;
|
m_invTextureHeight = 1.0f/m_textureHeight;
|
||||||
|
|
||||||
|
u_imageLod.idx = bgfx::invalidHandle;
|
||||||
u_texColor.idx = bgfx::invalidHandle;
|
u_texColor.idx = bgfx::invalidHandle;
|
||||||
#if !USE_NANOVG_FONT
|
|
||||||
m_fontTexture.idx = bgfx::invalidHandle;
|
|
||||||
#endif // !USE_NANOVG_FONT
|
|
||||||
m_missingTexture.idx = bgfx::invalidHandle;
|
m_missingTexture.idx = bgfx::invalidHandle;
|
||||||
|
|
||||||
m_colorProgram.idx = bgfx::invalidHandle;
|
m_colorProgram.idx = bgfx::invalidHandle;
|
||||||
|
@ -311,11 +313,32 @@ struct Imgui
|
||||||
m_imageProgram.idx = bgfx::invalidHandle;
|
m_imageProgram.idx = bgfx::invalidHandle;
|
||||||
}
|
}
|
||||||
|
|
||||||
bool create(const void* _data)
|
ImguiFontHandle createFont(const void* _data, float _fontSize)
|
||||||
|
{
|
||||||
|
#if !USE_NANOVG_FONT
|
||||||
|
const ImguiFontHandle handle = { m_fontHandle.alloc() };
|
||||||
|
const bgfx::Memory* mem = bgfx::alloc(m_textureWidth * m_textureHeight);
|
||||||
|
stbtt_BakeFontBitmap( (uint8_t*)_data, 0, _fontSize, mem->data, m_textureWidth, m_textureHeight, 32, 96, m_fonts[handle.idx].m_cdata);
|
||||||
|
m_fonts[handle.idx].m_texture = bgfx::createTexture2D(m_textureWidth, m_textureHeight, 1, bgfx::TextureFormat::R8, BGFX_TEXTURE_NONE, mem);
|
||||||
|
#else
|
||||||
|
const ImguiFontHandle handle = { bgfx::invalidHandle };
|
||||||
|
#endif // !USE_NANOVG_FONT
|
||||||
|
return handle;
|
||||||
|
}
|
||||||
|
|
||||||
|
void setFont(ImguiFontHandle _handle)
|
||||||
|
{
|
||||||
|
if (isValid(_handle) )
|
||||||
|
{
|
||||||
|
m_currentFontIdx = _handle.idx;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
ImguiFontHandle create(const void* _data, float _fontSize)
|
||||||
{
|
{
|
||||||
m_nvg = nvgCreate(512, 512, 1, m_view);
|
m_nvg = nvgCreate(512, 512, 1, m_view);
|
||||||
nvgCreateFontMem(m_nvg, "default", (unsigned char*)_data, INT32_MAX, 0);
|
nvgCreateFontMem(m_nvg, "default", (unsigned char*)_data, INT32_MAX, 0);
|
||||||
nvgFontSize(m_nvg, 15.0f);
|
nvgFontSize(m_nvg, _fontSize);
|
||||||
nvgFontFace(m_nvg, "default");
|
nvgFontFace(m_nvg, "default");
|
||||||
|
|
||||||
for (int32_t ii = 0; ii < NUM_CIRCLE_VERTS; ++ii)
|
for (int32_t ii = 0; ii < NUM_CIRCLE_VERTS; ++ii)
|
||||||
|
@ -329,6 +352,7 @@ struct Imgui
|
||||||
PosColorUvVertex::init();
|
PosColorUvVertex::init();
|
||||||
PosUvVertex::init();
|
PosUvVertex::init();
|
||||||
|
|
||||||
|
u_imageLod = bgfx::createUniform("u_imageLod", bgfx::UniformType::Uniform1f);
|
||||||
u_texColor = bgfx::createUniform("u_texColor", bgfx::UniformType::Uniform1i);
|
u_texColor = bgfx::createUniform("u_texColor", bgfx::UniformType::Uniform1i);
|
||||||
|
|
||||||
const bgfx::Memory* vs_imgui_color;
|
const bgfx::Memory* vs_imgui_color;
|
||||||
|
@ -390,22 +414,30 @@ struct Imgui
|
||||||
bgfx::destroyShader(vsh);
|
bgfx::destroyShader(vsh);
|
||||||
bgfx::destroyShader(fsh);
|
bgfx::destroyShader(fsh);
|
||||||
|
|
||||||
#if !USE_NANOVG_FONT
|
const bgfx::Memory* texMem = bgfx::makeRef(s_xTexture, sizeof(s_xTexture));
|
||||||
const bgfx::Memory* mem = bgfx::alloc(m_textureWidth * m_textureHeight);
|
m_missingTexture = bgfx::createTexture(texMem);
|
||||||
stbtt_BakeFontBitmap( (uint8_t*)_data, 0, 15.0f, mem->data, m_textureWidth, m_textureHeight, 32, 96, m_cdata);
|
|
||||||
m_fontTexture = bgfx::createTexture2D(m_textureWidth, m_textureHeight, 1, bgfx::TextureFormat::R8, BGFX_TEXTURE_NONE, mem);
|
|
||||||
#endif // !USE_NANOVG_FONT
|
|
||||||
mem = bgfx::makeRef(s_xTexture, sizeof(s_xTexture));
|
|
||||||
m_missingTexture = bgfx::createTexture(mem);
|
|
||||||
|
|
||||||
return true;
|
#if !USE_NANOVG_FONT
|
||||||
|
const ImguiFontHandle handle = createFont(_data, _fontSize);
|
||||||
|
m_currentFontIdx = handle.idx;
|
||||||
|
#else
|
||||||
|
const ImguiFontHandle handle = { bgfx::invalidHandle };
|
||||||
|
#endif // !USE_NANOVG_FONT
|
||||||
|
return handle;
|
||||||
}
|
}
|
||||||
|
|
||||||
void destroy()
|
void destroy()
|
||||||
{
|
{
|
||||||
|
bgfx::destroyUniform(u_imageLod);
|
||||||
bgfx::destroyUniform(u_texColor);
|
bgfx::destroyUniform(u_texColor);
|
||||||
#if !USE_NANOVG_FONT
|
#if !USE_NANOVG_FONT
|
||||||
bgfx::destroyTexture(m_fontTexture);
|
for (uint16_t ii = 0; ii < IMGUI_CONFIG_MAX_FONTS; ++ii)
|
||||||
|
{
|
||||||
|
if (bgfx::isValid(m_fonts[ii].m_texture) )
|
||||||
|
{
|
||||||
|
bgfx::destroyTexture(m_fonts[ii].m_texture);
|
||||||
|
}
|
||||||
|
}
|
||||||
#endif // !USE_NANOVG_FONT
|
#endif // !USE_NANOVG_FONT
|
||||||
bgfx::destroyTexture(m_missingTexture);
|
bgfx::destroyTexture(m_missingTexture);
|
||||||
bgfx::destroyProgram(m_colorProgram);
|
bgfx::destroyProgram(m_colorProgram);
|
||||||
|
@ -885,7 +917,7 @@ struct Imgui
|
||||||
return res;
|
return res;
|
||||||
}
|
}
|
||||||
|
|
||||||
void image(bgfx::TextureHandle _image, int32_t _width, int32_t _height, ImguiImageAlign::Enum _align)
|
void image(bgfx::TextureHandle _image, float _lod, int32_t _width, int32_t _height, ImguiImageAlign::Enum _align)
|
||||||
{
|
{
|
||||||
int32_t xx;
|
int32_t xx;
|
||||||
if (ImguiImageAlign::Left == _align)
|
if (ImguiImageAlign::Left == _align)
|
||||||
|
@ -913,6 +945,7 @@ struct Imgui
|
||||||
m_widgetY += _height + DEFAULT_SPACING;
|
m_widgetY += _height + DEFAULT_SPACING;
|
||||||
|
|
||||||
screenQuad(xx, yy, _width, _height);
|
screenQuad(xx, yy, _width, _height);
|
||||||
|
bgfx::setUniform(u_imageLod, &_lod);
|
||||||
bgfx::setTexture(0, u_texColor, bgfx::isValid(_image) ? _image : m_missingTexture);
|
bgfx::setTexture(0, u_texColor, bgfx::isValid(_image) ? _image : m_missingTexture);
|
||||||
bgfx::setState(BGFX_STATE_RGB_WRITE|BGFX_STATE_ALPHA_WRITE);
|
bgfx::setState(BGFX_STATE_RGB_WRITE|BGFX_STATE_ALPHA_WRITE);
|
||||||
bgfx::setProgram(m_imageProgram);
|
bgfx::setProgram(m_imageProgram);
|
||||||
|
@ -920,12 +953,12 @@ struct Imgui
|
||||||
bgfx::submit(m_view);
|
bgfx::submit(m_view);
|
||||||
}
|
}
|
||||||
|
|
||||||
void image(bgfx::TextureHandle _image, float _width, float _aspect, ImguiImageAlign::Enum _align)
|
void image(bgfx::TextureHandle _image, float _lod, float _width, float _aspect, ImguiImageAlign::Enum _align)
|
||||||
{
|
{
|
||||||
const float width = _width*float(m_scrollAreaInnerWidth);
|
const float width = _width*float(m_scrollAreaInnerWidth);
|
||||||
const float height = width/_aspect;
|
const float height = width/_aspect;
|
||||||
|
|
||||||
image(_image, int32_t(width), int32_t(height), _align);
|
image(_image, _lod, int32_t(width), int32_t(height), _align);
|
||||||
}
|
}
|
||||||
|
|
||||||
bool collapse(const char* _text, const char* _subtext, bool _checked, bool _enabled)
|
bool collapse(const char* _text, const char* _subtext, bool _checked, bool _enabled)
|
||||||
|
@ -1495,15 +1528,15 @@ struct Imgui
|
||||||
uint32_t numVertices = 0;
|
uint32_t numVertices = 0;
|
||||||
if (_align == ImguiTextAlign::Center)
|
if (_align == ImguiTextAlign::Center)
|
||||||
{
|
{
|
||||||
_x -= getTextLength(m_cdata, _text, numVertices) / 2;
|
_x -= getTextLength(m_fonts[m_currentFontIdx].m_cdata, _text, numVertices) / 2;
|
||||||
}
|
}
|
||||||
else if (_align == ImguiTextAlign::Right)
|
else if (_align == ImguiTextAlign::Right)
|
||||||
{
|
{
|
||||||
_x -= getTextLength(m_cdata, _text, numVertices);
|
_x -= getTextLength(m_fonts[m_currentFontIdx].m_cdata, _text, numVertices);
|
||||||
}
|
}
|
||||||
else // just count vertices
|
else // just count vertices
|
||||||
{
|
{
|
||||||
getTextLength(m_cdata, _text, numVertices);
|
getTextLength(m_fonts[m_currentFontIdx].m_cdata, _text, numVertices);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (bgfx::checkAvailTransientVertexBuffer(numVertices, PosColorUvVertex::ms_decl) )
|
if (bgfx::checkAvailTransientVertexBuffer(numVertices, PosColorUvVertex::ms_decl) )
|
||||||
|
@ -1533,7 +1566,7 @@ struct Imgui
|
||||||
&& ch < 128)
|
&& ch < 128)
|
||||||
{
|
{
|
||||||
stbtt_aligned_quad quad;
|
stbtt_aligned_quad quad;
|
||||||
getBakedQuad(m_cdata, ch - 32, &_x, &_y, &quad);
|
getBakedQuad(m_fonts[m_currentFontIdx].m_cdata, ch - 32, &_x, &_y, &quad);
|
||||||
|
|
||||||
vertex->m_x = quad.x0;
|
vertex->m_x = quad.x0;
|
||||||
vertex->m_y = quad.y0;
|
vertex->m_y = quad.y0;
|
||||||
|
@ -1581,7 +1614,7 @@ struct Imgui
|
||||||
++_text;
|
++_text;
|
||||||
}
|
}
|
||||||
|
|
||||||
bgfx::setTexture(0, u_texColor, m_fontTexture);
|
bgfx::setTexture(0, u_texColor, m_fonts[m_currentFontIdx].m_texture);
|
||||||
bgfx::setVertexBuffer(&tvb);
|
bgfx::setVertexBuffer(&tvb);
|
||||||
bgfx::setState(0
|
bgfx::setState(0
|
||||||
| BGFX_STATE_RGB_WRITE
|
| BGFX_STATE_RGB_WRITE
|
||||||
|
@ -1949,23 +1982,42 @@ struct Imgui
|
||||||
NVGcontext* m_nvg;
|
NVGcontext* m_nvg;
|
||||||
|
|
||||||
uint8_t m_view;
|
uint8_t m_view;
|
||||||
|
|
||||||
|
#if !USE_NANOVG_FONT
|
||||||
|
struct Font
|
||||||
|
{
|
||||||
|
stbtt_bakedchar m_cdata[96]; // ASCII 32..126 is 95 glyphs
|
||||||
|
bgfx::TextureHandle m_texture;
|
||||||
|
};
|
||||||
|
|
||||||
|
uint16_t m_currentFontIdx;
|
||||||
|
bx::HandleAllocT<IMGUI_CONFIG_MAX_FONTS> m_fontHandle;
|
||||||
|
Font m_fonts[IMGUI_CONFIG_MAX_FONTS];
|
||||||
|
#endif // !USE_NANOVG_FONT
|
||||||
|
|
||||||
|
bgfx::UniformHandle u_imageLod;
|
||||||
bgfx::UniformHandle u_texColor;
|
bgfx::UniformHandle u_texColor;
|
||||||
bgfx::ProgramHandle m_colorProgram;
|
bgfx::ProgramHandle m_colorProgram;
|
||||||
bgfx::ProgramHandle m_textureProgram;
|
bgfx::ProgramHandle m_textureProgram;
|
||||||
bgfx::ProgramHandle m_imageProgram;
|
bgfx::ProgramHandle m_imageProgram;
|
||||||
|
|
||||||
#if !USE_NANOVG_FONT
|
|
||||||
stbtt_bakedchar m_cdata[96]; // ASCII 32..126 is 95 glyphs
|
|
||||||
bgfx::TextureHandle m_fontTexture;
|
|
||||||
#endif // !USE_NANOVG_FONT
|
|
||||||
bgfx::TextureHandle m_missingTexture;
|
bgfx::TextureHandle m_missingTexture;
|
||||||
};
|
};
|
||||||
|
|
||||||
static Imgui s_imgui;
|
static Imgui s_imgui;
|
||||||
|
|
||||||
bool imguiCreate(const void* _data)
|
ImguiFontHandle imguiCreate(const void* _data, float _fontSize)
|
||||||
{
|
{
|
||||||
return s_imgui.create(_data);
|
return s_imgui.create(_data, _fontSize);
|
||||||
|
}
|
||||||
|
|
||||||
|
void imguiSetFont(ImguiFontHandle _handle)
|
||||||
|
{
|
||||||
|
s_imgui.setFont(_handle);
|
||||||
|
}
|
||||||
|
|
||||||
|
ImguiFontHandle imguiCreateFont(const void* _data, float _fontSize)
|
||||||
|
{
|
||||||
|
return s_imgui.createFont(_data, _fontSize);
|
||||||
}
|
}
|
||||||
|
|
||||||
void imguiDestroy()
|
void imguiDestroy()
|
||||||
|
@ -1990,7 +2042,7 @@ bool imguiBeginScrollArea(const char* _name, int32_t _x, int32_t _y, int32_t _wi
|
||||||
|
|
||||||
void imguiEndScrollArea()
|
void imguiEndScrollArea()
|
||||||
{
|
{
|
||||||
return s_imgui.endScrollArea();
|
s_imgui.endScrollArea();
|
||||||
}
|
}
|
||||||
|
|
||||||
void imguiIndent()
|
void imguiIndent()
|
||||||
|
@ -2132,12 +2184,12 @@ void imguiColorWheel(const char* _text, float _rgb[3], bool& _activated, bool _e
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void imguiImage(bgfx::TextureHandle _image, int32_t _width, int32_t _height, ImguiImageAlign::Enum _align)
|
void imguiImage(bgfx::TextureHandle _image, float _lod, int32_t _width, int32_t _height, ImguiImageAlign::Enum _align)
|
||||||
{
|
{
|
||||||
return s_imgui.image(_image, _width, _height, _align);
|
s_imgui.image(_image, _lod, _width, _height, _align);
|
||||||
}
|
}
|
||||||
|
|
||||||
void imguiImage(bgfx::TextureHandle _image, float _width, float _aspect, ImguiImageAlign::Enum _align)
|
void imguiImage(bgfx::TextureHandle _image, float _lod, float _width, float _aspect, ImguiImageAlign::Enum _align)
|
||||||
{
|
{
|
||||||
return s_imgui.image(_image, _width, _aspect, _align);
|
s_imgui.image(_image, _lod, _width, _aspect, _align);
|
||||||
}
|
}
|
||||||
|
|
|
@ -63,7 +63,12 @@ inline uint32_t imguiRGBA(uint8_t _r, uint8_t _g, uint8_t _b, uint8_t _a = 255)
|
||||||
;
|
;
|
||||||
}
|
}
|
||||||
|
|
||||||
bool imguiCreate(const void* _data);
|
BGFX_HANDLE(ImguiFontHandle);
|
||||||
|
|
||||||
|
ImguiFontHandle imguiCreateFont(const void* _data, float _fontSize=15.0f);
|
||||||
|
void imguiSetFont(ImguiFontHandle _handle);
|
||||||
|
|
||||||
|
ImguiFontHandle imguiCreate(const void* _data, float _fontSize=15.0f);
|
||||||
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);
|
||||||
|
@ -98,7 +103,7 @@ void imguiBool(const char* _text, bool& _flag, bool _enabled = true);
|
||||||
void imguiColorWheel(float _rgb[3], bool _respectIndentation = false, bool _enabled = true);
|
void imguiColorWheel(float _rgb[3], bool _respectIndentation = false, bool _enabled = true);
|
||||||
void imguiColorWheel(const char* _str, float _rgb[3], bool& _activated, bool _enabled = true);
|
void imguiColorWheel(const char* _str, float _rgb[3], bool& _activated, bool _enabled = true);
|
||||||
|
|
||||||
void imguiImage(bgfx::TextureHandle _image, int32_t _width, int32_t _height, ImguiImageAlign::Enum _align = ImguiImageAlign::LeftIndented);
|
void imguiImage(bgfx::TextureHandle _image, float _lod, int32_t _width, int32_t _height, ImguiImageAlign::Enum _align = ImguiImageAlign::LeftIndented);
|
||||||
void imguiImage(bgfx::TextureHandle _image, float _width, float _aspect, ImguiImageAlign::Enum _align = ImguiImageAlign::LeftIndented); //_width is in [0.0-1.0] range.
|
void imguiImage(bgfx::TextureHandle _image, float _lod, float _width, float _aspect, ImguiImageAlign::Enum _align = ImguiImageAlign::LeftIndented); //_width is in [0.0-1.0] range.
|
||||||
|
|
||||||
#endif // IMGUI_H_HEADER_GUARD
|
#endif // IMGUI_H_HEADER_GUARD
|
||||||
|
|
Loading…
Reference in a new issue