00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00027
#ifndef SH_GLTEXTURESTORAGE_HPP
00028
#define SH_GLTEXTURESTORAGE_HPP
00029
00030
#include "GlBackend.hpp"
00031
#include "ShMemory.hpp"
00032
#include "GlTextureName.hpp"
00033
00034
namespace shgl {
00035
00036
class GlTextureStorage :
public SH::ShStorage {
00037
public:
00038 GlTextureStorage(
int context,
00039
SH::ShMemory* memory, GLenum target,
00040 GLenum format, GLint internalFormat,
00041
int width,
int height,
int depth,
00042 GlTextureNamePtr name);
00043
00044 ~GlTextureStorage();
00045
00046 std::string id()
const {
return "opengl:texture"; }
00047
00048 GLuint name()
const {
return m_name->value(); }
00049
const GlTextureNamePtr& texName()
const {
return m_name; }
00050 GLenum target()
const {
return m_target; }
00051 GLenum format()
const {
return m_format; }
00052 GLint internalFormat()
const {
return m_internalFormat; }
00053
int width()
const {
return m_width; }
00054
int height()
const {
return m_height; }
00055
int depth()
const {
return m_depth; }
00056
int context()
const {
return m_context; }
00057
00058
private:
00059
int m_context;
00060 GlTextureNamePtr m_name;
00061 GLenum m_target;
00062 GLenum m_format;
00063 GLint m_internalFormat;
00064
int m_width, m_height, m_depth;
00065
00066
unsigned int m_params;
00067
00068 GlTextureStorage(
const GlTextureStorage&);
00069 GlTextureStorage& operator=(
const GlTextureStorage&);
00070
00071
00072 };
00073
00074
typedef SH::ShPointer<GlTextureStorage> GlTextureStoragePtr;
00075
00076 }
00077
00078
#endif