summaryrefslogtreecommitdiffstats
path: root/src/imports/nativemedia/main.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/imports/nativemedia/main.cpp')
-rw-r--r--src/imports/nativemedia/main.cpp55
1 files changed, 55 insertions, 0 deletions
diff --git a/src/imports/nativemedia/main.cpp b/src/imports/nativemedia/main.cpp
new file mode 100644
index 0000000..66775f6
--- /dev/null
+++ b/src/imports/nativemedia/main.cpp
@@ -0,0 +1,55 @@
+#include <QtGui>
+
+void initializeOMX();
+void render(QOpenGLContext *context, QWindow *surface);
+
+class Renderer : public QObject
+{
+ Q_OBJECT
+public:
+ Renderer(QWindow *surface)
+ : surface(surface)
+ {
+ context = new QOpenGLContext;
+
+ context->create();
+ context->makeCurrent(surface);
+
+ initializeOMX();
+ qDebug() << "OMX initialized";
+ }
+
+public slots:
+ void render() {
+ ::render(context, surface);
+ }
+
+public:
+ QWindow *surface;
+ QOpenGLContext *context;
+} *renderer;
+
+void triggerRender()
+{
+ QTimer::singleShot(0, renderer, SLOT(render()));
+}
+
+int main(int argc, char *argv[])
+{
+ QGuiApplication app(argc, argv);
+
+ QScreen *screen = QGuiApplication::primaryScreen();
+
+ qDebug() << "Screen geometry:" << screen->geometry();
+
+ QWindow window;
+ window.setSurfaceType(QWindow::OpenGLSurface);
+ window.setGeometry(screen->geometry());
+ window.show();
+
+ renderer = new Renderer(&window);
+
+ return app.exec();
+}
+
+#include "main.moc"