TextureData.hh 3.06 KB
Newer Older
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
////////////////////////////////////////////////////////////////////////////////
// Copyright (c) 2011, Computer Graphics Group RWTH Aachen University         //
// All rights reserved.                                                       //
////////////////////////////////////////////////////////////////////////////////

#ifndef ACGL_OPENGL_DATA_TEXTUREDATA_HH
#define ACGL_OPENGL_DATA_TEXTUREDATA_HH

#include <ACGL/ACGL.hh>

#include <ACGL/Base/Macros.hh>
#include <ACGL/OpenGL/GL.hh>

namespace ACGL{
namespace OpenGL{

class TextureData
{
    // ========================================================================================================= \/
    // ============================================================================================ CONSTRUCTORS \/
    // ========================================================================================================= \/
public:
    TextureData(void)
    :   pData(NULL),
        width(0),
        height(0),
        depth(0),
        format(GL_RGBA),
        type(GL_UNSIGNED_BYTE)
    {}
    virtual ~TextureData(void)
    {
        delete[] pData;
    }

    // ========================================================================================================= \/
    // ================================================================================================= GETTERS \/
    // ========================================================================================================= \/
public:
    GLubyte* getData    (void) const { return pData;   }
    GLsizei  getWidth   (void) const { return width;   }
    GLsizei  getHeight  (void) const { return height;  }
    GLsizei  getDepth   (void) const { return depth;   }
    GLenum   getFormat  (void) const { return format;  }
    GLenum   getType    (void) const { return type;    }

    // ========================================================================================================= \/
    // ================================================================================================= SETTERS \/
    // ========================================================================================================= \/
public:
    void setData  (GLubyte* _pData)  { pData  = _pData;  }
    void setWidth (GLsizei  _width)  { width  = _width;  }
    void setHeight(GLsizei  _height) { height = _height; }
    void setDepth (GLsizei  _depth)  { depth  = _depth;  }
    void setFormat(GLenum   _format) { format = _format; }
    void setType  (GLenum   _type)   { type   = _type;   }

    // ========================================================================================================= \/
    // ================================================================================================== FIELDS \/
    // ========================================================================================================= \/
private:
    GLubyte* pData;
    GLsizei  width;
    GLsizei  height;
    GLsizei  depth;
    GLenum   format;
    GLenum   type;
};

Robert Menzel's avatar
Robert Menzel committed
70
ACGL_SMARTPOINTER_TYPEDEFS(TextureData)
71
72
73
74
75

} // OpenGL
} // ACGL

#endif // ACGL_OPENGL_DATA_TEXTUREDATA_HH