Pioneer
Loading...
Searching...
No Matches
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
10namespace 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
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