iPlug2 - C++ Audio Plug-in Framework
IGraphics_select.h
Go to the documentation of this file.
1 /*
2  ==============================================================================
3 
4  This file is part of the iPlug 2 library. Copyright (C) the iPlug 2 developers.
5 
6  See LICENSE.txt for more info.
7 
8  ==============================================================================
9 */
10 
16 #if !defined DOXYGEN_SHOULD_SKIP_THIS
17 
18  #if defined IGRAPHICS_GLES2
19  #define IGRAPHICS_GL
20  #if defined OS_IOS
21  #include <OpenGLES/ES2/gl.h>
22  #elif defined OS_WEB
23  #include <GLES2/gl2.h>
24  #endif
25  #elif defined IGRAPHICS_GLES3
26  #define IGRAPHICS_GL
27  #if defined OS_IOS
28  #include <OpenGLES/ES3/gl.h>
29  #elif defined OS_WEB
30  #include <GLES3/gl3.h>
31  #endif
32  #elif defined IGRAPHICS_GL2 || defined IGRAPHICS_GL3
33  #define IGRAPHICS_GL
34  #if defined OS_WIN
35  #include <glad/glad.h>
36  #elif defined OS_MAC
37  #if defined IGRAPHICS_GL2
38  #include <OpenGL/gl.h>
39  #elif defined IGRAPHICS_GL3
40  #include <OpenGL/gl3.h>
41  #endif
42  #else
43  #include <OpenGL/gl.h>
44  #endif
45  #endif
46 
47  #if defined IGRAPHICS_NANOVG
48  #include "IGraphicsNanoVG.h"
49  #define IGRAPHICS_DRAW_CLASS_TYPE IGraphicsNanoVG
50  #elif defined IGRAPHICS_SKIA
51  #include "IGraphicsSkia.h"
52  #define IGRAPHICS_DRAW_CLASS_TYPE IGraphicsSkia
53  #elif defined IGRAPHICS_CANVAS
54  #include "IGraphicsCanvas.h"
55  #define IGRAPHICS_DRAW_CLASS_TYPE IGraphicsCanvas
56  #if defined IGRAPHICS_GL || defined IGRAPHICS_METAL
57  #error When using IGRAPHICS_CANVAS, don't define IGRAPHICS_METAL or IGRAPHICS_GL*
58  #endif
59  #else
60  #error NO IGRAPHICS_MODE defined
61  #endif
62 #endif
63 
64 BEGIN_IPLUG_NAMESPACE
65 BEGIN_IGRAPHICS_NAMESPACE
66 using IGRAPHICS_DRAW_CLASS = IGRAPHICS_DRAW_CLASS_TYPE;
67 END_IGRAPHICS_NAMESPACE
68 END_IPLUG_NAMESPACE
69 
70 #if defined IGRAPHICS_IMGUI
71  #include "imgui.h"
72 #endif