Преглед изворни кода

resource: merge parse and compile steps

Daniele Bartolini пре 6 година
родитељ
комит
c78d5d4e85
1 измењених фајлова са 25 додато и 29 уклоњено
  1. 25 29
      src/resource/mesh_resource.cpp

+ 25 - 29
src/resource/mesh_resource.cpp

@@ -100,33 +100,6 @@ namespace mesh_resource_internal
 			_has_uv = false;
 			_has_uv = false;
 		}
 		}
 
 
-		void parse(const char* geometry, const char* node)
-		{
-			TempAllocator4096 ta;
-			JsonObject object(ta);
-			JsonObject object_node(ta);
-			sjson::parse(geometry, object);
-			sjson::parse(node, object_node);
-
-			_has_normal = json_object::has(object, "normal");
-			_has_uv     = json_object::has(object, "texcoord");
-
-			parse_float_array(object["position"], _positions);
-
-			if (_has_normal)
-			{
-				parse_float_array(object["normal"], _normals);
-			}
-			if (_has_uv)
-			{
-				parse_float_array(object["texcoord"], _uvs);
-			}
-
-			parse_indices(object["indices"]);
-
-			_matrix_local = sjson::parse_matrix4x4(object_node["matrix_local"]);
-		}
-
 		void parse_float_array(const char* array_json, Array<f32>& output)
 		void parse_float_array(const char* array_json, Array<f32>& output)
 		{
 		{
 			TempAllocator4096 ta;
 			TempAllocator4096 ta;
@@ -174,8 +147,32 @@ namespace mesh_resource_internal
 			}
 			}
 		}
 		}
 
 
-		void compile()
+		void parse(const char* geometry, const char* node)
 		{
 		{
+			TempAllocator4096 ta;
+			JsonObject object(ta);
+			JsonObject object_node(ta);
+			sjson::parse(geometry, object);
+			sjson::parse(node, object_node);
+
+			_has_normal = json_object::has(object, "normal");
+			_has_uv     = json_object::has(object, "texcoord");
+
+			parse_float_array(object["position"], _positions);
+
+			if (_has_normal)
+			{
+				parse_float_array(object["normal"], _normals);
+			}
+			if (_has_uv)
+			{
+				parse_float_array(object["texcoord"], _uvs);
+			}
+
+			parse_indices(object["indices"]);
+
+			_matrix_local = sjson::parse_matrix4x4(object_node["matrix_local"]);
+
 			_vertex_stride = 0;
 			_vertex_stride = 0;
 			_vertex_stride += 3 * sizeof(f32);
 			_vertex_stride += 3 * sizeof(f32);
 			_vertex_stride += (_has_normal ? 3 * sizeof(f32) : 0);
 			_vertex_stride += (_has_normal ? 3 * sizeof(f32) : 0);
@@ -290,7 +287,6 @@ namespace mesh_resource_internal
 
 
 			mc.reset();
 			mc.reset();
 			mc.parse(geometry, node);
 			mc.parse(geometry, node);
-			mc.compile();
 			mc.write();
 			mc.write();
 		}
 		}
 	}
 	}