Skip to content

Instantly share code, notes, and snippets.

@skoudoro
Forked from rostikL/main.qml
Last active December 18, 2019 20:16
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save skoudoro/bddba019af0c0d16a19a219b50eb4067 to your computer and use it in GitHub Desktop.
Save skoudoro/bddba019af0c0d16a19a219b50eb4067 to your computer and use it in GitHub Desktop.
QQuickFramebufferObject
import QtQuick 2.3
import Renderer 1.0
Item {
width: 500
height: 600
FBORenderer{
id: fboRenderItem
anchors.fill: parent
}
Text {
anchors.bottom: fboRenderItem.bottom
x: 20
wrapMode: Text.WordWrap
text: "This is an openGl rendering with QQuickFrameBufferObject"
}
}
from PySide2.QtCore import QUrl, qDebug, QObject
from PySide2.QtGui import QGuiApplication, QOpenGLFramebufferObjectFormat, QOpenGLFramebufferObject
from PySide2.QtQml import qmlRegisterType
from PySide2.QtQuick import QQuickItem, QQuickView, QQuickFramebufferObject
class FbItemRenderer(QQuickFramebufferObject.Renderer):
def __init__(self, parent=None):
super(FbItemRenderer, self).__init__()
qDebug("Creating FbItemRenderer")
def createFrameBufferObject(self, size):
qDebug("Creating FrameBufferObject")
format = QOpenGLFramebufferObjectFormat()
format.setAttachment(QOpenGLFramebufferObject.Depth)
return QOpenGLFramebufferObject(size, format)
def synchronize(self, item):
qDebug("Synchronizing")
def render(self):
qDebug("Render")
# Called with the FBO bound and the viewport set.
# ... Issue OpenGL commands.
class FBORenderItem(QQuickFramebufferObject):
def __init__(self, parent=None):
qDebug("Create fborenderitem")
super(FBORenderItem, self).__init__(parent)
def createRenderer(self):
qDebug("Create renderer")
return FbItemRenderer()
if __name__ == '__main__':
import sys
app = QGuiApplication(sys.argv)
qmlRegisterType(FBORenderItem, "Renderer", 1, 0, "FBORenderer")
view = QQuickView()
view.setSource(QUrl("main.qml"))
view.show()
sys.exit(app.exec_())
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment