aboutsummaryrefslogtreecommitdiff
path: root/guilib/TextureBundleXPR.h
diff options
context:
space:
mode:
authoryuvalt <yuvalt@svn>2009-09-28 11:22:33 +0000
committeryuvalt <yuvalt@svn>2009-09-28 11:22:33 +0000
commit06626487ad04850a6bb66ed55aced8c62f855f4e (patch)
tree0c4e4856ce98b26b37f09afba0f1f3481dbc94cd /guilib/TextureBundleXPR.h
parent7ce41e8e293e15aa067dd691517ddb3fab2b3adf (diff)
support DXT5 textures with a new texture bundle(r)
git-svn-id: https://xbmc.svn.sourceforge.net/svnroot/xbmc/trunk@23209 568bbfeb-2a22-0410-94d2-cc84cf5bfa90
Diffstat (limited to 'guilib/TextureBundleXPR.h')
-rw-r--r--guilib/TextureBundleXPR.h69
1 files changed, 69 insertions, 0 deletions
diff --git a/guilib/TextureBundleXPR.h b/guilib/TextureBundleXPR.h
new file mode 100644
index 0000000000..b68ac7c3b6
--- /dev/null
+++ b/guilib/TextureBundleXPR.h
@@ -0,0 +1,69 @@
+#pragma once
+
+/*
+ * Copyright (C) 2005-2008 Team XBMC
+ * http://www.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, write to
+ * the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.
+ * http://www.gnu.org/copyleft/gpl.html
+ *
+ */
+
+#include "StdString.h"
+#include <stdint.h>
+#include <map>
+
+class CAutoTexBuffer;
+class CBaseTexture;
+
+class CTextureBundleXPR
+{
+ struct FileHeader_t
+ {
+ uint32_t Offset;
+ uint32_t UnpackedSize;
+ uint32_t PackedSize;
+ };
+
+ FILE* m_hFile;
+ time_t m_TimeStamp;
+
+ std::map<CStdString, FileHeader_t> m_FileHeaders;
+ typedef std::map<CStdString, FileHeader_t>::iterator iFiles;
+
+ bool m_themeBundle;
+
+ bool OpenBundle();
+ bool LoadFile(const CStdString& Filename, CAutoTexBuffer& UnpackedBuf);
+
+public:
+ CTextureBundleXPR(void);
+ ~CTextureBundleXPR(void);
+
+ void Cleanup();
+
+ void SetThemeBundle(bool themeBundle);
+ bool HasFile(const CStdString& Filename);
+ void GetTexturesFromPath(const CStdString &path, std::vector<CStdString> &textures);
+ static CStdString Normalize(const CStdString &name);
+
+ bool LoadTexture(const CStdString& Filename, CBaseTexture** ppTexture,
+ int &width, int &height);
+
+ int LoadAnim(const CStdString& Filename, CBaseTexture*** ppTextures,
+ int &width, int &height, int& nLoops, int** ppDelays);
+};
+
+