]> git.tdb.fi Git - libs/gl.git/blob - source/glsl/features.cpp
Add a standalone GLSL compiler frontend
[libs/gl.git] / source / glsl / features.cpp
1 #include <msp/gl/extensions/arb_explicit_attrib_location.h>
2 #include <msp/gl/extensions/arb_gpu_shader5.h>
3 #include <msp/gl/extensions/arb_uniform_buffer_object.h>
4 #include <msp/gl/extensions/ext_gpu_shader4.h>
5 #include <msp/gl/extensions/ext_texture_array.h>
6 #include "features.h"
7
8 namespace Msp {
9 namespace GL {
10 namespace SL {
11
12 Features::Features():
13         gl_api(OPENGL),
14         arb_explicit_attrib_location(false),
15         arb_gpu_shader5(false),
16         arb_uniform_buffer_object(false),
17         ext_gpu_shader4(false),
18         ext_texture_array(false)
19 { }
20
21 Features Features::from_context()
22 {
23         Features features;
24         features.gl_api = get_gl_api();
25         features.glsl_version = get_glsl_version();
26         features.arb_explicit_attrib_location = ARB_explicit_attrib_location;
27         features.arb_gpu_shader5 = ARB_gpu_shader5;
28         //features.arb_texture_cube_map_array = ARB_texture_cube_map_array;
29         features.arb_uniform_buffer_object = ARB_uniform_buffer_object;
30         features.ext_gpu_shader4 = EXT_gpu_shader4;
31         features.ext_texture_array = EXT_texture_array;
32         return features;
33 }
34
35 Features Features::all()
36 {
37         Features features;
38         features.gl_api = OPENGL;
39         features.glsl_version = Version(4, 60);
40         features.arb_explicit_attrib_location = true;
41         features.arb_gpu_shader5 = true;
42         features.arb_uniform_buffer_object = true;
43         features.ext_gpu_shader4 = true;
44         features.ext_texture_array = true;
45         return features;
46 }
47
48 } // namespace SL
49 } // namespace GL
50 } // namespace Msp