这是indexloc提供的服务,不要输入任何密码
Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
23 changes: 12 additions & 11 deletions .github/workflows/main.yml
Original file line number Diff line number Diff line change
Expand Up @@ -57,22 +57,23 @@ jobs:
cd ..
- name: build
run: |
./odin build examples/clear -debug
./odin build examples/triangle -debug
./odin build examples/quad -debug
./odin build examples/blend -debug
./odin build examples/bufferoffsets -debug
./odin build examples/clear -debug
./odin build examples/cube -debug
./odin build examples/noninterleaved -debug
./odin build examples/texcube -debug
./odin build examples/shapes -debug
./odin build examples/offscreen -debug
./odin build examples/instancing -debug
./odin build examples/mrt -debug
./odin build examples/blend -debug
./odin build examples/debugtext -debug
./odin build examples/debugtext-print -debug
./odin build examples/debugtext-userfont -debug
./odin build examples/instancing -debug
./odin build examples/mrt -debug
./odin build examples/noninterleaved -debug
./odin build examples/offscreen -debug
./odin build examples/quad -debug
./odin build examples/saudio -debug
./odin build examples/sgl -debug
./odin build examples/sgl-points -debug
./odin build examples/sgl-context -debug
./odin build examples/sgl-points -debug
./odin build examples/shapes -debug
./odin build examples/texcube -debug
./odin build examples/triangle -debug
./odin build examples/vertexpull -debug
1 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -12,3 +12,4 @@ build/
*.dylib
*.exe
*.dSYM/
ols.json
10 changes: 5 additions & 5 deletions examples/blend/main.odin
Original file line number Diff line number Diff line change
Expand Up @@ -62,7 +62,7 @@ init :: proc "c" () {
0 = { stride = 28 },
},
attrs = {
ATTR_vs_bg_position = { format = .FLOAT2 },
ATTR_bg_position = { format = .FLOAT2 },
},
},
primitive_type = .TRIANGLE_STRIP,
Expand All @@ -75,8 +75,8 @@ init :: proc "c" () {
pip_desc := sg.Pipeline_Desc {
layout = {
attrs = {
ATTR_vs_quad_position = { format = .FLOAT3 },
ATTR_vs_quad_color0 = { format = .FLOAT4 },
ATTR_quad_position = { format = .FLOAT3 },
ATTR_quad_color0 = { format = .FLOAT4 },
},
},
shader = quad_shd,
Expand Down Expand Up @@ -115,7 +115,7 @@ frame :: proc "c" () {
// draw a background quad
sg.apply_pipeline(state.bg_pip)
sg.apply_bindings(state.bind)
sg.apply_uniforms(.FS, SLOT_bg_fs_params, { ptr = &state.bg_fs_params, size = size_of(state.bg_fs_params) })
sg.apply_uniforms(UB_bg_fs_params, { ptr = &state.bg_fs_params, size = size_of(state.bg_fs_params) })
sg.draw(0, 4, 1)

// draw the blended quads
Expand All @@ -131,7 +131,7 @@ frame :: proc "c" () {

sg.apply_pipeline(state.pips[src][dst])
sg.apply_bindings(state.bind)
sg.apply_uniforms(.VS, SLOT_quad_vs_params, { ptr = &state.quad_vs_params, size = size_of(state.quad_vs_params) })
sg.apply_uniforms(UB_quad_vs_params, { ptr = &state.quad_vs_params, size = size_of(state.quad_vs_params) })
sg.draw(0, 4, 1)
}
}
Expand Down
4 changes: 2 additions & 2 deletions examples/blend/shader.glsl
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@ void main() {
@end

@fs fs_bg
uniform bg_fs_params {
layout(binding=0) uniform bg_fs_params {
float tick;
};

Expand All @@ -29,7 +29,7 @@ void main() {
@program bg vs_bg fs_bg

@vs vs_quad
uniform quad_vs_params {
layout(binding=0) uniform quad_vs_params {
mat4 mvp;
};

Expand Down
161 changes: 86 additions & 75 deletions examples/blend/shader.odin
Original file line number Diff line number Diff line change
Expand Up @@ -13,29 +13,30 @@ import m "../math"
=========
Shader program: 'bg':
Get shader desc: bg_shader_desc(sg.query_backend())
Vertex shader: vs_bg
Attributes:
ATTR_vs_bg_position => 0
Fragment shader: fs_bg
Uniform block 'bg_fs_params':
Odin struct: Bg_Fs_Params
Bind slot: SLOT_bg_fs_params => 0
Vertex Shader: vs_bg
Fragment Shader: fs_bg
Attributes:
ATTR_bg_position => 0
Shader program: 'quad':
Get shader desc: quad_shader_desc(sg.query_backend())
Vertex shader: vs_quad
Attributes:
ATTR_vs_quad_position => 0
ATTR_vs_quad_color0 => 1
Uniform block 'quad_vs_params':
Odin struct: Quad_Vs_Params
Bind slot: SLOT_quad_vs_params => 0
Fragment shader: fs_quad
Vertex Shader: vs_quad
Fragment Shader: fs_quad
Attributes:
ATTR_quad_position => 0
ATTR_quad_color0 => 1
Bindings:
Uniform block 'bg_fs_params':
Odin struct: Bg_Fs_Params
Bind slot: UB_bg_fs_params => 0
Uniform block 'quad_vs_params':
Odin struct: Quad_Vs_Params
Bind slot: UB_quad_vs_params => 0
*/
ATTR_vs_bg_position :: 0
ATTR_vs_quad_position :: 0
ATTR_vs_quad_color0 :: 1
SLOT_bg_fs_params :: 0
SLOT_quad_vs_params :: 0
ATTR_bg_position :: 0
ATTR_quad_position :: 0
ATTR_quad_color0 :: 1
UB_bg_fs_params :: 0
UB_quad_vs_params :: 0
Bg_Fs_Params :: struct #align(16) {
using _: struct #packed {
tick: f32,
Expand Down Expand Up @@ -694,34 +695,39 @@ bg_shader_desc :: proc (backend: sg.Backend) -> sg.Shader_Desc {
desc.label = "bg_shader"
#partial switch backend {
case .GLCORE:
desc.attrs[0].name = "position"
desc.vs.source = transmute(cstring)&vs_bg_source_glsl430
desc.vs.entry = "main"
desc.fs.source = transmute(cstring)&fs_bg_source_glsl430
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 = "bg_fs_params"
desc.fs.uniform_blocks[0].uniforms[0].type = .FLOAT4
desc.fs.uniform_blocks[0].uniforms[0].array_count = 1
desc.vertex_func.source = transmute(cstring)&vs_bg_source_glsl430
desc.vertex_func.entry = "main"
desc.fragment_func.source = transmute(cstring)&fs_bg_source_glsl430
desc.fragment_func.entry = "main"
desc.attrs[0].glsl_name = "position"
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 = .FLOAT4
desc.uniform_blocks[0].glsl_uniforms[0].array_count = 1
desc.uniform_blocks[0].glsl_uniforms[0].glsl_name = "bg_fs_params"
case .D3D11:
desc.attrs[0].sem_name = "TEXCOORD"
desc.attrs[0].sem_index = 0
desc.vs.source = transmute(cstring)&vs_bg_source_hlsl5
desc.vs.d3d11_target = "vs_5_0"
desc.vs.entry = "main"
desc.fs.source = transmute(cstring)&fs_bg_source_hlsl5
desc.fs.d3d11_target = "ps_5_0"
desc.fs.entry = "main"
desc.fs.uniform_blocks[0].size = 16
desc.fs.uniform_blocks[0].layout = .STD140
desc.vertex_func.source = transmute(cstring)&vs_bg_source_hlsl5
desc.vertex_func.d3d11_target = "vs_5_0"
desc.vertex_func.entry = "main"
desc.fragment_func.source = transmute(cstring)&fs_bg_source_hlsl5
desc.fragment_func.d3d11_target = "ps_5_0"
desc.fragment_func.entry = "main"
desc.attrs[0].hlsl_sem_name = "TEXCOORD"
desc.attrs[0].hlsl_sem_index = 0
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
case .METAL_MACOS:
desc.vs.source = transmute(cstring)&vs_bg_source_metal_macos
desc.vs.entry = "main0"
desc.fs.source = transmute(cstring)&fs_bg_source_metal_macos
desc.fs.entry = "main0"
desc.fs.uniform_blocks[0].size = 16
desc.fs.uniform_blocks[0].layout = .STD140
desc.vertex_func.source = transmute(cstring)&vs_bg_source_metal_macos
desc.vertex_func.entry = "main0"
desc.fragment_func.source = transmute(cstring)&fs_bg_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
}
return desc
}
Expand All @@ -730,37 +736,42 @@ quad_shader_desc :: proc (backend: sg.Backend) -> sg.Shader_Desc {
desc.label = "quad_shader"
#partial switch backend {
case .GLCORE:
desc.attrs[0].name = "position"
desc.attrs[1].name = "color0"
desc.vs.source = transmute(cstring)&vs_quad_source_glsl430
desc.vs.entry = "main"
desc.vs.uniform_blocks[0].size = 64
desc.vs.uniform_blocks[0].layout = .STD140
desc.vs.uniform_blocks[0].uniforms[0].name = "quad_vs_params"
desc.vs.uniform_blocks[0].uniforms[0].type = .FLOAT4
desc.vs.uniform_blocks[0].uniforms[0].array_count = 4
desc.fs.source = transmute(cstring)&fs_quad_source_glsl430
desc.fs.entry = "main"
desc.vertex_func.source = transmute(cstring)&vs_quad_source_glsl430
desc.vertex_func.entry = "main"
desc.fragment_func.source = transmute(cstring)&fs_quad_source_glsl430
desc.fragment_func.entry = "main"
desc.attrs[0].glsl_name = "position"
desc.attrs[1].glsl_name = "color0"
desc.uniform_blocks[0].stage = .VERTEX
desc.uniform_blocks[0].layout = .STD140
desc.uniform_blocks[0].size = 64
desc.uniform_blocks[0].glsl_uniforms[0].type = .FLOAT4
desc.uniform_blocks[0].glsl_uniforms[0].array_count = 4
desc.uniform_blocks[0].glsl_uniforms[0].glsl_name = "quad_vs_params"
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)&vs_quad_source_hlsl5
desc.vs.d3d11_target = "vs_5_0"
desc.vs.entry = "main"
desc.vs.uniform_blocks[0].size = 64
desc.vs.uniform_blocks[0].layout = .STD140
desc.fs.source = transmute(cstring)&fs_quad_source_hlsl5
desc.fs.d3d11_target = "ps_5_0"
desc.fs.entry = "main"
desc.vertex_func.source = transmute(cstring)&vs_quad_source_hlsl5
desc.vertex_func.d3d11_target = "vs_5_0"
desc.vertex_func.entry = "main"
desc.fragment_func.source = transmute(cstring)&fs_quad_source_hlsl5
desc.fragment_func.d3d11_target = "ps_5_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 = .VERTEX
desc.uniform_blocks[0].layout = .STD140
desc.uniform_blocks[0].size = 64
desc.uniform_blocks[0].hlsl_register_b_n = 0
case .METAL_MACOS:
desc.vs.source = transmute(cstring)&vs_quad_source_metal_macos
desc.vs.entry = "main0"
desc.vs.uniform_blocks[0].size = 64
desc.vs.uniform_blocks[0].layout = .STD140
desc.fs.source = transmute(cstring)&fs_quad_source_metal_macos
desc.fs.entry = "main0"
desc.vertex_func.source = transmute(cstring)&vs_quad_source_metal_macos
desc.vertex_func.entry = "main0"
desc.fragment_func.source = transmute(cstring)&fs_quad_source_metal_macos
desc.fragment_func.entry = "main0"
desc.uniform_blocks[0].stage = .VERTEX
desc.uniform_blocks[0].layout = .STD140
desc.uniform_blocks[0].size = 64
desc.uniform_blocks[0].msl_buffer_n = 0
}
return desc
}
4 changes: 2 additions & 2 deletions examples/bufferoffsets/main.odin
Original file line number Diff line number Diff line change
Expand Up @@ -57,8 +57,8 @@ init :: proc "c" () {
index_type = .UINT16,
layout = {
attrs = {
ATTR_vs_position = { format = .FLOAT2 },
ATTR_vs_color0 = { format = .FLOAT3 },
ATTR_bufferoffsets_position = { format = .FLOAT2 },
ATTR_bufferoffsets_color0 = { format = .FLOAT3 },
},
},
})
Expand Down
5 changes: 2 additions & 3 deletions examples/bufferoffsets/shader.glsl
Original file line number Diff line number Diff line change
Expand Up @@ -2,8 +2,8 @@
@header import sg "../../sokol/gfx"

@vs vs
layout(location=0) in vec4 position;
layout(location=1) in vec4 color0;
in vec4 position;
in vec4 color0;

out vec4 color;

Expand All @@ -23,4 +23,3 @@ void main() {
@end

@program bufferoffsets vs fs

55 changes: 28 additions & 27 deletions examples/bufferoffsets/shader.odin
Original file line number Diff line number Diff line change
Expand Up @@ -12,14 +12,15 @@ import sg "../../sokol/gfx"
=========
Shader program: 'bufferoffsets':
Get shader desc: bufferoffsets_shader_desc(sg.query_backend())
Vertex shader: vs
Attributes:
ATTR_vs_position => 0
ATTR_vs_color0 => 1
Fragment shader: fs
Vertex Shader: vs
Fragment Shader: fs
Attributes:
ATTR_bufferoffsets_position => 0
ATTR_bufferoffsets_color0 => 1
Bindings:
*/
ATTR_vs_position :: 0
ATTR_vs_color0 :: 1
ATTR_bufferoffsets_position :: 0
ATTR_bufferoffsets_color0 :: 1
/*
#version 430

Expand Down Expand Up @@ -321,28 +322,28 @@ bufferoffsets_shader_desc :: proc (backend: sg.Backend) -> sg.Shader_Desc {
desc.label = "bufferoffsets_shader"
#partial switch backend {
case .GLCORE:
desc.attrs[0].name = "position"
desc.attrs[1].name = "color0"
desc.vs.source = transmute(cstring)&vs_source_glsl430
desc.vs.entry = "main"
desc.fs.source = transmute(cstring)&fs_source_glsl430
desc.fs.entry = "main"
desc.vertex_func.source = transmute(cstring)&vs_source_glsl430
desc.vertex_func.entry = "main"
desc.fragment_func.source = transmute(cstring)&fs_source_glsl430
desc.fragment_func.entry = "main"
desc.attrs[0].glsl_name = "position"
desc.attrs[1].glsl_name = "color0"
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)&vs_source_hlsl5
desc.vs.d3d11_target = "vs_5_0"
desc.vs.entry = "main"
desc.fs.source = transmute(cstring)&fs_source_hlsl5
desc.fs.d3d11_target = "ps_5_0"
desc.fs.entry = "main"
desc.vertex_func.source = transmute(cstring)&vs_source_hlsl5
desc.vertex_func.d3d11_target = "vs_5_0"
desc.vertex_func.entry = "main"
desc.fragment_func.source = transmute(cstring)&fs_source_hlsl5
desc.fragment_func.d3d11_target = "ps_5_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)&vs_source_metal_macos
desc.vs.entry = "main0"
desc.fs.source = transmute(cstring)&fs_source_metal_macos
desc.fs.entry = "main0"
desc.vertex_func.source = transmute(cstring)&vs_source_metal_macos
desc.vertex_func.entry = "main0"
desc.fragment_func.source = transmute(cstring)&fs_source_metal_macos
desc.fragment_func.entry = "main0"
}
return desc
}
Loading