From bccfa205d3de4af42ba6b328509abeb5e9be7a45 Mon Sep 17 00:00:00 2001 From: Jelle Raaijmakers Date: Mon, 29 Nov 2021 12:56:55 +0100 Subject: [PATCH] LibGL: Improve mipmap lookup in Texture2D We can get rid of a `VERIFY` since we already do this in `Array::at()`. Also move `::mipmap()` to the header file so it is inlined in `Sampler2D`. --- Userland/Libraries/LibGL/Tex/Texture2D.cpp | 9 --------- Userland/Libraries/LibGL/Tex/Texture2D.h | 8 +++++++- 2 files changed, 7 insertions(+), 10 deletions(-) diff --git a/Userland/Libraries/LibGL/Tex/Texture2D.cpp b/Userland/Libraries/LibGL/Tex/Texture2D.cpp index 9300b7a98e..0f0c7f9da0 100644 --- a/Userland/Libraries/LibGL/Tex/Texture2D.cpp +++ b/Userland/Libraries/LibGL/Tex/Texture2D.cpp @@ -36,7 +36,6 @@ void Texture2D::replace_sub_texture_data(GLuint lod, GLint xoffset, GLint yoffse // FIXME: We currently only support GL_UNSIGNED_BYTE pixel data VERIFY(type == GL_UNSIGNED_BYTE); - VERIFY(lod < m_mipmaps.size()); VERIFY(xoffset >= 0 && yoffset >= 0 && xoffset + width <= mip.width() && yoffset + height <= mip.height()); VERIFY(pixels_per_row == 0 || pixels_per_row >= xoffset + width); @@ -111,12 +110,4 @@ void Texture2D::replace_sub_texture_data(GLuint lod, GLint xoffset, GLint yoffse } } -MipMap const& Texture2D::mipmap(unsigned lod) const -{ - if (lod >= m_mipmaps.size()) - return m_mipmaps.back(); - - return m_mipmaps.at(lod); -} - } diff --git a/Userland/Libraries/LibGL/Tex/Texture2D.h b/Userland/Libraries/LibGL/Tex/Texture2D.h index 618c8c7086..9dcd3a2c28 100644 --- a/Userland/Libraries/LibGL/Tex/Texture2D.h +++ b/Userland/Libraries/LibGL/Tex/Texture2D.h @@ -38,7 +38,13 @@ public: void upload_texture_data(GLuint lod, GLint internal_format, GLsizei width, GLsizei height, GLint border, GLenum format, GLenum type, const GLvoid* pixels, GLsizei pixels_per_row, u8 byte_alignment); void replace_sub_texture_data(GLuint lod, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLenum type, const GLvoid* pixels, GLsizei pixels_per_row, u8 byte_alignment); - MipMap const& mipmap(unsigned lod) const; + MipMap const& mipmap(unsigned lod) const + { + if (lod >= m_mipmaps.size()) + return m_mipmaps.back(); + + return m_mipmaps.at(lod); + } GLenum internal_format() const { return m_internal_format; } Sampler2D const& sampler() const { return m_sampler; }