diff options
Diffstat (limited to 'TexturedQuadShader.cpp')
-rw-r--r-- | TexturedQuadShader.cpp | 61 |
1 files changed, 61 insertions, 0 deletions
diff --git a/TexturedQuadShader.cpp b/TexturedQuadShader.cpp new file mode 100644 index 00000000..c6d91c4b --- /dev/null +++ b/TexturedQuadShader.cpp @@ -0,0 +1,61 @@ +/* + This file is part of Magnum. + + Original authors — credit is appreciated but not required: + + 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017, 2018, 2019, + 2020, 2021, 2022 — Vladimír Vondruš <mosra@centrum.cz> + + This is free and unencumbered software released into the public domain. + + Anyone is free to copy, modify, publish, use, compile, sell, or distribute + this software, either in source code form or as a compiled binary, for any + purpose, commercial or non-commercial, and by any means. + + In jurisdictions that recognize copyright laws, the author or authors of + this software dedicate any and all copyright interest in the software to + the public domain. We make this dedication for the benefit of the public + at large and to the detriment of our heirs and successors. We intend this + dedication to be an overt act of relinquishment in perpetuity of all + present and future rights to this software under copyright law. + + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL + THE AUTHORS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER + IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN + CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. +*/ + +#include "TexturedQuadShader.h" + +#include <Corrade/Containers/Reference.h> +#include <Corrade/Utility/Resource.h> +#include <Magnum/GL/Context.h> +#include <Magnum/GL/Shader.h> +#include <Magnum/GL/Version.h> + +namespace Magnum::Examples { + +TexturedQuadShader::TexturedQuadShader() { + MAGNUM_ASSERT_GL_VERSION_SUPPORTED(GL::Version::GL330); + + const Utility::Resource rs{"texturedquad-data"}; + + GL::Shader vert{GL::Version::GL330, GL::Shader::Type::Vertex}; + GL::Shader frag{GL::Version::GL330, GL::Shader::Type::Fragment}; + + vert.addSource(rs.get("shaders/TexturedQuadShader.vert")); + frag.addSource(rs.get("shaders/TexturedQuadShader.frag")); + + CORRADE_INTERNAL_ASSERT_OUTPUT(GL::Shader::compile({vert, frag})); + + attachShaders({vert, frag}); + + CORRADE_INTERNAL_ASSERT_OUTPUT(link()); + + _colorUniform = uniformLocation("color"); + setUniform(uniformLocation("textureData"), TextureUnit); +} + +} // namespace Magnum::Examples |