Browse Source

python: expose minimum of GL::Renderer.

pull/1/head
Vladimír Vondruš 7 years ago
parent
commit
ecc616b48c
  1. 53
      src/python/magnum/gl.cpp
  2. 6
      src/python/magnum/test/test_gl_gl.py

53
src/python/magnum/gl.cpp

@ -31,6 +31,7 @@
#include <Magnum/GL/Buffer.h>
#include <Magnum/GL/DefaultFramebuffer.h>
#include <Magnum/GL/Mesh.h>
#include <Magnum/GL/Renderer.h>
#include "corrade/PyArrayView.h"
#include "corrade/EnumOperators.h"
@ -245,6 +246,58 @@ void gl(py::module& m) {
}, "Draw the mesh")
/** @todo more */
;
/* Renderer */
{
py::class_<GL::Renderer> renderer{m, "Renderer", "Global renderer configuration"};
py::enum_<GL::Renderer::Feature>{renderer, "Feature", "Feature"}
#ifndef MAGNUM_TARGET_WEBGL
.value("BLEND_ADVANCED_COHERENT", GL::Renderer::Feature::BlendAdvancedCoherent)
#endif
.value("BLENDING", GL::Renderer::Feature::Blending)
#ifndef MAGNUM_TARGET_WEBGL
.value("DEBUG_OUTPUT", GL::Renderer::Feature::DebugOutput)
.value("DEBUG_OUTPUT_SYNCHRONOUS", GL::Renderer::Feature::DebugOutputSynchronous)
#endif
#ifndef MAGNUM_TARGET_GLES
.value("DEPTH_CLAMP", GL::Renderer::Feature::DepthClamp)
#endif
.value("DEPTH_TEST", GL::Renderer::Feature::DepthTest)
.value("DITHERING", GL::Renderer::Feature::Dithering)
.value("FACE_CULLING", GL::Renderer::Feature::FaceCulling)
#ifndef MAGNUM_TARGET_WEBGL
.value("FRAMEBUFFER_SRGB", GL::Renderer::Feature::FramebufferSrgb)
#endif
#ifndef MAGNUM_TARGET_GLES
.value("LOGIC_OPERATION", GL::Renderer::Feature::LogicOperation)
.value("MULTISAMPLING", GL::Renderer::Feature::Multisampling)
#endif
.value("POLYGON_OFFSET_FILL", GL::Renderer::Feature::PolygonOffsetFill)
#ifndef MAGNUM_TARGET_WEBGL
.value("POLYGON_OFFSET_LINE", GL::Renderer::Feature::PolygonOffsetLine)
.value("POLYGON_OFFSET_POINT", GL::Renderer::Feature::PolygonOffsetPoint)
#endif
#ifndef MAGNUM_TARGET_GLES
.value("PROGRAM_POINT_SIZE", GL::Renderer::Feature::ProgramPointSize)
#endif
#ifndef MAGNUM_TARGET_GLES2
.value("RASTERIZER_DISCARD", GL::Renderer::Feature::RasterizerDiscard)
#endif
#if !defined(MAGNUM_TARGET_GLES2) && !defined(MAGNUM_TARGET_WEBGL)
.value("SAMPLE_SHADING", GL::Renderer::Feature::SampleShading)
#endif
#ifndef MAGNUM_TARGET_GLES
.value("SEAMLESS_CUBE_MAP_TEXTURE", GL::Renderer::Feature::SeamlessCubeMapTexture)
#endif
.value("SCISSOR_TEST", GL::Renderer::Feature::ScissorTest)
.value("STENCIL_TEST", GL::Renderer::Feature::StencilTest);
renderer
.def_static("enable", GL::Renderer::enable, "Enable a feature")
.def_static("disable", GL::Renderer::disable, "Disable a feature")
.def_static("set_feature", GL::Renderer::setFeature, "Enable or disable a feature");
}
}
}}

6
src/python/magnum/test/test_gl_gl.py

@ -101,3 +101,9 @@ class Mesh(GLTestCase):
# Deleting the mesh should decrease it again
del mesh
self.assertEqual(sys.getrefcount(buffer), buffer_refcount)
class Renderer(GLTestCase):
def test_feature(self):
gl.Renderer.enable(gl.Renderer.Feature.DEPTH_TEST)
gl.Renderer.disable(gl.Renderer.Feature.FACE_CULLING)
gl.Renderer.set_feature(gl.Renderer.Feature.STENCIL_TEST, True)

Loading…
Cancel
Save