Branimir Karadžić 7 jaren geleden
bovenliggende
commit
9fc2f996f7
1 gewijzigde bestanden met toevoegingen van 15 en 39 verwijderingen
  1. 15 39
      tools/bin2c/bin2c.cpp

+ 15 - 39
tools/bin2c/bin2c.cpp

@@ -8,33 +8,12 @@
 #include <bx/file.h>
 #include <bx/file.h>
 #include <bx/string.h>
 #include <bx/string.h>
 
 
-bx::DefaultAllocator g_allocator;
-
-struct TinyStlAllocator
-{
-	static void* static_allocate(size_t _bytes)
-	{
-		return BX_ALLOC(&g_allocator, _bytes);
-	}
-
-	static void static_deallocate(void* _ptr, size_t /*_bytes*/)
-	{
-		if (NULL != _ptr)
-		{
-			BX_FREE(&g_allocator, _ptr);
-		}
-	}
-};
-
-#define TINYSTL_ALLOCATOR TinyStlAllocator
-#include <tinystl/vector.h>
-namespace stl = tinystl;
-
 class Bin2cWriter : public bx::WriterI
 class Bin2cWriter : public bx::WriterI
 {
 {
 public:
 public:
-	Bin2cWriter(bx::WriterI* _writer, const bx::StringView& _name)
-		: m_writer(_writer)
+	Bin2cWriter(bx::AllocatorI* _allocator, const bx::StringView& _name)
+		: m_mb(_allocator)
+		, m_mw(&m_mb)
 		, m_name(_name)
 		, m_name(_name)
 	{
 	{
 	}
 	}
@@ -43,20 +22,18 @@ public:
 	{
 	{
 	}
 	}
 
 
-	virtual int32_t write(const void* _data, int32_t _size, bx::Error* /*_err*/ = NULL) override
+	virtual int32_t write(const void* _data, int32_t _size, bx::Error* _err) override
 	{
 	{
-		const char* data = (const char*)_data;
-		m_buffer.insert(m_buffer.end(), data, data+_size);
-		return _size;
+		return bx::write(&m_mw, _data, _size, _err);
 	}
 	}
 
 
-	void finish()
+	void output(bx::WriterI* m_writer)
 	{
 	{
 #define HEX_DUMP_WIDTH 16
 #define HEX_DUMP_WIDTH 16
 #define HEX_DUMP_SPACE_WIDTH 96
 #define HEX_DUMP_SPACE_WIDTH 96
 #define HEX_DUMP_FORMAT "%-" BX_STRINGIZE(HEX_DUMP_SPACE_WIDTH) "." BX_STRINGIZE(HEX_DUMP_SPACE_WIDTH) "s"
 #define HEX_DUMP_FORMAT "%-" BX_STRINGIZE(HEX_DUMP_SPACE_WIDTH) "." BX_STRINGIZE(HEX_DUMP_SPACE_WIDTH) "s"
-		const char* data = &m_buffer[0];
-		uint32_t size = (uint32_t)m_buffer.size();
+		const char* data = (const char*)m_mb.more(0);
+		uint32_t size = uint32_t(bx::seek(&m_mw) );
 
 
 		bx::writePrintf(
 		bx::writePrintf(
 			  m_writer
 			  m_writer
@@ -101,14 +78,11 @@ public:
 #undef HEX_DUMP_WIDTH
 #undef HEX_DUMP_WIDTH
 #undef HEX_DUMP_SPACE_WIDTH
 #undef HEX_DUMP_SPACE_WIDTH
 #undef HEX_DUMP_FORMAT
 #undef HEX_DUMP_FORMAT
-
-		m_buffer.clear();
 	}
 	}
 
 
-	bx::WriterI* m_writer;
-	bx::StringView m_name;
-	typedef stl::vector<char> Buffer;
-	Buffer m_buffer;
+	bx::MemoryBlock  m_mb;
+	bx::MemoryWriter m_mw;
+	bx::StringView   m_name;
 };
 };
 
 
 void help(const char* _error = NULL)
 void help(const char* _error = NULL)
@@ -179,13 +153,15 @@ int main(int _argc, const char* _argv[])
 		bx::DefaultAllocator allocator;
 		bx::DefaultAllocator allocator;
 		data = BX_ALLOC(&allocator, size);
 		data = BX_ALLOC(&allocator, size);
 		bx::read(&fr, data, size);
 		bx::read(&fr, data, size);
+		bx::close(&fr);
 
 
 		bx::FileWriter fw;
 		bx::FileWriter fw;
 		if (bx::open(&fw, outFilePath) )
 		if (bx::open(&fw, outFilePath) )
 		{
 		{
-			Bin2cWriter writer(&fw, name);
+			Bin2cWriter writer(&allocator, name);
 			bx::write(&writer, data, size);
 			bx::write(&writer, data, size);
-			writer.finish();
+
+			writer.output(&fw);
 			bx::close(&fw);
 			bx::close(&fw);
 		}
 		}