]> git.sesse.net Git - nageru/blob - glwidget.cpp
Initial checkin.
[nageru] / glwidget.cpp
1 #include "context.h"
2 #include "glwidget.h"
3 #include "mixer.h"
4 #include <QCoreApplication>
5 #include <QGuiApplication>
6 #include <QThread>
7 #include <math.h>
8 #include <EGL/egl.h>
9 #include <GL/glx.h>
10 #include <thread>
11
12 GLWidget::GLWidget(QWidget *parent)
13     : QOpenGLWidget(parent)
14 {
15 }
16
17 GLWidget::~GLWidget()
18 {
19 }
20
21 QSize GLWidget::minimumSizeHint() const
22 {
23         return QSize(50, 50);
24 }
25
26 QSize GLWidget::sizeHint() const
27 {
28         return QSize(400, 400);
29 }
30
31 void GLWidget::initializeGL()
32 {
33         printf("egl=%p glx=%p\n", eglGetCurrentContext(), glXGetCurrentContext());
34         //printf("threads: %p %p\n", QThread::currentThread(), qGuiApp->thread());
35
36         QSurface *surface = create_surface(format());
37         QSurface *surface2 = create_surface(format());
38         QSurface *surface3 = create_surface(format());
39         QSurface *surface4 = create_surface(format());
40         std::thread([surface, surface2, surface3, surface4]{
41                 mixer_thread(surface, surface2, surface3, surface4);
42         }).detach();
43 }
44
45 void GLWidget::paintGL()
46 {
47         glClearColor(1.0f, 0.0f, 0.0f, 1.0f);
48         glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
49 }