Browse Source

Initial support for OpenGL 4.4.

pull/278/head
Vladimír Vondruš 13 years ago
parent
commit
99c72ed99b
  1. 1
      Doxyfile
  2. 2
      doc/required-extensions.dox
  3. 2
      src/Buffer.h
  4. 12
      src/Context.cpp
  5. 1
      src/Context.h
  6. 10
      src/Extensions.h
  7. 1
      src/Platform/magnum-info.cpp
  8. 1
      src/Shader.cpp

1
Doxyfile

@ -216,6 +216,7 @@ ALIASES = \
"requires_gl41=@xrefitem requires-gl41 \"Requires OpenGL 4.1\" \"Functionality requiring OpenGL 4.1\"" \
"requires_gl42=@xrefitem requires-gl42 \"Requires OpenGL 4.2\" \"Functionality requiring OpenGL 4.2\"" \
"requires_gl43=@xrefitem requires-gl43 \"Requires OpenGL 4.3\" \"Functionality requiring OpenGL 4.3\"" \
"requires_gl44=@xrefitem requires-gl44 \"Requires OpenGL 4.4\" \"Functionality requiring OpenGL 4.4\"" \
"requires_extension=@xrefitem requires-extension \"Requires OpenGL extension\" \"Functionality requiring specific OpenGL extension\"" \
"extension{2}=<a href=\"http://www.opengl.org/registry/specs/\1/\2.txt\"><tt>\1_\2</tt></a>" \
"requires_gles30=@xrefitem requires-gles30 \"Requires OpenGL ES 3.0\" \"Functionality requiring OpenGL ES 3.0\"" \

2
doc/required-extensions.dox

@ -46,6 +46,7 @@ supported on Intel GPUs even if they are capable of OpenGL 2.1 only).
- @subpage requires-gl41
- @subpage requires-gl42
- @subpage requires-gl43
- @subpage requires-gl44
- @subpage requires-extension
- @subpage requires-gl
- @subpage requires-gles20
@ -61,6 +62,7 @@ supported on Intel GPUs even if they are capable of OpenGL 2.1 only).
@page requires-gl41 Functionality requiring OpenGL 4.1
@page requires-gl42 Functionality requiring OpenGL 4.2
@page requires-gl43 Functionality requiring OpenGL 4.3
@page requires-gl44 Functionality requiring OpenGL 4.4
@page requires-extension Functionality requiring specific OpenGL extension

2
src/Buffer.h

@ -119,7 +119,7 @@ OpenGL in order to preserve the data. If running on OpenGL ES or extension
@extension{ARB,invalidate_subdata} is not available, these functions do
nothing.
@todo Support for AMD's query buffer (@extension{AMD,query_buffer_object})
@todo Support for AMD/ARB's query buffer (@extension{AMD,query_buffer_object}, @extension{ARB,query_buffer_object})
@todo BindBufferRange/BindBufferOffset/BindBufferBase for transform feedback (3.0, @extension{EXT,transform_feedback})
*/
class MAGNUM_EXPORT Buffer {

12
src/Context.cpp

@ -61,6 +61,7 @@ Debug operator<<(Debug debug, Version value) {
_c(GL410, "OpenGL 4.1")
_c(GL420, "OpenGL 4.2")
_c(GL430, "OpenGL 4.3")
_c(GL440, "OpenGL 4.4")
#else
_c(GLES200, "OpenGL ES 2.0")
_c(GLES300, "OpenGL ES 3.0")
@ -195,6 +196,15 @@ const std::vector<Extension>& Extension::extensions(Version version) {
_extension(GL,ARB,texture_storage_multisample),
_extension(GL,ARB,texture_view),
_extension(GL,ARB,vertex_attrib_binding)};
static const std::vector<Extension> extensions440{
_extension(GL,ARB,buffer_storage),
_extension(GL,ARB,clear_texture),
_extension(GL,ARB,enhanced_layouts),
_extension(GL,ARB,multi_bind),
_extension(GL,ARB,query_buffer_object),
_extension(GL,ARB,texture_mirror_clamp_to_edge),
_extension(GL,ARB,texture_stencil8),
_extension(GL,ARB,vertex_type_10f_11f_11f_rev)};
#undef _extension
#else
static const std::vector<Extension> extensions{
@ -271,6 +281,7 @@ const std::vector<Extension>& Extension::extensions(Version version) {
case Version::GL420: return extensions420;
/* case Version::GLES300: */
case Version::GL430: return extensions430;
case Version::GL440: return extensions440;
#else
case Version::GLES200: return empty;
case Version::GLES300: return extensionsES300;
@ -322,6 +333,7 @@ Context::Context() {
Version::GL410,
Version::GL420,
Version::GL430,
Version::GL440,
#else
Version::GLES200,
Version::GLES300,

1
src/Context.h

@ -59,6 +59,7 @@ enum class Version: Int {
GL410 = 410, /**< @brief OpenGL 4.1, GLSL 4.10 */
GL420 = 420, /**< @brief OpenGL 4.2, GLSL 4.20 */
GL430 = 430, /**< @brief OpenGL 4.3, GLSL 4.30 */
GL440 = 440, /**< @brief OpenGL 4.4, GLSL 4.40 */
#endif
/**

10
src/Extensions.h

@ -153,6 +153,14 @@ namespace GL {
_extension(GL,ARB,texture_buffer_range, GL210, GL430) // #139
_extension(GL,ARB,texture_query_levels, GL300, GL430) // #140
_extension(GL,ARB,texture_storage_multisample, GL210, GL430) // #141
_extension(GL,ARB,buffer_storage, /*?*/ GL430, GL440) // #144
_extension(GL,ARB,clear_texture, GL210, GL440) // #145
_extension(GL,ARB,enhanced_layouts, GL310, GL440) // #146
_extension(GL,ARB,multi_bind, GL300, GL440) // #147
_extension(GL,ARB,query_buffer_object, GL210, GL440) // #148
_extension(GL,ARB,texture_mirror_clamp_to_edge, GL210, GL440) // #149
_extension(GL,ARB,texture_stencil8, GL210, GL440) // #150
_extension(GL,ARB,vertex_type_10f_11f_11f_rev, GL300, GL440) // #151
} namespace EXT {
_extension(GL,EXT,texture_filter_anisotropic, GL210, None) // #187
/* EXT_framebuffer_object, EXT_packed_depth_stencil, EXT_framebuffer_blit,
@ -181,7 +189,7 @@ namespace GL {
_extension(GL,NV,conditional_render, GL210, GL300) // #346
/* NV_draw_texture not supported */ // #430
}
/* IMPORTANT: if this line is > 188 (57 + size), don't forget to update array size in Context.h */
/* IMPORTANT: if this line is > 194 (67 + size), don't forget to update array size in Context.h */
#else
#line 1
namespace ANGLE {

1
src/Platform/magnum-info.cpp

@ -119,6 +119,7 @@ MagnumInfo::MagnumInfo(const Arguments& arguments): Platform::WindowlessApplicat
Version::GL410,
Version::GL420,
Version::GL430,
Version::GL440,
#else
Version::GLES200,
Version::GLES300,

1
src/Shader.cpp

@ -71,6 +71,7 @@ Shader::Shader(const Version version, const Type type): _type(type), _id(0) {
case Version::GL410: sources.push_back("#version 410\n"); return;
case Version::GL420: sources.push_back("#version 420\n"); return;
case Version::GL430: sources.push_back("#version 430\n"); return;
case Version::GL440: sources.push_back("#version 440\n"); return;
#else
case Version::GLES200: sources.push_back("#version 100\n"); return;
case Version::GLES300: sources.push_back("#version 300\n"); return;

Loading…
Cancel
Save