From cfb18081bb35ba8dddf4cecf899798dd521fd245 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Vladim=C3=ADr=20Vondru=C5=A1?= Date: Sat, 12 Jul 2025 18:47:31 +0200 Subject: [PATCH] GL: these helpers are never used on WebGL, compile them away. --- src/Magnum/GL/AbstractFramebuffer.cpp | 2 ++ src/Magnum/GL/AbstractFramebuffer.h | 2 ++ src/Magnum/GL/AbstractTexture.cpp | 2 ++ src/Magnum/GL/AbstractTexture.h | 2 ++ src/Magnum/GL/Buffer.cpp | 2 ++ src/Magnum/GL/Buffer.h | 2 ++ src/Magnum/GL/Mesh.cpp | 2 ++ src/Magnum/GL/Mesh.h | 2 ++ src/Magnum/GL/Renderbuffer.cpp | 2 ++ src/Magnum/GL/Renderbuffer.h | 2 ++ src/Magnum/GL/TransformFeedback.cpp | 2 ++ src/Magnum/GL/TransformFeedback.h | 2 ++ 12 files changed, 24 insertions(+) diff --git a/src/Magnum/GL/AbstractFramebuffer.cpp b/src/Magnum/GL/AbstractFramebuffer.cpp index 88b2eb280..f6d0a0b72 100644 --- a/src/Magnum/GL/AbstractFramebuffer.cpp +++ b/src/Magnum/GL/AbstractFramebuffer.cpp @@ -103,6 +103,7 @@ Int AbstractFramebuffer::maxDualSourceDrawBuffers() { } #endif +#ifndef MAGNUM_TARGET_WEBGL void AbstractFramebuffer::createIfNotAlready() { if(_flags & ObjectFlag::Created) return; @@ -113,6 +114,7 @@ void AbstractFramebuffer::createIfNotAlready() { bindInternal(); CORRADE_INTERNAL_ASSERT(_flags & ObjectFlag::Created); } +#endif void AbstractFramebuffer::bind() { bindInternal(FramebufferTarget::Draw); diff --git a/src/Magnum/GL/AbstractFramebuffer.h b/src/Magnum/GL/AbstractFramebuffer.h index 953b311a4..22c396f71 100644 --- a/src/Magnum/GL/AbstractFramebuffer.h +++ b/src/Magnum/GL/AbstractFramebuffer.h @@ -778,7 +778,9 @@ class MAGNUM_GL_EXPORT AbstractFramebuffer { return *this; } + #ifndef MAGNUM_TARGET_WEBGL void MAGNUM_GL_LOCAL createIfNotAlready(); + #endif void MAGNUM_GL_LOCAL bindInternal(FramebufferTarget target); FramebufferTarget MAGNUM_GL_LOCAL bindInternal(); diff --git a/src/Magnum/GL/AbstractTexture.cpp b/src/Magnum/GL/AbstractTexture.cpp index 28ef5c8d2..675cf5b4d 100644 --- a/src/Magnum/GL/AbstractTexture.cpp +++ b/src/Magnum/GL/AbstractTexture.cpp @@ -252,6 +252,7 @@ AbstractTexture::~AbstractTexture() { glDeleteTextures(1, &_id); } +#ifndef MAGNUM_TARGET_WEBGL void AbstractTexture::createIfNotAlready() { if(_flags & ObjectFlag::Created) return; @@ -262,6 +263,7 @@ void AbstractTexture::createIfNotAlready() { bindInternal(); CORRADE_INTERNAL_ASSERT(_flags & ObjectFlag::Created); } +#endif #ifndef MAGNUM_TARGET_WEBGL Containers::String AbstractTexture::label() { diff --git a/src/Magnum/GL/AbstractTexture.h b/src/Magnum/GL/AbstractTexture.h index 439b15a8a..dc43ddb8e 100644 --- a/src/Magnum/GL/AbstractTexture.h +++ b/src/Magnum/GL/AbstractTexture.h @@ -453,7 +453,9 @@ class MAGNUM_GL_EXPORT AbstractTexture: public AbstractObject { explicit AbstractTexture(NoCreateT, GLenum target) noexcept: _target{target}, _id{0}, _flags{ObjectFlag::DeleteOnDestruction} {} explicit AbstractTexture(GLuint id, GLenum target, ObjectFlags flags) noexcept: _target{target}, _id{id}, _flags{flags} {} + #ifndef MAGNUM_TARGET_WEBGL void MAGNUM_GL_LOCAL createIfNotAlready(); + #endif #if !defined(MAGNUM_TARGET_GLES2) && !defined(MAGNUM_TARGET_WEBGL) void bindImageInternal(Int imageUnit, Int level, bool layered, Int layer, ImageAccess access, ImageFormat format); diff --git a/src/Magnum/GL/Buffer.cpp b/src/Magnum/GL/Buffer.cpp index 413fda3b4..03021a0b4 100644 --- a/src/Magnum/GL/Buffer.cpp +++ b/src/Magnum/GL/Buffer.cpp @@ -230,6 +230,7 @@ void Buffer::setTargetHintImplementationSwiftShader(Buffer& self, const TargetHi } #endif +#ifndef MAGNUM_TARGET_WEBGL void Buffer::createIfNotAlready() { if(_flags & ObjectFlag::Created) return; @@ -241,6 +242,7 @@ void Buffer::createIfNotAlready() { bindSomewhereInternal(_targetHint); CORRADE_INTERNAL_ASSERT(_flags & ObjectFlag::Created); } +#endif #ifndef MAGNUM_TARGET_WEBGL Containers::String Buffer::label() { diff --git a/src/Magnum/GL/Buffer.h b/src/Magnum/GL/Buffer.h index cc9bf1c74..280668157 100644 --- a/src/Magnum/GL/Buffer.h +++ b/src/Magnum/GL/Buffer.h @@ -1419,7 +1419,9 @@ class MAGNUM_GL_EXPORT Buffer: public AbstractObject { static void MAGNUM_GL_LOCAL setTargetHintImplementationSwiftShader(Buffer& self, TargetHint hint); #endif + #ifndef MAGNUM_TARGET_WEBGL void MAGNUM_GL_LOCAL createIfNotAlready(); + #endif #if !defined(MAGNUM_TARGET_GLES2) && !defined(MAGNUM_TARGET_WEBGL) static void MAGNUM_GL_LOCAL storageImplementationDefault(Buffer& self, Containers::ArrayView data, StorageFlags flags); diff --git a/src/Magnum/GL/Mesh.cpp b/src/Magnum/GL/Mesh.cpp index 95f366143..958ef59d4 100644 --- a/src/Magnum/GL/Mesh.cpp +++ b/src/Magnum/GL/Mesh.cpp @@ -391,6 +391,7 @@ Mesh& Mesh::operator=(Mesh&& other) noexcept { Mesh::Mesh(const GLuint id, const MeshPrimitive primitive, const ObjectFlags flags): _id{id}, _primitive{primitive}, _flags{flags} {} +#ifndef MAGNUM_TARGET_WEBGL inline void Mesh::createIfNotAlready() { /* If VAO extension is not available, the following is always true */ if(_flags & ObjectFlag::Created) return; @@ -402,6 +403,7 @@ inline void Mesh::createIfNotAlready() { bindVAO(); CORRADE_INTERNAL_ASSERT(_flags & ObjectFlag::Created); } +#endif #ifndef MAGNUM_TARGET_WEBGL Containers::String Mesh::label() { diff --git a/src/Magnum/GL/Mesh.h b/src/Magnum/GL/Mesh.h index 3ce68b49f..36dc304b8 100644 --- a/src/Magnum/GL/Mesh.h +++ b/src/Magnum/GL/Mesh.h @@ -1208,7 +1208,9 @@ class MAGNUM_GL_EXPORT Mesh: public AbstractObject { /* Used by wrap() */ explicit Mesh(GLuint id, MeshPrimitive primitive, ObjectFlags flags); + #ifndef MAGNUM_TARGET_WEBGL void MAGNUM_GL_LOCAL createIfNotAlready(); + #endif /* Computing stride of interleaved vertex attributes */ template static GLsizei strideOfInterleaved(const Attribute& attribute, const U&... attributes) { diff --git a/src/Magnum/GL/Renderbuffer.cpp b/src/Magnum/GL/Renderbuffer.cpp index f26d35639..07ece4ec9 100644 --- a/src/Magnum/GL/Renderbuffer.cpp +++ b/src/Magnum/GL/Renderbuffer.cpp @@ -99,6 +99,7 @@ Renderbuffer::~Renderbuffer() { glDeleteRenderbuffers(1, &_id); } +#ifndef MAGNUM_TARGET_WEBGL inline void Renderbuffer::createIfNotAlready() { if(_flags & ObjectFlag::Created) return; @@ -109,6 +110,7 @@ inline void Renderbuffer::createIfNotAlready() { bind(); CORRADE_INTERNAL_ASSERT(_flags & ObjectFlag::Created); } +#endif #ifndef MAGNUM_TARGET_WEBGL Containers::String Renderbuffer::label() { diff --git a/src/Magnum/GL/Renderbuffer.h b/src/Magnum/GL/Renderbuffer.h index 41b3abccf..bf7d5dbca 100644 --- a/src/Magnum/GL/Renderbuffer.h +++ b/src/Magnum/GL/Renderbuffer.h @@ -264,7 +264,9 @@ class MAGNUM_GL_EXPORT Renderbuffer: public AbstractObject { static void MAGNUM_GL_LOCAL createImplementationDSA(Renderbuffer& self); #endif + #ifndef MAGNUM_TARGET_WEBGL void MAGNUM_GL_LOCAL createIfNotAlready(); + #endif static void MAGNUM_GL_LOCAL storageImplementationDefault(Renderbuffer& self, RenderbufferFormat internalFormat, const Vector2i& size); #ifndef MAGNUM_TARGET_GLES diff --git a/src/Magnum/GL/TransformFeedback.cpp b/src/Magnum/GL/TransformFeedback.cpp index 1610cd891..86d73ec0c 100644 --- a/src/Magnum/GL/TransformFeedback.cpp +++ b/src/Magnum/GL/TransformFeedback.cpp @@ -153,6 +153,7 @@ void TransformFeedback::bindInternal() { glBindTransformFeedback(GL_TRANSFORM_FEEDBACK, _id); } +#ifndef MAGNUM_TARGET_WEBGL inline void TransformFeedback::createIfNotAlready() { if(_flags & ObjectFlag::Created) return; @@ -163,6 +164,7 @@ inline void TransformFeedback::createIfNotAlready() { bindInternal(); CORRADE_INTERNAL_ASSERT(_flags & ObjectFlag::Created); } +#endif #ifndef MAGNUM_TARGET_WEBGL Containers::String TransformFeedback::label() { diff --git a/src/Magnum/GL/TransformFeedback.h b/src/Magnum/GL/TransformFeedback.h index b74deb1ae..34c2dd197 100644 --- a/src/Magnum/GL/TransformFeedback.h +++ b/src/Magnum/GL/TransformFeedback.h @@ -436,7 +436,9 @@ class MAGNUM_GL_EXPORT TransformFeedback: public AbstractObject { void bindInternal(); + #ifndef MAGNUM_TARGET_WEBGL void MAGNUM_GL_LOCAL createIfNotAlready(); + #endif static void MAGNUM_GL_LOCAL createImplementationDefault(TransformFeedback& self); #ifndef MAGNUM_TARGET_GLES