aboutsummaryrefslogtreecommitdiff
path: root/tools/TexturePacker/XBTFWriter.cpp
diff options
context:
space:
mode:
authorwsnipex <wsnipex@a1.net>2015-01-02 14:00:18 +0100
committerMemphiz <memphis@machzwo.de>2015-01-08 21:59:02 +0100
commit0f3ae0954edf2de940fc03cda9243611124f441b (patch)
tree13a1cfe3c58dbf3f8b73569e841aadef361da428 /tools/TexturePacker/XBTFWriter.cpp
parent7b4395a65acc62391063b8a5b0886f2ea2e0de67 (diff)
[TexturePacker] - move texturepacker to native depends
Diffstat (limited to 'tools/TexturePacker/XBTFWriter.cpp')
-rw-r--r--tools/TexturePacker/XBTFWriter.cpp161
1 files changed, 0 insertions, 161 deletions
diff --git a/tools/TexturePacker/XBTFWriter.cpp b/tools/TexturePacker/XBTFWriter.cpp
deleted file mode 100644
index 339990c412..0000000000
--- a/tools/TexturePacker/XBTFWriter.cpp
+++ /dev/null
@@ -1,161 +0,0 @@
-/*
- * Copyright (C) 2005-2013 Team XBMC
- * http://xbmc.org
- *
- * This Program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 2, or (at your option)
- * any later version.
- *
- * This Program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with XBMC; see the file COPYING. If not, see
- * <http://www.gnu.org/licenses/>.
- *
- */
-
-#include "XBTFWriter.h"
-#define __STDC_FORMAT_MACROS
-#include <inttypes.h>
-#include "guilib/XBTF.h"
-#include "utils/EndianSwap.h"
-#if defined(TARGET_FREEBSD) || defined(TARGET_DARWIN)
-#include <stdlib.h>
-#elif !defined(TARGET_DARWIN)
-#include <malloc.h>
-#endif
-#include <memory.h>
-
-#define WRITE_STR(str, size, file) fwrite(str, size, 1, file)
-#define WRITE_U32(i, file) { uint32_t _n = Endian_SwapLE32(i); fwrite(&_n, 4, 1, file); }
-#define WRITE_U64(i, file) { uint64_t _n = i; _n = Endian_SwapLE64(i); fwrite(&_n, 8, 1, file); }
-
-CXBTFWriter::CXBTFWriter(CXBTF& xbtf, const std::string& outputFile) : m_xbtf(xbtf)
-{
- m_outputFile = outputFile;
- m_file = NULL;
- m_data = NULL;
- m_size = 0;
-}
-
-bool CXBTFWriter::Create()
-{
- m_file = fopen(m_outputFile.c_str(), "wb");
- if (m_file == NULL)
- {
- return false;
- }
-
- return true;
-}
-
-bool CXBTFWriter::Close()
-{
- if (m_file == NULL || m_data == NULL)
- {
- return false;
- }
-
- fwrite(m_data, 1, m_size, m_file);
-
- Cleanup();
-
- return true;
-}
-
-void CXBTFWriter::Cleanup()
-{
- free(m_data);
- m_data = NULL;
- m_size = 0;
- if (m_file)
- {
- fclose(m_file);
- m_file = NULL;
- }
-}
-
-bool CXBTFWriter::AppendContent(unsigned char const* data, size_t length)
-{
- unsigned char *new_data = (unsigned char *)realloc(m_data, m_size + length);
-
- if (new_data == NULL)
- { // OOM - cleanup and fail
- Cleanup();
- return false;
- }
-
- m_data = new_data;
-
- memcpy(m_data + m_size, data, length);
- m_size += length;
-
- return true;
-}
-
-bool CXBTFWriter::UpdateHeader(const std::vector<unsigned int>& dupes)
-{
- if (m_file == NULL)
- {
- return false;
- }
-
- uint64_t offset = m_xbtf.GetHeaderSize();
-
- WRITE_STR(XBTF_MAGIC, 4, m_file);
- WRITE_STR(XBTF_VERSION, 1, m_file);
-
- std::vector<CXBTFFile>& files = m_xbtf.GetFiles();
- WRITE_U32(files.size(), m_file);
- for (size_t i = 0; i < files.size(); i++)
- {
- CXBTFFile& file = files[i];
-
- // Convert path to lower case
- char* ch = file.GetPath();
- while (*ch)
- {
- *ch = tolower(*ch);
- ch++;
- }
-
- WRITE_STR(file.GetPath(), 256, m_file);
- WRITE_U32(file.GetLoop(), m_file);
-
- std::vector<CXBTFFrame>& frames = file.GetFrames();
- WRITE_U32(frames.size(), m_file);
- for (size_t j = 0; j < frames.size(); j++)
- {
- CXBTFFrame& frame = frames[j];
- if (dupes[i] != i)
- frame.SetOffset(files[dupes[i]].GetFrames()[j].GetOffset());
- else
- {
- frame.SetOffset(offset);
- offset += frame.GetPackedSize();
- }
-
- WRITE_U32(frame.GetWidth(), m_file);
- WRITE_U32(frame.GetHeight(), m_file);
- WRITE_U32(frame.GetFormat(true), m_file);
- WRITE_U64(frame.GetPackedSize(), m_file);
- WRITE_U64(frame.GetUnpackedSize(), m_file);
- WRITE_U32(frame.GetDuration(), m_file);
- WRITE_U64(frame.GetOffset(), m_file);
- }
- }
-
- // Sanity check
- int64_t pos = ftell(m_file);
- if (pos != (int64_t)m_xbtf.GetHeaderSize())
- {
- printf("Expected header size (%" PRId64 ") != actual size (%" PRId64 ")\n", m_xbtf.GetHeaderSize(), pos);
- return false;
- }
-
- return true;
-}