1 /* Copyright  (C) 2010-2020 The RetroArch team
2  *
3  * ---------------------------------------------------------------------------------------
4  * The following license statement only applies to this file (gl_capabilities.h).
5  * ---------------------------------------------------------------------------------------
6  *
7  * Permission is hereby granted, free of charge,
8  * to any person obtaining a copy of this software and associated documentation files (the "Software"),
9  * to deal in the Software without restriction, including without limitation the rights to
10  * use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software,
11  * and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
12  *
13  * The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
14  *
15  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED,
16  * INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17  * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
18  * IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
19  * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20  * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
21  */
22 
23 #ifndef _GL_CAPABILITIES_H
24 #define _GL_CAPABILITIES_H
25 
26 #include <boolean.h>
27 #include <retro_common_api.h>
28 
29 RETRO_BEGIN_DECLS
30 
31 enum gl_capability_enum
32 {
33    GL_CAPS_NONE = 0,
34    GL_CAPS_EGLIMAGE,
35    GL_CAPS_SYNC,
36    GL_CAPS_MIPMAP,
37    GL_CAPS_VAO,
38    GL_CAPS_FBO,
39    GL_CAPS_ARGB8,
40    GL_CAPS_DEBUG,
41    GL_CAPS_PACKED_DEPTH_STENCIL,
42    GL_CAPS_ES2_COMPAT,
43    GL_CAPS_UNPACK_ROW_LENGTH,
44    GL_CAPS_FULL_NPOT_SUPPORT,
45    GL_CAPS_SRGB_FBO,
46    GL_CAPS_SRGB_FBO_ES3,
47    GL_CAPS_FP_FBO,
48    GL_CAPS_BGRA8888,
49    GL_CAPS_GLES3_SUPPORTED,
50    GL_CAPS_TEX_STORAGE,
51    GL_CAPS_TEX_STORAGE_EXT
52 };
53 
54 bool gl_query_core_context_in_use(void);
55 
56 void gl_query_core_context_set(bool set);
57 
58 void gl_query_core_context_unset(void);
59 
60 bool gl_query_extension(const char *ext);
61 
62 bool gl_check_error(char **error_string);
63 
64 bool gl_check_capability(enum gl_capability_enum enum_idx);
65 
66 RETRO_END_DECLS
67 
68 #endif
69