mirror of
https://github.com/scratchfoundation/bgfx.git
synced 2024-11-28 18:45:54 -05:00
Added imguiImage().
This commit is contained in:
parent
f9b17cc0ec
commit
7c4d69b0a1
7 changed files with 2925 additions and 0 deletions
2512
examples/common/imgui/dds_imgui_x_texture.h
Normal file
2512
examples/common/imgui/dds_imgui_x_texture.h
Normal file
File diff suppressed because it is too large
Load diff
85
examples/common/imgui/fs_imgui_image.bin.h
Normal file
85
examples/common/imgui/fs_imgui_image.bin.h
Normal file
|
@ -0,0 +1,85 @@
|
||||||
|
static const uint8_t fs_imgui_image_glsl[241] =
|
||||||
|
{
|
||||||
|
0x46, 0x53, 0x48, 0x02, 0x6f, 0x1e, 0x3e, 0x3c, 0x01, 0x00, 0x0a, 0x75, 0x5f, 0x74, 0x65, 0x78, // FSH.o.><...u_tex
|
||||||
|
0x43, 0x6f, 0x6c, 0x6f, 0x72, 0x00, 0x01, 0x00, 0x00, 0x01, 0x00, 0xd1, 0x00, 0x00, 0x00, 0x76, // Color..........v
|
||||||
|
0x61, 0x72, 0x79, 0x69, 0x6e, 0x67, 0x20, 0x6d, 0x65, 0x64, 0x69, 0x75, 0x6d, 0x70, 0x20, 0x76, // arying mediump v
|
||||||
|
0x65, 0x63, 0x32, 0x20, 0x76, 0x5f, 0x74, 0x65, 0x78, 0x63, 0x6f, 0x6f, 0x72, 0x64, 0x30, 0x3b, // ec2 v_texcoord0;
|
||||||
|
0x0a, 0x75, 0x6e, 0x69, 0x66, 0x6f, 0x72, 0x6d, 0x20, 0x73, 0x61, 0x6d, 0x70, 0x6c, 0x65, 0x72, // .uniform sampler
|
||||||
|
0x32, 0x44, 0x20, 0x75, 0x5f, 0x74, 0x65, 0x78, 0x43, 0x6f, 0x6c, 0x6f, 0x72, 0x3b, 0x0a, 0x76, // 2D u_texColor;.v
|
||||||
|
0x6f, 0x69, 0x64, 0x20, 0x6d, 0x61, 0x69, 0x6e, 0x20, 0x28, 0x29, 0x0a, 0x7b, 0x0a, 0x20, 0x20, // oid main ().{.
|
||||||
|
0x6c, 0x6f, 0x77, 0x70, 0x20, 0x76, 0x65, 0x63, 0x34, 0x20, 0x74, 0x6d, 0x70, 0x76, 0x61, 0x72, // lowp vec4 tmpvar
|
||||||
|
0x5f, 0x31, 0x3b, 0x0a, 0x20, 0x20, 0x74, 0x6d, 0x70, 0x76, 0x61, 0x72, 0x5f, 0x31, 0x2e, 0x77, // _1;. tmpvar_1.w
|
||||||
|
0x20, 0x3d, 0x20, 0x31, 0x2e, 0x30, 0x3b, 0x0a, 0x20, 0x20, 0x74, 0x6d, 0x70, 0x76, 0x61, 0x72, // = 1.0;. tmpvar
|
||||||
|
0x5f, 0x31, 0x2e, 0x78, 0x79, 0x7a, 0x20, 0x3d, 0x20, 0x74, 0x65, 0x78, 0x74, 0x75, 0x72, 0x65, // _1.xyz = texture
|
||||||
|
0x32, 0x44, 0x20, 0x28, 0x75, 0x5f, 0x74, 0x65, 0x78, 0x43, 0x6f, 0x6c, 0x6f, 0x72, 0x2c, 0x20, // 2D (u_texColor,
|
||||||
|
0x76, 0x5f, 0x74, 0x65, 0x78, 0x63, 0x6f, 0x6f, 0x72, 0x64, 0x30, 0x29, 0x2e, 0x78, 0x79, 0x7a, // v_texcoord0).xyz
|
||||||
|
0x3b, 0x0a, 0x20, 0x20, 0x67, 0x6c, 0x5f, 0x46, 0x72, 0x61, 0x67, 0x43, 0x6f, 0x6c, 0x6f, 0x72, // ;. gl_FragColor
|
||||||
|
0x20, 0x3d, 0x20, 0x74, 0x6d, 0x70, 0x76, 0x61, 0x72, 0x5f, 0x31, 0x3b, 0x0a, 0x7d, 0x0a, 0x0a, // = tmpvar_1;.}..
|
||||||
|
0x00, // .
|
||||||
|
};
|
||||||
|
static const uint8_t fs_imgui_image_dx9[249] =
|
||||||
|
{
|
||||||
|
0x46, 0x53, 0x48, 0x02, 0x6f, 0x1e, 0x3e, 0x3c, 0x00, 0x00, 0xec, 0x00, 0x00, 0x03, 0xff, 0xff, // FSH.o.><........
|
||||||
|
0xfe, 0xff, 0x22, 0x00, 0x43, 0x54, 0x41, 0x42, 0x1c, 0x00, 0x00, 0x00, 0x53, 0x00, 0x00, 0x00, // ..".CTAB....S...
|
||||||
|
0x00, 0x03, 0xff, 0xff, 0x01, 0x00, 0x00, 0x00, 0x1c, 0x00, 0x00, 0x00, 0x00, 0x81, 0x00, 0x00, // ................
|
||||||
|
0x4c, 0x00, 0x00, 0x00, 0x30, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x01, 0x00, 0x02, 0x00, // L...0...........
|
||||||
|
0x3c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x75, 0x5f, 0x74, 0x65, 0x78, 0x43, 0x6f, 0x6c, // <.......u_texCol
|
||||||
|
0x6f, 0x72, 0x00, 0xab, 0x04, 0x00, 0x0c, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x00, 0x00, // or..............
|
||||||
|
0x00, 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, 0x51, 0x00, 0x00, 0x05, // 29.952.3111.Q...
|
||||||
|
0x00, 0x00, 0x0f, 0xa0, 0x00, 0x00, 0x80, 0x3f, 0x00, 0x00, 0x00, 0x00, 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, 0x42, 0x00, 0x00, 0x03, // ............B...
|
||||||
|
0x00, 0x00, 0x0f, 0x80, 0x00, 0x00, 0xe4, 0x90, 0x00, 0x08, 0xe4, 0xa0, 0x01, 0x00, 0x00, 0x02, // ................
|
||||||
|
0x00, 0x08, 0x07, 0x80, 0x00, 0x00, 0xe4, 0x80, 0x01, 0x00, 0x00, 0x02, 0x00, 0x08, 0x08, 0x80, // ................
|
||||||
|
0x00, 0x00, 0x00, 0xa0, 0xff, 0xff, 0x00, 0x00, 0x00, // .........
|
||||||
|
};
|
||||||
|
static const uint8_t fs_imgui_image_dx11[690] =
|
||||||
|
{
|
||||||
|
0x46, 0x53, 0x48, 0x02, 0x6f, 0x1e, 0x3e, 0x3c, 0x00, 0x00, 0x94, 0x02, 0x44, 0x58, 0x42, 0x43, // FSH.o.><....DXBC
|
||||||
|
0xcd, 0xd6, 0xda, 0x96, 0x8b, 0x39, 0x48, 0x47, 0x0c, 0xe7, 0xf1, 0x11, 0x25, 0xc9, 0x14, 0x8f, // .....9HG....%...
|
||||||
|
0x01, 0x00, 0x00, 0x00, 0x94, 0x02, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 0x34, 0x00, 0x00, 0x00, // ............4...
|
||||||
|
0xf0, 0x00, 0x00, 0x00, 0x48, 0x01, 0x00, 0x00, 0x7c, 0x01, 0x00, 0x00, 0x18, 0x02, 0x00, 0x00, // ....H...|.......
|
||||||
|
0x52, 0x44, 0x45, 0x46, 0xb4, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // RDEF............
|
||||||
|
0x02, 0x00, 0x00, 0x00, 0x1c, 0x00, 0x00, 0x00, 0x00, 0x04, 0xff, 0xff, 0x00, 0x91, 0x00, 0x00, // ................
|
||||||
|
0x80, 0x00, 0x00, 0x00, 0x5c, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // ................
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, // ................
|
||||||
|
0x01, 0x00, 0x00, 0x00, 0x6e, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, // ....n...........
|
||||||
|
0x04, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, // ................
|
||||||
|
0x0d, 0x00, 0x00, 0x00, 0x75, 0x5f, 0x74, 0x65, 0x78, 0x43, 0x6f, 0x6c, 0x6f, 0x72, 0x53, 0x61, // ....u_texColorSa
|
||||||
|
0x6d, 0x70, 0x6c, 0x65, 0x72, 0x00, 0x75, 0x5f, 0x74, 0x65, 0x78, 0x43, 0x6f, 0x6c, 0x6f, 0x72, // mpler.u_texColor
|
||||||
|
0x54, 0x65, 0x78, 0x74, 0x75, 0x72, 0x65, 0x00, 0x4d, 0x69, 0x63, 0x72, 0x6f, 0x73, 0x6f, 0x66, // Texture.Microsof
|
||||||
|
0x74, 0x20, 0x28, 0x52, 0x29, 0x20, 0x48, 0x4c, 0x53, 0x4c, 0x20, 0x53, 0x68, 0x61, 0x64, 0x65, // t (R) HLSL Shade
|
||||||
|
0x72, 0x20, 0x43, 0x6f, 0x6d, 0x70, 0x69, 0x6c, 0x65, 0x72, 0x20, 0x39, 0x2e, 0x32, 0x39, 0x2e, // r Compiler 9.29.
|
||||||
|
0x39, 0x35, 0x32, 0x2e, 0x33, 0x31, 0x31, 0x31, 0x00, 0xab, 0xab, 0xab, 0x49, 0x53, 0x47, 0x4e, // 952.3111....ISGN
|
||||||
|
0x50, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x38, 0x00, 0x00, 0x00, // P...........8...
|
||||||
|
0x00, 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, // ....D...........
|
||||||
|
0x03, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x03, 0x03, 0x00, 0x00, 0x53, 0x56, 0x5f, 0x50, // ............SV_P
|
||||||
|
0x4f, 0x53, 0x49, 0x54, 0x49, 0x4f, 0x4e, 0x00, 0x54, 0x45, 0x58, 0x43, 0x4f, 0x4f, 0x52, 0x44, // OSITION.TEXCOORD
|
||||||
|
0x00, 0xab, 0xab, 0xab, 0x4f, 0x53, 0x47, 0x4e, 0x2c, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, // ....OSGN,.......
|
||||||
|
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, // ............SV_T
|
||||||
|
0x41, 0x52, 0x47, 0x45, 0x54, 0x00, 0xab, 0xab, 0x53, 0x48, 0x44, 0x52, 0x94, 0x00, 0x00, 0x00, // ARGET...SHDR....
|
||||||
|
0x40, 0x00, 0x00, 0x00, 0x25, 0x00, 0x00, 0x00, 0x5a, 0x00, 0x00, 0x03, 0x00, 0x60, 0x10, 0x00, // @...%...Z....`..
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x58, 0x18, 0x00, 0x04, 0x00, 0x70, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, // ....X....p......
|
||||||
|
0x55, 0x55, 0x00, 0x00, 0x62, 0x10, 0x00, 0x03, 0x32, 0x10, 0x10, 0x00, 0x01, 0x00, 0x00, 0x00, // UU..b...2.......
|
||||||
|
0x65, 0x00, 0x00, 0x03, 0xf2, 0x20, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x68, 0x00, 0x00, 0x02, // e.... ......h...
|
||||||
|
0x01, 0x00, 0x00, 0x00, 0x45, 0x00, 0x00, 0x09, 0xf2, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, // ....E...........
|
||||||
|
0x46, 0x10, 0x10, 0x00, 0x01, 0x00, 0x00, 0x00, 0x46, 0x7e, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, // F.......F~......
|
||||||
|
0x00, 0x60, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x36, 0x00, 0x00, 0x05, 0x72, 0x20, 0x10, 0x00, // .`......6...r ..
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x46, 0x02, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x36, 0x00, 0x00, 0x05, // ....F.......6...
|
||||||
|
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, 0x00, // >...STATt.......
|
||||||
|
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, 0x01, 0x00, 0x00, 0x00, 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, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // ................
|
||||||
|
0x00, 0x00, // ..
|
||||||
|
};
|
18
examples/common/imgui/fs_imgui_image.sc
Normal file
18
examples/common/imgui/fs_imgui_image.sc
Normal file
|
@ -0,0 +1,18 @@
|
||||||
|
$input v_texcoord0
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Copyright 2014 Dario Manesku. All rights reserved.
|
||||||
|
* License: http://www.opensource.org/licenses/BSD-2-Clause
|
||||||
|
*/
|
||||||
|
|
||||||
|
#include <bgfx_shader.sh>
|
||||||
|
|
||||||
|
SAMPLER2D(u_texColor, 0);
|
||||||
|
|
||||||
|
void main()
|
||||||
|
{
|
||||||
|
vec4 color = texture2D(u_texColor, v_texcoord0);
|
||||||
|
|
||||||
|
gl_FragColor = vec4(color.xyz, 1.0);
|
||||||
|
}
|
||||||
|
|
|
@ -37,6 +37,9 @@
|
||||||
#include "fs_imgui_color.bin.h"
|
#include "fs_imgui_color.bin.h"
|
||||||
#include "vs_imgui_texture.bin.h"
|
#include "vs_imgui_texture.bin.h"
|
||||||
#include "fs_imgui_texture.bin.h"
|
#include "fs_imgui_texture.bin.h"
|
||||||
|
#include "vs_imgui_image.bin.h"
|
||||||
|
#include "fs_imgui_image.bin.h"
|
||||||
|
#include "dds_imgui_x_texture.h"
|
||||||
|
|
||||||
#define USE_NANOVG_FONT 0
|
#define USE_NANOVG_FONT 0
|
||||||
|
|
||||||
|
@ -227,6 +230,27 @@ namespace
|
||||||
|
|
||||||
bgfx::VertexDecl PosColorUvVertex::ms_decl;
|
bgfx::VertexDecl PosColorUvVertex::ms_decl;
|
||||||
|
|
||||||
|
struct PosUvVertex
|
||||||
|
{
|
||||||
|
float m_x;
|
||||||
|
float m_y;
|
||||||
|
float m_u;
|
||||||
|
float m_v;
|
||||||
|
|
||||||
|
static void init()
|
||||||
|
{
|
||||||
|
ms_decl
|
||||||
|
.begin()
|
||||||
|
.add(bgfx::Attrib::Position, 2, bgfx::AttribType::Float)
|
||||||
|
.add(bgfx::Attrib::TexCoord0, 2, bgfx::AttribType::Float)
|
||||||
|
.end();
|
||||||
|
}
|
||||||
|
|
||||||
|
static bgfx::VertexDecl ms_decl;
|
||||||
|
};
|
||||||
|
|
||||||
|
bgfx::VertexDecl PosUvVertex::ms_decl;
|
||||||
|
|
||||||
} // namespace
|
} // namespace
|
||||||
|
|
||||||
struct Imgui
|
struct Imgui
|
||||||
|
@ -259,6 +283,7 @@ struct Imgui
|
||||||
, m_scrollRight(0)
|
, m_scrollRight(0)
|
||||||
, m_scrollAreaTop(0)
|
, m_scrollAreaTop(0)
|
||||||
, m_scrollAreaWidth(0)
|
, m_scrollAreaWidth(0)
|
||||||
|
, m_scrollAreaInnerWidth(0)
|
||||||
, m_scrollAreaX(0)
|
, m_scrollAreaX(0)
|
||||||
, m_scrollVal(NULL)
|
, m_scrollVal(NULL)
|
||||||
, m_focusTop(0)
|
, m_focusTop(0)
|
||||||
|
@ -278,8 +303,11 @@ struct Imgui
|
||||||
#if !USE_NANOVG_FONT
|
#if !USE_NANOVG_FONT
|
||||||
m_fontTexture.idx = bgfx::invalidHandle;
|
m_fontTexture.idx = bgfx::invalidHandle;
|
||||||
#endif // !USE_NANOVG_FONT
|
#endif // !USE_NANOVG_FONT
|
||||||
|
m_xTexture.idx = bgfx::invalidHandle;
|
||||||
|
|
||||||
m_colorProgram.idx = bgfx::invalidHandle;
|
m_colorProgram.idx = bgfx::invalidHandle;
|
||||||
m_textureProgram.idx = bgfx::invalidHandle;
|
m_textureProgram.idx = bgfx::invalidHandle;
|
||||||
|
m_imageProgram.idx = bgfx::invalidHandle;
|
||||||
}
|
}
|
||||||
|
|
||||||
bool create(const void* _data)
|
bool create(const void* _data)
|
||||||
|
@ -298,6 +326,7 @@ struct Imgui
|
||||||
|
|
||||||
PosColorVertex::init();
|
PosColorVertex::init();
|
||||||
PosColorUvVertex::init();
|
PosColorUvVertex::init();
|
||||||
|
PosUvVertex::init();
|
||||||
|
|
||||||
u_texColor = bgfx::createUniform("u_texColor", bgfx::UniformType::Uniform1i);
|
u_texColor = bgfx::createUniform("u_texColor", bgfx::UniformType::Uniform1i);
|
||||||
|
|
||||||
|
@ -305,6 +334,8 @@ struct Imgui
|
||||||
const bgfx::Memory* fs_imgui_color;
|
const bgfx::Memory* fs_imgui_color;
|
||||||
const bgfx::Memory* vs_imgui_texture;
|
const bgfx::Memory* vs_imgui_texture;
|
||||||
const bgfx::Memory* fs_imgui_texture;
|
const bgfx::Memory* fs_imgui_texture;
|
||||||
|
const bgfx::Memory* vs_imgui_image;
|
||||||
|
const bgfx::Memory* fs_imgui_image;
|
||||||
|
|
||||||
switch (bgfx::getRendererType() )
|
switch (bgfx::getRendererType() )
|
||||||
{
|
{
|
||||||
|
@ -313,6 +344,8 @@ struct Imgui
|
||||||
fs_imgui_color = bgfx::makeRef(fs_imgui_color_dx9, sizeof(fs_imgui_color_dx9) );
|
fs_imgui_color = bgfx::makeRef(fs_imgui_color_dx9, sizeof(fs_imgui_color_dx9) );
|
||||||
vs_imgui_texture = bgfx::makeRef(vs_imgui_texture_dx9, sizeof(vs_imgui_texture_dx9) );
|
vs_imgui_texture = bgfx::makeRef(vs_imgui_texture_dx9, sizeof(vs_imgui_texture_dx9) );
|
||||||
fs_imgui_texture = bgfx::makeRef(fs_imgui_texture_dx9, sizeof(fs_imgui_texture_dx9) );
|
fs_imgui_texture = bgfx::makeRef(fs_imgui_texture_dx9, sizeof(fs_imgui_texture_dx9) );
|
||||||
|
vs_imgui_image = bgfx::makeRef(vs_imgui_image_dx9, sizeof(vs_imgui_image_dx9) );
|
||||||
|
fs_imgui_image = bgfx::makeRef(fs_imgui_image_dx9, sizeof(fs_imgui_image_dx9) );
|
||||||
m_halfTexel = 0.5f;
|
m_halfTexel = 0.5f;
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
@ -321,6 +354,8 @@ struct Imgui
|
||||||
fs_imgui_color = bgfx::makeRef(fs_imgui_color_dx11, sizeof(fs_imgui_color_dx11) );
|
fs_imgui_color = bgfx::makeRef(fs_imgui_color_dx11, sizeof(fs_imgui_color_dx11) );
|
||||||
vs_imgui_texture = bgfx::makeRef(vs_imgui_texture_dx11, sizeof(vs_imgui_texture_dx11) );
|
vs_imgui_texture = bgfx::makeRef(vs_imgui_texture_dx11, sizeof(vs_imgui_texture_dx11) );
|
||||||
fs_imgui_texture = bgfx::makeRef(fs_imgui_texture_dx11, sizeof(fs_imgui_texture_dx11) );
|
fs_imgui_texture = bgfx::makeRef(fs_imgui_texture_dx11, sizeof(fs_imgui_texture_dx11) );
|
||||||
|
vs_imgui_image = bgfx::makeRef(vs_imgui_image_dx11, sizeof(vs_imgui_image_dx11) );
|
||||||
|
fs_imgui_image = bgfx::makeRef(fs_imgui_image_dx11, sizeof(fs_imgui_image_dx11) );
|
||||||
break;
|
break;
|
||||||
|
|
||||||
default:
|
default:
|
||||||
|
@ -328,6 +363,8 @@ struct Imgui
|
||||||
fs_imgui_color = bgfx::makeRef(fs_imgui_color_glsl, sizeof(fs_imgui_color_glsl) );
|
fs_imgui_color = bgfx::makeRef(fs_imgui_color_glsl, sizeof(fs_imgui_color_glsl) );
|
||||||
vs_imgui_texture = bgfx::makeRef(vs_imgui_texture_glsl, sizeof(vs_imgui_texture_glsl) );
|
vs_imgui_texture = bgfx::makeRef(vs_imgui_texture_glsl, sizeof(vs_imgui_texture_glsl) );
|
||||||
fs_imgui_texture = bgfx::makeRef(fs_imgui_texture_glsl, sizeof(fs_imgui_texture_glsl) );
|
fs_imgui_texture = bgfx::makeRef(fs_imgui_texture_glsl, sizeof(fs_imgui_texture_glsl) );
|
||||||
|
vs_imgui_image = bgfx::makeRef(vs_imgui_image_glsl, sizeof(vs_imgui_image_glsl) );
|
||||||
|
fs_imgui_image = bgfx::makeRef(fs_imgui_image_glsl, sizeof(fs_imgui_image_glsl) );
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -346,11 +383,19 @@ struct Imgui
|
||||||
bgfx::destroyShader(vsh);
|
bgfx::destroyShader(vsh);
|
||||||
bgfx::destroyShader(fsh);
|
bgfx::destroyShader(fsh);
|
||||||
|
|
||||||
|
vsh = bgfx::createShader(vs_imgui_image);
|
||||||
|
fsh = bgfx::createShader(fs_imgui_image);
|
||||||
|
m_imageProgram = bgfx::createProgram(vsh, fsh);
|
||||||
|
bgfx::destroyShader(vsh);
|
||||||
|
bgfx::destroyShader(fsh);
|
||||||
|
|
||||||
#if !USE_NANOVG_FONT
|
#if !USE_NANOVG_FONT
|
||||||
const bgfx::Memory* mem = bgfx::alloc(m_textureWidth * m_textureHeight);
|
const bgfx::Memory* mem = bgfx::alloc(m_textureWidth * m_textureHeight);
|
||||||
stbtt_BakeFontBitmap( (uint8_t*)_data, 0, 15.0f, mem->data, m_textureWidth, m_textureHeight, 32, 96, m_cdata);
|
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);
|
m_fontTexture = bgfx::createTexture2D(m_textureWidth, m_textureHeight, 1, bgfx::TextureFormat::R8, BGFX_TEXTURE_NONE, mem);
|
||||||
#endif // !USE_NANOVG_FONT
|
#endif // !USE_NANOVG_FONT
|
||||||
|
mem = bgfx::makeRef(s_xTexture, sizeof(s_xTexture));
|
||||||
|
m_xTexture = bgfx::createTexture(mem);
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
@ -361,8 +406,10 @@ struct Imgui
|
||||||
#if !USE_NANOVG_FONT
|
#if !USE_NANOVG_FONT
|
||||||
bgfx::destroyTexture(m_fontTexture);
|
bgfx::destroyTexture(m_fontTexture);
|
||||||
#endif // !USE_NANOVG_FONT
|
#endif // !USE_NANOVG_FONT
|
||||||
|
bgfx::destroyTexture(m_xTexture);
|
||||||
bgfx::destroyProgram(m_colorProgram);
|
bgfx::destroyProgram(m_colorProgram);
|
||||||
bgfx::destroyProgram(m_textureProgram);
|
bgfx::destroyProgram(m_textureProgram);
|
||||||
|
bgfx::destroyProgram(m_imageProgram);
|
||||||
nvgDelete(m_nvg);
|
nvgDelete(m_nvg);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -525,6 +572,7 @@ struct Imgui
|
||||||
m_scrollVal = _scroll;
|
m_scrollVal = _scroll;
|
||||||
m_scrollAreaX = _x;
|
m_scrollAreaX = _x;
|
||||||
m_scrollAreaWidth = _width;
|
m_scrollAreaWidth = _width;
|
||||||
|
m_scrollAreaInnerWidth = m_widgetW;
|
||||||
m_scrollAreaTop = m_widgetY;
|
m_scrollAreaTop = m_widgetY;
|
||||||
|
|
||||||
m_focusTop = _y - AREA_HEADER;
|
m_focusTop = _y - AREA_HEADER;
|
||||||
|
@ -817,6 +865,37 @@ struct Imgui
|
||||||
return res;
|
return res;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void image(bgfx::TextureHandle _image, int32_t _width, int32_t _height, ImguiImageAlign::Enum _align)
|
||||||
|
{
|
||||||
|
int32_t xx;
|
||||||
|
if (ImguiImageAlign::Left == _align)
|
||||||
|
{
|
||||||
|
xx = m_widgetX;
|
||||||
|
}
|
||||||
|
else //if (ImguiImageAlign::Center == _align).
|
||||||
|
{
|
||||||
|
xx = m_widgetX + (m_scrollAreaInnerWidth-_width)/2;
|
||||||
|
}
|
||||||
|
|
||||||
|
const int32_t yy = m_widgetY;
|
||||||
|
m_widgetY += _height + DEFAULT_SPACING;
|
||||||
|
|
||||||
|
screenQuad(xx, yy, _width, _height);
|
||||||
|
bgfx::setTexture(0, u_texColor, bgfx::invalidHandle == _image.idx ? m_xTexture : _image);
|
||||||
|
bgfx::setState(BGFX_STATE_RGB_WRITE|BGFX_STATE_ALPHA_WRITE);
|
||||||
|
bgfx::setProgram(m_imageProgram);
|
||||||
|
bgfx::setScissor(m_scissor);
|
||||||
|
bgfx::submit(m_view);
|
||||||
|
}
|
||||||
|
|
||||||
|
void image(bgfx::TextureHandle _image, float _width, float _aspect, ImguiImageAlign::Enum _align)
|
||||||
|
{
|
||||||
|
const float width = _width*float(m_scrollAreaInnerWidth);
|
||||||
|
const float height = width/_aspect;
|
||||||
|
|
||||||
|
image(_image, 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)
|
||||||
{
|
{
|
||||||
m_widgetId++;
|
m_widgetId++;
|
||||||
|
@ -1482,6 +1561,64 @@ struct Imgui
|
||||||
#endif // USE_NANOVG_FONT
|
#endif // USE_NANOVG_FONT
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void screenQuad(int32_t _x, int32_t _y, int32_t _width, uint32_t _height)
|
||||||
|
{
|
||||||
|
if (bgfx::checkAvailTransientVertexBuffer(6, PosUvVertex::ms_decl) )
|
||||||
|
{
|
||||||
|
bgfx::TransientVertexBuffer vb;
|
||||||
|
bgfx::allocTransientVertexBuffer(&vb, 6, PosUvVertex::ms_decl);
|
||||||
|
PosUvVertex* vertex = (PosUvVertex*)vb.data;
|
||||||
|
|
||||||
|
const float widthf = float(_width);
|
||||||
|
const float heightf = float(_height);
|
||||||
|
|
||||||
|
const float minx = float(_x);
|
||||||
|
const float miny = float(_y);
|
||||||
|
const float maxx = minx+widthf;
|
||||||
|
const float maxy = miny+heightf;
|
||||||
|
|
||||||
|
const float texelHalfW = m_halfTexel/widthf;
|
||||||
|
const float texelHalfH = m_halfTexel/heightf;
|
||||||
|
const float minu = texelHalfW;
|
||||||
|
const float maxu = 1.0f - texelHalfW;
|
||||||
|
const float minv = texelHalfH;
|
||||||
|
const float maxv = texelHalfH + 1.0f;
|
||||||
|
|
||||||
|
vertex[0].m_x = minx;
|
||||||
|
vertex[0].m_y = miny;
|
||||||
|
vertex[0].m_u = minu;
|
||||||
|
vertex[0].m_v = minv;
|
||||||
|
|
||||||
|
vertex[1].m_x = maxx;
|
||||||
|
vertex[1].m_y = miny;
|
||||||
|
vertex[1].m_u = maxu;
|
||||||
|
vertex[1].m_v = minv;
|
||||||
|
|
||||||
|
vertex[2].m_x = maxx;
|
||||||
|
vertex[2].m_y = maxy;
|
||||||
|
vertex[2].m_u = maxu;
|
||||||
|
vertex[2].m_v = maxv;
|
||||||
|
|
||||||
|
vertex[3].m_x = maxx;
|
||||||
|
vertex[3].m_y = maxy;
|
||||||
|
vertex[3].m_u = maxu;
|
||||||
|
vertex[3].m_v = maxv;
|
||||||
|
|
||||||
|
vertex[4].m_x = minx;
|
||||||
|
vertex[4].m_y = maxy;
|
||||||
|
vertex[4].m_u = minu;
|
||||||
|
vertex[4].m_v = maxv;
|
||||||
|
|
||||||
|
vertex[5].m_x = minx;
|
||||||
|
vertex[5].m_y = miny;
|
||||||
|
vertex[5].m_u = minu;
|
||||||
|
vertex[5].m_v = minv;
|
||||||
|
|
||||||
|
bgfx::setVertexBuffer(&vb);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
void colorWheelWidget(float _rgb[3], bool _respectIndentation, bool _enabled)
|
void colorWheelWidget(float _rgb[3], bool _respectIndentation, bool _enabled)
|
||||||
{
|
{
|
||||||
m_widgetId++;
|
m_widgetId++;
|
||||||
|
@ -1746,6 +1883,7 @@ struct Imgui
|
||||||
int32_t m_scrollRight;
|
int32_t m_scrollRight;
|
||||||
int32_t m_scrollAreaTop;
|
int32_t m_scrollAreaTop;
|
||||||
int32_t m_scrollAreaWidth;
|
int32_t m_scrollAreaWidth;
|
||||||
|
int32_t m_scrollAreaInnerWidth;
|
||||||
int32_t m_scrollAreaX;
|
int32_t m_scrollAreaX;
|
||||||
int32_t* m_scrollVal;
|
int32_t* m_scrollVal;
|
||||||
int32_t m_focusTop;
|
int32_t m_focusTop;
|
||||||
|
@ -1765,11 +1903,13 @@ struct Imgui
|
||||||
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;
|
||||||
|
|
||||||
#if !USE_NANOVG_FONT
|
#if !USE_NANOVG_FONT
|
||||||
stbtt_bakedchar m_cdata[96]; // ASCII 32..126 is 95 glyphs
|
stbtt_bakedchar m_cdata[96]; // ASCII 32..126 is 95 glyphs
|
||||||
bgfx::TextureHandle m_fontTexture;
|
bgfx::TextureHandle m_fontTexture;
|
||||||
#endif // !USE_NANOVG_FONT
|
#endif // !USE_NANOVG_FONT
|
||||||
|
bgfx::TextureHandle m_xTexture;
|
||||||
};
|
};
|
||||||
|
|
||||||
static Imgui s_imgui;
|
static Imgui s_imgui;
|
||||||
|
@ -1942,3 +2082,13 @@ void imguiColorWheel(const char* _text, float _rgb[3], bool& _activated, bool _e
|
||||||
imguiColorWheel(_rgb, false, _enabled);
|
imguiColorWheel(_rgb, false, _enabled);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void imguiImage(bgfx::TextureHandle _image, int32_t _width, int32_t _height, ImguiImageAlign::Enum _align)
|
||||||
|
{
|
||||||
|
return s_imgui.image(_image, _width, _height, _align);
|
||||||
|
}
|
||||||
|
|
||||||
|
void imguiImage(bgfx::TextureHandle _image, float _width, float _aspect, ImguiImageAlign::Enum _align)
|
||||||
|
{
|
||||||
|
return s_imgui.image(_image, _width, _aspect, _align);
|
||||||
|
}
|
||||||
|
|
|
@ -43,6 +43,15 @@ struct ImguiTextAlign
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
|
struct ImguiImageAlign
|
||||||
|
{
|
||||||
|
enum Enum
|
||||||
|
{
|
||||||
|
Left,
|
||||||
|
Center,
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
inline uint32_t imguiRGBA(uint8_t _r, uint8_t _g, uint8_t _b, uint8_t _a = 255)
|
inline uint32_t imguiRGBA(uint8_t _r, uint8_t _g, uint8_t _b, uint8_t _a = 255)
|
||||||
{
|
{
|
||||||
return 0
|
return 0
|
||||||
|
@ -88,4 +97,6 @@ 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::Left);
|
||||||
|
void imguiImage(bgfx::TextureHandle _image, float _width, float _aspect, ImguiImageAlign::Enum _align = ImguiImageAlign::Left); //_width is in [0.0-1.0] range.
|
||||||
#endif // IMGUI_H_HEADER_GUARD
|
#endif // IMGUI_H_HEADER_GUARD
|
||||||
|
|
134
examples/common/imgui/vs_imgui_image.bin.h
Normal file
134
examples/common/imgui/vs_imgui_image.bin.h
Normal file
|
@ -0,0 +1,134 @@
|
||||||
|
static const uint8_t vs_imgui_image_glsl[343] =
|
||||||
|
{
|
||||||
|
0x56, 0x53, 0x48, 0x02, 0x6f, 0x1e, 0x3e, 0x3c, 0x01, 0x00, 0x0a, 0x75, 0x5f, 0x76, 0x69, 0x65, // VSH.o.><...u_vie
|
||||||
|
0x77, 0x50, 0x72, 0x6f, 0x6a, 0x09, 0x01, 0x00, 0x00, 0x01, 0x00, 0x37, 0x01, 0x00, 0x00, 0x61, // wProj......7...a
|
||||||
|
0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x20, 0x6d, 0x65, 0x64, 0x69, 0x75, 0x6d, 0x70, // ttribute mediump
|
||||||
|
0x20, 0x76, 0x65, 0x63, 0x32, 0x20, 0x61, 0x5f, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, // vec2 a_position
|
||||||
|
0x3b, 0x0a, 0x61, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x20, 0x6d, 0x65, 0x64, 0x69, // ;.attribute medi
|
||||||
|
0x75, 0x6d, 0x70, 0x20, 0x76, 0x65, 0x63, 0x32, 0x20, 0x61, 0x5f, 0x74, 0x65, 0x78, 0x63, 0x6f, // ump vec2 a_texco
|
||||||
|
0x6f, 0x72, 0x64, 0x30, 0x3b, 0x0a, 0x76, 0x61, 0x72, 0x79, 0x69, 0x6e, 0x67, 0x20, 0x6d, 0x65, // ord0;.varying me
|
||||||
|
0x64, 0x69, 0x75, 0x6d, 0x70, 0x20, 0x76, 0x65, 0x63, 0x32, 0x20, 0x76, 0x5f, 0x74, 0x65, 0x78, // diump vec2 v_tex
|
||||||
|
0x63, 0x6f, 0x6f, 0x72, 0x64, 0x30, 0x3b, 0x0a, 0x75, 0x6e, 0x69, 0x66, 0x6f, 0x72, 0x6d, 0x20, // coord0;.uniform
|
||||||
|
0x6d, 0x65, 0x64, 0x69, 0x75, 0x6d, 0x70, 0x20, 0x6d, 0x61, 0x74, 0x34, 0x20, 0x75, 0x5f, 0x76, // mediump mat4 u_v
|
||||||
|
0x69, 0x65, 0x77, 0x50, 0x72, 0x6f, 0x6a, 0x3b, 0x0a, 0x76, 0x6f, 0x69, 0x64, 0x20, 0x6d, 0x61, // iewProj;.void ma
|
||||||
|
0x69, 0x6e, 0x20, 0x28, 0x29, 0x0a, 0x7b, 0x0a, 0x20, 0x20, 0x6d, 0x65, 0x64, 0x69, 0x75, 0x6d, // in ().{. medium
|
||||||
|
0x70, 0x20, 0x76, 0x65, 0x63, 0x34, 0x20, 0x74, 0x6d, 0x70, 0x76, 0x61, 0x72, 0x5f, 0x31, 0x3b, // p vec4 tmpvar_1;
|
||||||
|
0x0a, 0x20, 0x20, 0x74, 0x6d, 0x70, 0x76, 0x61, 0x72, 0x5f, 0x31, 0x2e, 0x7a, 0x77, 0x20, 0x3d, // . tmpvar_1.zw =
|
||||||
|
0x20, 0x76, 0x65, 0x63, 0x32, 0x28, 0x30, 0x2e, 0x30, 0x2c, 0x20, 0x31, 0x2e, 0x30, 0x29, 0x3b, // vec2(0.0, 1.0);
|
||||||
|
0x0a, 0x20, 0x20, 0x74, 0x6d, 0x70, 0x76, 0x61, 0x72, 0x5f, 0x31, 0x2e, 0x78, 0x79, 0x20, 0x3d, // . tmpvar_1.xy =
|
||||||
|
0x20, 0x61, 0x5f, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x3b, 0x0a, 0x20, 0x20, 0x67, // a_position;. g
|
||||||
|
0x6c, 0x5f, 0x50, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x3d, 0x20, 0x28, 0x75, 0x5f, // l_Position = (u_
|
||||||
|
0x76, 0x69, 0x65, 0x77, 0x50, 0x72, 0x6f, 0x6a, 0x20, 0x2a, 0x20, 0x74, 0x6d, 0x70, 0x76, 0x61, // viewProj * tmpva
|
||||||
|
0x72, 0x5f, 0x31, 0x29, 0x3b, 0x0a, 0x20, 0x20, 0x76, 0x5f, 0x74, 0x65, 0x78, 0x63, 0x6f, 0x6f, // r_1);. v_texcoo
|
||||||
|
0x72, 0x64, 0x30, 0x20, 0x3d, 0x20, 0x61, 0x5f, 0x74, 0x65, 0x78, 0x63, 0x6f, 0x6f, 0x72, 0x64, // rd0 = a_texcoord
|
||||||
|
0x30, 0x3b, 0x0a, 0x7d, 0x0a, 0x0a, 0x00, // 0;.}...
|
||||||
|
};
|
||||||
|
static const uint8_t vs_imgui_image_dx9[290] =
|
||||||
|
{
|
||||||
|
0x56, 0x53, 0x48, 0x02, 0x6f, 0x1e, 0x3e, 0x3c, 0x01, 0x00, 0x0a, 0x75, 0x5f, 0x76, 0x69, 0x65, // VSH.o.><...u_vie
|
||||||
|
0x77, 0x50, 0x72, 0x6f, 0x6a, 0x09, 0x01, 0x00, 0x00, 0x04, 0x00, 0x04, 0x01, 0x00, 0x03, 0xfe, // wProj...........
|
||||||
|
0xff, 0xfe, 0xff, 0x22, 0x00, 0x43, 0x54, 0x41, 0x42, 0x1c, 0x00, 0x00, 0x00, 0x53, 0x00, 0x00, // ...".CTAB....S..
|
||||||
|
0x00, 0x00, 0x03, 0xfe, 0xff, 0x01, 0x00, 0x00, 0x00, 0x1c, 0x00, 0x00, 0x00, 0x00, 0x81, 0x00, // ................
|
||||||
|
0x00, 0x4c, 0x00, 0x00, 0x00, 0x30, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, // .L...0..........
|
||||||
|
0x00, 0x3c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x75, 0x5f, 0x76, 0x69, 0x65, 0x77, 0x50, // .<.......u_viewP
|
||||||
|
0x72, 0x6f, 0x6a, 0x00, 0xab, 0x03, 0x00, 0x03, 0x00, 0x04, 0x00, 0x04, 0x00, 0x01, 0x00, 0x00, // roj.............
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x76, 0x73, 0x5f, 0x33, 0x5f, 0x30, 0x00, 0x4d, 0x69, 0x63, 0x72, // .....vs_3_0.Micr
|
||||||
|
0x6f, 0x73, 0x6f, 0x66, 0x74, 0x20, 0x28, 0x52, 0x29, 0x20, 0x48, 0x4c, 0x53, 0x4c, 0x20, 0x53, // osoft (R) HLSL S
|
||||||
|
0x68, 0x61, 0x64, 0x65, 0x72, 0x20, 0x43, 0x6f, 0x6d, 0x70, 0x69, 0x6c, 0x65, 0x72, 0x20, 0x39, // hader Compiler 9
|
||||||
|
0x2e, 0x32, 0x39, 0x2e, 0x39, 0x35, 0x32, 0x2e, 0x33, 0x31, 0x31, 0x31, 0x00, 0x1f, 0x00, 0x00, // .29.952.3111....
|
||||||
|
0x02, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x0f, 0x90, 0x1f, 0x00, 0x00, 0x02, 0x05, 0x00, 0x00, // ................
|
||||||
|
0x80, 0x01, 0x00, 0x0f, 0x90, 0x1f, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x0f, // ................
|
||||||
|
0xe0, 0x1f, 0x00, 0x00, 0x02, 0x05, 0x00, 0x00, 0x80, 0x01, 0x00, 0x03, 0xe0, 0x05, 0x00, 0x00, // ................
|
||||||
|
0x03, 0x00, 0x00, 0x0f, 0x80, 0x01, 0x00, 0xe4, 0xa0, 0x00, 0x00, 0x55, 0x90, 0x04, 0x00, 0x00, // ...........U....
|
||||||
|
0x04, 0x00, 0x00, 0x0f, 0x80, 0x00, 0x00, 0xe4, 0xa0, 0x00, 0x00, 0x00, 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, 0x03, 0xe0, 0x01, 0x00, 0xe4, 0x90, 0xff, 0xff, 0x00, // ................
|
||||||
|
0x00, 0x00, // ..
|
||||||
|
};
|
||||||
|
static const uint8_t vs_imgui_image_dx11[1331] =
|
||||||
|
{
|
||||||
|
0x56, 0x53, 0x48, 0x02, 0x6f, 0x1e, 0x3e, 0x3c, 0x01, 0x00, 0x0a, 0x75, 0x5f, 0x76, 0x69, 0x65, // VSH.o.><...u_vie
|
||||||
|
0x77, 0x50, 0x72, 0x6f, 0x6a, 0x09, 0x00, 0x20, 0x01, 0x04, 0x00, 0x04, 0x05, 0x44, 0x58, 0x42, // wProj.. .....DXB
|
||||||
|
0x43, 0x9d, 0xdc, 0xe7, 0x84, 0x91, 0x85, 0x22, 0xe5, 0xb2, 0x46, 0x1a, 0xbd, 0x24, 0x8c, 0x87, // C......"..F..$..
|
||||||
|
0xad, 0x01, 0x00, 0x00, 0x00, 0x04, 0x05, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 0x34, 0x00, 0x00, // .............4..
|
||||||
|
0x00, 0x00, 0x03, 0x00, 0x00, 0x54, 0x03, 0x00, 0x00, 0xac, 0x03, 0x00, 0x00, 0x88, 0x04, 0x00, // .....T..........
|
||||||
|
0x00, 0x52, 0x44, 0x45, 0x46, 0xc4, 0x02, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x48, 0x00, 0x00, // .RDEF........H..
|
||||||
|
0x00, 0x01, 0x00, 0x00, 0x00, 0x1c, 0x00, 0x00, 0x00, 0x00, 0x04, 0xfe, 0xff, 0x00, 0x91, 0x00, // ................
|
||||||
|
0x00, 0x90, 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, 0x61, 0x6c, 0x73, 0x00, 0xab, 0xab, // .....$Globals...
|
||||||
|
0xab, 0x3c, 0x00, 0x00, 0x00, 0x0e, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0xb0, 0x0a, 0x00, // .<.......`......
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xb0, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, // ................
|
||||||
|
0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xbc, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, // ................
|
||||||
|
0x00, 0xcc, 0x01, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // ................
|
||||||
|
0x00, 0xbc, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xd8, 0x01, 0x00, 0x00, 0x20, 0x00, 0x00, // ............. ..
|
||||||
|
0x00, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, // .@..............
|
||||||
|
0x00, 0xf0, 0x01, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // .....`...@......
|
||||||
|
0x00, 0xe0, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfa, 0x01, 0x00, 0x00, 0xa0, 0x00, 0x00, // ................
|
||||||
|
0x00, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, // .@..............
|
||||||
|
0x00, 0x01, 0x02, 0x00, 0x00, 0xe0, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // .........@......
|
||||||
|
0x00, 0xe0, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0b, 0x02, 0x00, 0x00, 0x20, 0x01, 0x00, // ............. ..
|
||||||
|
0x00, 0x40, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0xe0, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, // .@..............
|
||||||
|
0x00, 0x16, 0x02, 0x00, 0x00, 0x60, 0x01, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // .....`...@......
|
||||||
|
0x00, 0xe0, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x24, 0x02, 0x00, 0x00, 0xa0, 0x01, 0x00, // .........$......
|
||||||
|
0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x2c, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, // .........,......
|
||||||
|
0x00, 0x3c, 0x02, 0x00, 0x00, 0xa0, 0x09, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // .<.......@......
|
||||||
|
0x00, 0xe0, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x48, 0x02, 0x00, 0x00, 0xe0, 0x09, 0x00, // .........H......
|
||||||
|
0x00, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, // .@..............
|
||||||
|
0x00, 0x58, 0x02, 0x00, 0x00, 0x20, 0x0a, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // .X... ...@......
|
||||||
|
0x00, 0xe0, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x69, 0x02, 0x00, 0x00, 0x60, 0x0a, 0x00, // .........i...`..
|
||||||
|
0x00, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, // .@..............
|
||||||
|
0x00, 0x75, 0x02, 0x00, 0x00, 0xa0, 0x0a, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // .u..............
|
||||||
|
0x00, 0x80, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x75, 0x5f, 0x76, 0x69, 0x65, 0x77, 0x52, // .........u_viewR
|
||||||
|
0x65, 0x63, 0x74, 0x00, 0xab, 0x01, 0x00, 0x03, 0x00, 0x01, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, // ect.............
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x75, 0x5f, 0x76, 0x69, 0x65, 0x77, 0x54, 0x65, 0x78, 0x65, 0x6c, // .....u_viewTexel
|
||||||
|
0x00, 0x75, 0x5f, 0x76, 0x69, 0x65, 0x77, 0x00, 0xab, 0x03, 0x00, 0x03, 0x00, 0x04, 0x00, 0x04, // .u_view.........
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x75, 0x5f, 0x69, 0x6e, 0x76, 0x56, 0x69, // .........u_invVi
|
||||||
|
0x65, 0x77, 0x00, 0x75, 0x5f, 0x70, 0x72, 0x6f, 0x6a, 0x00, 0x75, 0x5f, 0x69, 0x6e, 0x76, 0x50, // ew.u_proj.u_invP
|
||||||
|
0x72, 0x6f, 0x6a, 0x00, 0x75, 0x5f, 0x76, 0x69, 0x65, 0x77, 0x50, 0x72, 0x6f, 0x6a, 0x00, 0x75, // roj.u_viewProj.u
|
||||||
|
0x5f, 0x69, 0x6e, 0x76, 0x56, 0x69, 0x65, 0x77, 0x50, 0x72, 0x6f, 0x6a, 0x00, 0x75, 0x5f, 0x6d, // _invViewProj.u_m
|
||||||
|
0x6f, 0x64, 0x65, 0x6c, 0x00, 0x03, 0x00, 0x03, 0x00, 0x04, 0x00, 0x04, 0x00, 0x20, 0x00, 0x00, // odel......... ..
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x75, 0x5f, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x56, 0x69, 0x65, 0x77, // .....u_modelView
|
||||||
|
0x00, 0x75, 0x5f, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x56, 0x69, 0x65, 0x77, 0x50, 0x72, 0x6f, 0x6a, // .u_modelViewProj
|
||||||
|
0x00, 0x75, 0x5f, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x56, 0x69, 0x65, 0x77, 0x50, 0x72, 0x6f, 0x6a, // .u_modelViewProj
|
||||||
|
0x58, 0x00, 0x75, 0x5f, 0x76, 0x69, 0x65, 0x77, 0x50, 0x72, 0x6f, 0x6a, 0x58, 0x00, 0x75, 0x5f, // X.u_viewProjX.u_
|
||||||
|
0x61, 0x6c, 0x70, 0x68, 0x61, 0x52, 0x65, 0x66, 0x00, 0x00, 0x00, 0x03, 0x00, 0x01, 0x00, 0x01, // alphaRef........
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x4d, 0x69, 0x63, 0x72, 0x6f, 0x73, 0x6f, // .........Microso
|
||||||
|
0x66, 0x74, 0x20, 0x28, 0x52, 0x29, 0x20, 0x48, 0x4c, 0x53, 0x4c, 0x20, 0x53, 0x68, 0x61, 0x64, // ft (R) HLSL Shad
|
||||||
|
0x65, 0x72, 0x20, 0x43, 0x6f, 0x6d, 0x70, 0x69, 0x6c, 0x65, 0x72, 0x20, 0x39, 0x2e, 0x32, 0x39, // er Compiler 9.29
|
||||||
|
0x2e, 0x39, 0x35, 0x32, 0x2e, 0x33, 0x31, 0x31, 0x31, 0x00, 0xab, 0xab, 0xab, 0x49, 0x53, 0x47, // .952.3111....ISG
|
||||||
|
0x4e, 0x4c, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x38, 0x00, 0x00, // NL...........8..
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // ................
|
||||||
|
0x00, 0x03, 0x03, 0x00, 0x00, 0x41, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // .....A..........
|
||||||
|
0x00, 0x03, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x03, 0x03, 0x00, 0x00, 0x50, 0x4f, 0x53, // .............POS
|
||||||
|
0x49, 0x54, 0x49, 0x4f, 0x4e, 0x00, 0x54, 0x45, 0x58, 0x43, 0x4f, 0x4f, 0x52, 0x44, 0x00, 0xab, // ITION.TEXCOORD..
|
||||||
|
0xab, 0x4f, 0x53, 0x47, 0x4e, 0x50, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, // .OSGNP..........
|
||||||
|
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, 0x0c, 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, 0x53, 0x48, 0x44, 0x52, 0xd4, 0x00, 0x00, // COORD....SHDR...
|
||||||
|
0x00, 0x40, 0x00, 0x01, 0x00, 0x35, 0x00, 0x00, 0x00, 0x59, 0x00, 0x00, 0x04, 0x46, 0x8e, 0x20, // .@...5...Y...F.
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x16, 0x00, 0x00, 0x00, 0x5f, 0x00, 0x00, 0x03, 0x32, 0x10, 0x10, // ........._...2..
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x5f, 0x00, 0x00, 0x03, 0x32, 0x10, 0x10, 0x00, 0x01, 0x00, 0x00, // ....._...2......
|
||||||
|
0x00, 0x67, 0x00, 0x00, 0x04, 0xf2, 0x20, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, // .g.... .........
|
||||||
|
0x00, 0x65, 0x00, 0x00, 0x03, 0x32, 0x20, 0x10, 0x00, 0x01, 0x00, 0x00, 0x00, 0x68, 0x00, 0x00, // .e...2 ......h..
|
||||||
|
0x02, 0x01, 0x00, 0x00, 0x00, 0x38, 0x00, 0x00, 0x08, 0xf2, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, // .....8..........
|
||||||
|
0x00, 0x56, 0x15, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x46, 0x8e, 0x20, 0x00, 0x00, 0x00, 0x00, // .V.......F. ....
|
||||||
|
0x00, 0x13, 0x00, 0x00, 0x00, 0x32, 0x00, 0x00, 0x0a, 0xf2, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, // .....2..........
|
||||||
|
0x00, 0x46, 0x8e, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x12, 0x00, 0x00, 0x00, 0x06, 0x10, 0x10, // .F. ............
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x46, 0x0e, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // .....F..........
|
||||||
|
0x08, 0xf2, 0x20, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x46, 0x0e, 0x10, 0x00, 0x00, 0x00, 0x00, // .. ......F......
|
||||||
|
0x00, 0x46, 0x8e, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x15, 0x00, 0x00, 0x00, 0x36, 0x00, 0x00, // .F. .........6..
|
||||||
|
0x05, 0x32, 0x20, 0x10, 0x00, 0x01, 0x00, 0x00, 0x00, 0x46, 0x10, 0x10, 0x00, 0x01, 0x00, 0x00, // .2 ......F......
|
||||||
|
0x00, 0x3e, 0x00, 0x00, 0x01, 0x53, 0x54, 0x41, 0x54, 0x74, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, // .>...STATt......
|
||||||
|
0x00, 0x01, 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, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // ................
|
||||||
|
0x00, 0xb0, 0x0a, // ...
|
||||||
|
};
|
15
examples/common/imgui/vs_imgui_image.sc
Normal file
15
examples/common/imgui/vs_imgui_image.sc
Normal file
|
@ -0,0 +1,15 @@
|
||||||
|
$input a_position, a_texcoord0
|
||||||
|
$output v_texcoord0
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Copyright 2014 Dario Manesku. All rights reserved.
|
||||||
|
* License: http://www.opensource.org/licenses/BSD-2-Clause
|
||||||
|
*/
|
||||||
|
|
||||||
|
#include <bgfx_shader.sh>
|
||||||
|
|
||||||
|
void main()
|
||||||
|
{
|
||||||
|
gl_Position = mul(u_viewProj, vec4(a_position.xy, 0.0, 1.0) );
|
||||||
|
v_texcoord0 = a_texcoord0;
|
||||||
|
}
|
Loading…
Reference in a new issue