def _initialize(self) -> None: supports_vao = OpenGLContext.supportsVertexArrayObjects() # fill the OpenGLContext.properties Logger.log("d", "Support for Vertex Array Objects: %s", supports_vao) OpenGL() self._gl = OpenGL.getInstance().getBindingsObject() self._default_material = OpenGL.getInstance().createShaderProgram(Resources.getPath(Resources.Shaders, "default.shader")) #type: ShaderProgram self._render_passes.add(DefaultPass(self._viewport_width, self._viewport_height)) self._render_passes.add(SelectionPass(self._viewport_width, self._viewport_height)) self._render_passes.add(CompositePass(self._viewport_width, self._viewport_height)) buffer = QOpenGLBuffer(QOpenGLBuffer.VertexBuffer) buffer.create() buffer.bind() buffer.allocate(120) data = numpy.array([ -1.0, -1.0, 0.0, 1.0, 1.0, 0.0, -1.0, 1.0, 0.0, -1.0, -1.0, 0.0, 1.0, -1.0, 0.0, 1.0, 1.0, 0.0, 0.0, 0.0, 1.0, 1.0, 0.0, 1.0, 0.0, 0.0, 1.0, 0.0, 1.0, 1.0 ], dtype = numpy.float32).tostring() buffer.write(0, data, len(data)) buffer.release() self._quad_buffer = buffer self._initialized = True self.initialized.emit()