#ifndef MSP_GL_SL_FEATURES_H_
#define MSP_GL_SL_FEATURES_H_
-#include <msp/gl/extension.h>
+#include <msp/gl/backend.h>
namespace Msp {
namespace GL {
struct Features
{
- GLApi gl_api;
+ GraphicsApi target_api = OPENGL;
Version glsl_version;
- bool arb_explicit_attrib_location;
- bool arb_gpu_shader5;
- bool arb_uniform_buffer_object;
- bool ext_gpu_shader4;
- bool ext_texture_array;
+ bool arb_enhanced_layouts = false;
+ bool arb_explicit_attrib_location = false;
+ bool arb_explicit_uniform_location = false;
+ bool arb_gpu_shader5 = false;
+ bool arb_separate_shader_objects = false;
+ bool arb_uniform_buffer_object = false;
+ bool ext_gpu_shader4 = false;
+ bool ext_texture_array = false;
+ unsigned constant_id_range = 0x80000000U;
+ unsigned uniform_binding_range = 24;
+ unsigned texture_binding_range = 16;
- Features();
-
- static Features from_context();
- static Features all();
+ static Features from_api_version(GraphicsApi, const Version &);
+ static Features latest(GraphicsApi);
};
} // namespace SL