xcal
基于 C++23 的现代图形渲染引擎
载入中...
搜索中...
未找到
texture.cc
浏览该文件的文档.
1
4
5void xcal::render::opengl::GL::Texture::bind(gl::GLenum target) const {
6 _gl glBindTexture(target, texture_);
7};
9 _gl glBindTexture(target, 0);
10};
11
13 gl::GLenum param) const {
14 _gl glTexParameteri(target_, pname, param);
15}
17 _gl glBindTexture(target_, texture_);
18};
20 _gl glBindTexture(target_, 0);
21};
23 color_format_t format) {
24 static const gl::GLenum mapping[] = {
25 _gl GL_RGB, _gl GL_RGBA, _gl GL_DEPTH_COMPONENT, _gl GL_STENCIL_INDEX};
26 return mapping[static_cast<std::size_t>(format)];
27}
29 : target_(target) {
30 _gl glGenTextures(1, &texture_);
31};
33 if (is_valid()) _gl glDeleteTextures(1, &texture_);
34 texture_ = 0;
35};
37 std::swap(texture_, o.texture_);
38 std::swap(target_, o.target_);
39}
41 static const gl::GLenum mapping[] = {_gl GL_UNSIGNED_BYTE, _gl GL_FLOAT};
42 return mapping[static_cast<std::size_t>(type)];
43}
45 gl::GLint level, color_format_t internalformat, gl::GLsizei width,
46 gl::GLsizei height, gl::GLint border, color_format_t format,
47 pixel_type_t type, const void *data) const {
48 _gl glTexImage2D(target_, level, to_gl_enum(internalformat), width, height,
49 border, to_gl_enum(format), to_gl_enum(type), data);
50};
static gl::GLenum to_gl_enum(color_format_t format)
Definition texture.cc:22
void image_2d(gl::GLint level, color_format_t internalformat, gl::GLsizei width, gl::GLsizei height, gl::GLint border, color_format_t format, pixel_type_t type, const void *data) const
Definition texture.cc:44
Texture(const Texture &)=delete
void parameteri(gl::GLenum pname, gl::GLenum param) const
Definition texture.cc:12
int GLint
Definition typedef.hpp:17
int GLsizei
Definition typedef.hpp:18