Daniele Bartolini 8 lat temu
rodzic
commit
3664958e2c

+ 5 - 2
src/resource/material_resource.cpp

@@ -59,7 +59,8 @@ namespace material_resource_internal
 			: textures(default_allocator())
 			, uniforms(default_allocator())
 			, dynamic(default_allocator())
-		{}
+		{
+		}
 	};
 
 	// Returns offset to start of data
@@ -99,8 +100,10 @@ namespace material_resource_internal
 
 			TextureData td;
 			td.sampler_name_offset = sampler_name_offset;
+			td._pad0               = 0;
 			td.id                  = sjson::parse_resource_id(value);
 			td.data_offset         = reserve_dynamic_data(th, dynamic);
+			td._pad1               = 0;
 
 			array::push_back(textures, td);
 		}
@@ -214,7 +217,7 @@ namespace material_resource_internal
 		for (u32 i = 0; i < array::size(texdata); i++)
 		{
 			opts.write(texdata[i].sampler_name_offset);
-			opts.write(texdata[i]._pad);
+			opts.write(texdata[i]._pad0);
 			opts.write(texdata[i].id);
 			opts.write(texdata[i].data_offset);
 			opts.write(texdata[i]._pad1);

+ 1 - 1
src/resource/material_resource.h

@@ -29,7 +29,7 @@ struct MaterialResource
 struct TextureData
 {
 	u32 sampler_name_offset; // Sampler uniform name
-	u32 _pad;
+	u32 _pad0;
 	StringId64 id;           // Resource name
 	u32 data_offset;         // Offset into dynamic blob
 	u32 _pad1;

+ 2 - 0
src/resource/mesh_resource.cpp

@@ -94,6 +94,8 @@ namespace mesh_resource_internal
 			array::clear(_index_buffer);
 
 			aabb::reset(_aabb);
+			memset(&_obb, 0, sizeof(_obb));
+			memset(&_decl, 0, sizeof(_decl));
 
 			_has_normal = false;
 			_has_uv = false;

+ 1 - 0
src/resource/physics_resource.cpp

@@ -139,6 +139,7 @@ namespace physics_resource_internal
 			);
 
 		ColliderDesc cd;
+		memset(&cd, 0, sizeof(cd));
 		cd.type        = st;
 		cd.shape_class = sjson::parse_string_id(obj["class"]);
 		cd.material    = sjson::parse_string_id(obj["material"]);

+ 10 - 0
src/resource/unit_compiler.cpp

@@ -129,6 +129,9 @@ static Buffer compile_mesh_renderer(const char* json, CompileOptions& opts)
 	mrd.geometry_name     = sjson::parse_string_id  (obj["geometry_name"]);
 	mrd.material_resource = sjson::parse_resource_id(obj["material"]);
 	mrd.visible           = sjson::parse_bool       (obj["visible"]);
+	mrd._pad0[0]          = 0;
+	mrd._pad0[1]          = 0;
+	mrd._pad0[2]          = 0;
 
 	Buffer buf(default_allocator());
 	array::push(buf, (char*)&mrd, sizeof(mrd));
@@ -152,6 +155,13 @@ static Buffer compile_sprite_renderer(const char* json, CompileOptions& opts)
 	srd.sprite_resource   = sjson::parse_resource_id(obj["sprite_resource"]);
 	srd.material_resource = sjson::parse_resource_id(obj["material"]);
 	srd.visible           = sjson::parse_bool       (obj["visible"]);
+	srd._pad0[0]          = 0;
+	srd._pad0[1]          = 0;
+	srd._pad0[2]          = 0;
+	srd._pad1[0]          = 0;
+	srd._pad1[1]          = 0;
+	srd._pad1[2]          = 0;
+	srd._pad1[3]          = 0;
 
 	Buffer buf(default_allocator());
 	array::push(buf, (char*)&srd, sizeof(srd));

+ 3 - 3
src/world/world_types.h

@@ -290,10 +290,10 @@ INSTANCE_ID(ScriptInstance);
 struct MeshRendererDesc
 {
 	StringId64 mesh_resource;     ///< Name of .mesh resource.
-	StringId32 geometry_name;     ///< Name of geometry inside .mesh resource.
 	StringId64 material_resource; ///< Name of .material resource.
+	StringId32 geometry_name;     ///< Name of geometry inside .mesh resource.
 	bool visible;                 ///< Whether mesh is visible.
-	char _pad[3];
+	char _pad0[3];
 };
 
 /// Sprite renderer description.
@@ -304,7 +304,7 @@ struct SpriteRendererDesc
 	StringId64 sprite_resource;   ///< Name of .sprite resource.
 	StringId64 material_resource; ///< Name of .material resource.
 	bool visible;                 ///< Whether sprite is visible.
-	char _pad[3];
+	char _pad0[3];
 	char _pad1[4];
 };