summaryrefslogtreecommitdiffhomepage
path: root/TexturedQuadShader.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'TexturedQuadShader.cpp')
-rw-r--r--TexturedQuadShader.cpp61
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