From 02fc8900b9d7347ad07454087cc04d255f23a17b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Vladim=C3=ADr=20Vondru=C5=A1?= Date: Mon, 16 Sep 2019 13:17:58 +0200 Subject: [PATCH] python: expose Phong tangents and vertex colors. --- doc/python/conf.py | 5 ++++- doc/python/magnum.shaders.rst | 3 +++ src/python/magnum/shaders.cpp | 9 ++++++++- 3 files changed, 15 insertions(+), 2 deletions(-) diff --git a/doc/python/conf.py b/doc/python/conf.py index 8b9140c..7112b0a 100644 --- a/doc/python/conf.py +++ b/doc/python/conf.py @@ -84,7 +84,10 @@ magnum.shaders.VertexColor3D.__annotations__ = { magnum.shaders.Phong.__annotations__ = { 'POSITION': magnum.gl.Attribute, 'NORMAL': magnum.gl.Attribute, - 'TEXTURE_COORDINATES': magnum.gl.Attribute + 'TANGENT': magnum.gl.Attribute, + 'TEXTURE_COORDINATES': magnum.gl.Attribute, + 'COLOR3': magnum.gl.Attribute, + 'COLOR4': magnum.gl.Attribute } PROJECT_TITLE = 'Magnum' diff --git a/doc/python/magnum.shaders.rst b/doc/python/magnum.shaders.rst index 41f4b49..365b127 100644 --- a/doc/python/magnum.shaders.rst +++ b/doc/python/magnum.shaders.rst @@ -36,7 +36,10 @@ .. py:class:: magnum.shaders.Phong :data POSITION: Vertex position :data NORMAL: Normal direction + :data TANGENT: Tangent direction :data TEXTURE_COORDINATES: 2D texture coordinates + :data COLOR3: Three-component vertex color + :data COLOR4: Four-component vertex color .. py:property:: magnum.shaders.Phong.alpha_mask :raise AttributeError: If the shader was not created with `Flags.ALPHA_MASK` diff --git a/src/python/magnum/shaders.cpp b/src/python/magnum/shaders.cpp index 4aa09f3..6d12da7 100644 --- a/src/python/magnum/shaders.cpp +++ b/src/python/magnum/shaders.cpp @@ -82,7 +82,10 @@ void shaders(py::module& m) { "Phong", "Phong shader"}; phong.attr("POSITION") = GL::DynamicAttribute{Shaders::Phong::Position{}}; phong.attr("NORMAL") = GL::DynamicAttribute{Shaders::Phong::Normal{}}; + phong.attr("TANGENT") = GL::DynamicAttribute{Shaders::Phong::Tangent{}}; phong.attr("TEXTURE_COORDINATES") = GL::DynamicAttribute{Shaders::Phong::TextureCoordinates{}}; + phong.attr("COLOR3") = GL::DynamicAttribute{Shaders::Phong::Color3{}}; + phong.attr("COLOR4") = GL::DynamicAttribute{Shaders::Phong::Color4{}}; py::enum_ flags{phong, "Flags", "Flags"}; @@ -90,8 +93,12 @@ void shaders(py::module& m) { .value("AMBIENT_TEXTURE", Shaders::Phong::Flag::AmbientTexture) .value("DIFFUSE_TEXTURE", Shaders::Phong::Flag::DiffuseTexture) .value("SPECULAR_TEXTURE", Shaders::Phong::Flag::SpecularTexture) + .value("NORMAL_TEXTURE", Shaders::Phong::Flag::NormalTexture) .value("ALPHA_MASK", Shaders::Phong::Flag::AlphaMask) - .value("NONE", Shaders::Phong::Flag{}); + .value("VERTEX_COLOR", Shaders::Phong::Flag::VertexColor) + .value("NONE", Shaders::Phong::Flag{}) + /* TODO: OBJECT_ID, once multiple FB outputs and mapDraw is exposed */ + ; corrade::enumOperators(flags); phong