Ver Fonte

Cleanup

Daniele Bartolini há 10 anos atrás
pai
commit
c7bb0a376b
2 ficheiros alterados com 51 adições e 188 exclusões
  1. 25 162
      src/resource/level_resource.cpp
  2. 26 26
      src/resource/texture_resource.cpp

+ 25 - 162
src/resource/level_resource.cpp

@@ -12,165 +12,6 @@
 
 namespace crown
 {
-
-template <typename STREAM, typename T> inline STREAM& operator&(STREAM& stream, T& t)
-{
-	return t.serialize(stream);
-}
-
-template <> inline BinaryWriter& operator&(BinaryWriter& bw, bool& v)
-{
-	bw.write(v);
-	return bw;
-}
-
-template <> inline BinaryReader& operator&(BinaryReader& br, bool& v)
-{
-	br.read(v);
-	return br;
-}
-
-template <> inline BinaryWriter& operator&(BinaryWriter& bw, float& v)
-{
-	bw.write(v);
-	return bw;
-}
-
-template <> inline BinaryReader& operator&(BinaryReader& br, float& v)
-{
-	br.read(v);
-	return br;
-}
-
-template <> inline BinaryWriter& operator&(BinaryWriter& bw, char& v)
-{
-	bw.write(v);
-	return bw;
-}
-
-template <> inline BinaryReader& operator&(BinaryReader& br, char& v)
-{
-	br.read(v);
-	return br;
-}
-
-template <> inline BinaryWriter& operator&(BinaryWriter& bw, int8_t& v)
-{
-	bw.write(v);
-	return bw;
-}
-
-template <> inline BinaryReader& operator&(BinaryReader& br, int8_t& v)
-{
-	br.read(v);
-	return br;
-}
-
-template <> inline BinaryWriter& operator&(BinaryWriter& bw, uint8_t& v)
-{
-	bw.write(v);
-	return bw;
-}
-
-template <> inline BinaryReader& operator&(BinaryReader& br, uint8_t& v)
-{
-	br.read(v);
-	return br;
-}
-
-template <> inline BinaryWriter& operator&(BinaryWriter& bw, uint32_t& v)
-{
-	bw.write(v);
-	return bw;
-}
-
-template <> inline BinaryReader& operator&(BinaryReader& br, uint32_t& v)
-{
-	br.read(v);
-	return br;
-}
-
-template <> inline BinaryWriter& operator&(BinaryWriter& br, uint64_t& v)
-{
-	br.write(v);
-	return br;
-}
-
-template <> inline BinaryReader& operator&(BinaryReader& br, uint64_t& v)
-{
-	br.read(v);
-	return br;
-}
-
-template <> inline BinaryWriter& operator&(BinaryWriter& br, StringId64& id)
-{
-	return br & id._id;
-}
-
-template <> inline BinaryReader& operator&(BinaryReader& br, StringId64& id)
-{
-	return br & id._id;
-}
-
-template <> inline BinaryWriter& operator&(BinaryWriter& bw, Vector3& v)
-{
-	return bw & v.x & v.y & v.z;
-}
-
-template <> inline BinaryReader& operator&(BinaryReader& br, Vector3& v)
-{
-	return br & v.x & v.y & v.z;
-}
-
-template <> inline BinaryWriter& operator&(BinaryWriter& bw, Quaternion& q)
-{
-	return bw & q.x & q.y & q.z & q.w;
-}
-
-template <> inline BinaryReader& operator&(BinaryReader& br, Quaternion& q)
-{
-	return br & q.x & q.y & q.z & q.w;
-}
-
-template <> inline BinaryWriter& operator&(BinaryWriter& bw, LevelResource& data)
-{
-	return bw
-		& data.version
-		& data.num_units
-		& data.units_offset
-		& data.num_sounds
-		& data.sounds_offset;
-}
-
-template <> inline BinaryWriter& operator&(BinaryWriter& bw, LevelUnit& data)
-{
-	return bw
-		& data.name
-		& data.position
-		& data.rotation
-		& data._pad;
-}
-
-template <> inline BinaryWriter& operator&(BinaryWriter& bw, LevelSound& data)
-{
-	return bw
-		& data.name
-		& data.position
-		& data.volume
-		& data.range
-		& data.loop
-		& data._pad[0]
-		& data._pad[1]
-		& data._pad[2];
-}
-
-template <typename T> inline BinaryWriter& operator&(BinaryWriter& bw, Array<T> arr)
-{
-	for (uint32_t i = 0; i < array::size(arr); i++)
-		bw & arr[i];
-	return bw;
-}
-
 namespace level_resource
 {
 	void compile(const char* path, CompileOptions& opts)
@@ -221,9 +62,31 @@ namespace level_resource
 		lr.units_offset = offt; offt += sizeof(LevelUnit) * lr.num_units;
 		lr.sounds_offset = offt;
 
-		opts._bw & lr
-			& units
-			& sounds;
+		opts.write(lr.version);
+		opts.write(lr.num_units);
+		opts.write(lr.units_offset);
+		opts.write(lr.num_sounds);
+		opts.write(lr.sounds_offset);
+
+		for (uint32_t i = 0; i < array::size(units); ++i)
+		{
+			opts.write(units[i].name);
+			opts.write(units[i].position);
+			opts.write(units[i].rotation);
+			opts.write(units[i]._pad);
+		}
+
+		for (uint32_t i = 0; i < array::size(sounds); ++i)
+		{
+			opts.write(sounds[i].name);
+			opts.write(sounds[i].position);
+			opts.write(sounds[i].volume);
+			opts.write(sounds[i].range);
+			opts.write(sounds[i].loop);
+			opts.write(sounds[i]._pad[0]);
+			opts.write(sounds[i]._pad[1]);
+			opts.write(sounds[i]._pad[2]);
+		}
 	}
 
 	void* load(File& file, Allocator& a)

+ 26 - 26
src/resource/texture_resource.cpp

@@ -495,31 +495,31 @@ namespace texture_resource
 		CE_LOGD("PixelFormat = %u", image.format);
 	}
 
-	void write_dds(BinaryWriter& bw, const ImageData& image)
+	void write_dds(const ImageData& image, CompileOptions& opts)
 	{
-		bw.write(DDSD_MAGIC);
+		opts.write(DDSD_MAGIC);
 
 		// Header
-		bw.write(DDSD_HEADERSIZE); // dwSize
-		bw.write(DDS_HEADER_FLAGS_TEXTURE
+		opts.write(DDSD_HEADERSIZE); // dwSize
+		opts.write(DDS_HEADER_FLAGS_TEXTURE
 			| DDSD_MIPMAPCOUNT
 			| (pixel_format::is_compressed(image.format) ? DDSD_LINEARSIZE : DDSD_PITCH)
 			| (image.num_mips ? DDSD_MIPMAPCOUNT : 0)); // dwFlags
-		bw.write(image.height); // dwHeight
-		bw.write(image.width); // dwWidth
+		opts.write(image.height); // dwHeight
+		opts.write(image.width); // dwWidth
 
 		const uint32_t pitch = pixel_format::is_compressed(image.format) ? 0 // fixme
 								: (image.width * pixel_format::size(image.format) * 8 + 7) / 8;
 
-		bw.write(pitch); // dwPitchOrLinearSize
-		bw.write(DDSD_UNUSED); // dwDepth
-		bw.write(image.num_mips); // dwMipMapCount;
+		opts.write(pitch); // dwPitchOrLinearSize
+		opts.write(DDSD_UNUSED); // dwDepth
+		opts.write(image.num_mips); // dwMipMapCount;
 
 		for (uint32_t i = 0; i < 11; i++)
-			bw.write(DDSD_UNUSED); // dwReserved1[11];
+			opts.write(DDSD_UNUSED); // dwReserved1[11];
 
 		// Pixel format
-		bw.write(DDPF_HEADERSIZE); // dwSize;
+		opts.write(DDPF_HEADERSIZE); // dwSize;
 		uint32_t pf = 0;
 		switch (image.format)
 		{
@@ -530,21 +530,21 @@ namespace texture_resource
 			case PixelFormat::R8G8B8A8: pf = DDS_RGBA; break;
 			default: CE_FATAL("Pixel format unknown"); break;
 		}
-		bw.write(pixel_format::is_compressed(image.format) ? DDPF_FOURCC : pf); // dwFlags;
-		bw.write(pixel_format::is_compressed(image.format) ? pf : DDSD_UNUSED); // dwFourCC;
-		bw.write(uint32_t(pixel_format::size(image.format) * 8)); // dwRGBBitCount;
-		bw.write(uint32_t(0x00ff0000)); // dwRBitMask;
-		bw.write(uint32_t(0x0000ff00)); // dwGBitMask;
-		bw.write(uint32_t(0x000000ff)); // dwBBitMask;
-		bw.write(uint32_t(0xff000000)); // dwABitMask;
-
-		bw.write(DDSCAPS_TEXTURE
+		opts.write(pixel_format::is_compressed(image.format) ? DDPF_FOURCC : pf); // dwFlags;
+		opts.write(pixel_format::is_compressed(image.format) ? pf : DDSD_UNUSED); // dwFourCC;
+		opts.write(uint32_t(pixel_format::size(image.format) * 8)); // dwRGBBitCount;
+		opts.write(uint32_t(0x00ff0000)); // dwRBitMask;
+		opts.write(uint32_t(0x0000ff00)); // dwGBitMask;
+		opts.write(uint32_t(0x000000ff)); // dwBBitMask;
+		opts.write(uint32_t(0xff000000)); // dwABitMask;
+
+		opts.write(DDSCAPS_TEXTURE
 			| (image.num_mips > 1 ? DDSCAPS_COMPLEX : DDSD_UNUSED) // also for cubemap, depth mipmap
 			| (image.num_mips > 1 ? DDSCAPS_MIPMAP : DDSD_UNUSED)); // dwCaps;
-		bw.write(DDSD_UNUSED); // dwCaps2;
-		bw.write(DDSD_UNUSED); // dwCaps3;
-		bw.write(DDSD_UNUSED); // dwCaps4;
-		bw.write(DDSD_UNUSED); // dwReserved2;
+		opts.write(DDSD_UNUSED); // dwCaps2;
+		opts.write(DDSD_UNUSED); // dwCaps3;
+		opts.write(DDSD_UNUSED); // dwCaps4;
+		opts.write(DDSD_UNUSED); // dwReserved2;
 
 		// Image data
 		for (uint32_t i = 0; i < image.num_mips; i++)
@@ -553,7 +553,7 @@ namespace texture_resource
 			read_mip_image(image, i, mip);
 
 			// CE_LOGD("Writing mip: (%ux%u) byes = %u", mip.width, mip.height, mip.size);
-			bw.write(mip.data, mip.size);
+			opts.write(mip.data, mip.size);
 		}
 	}
 
@@ -595,7 +595,7 @@ namespace texture_resource
 		// Write DDS
 		opts.write(TEXTURE_VERSION); // Version
 		opts.write(uint32_t(0)); // Size
-		write_dds(opts._bw, image);
+		write_dds(image, opts);
 
 		default_allocator().deallocate(image.data);
 	}