File: BasicTexture2D.h

package info (click to toggle)
darkradiant 3.9.0-1
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid, trixie
  • size: 41,080 kB
  • sloc: cpp: 264,743; ansic: 10,659; python: 1,852; xml: 1,650; sh: 92; makefile: 21
file content (84 lines) | stat: -rw-r--r-- 1,414 bytes parent folder | download | duplicates (6)
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
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
#pragma once

#include "Texture.h"

/**
 * \brief
 * Implementation of Texture for a 2D image texture.
 */
class BasicTexture2D
: public Texture
{
	// The GL bind number for use in OpenGL calls
	GLuint texture_number;

	// Texture Dimensions
	std::size_t _width, _height;

   // Texture name
   std::string _name;

public:

	// Constructor
	BasicTexture2D(GLuint texNum = 0, const std::string& name = "")
   : texture_number(texNum),
     _name(name)
	{}

	~BasicTexture2D() {
		if (texture_number != 0) {
			// Remove this texture from openGL if it's still loaded
			glDeleteTextures(1, &texture_number);
		}
	}

    /**
     * \brief
     * Set the texture number.
     */
    void setGLTexNum(GLuint texnum)
    {
        texture_number = texnum;
    }

    /**
     * \brief
     * Set the image width.
     */
    void setWidth(std::size_t width)
    {
        _width = width;
    }

    /**
     * \brief
     * Set the image height.
     */
    void setHeight(std::size_t height)
    {
        _height = height;
    }

    /* Texture interface */
    std::string getName() const
    {
        return _name;
    }
    GLuint getGLTexNum() const
    {
        return texture_number;
    }
    std::size_t getWidth() const
    {
        return _width;
    }
    std::size_t getHeight() const
    {
        return _height;
    }

}; // class Texture

typedef std::shared_ptr<BasicTexture2D> BasicTexture2DPtr;