Browse Source

python: adapt to Magnum changes.

Same as before, this is a breaking change -- sorry.
pull/9/head
Vladimír Vondruš 6 years ago
parent
commit
d2dc71369c
  1. 4
      src/python/magnum/gl.cpp
  2. 11
      src/python/magnum/shaders.cpp

4
src/python/magnum/gl.cpp

@ -340,6 +340,7 @@ void gl(py::module& m) {
/* Public interface */
.def_property_readonly("id", &GL::AbstractShaderProgram::id, "OpenGL program ID")
.def("validate", &GL::AbstractShaderProgram::validate, "Validate program")
.def("draw", static_cast<void(GL::AbstractShaderProgram::*)(GL::Mesh&)>(&GL::AbstractShaderProgram::draw), "Draw a mesh")
#if !defined(MAGNUM_TARGET_GLES2) && !defined(MAGNUM_TARGET_WEBGL)
.def("dispatch_compute", &GL::AbstractShaderProgram::dispatchCompute, "Dispatch compute")
#endif
@ -814,9 +815,6 @@ void gl(py::module& m) {
the mesh */
pyObjectHolderFor<GL::PyMeshHolder>(self).buffers.emplace_back(pyObjectFromInstance(buffer));
}, "Add vertex buffer", py::arg("buffer"), py::arg("offset"), py::arg("stride"), py::arg("attribute"))
.def("draw", [](GL::Mesh& self, GL::AbstractShaderProgram& shader) {
self.draw(shader);
}, "Draw the mesh")
/** @todo more */
.def_property_readonly("buffers", [](GL::Mesh& self) {

11
src/python/magnum/shaders.cpp

@ -26,6 +26,7 @@
#include <pybind11/pybind11.h>
#include <pybind11/stl.h> /* for vector arguments */
#include <Corrade/Containers/ArrayViewStl.h>
#include <Magnum/GL/Mesh.h>
#include <Magnum/GL/Texture.h>
#include <Magnum/Math/Color.h>
#include <Magnum/Math/Matrix3.h>
@ -43,6 +44,10 @@ namespace magnum {
namespace {
template<class T> void anyShader(PyNonDestructibleClass<T, GL::AbstractShaderProgram>& c) {
c.def("draw", static_cast<void(GL::AbstractShaderProgram::*)(GL::Mesh&)>(&GL::AbstractShaderProgram::draw), "Draw a mesh");
}
template<UnsignedInt dimensions> void flat(PyNonDestructibleClass<Shaders::Flat<dimensions>, GL::AbstractShaderProgram>& c) {
/* Attributes */
c.attr("TEXTURE_COORDINATES") = GL::DynamicAttribute{typename Shaders::Flat<dimensions>::TextureCoordinates{}};
@ -77,6 +82,8 @@ template<UnsignedInt dimensions> void flat(PyNonDestructibleClass<Shaders::Flat<
self.bindTexture(texture);
}, "Bind a color texture");
anyShader(c);
}
template<UnsignedInt dimensions> void vertexColor(PyNonDestructibleClass<Shaders::VertexColor<dimensions>, GL::AbstractShaderProgram>& c) {
@ -92,6 +99,8 @@ template<UnsignedInt dimensions> void vertexColor(PyNonDestructibleClass<Shaders
.def_property("transformation_projection_matrix", nullptr, &Shaders::VertexColor<dimensions>::setTransformationProjectionMatrix,
"Transformation and projection matrix");
anyShader(c);
}
}
@ -260,6 +269,8 @@ void shaders(py::module& m) {
self.bindTextures(ambient, diffuse, specular, normal);
}, "Bind textures", py::arg("ambient") = nullptr, py::arg("diffuse") = nullptr, py::arg("specular") = nullptr, py::arg("normal") = nullptr)
;
anyShader(phong);
}
}

Loading…
Cancel
Save