Browse Source

GL: avoid an error-prone early return from the Shader constructor.

Several times I added some additional code at the end, only to spend
a lot of extra time debugging why it wasn't executed in some cases.
pull/168/head
Vladimír Vondruš 3 years ago
parent
commit
5719794c0a
  1. 9
      src/Magnum/GL/Shader.cpp

9
src/Magnum/GL/Shader.cpp

@ -660,7 +660,7 @@ Shader::Shader(const Version version, const Type type): _type{type}, _flags{Obje
_offsetLineByOneOnOldGlsl = false;
#endif
Containers::StringView versionString;
Containers::Optional<Containers::StringView> versionString;
switch(version) {
#ifndef MAGNUM_TARGET_GLES
case Version::GL210: versionString = "#version 120\n"_s; break;
@ -685,12 +685,13 @@ Shader::Shader(const Version version, const Type type): _type{type}, _flags{Obje
#endif
/* The user is responsible for (not) adding #version directive */
case Version::None: return;
case Version::None: versionString = ""_s; break;
}
CORRADE_ASSERT(!versionString.isEmpty(), "GL::Shader::Shader(): unsupported version" << version, );
CORRADE_ASSERT(versionString, "GL::Shader::Shader(): unsupported version" << version, );
arrayAppend(_sources, Containers::String::nullTerminatedGlobalView(versionString));
if(*versionString)
arrayAppend(_sources, Containers::String::nullTerminatedGlobalView(*versionString));
}
Shader::Shader(const Type type, const GLuint id, ObjectFlags flags) noexcept: _type{type}, _id{id}, _flags{flags}

Loading…
Cancel
Save