From 06626487ad04850a6bb66ed55aced8c62f855f4e Mon Sep 17 00:00:00 2001 From: yuvalt Date: Mon, 28 Sep 2009 11:22:33 +0000 Subject: 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 --- guilib/TextureBundleXPR.h | 69 +++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 69 insertions(+) create mode 100644 guilib/TextureBundleXPR.h (limited to 'guilib/TextureBundleXPR.h') 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 +#include + +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 m_FileHeaders; + typedef std::map::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 &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); +}; + + -- cgit v1.2.3