Browse Source

Added remaining non-core ARB/KHR extensions to the list.

pull/71/head
Vladimír Vondruš 12 years ago
parent
commit
1d8b0ba268
  1. 1
      Doxyfile
  2. 32
      doc/opengl-support.dox
  3. 20
      src/Magnum/Context.cpp
  4. 20
      src/Magnum/Extensions.h

1
Doxyfile

@ -262,6 +262,7 @@ ALIASES = \
"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>" \
"extension2{2}=<a href=\"http://www.opengl.org/registry/specs/\1/\1_\2.txt\"><tt>\1_\2</tt></a>" \
"extension3{3}=<a href=\"http://www.opengl.org/registry/specs/\1/\3.txt\"><tt>\1_\2</tt></a>" \
"requires_gles30=@xrefitem requires-gles30 \"Requires OpenGL ES 3.0\" \"Functionality requiring OpenGL ES 3.0\"" \
"requires_gles31=@xrefitem requires-gles31 \"Requires OpenGL ES 3.1\" \"Functionality requiring OpenGL ES 3.1\"" \
"requires_gl=@xrefitem requires-gl \"Requires desktop OpenGL\" \"Functionality requiring desktop OpenGL (not available in OpenGL ES)\"" \

32
doc/opengl-support.dox

@ -230,7 +230,26 @@ GLSL 4.50 | done
@extension{KHR,context_flush_control} (also in ES) | |
@extension{KHR,robustness} (also in ES) | |
@subsection opengl-support-extensions OpenGL extensions
@subsection opengl-support-extensions ARB / Khronos OpenGL extensions
%Extension | Status
------------------------------------------- | ------
@extension{ARB,robustness} | done
@extension3{KHR,texture_compression_astc_ldr,texture_compression_astc_hdr} (also in ES) | |
@extension{KHR,texture_compression_astc_hdr} (also in ES) | |
@extension{ARB,robustness_isolation} | |
@extension{ARB,bindless_texture} | |
@extension{ARB,compute_variable_group_size} | |
@extension{ARB,indirect_parameters} | |
@extension{ARB,seamless_cubemap_per_texture} | |
@extension{ARB,shader_draw_parameters} | done (shading language only)
@extension{ARB,shader_group_vote} | done (shading language only)
@extension{ARB,sparse_texture} | |
@extension{ARB,pipeline_statistics_query} | |
@extension{ARB,sparse_buffer} | |
@extension{ARB,transform_feedback_overflow_query} | |
@subsection opengl-support-extensions-vendor Vendor OpenGL extensions
@todo @extension{ARB,sparse_texture}, @extension{ARB,bindless_texture} + their vendor equivalents
@todo @extension{ATI,meminfo}, @extension{NVX,gpu_memory_info}, GPU temperature
@ -240,7 +259,6 @@ GLSL 4.50 | done
------------------------------------------- | ------
@extension{AMD,vertex_shader_layer} | done (shading language only)
@extension{AMD,shader_trinary_minmax} | done (shading language only)
@extension{ARB,robustness} | done
@extension{ATI,texture_mirror_once} | done (GL 4.4 subset)
@extension{EXT,texture_filter_anisotropic} (also in ES) | done
@extension{EXT,texture_mirror_clamp} | only GL 4.4 subset
@ -333,6 +351,7 @@ Only extensions not already listed in above tables are included here.
@es_extension{EXT,sRGB} | done
@es_extension{EXT,multisampled_render_to_texture} | only renderbuffer storage
@es_extension{EXT,robustness} | done
@es_extension{KHR,robust_buffer_access_behavior} | done (nothing to do)
@es_extension2{NV,read_buffer_front,NV_read_buffer} | done
@es_extension2{NV,read_depth,NV_read_depth_stencil} | done
@es_extension2{NV,read_stencil,NV_read_depth_stencil} | done
@ -380,7 +399,14 @@ add any performance gains, is not supported in %Magnum. See also
- Direct vertex data specification (as opposed to using buffers) is not
supported, as it encourages bad practices.
@subsection opengl-unsupported-extensions Unsupported extensions
@subsection opengl-unsupported-extensions Unsupported ARB / Khronos extensions
- @extension{ARB,shading_language_include} is overly complicated and
supported exclusively by NVidia
- @extension{ARB,cl_event} seems to be not supported anywhere
- @extension{ARB,shader_stencil_export} is supported exclusively by AMD
@subsection opengl-unsupported-extensions-vendor Unsupported vendor extensions
- @extension{INTEL,map_texture} negatively affects texture access
performance. Combination of buffer mapping and pixel buffers might be of

20
src/Magnum/Context.cpp

@ -62,6 +62,17 @@ const std::vector<Extension>& Extension::extensions(Version version) {
_extension(GL,AMD,vertex_shader_layer),
_extension(GL,AMD,shader_trinary_minmax),
_extension(GL,ARB,robustness),
_extension(GL,ARB,robustness_isolation),
_extension(GL,ARB,bindless_texture),
_extension(GL,ARB,compute_variable_group_size),
_extension(GL,ARB,indirect_parameters),
_extension(GL,ARB,seamless_cubemap_per_texture),
_extension(GL,ARB,shader_draw_parameters),
_extension(GL,ARB,shader_group_vote),
_extension(GL,ARB,sparse_texture),
_extension(GL,ARB,pipeline_statistics_query),
_extension(GL,ARB,sparse_buffer),
_extension(GL,ARB,transform_feedback_overflow_query),
_extension(GL,ATI,texture_mirror_once),
_extension(GL,EXT,texture_filter_anisotropic),
_extension(GL,EXT,texture_mirror_clamp),
@ -70,7 +81,9 @@ const std::vector<Extension>& Extension::extensions(Version version) {
_extension(GL,EXT,shader_integer_mix),
_extension(GL,EXT,debug_label),
_extension(GL,EXT,debug_marker),
_extension(GL,GREMEDY,string_marker)};
_extension(GL,GREMEDY,string_marker),
_extension(GL,KHR,texture_compression_astc_ldr),
_extension(GL,KHR,texture_compression_astc_hdr)};
static const std::vector<Extension> extensions300{
_extension(GL,ARB,map_buffer_range),
_extension(GL,ARB,color_buffer_float),
@ -217,9 +230,12 @@ const std::vector<Extension>& Extension::extensions(Version version) {
_extension(GL,EXT,sRGB),
_extension(GL,EXT,multisampled_render_to_texture),
_extension(GL,EXT,robustness),
_extension(GL,KHR,texture_compression_astc_ldr),
_extension(GL,KHR,texture_compression_astc_hdr),
_extension(GL,KHR,debug),
_extension(GL,KHR,context_flush_control),
_extension(GL,KHR,robustness),
_extension(GL,KHR,robust_buffer_access_behavior),
_extension(GL,KHR,context_flush_control),
_extension(GL,NV,read_buffer_front),
_extension(GL,NV,read_depth),
_extension(GL,NV,read_stencil),

20
src/Magnum/Extensions.h

@ -145,6 +145,7 @@ namespace GL {
_extension(GL,ARB,copy_image, GL210, GL430) // #123
_extension(GL,ARB,texture_view, GL210, GL430) // #124
_extension(GL,ARB,vertex_attrib_binding, GL210, GL430) // #125
_extension(GL,ARB,robustness_isolation, GL210, None) // #126
_extension(GL,ARB,ES3_compatibility, GL330, GL430) // #127
_extension(GL,ARB,explicit_uniform_location, GL210, GL430) // #128
_extension(GL,ARB,fragment_layer_viewport, GL300, GL430) // #129
@ -168,6 +169,13 @@ namespace GL {
_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
_extension(GL,ARB,bindless_texture, GL400, None) // #152
_extension(GL,ARB,compute_variable_group_size, GL420, None) // #153
_extension(GL,ARB,indirect_parameters, GL420, None) // #154
_extension(GL,ARB,seamless_cubemap_per_texture, GL320, None) // #155
_extension(GL,ARB,shader_draw_parameters, GL310, None) // #156
_extension(GL,ARB,shader_group_vote, GL420, None) // #157
_extension(GL,ARB,sparse_texture, GL210, None) // #158
_extension(GL,ARB,ES3_1_compatibility, GL440, GL450) // #159
_extension(GL,ARB,clip_control, GL210, GL450) // #160
_extension(GL,ARB,conditional_render_inverted, GL300, GL450) // #161
@ -177,6 +185,9 @@ namespace GL {
_extension(GL,ARB,get_texture_sub_image, GL210, GL450) // #165
_extension(GL,ARB,shader_texture_image_samples, GL430, GL450) // #166
_extension(GL,ARB,texture_barrier, GL210, GL450) // #167
_extension(GL,ARB,pipeline_statistics_query, GL300, None) // #171
_extension(GL,ARB,sparse_buffer, GL210, None) // #172
_extension(GL,ARB,transform_feedback_overflow_query, GL300, None) // #173
} namespace ATI {
_extension(GL,ATI,texture_mirror_once, GL210, None) // #221
} namespace EXT {
@ -201,9 +212,9 @@ namespace GL {
_extension(GL,EXT,debug_marker, GL210, None) // #440
} namespace GREMEDY {
_extension(GL,GREMEDY,string_marker, GL210, None) // #311
} namespace INTEL {
/* INTEL_map_texture not supported */ // #429
} namespace KHR {
_extension(GL,KHR,texture_compression_astc_ldr, GL210, None) // #118
_extension(GL,KHR,texture_compression_astc_hdr, GL210, None) // #118
_extension(GL,KHR,debug, GL210, GL430) // #119
_extension(GL,KHR,context_flush_control, GL210, GL450) // #168
_extension(GL,KHR,robustness, GL320, GL450) // #170
@ -213,7 +224,7 @@ namespace GL {
_extension(GL,NV,conditional_render, GL210, GL300) // #346
/* NV_draw_texture not supported */ // #430
}
/* IMPORTANT: if this line is > 226 (66 + size), don't forget to update array size in Context.h */
/* IMPORTANT: if this line is > 233 (73 + size), don't forget to update array size in Context.h */
#else
#line 1
namespace ANGLE {
@ -279,8 +290,11 @@ namespace GL {
_extension(GL,EXT,shader_integer_mix, GLES300, None) // #161
#endif
} namespace KHR {
_extension(GL,KHR,texture_compression_astc_ldr, GLES200, None) // #117
_extension(GL,KHR,texture_compression_astc_hdr, GLES200, None) // #117
_extension(GL,KHR,debug, GLES200, None) // #118
_extension(GL,KHR,robustness, GLES200, None) // #170
_extension(GL,KHR,robust_buffer_access_behavior, GLES200, None) // #189
_extension(GL,KHR,context_flush_control, GLES200, None) // #191
} namespace NV {
#ifdef MAGNUM_TARGET_GLES2

Loading…
Cancel
Save