diff options
author | yuvalt <yuvalt@svn> | 2009-09-28 11:22:33 +0000 |
---|---|---|
committer | yuvalt <yuvalt@svn> | 2009-09-28 11:22:33 +0000 |
commit | 06626487ad04850a6bb66ed55aced8c62f855f4e (patch) | |
tree | 0c4e4856ce98b26b37f09afba0f1f3481dbc94cd /guilib/TextureBundleXPR.h | |
parent | 7ce41e8e293e15aa067dd691517ddb3fab2b3adf (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.h | 69 |
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); +}; + + |