]> git.sesse.net Git - nageru/blob - mixer.h
Hook up display (via a separate RGBA texture) to the UI.
[nageru] / mixer.h
1 #ifndef _MIXER_H
2 #define _MIXER_H 1
3
4 #include "ref_counted_gl_sync.h"
5
6 class QSurface;
7 void start_mixer(QSurface *surface, QSurface *surface2, QSurface *surface3, QSurface *surface4);
8 void mixer_quit();
9
10 struct DisplayFrame {
11         GLuint texnum;
12         RefCountedGLsync ready_fence;  // Asserted when the texture is done rendering.
13 };
14 bool mixer_get_display_frame(DisplayFrame *frame);  // Implicitly frees the previous one if there's a new frame available.
15
16 typedef std::function<void()> new_frame_ready_callback_t;
17 void set_frame_ready_fallback(new_frame_ready_callback_t callback);
18
19 #endif  // !defined(_MIXER_H)