Pioneer
TextureGL.h
Go to the documentation of this file.
1 // Copyright © 2008-2023 Pioneer Developers. See AUTHORS.txt for details
2 // Licensed under the terms of the GPL v3. See licenses/GPL-3.txt
3 
4 #ifndef _TEXTUREGL_H
5 #define _TEXTUREGL_H
6 
7 #include "OpenGLLibs.h"
8 #include "graphics/Texture.h"
9 
10 namespace Graphics {
11  namespace OGL {
12  class TextureGL : public Texture {
13  public:
14  virtual void Update(const void *data, const vector2f &pos, const vector3f &dataSize, TextureFormat format, const unsigned int numMips) override final;
15  virtual void Update(const TextureCubeData &data, const vector3f &dataSize, TextureFormat format, const unsigned int numMips) override final;
16  virtual void Update(const vecDataPtr &data, const vector3f &dataSize, const TextureFormat format, const unsigned int numMips) override final;
17 
18  TextureGL(const TextureDescriptor &descriptor, const bool useCompressed, const bool useAnisoFiltering, const Uint16 numSamples = 0);
19  virtual ~TextureGL();
20 
21  virtual void Bind() override final;
22  virtual void Unbind() override final;
23 
24  virtual void SetSampleMode(TextureSampleMode) override final;
25  virtual void BuildMipmaps(const uint32_t validMips = 1) override final;
26  virtual uint32_t GetTextureID() const override final
27  {
28  static_assert(sizeof(uint32_t) == sizeof(GLuint));
29  return m_texture;
30  }
31 
32  uint32_t GetTarget() const
33  {
34  static_assert(sizeof(uint32_t) == sizeof(GLuint));
35  return m_target;
36  }
37 
38  uint32_t GetTextureMemSize() const final { return m_allocSize; }
39 
40  private:
41  GLenum m_target;
42  GLuint m_texture;
43  uint32_t m_allocSize;
44  const bool m_useAnisoFiltering;
45  };
46  } // namespace OGL
47 } // namespace Graphics
48 
49 #endif
Definition: TextureGL.h:12
virtual void BuildMipmaps(const uint32_t validMips=1) override final
Definition: TextureGL.cpp:520
virtual void SetSampleMode(TextureSampleMode) override final
Definition: TextureGL.cpp:478
virtual void Update(const void *data, const vector2f &pos, const vector3f &dataSize, TextureFormat format, const unsigned int numMips) override final
Definition: TextureGL.cpp:304
virtual uint32_t GetTextureID() const override final
Definition: TextureGL.h:26
TextureGL(const TextureDescriptor &descriptor, const bool useCompressed, const bool useAnisoFiltering, const Uint16 numSamples=0)
Definition: TextureGL.cpp:85
uint32_t GetTarget() const
Definition: TextureGL.h:32
virtual ~TextureGL()
Definition: TextureGL.cpp:299
virtual void Bind() override final
Definition: TextureGL.cpp:468
uint32_t GetTextureMemSize() const final
Definition: TextureGL.h:38
virtual void Unbind() override final
Definition: TextureGL.cpp:473
Definition: Texture.h:54
Definition: Texture.h:106
std::vector< void * > vecDataPtr
Definition: Texture.h:116
Definition: Background.h:14
TextureFormat
Definition: Texture.h:14
TextureSampleMode
Definition: Texture.h:31
Definition: Texture.h:44