Browse Source

python: no need to bind draw() again for shader subclasses.

The inheritance takes care of that. On the other hand it makes docs
rather noisy, but that's another problem to fix.
pull/16/head
Vladimír Vondruš 4 years ago
parent
commit
c2499fea34
  1. 12
      src/python/magnum/shaders.cpp

12
src/python/magnum/shaders.cpp

@ -44,12 +44,6 @@ namespace magnum {
namespace { namespace {
template<class T> void anyShader(PyNonDestructibleClass<T, GL::AbstractShaderProgram>& c) {
c.def("draw", [](GL::AbstractShaderProgram& self, GL::Mesh& mesh) {
self.draw(mesh);
}, "Draw a mesh");
}
template<UnsignedInt dimensions> void flat(PyNonDestructibleClass<Shaders::FlatGL<dimensions>, GL::AbstractShaderProgram>& c) { template<UnsignedInt dimensions> void flat(PyNonDestructibleClass<Shaders::FlatGL<dimensions>, GL::AbstractShaderProgram>& c) {
/* Attributes */ /* Attributes */
c.attr("TEXTURE_COORDINATES") = GL::DynamicAttribute{typename Shaders::FlatGL<dimensions>::TextureCoordinates{}}; c.attr("TEXTURE_COORDINATES") = GL::DynamicAttribute{typename Shaders::FlatGL<dimensions>::TextureCoordinates{}};
@ -84,8 +78,6 @@ template<UnsignedInt dimensions> void flat(PyNonDestructibleClass<Shaders::FlatG
self.bindTexture(texture); self.bindTexture(texture);
}, "Bind a color texture"); }, "Bind a color texture");
anyShader(c);
} }
template<UnsignedInt dimensions> void vertexColor(PyNonDestructibleClass<Shaders::VertexColorGL<dimensions>, GL::AbstractShaderProgram>& c) { template<UnsignedInt dimensions> void vertexColor(PyNonDestructibleClass<Shaders::VertexColorGL<dimensions>, GL::AbstractShaderProgram>& c) {
@ -101,8 +93,6 @@ template<UnsignedInt dimensions> void vertexColor(PyNonDestructibleClass<Shaders
.def_property("transformation_projection_matrix", nullptr, &Shaders::VertexColorGL<dimensions>::setTransformationProjectionMatrix, .def_property("transformation_projection_matrix", nullptr, &Shaders::VertexColorGL<dimensions>::setTransformationProjectionMatrix,
"Transformation and projection matrix"); "Transformation and projection matrix");
anyShader(c);
} }
} }
@ -314,8 +304,6 @@ void shaders(py::module_& m) {
self.bindTextures(ambient, diffuse, specular, normal); self.bindTextures(ambient, diffuse, specular, normal);
}, "Bind textures", py::arg("ambient") = nullptr, py::arg("diffuse") = nullptr, py::arg("specular") = nullptr, py::arg("normal") = nullptr) }, "Bind textures", py::arg("ambient") = nullptr, py::arg("diffuse") = nullptr, py::arg("specular") = nullptr, py::arg("normal") = nullptr)
; ;
anyShader(phongGL);
} }
} }

Loading…
Cancel
Save