update sokol (views update for gfx was breaking change)

This commit is contained in:
2025-09-14 13:34:49 -04:00
parent 8ed60cca33
commit 841a23b707
66 changed files with 5534 additions and 4516 deletions

View File

@@ -13,14 +13,20 @@ Context :: struct {
screen_shader : gfx.Shader,
// ve.glyph_buffer.(width, height), R8
glyph_rt_color : gfx.Image,
glyph_rt_depth : gfx.Image,
glyph_rt_sampler : gfx.Sampler,
glyph_rt_color : gfx.Image,
glyph_rt_depth : gfx.Image,
glyph_rt_view_color : gfx.View,
glyph_rt_view_depth : gfx.View,
glyph_rt_view_texture : gfx.View,
glyph_rt_sampler : gfx.Sampler,
// ve.atlas.(width, height), R8
atlas_rt_color : gfx.Image,
atlas_rt_depth : gfx.Image,
atlas_rt_sampler : gfx.Sampler,
atlas_rt_color : gfx.Image,
atlas_rt_depth : gfx.Image,
atlas_rt_view_color : gfx.View,
atlas_rt_view_depth : gfx.View,
atlas_rt_view_texture : gfx.View,
atlas_rt_sampler : gfx.Sampler,
glyph_pipeline : gfx.Pipeline,
atlas_pipeline : gfx.Pipeline,
@@ -33,7 +39,6 @@ Context :: struct {
setup_gfx_objects :: proc( ctx : ^Context, ve_ctx : ^ve.Context, vert_cap, index_cap : u64 )
{
Attachment_Desc :: gfx.Attachment_Desc
Blend_Factor :: gfx.Blend_Factor
Blend_Op :: gfx.Blend_Op
Blend_State :: gfx.Blend_State
@@ -43,18 +48,21 @@ setup_gfx_objects :: proc( ctx : ^Context, ve_ctx : ^ve.Context, vert_cap, index
Color_Target_State :: gfx.Color_Target_State
Filter :: gfx.Filter
Image_Desc :: gfx.Image_Desc
Image_View_Desc :: gfx.Image_View_Desc
Image_Usage :: gfx.Image_Usage
Pass_Action :: gfx.Pass_Action
Range :: gfx.Range
Resource_State :: gfx.Resource_State
Sampler_Description :: gfx.Sampler_Desc
Wrap :: gfx.Wrap
Texture_View_Desc :: gfx.Texture_View_Desc
Vertex_Attribute_State :: gfx.Vertex_Attr_State
Vertex_Buffer_Layout_State :: gfx.Vertex_Buffer_Layout_State
Vertex_Index_Type :: gfx.Index_Type
Vertex_Format :: gfx.Vertex_Format
Vertex_Layout_State :: gfx.Vertex_Layout_State
Vertex_Step :: gfx.Vertex_Step
View_Desc :: gfx.View_Desc
backend := gfx.query_backend()
app_env := glue.environment()
@@ -134,7 +142,7 @@ setup_gfx_objects :: proc( ctx : ^Context, ve_ctx : ^ve.Context, vert_cap, index
{
ctx.glyph_rt_color = gfx.make_image( Image_Desc {
type = ._2D,
usage = Image_Usage { render_attachment = true, immutable = true },
usage = Image_Usage { color_attachment = true, immutable = true },
width = i32(ve_ctx.glyph_buffer.size.x),
height = i32(ve_ctx.glyph_buffer.size.y),
num_slices = 1,
@@ -146,7 +154,7 @@ setup_gfx_objects :: proc( ctx : ^Context, ve_ctx : ^ve.Context, vert_cap, index
ctx.glyph_rt_depth = gfx.make_image( Image_Desc {
type = ._2D,
usage = Image_Usage { render_attachment = true, immutable = true },
usage = Image_Usage { depth_stencil_attachment = true, immutable = true },
width = i32(ve_ctx.glyph_buffer.size.x),
height = i32(ve_ctx.glyph_buffer.size.y),
num_slices = 1,
@@ -169,19 +177,27 @@ setup_gfx_objects :: proc( ctx : ^Context, ve_ctx : ^ve.Context, vert_cap, index
})
assert( gfx.query_sampler_state( ctx.glyph_rt_sampler) < Resource_State.FAILED, "Failed to make atlas_rt_sampler" )
color_attach := Attachment_Desc {
color_attach := Image_View_Desc {
image = ctx.glyph_rt_color,
}
glyph_attachments := gfx.make_attachments({
colors = {
0 = color_attach,
},
depth_stencil = {
image = ctx.glyph_rt_depth,
},
depth_attach := Image_View_Desc {
image = ctx.glyph_rt_depth,
}
texture_attach := Texture_View_Desc {
image = ctx.glyph_rt_color,
}
ctx.glyph_rt_view_color = gfx.make_view({
color_attachment = color_attach,
})
assert( gfx.query_attachments_state(glyph_attachments) < Resource_State.FAILED, "Failed to make glyph_attachments" )
assert( gfx.query_view_state(ctx.glyph_rt_view_color) < Resource_State.FAILED, "Failed to make glyph_rt_view_color" )
ctx.glyph_rt_view_depth = gfx.make_view({
depth_stencil_attachment = depth_attach,
})
assert( gfx.query_view_state(ctx.glyph_rt_view_depth) < Resource_State.FAILED, "Failed to make glyph_rt_view_depth" )
ctx.glyph_rt_view_texture = gfx.make_view({
texture = texture_attach,
})
assert( gfx.query_view_state(ctx.glyph_rt_view_texture) < Resource_State.FAILED, "Failed to make glyph_rt_view_texture" )
glyph_action := Pass_Action {
colors = {
@@ -205,8 +221,10 @@ setup_gfx_objects :: proc( ctx : ^Context, ve_ctx : ^ve.Context, vert_cap, index
ctx.glyph_pass = gfx.Pass {
action = glyph_action,
attachments = glyph_attachments,
// label =
attachments = {
colors = { ctx.glyph_rt_view_color, {}, {}, {} },
depth_stencil = ctx.glyph_rt_view_depth,
},
}
}
@@ -266,7 +284,7 @@ setup_gfx_objects :: proc( ctx : ^Context, ve_ctx : ^ve.Context, vert_cap, index
{
ctx.atlas_rt_color = gfx.make_image( Image_Desc {
type = ._2D,
usage = { render_attachment = true, immutable = true },
usage = { color_attachment = true, immutable = true },
width = i32(ve_ctx.atlas.size.x),
height = i32(ve_ctx.atlas.size.y),
num_slices = 1,
@@ -280,7 +298,7 @@ setup_gfx_objects :: proc( ctx : ^Context, ve_ctx : ^ve.Context, vert_cap, index
ctx.atlas_rt_depth = gfx.make_image( Image_Desc {
type = ._2D,
usage = { render_attachment = true, immutable = true },
usage = { depth_stencil_attachment = true, immutable = true },
width = i32(ve_ctx.atlas.size.x),
height = i32(ve_ctx.atlas.size.y),
num_slices = 1,
@@ -304,19 +322,27 @@ setup_gfx_objects :: proc( ctx : ^Context, ve_ctx : ^ve.Context, vert_cap, index
})
assert( gfx.query_sampler_state( ctx.atlas_rt_sampler) < Resource_State.FAILED, "Failed to make atlas_rt_sampler" )
color_attach := Attachment_Desc {
color_attach := Image_View_Desc {
image = ctx.atlas_rt_color,
}
atlas_attachments := gfx.make_attachments({
colors = {
0 = color_attach,
},
depth_stencil = {
image = ctx.atlas_rt_depth,
},
depth_attach := Image_View_Desc {
image = ctx.atlas_rt_depth,
}
texture_attach := Texture_View_Desc {
image = ctx.atlas_rt_color,
}
ctx.atlas_rt_view_color = gfx.make_view({
color_attachment = color_attach,
})
assert( gfx.query_attachments_state(atlas_attachments) < Resource_State.FAILED, "Failed to make atlas_attachments")
assert( gfx.query_view_state(ctx.atlas_rt_view_color) < Resource_State.FAILED, "Failed to make ctx.atlas_rt_view_color")
ctx.atlas_rt_view_depth = gfx.make_view({
depth_stencil_attachment = depth_attach,
})
assert( gfx.query_view_state(ctx.atlas_rt_view_depth) < Resource_State.FAILED, "Failed to make ctx.atlas_rt_view_depth")
ctx.atlas_rt_view_texture = gfx.make_view({
texture = texture_attach,
})
assert( gfx.query_view_state(ctx.atlas_rt_view_texture) < Resource_State.FAILED, "Failed to make atlas_rt_view_texture" )
atlas_action := Pass_Action {
colors = {
@@ -338,9 +364,12 @@ setup_gfx_objects :: proc( ctx : ^Context, ve_ctx : ^ve.Context, vert_cap, index
}
}
ctx.atlas_pass = gfx.Pass {
action = atlas_action,
attachments = atlas_attachments,
ctx.atlas_pass = gfx.Pass {
action = atlas_action,
attachments = {
colors = { ctx.atlas_rt_view_color, {}, {}, {} },
depth_stencil = ctx.atlas_rt_view_depth,
},
}
}
@@ -538,8 +567,8 @@ render_text_layer :: proc( screen_extent : ve.Vec2, ve_ctx : ^ve.Context, ctx :
},
index_buffer = ctx.draw_list_ibuf,
index_buffer_offset = 0,
images = { IMG_blit_atlas_src_texture = ctx.glyph_rt_color, },
samplers = { SMP_blit_atlas_src_sampler = ctx.glyph_rt_sampler, },
views = { VIEW_blit_atlas_src_texture = ctx.glyph_rt_view_texture, },
samplers = { SMP_blit_atlas_src_sampler = ctx.glyph_rt_sampler, },
})
// 3. Use the atlas (.Target) or the glyph buffer (.Target_Unchached) to then render the text.
@@ -559,7 +588,7 @@ render_text_layer :: proc( screen_extent : ve.Vec2, ve_ctx : ^ve.Context, ctx :
gfx.apply_pipeline( ctx.screen_pipeline )
src_rt := ctx.atlas_rt_color
src_rt := ctx.atlas_rt_view_texture
src_sampler := ctx.atlas_rt_sampler
fs_target_uniform := Draw_Text_Fs_Params {
@@ -570,7 +599,7 @@ render_text_layer :: proc( screen_extent : ve.Vec2, ve_ctx : ^ve.Context, ctx :
if draw_call.pass == .Target_Uncached {
// fs_target_uniform.over_sample = 1.0
src_rt = ctx.glyph_rt_color
src_rt = ctx.glyph_rt_view_texture
src_sampler = ctx.glyph_rt_sampler
}
gfx.apply_uniforms( UB_draw_text_fs_params, Range { & fs_target_uniform, size_of(Draw_Text_Fs_Params) })
@@ -584,8 +613,8 @@ render_text_layer :: proc( screen_extent : ve.Vec2, ve_ctx : ^ve.Context, ctx :
},
index_buffer = ctx.draw_list_ibuf,
index_buffer_offset = 0,
images = { IMG_draw_text_src_texture = src_rt, },
samplers = { SMP_draw_text_src_sampler = src_sampler, },
views = { VIEW_draw_text_src_texture = src_rt, },
samplers = { SMP_draw_text_src_sampler = src_sampler, },
})
}

View File

@@ -21,11 +21,11 @@ import sg "thirdparty:sokol/gfx"
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':
Texture 'blit_atlas_src_texture':
Image type: ._2D
Sample type: .FLOAT
Multisampled: false
Bind slot: IMG_blit_atlas_src_texture => 0
Bind slot: VIEW_blit_atlas_src_texture => 0
Sampler 'blit_atlas_src_sampler':
Type: .FILTERING
Bind slot: SMP_blit_atlas_src_sampler => 0
@@ -33,7 +33,7 @@ import sg "thirdparty:sokol/gfx"
ATTR_blit_atlas_v_position :: 0
ATTR_blit_atlas_v_texture :: 1
UB_blit_atlas_fs_params :: 0
IMG_blit_atlas_src_texture :: 0
VIEW_blit_atlas_src_texture :: 0
SMP_blit_atlas_src_sampler :: 0
Blit_Atlas_Fs_Params :: struct #align(16) {
using _: struct #packed {
@@ -1228,7 +1228,7 @@ blit_atlas_vs_source_wgsl := [626]u8 {
@binding(64) @group(1) var blit_atlas_src_texture : texture_2d<f32>;
@binding(80) @group(1) var blit_atlas_src_sampler : sampler;
@binding(65) @group(1) var blit_atlas_src_sampler : sampler;
var<private> uv_1 : vec2f;
@@ -1353,7 +1353,7 @@ blit_atlas_fs_source_wgsl := [3476]u8 {
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,0x62,0x69,
0x6e,0x64,0x69,0x6e,0x67,0x28,0x38,0x30,0x29,0x20,0x40,0x67,0x72,0x6f,0x75,0x70,
0x6e,0x64,0x69,0x6e,0x67,0x28,0x36,0x35,0x29,0x20,0x40,0x67,0x72,0x6f,0x75,0x70,
0x28,0x31,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,0x76,0x61,0x72,0x3c,0x70,
@@ -1576,16 +1576,16 @@ blit_atlas_shader_desc :: proc (backend: sg.Backend) -> sg.Shader_Desc {
desc.uniform_blocks[0].glsl_uniforms[2].type = .INT
desc.uniform_blocks[0].glsl_uniforms[2].array_count = 0
desc.uniform_blocks[0].glsl_uniforms[2].glsl_name = "_20.region"
desc.images[0].stage = .FRAGMENT
desc.images[0].multisampled = false
desc.images[0].image_type = ._2D
desc.images[0].sample_type = .FLOAT
desc.views[0].texture.stage = .FRAGMENT
desc.views[0].texture.image_type = ._2D
desc.views[0].texture.sample_type = .FLOAT
desc.views[0].texture.multisampled = false
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"
desc.texture_sampler_pairs[0].stage = .FRAGMENT
desc.texture_sampler_pairs[0].view_slot = 0
desc.texture_sampler_pairs[0].sampler_slot = 0
desc.texture_sampler_pairs[0].glsl_name = "blit_atlas_src_texture_blit_atlas_src_sampler"
case .GLES3:
desc.vertex_func.source = transmute(cstring)&blit_atlas_vs_source_glsl300es
desc.vertex_func.entry = "main"
@@ -1607,16 +1607,16 @@ blit_atlas_shader_desc :: proc (backend: sg.Backend) -> sg.Shader_Desc {
desc.uniform_blocks[0].glsl_uniforms[2].type = .INT
desc.uniform_blocks[0].glsl_uniforms[2].array_count = 0
desc.uniform_blocks[0].glsl_uniforms[2].glsl_name = "_20.region"
desc.images[0].stage = .FRAGMENT
desc.images[0].multisampled = false
desc.images[0].image_type = ._2D
desc.images[0].sample_type = .FLOAT
desc.views[0].texture.stage = .FRAGMENT
desc.views[0].texture.image_type = ._2D
desc.views[0].texture.sample_type = .FLOAT
desc.views[0].texture.multisampled = false
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"
desc.texture_sampler_pairs[0].stage = .FRAGMENT
desc.texture_sampler_pairs[0].view_slot = 0
desc.texture_sampler_pairs[0].sampler_slot = 0
desc.texture_sampler_pairs[0].glsl_name = "blit_atlas_src_texture_blit_atlas_src_sampler"
case .D3D11:
desc.vertex_func.source = transmute(cstring)&blit_atlas_vs_source_hlsl4
desc.vertex_func.d3d11_target = "vs_4_0"
@@ -1634,17 +1634,17 @@ blit_atlas_shader_desc :: proc (backend: sg.Backend) -> sg.Shader_Desc {
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.views[0].texture.stage = .FRAGMENT
desc.views[0].texture.image_type = ._2D
desc.views[0].texture.sample_type = .FLOAT
desc.views[0].texture.multisampled = false
desc.views[0].texture.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
desc.texture_sampler_pairs[0].stage = .FRAGMENT
desc.texture_sampler_pairs[0].view_slot = 0
desc.texture_sampler_pairs[0].sampler_slot = 0
case .METAL_MACOS:
desc.vertex_func.source = transmute(cstring)&blit_atlas_vs_source_metal_macos
desc.vertex_func.entry = "main0"
@@ -1656,17 +1656,17 @@ blit_atlas_shader_desc :: proc (backend: sg.Backend) -> sg.Shader_Desc {
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.views[0].texture.stage = .FRAGMENT
desc.views[0].texture.image_type = ._2D
desc.views[0].texture.sample_type = .FLOAT
desc.views[0].texture.multisampled = false
desc.views[0].texture.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
desc.texture_sampler_pairs[0].stage = .FRAGMENT
desc.texture_sampler_pairs[0].view_slot = 0
desc.texture_sampler_pairs[0].sampler_slot = 0
case .WGPU:
desc.vertex_func.source = transmute(cstring)&blit_atlas_vs_source_wgsl
desc.vertex_func.entry = "main"
@@ -1678,17 +1678,17 @@ blit_atlas_shader_desc :: proc (backend: sg.Backend) -> sg.Shader_Desc {
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.views[0].texture.stage = .FRAGMENT
desc.views[0].texture.image_type = ._2D
desc.views[0].texture.sample_type = .FLOAT
desc.views[0].texture.multisampled = false
desc.views[0].texture.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
desc.samplers[0].wgsl_group1_binding_n = 65
desc.texture_sampler_pairs[0].stage = .FRAGMENT
desc.texture_sampler_pairs[0].view_slot = 0
desc.texture_sampler_pairs[0].sampler_slot = 0
}
return desc
}

View File

@@ -21,11 +21,11 @@ import sg "thirdparty:sokol/gfx"
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':
Texture 'draw_text_src_texture':
Image type: ._2D
Sample type: .FLOAT
Multisampled: false
Bind slot: IMG_draw_text_src_texture => 0
Bind slot: VIEW_draw_text_src_texture => 0
Sampler 'draw_text_src_sampler':
Type: .FILTERING
Bind slot: SMP_draw_text_src_sampler => 0
@@ -33,7 +33,7 @@ import sg "thirdparty:sokol/gfx"
ATTR_draw_text_v_position :: 0
ATTR_draw_text_v_texture :: 1
UB_draw_text_fs_params :: 0
IMG_draw_text_src_texture :: 0
VIEW_draw_text_src_texture :: 0
SMP_draw_text_src_sampler :: 0
Draw_Text_Fs_Params :: struct #align(16) {
using _: struct #packed {
@@ -699,7 +699,7 @@ draw_text_vs_source_wgsl := [664]u8 {
@binding(64) @group(1) var draw_text_src_texture : texture_2d<f32>;
@binding(80) @group(1) var draw_text_src_sampler : sampler;
@binding(65) @group(1) var draw_text_src_sampler : sampler;
var<private> uv : vec2f;
@@ -768,7 +768,7 @@ draw_text_fs_source_wgsl := [1825]u8 {
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,0x62,0x69,0x6e,
0x64,0x69,0x6e,0x67,0x28,0x38,0x30,0x29,0x20,0x40,0x67,0x72,0x6f,0x75,0x70,0x28,
0x64,0x69,0x6e,0x67,0x28,0x36,0x35,0x29,0x20,0x40,0x67,0x72,0x6f,0x75,0x70,0x28,
0x31,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,
@@ -886,16 +886,16 @@ draw_text_shader_desc :: proc (backend: sg.Backend) -> sg.Shader_Desc {
desc.uniform_blocks[0].glsl_uniforms[0].type = .FLOAT4
desc.uniform_blocks[0].glsl_uniforms[0].array_count = 2
desc.uniform_blocks[0].glsl_uniforms[0].glsl_name = "draw_text_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.views[0].texture.stage = .FRAGMENT
desc.views[0].texture.image_type = ._2D
desc.views[0].texture.sample_type = .FLOAT
desc.views[0].texture.multisampled = false
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"
desc.texture_sampler_pairs[0].stage = .FRAGMENT
desc.texture_sampler_pairs[0].view_slot = 0
desc.texture_sampler_pairs[0].sampler_slot = 0
desc.texture_sampler_pairs[0].glsl_name = "draw_text_src_texture_draw_text_src_sampler"
case .GLES3:
desc.vertex_func.source = transmute(cstring)&draw_text_vs_source_glsl300es
desc.vertex_func.entry = "main"
@@ -911,16 +911,16 @@ draw_text_shader_desc :: proc (backend: sg.Backend) -> sg.Shader_Desc {
desc.uniform_blocks[0].glsl_uniforms[0].type = .FLOAT4
desc.uniform_blocks[0].glsl_uniforms[0].array_count = 2
desc.uniform_blocks[0].glsl_uniforms[0].glsl_name = "draw_text_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.views[0].texture.stage = .FRAGMENT
desc.views[0].texture.image_type = ._2D
desc.views[0].texture.sample_type = .FLOAT
desc.views[0].texture.multisampled = false
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"
desc.texture_sampler_pairs[0].stage = .FRAGMENT
desc.texture_sampler_pairs[0].view_slot = 0
desc.texture_sampler_pairs[0].sampler_slot = 0
desc.texture_sampler_pairs[0].glsl_name = "draw_text_src_texture_draw_text_src_sampler"
case .D3D11:
desc.vertex_func.source = transmute(cstring)&draw_text_vs_source_hlsl4
desc.vertex_func.d3d11_target = "vs_4_0"
@@ -938,17 +938,17 @@ draw_text_shader_desc :: proc (backend: sg.Backend) -> sg.Shader_Desc {
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.views[0].texture.stage = .FRAGMENT
desc.views[0].texture.image_type = ._2D
desc.views[0].texture.sample_type = .FLOAT
desc.views[0].texture.multisampled = false
desc.views[0].texture.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
desc.texture_sampler_pairs[0].stage = .FRAGMENT
desc.texture_sampler_pairs[0].view_slot = 0
desc.texture_sampler_pairs[0].sampler_slot = 0
case .METAL_MACOS:
desc.vertex_func.source = transmute(cstring)&draw_text_vs_source_metal_macos
desc.vertex_func.entry = "main0"
@@ -960,17 +960,17 @@ draw_text_shader_desc :: proc (backend: sg.Backend) -> sg.Shader_Desc {
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.views[0].texture.stage = .FRAGMENT
desc.views[0].texture.image_type = ._2D
desc.views[0].texture.sample_type = .FLOAT
desc.views[0].texture.multisampled = false
desc.views[0].texture.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
desc.texture_sampler_pairs[0].stage = .FRAGMENT
desc.texture_sampler_pairs[0].view_slot = 0
desc.texture_sampler_pairs[0].sampler_slot = 0
case .WGPU:
desc.vertex_func.source = transmute(cstring)&draw_text_vs_source_wgsl
desc.vertex_func.entry = "main"
@@ -982,17 +982,17 @@ draw_text_shader_desc :: proc (backend: sg.Backend) -> sg.Shader_Desc {
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.views[0].texture.stage = .FRAGMENT
desc.views[0].texture.image_type = ._2D
desc.views[0].texture.sample_type = .FLOAT
desc.views[0].texture.multisampled = false
desc.views[0].texture.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
desc.samplers[0].wgsl_group1_binding_n = 65
desc.texture_sampler_pairs[0].stage = .FRAGMENT
desc.texture_sampler_pairs[0].view_slot = 0
desc.texture_sampler_pairs[0].sampler_slot = 0
}
return desc
}