mirror of
https://github.com/Ed94/VEFontCache-Odin.git
synced 2025-08-05 14:42:42 -07:00
Updates for breaking changes (nov 7 Sokol pr)
This commit is contained in:
@@ -65,14 +65,14 @@ setup_gfx_objects :: proc( ctx : ^Context, ve_ctx : ^ve.Context, vert_cap, index
|
||||
screen_shader = gfx.make_shader(draw_text_shader_desc(backend) )
|
||||
|
||||
draw_list_vbuf = gfx.make_buffer( Buffer_Desciption {
|
||||
size = size_of([4]f32) * vert_cap,
|
||||
size = cast(uint)(size_of([4]f32) * vert_cap),
|
||||
usage = Buffer_Usage.STREAM,
|
||||
type = Buffer_Type.VERTEXBUFFER,
|
||||
})
|
||||
assert( gfx.query_buffer_state( draw_list_vbuf) < Resource_State.FAILED, "Failed to make draw_list_vbuf" )
|
||||
|
||||
draw_list_ibuf = gfx.make_buffer( Buffer_Desciption {
|
||||
size = size_of(u32) * index_cap,
|
||||
size = cast(uint)(size_of(u32) * index_cap),
|
||||
usage = Buffer_Usage.STREAM,
|
||||
type = Buffer_Type.INDEXBUFFER,
|
||||
})
|
||||
@@ -85,12 +85,12 @@ setup_gfx_objects :: proc( ctx : ^Context, ve_ctx : ^ve.Context, vert_cap, index
|
||||
vs_layout : Vertex_Layout_State
|
||||
{
|
||||
using vs_layout
|
||||
attrs[ATTR_render_glyph_vs_v_position] = Vertex_Attribute_State {
|
||||
attrs[ATTR_render_glyph_v_position] = Vertex_Attribute_State {
|
||||
format = Vertex_Format.FLOAT2,
|
||||
offset = 0,
|
||||
buffer_index = 0,
|
||||
}
|
||||
attrs[ATTR_render_glyph_vs_v_texture] = Vertex_Attribute_State {
|
||||
attrs[ATTR_render_glyph_v_texture] = Vertex_Attribute_State {
|
||||
format = Vertex_Format.FLOAT2,
|
||||
offset = size_of(ve.Vec2),
|
||||
buffer_index = 0,
|
||||
@@ -221,12 +221,12 @@ setup_gfx_objects :: proc( ctx : ^Context, ve_ctx : ^ve.Context, vert_cap, index
|
||||
vs_layout : Vertex_Layout_State
|
||||
{
|
||||
using vs_layout
|
||||
attrs[ATTR_blit_atlas_vs_v_position] = Vertex_Attribute_State {
|
||||
attrs[ATTR_blit_atlas_v_position] = Vertex_Attribute_State {
|
||||
format = Vertex_Format.FLOAT2,
|
||||
offset = 0,
|
||||
buffer_index = 0,
|
||||
}
|
||||
attrs[ATTR_blit_atlas_vs_v_texture] = Vertex_Attribute_State {
|
||||
attrs[ATTR_blit_atlas_v_texture] = Vertex_Attribute_State {
|
||||
format = Vertex_Format.FLOAT2,
|
||||
offset = size_of(ve.Vec2),
|
||||
buffer_index = 0,
|
||||
@@ -358,12 +358,12 @@ setup_gfx_objects :: proc( ctx : ^Context, ve_ctx : ^ve.Context, vert_cap, index
|
||||
vs_layout : Vertex_Layout_State
|
||||
{
|
||||
using vs_layout
|
||||
attrs[ATTR_draw_text_vs_v_position] = Vertex_Attribute_State {
|
||||
attrs[ATTR_draw_text_v_position] = Vertex_Attribute_State {
|
||||
format = Vertex_Format.FLOAT2,
|
||||
offset = 0,
|
||||
buffer_index = 0,
|
||||
}
|
||||
attrs[ATTR_draw_text_vs_v_texture] = Vertex_Attribute_State {
|
||||
attrs[ATTR_draw_text_v_texture] = Vertex_Attribute_State {
|
||||
format = Vertex_Format.FLOAT2,
|
||||
offset = size_of(ve.Vec2),
|
||||
buffer_index = 0,
|
||||
@@ -456,8 +456,8 @@ render_text_layer :: proc( screen_extent : ve.Vec2, ve_ctx : ^ve.Context, ctx :
|
||||
|
||||
vbuf_layer_slice, ibuf_layer_slice, calls_layer_slice := ve.get_draw_list_layer( ve_ctx, optimize_before_returning = true )
|
||||
|
||||
vbuf_ve_range := Range{ raw_data(vbuf_layer_slice), cast(u64) len(vbuf_layer_slice) * size_of(ve.Vertex) }
|
||||
ibuf_ve_range := Range{ raw_data(ibuf_layer_slice), cast(u64) len(ibuf_layer_slice) * size_of(u32) }
|
||||
vbuf_ve_range := Range{ raw_data(vbuf_layer_slice), cast(uint) len(vbuf_layer_slice) * size_of(ve.Vertex) }
|
||||
ibuf_ve_range := Range{ raw_data(ibuf_layer_slice), cast(uint) len(ibuf_layer_slice) * size_of(u32) }
|
||||
|
||||
gfx.append_buffer( draw_list_vbuf, vbuf_ve_range )
|
||||
gfx.append_buffer( draw_list_ibuf, ibuf_ve_range )
|
||||
@@ -508,7 +508,6 @@ render_text_layer :: proc( screen_extent : ve.Vec2, ve_ctx : ^ve.Context, ctx :
|
||||
},
|
||||
index_buffer = draw_list_ibuf,
|
||||
index_buffer_offset = 0,
|
||||
fs = {},
|
||||
}
|
||||
gfx.apply_bindings( bindings )
|
||||
|
||||
@@ -536,7 +535,7 @@ render_text_layer :: proc( screen_extent : ve.Vec2, ve_ctx : ^ve.Context, ctx :
|
||||
gfx.apply_pipeline( atlas_pipeline )
|
||||
|
||||
fs_uniform := Blit_Atlas_Fs_Params { region = cast(i32) draw_call.region }
|
||||
gfx.apply_uniforms( Shader_Stage.FS, SLOT_blit_atlas_fs_params, Range { & fs_uniform, size_of(Blit_Atlas_Fs_Params) })
|
||||
gfx.apply_uniforms( UB_blit_atlas_fs_params, Range { & fs_uniform, size_of(Blit_Atlas_Fs_Params) })
|
||||
|
||||
gfx.apply_bindings(Bindings {
|
||||
vertex_buffers = {
|
||||
@@ -547,10 +546,8 @@ render_text_layer :: proc( screen_extent : ve.Vec2, ve_ctx : ^ve.Context, ctx :
|
||||
},
|
||||
index_buffer = draw_list_ibuf,
|
||||
index_buffer_offset = 0,
|
||||
fs = {
|
||||
images = { SLOT_blit_atlas_src_texture = glyph_rt_color, },
|
||||
samplers = { SLOT_blit_atlas_src_sampler = glyph_rt_sampler, },
|
||||
},
|
||||
images = { IMG_blit_atlas_src_texture = glyph_rt_color, },
|
||||
samplers = { SMP_blit_atlas_src_sampler = glyph_rt_sampler, },
|
||||
})
|
||||
|
||||
// 3. Use the atlas to then render the text.
|
||||
@@ -583,7 +580,7 @@ render_text_layer :: proc( screen_extent : ve.Vec2, ve_ctx : ^ve.Context, ctx :
|
||||
src_rt = glyph_rt_color
|
||||
src_sampler = glyph_rt_sampler
|
||||
}
|
||||
gfx.apply_uniforms( Shader_Stage.FS, SLOT_draw_text_fs_params, Range { & fs_target_uniform, size_of(Draw_Text_Fs_Params) })
|
||||
gfx.apply_uniforms( UB_draw_text_fs_params, Range { & fs_target_uniform, size_of(Draw_Text_Fs_Params) })
|
||||
|
||||
gfx.apply_bindings(Bindings {
|
||||
vertex_buffers = {
|
||||
@@ -594,10 +591,8 @@ render_text_layer :: proc( screen_extent : ve.Vec2, ve_ctx : ^ve.Context, ctx :
|
||||
},
|
||||
index_buffer = draw_list_ibuf,
|
||||
index_buffer_offset = 0,
|
||||
fs = {
|
||||
images = { SLOT_draw_text_src_texture = src_rt, },
|
||||
samplers = { SLOT_draw_text_src_sampler = src_sampler, },
|
||||
},
|
||||
images = { IMG_draw_text_src_texture = src_rt, },
|
||||
samplers = { SMP_draw_text_src_sampler = src_sampler, },
|
||||
})
|
||||
}
|
||||
|
||||
|
@@ -12,31 +12,29 @@ import sg "thirdparty:sokol/gfx"
|
||||
=========
|
||||
Shader program: 'blit_atlas':
|
||||
Get shader desc: blit_atlas_shader_desc(sg.query_backend())
|
||||
Vertex shader: blit_atlas_vs
|
||||
Attributes:
|
||||
ATTR_blit_atlas_vs_v_position => 0
|
||||
ATTR_blit_atlas_vs_v_texture => 1
|
||||
Fragment shader: blit_atlas_fs
|
||||
Uniform block 'blit_atlas_fs_params':
|
||||
Odin struct: Blit_Atlas_Fs_Params
|
||||
Bind slot: SLOT_blit_atlas_fs_params => 0
|
||||
Image 'blit_atlas_src_texture':
|
||||
Image type: ._2D
|
||||
Sample type: .FLOAT
|
||||
Multisampled: false
|
||||
Bind slot: SLOT_blit_atlas_src_texture => 0
|
||||
Sampler 'blit_atlas_src_sampler':
|
||||
Type: .FILTERING
|
||||
Bind slot: SLOT_blit_atlas_src_sampler => 0
|
||||
Image Sampler Pair 'blit_atlas_src_texture_blit_atlas_src_sampler':
|
||||
Image: blit_atlas_src_texture
|
||||
Sampler: blit_atlas_src_sampler
|
||||
Vertex Shader: blit_atlas_vs
|
||||
Fragment Shader: blit_atlas_fs
|
||||
Attributes:
|
||||
ATTR_blit_atlas_v_position => 0
|
||||
ATTR_blit_atlas_v_texture => 1
|
||||
Bindings:
|
||||
Uniform block 'blit_atlas_fs_params':
|
||||
Odin struct: Blit_Atlas_Fs_Params
|
||||
Bind slot: UB_blit_atlas_fs_params => 0
|
||||
Image 'blit_atlas_src_texture':
|
||||
Image type: ._2D
|
||||
Sample type: .FLOAT
|
||||
Multisampled: false
|
||||
Bind slot: IMG_blit_atlas_src_texture => 0
|
||||
Sampler 'blit_atlas_src_sampler':
|
||||
Type: .FILTERING
|
||||
Bind slot: SMP_blit_atlas_src_sampler => 0
|
||||
*/
|
||||
ATTR_blit_atlas_vs_v_position :: 0
|
||||
ATTR_blit_atlas_vs_v_texture :: 1
|
||||
SLOT_blit_atlas_fs_params :: 0
|
||||
SLOT_blit_atlas_src_texture :: 0
|
||||
SLOT_blit_atlas_src_sampler :: 0
|
||||
ATTR_blit_atlas_v_position :: 0
|
||||
ATTR_blit_atlas_v_texture :: 1
|
||||
UB_blit_atlas_fs_params :: 0
|
||||
IMG_blit_atlas_src_texture :: 0
|
||||
SMP_blit_atlas_src_sampler :: 0
|
||||
Blit_Atlas_Fs_Params :: struct #align(16) {
|
||||
using _: struct #packed {
|
||||
region: i32,
|
||||
@@ -57,7 +55,7 @@ Blit_Atlas_Fs_Params :: struct #align(16) {
|
||||
}
|
||||
|
||||
*/
|
||||
@(private)
|
||||
@(private="file")
|
||||
blit_atlas_vs_source_glsl410 := [235]u8 {
|
||||
0x23,0x76,0x65,0x72,0x73,0x69,0x6f,0x6e,0x20,0x34,0x31,0x30,0x0a,0x0a,0x6c,0x61,
|
||||
0x79,0x6f,0x75,0x74,0x28,0x6c,0x6f,0x63,0x61,0x74,0x69,0x6f,0x6e,0x20,0x3d,0x20,
|
||||
@@ -129,7 +127,7 @@ blit_atlas_vs_source_glsl410 := [235]u8 {
|
||||
}
|
||||
|
||||
*/
|
||||
@(private)
|
||||
@(private="file")
|
||||
blit_atlas_fs_source_glsl410 := [1700]u8 {
|
||||
0x23,0x76,0x65,0x72,0x73,0x69,0x6f,0x6e,0x20,0x34,0x31,0x30,0x0a,0x0a,0x75,0x6e,
|
||||
0x69,0x66,0x6f,0x72,0x6d,0x20,0x69,0x76,0x65,0x63,0x34,0x20,0x62,0x6c,0x69,0x74,
|
||||
@@ -253,7 +251,7 @@ blit_atlas_fs_source_glsl410 := [1700]u8 {
|
||||
}
|
||||
|
||||
*/
|
||||
@(private)
|
||||
@(private="file")
|
||||
blit_atlas_vs_source_glsl300es := [217]u8 {
|
||||
0x23,0x76,0x65,0x72,0x73,0x69,0x6f,0x6e,0x20,0x33,0x30,0x30,0x20,0x65,0x73,0x0a,
|
||||
0x0a,0x6f,0x75,0x74,0x20,0x76,0x65,0x63,0x32,0x20,0x75,0x76,0x3b,0x0a,0x6c,0x61,
|
||||
@@ -326,7 +324,7 @@ blit_atlas_vs_source_glsl300es := [217]u8 {
|
||||
}
|
||||
|
||||
*/
|
||||
@(private)
|
||||
@(private="file")
|
||||
blit_atlas_fs_source_glsl300es := [1806]u8 {
|
||||
0x23,0x76,0x65,0x72,0x73,0x69,0x6f,0x6e,0x20,0x33,0x30,0x30,0x20,0x65,0x73,0x0a,
|
||||
0x70,0x72,0x65,0x63,0x69,0x73,0x69,0x6f,0x6e,0x20,0x6d,0x65,0x64,0x69,0x75,0x6d,
|
||||
@@ -477,7 +475,7 @@ blit_atlas_fs_source_glsl300es := [1806]u8 {
|
||||
return stage_output;
|
||||
}
|
||||
*/
|
||||
@(private)
|
||||
@(private="file")
|
||||
blit_atlas_vs_source_hlsl4 := [705]u8 {
|
||||
0x73,0x74,0x61,0x74,0x69,0x63,0x20,0x66,0x6c,0x6f,0x61,0x74,0x34,0x20,0x67,0x6c,
|
||||
0x5f,0x50,0x6f,0x73,0x69,0x74,0x69,0x6f,0x6e,0x3b,0x0a,0x73,0x74,0x61,0x74,0x69,
|
||||
@@ -600,7 +598,7 @@ blit_atlas_vs_source_hlsl4 := [705]u8 {
|
||||
return stage_output;
|
||||
}
|
||||
*/
|
||||
@(private)
|
||||
@(private="file")
|
||||
blit_atlas_fs_source_hlsl4 := [2107]u8 {
|
||||
0x63,0x62,0x75,0x66,0x66,0x65,0x72,0x20,0x62,0x6c,0x69,0x74,0x5f,0x61,0x74,0x6c,
|
||||
0x61,0x73,0x5f,0x66,0x73,0x5f,0x70,0x61,0x72,0x61,0x6d,0x73,0x20,0x3a,0x20,0x72,
|
||||
@@ -762,7 +760,7 @@ blit_atlas_fs_source_hlsl4 := [2107]u8 {
|
||||
}
|
||||
|
||||
*/
|
||||
@(private)
|
||||
@(private="file")
|
||||
blit_atlas_vs_source_metal_macos := [473]u8 {
|
||||
0x23,0x69,0x6e,0x63,0x6c,0x75,0x64,0x65,0x20,0x3c,0x6d,0x65,0x74,0x61,0x6c,0x5f,
|
||||
0x73,0x74,0x64,0x6c,0x69,0x62,0x3e,0x0a,0x23,0x69,0x6e,0x63,0x6c,0x75,0x64,0x65,
|
||||
@@ -866,7 +864,7 @@ blit_atlas_vs_source_metal_macos := [473]u8 {
|
||||
}
|
||||
|
||||
*/
|
||||
@(private)
|
||||
@(private="file")
|
||||
blit_atlas_fs_source_metal_macos := [2373]u8 {
|
||||
0x23,0x70,0x72,0x61,0x67,0x6d,0x61,0x20,0x63,0x6c,0x61,0x6e,0x67,0x20,0x64,0x69,
|
||||
0x61,0x67,0x6e,0x6f,0x73,0x74,0x69,0x63,0x20,0x69,0x67,0x6e,0x6f,0x72,0x65,0x64,
|
||||
@@ -1054,7 +1052,7 @@ blit_atlas_fs_source_metal_macos := [2373]u8 {
|
||||
}
|
||||
|
||||
*/
|
||||
@(private)
|
||||
@(private="file")
|
||||
blit_atlas_vs_source_wgsl := [698]u8 {
|
||||
0x64,0x69,0x61,0x67,0x6e,0x6f,0x73,0x74,0x69,0x63,0x28,0x6f,0x66,0x66,0x2c,0x20,
|
||||
0x64,0x65,0x72,0x69,0x76,0x61,0x74,0x69,0x76,0x65,0x5f,0x75,0x6e,0x69,0x66,0x6f,
|
||||
@@ -1109,11 +1107,11 @@ blit_atlas_vs_source_wgsl := [698]u8 {
|
||||
region : i32,
|
||||
}
|
||||
|
||||
@group(1) @binding(48) var blit_atlas_src_texture : texture_2d<f32>;
|
||||
@group(1) @binding(64) var blit_atlas_src_texture : texture_2d<f32>;
|
||||
|
||||
@group(1) @binding(64) var blit_atlas_src_sampler : sampler;
|
||||
@group(1) @binding(80) var blit_atlas_src_sampler : sampler;
|
||||
|
||||
@group(0) @binding(4) var<uniform> x_88 : blit_atlas_fs_params;
|
||||
@group(0) @binding(8) var<uniform> x_88 : blit_atlas_fs_params;
|
||||
|
||||
var<private> uv_1 : vec2f;
|
||||
|
||||
@@ -1219,7 +1217,7 @@ blit_atlas_vs_source_wgsl := [698]u8 {
|
||||
}
|
||||
|
||||
*/
|
||||
@(private)
|
||||
@(private="file")
|
||||
blit_atlas_fs_source_wgsl := [3640]u8 {
|
||||
0x64,0x69,0x61,0x67,0x6e,0x6f,0x73,0x74,0x69,0x63,0x28,0x6f,0x66,0x66,0x2c,0x20,
|
||||
0x64,0x65,0x72,0x69,0x76,0x61,0x74,0x69,0x76,0x65,0x5f,0x75,0x6e,0x69,0x66,0x6f,
|
||||
@@ -1229,15 +1227,15 @@ blit_atlas_fs_source_wgsl := [3640]u8 {
|
||||
0x73,0x65,0x74,0x28,0x30,0x29,0x20,0x2a,0x2f,0x0a,0x20,0x20,0x72,0x65,0x67,0x69,
|
||||
0x6f,0x6e,0x20,0x3a,0x20,0x69,0x33,0x32,0x2c,0x0a,0x7d,0x0a,0x0a,0x40,0x67,0x72,
|
||||
0x6f,0x75,0x70,0x28,0x31,0x29,0x20,0x40,0x62,0x69,0x6e,0x64,0x69,0x6e,0x67,0x28,
|
||||
0x34,0x38,0x29,0x20,0x76,0x61,0x72,0x20,0x62,0x6c,0x69,0x74,0x5f,0x61,0x74,0x6c,
|
||||
0x36,0x34,0x29,0x20,0x76,0x61,0x72,0x20,0x62,0x6c,0x69,0x74,0x5f,0x61,0x74,0x6c,
|
||||
0x61,0x73,0x5f,0x73,0x72,0x63,0x5f,0x74,0x65,0x78,0x74,0x75,0x72,0x65,0x20,0x3a,
|
||||
0x20,0x74,0x65,0x78,0x74,0x75,0x72,0x65,0x5f,0x32,0x64,0x3c,0x66,0x33,0x32,0x3e,
|
||||
0x3b,0x0a,0x0a,0x40,0x67,0x72,0x6f,0x75,0x70,0x28,0x31,0x29,0x20,0x40,0x62,0x69,
|
||||
0x6e,0x64,0x69,0x6e,0x67,0x28,0x36,0x34,0x29,0x20,0x76,0x61,0x72,0x20,0x62,0x6c,
|
||||
0x6e,0x64,0x69,0x6e,0x67,0x28,0x38,0x30,0x29,0x20,0x76,0x61,0x72,0x20,0x62,0x6c,
|
||||
0x69,0x74,0x5f,0x61,0x74,0x6c,0x61,0x73,0x5f,0x73,0x72,0x63,0x5f,0x73,0x61,0x6d,
|
||||
0x70,0x6c,0x65,0x72,0x20,0x3a,0x20,0x73,0x61,0x6d,0x70,0x6c,0x65,0x72,0x3b,0x0a,
|
||||
0x0a,0x40,0x67,0x72,0x6f,0x75,0x70,0x28,0x30,0x29,0x20,0x40,0x62,0x69,0x6e,0x64,
|
||||
0x69,0x6e,0x67,0x28,0x34,0x29,0x20,0x76,0x61,0x72,0x3c,0x75,0x6e,0x69,0x66,0x6f,
|
||||
0x69,0x6e,0x67,0x28,0x38,0x29,0x20,0x76,0x61,0x72,0x3c,0x75,0x6e,0x69,0x66,0x6f,
|
||||
0x72,0x6d,0x3e,0x20,0x78,0x5f,0x38,0x38,0x20,0x3a,0x20,0x62,0x6c,0x69,0x74,0x5f,
|
||||
0x61,0x74,0x6c,0x61,0x73,0x5f,0x66,0x73,0x5f,0x70,0x61,0x72,0x61,0x6d,0x73,0x3b,
|
||||
0x0a,0x0a,0x76,0x61,0x72,0x3c,0x70,0x72,0x69,0x76,0x61,0x74,0x65,0x3e,0x20,0x75,
|
||||
@@ -1455,103 +1453,117 @@ blit_atlas_shader_desc :: proc (backend: sg.Backend) -> sg.Shader_Desc {
|
||||
desc.label = "blit_atlas_shader"
|
||||
#partial switch backend {
|
||||
case .GLCORE:
|
||||
desc.attrs[0].name = "v_position"
|
||||
desc.attrs[1].name = "v_texture"
|
||||
desc.vs.source = transmute(cstring)&blit_atlas_vs_source_glsl410
|
||||
desc.vs.entry = "main"
|
||||
desc.fs.source = transmute(cstring)&blit_atlas_fs_source_glsl410
|
||||
desc.fs.entry = "main"
|
||||
desc.fs.uniform_blocks[0].size = 16
|
||||
desc.fs.uniform_blocks[0].layout = .STD140
|
||||
desc.fs.uniform_blocks[0].uniforms[0].name = "blit_atlas_fs_params"
|
||||
desc.fs.uniform_blocks[0].uniforms[0].type = .INT4
|
||||
desc.fs.uniform_blocks[0].uniforms[0].array_count = 1
|
||||
desc.fs.images[0].used = true
|
||||
desc.fs.images[0].multisampled = false
|
||||
desc.fs.images[0].image_type = ._2D
|
||||
desc.fs.images[0].sample_type = .FLOAT
|
||||
desc.fs.samplers[0].used = true
|
||||
desc.fs.samplers[0].sampler_type = .FILTERING
|
||||
desc.fs.image_sampler_pairs[0].used = true
|
||||
desc.fs.image_sampler_pairs[0].image_slot = 0
|
||||
desc.fs.image_sampler_pairs[0].sampler_slot = 0
|
||||
desc.fs.image_sampler_pairs[0].glsl_name = "blit_atlas_src_texture_blit_atlas_src_sampler"
|
||||
desc.vertex_func.source = transmute(cstring)&blit_atlas_vs_source_glsl410
|
||||
desc.vertex_func.entry = "main"
|
||||
desc.fragment_func.source = transmute(cstring)&blit_atlas_fs_source_glsl410
|
||||
desc.fragment_func.entry = "main"
|
||||
desc.attrs[0].glsl_name = "v_position"
|
||||
desc.attrs[1].glsl_name = "v_texture"
|
||||
desc.uniform_blocks[0].stage = .FRAGMENT
|
||||
desc.uniform_blocks[0].layout = .STD140
|
||||
desc.uniform_blocks[0].size = 16
|
||||
desc.uniform_blocks[0].glsl_uniforms[0].type = .INT4
|
||||
desc.uniform_blocks[0].glsl_uniforms[0].array_count = 1
|
||||
desc.uniform_blocks[0].glsl_uniforms[0].glsl_name = "blit_atlas_fs_params"
|
||||
desc.images[0].stage = .FRAGMENT
|
||||
desc.images[0].multisampled = false
|
||||
desc.images[0].image_type = ._2D
|
||||
desc.images[0].sample_type = .FLOAT
|
||||
desc.samplers[0].stage = .FRAGMENT
|
||||
desc.samplers[0].sampler_type = .FILTERING
|
||||
desc.image_sampler_pairs[0].stage = .FRAGMENT
|
||||
desc.image_sampler_pairs[0].image_slot = 0
|
||||
desc.image_sampler_pairs[0].sampler_slot = 0
|
||||
desc.image_sampler_pairs[0].glsl_name = "blit_atlas_src_texture_blit_atlas_src_sampler"
|
||||
case .GLES3:
|
||||
desc.attrs[0].name = "v_position"
|
||||
desc.attrs[1].name = "v_texture"
|
||||
desc.vs.source = transmute(cstring)&blit_atlas_vs_source_glsl300es
|
||||
desc.vs.entry = "main"
|
||||
desc.fs.source = transmute(cstring)&blit_atlas_fs_source_glsl300es
|
||||
desc.fs.entry = "main"
|
||||
desc.fs.uniform_blocks[0].size = 16
|
||||
desc.fs.uniform_blocks[0].layout = .STD140
|
||||
desc.fs.uniform_blocks[0].uniforms[0].name = "blit_atlas_fs_params"
|
||||
desc.fs.uniform_blocks[0].uniforms[0].type = .INT4
|
||||
desc.fs.uniform_blocks[0].uniforms[0].array_count = 1
|
||||
desc.fs.images[0].used = true
|
||||
desc.fs.images[0].multisampled = false
|
||||
desc.fs.images[0].image_type = ._2D
|
||||
desc.fs.images[0].sample_type = .FLOAT
|
||||
desc.fs.samplers[0].used = true
|
||||
desc.fs.samplers[0].sampler_type = .FILTERING
|
||||
desc.fs.image_sampler_pairs[0].used = true
|
||||
desc.fs.image_sampler_pairs[0].image_slot = 0
|
||||
desc.fs.image_sampler_pairs[0].sampler_slot = 0
|
||||
desc.fs.image_sampler_pairs[0].glsl_name = "blit_atlas_src_texture_blit_atlas_src_sampler"
|
||||
desc.vertex_func.source = transmute(cstring)&blit_atlas_vs_source_glsl300es
|
||||
desc.vertex_func.entry = "main"
|
||||
desc.fragment_func.source = transmute(cstring)&blit_atlas_fs_source_glsl300es
|
||||
desc.fragment_func.entry = "main"
|
||||
desc.attrs[0].glsl_name = "v_position"
|
||||
desc.attrs[1].glsl_name = "v_texture"
|
||||
desc.uniform_blocks[0].stage = .FRAGMENT
|
||||
desc.uniform_blocks[0].layout = .STD140
|
||||
desc.uniform_blocks[0].size = 16
|
||||
desc.uniform_blocks[0].glsl_uniforms[0].type = .INT4
|
||||
desc.uniform_blocks[0].glsl_uniforms[0].array_count = 1
|
||||
desc.uniform_blocks[0].glsl_uniforms[0].glsl_name = "blit_atlas_fs_params"
|
||||
desc.images[0].stage = .FRAGMENT
|
||||
desc.images[0].multisampled = false
|
||||
desc.images[0].image_type = ._2D
|
||||
desc.images[0].sample_type = .FLOAT
|
||||
desc.samplers[0].stage = .FRAGMENT
|
||||
desc.samplers[0].sampler_type = .FILTERING
|
||||
desc.image_sampler_pairs[0].stage = .FRAGMENT
|
||||
desc.image_sampler_pairs[0].image_slot = 0
|
||||
desc.image_sampler_pairs[0].sampler_slot = 0
|
||||
desc.image_sampler_pairs[0].glsl_name = "blit_atlas_src_texture_blit_atlas_src_sampler"
|
||||
case .D3D11:
|
||||
desc.attrs[0].sem_name = "TEXCOORD"
|
||||
desc.attrs[0].sem_index = 0
|
||||
desc.attrs[1].sem_name = "TEXCOORD"
|
||||
desc.attrs[1].sem_index = 1
|
||||
desc.vs.source = transmute(cstring)&blit_atlas_vs_source_hlsl4
|
||||
desc.vs.d3d11_target = "vs_4_0"
|
||||
desc.vs.entry = "main"
|
||||
desc.fs.source = transmute(cstring)&blit_atlas_fs_source_hlsl4
|
||||
desc.fs.d3d11_target = "ps_4_0"
|
||||
desc.fs.entry = "main"
|
||||
desc.fs.uniform_blocks[0].size = 16
|
||||
desc.fs.uniform_blocks[0].layout = .STD140
|
||||
desc.fs.images[0].used = true
|
||||
desc.fs.images[0].multisampled = false
|
||||
desc.fs.images[0].image_type = ._2D
|
||||
desc.fs.images[0].sample_type = .FLOAT
|
||||
desc.fs.samplers[0].used = true
|
||||
desc.fs.samplers[0].sampler_type = .FILTERING
|
||||
desc.fs.image_sampler_pairs[0].used = true
|
||||
desc.fs.image_sampler_pairs[0].image_slot = 0
|
||||
desc.fs.image_sampler_pairs[0].sampler_slot = 0
|
||||
desc.vertex_func.source = transmute(cstring)&blit_atlas_vs_source_hlsl4
|
||||
desc.vertex_func.d3d11_target = "vs_4_0"
|
||||
desc.vertex_func.entry = "main"
|
||||
desc.fragment_func.source = transmute(cstring)&blit_atlas_fs_source_hlsl4
|
||||
desc.fragment_func.d3d11_target = "ps_4_0"
|
||||
desc.fragment_func.entry = "main"
|
||||
desc.attrs[0].hlsl_sem_name = "TEXCOORD"
|
||||
desc.attrs[0].hlsl_sem_index = 0
|
||||
desc.attrs[1].hlsl_sem_name = "TEXCOORD"
|
||||
desc.attrs[1].hlsl_sem_index = 1
|
||||
desc.uniform_blocks[0].stage = .FRAGMENT
|
||||
desc.uniform_blocks[0].layout = .STD140
|
||||
desc.uniform_blocks[0].size = 16
|
||||
desc.uniform_blocks[0].hlsl_register_b_n = 0
|
||||
desc.images[0].stage = .FRAGMENT
|
||||
desc.images[0].multisampled = false
|
||||
desc.images[0].image_type = ._2D
|
||||
desc.images[0].sample_type = .FLOAT
|
||||
desc.images[0].hlsl_register_t_n = 0
|
||||
desc.samplers[0].stage = .FRAGMENT
|
||||
desc.samplers[0].sampler_type = .FILTERING
|
||||
desc.samplers[0].hlsl_register_s_n = 0
|
||||
desc.image_sampler_pairs[0].stage = .FRAGMENT
|
||||
desc.image_sampler_pairs[0].image_slot = 0
|
||||
desc.image_sampler_pairs[0].sampler_slot = 0
|
||||
case .METAL_MACOS:
|
||||
desc.vs.source = transmute(cstring)&blit_atlas_vs_source_metal_macos
|
||||
desc.vs.entry = "main0"
|
||||
desc.fs.source = transmute(cstring)&blit_atlas_fs_source_metal_macos
|
||||
desc.fs.entry = "main0"
|
||||
desc.fs.uniform_blocks[0].size = 16
|
||||
desc.fs.uniform_blocks[0].layout = .STD140
|
||||
desc.fs.images[0].used = true
|
||||
desc.fs.images[0].multisampled = false
|
||||
desc.fs.images[0].image_type = ._2D
|
||||
desc.fs.images[0].sample_type = .FLOAT
|
||||
desc.fs.samplers[0].used = true
|
||||
desc.fs.samplers[0].sampler_type = .FILTERING
|
||||
desc.fs.image_sampler_pairs[0].used = true
|
||||
desc.fs.image_sampler_pairs[0].image_slot = 0
|
||||
desc.fs.image_sampler_pairs[0].sampler_slot = 0
|
||||
desc.vertex_func.source = transmute(cstring)&blit_atlas_vs_source_metal_macos
|
||||
desc.vertex_func.entry = "main0"
|
||||
desc.fragment_func.source = transmute(cstring)&blit_atlas_fs_source_metal_macos
|
||||
desc.fragment_func.entry = "main0"
|
||||
desc.uniform_blocks[0].stage = .FRAGMENT
|
||||
desc.uniform_blocks[0].layout = .STD140
|
||||
desc.uniform_blocks[0].size = 16
|
||||
desc.uniform_blocks[0].msl_buffer_n = 0
|
||||
desc.images[0].stage = .FRAGMENT
|
||||
desc.images[0].multisampled = false
|
||||
desc.images[0].image_type = ._2D
|
||||
desc.images[0].sample_type = .FLOAT
|
||||
desc.images[0].msl_texture_n = 0
|
||||
desc.samplers[0].stage = .FRAGMENT
|
||||
desc.samplers[0].sampler_type = .FILTERING
|
||||
desc.samplers[0].msl_sampler_n = 0
|
||||
desc.image_sampler_pairs[0].stage = .FRAGMENT
|
||||
desc.image_sampler_pairs[0].image_slot = 0
|
||||
desc.image_sampler_pairs[0].sampler_slot = 0
|
||||
case .WGPU:
|
||||
desc.vs.source = transmute(cstring)&blit_atlas_vs_source_wgsl
|
||||
desc.vs.entry = "main"
|
||||
desc.fs.source = transmute(cstring)&blit_atlas_fs_source_wgsl
|
||||
desc.fs.entry = "main"
|
||||
desc.fs.uniform_blocks[0].size = 16
|
||||
desc.fs.uniform_blocks[0].layout = .STD140
|
||||
desc.fs.images[0].used = true
|
||||
desc.fs.images[0].multisampled = false
|
||||
desc.fs.images[0].image_type = ._2D
|
||||
desc.fs.images[0].sample_type = .FLOAT
|
||||
desc.fs.samplers[0].used = true
|
||||
desc.fs.samplers[0].sampler_type = .FILTERING
|
||||
desc.fs.image_sampler_pairs[0].used = true
|
||||
desc.fs.image_sampler_pairs[0].image_slot = 0
|
||||
desc.fs.image_sampler_pairs[0].sampler_slot = 0
|
||||
desc.vertex_func.source = transmute(cstring)&blit_atlas_vs_source_wgsl
|
||||
desc.vertex_func.entry = "main"
|
||||
desc.fragment_func.source = transmute(cstring)&blit_atlas_fs_source_wgsl
|
||||
desc.fragment_func.entry = "main"
|
||||
desc.uniform_blocks[0].stage = .FRAGMENT
|
||||
desc.uniform_blocks[0].layout = .STD140
|
||||
desc.uniform_blocks[0].size = 16
|
||||
desc.uniform_blocks[0].wgsl_group0_binding_n = 8
|
||||
desc.images[0].stage = .FRAGMENT
|
||||
desc.images[0].multisampled = false
|
||||
desc.images[0].image_type = ._2D
|
||||
desc.images[0].sample_type = .FLOAT
|
||||
desc.images[0].wgsl_group1_binding_n = 64
|
||||
desc.samplers[0].stage = .FRAGMENT
|
||||
desc.samplers[0].sampler_type = .FILTERING
|
||||
desc.samplers[0].wgsl_group1_binding_n = 80
|
||||
desc.image_sampler_pairs[0].stage = .FRAGMENT
|
||||
desc.image_sampler_pairs[0].image_slot = 0
|
||||
desc.image_sampler_pairs[0].sampler_slot = 0
|
||||
}
|
||||
return desc
|
||||
}
|
||||
|
@@ -11,10 +11,10 @@
|
||||
in vec2 uv;
|
||||
out vec4 frag_color;
|
||||
|
||||
uniform texture2D blit_atlas_src_texture;
|
||||
uniform sampler blit_atlas_src_sampler;
|
||||
layout(binding = 0) uniform texture2D blit_atlas_src_texture;
|
||||
layout(binding = 0) uniform sampler blit_atlas_src_sampler;
|
||||
|
||||
uniform blit_atlas_fs_params {
|
||||
layout(binding = 0) uniform blit_atlas_fs_params {
|
||||
int region;
|
||||
};
|
||||
|
||||
|
@@ -12,31 +12,29 @@ import sg "thirdparty:sokol/gfx"
|
||||
=========
|
||||
Shader program: 'draw_text':
|
||||
Get shader desc: draw_text_shader_desc(sg.query_backend())
|
||||
Vertex shader: draw_text_vs
|
||||
Attributes:
|
||||
ATTR_draw_text_vs_v_position => 0
|
||||
ATTR_draw_text_vs_v_texture => 1
|
||||
Fragment shader: draw_text_fs
|
||||
Uniform block 'draw_text_fs_params':
|
||||
Odin struct: Draw_Text_Fs_Params
|
||||
Bind slot: SLOT_draw_text_fs_params => 0
|
||||
Image 'draw_text_src_texture':
|
||||
Image type: ._2D
|
||||
Sample type: .FLOAT
|
||||
Multisampled: false
|
||||
Bind slot: SLOT_draw_text_src_texture => 0
|
||||
Sampler 'draw_text_src_sampler':
|
||||
Type: .FILTERING
|
||||
Bind slot: SLOT_draw_text_src_sampler => 0
|
||||
Image Sampler Pair 'draw_text_src_texture_draw_text_src_sampler':
|
||||
Image: draw_text_src_texture
|
||||
Sampler: draw_text_src_sampler
|
||||
Vertex Shader: draw_text_vs
|
||||
Fragment Shader: draw_text_fs
|
||||
Attributes:
|
||||
ATTR_draw_text_v_position => 0
|
||||
ATTR_draw_text_v_texture => 1
|
||||
Bindings:
|
||||
Uniform block 'draw_text_fs_params':
|
||||
Odin struct: Draw_Text_Fs_Params
|
||||
Bind slot: UB_draw_text_fs_params => 0
|
||||
Image 'draw_text_src_texture':
|
||||
Image type: ._2D
|
||||
Sample type: .FLOAT
|
||||
Multisampled: false
|
||||
Bind slot: IMG_draw_text_src_texture => 0
|
||||
Sampler 'draw_text_src_sampler':
|
||||
Type: .FILTERING
|
||||
Bind slot: SMP_draw_text_src_sampler => 0
|
||||
*/
|
||||
ATTR_draw_text_vs_v_position :: 0
|
||||
ATTR_draw_text_vs_v_texture :: 1
|
||||
SLOT_draw_text_fs_params :: 0
|
||||
SLOT_draw_text_src_texture :: 0
|
||||
SLOT_draw_text_src_sampler :: 0
|
||||
ATTR_draw_text_v_position :: 0
|
||||
ATTR_draw_text_v_texture :: 1
|
||||
UB_draw_text_fs_params :: 0
|
||||
IMG_draw_text_src_texture :: 0
|
||||
SMP_draw_text_src_sampler :: 0
|
||||
Draw_Text_Fs_Params :: struct #align(16) {
|
||||
using _: struct #packed {
|
||||
down_sample: i32,
|
||||
@@ -58,7 +56,7 @@ Draw_Text_Fs_Params :: struct #align(16) {
|
||||
}
|
||||
|
||||
*/
|
||||
@(private)
|
||||
@(private="file")
|
||||
draw_text_vs_source_glsl410 := [255]u8 {
|
||||
0x23,0x76,0x65,0x72,0x73,0x69,0x6f,0x6e,0x20,0x34,0x31,0x30,0x0a,0x0a,0x6c,0x61,
|
||||
0x79,0x6f,0x75,0x74,0x28,0x6c,0x6f,0x63,0x61,0x74,0x69,0x6f,0x6e,0x20,0x3d,0x20,
|
||||
@@ -104,7 +102,7 @@ draw_text_vs_source_glsl410 := [255]u8 {
|
||||
}
|
||||
|
||||
*/
|
||||
@(private)
|
||||
@(private="file")
|
||||
draw_text_fs_source_glsl410 := [882]u8 {
|
||||
0x23,0x76,0x65,0x72,0x73,0x69,0x6f,0x6e,0x20,0x34,0x31,0x30,0x0a,0x0a,0x73,0x74,
|
||||
0x72,0x75,0x63,0x74,0x20,0x64,0x72,0x61,0x77,0x5f,0x74,0x65,0x78,0x74,0x5f,0x66,
|
||||
@@ -177,7 +175,7 @@ draw_text_fs_source_glsl410 := [882]u8 {
|
||||
}
|
||||
|
||||
*/
|
||||
@(private)
|
||||
@(private="file")
|
||||
draw_text_vs_source_glsl300es := [237]u8 {
|
||||
0x23,0x76,0x65,0x72,0x73,0x69,0x6f,0x6e,0x20,0x33,0x30,0x30,0x20,0x65,0x73,0x0a,
|
||||
0x0a,0x6f,0x75,0x74,0x20,0x76,0x65,0x63,0x32,0x20,0x75,0x76,0x3b,0x0a,0x6c,0x61,
|
||||
@@ -224,7 +222,7 @@ draw_text_vs_source_glsl300es := [237]u8 {
|
||||
}
|
||||
|
||||
*/
|
||||
@(private)
|
||||
@(private="file")
|
||||
draw_text_fs_source_glsl300es := [940]u8 {
|
||||
0x23,0x76,0x65,0x72,0x73,0x69,0x6f,0x6e,0x20,0x33,0x30,0x30,0x20,0x65,0x73,0x0a,
|
||||
0x70,0x72,0x65,0x63,0x69,0x73,0x69,0x6f,0x6e,0x20,0x6d,0x65,0x64,0x69,0x75,0x6d,
|
||||
@@ -321,7 +319,7 @@ draw_text_fs_source_glsl300es := [940]u8 {
|
||||
return stage_output;
|
||||
}
|
||||
*/
|
||||
@(private)
|
||||
@(private="file")
|
||||
draw_text_vs_source_hlsl4 := [724]u8 {
|
||||
0x73,0x74,0x61,0x74,0x69,0x63,0x20,0x66,0x6c,0x6f,0x61,0x74,0x34,0x20,0x67,0x6c,
|
||||
0x5f,0x50,0x6f,0x73,0x69,0x74,0x69,0x6f,0x6e,0x3b,0x0a,0x73,0x74,0x61,0x74,0x69,
|
||||
@@ -412,7 +410,7 @@ draw_text_vs_source_hlsl4 := [724]u8 {
|
||||
return stage_output;
|
||||
}
|
||||
*/
|
||||
@(private)
|
||||
@(private="file")
|
||||
draw_text_fs_source_hlsl4 := [1257]u8 {
|
||||
0x63,0x62,0x75,0x66,0x66,0x65,0x72,0x20,0x64,0x72,0x61,0x77,0x5f,0x74,0x65,0x78,
|
||||
0x74,0x5f,0x66,0x73,0x5f,0x70,0x61,0x72,0x61,0x6d,0x73,0x20,0x3a,0x20,0x72,0x65,
|
||||
@@ -521,7 +519,7 @@ draw_text_fs_source_hlsl4 := [1257]u8 {
|
||||
}
|
||||
|
||||
*/
|
||||
@(private)
|
||||
@(private="file")
|
||||
draw_text_vs_source_metal_macos := [495]u8 {
|
||||
0x23,0x69,0x6e,0x63,0x6c,0x75,0x64,0x65,0x20,0x3c,0x6d,0x65,0x74,0x61,0x6c,0x5f,
|
||||
0x73,0x74,0x64,0x6c,0x69,0x62,0x3e,0x0a,0x23,0x69,0x6e,0x63,0x6c,0x75,0x64,0x65,
|
||||
@@ -590,7 +588,7 @@ draw_text_vs_source_metal_macos := [495]u8 {
|
||||
}
|
||||
|
||||
*/
|
||||
@(private)
|
||||
@(private="file")
|
||||
draw_text_fs_source_metal_macos := [1141]u8 {
|
||||
0x23,0x69,0x6e,0x63,0x6c,0x75,0x64,0x65,0x20,0x3c,0x6d,0x65,0x74,0x61,0x6c,0x5f,
|
||||
0x73,0x74,0x64,0x6c,0x69,0x62,0x3e,0x0a,0x23,0x69,0x6e,0x63,0x6c,0x75,0x64,0x65,
|
||||
@@ -702,7 +700,7 @@ draw_text_fs_source_metal_macos := [1141]u8 {
|
||||
}
|
||||
|
||||
*/
|
||||
@(private)
|
||||
@(private="file")
|
||||
draw_text_vs_source_wgsl := [756]u8 {
|
||||
0x64,0x69,0x61,0x67,0x6e,0x6f,0x73,0x74,0x69,0x63,0x28,0x6f,0x66,0x66,0x2c,0x20,
|
||||
0x64,0x65,0x72,0x69,0x76,0x61,0x74,0x69,0x76,0x65,0x5f,0x75,0x6e,0x69,0x66,0x6f,
|
||||
@@ -763,13 +761,13 @@ draw_text_vs_source_wgsl := [756]u8 {
|
||||
colour : vec4f,
|
||||
}
|
||||
|
||||
@group(1) @binding(48) var draw_text_src_texture : texture_2d<f32>;
|
||||
@group(1) @binding(64) var draw_text_src_texture : texture_2d<f32>;
|
||||
|
||||
@group(1) @binding(64) var draw_text_src_sampler : sampler;
|
||||
@group(1) @binding(80) var draw_text_src_sampler : sampler;
|
||||
|
||||
var<private> uv : vec2f;
|
||||
|
||||
@group(0) @binding(4) var<uniform> x_31 : draw_text_fs_params;
|
||||
@group(0) @binding(8) var<uniform> x_31 : draw_text_fs_params;
|
||||
|
||||
var<private> frag_color : vec4f;
|
||||
|
||||
@@ -811,7 +809,7 @@ draw_text_vs_source_wgsl := [756]u8 {
|
||||
}
|
||||
|
||||
*/
|
||||
@(private)
|
||||
@(private="file")
|
||||
draw_text_fs_source_wgsl := [1772]u8 {
|
||||
0x64,0x69,0x61,0x67,0x6e,0x6f,0x73,0x74,0x69,0x63,0x28,0x6f,0x66,0x66,0x2c,0x20,
|
||||
0x64,0x65,0x72,0x69,0x76,0x61,0x74,0x69,0x76,0x65,0x5f,0x75,0x6e,0x69,0x66,0x6f,
|
||||
@@ -823,17 +821,17 @@ draw_text_fs_source_wgsl := [1772]u8 {
|
||||
0x2f,0x2a,0x20,0x40,0x6f,0x66,0x66,0x73,0x65,0x74,0x28,0x31,0x36,0x29,0x20,0x2a,
|
||||
0x2f,0x0a,0x20,0x20,0x63,0x6f,0x6c,0x6f,0x75,0x72,0x20,0x3a,0x20,0x76,0x65,0x63,
|
||||
0x34,0x66,0x2c,0x0a,0x7d,0x0a,0x0a,0x40,0x67,0x72,0x6f,0x75,0x70,0x28,0x31,0x29,
|
||||
0x20,0x40,0x62,0x69,0x6e,0x64,0x69,0x6e,0x67,0x28,0x34,0x38,0x29,0x20,0x76,0x61,
|
||||
0x20,0x40,0x62,0x69,0x6e,0x64,0x69,0x6e,0x67,0x28,0x36,0x34,0x29,0x20,0x76,0x61,
|
||||
0x72,0x20,0x64,0x72,0x61,0x77,0x5f,0x74,0x65,0x78,0x74,0x5f,0x73,0x72,0x63,0x5f,
|
||||
0x74,0x65,0x78,0x74,0x75,0x72,0x65,0x20,0x3a,0x20,0x74,0x65,0x78,0x74,0x75,0x72,
|
||||
0x65,0x5f,0x32,0x64,0x3c,0x66,0x33,0x32,0x3e,0x3b,0x0a,0x0a,0x40,0x67,0x72,0x6f,
|
||||
0x75,0x70,0x28,0x31,0x29,0x20,0x40,0x62,0x69,0x6e,0x64,0x69,0x6e,0x67,0x28,0x36,
|
||||
0x34,0x29,0x20,0x76,0x61,0x72,0x20,0x64,0x72,0x61,0x77,0x5f,0x74,0x65,0x78,0x74,
|
||||
0x75,0x70,0x28,0x31,0x29,0x20,0x40,0x62,0x69,0x6e,0x64,0x69,0x6e,0x67,0x28,0x38,
|
||||
0x30,0x29,0x20,0x76,0x61,0x72,0x20,0x64,0x72,0x61,0x77,0x5f,0x74,0x65,0x78,0x74,
|
||||
0x5f,0x73,0x72,0x63,0x5f,0x73,0x61,0x6d,0x70,0x6c,0x65,0x72,0x20,0x3a,0x20,0x73,
|
||||
0x61,0x6d,0x70,0x6c,0x65,0x72,0x3b,0x0a,0x0a,0x76,0x61,0x72,0x3c,0x70,0x72,0x69,
|
||||
0x76,0x61,0x74,0x65,0x3e,0x20,0x75,0x76,0x20,0x3a,0x20,0x76,0x65,0x63,0x32,0x66,
|
||||
0x3b,0x0a,0x0a,0x40,0x67,0x72,0x6f,0x75,0x70,0x28,0x30,0x29,0x20,0x40,0x62,0x69,
|
||||
0x6e,0x64,0x69,0x6e,0x67,0x28,0x34,0x29,0x20,0x76,0x61,0x72,0x3c,0x75,0x6e,0x69,
|
||||
0x6e,0x64,0x69,0x6e,0x67,0x28,0x38,0x29,0x20,0x76,0x61,0x72,0x3c,0x75,0x6e,0x69,
|
||||
0x66,0x6f,0x72,0x6d,0x3e,0x20,0x78,0x5f,0x33,0x31,0x20,0x3a,0x20,0x64,0x72,0x61,
|
||||
0x77,0x5f,0x74,0x65,0x78,0x74,0x5f,0x66,0x73,0x5f,0x70,0x61,0x72,0x61,0x6d,0x73,
|
||||
0x3b,0x0a,0x0a,0x76,0x61,0x72,0x3c,0x70,0x72,0x69,0x76,0x61,0x74,0x65,0x3e,0x20,
|
||||
@@ -930,109 +928,123 @@ draw_text_shader_desc :: proc (backend: sg.Backend) -> sg.Shader_Desc {
|
||||
desc.label = "draw_text_shader"
|
||||
#partial switch backend {
|
||||
case .GLCORE:
|
||||
desc.attrs[0].name = "v_position"
|
||||
desc.attrs[1].name = "v_texture"
|
||||
desc.vs.source = transmute(cstring)&draw_text_vs_source_glsl410
|
||||
desc.vs.entry = "main"
|
||||
desc.fs.source = transmute(cstring)&draw_text_fs_source_glsl410
|
||||
desc.fs.entry = "main"
|
||||
desc.fs.uniform_blocks[0].size = 32
|
||||
desc.fs.uniform_blocks[0].layout = .STD140
|
||||
desc.fs.uniform_blocks[0].uniforms[0].name = "_31.down_sample"
|
||||
desc.fs.uniform_blocks[0].uniforms[0].type = .INT
|
||||
desc.fs.uniform_blocks[0].uniforms[0].array_count = 0
|
||||
desc.fs.uniform_blocks[0].uniforms[1].name = "_31.colour"
|
||||
desc.fs.uniform_blocks[0].uniforms[1].type = .FLOAT4
|
||||
desc.fs.uniform_blocks[0].uniforms[1].array_count = 0
|
||||
desc.fs.images[0].used = true
|
||||
desc.fs.images[0].multisampled = false
|
||||
desc.fs.images[0].image_type = ._2D
|
||||
desc.fs.images[0].sample_type = .FLOAT
|
||||
desc.fs.samplers[0].used = true
|
||||
desc.fs.samplers[0].sampler_type = .FILTERING
|
||||
desc.fs.image_sampler_pairs[0].used = true
|
||||
desc.fs.image_sampler_pairs[0].image_slot = 0
|
||||
desc.fs.image_sampler_pairs[0].sampler_slot = 0
|
||||
desc.fs.image_sampler_pairs[0].glsl_name = "draw_text_src_texture_draw_text_src_sampler"
|
||||
desc.vertex_func.source = transmute(cstring)&draw_text_vs_source_glsl410
|
||||
desc.vertex_func.entry = "main"
|
||||
desc.fragment_func.source = transmute(cstring)&draw_text_fs_source_glsl410
|
||||
desc.fragment_func.entry = "main"
|
||||
desc.attrs[0].glsl_name = "v_position"
|
||||
desc.attrs[1].glsl_name = "v_texture"
|
||||
desc.uniform_blocks[0].stage = .FRAGMENT
|
||||
desc.uniform_blocks[0].layout = .STD140
|
||||
desc.uniform_blocks[0].size = 32
|
||||
desc.uniform_blocks[0].glsl_uniforms[0].type = .INT
|
||||
desc.uniform_blocks[0].glsl_uniforms[0].array_count = 0
|
||||
desc.uniform_blocks[0].glsl_uniforms[0].glsl_name = "_31.down_sample"
|
||||
desc.uniform_blocks[0].glsl_uniforms[1].type = .FLOAT4
|
||||
desc.uniform_blocks[0].glsl_uniforms[1].array_count = 0
|
||||
desc.uniform_blocks[0].glsl_uniforms[1].glsl_name = "_31.colour"
|
||||
desc.images[0].stage = .FRAGMENT
|
||||
desc.images[0].multisampled = false
|
||||
desc.images[0].image_type = ._2D
|
||||
desc.images[0].sample_type = .FLOAT
|
||||
desc.samplers[0].stage = .FRAGMENT
|
||||
desc.samplers[0].sampler_type = .FILTERING
|
||||
desc.image_sampler_pairs[0].stage = .FRAGMENT
|
||||
desc.image_sampler_pairs[0].image_slot = 0
|
||||
desc.image_sampler_pairs[0].sampler_slot = 0
|
||||
desc.image_sampler_pairs[0].glsl_name = "draw_text_src_texture_draw_text_src_sampler"
|
||||
case .GLES3:
|
||||
desc.attrs[0].name = "v_position"
|
||||
desc.attrs[1].name = "v_texture"
|
||||
desc.vs.source = transmute(cstring)&draw_text_vs_source_glsl300es
|
||||
desc.vs.entry = "main"
|
||||
desc.fs.source = transmute(cstring)&draw_text_fs_source_glsl300es
|
||||
desc.fs.entry = "main"
|
||||
desc.fs.uniform_blocks[0].size = 32
|
||||
desc.fs.uniform_blocks[0].layout = .STD140
|
||||
desc.fs.uniform_blocks[0].uniforms[0].name = "_31.down_sample"
|
||||
desc.fs.uniform_blocks[0].uniforms[0].type = .INT
|
||||
desc.fs.uniform_blocks[0].uniforms[0].array_count = 0
|
||||
desc.fs.uniform_blocks[0].uniforms[1].name = "_31.colour"
|
||||
desc.fs.uniform_blocks[0].uniforms[1].type = .FLOAT4
|
||||
desc.fs.uniform_blocks[0].uniforms[1].array_count = 0
|
||||
desc.fs.images[0].used = true
|
||||
desc.fs.images[0].multisampled = false
|
||||
desc.fs.images[0].image_type = ._2D
|
||||
desc.fs.images[0].sample_type = .FLOAT
|
||||
desc.fs.samplers[0].used = true
|
||||
desc.fs.samplers[0].sampler_type = .FILTERING
|
||||
desc.fs.image_sampler_pairs[0].used = true
|
||||
desc.fs.image_sampler_pairs[0].image_slot = 0
|
||||
desc.fs.image_sampler_pairs[0].sampler_slot = 0
|
||||
desc.fs.image_sampler_pairs[0].glsl_name = "draw_text_src_texture_draw_text_src_sampler"
|
||||
desc.vertex_func.source = transmute(cstring)&draw_text_vs_source_glsl300es
|
||||
desc.vertex_func.entry = "main"
|
||||
desc.fragment_func.source = transmute(cstring)&draw_text_fs_source_glsl300es
|
||||
desc.fragment_func.entry = "main"
|
||||
desc.attrs[0].glsl_name = "v_position"
|
||||
desc.attrs[1].glsl_name = "v_texture"
|
||||
desc.uniform_blocks[0].stage = .FRAGMENT
|
||||
desc.uniform_blocks[0].layout = .STD140
|
||||
desc.uniform_blocks[0].size = 32
|
||||
desc.uniform_blocks[0].glsl_uniforms[0].type = .INT
|
||||
desc.uniform_blocks[0].glsl_uniforms[0].array_count = 0
|
||||
desc.uniform_blocks[0].glsl_uniforms[0].glsl_name = "_31.down_sample"
|
||||
desc.uniform_blocks[0].glsl_uniforms[1].type = .FLOAT4
|
||||
desc.uniform_blocks[0].glsl_uniforms[1].array_count = 0
|
||||
desc.uniform_blocks[0].glsl_uniforms[1].glsl_name = "_31.colour"
|
||||
desc.images[0].stage = .FRAGMENT
|
||||
desc.images[0].multisampled = false
|
||||
desc.images[0].image_type = ._2D
|
||||
desc.images[0].sample_type = .FLOAT
|
||||
desc.samplers[0].stage = .FRAGMENT
|
||||
desc.samplers[0].sampler_type = .FILTERING
|
||||
desc.image_sampler_pairs[0].stage = .FRAGMENT
|
||||
desc.image_sampler_pairs[0].image_slot = 0
|
||||
desc.image_sampler_pairs[0].sampler_slot = 0
|
||||
desc.image_sampler_pairs[0].glsl_name = "draw_text_src_texture_draw_text_src_sampler"
|
||||
case .D3D11:
|
||||
desc.attrs[0].sem_name = "TEXCOORD"
|
||||
desc.attrs[0].sem_index = 0
|
||||
desc.attrs[1].sem_name = "TEXCOORD"
|
||||
desc.attrs[1].sem_index = 1
|
||||
desc.vs.source = transmute(cstring)&draw_text_vs_source_hlsl4
|
||||
desc.vs.d3d11_target = "vs_4_0"
|
||||
desc.vs.entry = "main"
|
||||
desc.fs.source = transmute(cstring)&draw_text_fs_source_hlsl4
|
||||
desc.fs.d3d11_target = "ps_4_0"
|
||||
desc.fs.entry = "main"
|
||||
desc.fs.uniform_blocks[0].size = 32
|
||||
desc.fs.uniform_blocks[0].layout = .STD140
|
||||
desc.fs.images[0].used = true
|
||||
desc.fs.images[0].multisampled = false
|
||||
desc.fs.images[0].image_type = ._2D
|
||||
desc.fs.images[0].sample_type = .FLOAT
|
||||
desc.fs.samplers[0].used = true
|
||||
desc.fs.samplers[0].sampler_type = .FILTERING
|
||||
desc.fs.image_sampler_pairs[0].used = true
|
||||
desc.fs.image_sampler_pairs[0].image_slot = 0
|
||||
desc.fs.image_sampler_pairs[0].sampler_slot = 0
|
||||
desc.vertex_func.source = transmute(cstring)&draw_text_vs_source_hlsl4
|
||||
desc.vertex_func.d3d11_target = "vs_4_0"
|
||||
desc.vertex_func.entry = "main"
|
||||
desc.fragment_func.source = transmute(cstring)&draw_text_fs_source_hlsl4
|
||||
desc.fragment_func.d3d11_target = "ps_4_0"
|
||||
desc.fragment_func.entry = "main"
|
||||
desc.attrs[0].hlsl_sem_name = "TEXCOORD"
|
||||
desc.attrs[0].hlsl_sem_index = 0
|
||||
desc.attrs[1].hlsl_sem_name = "TEXCOORD"
|
||||
desc.attrs[1].hlsl_sem_index = 1
|
||||
desc.uniform_blocks[0].stage = .FRAGMENT
|
||||
desc.uniform_blocks[0].layout = .STD140
|
||||
desc.uniform_blocks[0].size = 32
|
||||
desc.uniform_blocks[0].hlsl_register_b_n = 0
|
||||
desc.images[0].stage = .FRAGMENT
|
||||
desc.images[0].multisampled = false
|
||||
desc.images[0].image_type = ._2D
|
||||
desc.images[0].sample_type = .FLOAT
|
||||
desc.images[0].hlsl_register_t_n = 0
|
||||
desc.samplers[0].stage = .FRAGMENT
|
||||
desc.samplers[0].sampler_type = .FILTERING
|
||||
desc.samplers[0].hlsl_register_s_n = 0
|
||||
desc.image_sampler_pairs[0].stage = .FRAGMENT
|
||||
desc.image_sampler_pairs[0].image_slot = 0
|
||||
desc.image_sampler_pairs[0].sampler_slot = 0
|
||||
case .METAL_MACOS:
|
||||
desc.vs.source = transmute(cstring)&draw_text_vs_source_metal_macos
|
||||
desc.vs.entry = "main0"
|
||||
desc.fs.source = transmute(cstring)&draw_text_fs_source_metal_macos
|
||||
desc.fs.entry = "main0"
|
||||
desc.fs.uniform_blocks[0].size = 32
|
||||
desc.fs.uniform_blocks[0].layout = .STD140
|
||||
desc.fs.images[0].used = true
|
||||
desc.fs.images[0].multisampled = false
|
||||
desc.fs.images[0].image_type = ._2D
|
||||
desc.fs.images[0].sample_type = .FLOAT
|
||||
desc.fs.samplers[0].used = true
|
||||
desc.fs.samplers[0].sampler_type = .FILTERING
|
||||
desc.fs.image_sampler_pairs[0].used = true
|
||||
desc.fs.image_sampler_pairs[0].image_slot = 0
|
||||
desc.fs.image_sampler_pairs[0].sampler_slot = 0
|
||||
desc.vertex_func.source = transmute(cstring)&draw_text_vs_source_metal_macos
|
||||
desc.vertex_func.entry = "main0"
|
||||
desc.fragment_func.source = transmute(cstring)&draw_text_fs_source_metal_macos
|
||||
desc.fragment_func.entry = "main0"
|
||||
desc.uniform_blocks[0].stage = .FRAGMENT
|
||||
desc.uniform_blocks[0].layout = .STD140
|
||||
desc.uniform_blocks[0].size = 32
|
||||
desc.uniform_blocks[0].msl_buffer_n = 0
|
||||
desc.images[0].stage = .FRAGMENT
|
||||
desc.images[0].multisampled = false
|
||||
desc.images[0].image_type = ._2D
|
||||
desc.images[0].sample_type = .FLOAT
|
||||
desc.images[0].msl_texture_n = 0
|
||||
desc.samplers[0].stage = .FRAGMENT
|
||||
desc.samplers[0].sampler_type = .FILTERING
|
||||
desc.samplers[0].msl_sampler_n = 0
|
||||
desc.image_sampler_pairs[0].stage = .FRAGMENT
|
||||
desc.image_sampler_pairs[0].image_slot = 0
|
||||
desc.image_sampler_pairs[0].sampler_slot = 0
|
||||
case .WGPU:
|
||||
desc.vs.source = transmute(cstring)&draw_text_vs_source_wgsl
|
||||
desc.vs.entry = "main"
|
||||
desc.fs.source = transmute(cstring)&draw_text_fs_source_wgsl
|
||||
desc.fs.entry = "main"
|
||||
desc.fs.uniform_blocks[0].size = 32
|
||||
desc.fs.uniform_blocks[0].layout = .STD140
|
||||
desc.fs.images[0].used = true
|
||||
desc.fs.images[0].multisampled = false
|
||||
desc.fs.images[0].image_type = ._2D
|
||||
desc.fs.images[0].sample_type = .FLOAT
|
||||
desc.fs.samplers[0].used = true
|
||||
desc.fs.samplers[0].sampler_type = .FILTERING
|
||||
desc.fs.image_sampler_pairs[0].used = true
|
||||
desc.fs.image_sampler_pairs[0].image_slot = 0
|
||||
desc.fs.image_sampler_pairs[0].sampler_slot = 0
|
||||
desc.vertex_func.source = transmute(cstring)&draw_text_vs_source_wgsl
|
||||
desc.vertex_func.entry = "main"
|
||||
desc.fragment_func.source = transmute(cstring)&draw_text_fs_source_wgsl
|
||||
desc.fragment_func.entry = "main"
|
||||
desc.uniform_blocks[0].stage = .FRAGMENT
|
||||
desc.uniform_blocks[0].layout = .STD140
|
||||
desc.uniform_blocks[0].size = 32
|
||||
desc.uniform_blocks[0].wgsl_group0_binding_n = 8
|
||||
desc.images[0].stage = .FRAGMENT
|
||||
desc.images[0].multisampled = false
|
||||
desc.images[0].image_type = ._2D
|
||||
desc.images[0].sample_type = .FLOAT
|
||||
desc.images[0].wgsl_group1_binding_n = 64
|
||||
desc.samplers[0].stage = .FRAGMENT
|
||||
desc.samplers[0].sampler_type = .FILTERING
|
||||
desc.samplers[0].wgsl_group1_binding_n = 80
|
||||
desc.image_sampler_pairs[0].stage = .FRAGMENT
|
||||
desc.image_sampler_pairs[0].image_slot = 0
|
||||
desc.image_sampler_pairs[0].sampler_slot = 0
|
||||
}
|
||||
return desc
|
||||
}
|
||||
|
@@ -23,10 +23,10 @@ void main()
|
||||
in vec2 uv;
|
||||
out vec4 frag_color;
|
||||
|
||||
uniform texture2D draw_text_src_texture;
|
||||
uniform sampler draw_text_src_sampler;
|
||||
layout(binding = 0) uniform texture2D draw_text_src_texture;
|
||||
layout(binding = 0) uniform sampler draw_text_src_sampler;
|
||||
|
||||
uniform draw_text_fs_params {
|
||||
layout(binding = 0) uniform draw_text_fs_params {
|
||||
int down_sample;
|
||||
vec4 colour;
|
||||
};
|
||||
|
@@ -12,14 +12,15 @@ import sg "thirdparty:sokol/gfx"
|
||||
=========
|
||||
Shader program: 'render_glyph':
|
||||
Get shader desc: render_glyph_shader_desc(sg.query_backend())
|
||||
Vertex shader: render_glyph_vs
|
||||
Attributes:
|
||||
ATTR_render_glyph_vs_v_position => 0
|
||||
ATTR_render_glyph_vs_v_texture => 1
|
||||
Fragment shader: render_glyph_fs
|
||||
Vertex Shader: render_glyph_vs
|
||||
Fragment Shader: render_glyph_fs
|
||||
Attributes:
|
||||
ATTR_render_glyph_v_position => 0
|
||||
ATTR_render_glyph_v_texture => 1
|
||||
Bindings:
|
||||
*/
|
||||
ATTR_render_glyph_vs_v_position :: 0
|
||||
ATTR_render_glyph_vs_v_texture :: 1
|
||||
ATTR_render_glyph_v_position :: 0
|
||||
ATTR_render_glyph_v_texture :: 1
|
||||
/*
|
||||
#version 410
|
||||
|
||||
@@ -34,7 +35,7 @@ ATTR_render_glyph_vs_v_texture :: 1
|
||||
}
|
||||
|
||||
*/
|
||||
@(private)
|
||||
@(private="file")
|
||||
render_glyph_vs_source_glsl410 := [235]u8 {
|
||||
0x23,0x76,0x65,0x72,0x73,0x69,0x6f,0x6e,0x20,0x34,0x31,0x30,0x0a,0x0a,0x6c,0x61,
|
||||
0x79,0x6f,0x75,0x74,0x28,0x6c,0x6f,0x63,0x61,0x74,0x69,0x6f,0x6e,0x20,0x3d,0x20,
|
||||
@@ -64,7 +65,7 @@ render_glyph_vs_source_glsl410 := [235]u8 {
|
||||
}
|
||||
|
||||
*/
|
||||
@(private)
|
||||
@(private="file")
|
||||
render_glyph_fs_source_glsl410 := [136]u8 {
|
||||
0x23,0x76,0x65,0x72,0x73,0x69,0x6f,0x6e,0x20,0x34,0x31,0x30,0x0a,0x0a,0x6c,0x61,
|
||||
0x79,0x6f,0x75,0x74,0x28,0x6c,0x6f,0x63,0x61,0x74,0x69,0x6f,0x6e,0x20,0x3d,0x20,
|
||||
@@ -90,7 +91,7 @@ render_glyph_fs_source_glsl410 := [136]u8 {
|
||||
}
|
||||
|
||||
*/
|
||||
@(private)
|
||||
@(private="file")
|
||||
render_glyph_vs_source_glsl300es := [217]u8 {
|
||||
0x23,0x76,0x65,0x72,0x73,0x69,0x6f,0x6e,0x20,0x33,0x30,0x30,0x20,0x65,0x73,0x0a,
|
||||
0x0a,0x6f,0x75,0x74,0x20,0x76,0x65,0x63,0x32,0x20,0x75,0x76,0x3b,0x0a,0x6c,0x61,
|
||||
@@ -121,7 +122,7 @@ render_glyph_vs_source_glsl300es := [217]u8 {
|
||||
}
|
||||
|
||||
*/
|
||||
@(private)
|
||||
@(private="file")
|
||||
render_glyph_fs_source_glsl300es := [176]u8 {
|
||||
0x23,0x76,0x65,0x72,0x73,0x69,0x6f,0x6e,0x20,0x33,0x30,0x30,0x20,0x65,0x73,0x0a,
|
||||
0x70,0x72,0x65,0x63,0x69,0x73,0x69,0x6f,0x6e,0x20,0x6d,0x65,0x64,0x69,0x75,0x6d,
|
||||
@@ -171,7 +172,7 @@ render_glyph_fs_source_glsl300es := [176]u8 {
|
||||
return stage_output;
|
||||
}
|
||||
*/
|
||||
@(private)
|
||||
@(private="file")
|
||||
render_glyph_vs_source_hlsl4 := [705]u8 {
|
||||
0x73,0x74,0x61,0x74,0x69,0x63,0x20,0x66,0x6c,0x6f,0x61,0x74,0x34,0x20,0x67,0x6c,
|
||||
0x5f,0x50,0x6f,0x73,0x69,0x74,0x69,0x6f,0x6e,0x3b,0x0a,0x73,0x74,0x61,0x74,0x69,
|
||||
@@ -247,7 +248,7 @@ render_glyph_vs_source_hlsl4 := [705]u8 {
|
||||
return stage_output;
|
||||
}
|
||||
*/
|
||||
@(private)
|
||||
@(private="file")
|
||||
render_glyph_fs_source_hlsl4 := [427]u8 {
|
||||
0x73,0x74,0x61,0x74,0x69,0x63,0x20,0x66,0x6c,0x6f,0x61,0x74,0x34,0x20,0x66,0x72,
|
||||
0x61,0x67,0x5f,0x63,0x6f,0x6c,0x6f,0x72,0x3b,0x0a,0x73,0x74,0x61,0x74,0x69,0x63,
|
||||
@@ -304,7 +305,7 @@ render_glyph_fs_source_hlsl4 := [427]u8 {
|
||||
}
|
||||
|
||||
*/
|
||||
@(private)
|
||||
@(private="file")
|
||||
render_glyph_vs_source_metal_macos := [473]u8 {
|
||||
0x23,0x69,0x6e,0x63,0x6c,0x75,0x64,0x65,0x20,0x3c,0x6d,0x65,0x74,0x61,0x6c,0x5f,
|
||||
0x73,0x74,0x64,0x6c,0x69,0x62,0x3e,0x0a,0x23,0x69,0x6e,0x63,0x6c,0x75,0x64,0x65,
|
||||
@@ -356,7 +357,7 @@ render_glyph_vs_source_metal_macos := [473]u8 {
|
||||
}
|
||||
|
||||
*/
|
||||
@(private)
|
||||
@(private="file")
|
||||
render_glyph_fs_source_metal_macos := [238]u8 {
|
||||
0x23,0x69,0x6e,0x63,0x6c,0x75,0x64,0x65,0x20,0x3c,0x6d,0x65,0x74,0x61,0x6c,0x5f,
|
||||
0x73,0x74,0x64,0x6c,0x69,0x62,0x3e,0x0a,0x23,0x69,0x6e,0x63,0x6c,0x75,0x64,0x65,
|
||||
@@ -410,7 +411,7 @@ render_glyph_fs_source_metal_macos := [238]u8 {
|
||||
}
|
||||
|
||||
*/
|
||||
@(private)
|
||||
@(private="file")
|
||||
render_glyph_vs_source_wgsl := [698]u8 {
|
||||
0x64,0x69,0x61,0x67,0x6e,0x6f,0x73,0x74,0x69,0x63,0x28,0x6f,0x66,0x66,0x2c,0x20,
|
||||
0x64,0x65,0x72,0x69,0x76,0x61,0x74,0x69,0x76,0x65,0x5f,0x75,0x6e,0x69,0x66,0x6f,
|
||||
@@ -482,7 +483,7 @@ render_glyph_vs_source_wgsl := [698]u8 {
|
||||
}
|
||||
|
||||
*/
|
||||
@(private)
|
||||
@(private="file")
|
||||
render_glyph_fs_source_wgsl := [361]u8 {
|
||||
0x64,0x69,0x61,0x67,0x6e,0x6f,0x73,0x74,0x69,0x63,0x28,0x6f,0x66,0x66,0x2c,0x20,
|
||||
0x64,0x65,0x72,0x69,0x76,0x61,0x74,0x69,0x76,0x65,0x5f,0x75,0x6e,0x69,0x66,0x6f,
|
||||
@@ -513,40 +514,40 @@ render_glyph_shader_desc :: proc (backend: sg.Backend) -> sg.Shader_Desc {
|
||||
desc.label = "render_glyph_shader"
|
||||
#partial switch backend {
|
||||
case .GLCORE:
|
||||
desc.attrs[0].name = "v_position"
|
||||
desc.attrs[1].name = "v_texture"
|
||||
desc.vs.source = transmute(cstring)&render_glyph_vs_source_glsl410
|
||||
desc.vs.entry = "main"
|
||||
desc.fs.source = transmute(cstring)&render_glyph_fs_source_glsl410
|
||||
desc.fs.entry = "main"
|
||||
desc.vertex_func.source = transmute(cstring)&render_glyph_vs_source_glsl410
|
||||
desc.vertex_func.entry = "main"
|
||||
desc.fragment_func.source = transmute(cstring)&render_glyph_fs_source_glsl410
|
||||
desc.fragment_func.entry = "main"
|
||||
desc.attrs[0].glsl_name = "v_position"
|
||||
desc.attrs[1].glsl_name = "v_texture"
|
||||
case .GLES3:
|
||||
desc.attrs[0].name = "v_position"
|
||||
desc.attrs[1].name = "v_texture"
|
||||
desc.vs.source = transmute(cstring)&render_glyph_vs_source_glsl300es
|
||||
desc.vs.entry = "main"
|
||||
desc.fs.source = transmute(cstring)&render_glyph_fs_source_glsl300es
|
||||
desc.fs.entry = "main"
|
||||
desc.vertex_func.source = transmute(cstring)&render_glyph_vs_source_glsl300es
|
||||
desc.vertex_func.entry = "main"
|
||||
desc.fragment_func.source = transmute(cstring)&render_glyph_fs_source_glsl300es
|
||||
desc.fragment_func.entry = "main"
|
||||
desc.attrs[0].glsl_name = "v_position"
|
||||
desc.attrs[1].glsl_name = "v_texture"
|
||||
case .D3D11:
|
||||
desc.attrs[0].sem_name = "TEXCOORD"
|
||||
desc.attrs[0].sem_index = 0
|
||||
desc.attrs[1].sem_name = "TEXCOORD"
|
||||
desc.attrs[1].sem_index = 1
|
||||
desc.vs.source = transmute(cstring)&render_glyph_vs_source_hlsl4
|
||||
desc.vs.d3d11_target = "vs_4_0"
|
||||
desc.vs.entry = "main"
|
||||
desc.fs.source = transmute(cstring)&render_glyph_fs_source_hlsl4
|
||||
desc.fs.d3d11_target = "ps_4_0"
|
||||
desc.fs.entry = "main"
|
||||
desc.vertex_func.source = transmute(cstring)&render_glyph_vs_source_hlsl4
|
||||
desc.vertex_func.d3d11_target = "vs_4_0"
|
||||
desc.vertex_func.entry = "main"
|
||||
desc.fragment_func.source = transmute(cstring)&render_glyph_fs_source_hlsl4
|
||||
desc.fragment_func.d3d11_target = "ps_4_0"
|
||||
desc.fragment_func.entry = "main"
|
||||
desc.attrs[0].hlsl_sem_name = "TEXCOORD"
|
||||
desc.attrs[0].hlsl_sem_index = 0
|
||||
desc.attrs[1].hlsl_sem_name = "TEXCOORD"
|
||||
desc.attrs[1].hlsl_sem_index = 1
|
||||
case .METAL_MACOS:
|
||||
desc.vs.source = transmute(cstring)&render_glyph_vs_source_metal_macos
|
||||
desc.vs.entry = "main0"
|
||||
desc.fs.source = transmute(cstring)&render_glyph_fs_source_metal_macos
|
||||
desc.fs.entry = "main0"
|
||||
desc.vertex_func.source = transmute(cstring)&render_glyph_vs_source_metal_macos
|
||||
desc.vertex_func.entry = "main0"
|
||||
desc.fragment_func.source = transmute(cstring)&render_glyph_fs_source_metal_macos
|
||||
desc.fragment_func.entry = "main0"
|
||||
case .WGPU:
|
||||
desc.vs.source = transmute(cstring)&render_glyph_vs_source_wgsl
|
||||
desc.vs.entry = "main"
|
||||
desc.fs.source = transmute(cstring)&render_glyph_fs_source_wgsl
|
||||
desc.fs.entry = "main"
|
||||
desc.vertex_func.source = transmute(cstring)&render_glyph_vs_source_wgsl
|
||||
desc.vertex_func.entry = "main"
|
||||
desc.fragment_func.source = transmute(cstring)&render_glyph_fs_source_wgsl
|
||||
desc.fragment_func.entry = "main"
|
||||
}
|
||||
return desc
|
||||
}
|
||||
|
@@ -217,7 +217,7 @@ draw_text_zoomed_norm :: proc(content : string, id : Font_ID, size : f32, pos :
|
||||
ve.draw_text(&demo_ctx.ve_ctx, ve_id, content, pos, text_scale)
|
||||
}
|
||||
|
||||
sokol_app_alloc :: proc "c" ( size : u64, user_data : rawptr ) -> rawptr {
|
||||
sokol_app_alloc :: proc "c" ( size : uint, user_data : rawptr ) -> rawptr {
|
||||
context = runtime.default_context()
|
||||
block, error := mem.alloc( int(size), allocator = context.allocator )
|
||||
assert(error == .None, "sokol_app allocation failed")
|
||||
@@ -229,7 +229,7 @@ sokol_app_free :: proc "c" ( data : rawptr, user_data : rawptr ) {
|
||||
free(data, allocator = context.allocator)
|
||||
}
|
||||
|
||||
sokol_gfx_alloc :: proc "c" ( size : u64, user_data : rawptr ) -> rawptr {
|
||||
sokol_gfx_alloc :: proc "c" ( size : uint, user_data : rawptr ) -> rawptr {
|
||||
context = runtime.default_context()
|
||||
block, error := mem.alloc( int(size), allocator = context.allocator )
|
||||
assert(error == .None, "sokol_gfx allocation failed")
|
||||
|
Reference in New Issue
Block a user