]> git.sesse.net Git - nageru/blobdiff - mixer.cpp
Set pixel format on contexts we create; fixes issues with Qt 5.5.1.
[nageru] / mixer.cpp
index 981c0cb4e38b699b7d6628b07d72ba58873aa2c0..d1a788bab2e483eebc45edbfdb8e9b4373f6f5f1 100644 (file)
--- a/mixer.cpp
+++ b/mixer.cpp
@@ -81,10 +81,9 @@ Mixer::Mixer(const QSurfaceFormat &format, unsigned num_cards)
 
        resource_pool.reset(new ResourcePool);
        theme.reset(new Theme("theme.lua", resource_pool.get(), num_cards));
-       output_channel[OUTPUT_LIVE].parent = this;
-       output_channel[OUTPUT_PREVIEW].parent = this;
-       output_channel[OUTPUT_INPUT0].parent = this;
-       output_channel[OUTPUT_INPUT1].parent = this;
+       for (unsigned i = 0; i < NUM_OUTPUTS; ++i) {
+               output_channel[i].parent = this;
+       }
 
        ImageFormat inout_format;
        inout_format.color_space = COLORSPACE_sRGB;
@@ -112,7 +111,7 @@ Mixer::Mixer(const QSurfaceFormat &format, unsigned num_cards)
                card->usb->set_dequeue_thread_callbacks(
                        [card]{
                                eglBindAPI(EGL_OPENGL_API);
-                               card->context = create_context();
+                               card->context = create_context(card->surface);
                                if (!make_current(card->context, card->surface)) {
                                        printf("failed to create bmusb context\n");
                                        exit(1);
@@ -330,7 +329,7 @@ void Mixer::bm_frame(unsigned card_index, uint16_t timecode,
 void Mixer::thread_func()
 {
        eglBindAPI(EGL_OPENGL_API);
-       QOpenGLContext *context = create_context();
+       QOpenGLContext *context = create_context(mixer_surface);
        if (!make_current(context, mixer_surface)) {
                printf("oops\n");
                exit(1);