#ifndef MSP_GL_DEVICEINFO_H_
#define MSP_GL_DEVICEINFO_H_
+#include "glsl/features.h"
+
namespace Msp {
namespace GL {
+/**
+Contains information about various limits imposed by the graphics device.
+*/
struct Limits
{
- unsigned max_vertex_attributes;
- unsigned max_texture_bindings;
- unsigned max_uniform_bindings;
- unsigned max_clip_planes;
- unsigned max_samples;
- unsigned uniform_buffer_alignment;
+ unsigned max_clip_planes = 6;
+ unsigned max_vertex_attributes = 16;
+ unsigned max_texture_bindings = 16;
+ unsigned max_color_attachments = 8;
+ unsigned max_samples = 4;
+ unsigned max_uniform_bindings = 24;
+ unsigned uniform_buffer_alignment = 256;
+ float max_anisotropy = 1.0f;
Limits();
+};
+
+/**
+Contains information about a graphics device.
+*/
+struct DeviceInfo
+{
+ Limits limits;
+ SL::Features glsl_features;
+
+ DeviceInfo();
- static const Limits &get_global();
+ /** Returns information for the device currently in use. */
+ static const DeviceInfo &get_global();
};
} // namespace GL