diff options
Diffstat (limited to 'guilib/Texture.h')
-rw-r--r-- | guilib/Texture.h | 123 |
1 files changed, 0 insertions, 123 deletions
diff --git a/guilib/Texture.h b/guilib/Texture.h deleted file mode 100644 index f54df0e73c..0000000000 --- a/guilib/Texture.h +++ /dev/null @@ -1,123 +0,0 @@ -/* - * 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 - * - */ - -/*! -\file Texture.h -\brief -*/ - -#ifndef GUILIB_TEXTURE_H -#define GUILIB_TEXTURE_H - -#include "gui3d.h" -#include "StdString.h" -#include "XBTF.h" - -#pragma pack(1) -struct COLOR {unsigned char b,g,r,x;}; // Windows GDI expects 4bytes per color -#pragma pack() - -#ifdef HAS_DX -#include "D3DResource.h" -#endif - -class CTexture; -class CGLTexture; -class CDXTexture; - -#pragma once - -/*! -\ingroup textures -\brief Base texture class, subclasses of which depend on the render spec (DX, GL etc.) -*/ -class CBaseTexture -{ - -public: - CBaseTexture(unsigned int width = 0, unsigned int height = 0, unsigned int format = XB_FMT_A8R8G8B8); - virtual ~CBaseTexture(); - - bool LoadFromFile(const CStdString& texturePath, unsigned int maxHeight = 0, unsigned int maxWidth = 0, - bool autoRotate = false, unsigned int *originalWidth = NULL, unsigned int *originalHeight = NULL); - bool LoadFromMemory(unsigned int width, unsigned int height, unsigned int pitch, unsigned int format, unsigned char* pixels); - bool LoadPaletted(unsigned int width, unsigned int height, unsigned int pitch, unsigned int format, const unsigned char *pixels, const COLOR *palette); - - bool HasAlpha() const; - - virtual void CreateTextureObject() = 0; - virtual void DestroyTextureObject() = 0; - virtual void LoadToGPU() = 0; - - XBMC::TexturePtr GetTextureObject() const - { -#ifdef HAS_DX - return m_texture.Get(); -#else - return m_texture; -#endif - } - unsigned char* GetPixels() const { return m_pixels; } - unsigned int GetPitch() const { return GetPitch(m_textureWidth); } - unsigned int GetRows() const { return GetRows(m_textureHeight); } - unsigned int GetTextureWidth() const { return m_textureWidth; } - unsigned int GetTextureHeight() const { return m_textureHeight; } - unsigned int GetWidth() const { return m_imageWidth; } - unsigned int GetHeight() const { return m_imageHeight; } - int GetOrientation() const { return m_orientation; } - - void Update(unsigned int width, unsigned int height, unsigned int pitch, unsigned int format, const unsigned char *pixels, bool loadToGPU); - void Allocate(unsigned int width, unsigned int height, unsigned int format); - void ClampToEdge(); - - static unsigned int PadPow2(unsigned int x); - -protected: - // helpers for computation of texture parameters for compressed textures - unsigned int GetPitch(unsigned int width) const; - unsigned int GetRows(unsigned int height) const; - unsigned int GetBlockSize() const; - - unsigned int m_imageWidth; - unsigned int m_imageHeight; - unsigned int m_textureWidth; - unsigned int m_textureHeight; -#ifdef HAS_DX - CD3DTexture m_texture; -#else - XBMC::TexturePtr m_texture; -#endif - unsigned char* m_pixels; - bool m_loadedToGPU; - unsigned int m_format; - int m_orientation; - bool m_hasAlpha; -}; - -#if defined(HAS_GL) || defined(HAS_GLES) -#include "TextureGL.h" -#define CTexture CGLTexture -#elif defined(HAS_DX) -#include "TextureDX.h" -#define CTexture CDXTexture -#endif - -#endif |