mirror of
https://github.com/vlang/v.git
synced 2023-08-10 21:13:21 +03:00
cgen: do full struct initialisation for V structs, fixes invalid data from map[string]Struct{}['unknown'] (#9878)
This commit is contained in:
@@ -293,7 +293,7 @@ fn init_cube_glsl(mut app App) {
|
||||
Vertex_t{ 1.0, 1.0, -1.0, c, 0, d},
|
||||
]
|
||||
|
||||
mut vert_buffer_desc := C.sg_buffer_desc{}
|
||||
mut vert_buffer_desc := C.sg_buffer_desc{label: c'cube-vertices'}
|
||||
unsafe { C.memset(&vert_buffer_desc, 0, sizeof(vert_buffer_desc)) }
|
||||
|
||||
vert_buffer_desc.size = size_t(vertices.len * int(sizeof(Vertex_t)))
|
||||
@@ -304,7 +304,6 @@ fn init_cube_glsl(mut app App) {
|
||||
|
||||
vert_buffer_desc.@type = .vertexbuffer
|
||||
// vert_buffer_desc.usage = .immutable
|
||||
vert_buffer_desc.label = 'cube-vertices'.str
|
||||
vbuf := gfx.make_buffer(&vert_buffer_desc)
|
||||
|
||||
/* create an index buffer for the cube */
|
||||
@@ -317,7 +316,7 @@ fn init_cube_glsl(mut app App) {
|
||||
22, 21, 20, 23, 22, 20
|
||||
]
|
||||
|
||||
mut index_buffer_desc := C.sg_buffer_desc{}
|
||||
mut index_buffer_desc := C.sg_buffer_desc{label: c'cube-indices'}
|
||||
unsafe { C.memset(&index_buffer_desc, 0, sizeof(index_buffer_desc)) }
|
||||
|
||||
index_buffer_desc.size = size_t(indices.len * int(sizeof(u16)))
|
||||
@@ -327,7 +326,6 @@ fn init_cube_glsl(mut app App) {
|
||||
}
|
||||
|
||||
index_buffer_desc.@type = .indexbuffer
|
||||
index_buffer_desc.label = 'cube-indices'.str
|
||||
ibuf := gfx.make_buffer(&index_buffer_desc)
|
||||
|
||||
// create shader
|
||||
|
||||
@@ -172,7 +172,7 @@ fn init_cube_glsl(mut app App) {
|
||||
Vertex_t{ 1.0, 1.0, -1.0, c, 0, d},
|
||||
]
|
||||
|
||||
mut vert_buffer_desc := C.sg_buffer_desc{}
|
||||
mut vert_buffer_desc := C.sg_buffer_desc{label: c'cube-vertices'}
|
||||
unsafe { C.memset(&vert_buffer_desc, 0, sizeof(vert_buffer_desc)) }
|
||||
|
||||
vert_buffer_desc.size = size_t(vertices.len * int(sizeof(Vertex_t)))
|
||||
@@ -182,7 +182,6 @@ fn init_cube_glsl(mut app App) {
|
||||
}
|
||||
|
||||
vert_buffer_desc.@type = .vertexbuffer
|
||||
vert_buffer_desc.label = 'cube-vertices'.str
|
||||
vbuf := gfx.make_buffer(&vert_buffer_desc)
|
||||
|
||||
// create an index buffer for the cube
|
||||
@@ -195,7 +194,7 @@ fn init_cube_glsl(mut app App) {
|
||||
22, 21, 20, 23, 22, 20,
|
||||
]
|
||||
|
||||
mut index_buffer_desc := C.sg_buffer_desc{}
|
||||
mut index_buffer_desc := C.sg_buffer_desc{label: c'cube-indices'}
|
||||
unsafe {C.memset(&index_buffer_desc, 0, sizeof(index_buffer_desc))}
|
||||
|
||||
index_buffer_desc.size = size_t(indices.len * int(sizeof(u16)))
|
||||
@@ -205,7 +204,6 @@ fn init_cube_glsl(mut app App) {
|
||||
}
|
||||
|
||||
index_buffer_desc.@type = .indexbuffer
|
||||
index_buffer_desc.label = "cube-indices".str
|
||||
ibuf := gfx.make_buffer(&index_buffer_desc)
|
||||
|
||||
// create shader
|
||||
|
||||
@@ -176,7 +176,7 @@ fn init_cube_glsl_m(mut app App) {
|
||||
Vertex_t{ 1.0, 1.0, -1.0, c, 0, d},
|
||||
]
|
||||
|
||||
mut vert_buffer_desc := C.sg_buffer_desc{}
|
||||
mut vert_buffer_desc := C.sg_buffer_desc{label: c'cube-vertices'}
|
||||
unsafe { C.memset(&vert_buffer_desc, 0, sizeof(vert_buffer_desc)) }
|
||||
vert_buffer_desc.size = size_t(vertices.len * int(sizeof(Vertex_t)))
|
||||
vert_buffer_desc.data = C.sg_range{
|
||||
@@ -184,7 +184,6 @@ fn init_cube_glsl_m(mut app App) {
|
||||
size: size_t(vertices.len * int(sizeof(Vertex_t)))
|
||||
}
|
||||
vert_buffer_desc.@type = .vertexbuffer
|
||||
vert_buffer_desc.label = 'cube-vertices'.str
|
||||
vbuf := gfx.make_buffer(&vert_buffer_desc)
|
||||
|
||||
/* create an index buffer for the cube */
|
||||
@@ -199,7 +198,7 @@ fn init_cube_glsl_m(mut app App) {
|
||||
*/
|
||||
]
|
||||
|
||||
mut index_buffer_desc := C.sg_buffer_desc{}
|
||||
mut index_buffer_desc := C.sg_buffer_desc{label: c'cube-indices'}
|
||||
unsafe { C.memset(&index_buffer_desc, 0, sizeof(index_buffer_desc)) }
|
||||
index_buffer_desc.size = size_t(indices.len * int(sizeof(u16)))
|
||||
index_buffer_desc.data = C.sg_range{
|
||||
@@ -207,7 +206,6 @@ fn init_cube_glsl_m(mut app App) {
|
||||
size: size_t(indices.len * int(sizeof(u16)))
|
||||
}
|
||||
index_buffer_desc.@type = .indexbuffer
|
||||
index_buffer_desc.label = 'cube-indices'.str
|
||||
ibuf := gfx.make_buffer(&index_buffer_desc)
|
||||
|
||||
// create shader
|
||||
@@ -284,7 +282,7 @@ fn init_cube_glsl_p(mut app App) {
|
||||
Vertex_t{ 1.0, 1.0, -1.0, c, 0, d},
|
||||
]
|
||||
|
||||
mut vert_buffer_desc := C.sg_buffer_desc{}
|
||||
mut vert_buffer_desc := C.sg_buffer_desc{label: c'cube-vertices'}
|
||||
unsafe { C.memset(&vert_buffer_desc, 0, sizeof(vert_buffer_desc)) }
|
||||
vert_buffer_desc.size = size_t(vertices.len * int(sizeof(Vertex_t)))
|
||||
vert_buffer_desc.data = C.sg_range{
|
||||
@@ -292,7 +290,6 @@ fn init_cube_glsl_p(mut app App) {
|
||||
size: size_t(vertices.len * int(sizeof(Vertex_t)))
|
||||
}
|
||||
vert_buffer_desc.@type = .vertexbuffer
|
||||
vert_buffer_desc.label = 'cube-vertices'.str
|
||||
vbuf := gfx.make_buffer(&vert_buffer_desc)
|
||||
|
||||
/* create an index buffer for the cube */
|
||||
@@ -308,7 +305,7 @@ fn init_cube_glsl_p(mut app App) {
|
||||
|
||||
]
|
||||
|
||||
mut index_buffer_desc := C.sg_buffer_desc{}
|
||||
mut index_buffer_desc := C.sg_buffer_desc{label: c'cube-indices'}
|
||||
unsafe { C.memset(&index_buffer_desc, 0, sizeof(index_buffer_desc)) }
|
||||
index_buffer_desc.size = size_t(indices.len * int(sizeof(u16)))
|
||||
index_buffer_desc.data = C.sg_range{
|
||||
@@ -316,7 +313,6 @@ fn init_cube_glsl_p(mut app App) {
|
||||
size: size_t(indices.len * int(sizeof(u16)))
|
||||
}
|
||||
index_buffer_desc.@type = .indexbuffer
|
||||
index_buffer_desc.label = 'cube-indices'.str
|
||||
ibuf := gfx.make_buffer(&index_buffer_desc)
|
||||
|
||||
// create shader
|
||||
|
||||
@@ -189,7 +189,7 @@ fn init_cube_glsl_i(mut app App) {
|
||||
Vertex_t{ 1.0, 1.0, -1.0, c, 0, d},
|
||||
]
|
||||
|
||||
mut vert_buffer_desc := C.sg_buffer_desc{}
|
||||
mut vert_buffer_desc := C.sg_buffer_desc{label: c'cube-vertices'}
|
||||
unsafe {C.memset(&vert_buffer_desc, 0, sizeof(vert_buffer_desc))}
|
||||
vert_buffer_desc.size = size_t(vertices.len * int(sizeof(Vertex_t)))
|
||||
vert_buffer_desc.data = C.sg_range{
|
||||
@@ -197,17 +197,15 @@ fn init_cube_glsl_i(mut app App) {
|
||||
size: size_t(vertices.len * int(sizeof(Vertex_t)))
|
||||
}
|
||||
vert_buffer_desc.@type = .vertexbuffer
|
||||
vert_buffer_desc.label = "cube-vertices".str
|
||||
vbuf := gfx.make_buffer(&vert_buffer_desc)
|
||||
|
||||
/* create an instance buffer for the cube */
|
||||
mut inst_buffer_desc := C.sg_buffer_desc{}
|
||||
mut inst_buffer_desc := C.sg_buffer_desc{label: c'instance-data'}
|
||||
unsafe {C.memset(&inst_buffer_desc, 0, sizeof(inst_buffer_desc))}
|
||||
|
||||
inst_buffer_desc.size = size_t(num_inst * int(sizeof(m4.Vec4)))
|
||||
inst_buffer_desc.@type = .vertexbuffer
|
||||
inst_buffer_desc.usage = .stream
|
||||
inst_buffer_desc.label = "instance-data".str
|
||||
inst_buf := gfx.make_buffer(&inst_buffer_desc)
|
||||
|
||||
|
||||
@@ -221,7 +219,7 @@ fn init_cube_glsl_i(mut app App) {
|
||||
22, 21, 20, 23, 22, 20
|
||||
]
|
||||
|
||||
mut index_buffer_desc := C.sg_buffer_desc{}
|
||||
mut index_buffer_desc := C.sg_buffer_desc{label: c'cube-indices'}
|
||||
unsafe {C.memset(&index_buffer_desc, 0, sizeof(index_buffer_desc))}
|
||||
index_buffer_desc.size = size_t(indices.len * int(sizeof(u16)))
|
||||
index_buffer_desc.data = C.sg_range{
|
||||
@@ -229,7 +227,6 @@ fn init_cube_glsl_i(mut app App) {
|
||||
size: size_t(indices.len * int(sizeof(u16)))
|
||||
}
|
||||
index_buffer_desc.@type = .indexbuffer
|
||||
index_buffer_desc.label = "cube-indices".str
|
||||
ibuf := gfx.make_buffer(&index_buffer_desc)
|
||||
|
||||
/* create shader */
|
||||
|
||||
@@ -1,3 +1,5 @@
|
||||
module obj
|
||||
|
||||
/**********************************************************************
|
||||
*
|
||||
* .obj loader
|
||||
@@ -8,8 +10,6 @@
|
||||
*
|
||||
* TODO:
|
||||
**********************************************************************/
|
||||
module obj
|
||||
|
||||
import gg.m4
|
||||
import strconv
|
||||
|
||||
@@ -68,7 +68,9 @@ pub fn (mut obj_part ObjPart) create_pipeline(in_part []int, shader C.sg_shader,
|
||||
res.material = obj_part.part[in_part[0]].material
|
||||
|
||||
// vertex buffer
|
||||
mut vert_buffer_desc := C.sg_buffer_desc{}
|
||||
mut vert_buffer_desc := C.sg_buffer_desc{
|
||||
label: 0
|
||||
}
|
||||
unsafe { C.memset(&vert_buffer_desc, 0, sizeof(vert_buffer_desc)) }
|
||||
|
||||
vert_buffer_desc.size = size_t(obj_buf.vbuf.len * int(sizeof(Vertex_pnct)))
|
||||
@@ -82,7 +84,9 @@ pub fn (mut obj_part ObjPart) create_pipeline(in_part []int, shader C.sg_shader,
|
||||
vbuf := gfx.make_buffer(&vert_buffer_desc)
|
||||
|
||||
// index buffer
|
||||
mut index_buffer_desc := C.sg_buffer_desc{}
|
||||
mut index_buffer_desc := C.sg_buffer_desc{
|
||||
label: 0
|
||||
}
|
||||
unsafe { C.memset(&index_buffer_desc, 0, sizeof(index_buffer_desc)) }
|
||||
|
||||
index_buffer_desc.size = size_t(obj_buf.ibuf.len * int(sizeof(u32)))
|
||||
@@ -86,10 +86,10 @@ pub mut:
|
||||
ka m4.Vec4 = m4.Vec4{
|
||||
e: [f32(0.1), 0.0, 0.0, 1.0]!
|
||||
}
|
||||
kd m4.Vec4 = m4.Vec4{
|
||||
kd m4.Vec4 = m4.Vec4{
|
||||
e: [f32(0.5), 0.5, 0.5, 1.0]!
|
||||
}
|
||||
ks m4.Vec4 = m4.Vec4{
|
||||
ks m4.Vec4 = m4.Vec4{
|
||||
e: [f32(1.0), 1.0, 1.0, 1.0]!
|
||||
}
|
||||
}
|
||||
@@ -14,9 +14,9 @@ pub fn read_lines_from_file(file_path string) []string {
|
||||
}
|
||||
rows = bts.bytestr().split_into_lines()
|
||||
} $else {
|
||||
path = 'assets/models/' + file_path
|
||||
path = os.resource_abs_path('assets/models/' + file_path)
|
||||
rows = os.read_lines(path) or {
|
||||
eprintln('File [$path] NOT FOUND!')
|
||||
eprintln('File [$path] NOT FOUND! file_path: $file_path')
|
||||
return rows
|
||||
}
|
||||
}
|
||||
@@ -34,7 +34,7 @@ pub fn read_bytes_from_file(file_path string) []byte {
|
||||
exit(0)
|
||||
}
|
||||
} $else {
|
||||
path = 'assets/models/' + file_path
|
||||
path = os.resource_abs_path('assets/models/' + file_path)
|
||||
buffer = os.read_bytes(path) or {
|
||||
eprintln('Texure file: [$path] NOT FOUND!')
|
||||
exit(0)
|
||||
Reference in New Issue
Block a user