1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
// // model pipeline
// {
// let v_buff_desc = SgBufferDesc {
// buffer_type: SgBufferType::VertexBuffer,
// size: size_of::<ModelVert>() * MAX_MODEL_VERTS,
// usage: SgUsage::Dynamic,
// };
// ctx.model_shape.bindings.vertex_buffers[0] = sg_make_buffer::<()>(None, &v_buff_desc);
// let i_buff_desc = SgBufferDesc {
// buffer_type: SgBufferType::IndexBuffer,
// size: size_of::<u32>() * MAX_MODEL_VERTS,
// usage: SgUsage::Dynamic,
// };
// ctx.model_shape.bindings.index_buffer = sg_make_buffer::<()>(None, &i_buff_desc);
// let shader = sg_make_shader(&SgShaderDesc {
// vs: SgShaderStageDesc {
// source: Some(include_str!("../data/shaders/test.vert.glsl")),
// uniform_blocks: vec![SgShaderUniformBlockDesc {
// size: size_of::<MeshVsParams>() as i32,
// uniforms: vec![
// SgShaderUniformDesc {
// name: "model",
// uniform_type: SgUniformType::Mat4,
// ..Default::default()
// },
// SgShaderUniformDesc {
// name: "view_proj",
// uniform_type: SgUniformType::Mat4,
// ..Default::default()
// },
// ],
// }],
// ..Default::default()
// },
// fs: SgShaderStageDesc {
// source: Some(include_str!("../data/shaders/test.frag.glsl")),
// ..Default::default()
// },
// attrs: vec![],
// });
// let pipeline_desc = SgPipelineDesc {
// // primitive_type: SG_PRIMITIVETYPE_LINES,
// shader: shader,
// index_type: SgIndexType::UInt32,
// layout: SgLayoutDesc {
// attrs: vec![
// SgVertexAttrDesc {
// format: SgVertexFormat::Float3,
// ..Default::default()
// }, // in_position
// SgVertexAttrDesc {
// format: SgVertexFormat::Float3,
// ..Default::default()
// }, // in_normal
// // [1] = {name: "in_uv", format: SgVertexFormat::Float2},
// // [3] = {name: "in_color", format: SgVertexFormat::Float4},
// ],
// ..Default::default()
// },
// depth_stencil: SgDepthStencilState {
// depth_compare_func: SgCompareFunc::LessEqual,
// depth_write_enabled: true,
// ..Default::default()
// },
// // blend: {
// // enabled: true,
// // color_format: SgPixelFormat::RGBA8,
// // depth_format: SgPixelFormat::Depth,
// // dst_factor_rgb: SgBlendFactor::OneMinusSrcAlpha,
// // },
// ..Default::default()
// };
// ctx.model_shape.pipeline = sg_make_pipeline(&pipeline_desc);
// }
// }