def createFramebufferObject(self, size): qDebug('ObjectRenderer: Created OpenGLFBO') fmt = QOpenGLFramebufferObjectFormat() fmt.setAttachment(QOpenGLFramebufferObject.Depth) fbo = QOpenGLFramebufferObject(size, fmt) fbo.release() self.__fbo = fbo return self.__fbo
def _render(self): """Render QML component to a texture.""" if not self.initialized or self._framebuffers is None or not self.ctx.makeCurrent(): return self._control.render() self._window.resetOpenGLState() QOpenGLFramebufferObject.bindDefault() self.ctx.glContext.functions().glFlush() current_fb, next_fb = self._framebuffers self._controller.framebuffer_rendered(current_fb) self._framebuffers = next_fb, current_fb self._window.setRenderTarget(next_fb.id, next_fb.size)
def createFramebufferObject(self, size: QSize) -> QOpenGLFramebufferObject: print("createFramebufferobj") gl_format = QOpenGLFramebufferObjectFormat() gl_format.setAttachment(QOpenGLFramebufferObject.Depth) frame_buffer_object = QOpenGLFramebufferObject(size, gl_format) self.__fbo = frame_buffer_object return self.__fbo
def _render(self): """Render QML component to a texture.""" if not self.initialized or self._framebuffer is None: return surface = self._surface if not self.context.makeCurrent(surface): return self._control.render() self._window.resetOpenGLState() QOpenGLFramebufferObject.bindDefault() self.context.functions().glFlush() textureID = self._framebuffer.texture() self.rendered.emit(textureID)
def createFramebufferObject(self, size: QSize) -> QOpenGLFramebufferObject: # qDebug("Creating FrameBufferObject") format = QOpenGLFramebufferObjectFormat() format.setAttachment( QOpenGLFramebufferObject.Depth ) # or QOpenGLFramebufferObject.CombinedDepthStencil self.__openGLFbo = QOpenGLFramebufferObject(size, format) # self.__openGLFbo.release() return self.__openGLFbo
def exportImage(self, target): if not self.active: return fbo = QOpenGLFramebufferObject(self.info.width, self.info.height) fbo.setAttachment(QOpenGLFramebufferObject.Depth) if not fbo.bind(): raise Exception("Failed to bind framebuffer") try: depth = target.render(self) fbo.toImage().save(str(self.info.path / (target.filename + ".png"))) cv2.imwrite( str(self.info.path / (target.filename + "-depth.png")), (depth * 65535.0).astype(np.uint16) ) finally: fbo.release()
def createFramebufferObject(self, size: QSize) -> QOpenGLFramebufferObject: qDebug('RendererHelper::createFramebufferObject()') macSize = QSize(size.width() / 2, size.height() / 2) format = QOpenGLFramebufferObjectFormat() format.setAttachment(QOpenGLFramebufferObject.Depth) # ifdef Q_OS_MAC # std::unique_ptr<QOpenGLFramebufferObject> framebufferObject(new QOpenGLFramebufferObject(macSize, format)) # else framebufferObject = QOpenGLFramebufferObject(size, format) # endif self.__m_vtkRenderWindow.SetBackLeftBuffer(GL.GL_COLOR_ATTACHMENT0) self.__m_vtkRenderWindow.SetFrontLeftBuffer(GL.GL_COLOR_ATTACHMENT0) self.__m_vtkRenderWindow.SetBackBuffer(GL.GL_COLOR_ATTACHMENT0) self.__m_vtkRenderWindow.SetFrontBuffer(GL.GL_COLOR_ATTACHMENT0) self.__m_vtkRenderWindow.SetSize(framebufferObject.size().width(), framebufferObject.size().height()) self.__m_vtkRenderWindow.SetOffScreenRendering(True) self.__m_vtkRenderWindow.Modified() framebufferObject.release() return framebufferObject
def createFramebufferObject(self, size: QSize) -> QOpenGLFramebufferObject: format = QOpenGLFramebufferObjectFormat() format.setAttachment(QOpenGLFramebufferObject.Depth) framebufferObject = QOpenGLFramebufferObject(size, format) framebufferObject.release() return framebufferObject
def _createFrameBuffer(self): """Create framebuffer for quick window.""" print(f'QmlOffscreenRenderer._createFrameBufferObject: {self.size}') self._framebuffer = fbo = QOpenGLFramebufferObject( self.size, QOpenGLFramebufferObject.CombinedDepthStencil) self._window.setRenderTarget(fbo)