23 glGenTextures(1, &m_texture);
24 glBindTexture(GL_TEXTURE_2D, m_texture);
26 GLenum glFormat = GL_RGBA;
29 glTexImage2D(GL_TEXTURE_2D, 0, GL_RGBA,
width,
height, 0, glFormat,
30 GL_UNSIGNED_BYTE, data);
31 glGenerateMipmap(GL_TEXTURE_2D);
34 glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR_MIPMAP_LINEAR);
35 glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR);
36 glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_REPEAT);
37 glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_REPEAT);
39 glBindTexture(GL_TEXTURE_2D, 0);
71 glBindTexture(GL_TEXTURE_2D, m_texture);
74 glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_NEAREST_MIPMAP_NEAREST);
75 glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_NEAREST);
78 glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR_MIPMAP_NEAREST);
79 glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR);
82 glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR_MIPMAP_LINEAR);
83 glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR);
89 glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR_MIPMAP_LINEAR);
90 glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR);
97 glGetFloatv(GL_MAX_TEXTURE_MAX_ANISOTROPY, &maxSupported);
98 glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_MAX_ANISOTROPY,
99 aniso < maxSupported ? aniso : maxSupported);
103 glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR_MIPMAP_LINEAR);
104 glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR);
107 glBindTexture(GL_TEXTURE_2D, 0);
118 glBindTexture(GL_TEXTURE_2D, m_texture);
119 GLenum mode = GL_REPEAT;
122 mode = GL_CLAMP_TO_EDGE;
break;
124 mode = GL_CLAMP_TO_BORDER;
break;
126 mode = GL_MIRRORED_REPEAT;
break;
128 mode = GL_REPEAT;
break;
130 glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, mode);
131 glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, mode);
132 glBindTexture(GL_TEXTURE_2D, 0);
void SetFilter(TextureFilter filter) override
void SetLodBias(float bias) override
void Bind(uint32_t slot=0) const override
bool LoadFromMemory(const void *data, uint32_t width, uint32_t height, TextureFormat format) override
Uploads raw pixel data as a new GL texture, generating mips.
~OpenGLTexture() override
void Unbind() const override
void SetWrapMode(TextureWrapMode wrapMode) override
bool LoadFromFile(const std::string &filePath) override
Decodes an image file and uploads it as a new GL texture.