diff options
author | jmarshallnz <jmarshallnz@svn> | 2009-09-28 21:42:43 +0000 |
---|---|---|
committer | jmarshallnz <jmarshallnz@svn> | 2009-09-28 21:42:43 +0000 |
commit | 6cb1f29164bc71302a935777ae725dca01482c21 (patch) | |
tree | d4654b6dec7398092156043db712bd84d2abf1b1 | |
parent | ff9f7598436be15f1fb11b15a0225dc48e679853 (diff) |
fixed: Win32 build, and standard-typed XBTFReader (writer needs doing as well)
git-svn-id: https://xbmc.svn.sourceforge.net/svnroot/xbmc/trunk@23232 568bbfeb-2a22-0410-94d2-cc84cf5bfa90
-rw-r--r-- | guilib/TextureBundleXBT.cpp | 9 | ||||
-rw-r--r-- | guilib/XBTF.cpp | 60 | ||||
-rw-r--r-- | guilib/XBTF.h | 65 | ||||
-rw-r--r-- | guilib/XBTFReader.cpp | 10 | ||||
-rw-r--r-- | project/VS2008Express/guilib.vcproj | 34 | ||||
-rw-r--r-- | xbmc/cores/VideoRenderers/WinRenderer.cpp | 2 | ||||
-rw-r--r-- | xbmc/lib/libsquish/lib/squish.lib | bin | 0 -> 615728 bytes |
7 files changed, 109 insertions, 71 deletions
diff --git a/guilib/TextureBundleXBT.cpp b/guilib/TextureBundleXBT.cpp index 8e10e5b631..cb622d5911 100644 --- a/guilib/TextureBundleXBT.cpp +++ b/guilib/TextureBundleXBT.cpp @@ -19,7 +19,7 @@ * */ -#include "squish.h" +#include "lib/libsquish/squish.h" #include "system.h" #include "TextureBundleXBT.h" #include "Texture.h" @@ -40,6 +40,7 @@ #if !defined(__GNUC__) #pragma comment(lib,"../../xbmc/lib/liblzo/lzo.lib") +#pragma comment (lib,"../../xbmc/lib/libsquish/lib/squish.lib")
#endif CTextureBundleXBT::CTextureBundleXBT(void) @@ -199,7 +200,7 @@ int CTextureBundleXBT::LoadAnim(const CStdString& Filename, CBaseTexture*** ppTe bool CTextureBundleXBT::ConvertFrameToTexture(const CStdString& name, CXBTFFrame& frame, int format, CBaseTexture** ppTexture) { // found texture - allocate the necessary buffers - unsigned char* PackedBuf = (unsigned char*) malloc(frame.GetPackedSize()); + unsigned char* PackedBuf = (unsigned char*) malloc((size_t)frame.GetPackedSize()); if (PackedBuf == NULL) { CLog::Log(LOGERROR, "Out of memory loading texture: %s (need %llu bytes)", name.c_str(), frame.GetPackedSize()); @@ -227,8 +228,8 @@ bool CTextureBundleXBT::ConvertFrameToTexture(const CStdString& name, CXBTFFrame if (format == XB_FMT_LZO) { - lzo_uint s = frame.GetUnpackedSize(); - if (lzo1x_decompress(PackedBuf, frame.GetPackedSize(), UnpackedBuf, &s, NULL) != LZO_E_OK || + lzo_uint s = (lzo_uint)frame.GetUnpackedSize(); + if (lzo1x_decompress(PackedBuf, (lzo_uint)frame.GetPackedSize(), UnpackedBuf, &s, NULL) != LZO_E_OK || s != frame.GetUnpackedSize()) { CLog::Log(LOGERROR, "Error loading texture: %s: Decompression error", name.c_str()); diff --git a/guilib/XBTF.cpp b/guilib/XBTF.cpp index e1d756b009..ce6e79112e 100644 --- a/guilib/XBTF.cpp +++ b/guilib/XBTF.cpp @@ -30,90 +30,90 @@ CXBTFFrame::CXBTFFrame() m_offset = 0; } -unsigned int CXBTFFrame::GetWidth() const +uint32_t CXBTFFrame::GetWidth() const { return m_width; } -void CXBTFFrame::SetWidth(unsigned int width) +void CXBTFFrame::SetWidth(uint32_t width) { m_width = width; } -unsigned int CXBTFFrame::GetHeight() const +uint32_t CXBTFFrame::GetHeight() const { return m_height; } -void CXBTFFrame::SetHeight(unsigned int height) +void CXBTFFrame::SetHeight(uint32_t height) { m_height = height; } -unsigned long long CXBTFFrame::GetPackedSize() const +uint64_t CXBTFFrame::GetPackedSize() const { return m_packedSize; } -void CXBTFFrame::SetPackedSize(unsigned long long size) +void CXBTFFrame::SetPackedSize(uint64_t size) { m_packedSize = size; } -unsigned long long CXBTFFrame::GetUnpackedSize() const +uint64_t CXBTFFrame::GetUnpackedSize() const { return m_unpackedSize; } -void CXBTFFrame::SetUnpackedSize(unsigned long long size) +void CXBTFFrame::SetUnpackedSize(uint64_t size) { m_unpackedSize = size; } -void CXBTFFrame::SetX(unsigned int x) +void CXBTFFrame::SetX(uint32_t x) { m_x = x; } -unsigned int CXBTFFrame::GetX() const +uint32_t CXBTFFrame::GetX() const { return m_x; } -void CXBTFFrame::SetY(unsigned int y) +void CXBTFFrame::SetY(uint32_t y) { m_y = y; } -unsigned int CXBTFFrame::GetY() const +uint32_t CXBTFFrame::GetY() const { return m_y; } -unsigned long long CXBTFFrame::GetOffset() const +uint64_t CXBTFFrame::GetOffset() const { return m_offset; } -void CXBTFFrame::SetOffset(unsigned long long offset) +void CXBTFFrame::SetOffset(uint64_t offset) { m_offset = offset; } -unsigned int CXBTFFrame::GetDuration() const +uint32_t CXBTFFrame::GetDuration() const { return m_duration; } -void CXBTFFrame::SetDuration(unsigned int duration) +void CXBTFFrame::SetDuration(uint32_t duration) { m_duration = duration; } -unsigned long long CXBTFFrame::GetHeaderSize() const +uint64_t CXBTFFrame::GetHeaderSize() const { - unsigned long long result = + uint64_t result = sizeof(m_width) + sizeof(m_height) + sizeof(m_x) + @@ -128,7 +128,7 @@ unsigned long long CXBTFFrame::GetHeaderSize() const CXBTFFile::CXBTFFile() { - bzero(m_path, sizeof(m_path)); + memset(m_path, 0, sizeof(m_path)); m_loop = 0; m_format = XB_FMT_UNKNOWN; } @@ -148,26 +148,26 @@ char* CXBTFFile::GetPath() void CXBTFFile::SetPath(const std::string& path) { - bzero(m_path, sizeof(m_path)); + memset(m_path, 0, sizeof(m_path)); strncpy(m_path, path.c_str(), sizeof(m_path) - 1); } -int CXBTFFile::GetLoop() const +uint32_t CXBTFFile::GetLoop() const { return m_loop; } -void CXBTFFile::SetLoop(int loop) +void CXBTFFile::SetLoop(uint32_t loop) { m_loop = loop; } -unsigned int CXBTFFile::GetFormat() const +uint32_t CXBTFFile::GetFormat() const { return m_format; } -void CXBTFFile::SetFormat(unsigned int format) +void CXBTFFile::SetFormat(uint32_t format) { m_format = format; } @@ -177,13 +177,13 @@ std::vector<CXBTFFrame>& CXBTFFile::GetFrames() return m_frames; } -unsigned long long CXBTFFile::GetHeaderSize() const +uint64_t CXBTFFile::GetHeaderSize() const { - unsigned long long result = + uint64_t result = sizeof(m_path) + sizeof(m_loop) + sizeof(m_format) + - sizeof(unsigned int); /* Number of frames */ + sizeof(uint32_t); /* Number of frames */ for (size_t i = 0; i < m_frames.size(); i++) { @@ -197,12 +197,12 @@ CXBTF::CXBTF() { } -unsigned long long CXBTF::GetHeaderSize() const +uint64_t CXBTF::GetHeaderSize() const { - unsigned long long result = + uint64_t result = 4 /* Magic */ + 1 /* Vesion */ + - sizeof(unsigned int) /* Number of Files */; + sizeof(uint32_t) /* Number of Files */; for (size_t i = 0; i < m_files.size(); i++) { diff --git a/guilib/XBTF.h b/guilib/XBTF.h index 0a0d10ab2d..1a24630c5a 100644 --- a/guilib/XBTF.h +++ b/guilib/XBTF.h @@ -23,6 +23,7 @@ #include <string> #include <vector> +#include <stdint.h> #define XBTF_MAGIC "XBTF" #define XBTF_VERSION "1" @@ -40,33 +41,33 @@ class CXBTFFrame { public: CXBTFFrame(); - unsigned int GetWidth() const; - void SetWidth(unsigned int width); - unsigned int GetX() const; - void SetX(unsigned int x); - unsigned int GetY() const; - void SetY(unsigned int y); - unsigned int GetHeight() const; - void SetHeight(unsigned int height); - unsigned long long GetUnpackedSize() const; - void SetUnpackedSize(unsigned long long size); - unsigned long long GetPackedSize() const; - void SetPackedSize(unsigned long long size); - unsigned long long GetOffset() const; - void SetOffset(unsigned long long offset); - unsigned long long GetHeaderSize() const; - unsigned int GetDuration() const; - void SetDuration(unsigned int duration); + uint32_t GetWidth() const; + void SetWidth(uint32_t width); + uint32_t GetX() const; + void SetX(uint32_t x); + uint32_t GetY() const; + void SetY(uint32_t y); + uint32_t GetHeight() const; + void SetHeight(uint32_t height); + uint64_t GetUnpackedSize() const; + void SetUnpackedSize(uint64_t size); + uint64_t GetPackedSize() const; + void SetPackedSize(uint64_t size); + uint64_t GetOffset() const; + void SetOffset(uint64_t offset); + uint64_t GetHeaderSize() const; + uint32_t GetDuration() const; + void SetDuration(uint32_t duration); private: - unsigned int m_width; - unsigned int m_height; - unsigned int m_x; - unsigned int m_y; - unsigned long long m_packedSize; - unsigned long long m_unpackedSize; - unsigned long long m_offset; - unsigned int m_duration; + uint32_t m_width; + uint32_t m_height; + uint32_t m_x; + uint32_t m_y; + uint64_t m_packedSize; + uint64_t m_unpackedSize; + uint64_t m_offset; + uint32_t m_duration; }; class CXBTFFile @@ -76,18 +77,18 @@ public: CXBTFFile(const CXBTFFile& ref); char* GetPath(); void SetPath(const std::string& path); - int GetLoop() const; - void SetLoop(int loop); - unsigned int GetFormat() const; - void SetFormat(unsigned int format); + uint32_t GetLoop() const; + void SetLoop(uint32_t loop); + uint32_t GetFormat() const; + void SetFormat(uint32_t format); std::vector<CXBTFFrame>& GetFrames(); unsigned long long GetHeaderSize() const; private: char m_path[256]; - int m_loop; - unsigned int m_format; + uint32_t m_loop; + uint32_t m_format; std::vector<CXBTFFrame> m_frames; }; @@ -95,7 +96,7 @@ class CXBTF { public: CXBTF(); - unsigned long long GetHeaderSize() const; + uint64_t GetHeaderSize() const; std::vector<CXBTFFile>& GetFiles(); private: diff --git a/guilib/XBTFReader.cpp b/guilib/XBTFReader.cpp index 2cae0343bb..6a0f990a6c 100644 --- a/guilib/XBTFReader.cpp +++ b/guilib/XBTFReader.cpp @@ -23,6 +23,10 @@ #include "XBTFReader.h" #include "EndianSwap.h" #include "CharsetConverter.h" +#ifdef _WIN32 +#include "FileSystem/SpecialProtocol.h" +#include "PlatformDefs.h" //for PRIdS, PRId64
+#endif #define READ_STR(str, size, file) fread(str, size, 1, file) #define READ_U32(i, file) fread(&i, 4, 1, file); i = Endian_SwapLE32(i); @@ -42,7 +46,7 @@ bool CXBTFReader::Open(const CStdString& fileName) { m_fileName = fileName; -#ifndef _LINUX +#ifdef _WIN32 CStdStringW strPathW; g_charsetConverter.utf8ToW(_P(m_fileName), strPathW, false); m_file = _wfopen(strPathW.c_str(), L"rb"); @@ -181,12 +185,12 @@ bool CXBTFReader::Load(const CXBTFFrame& frame, unsigned char* buffer) return false; } - if (fseek(m_file, frame.GetOffset(), SEEK_SET) == -1) + if (fseeko64(m_file, (off_t)frame.GetOffset(), SEEK_SET) == -1) { return false; } - if (fread(buffer, 1, frame.GetPackedSize(), m_file) != frame.GetPackedSize()) + if (fread(buffer, 1, (size_t)frame.GetPackedSize(), m_file) != frame.GetPackedSize()) { return false; } diff --git a/project/VS2008Express/guilib.vcproj b/project/VS2008Express/guilib.vcproj index 18e0291ee7..e78a6abbb9 100644 --- a/project/VS2008Express/guilib.vcproj +++ b/project/VS2008Express/guilib.vcproj @@ -1,7 +1,7 @@ <?xml version="1.0" encoding="Windows-1252"?>
<VisualStudioProject
ProjectType="Visual C++"
- Version="9,00"
+ Version="9.00"
Name="guilib"
ProjectGUID="{510441AC-B9E1-4B31-9C0C-EB3AD39D90C4}"
RootNamespace="guilib"
@@ -602,6 +602,22 @@ >
</File>
<File
+ RelativePath="..\..\guilib\TextureBundleXBT.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\..\guilib\TextureBundleXBT.h"
+ >
+ </File>
+ <File
+ RelativePath="..\..\guilib\TextureBundleXPR.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\..\guilib\TextureBundleXPR.h"
+ >
+ </File>
+ <File
RelativePath="..\..\guilib\tinyXML\tinystr.cpp"
>
<FileConfiguration
@@ -658,6 +674,22 @@ >
</File>
<File
+ RelativePath="..\..\guilib\XBTF.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\..\guilib\XBTF.h"
+ >
+ </File>
+ <File
+ RelativePath="..\..\guilib\XBTFReader.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\..\guilib\XBTFReader.h"
+ >
+ </File>
+ <File
RelativePath="..\..\guilib\XMLUtils.cpp"
>
</File>
diff --git a/xbmc/cores/VideoRenderers/WinRenderer.cpp b/xbmc/cores/VideoRenderers/WinRenderer.cpp index ce7b58dfb2..43bd5e6500 100644 --- a/xbmc/cores/VideoRenderers/WinRenderer.cpp +++ b/xbmc/cores/VideoRenderers/WinRenderer.cpp @@ -1302,7 +1302,7 @@ void CWinRenderer::CreateThumbnail(CBaseTexture *texture, unsigned int width, un D3DLOCKED_RECT lockedRect; if (D3D_OK == surface->LockRect(&lockedRect, NULL, NULL)) { - texture->LoadFromMemory(width, height, lockedRect.Pitch, 32, (unsigned char *)lockedRect.pBits); + texture->LoadFromMemory(width, height, lockedRect.Pitch, XB_FMT_B8G8R8A8, 32, (unsigned char *)lockedRect.pBits); surface->UnlockRect(); } surface->Release(); diff --git a/xbmc/lib/libsquish/lib/squish.lib b/xbmc/lib/libsquish/lib/squish.lib Binary files differnew file mode 100644 index 0000000000..e09d0cc38d --- /dev/null +++ b/xbmc/lib/libsquish/lib/squish.lib |