mirror of
https://github.com/Ed94/VEFontCache-Odin.git
synced 2025-09-18 00:11:05 -07:00
update sokol (views update for gfx was breaking change)
This commit is contained in:
@@ -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, },
|
||||
})
|
||||
}
|
||||
|
||||
|
@@ -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
|
||||
}
|
||||
|
@@ -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
|
||||
}
|
||||
|
Reference in New Issue
Block a user