X-Git-Url: http://git.tdb.fi/?p=libs%2Fgl.git;a=blobdiff_plain;f=source%2Fcore%2Fdeviceinfo.h;h=a95841197a9c604585ec82aed8b039cbff25438e;hp=9ea239b17402d5afda4654d3dd7063d328ac3cc6;hb=fb04f4ef9162f58f494cf4323cf3dc66b2f3d4ac;hpb=2d3113a7dbbe4be2f1d1e8980c1c4e42175163da diff --git a/source/core/deviceinfo.h b/source/core/deviceinfo.h index 9ea239b1..a9584119 100644 --- a/source/core/deviceinfo.h +++ b/source/core/deviceinfo.h @@ -1,21 +1,40 @@ #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