Daniele Bartolini 9 ani în urmă
părinte
comite
bd8e2882a0

+ 24 - 24
src/device/device.cpp

@@ -298,21 +298,21 @@ void Device::run()
 	_console_server = CE_NEW(_allocator, ConsoleServer)(default_allocator());
 	load_console_api(*_console_server);
 
-	namespace pcr = physics_config_resource;
-	namespace phr = physics_resource;
-	namespace pkr = package_resource;
-	namespace sdr = sound_resource;
-	namespace mhr = mesh_resource;
-	namespace utr = unit_resource;
-	namespace txr = texture_resource;
-	namespace mtr = material_resource;
-	namespace lur = lua_resource;
-	namespace ftr = font_resource;
-	namespace lvr = level_resource;
-	namespace spr = sprite_resource;
-	namespace shr = shader_resource;
-	namespace sar = sprite_animation_resource;
-	namespace cor = config_resource;
+	namespace cor = config_resource_internal;
+	namespace ftr = font_resource_internal;
+	namespace lur = lua_resource_internal;
+	namespace lvr = level_resource_internal;
+	namespace mhr = mesh_resource_internal;
+	namespace mtr = material_resource_internal;
+	namespace pcr = physics_config_resource_internal;
+	namespace phr = physics_resource_internal;
+	namespace pkr = package_resource_internal;
+	namespace sar = sprite_animation_resource_internal;
+	namespace sdr = sound_resource_internal;
+	namespace shr = shader_resource_internal;
+	namespace spr = sprite_resource_internal;
+	namespace txr = texture_resource_internal;
+	namespace utr = unit_resource_internal;
 
 	bool do_continue = true;
 
@@ -320,21 +320,21 @@ void Device::run()
 	if (_device_options._do_compile || _device_options._server)
 	{
 		_data_compiler = CE_NEW(_allocator, DataCompiler)();
-		_data_compiler->register_compiler(RESOURCE_TYPE_SCRIPT,           RESOURCE_VERSION_SCRIPT,           lur::compile);
-		_data_compiler->register_compiler(RESOURCE_TYPE_TEXTURE,          RESOURCE_VERSION_TEXTURE,          txr::compile);
+		_data_compiler->register_compiler(RESOURCE_TYPE_CONFIG,           RESOURCE_VERSION_CONFIG,           cor::compile);
+		_data_compiler->register_compiler(RESOURCE_TYPE_FONT,             RESOURCE_VERSION_FONT,             ftr::compile);
+		_data_compiler->register_compiler(RESOURCE_TYPE_LEVEL,            RESOURCE_VERSION_LEVEL,            lvr::compile);
+		_data_compiler->register_compiler(RESOURCE_TYPE_MATERIAL,         RESOURCE_VERSION_MATERIAL,         mtr::compile);
 		_data_compiler->register_compiler(RESOURCE_TYPE_MESH,             RESOURCE_VERSION_MESH,             mhr::compile);
-		_data_compiler->register_compiler(RESOURCE_TYPE_SOUND,            RESOURCE_VERSION_SOUND,            sdr::compile);
-		_data_compiler->register_compiler(RESOURCE_TYPE_UNIT,             RESOURCE_VERSION_UNIT,             utr::compile);
-		_data_compiler->register_compiler(RESOURCE_TYPE_SPRITE,           RESOURCE_VERSION_SPRITE,           spr::compile);
 		_data_compiler->register_compiler(RESOURCE_TYPE_PACKAGE,          RESOURCE_VERSION_PACKAGE,          pkr::compile);
 		_data_compiler->register_compiler(RESOURCE_TYPE_PHYSICS,          RESOURCE_VERSION_PHYSICS,          phr::compile);
-		_data_compiler->register_compiler(RESOURCE_TYPE_MATERIAL,         RESOURCE_VERSION_MATERIAL,         mtr::compile);
 		_data_compiler->register_compiler(RESOURCE_TYPE_PHYSICS_CONFIG,   RESOURCE_VERSION_PHYSICS_CONFIG,   pcr::compile);
-		_data_compiler->register_compiler(RESOURCE_TYPE_FONT,             RESOURCE_VERSION_FONT,             ftr::compile);
-		_data_compiler->register_compiler(RESOURCE_TYPE_LEVEL,            RESOURCE_VERSION_LEVEL,            lvr::compile);
+		_data_compiler->register_compiler(RESOURCE_TYPE_SCRIPT,           RESOURCE_VERSION_SCRIPT,           lur::compile);
 		_data_compiler->register_compiler(RESOURCE_TYPE_SHADER,           RESOURCE_VERSION_SHADER,           shr::compile);
+		_data_compiler->register_compiler(RESOURCE_TYPE_SOUND,            RESOURCE_VERSION_SOUND,            sdr::compile);
+		_data_compiler->register_compiler(RESOURCE_TYPE_SPRITE,           RESOURCE_VERSION_SPRITE,           spr::compile);
 		_data_compiler->register_compiler(RESOURCE_TYPE_SPRITE_ANIMATION, RESOURCE_VERSION_SPRITE_ANIMATION, sar::compile);
-		_data_compiler->register_compiler(RESOURCE_TYPE_CONFIG,           RESOURCE_VERSION_CONFIG,           cor::compile);
+		_data_compiler->register_compiler(RESOURCE_TYPE_TEXTURE,          RESOURCE_VERSION_TEXTURE,          txr::compile);
+		_data_compiler->register_compiler(RESOURCE_TYPE_UNIT,             RESOURCE_VERSION_UNIT,             utr::compile);
 
 		_data_compiler->map_source_dir("", _device_options._source_dir);
 

+ 2 - 2
src/resource/config_resource.cpp

@@ -12,7 +12,7 @@
 
 namespace crown
 {
-namespace config_resource
+namespace config_resource_internal
 {
 	void compile(const char* path, CompileOptions& opts)
 	{
@@ -50,6 +50,6 @@ namespace config_resource
 	{
 		a.deallocate(resource);
 	}
-} // namespace config_resource
+} // namespace config_resource_internal
 
 } // namespace crown

+ 2 - 2
src/resource/config_resource.h

@@ -12,11 +12,11 @@
 
 namespace crown
 {
-namespace config_resource
+namespace config_resource_internal
 {
 	void compile(const char* path, CompileOptions& opts);
 	void* load(File& file, Allocator& a);
 	void unload(Allocator& allocator, void* resource);
-} // namespace config_resource
+} // namespace config_resource_internal
 
 } // namespace crown

+ 5 - 1
src/resource/font_resource.cpp

@@ -15,7 +15,7 @@
 
 namespace crown
 {
-namespace font_resource
+namespace font_resource_internal
 {
 	struct GlyphInfo
 	{
@@ -104,7 +104,10 @@ namespace font_resource
 	{
 		allocator.deallocate(resource);
 	}
+} // namespace font_resource_internal
 
+namespace font_resource
+{
 	const GlyphData* get_glyph(const FontResource* fr, CodePoint cp)
 	{
 		CE_ASSERT(cp < fr->num_glyphs, "Index out of bounds");
@@ -123,4 +126,5 @@ namespace font_resource
 		return NULL;
 	}
 } // namespace font_resource
+
 } // namespace crown

+ 6 - 1
src/resource/font_resource.h

@@ -33,12 +33,17 @@ struct GlyphData
 
 typedef u32 CodePoint;
 
-namespace font_resource
+namespace font_resource_internal
 {
 	void compile(const char* path, CompileOptions& opts);
 	void* load(File& file, Allocator& a);
 	void unload(Allocator& allocator, void* resource);
+} // namespace font_resource_internal
 
+namespace font_resource
+{
+	/// Returns the glyph for the code point @a cp.
 	const GlyphData* get_glyph(const FontResource* fr, CodePoint cp);
 } // namespace font_resource
+
 } // namespace crown

+ 5 - 1
src/resource/level_resource.cpp

@@ -15,7 +15,7 @@
 
 namespace crown
 {
-namespace level_resource
+namespace level_resource_internal
 {
 	void compile(const char* path, CompileOptions& opts)
 	{
@@ -91,7 +91,10 @@ namespace level_resource
 	{
 		allocator.deallocate(resource);
 	}
+} // namespace level_resource_internal
 
+namespace level_resource
+{
 	const UnitResource* unit_resource(const LevelResource* lr)
 	{
 		return (const UnitResource*)((char*)lr + lr->units_offset);
@@ -109,4 +112,5 @@ namespace level_resource
 		return &begin[i];
 	}
 } // namespace level_resource
+
 } // namespace crown

+ 10 - 1
src/resource/level_resource.h

@@ -32,14 +32,23 @@ struct LevelSound
 	char _pad[3];
 };
 
-namespace level_resource
+namespace level_resource_internal
 {
 	void compile(const char* path, CompileOptions& opts);
 	void* load(File& file, Allocator& a);
 	void unload(Allocator& allocator, void* resource);
+} // namespace level_resource_internal
 
+namespace level_resource
+{
+	/// Returns the unit resource in the level.
 	const UnitResource* unit_resource(const LevelResource* lr);
+
+	/// Returns the number of sounds in the level resource.
 	u32 num_sounds(const LevelResource* lr);
+
+	/// Returns the sound @a i.
 	const LevelSound* get_sound(const LevelResource* lr, u32 i);
 } // namespace level_resource
+
 } // namespace crown

+ 5 - 1
src/resource/lua_resource.cpp

@@ -30,7 +30,7 @@
 
 namespace crown
 {
-namespace lua_resource
+namespace lua_resource_internal
 {
 	void compile(const char* path, CompileOptions& opts)
 	{
@@ -78,10 +78,14 @@ namespace lua_resource
 	{
 		allocator.deallocate(resource);
 	}
+} // namespace lua_resource_internal
 
+namespace lua_resource
+{
 	const char* program(const LuaResource* lr)
 	{
 		return (char*)&lr[1];
 	}
 } // namespace lua_resource
+
 } // namespace crown

+ 5 - 1
src/resource/lua_resource.h

@@ -19,13 +19,17 @@ struct LuaResource
 //	char program[size]
 };
 
-namespace lua_resource
+namespace lua_resource_internal
 {
 	void compile(const char* path, CompileOptions& opts);
 	void* load(File& file, Allocator& a);
 	void unload(Allocator& allocator, void* resource);
+} // namespace lua_resource_internal
 
+namespace lua_resource
+{
 	/// Returns the lua program.
 	const char* program(const LuaResource* lr);
 } // namespace lua_resource
+
 } // namespace crown

+ 5 - 1
src/resource/material_resource.cpp

@@ -19,7 +19,7 @@
 
 namespace crown
 {
-namespace material_resource
+namespace material_resource_internal
 {
 	struct UniformTypeInfo
 	{
@@ -250,7 +250,10 @@ namespace material_resource
 	{
 		device()->material_manager()->unload(a, res);
 	}
+} // namespace material_resource_internal
 
+namespace material_resource
+{
 	UniformData* get_uniform_data(const MaterialResource* mr, u32 i)
 	{
 		UniformData* base = (UniformData*) ((char*)mr + mr->uniform_data_offset);
@@ -304,4 +307,5 @@ namespace material_resource
 		return (TextureHandle*) (dynamic + td->data_offset);
 	}
 } // namespace material_resource
+
 } // namespace crown

+ 5 - 1
src/resource/material_resource.h

@@ -67,14 +67,17 @@ struct UniformHandle
 	// data
 };
 
-namespace material_resource
+namespace material_resource_internal
 {
 	void compile(const char* path, CompileOptions& opts);
 	void* load(File& file, Allocator& a);
 	void online(StringId64 id, ResourceManager& rm);
 	void offline(StringId64 id, ResourceManager& rm);
 	void unload(Allocator& a, void* res);
+} // namespace material_resource_internal
 
+namespace material_resource
+{
 	UniformData* get_uniform_data(const MaterialResource* mr, u32 i);
 	UniformData* get_uniform_data_by_name(const MaterialResource* mr, StringId32 name);
 	const char* get_uniform_name(const MaterialResource* mr, const UniformData* ud);
@@ -84,4 +87,5 @@ namespace material_resource
 	UniformHandle* get_uniform_handle_by_name(const MaterialResource* mr, StringId32 name, char* dynamic);
 	TextureHandle* get_texture_handle(const MaterialResource* mr, u32 i, char* dynamic);
 } // namespace material_resource
+
 } // namespace crown

+ 3 - 2
src/resource/mesh_resource.cpp

@@ -22,7 +22,7 @@
 
 namespace crown
 {
-namespace mesh_resource
+namespace mesh_resource_internal
 {
 	struct MeshCompiler
 	{
@@ -402,5 +402,6 @@ namespace mesh_resource
 		}
 		CE_DELETE(a, (MeshResource*)res);
 	}
-} // namespace mesh_resource
+} // namespace mesh_resource_internal
+
 } // namespace crown

+ 3 - 2
src/resource/mesh_resource.h

@@ -63,12 +63,13 @@ struct MeshResource
 	}
 };
 
-namespace mesh_resource
+namespace mesh_resource_internal
 {
 	void compile(const char* path, CompileOptions& opts);
 	void* load(File& file, Allocator& a);
 	void online(StringId64 /*id*/, ResourceManager& /*rm*/);
 	void offline(StringId64 /*id*/, ResourceManager& /*rm*/);
 	void unload(Allocator& a, void* res);
-}
+} // namespace mesh_resource_internal
+
 } // namespace crown

+ 3 - 2
src/resource/package_resource.cpp

@@ -17,7 +17,7 @@
 
 namespace crown
 {
-namespace package_resource
+namespace package_resource_internal
 {
 	void compile_resources(const char* type, const JsonArray& names, Array<PackageResource::Resource>& output, CompileOptions& opts)
 	{
@@ -118,5 +118,6 @@ namespace package_resource
 	{
 		CE_DELETE(a, (PackageResource*)resource);
 	}
-} // namespace package_resource
+} // namespace package_resource_internal
+
 } // namespace crown

+ 3 - 2
src/resource/package_resource.h

@@ -47,10 +47,11 @@ struct PackageResource
 	Array<Resource> resources;
 };
 
-namespace package_resource
+namespace package_resource_internal
 {
 	void compile(const char* path, CompileOptions& opts);
 	void* load(File& file, Allocator& a);
 	void unload(Allocator& allocator, void* resource);
-} // namespace package_resource
+} // namespace package_resource_internal
+
 } // namespace crown

+ 7 - 6
src/resource/physics_resource.cpp

@@ -18,7 +18,7 @@
 
 namespace crown
 {
-namespace physics_resource
+namespace physics_resource_internal
 {
 	struct ColliderInfo
 	{
@@ -302,9 +302,9 @@ namespace physics_resource
 		array::push(buf, (char*)&jd, sizeof(jd));
 		return buf;
 	}
-} // namespace physics_resource
+} // namespace physics_resource_internal
 
-namespace physics_config_resource
+namespace physics_config_resource_internal
 {
 	void parse_materials(const char* json, Array<PhysicsConfigMaterial>& objects)
 	{
@@ -601,8 +601,10 @@ namespace physics_config_resource
 	{
 		allocator.deallocate(resource);
 	}
+} // namespcae physics_config_resource_internal
 
-	/// Returns the material with the given @a name
+namespace physics_config_resource
+{
 	const PhysicsConfigMaterial* material(const PhysicsConfigResource* pcr, StringId32 name)
 	{
 		const PhysicsConfigMaterial* begin = (PhysicsConfigMaterial*)((const char*)pcr + pcr->materials_offset);
@@ -629,7 +631,6 @@ namespace physics_config_resource
 		return NULL;
 	}
 
-	/// Returns the actor with the given @a name
 	const PhysicsConfigActor* actor(const PhysicsConfigResource* pcr, StringId32 name)
 	{
 		const PhysicsConfigActor* begin = (PhysicsConfigActor*)((const char*)pcr + pcr->actors_offset);
@@ -655,6 +656,6 @@ namespace physics_config_resource
 		CE_FATAL("Filter not found");
 		return NULL;
 	}
-
 } // namespace physics_config_resource
+
 } // namespace crown

+ 15 - 4
src/resource/physics_resource.h

@@ -15,7 +15,7 @@
 
 namespace crown
 {
-namespace physics_resource
+namespace physics_resource_internal
 {
 	inline void compile(const char* /*path*/, CompileOptions& /*opts*/) {}
 	inline void* load(File& /*file*/, Allocator& /*a*/) { return NULL; }
@@ -24,7 +24,7 @@ namespace physics_resource
 	Buffer compile_collider(const char* json, CompileOptions& opts);
 	Buffer compile_actor(const char* json, CompileOptions& opts);
 	Buffer compile_joint(const char* json, CompileOptions& opts);
-} // namespace physics_resource
+} // namespace physics_resource_internal
 
 struct PhysicsConfigResource
 {
@@ -76,15 +76,26 @@ struct PhysicsConfigActor
 	u32 flags;
 };
 
-namespace physics_config_resource
+namespace physics_config_resource_internal
 {
 	void compile(const char* path, CompileOptions& opts);
 	void* load(File& file, Allocator& a);
 	void unload(Allocator& allocator, void* resource);
+} // namespace physics_config_resource_internal
 
+namespace physics_config_resource
+{
+	/// Returns the material @a name.
 	const PhysicsConfigMaterial* material(const PhysicsConfigResource* pcr, StringId32 name);
+
+	/// Returns the shape @a name.
 	const PhysicsConfigShape* shape(const PhysicsConfigResource* pcr, StringId32 name);
+
+	/// Returns the actor @a name.
 	const PhysicsConfigActor* actor(const PhysicsConfigResource* pcr, StringId32 name);
+
+	/// Returns the collision filter @a name.
 	const PhysicsCollisionFilter* filter(const PhysicsConfigResource* pcr, StringId32 name);
-} // namespace physics_resource
+} // namespace physics_config_resource
+
 } // namespace crown

+ 3 - 2
src/resource/shader_resource.cpp

@@ -39,7 +39,7 @@
 
 namespace crown
 {
-namespace shader_resource
+namespace shader_resource_internal
 {
 	struct DepthFunction
 	{
@@ -1250,5 +1250,6 @@ namespace shader_resource
 	{
 		device()->shader_manager()->unload(a, res);
 	}
-} // namespace shader_resource
+} // namespace shader_resource_internal
+
 } // namespace crown

+ 3 - 2
src/resource/shader_resource.h

@@ -34,12 +34,13 @@ struct ShaderResource
 	Array<Data> _data;
 };
 
-namespace shader_resource
+namespace shader_resource_internal
 {
 	void compile(const char* path, CompileOptions& opts);
 	void* load(File& file, Allocator& a);
 	void online(StringId64 id, ResourceManager& rm);
 	void offline(StringId64 id, ResourceManager& rm);
 	void unload(Allocator& a, void* res);
-} // namespace shader_resource
+} // namespace shader_resource_internal
+
 } // namespace crown

+ 9 - 5
src/resource/sound_resource.cpp

@@ -12,14 +12,14 @@
 
 namespace crown
 {
-namespace sound_resource
+namespace sound_resource_internal
 {
 	struct WAVHeader
 	{
-		char    riff[4];         // Should contain 'RIFF'
+		char riff[4];        // Should contain 'RIFF'
 		s32 chunk_size;      // Not Needed
-		char    wave[4];         // Should contain 'WAVE'
-		char    fmt[4];          // Should contain 'fmt '
+		char wave[4];        // Should contain 'WAVE'
+		char fmt[4];         // Should contain 'fmt '
 		s32 fmt_size;        // Size of format chunk
 		s16 fmt_tag;         // Identifies way data is stored, 1 means no compression
 		s16 fmt_channels;    // Channel, 1 means mono, 2 means stereo
@@ -27,7 +27,7 @@ namespace sound_resource
 		s32 fmt_avarage;     // Avarage bytes per sample
 		s16 fmt_block_align; // Block alignment
 		s16 fmt_bits_ps;     // Number of bits per sample
-		char    data[4];         // Should contain 'data'
+		char data[4];        // Should contain 'data'
 		s32 data_size;       // Data dimension
 	};
 
@@ -82,10 +82,14 @@ namespace sound_resource
 	{
 		allocator.deallocate(resource);
 	}
+} // namespace sound_resource_internal
 
+namespace sound_resource
+{
 	const char* data(const SoundResource* sr)
 	{
 		return (char*)&sr[1];
 	}
 } // namespace sound_resource
+
 } // namespace crown

+ 6 - 1
src/resource/sound_resource.h

@@ -35,12 +35,17 @@ struct SoundResource
 	u32 sound_type;
 };
 
-namespace sound_resource
+namespace sound_resource_internal
 {
 	void compile(const char* path, CompileOptions& opts);
 	void* load(File& file, Allocator& a);
 	void unload(Allocator& allocator, void* resource);
+} // namespace	sound_resource_internal
 
+namespace sound_resource
+{
+	/// Returns the sound data.
 	const char* data(const SoundResource* sr);
 } // namespace sound_resource
+
 } // namespace crown

+ 7 - 3
src/resource/sprite_resource.cpp

@@ -17,7 +17,7 @@
 
 namespace crown
 {
-namespace sprite_resource
+namespace sprite_resource_internal
 {
 	struct SpriteFrame
 	{
@@ -166,9 +166,9 @@ namespace sprite_resource
 	{
 		a.deallocate(resource);
 	}
-} // namespace sprite_resource
+} // namespace sprite_resource_internal
 
-namespace sprite_animation_resource
+namespace sprite_animation_resource_internal
 {
 	void parse_animation(const char* json, Array<SpriteAnimationName>& names, Array<SpriteAnimationData>& anim_data, Array<u32>& frames)
 	{
@@ -262,7 +262,10 @@ namespace sprite_animation_resource
 	{
 		a.deallocate(resource);
 	}
+} // namespace sprite_animation_resource_internal
 
+namespace sprite_animation_resource
+{
 	const SpriteAnimationData* get_animation(const SpriteAnimationResource* sar, StringId32 name)
 	{
 		const u32 num = sar->num_animations;
@@ -283,4 +286,5 @@ namespace sprite_animation_resource
 		return (u32*) ((char*) sar + sar->frames_offset);
 	}
 } // namespace sprite_animation_resource
+
 } // namespace crown

+ 11 - 4
src/resource/sprite_resource.h

@@ -30,14 +30,14 @@ struct SpriteResource
 	bgfx::IndexBufferHandle ib;
 };
 
-namespace sprite_resource
+namespace sprite_resource_internal
 {
 	void compile(const char* path, CompileOptions& opts);
 	void* load(File& file, Allocator& a);
 	void online(StringId64 id, ResourceManager& rm);
 	void offline(StringId64 id, ResourceManager& rm);
 	void unload(Allocator& a, void* resource);
-} // namespace sprite_resource
+} // namespace sprite_resource_internal
 
 struct SpriteAnimationResource
 {
@@ -59,15 +59,22 @@ struct SpriteAnimationData
 	f32 time;
 };
 
-namespace sprite_animation_resource
+namespace sprite_animation_resource_internal
 {
 	void compile(const char* path, CompileOptions& opts);
 	void* load(File& file, Allocator& a);
 	void online(StringId64 id, ResourceManager& rm);
 	void offline(StringId64 id, ResourceManager& rm);
 	void unload(Allocator& a, void* resource);
+} // namespace sprite_animation_resource_internal
+
+namespace sprite_animation_resource
+{
+	/// Returns the sprite animation @a name.
 	const SpriteAnimationData* get_animation(const SpriteAnimationResource* sar, StringId32 name);
+
+	/// Returns the frames of the sprite animation @a sar.
 	const u32* get_animation_frames(const SpriteAnimationResource* sar);
-}
+} // namespace sprite_animation_resource
 
 } // namespace crown

+ 2 - 2
src/resource/texture_resource.cpp

@@ -34,7 +34,7 @@
 
 namespace crown
 {
-namespace texture_resource
+namespace texture_resource_internal
 {
 	void compile(const char* path, CompileOptions& opts)
 	{
@@ -117,6 +117,6 @@ namespace texture_resource
 	{
 		a.deallocate(resource);
 	}
+} // namespace texture_resource_internal
 
-} // namespace texture_resource
 } // namespace crown

+ 3 - 2
src/resource/texture_resource.h

@@ -20,12 +20,13 @@ struct TextureResource
 	bgfx::TextureHandle handle;
 };
 
-namespace texture_resource
+namespace texture_resource_internal
 {
 	void compile(const char* path, CompileOptions& opts);
 	void* load(File& file, Allocator& a);
 	void offline(StringId64 id, ResourceManager& rm);
 	void online(StringId64 id, ResourceManager& rm);
 	void unload(Allocator& a, void* resource);
-} // namespace texture_resource
+} // namespace texture_resource_internal
+
 } // namespace crown

+ 9 - 9
src/resource/unit_compiler.cpp

@@ -185,15 +185,15 @@ UnitCompiler::UnitCompiler(CompileOptions& opts)
 	, _component_data(default_allocator())
 	, _component_info(default_allocator())
 {
-	register_component_compiler("transform",       &compile_transform,                    0.0f);
-	register_component_compiler("camera",          &compile_camera,                       1.0f);
-	register_component_compiler("mesh_renderer",   &compile_mesh_renderer,                1.0f);
-	register_component_compiler("sprite_renderer", &compile_sprite_renderer,              1.0f);
-	register_component_compiler("light",           &compile_light,                        1.0f);
-	register_component_compiler("controller",      &physics_resource::compile_controller, 1.0f);
-	register_component_compiler("collider",        &physics_resource::compile_collider,   1.0f);
-	register_component_compiler("actor",           &physics_resource::compile_actor,      2.0f);
-	register_component_compiler("joint",           &physics_resource::compile_joint,      3.0f);
+	register_component_compiler("transform",       &compile_transform,                             0.0f);
+	register_component_compiler("camera",          &compile_camera,                                1.0f);
+	register_component_compiler("mesh_renderer",   &compile_mesh_renderer,                         1.0f);
+	register_component_compiler("sprite_renderer", &compile_sprite_renderer,                       1.0f);
+	register_component_compiler("light",           &compile_light,                                 1.0f);
+	register_component_compiler("controller",      &physics_resource_internal::compile_controller, 1.0f);
+	register_component_compiler("collider",        &physics_resource_internal::compile_collider,   1.0f);
+	register_component_compiler("actor",           &physics_resource_internal::compile_actor,      2.0f);
+	register_component_compiler("joint",           &physics_resource_internal::compile_joint,      3.0f);
 }
 
 Buffer UnitCompiler::read_unit(const char* path)

+ 3 - 2
src/resource/unit_resource.cpp

@@ -11,7 +11,7 @@
 
 namespace crown
 {
-namespace unit_resource
+namespace unit_resource_internal
 {
 	void compile(const char* path, CompileOptions& opts)
 	{
@@ -37,5 +37,6 @@ namespace unit_resource
 		a.deallocate(resource);
 	}
 
-} // namespace unit_resource
+} // namespace unit_resource_internal
+
 } // namespace crown

+ 2 - 2
src/resource/unit_resource.h

@@ -28,11 +28,11 @@ struct ComponentData
 //	char data[size]
 };
 
-namespace unit_resource
+namespace unit_resource_internal
 {
 	void compile(const char* path, CompileOptions& opts);
 	void* load(File& file, Allocator& a);
 	void unload(Allocator& allocator, void* resource);
-} // namespace unit_resource
+} // namespace unit_resource_internal
 
 } // namespace crown