1 /**
2  * Definition of IGraphics, which controls the UI from the host point of view.
3  *
4  * Copyright: Copyright Auburn Sounds 2015 and later.
5  * License:   $(LINK2 http://www.boost.org/LICENSE_1_0.txt, Boost License 1.0)
6  * Authors:   Guillaume Piolat
7  */
8 module dplug.client.graphics;
9 
10 import dplug.client.client;
11 import dplug.client.daw;
12 
13 enum GraphicsBackend
14 {
15     autodetect,
16     win32,
17     carbon,
18     cocoa,
19     x11
20 }
21 
22 /// Plugin GUI
23 interface IGraphics
24 {
25 nothrow:
26 @nogc:
27     /// Create an UI, return a system-specific handle for the window/view
28     abstract void* openUI(void* parentInfo, void* controlInfo, DAW daw, GraphicsBackend backend);
29     abstract void closeUI();
30     abstract void getGUISize(int* width, int* height);
31 }
32