DISTRHO Plugin Framework
OpenGL-include.hpp
1 /*
2  * DISTRHO Plugin Framework (DPF)
3  * Copyright (C) 2012-2021 Filipe Coelho <falktx@falktx.com>
4  *
5  * Permission to use, copy, modify, and/or distribute this software for any purpose with
6  * or without fee is hereby granted, provided that the above copyright notice and this
7  * permission notice appear in all copies.
8  *
9  * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH REGARD
10  * TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN
11  * NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL
12  * DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER
13  * IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN
14  * CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
15  */
16 
17 #ifndef DGL_OPENGL_INCLUDE_HPP_INCLUDED
18 #define DGL_OPENGL_INCLUDE_HPP_INCLUDED
19 
20 #include "../distrho/src/DistrhoDefines.h"
21 
22 // --------------------------------------------------------------------------------------------------------------------
23 // Fix OpenGL includes for Windows, based on glfw code (part 1)
24 
25 #undef DGL_WINGDIAPI_DEFINED
26 
27 #ifdef DISTRHO_OS_WINDOWS
28 
29 #ifndef WINAPI
30 # define WINAPI __stdcall
31 #endif
32 
33 #ifndef APIENTRY
34 # define APIENTRY WINAPI
35 #endif // APIENTRY
36 
37 /* We need WINGDIAPI defined */
38 #ifndef WINGDIAPI
39 # if defined(_MSC_VER) || defined(__BORLANDC__) || defined(__POCC__)
40 # define WINGDIAPI __declspec(dllimport)
41 # elif defined(__LCC__)
42 # define WINGDIAPI __stdcall
43 # else
44 # define WINGDIAPI extern
45 # endif
46 # define DGL_WINGDIAPI_DEFINED
47 #endif // WINGDIAPI
48 
49 #endif // DISTRHO_OS_WINDOWS
50 
51 // --------------------------------------------------------------------------------------------------------------------
52 // OpenGL includes
53 
54 #ifdef DISTRHO_OS_MAC
55 # ifdef DGL_USE_OPENGL3
56 # include <OpenGL/gl3.h>
57 # include <OpenGL/gl3ext.h>
58 # else
59 # include <OpenGL/gl.h>
60 # endif
61 #else
62 # ifndef DISTRHO_OS_WINDOWS
63 # define GL_GLEXT_PROTOTYPES
64 # endif
65 # ifndef __GLEW_H__
66 # include <GL/gl.h>
67 # include <GL/glext.h>
68 # endif
69 #endif
70 
71 // --------------------------------------------------------------------------------------------------------------------
72 // Missing OpenGL defines
73 
74 #if defined(GL_BGR_EXT) && !defined(GL_BGR)
75 # define GL_BGR GL_BGR_EXT
76 #endif
77 
78 #if defined(GL_BGRA_EXT) && !defined(GL_BGRA)
79 # define GL_BGRA GL_BGRA_EXT
80 #endif
81 
82 #ifndef GL_CLAMP_TO_BORDER
83 # define GL_CLAMP_TO_BORDER 0x812D
84 #endif
85 
86 // --------------------------------------------------------------------------------------------------------------------
87 // Fix OpenGL includes for Windows, based on glfw code (part 2)
88 
89 #ifdef DGL_WINGDIAPI_DEFINED
90 # undef WINGDIAPI
91 # undef DGL_WINGDIAPI_DEFINED
92 #endif
93 
94 // --------------------------------------------------------------------------------------------------------------------
95 
96 #endif