Supermodel/Src/Graphics/New3D/Texture.h

43 lines
825 B
C++

#ifndef _TEXTURE_H_
#define _TEXTURE_H_
#include "Types.h"
#include "Pkgs/glew.h" //arg
namespace New3D {
#define TEXTURE_DEBUG 0x8
#define TEXTURE_DEBUG_MASK 0x7
class Texture
{
public:
Texture();
~Texture();
UINT32 UploadTexture (const UINT16* src, UINT8* scratch, int format, bool mirrorU, bool mirrorV, int x, int y, int width, int height);
void DeleteTexture ();
void BindTexture ();
void GetCoordinates (UINT16 uIn, UINT16 vIn, float uvScale, float& uOut, float& vOut);
void GetDetails (int& x, int&y, int& width, int& height, int& format);
void SetWrapMode (bool mirrorU, bool mirrorV);
private:
void Reset();
int m_x;
int m_y;
int m_width;
int m_height;
int m_format;
bool m_mirrorU;
bool m_mirrorV;
GLuint m_textureID;
};
} // New3D
#endif