X-Git-Url: http://git.tdb.fi/?a=blobdiff_plain;f=source%2Fcore%2Fdeviceinfo.h;h=a95841197a9c604585ec82aed8b039cbff25438e;hb=df9119a9bf2d348a513c515ed92953353da97b54;hp=1eb120ff2ec509921ed2dfa84fbcbce92393953d;hpb=6353307898cd397e2bcde13e2448a8a678a60004;p=libs%2Fgl.git diff --git a/source/core/deviceinfo.h b/source/core/deviceinfo.h index 1eb120ff..a9584119 100644 --- a/source/core/deviceinfo.h +++ b/source/core/deviceinfo.h @@ -1,22 +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_color_attachments; + 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