diff options
Diffstat (limited to 'src/imports/nativemedia/main.cpp')
-rw-r--r-- | src/imports/nativemedia/main.cpp | 55 |
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" |