Browse Source

Doc: fixed a few issues with OpenGL ES extensions.

pull/7/head
Vladimír Vondruš 14 years ago
parent
commit
3f727b4abc
  1. 8
      src/AbstractImage.h
  2. 21
      src/AbstractTexture.h
  3. 2
      src/DefaultFramebuffer.h
  4. 3
      src/IndexedMesh.h
  5. 10
      src/Mesh.h
  6. 2
      src/Renderbuffer.h

8
src/AbstractImage.h

@ -111,9 +111,9 @@ class MAGNUM_EXPORT AbstractImage {
/** /**
* Floating-point BGRA. * Floating-point BGRA.
* @requires_es_extension %Extension @es_extension{EXT,read_format_bgra}, * @requires_es_extension %Extension @es_extension{EXT,read_format_bgra}
* for framebuffer reading, extension @es_extension{APPLE,texture_format_BGRA8888} * for framebuffer reading, extension @es_extension{APPLE,texture_format_BGRA8888} or
* for texture data. * @es_extension{EXT,texture_format_BGRA8888} for texture data.
*/ */
#ifndef MAGNUM_TARGET_GLES #ifndef MAGNUM_TARGET_GLES
BGRA = GL_BGRA, BGRA = GL_BGRA,
@ -268,7 +268,7 @@ class MAGNUM_EXPORT AbstractImage {
/** /**
* Each component half float. For framebuffer reading only. * Each component half float. For framebuffer reading only.
* @requires_gl30 %Extension @extension{NV,half_float} / @extension{ARB,half_float_pixel} * @requires_gl30 %Extension @extension{NV,half_float} / @extension{ARB,half_float_pixel}
* @requires_gles30 %Extension @es_extension{OES,texture_float}, * @requires_gles30 %Extension @es_extension2{OES,texture_half_float,OES_texture_float},
* for texture data only. * for texture data only.
*/ */
#ifndef MAGNUM_TARGET_GLES2 #ifndef MAGNUM_TARGET_GLES2

21
src/AbstractTexture.h

@ -72,7 +72,17 @@ class MAGNUM_EXPORT AbstractTexture {
*/ */
enum class Filter: GLint { enum class Filter: GLint {
NearestNeighbor = GL_NEAREST, /**< Nearest neighbor filtering */ NearestNeighbor = GL_NEAREST, /**< Nearest neighbor filtering */
LinearInterpolation = GL_LINEAR /**< Linear interpolation filtering */
/**
* Linear interpolation filtering.
* @requires_gles30 %Extension @es_extension{OES,texture_float_linear} /
* @es_extension2{OES,texture_half_float_linear,OES_texture_float_linear}
* for linear interpolation of textures with
* @ref Magnum::AbstractTexture::InternalFormat "InternalFormat::HalfFloat"
* / @ref Magnum::AbstractTexture::InternalFormat "InternalFormat::Float"
* in OpenGL ES 2.0.
*/
LinearInterpolation = GL_LINEAR
}; };
/** /**
@ -91,6 +101,12 @@ class MAGNUM_EXPORT AbstractTexture {
/** /**
* Linear interpolation of nearest mip levels. **Unavailable on * Linear interpolation of nearest mip levels. **Unavailable on
* rectangle textures.** * rectangle textures.**
* @requires_gles30 %Extension @es_extension{OES,texture_float_linear} /
* @es_extension2{OES,texture_half_float_linear,OES_texture_float_linear}
* for linear interpolation of textures with
* @ref Magnum::AbstractTexture::InternalFormat "InternalFormat::HalfFloat"
* / @ref Magnum::AbstractTexture::InternalFormat "InternalFormat::Float"
* in OpenGL ES 2.0.
*/ */
LinearInterpolation = GL_NEAREST_MIPMAP_LINEAR & ~GL_NEAREST LinearInterpolation = GL_NEAREST_MIPMAP_LINEAR & ~GL_NEAREST
}; };
@ -622,6 +638,7 @@ class MAGNUM_EXPORT AbstractTexture {
/** /**
* RGB, each component normalized unsigned 10bit. * RGB, each component normalized unsigned 10bit.
* @requires_es_extension %Extension @es_extension{OES,required_internalformat} * @requires_es_extension %Extension @es_extension{OES,required_internalformat}
* and @es_extension{EXT,texture_type_2_10_10_10_REV}
*/ */
#ifndef MAGNUM_TARGET_GLES #ifndef MAGNUM_TARGET_GLES
RGB10 = GL_RGB10, RGB10 = GL_RGB10,
@ -904,7 +921,7 @@ class MAGNUM_EXPORT AbstractTexture {
/** /**
* Depth component, 32bit. * Depth component, 32bit.
* @requires_es_extension %Extension @es_extension{OES,required_internalformat}, * @requires_es_extension %Extension @es_extension{OES,required_internalformat},
* @es_extension{OES,depth_texture} and @es_extension{OES,depth24} * @es_extension{OES,depth_texture} and @es_extension{OES,depth32}
*/ */
#ifndef MAGNUM_TARGET_GLES2 #ifndef MAGNUM_TARGET_GLES2
DepthComponent32 = GL_DEPTH_COMPONENT32, DepthComponent32 = GL_DEPTH_COMPONENT32,

2
src/DefaultFramebuffer.h

@ -186,7 +186,7 @@ class MAGNUM_EXPORT DefaultFramebuffer: public AbstractFramebuffer {
/** /**
* Read from front framebuffer. * Read from front framebuffer.
* @requires_es_extension %Extension @es_extension2{NV,read_buffer,GL_NV_read_buffer} * @requires_es_extension %Extension @es_extension2{NV,read_buffer_front,GL_NV_read_buffer}
*/ */
Front = GL_FRONT Front = GL_FRONT

3
src/IndexedMesh.h

@ -62,7 +62,8 @@ From user point-of-view the operation is the same as for
@section IndexedMesh-performance-optimization Performance optimizations @section IndexedMesh-performance-optimization Performance optimizations
If @extension{APPLE,vertex_array_object} is supported, next to If @extension{APPLE,vertex_array_object}, OpenGL ES 3.0 or
@es_extension{OES,vertex_array_object} on OpenGL ES 2.0 is supported, next to
@ref Mesh-performance-optimization "optimizations in Mesh itself" the index @ref Mesh-performance-optimization "optimizations in Mesh itself" the index
buffer is bound on object construction instead of binding it in every draw() buffer is bound on object construction instead of binding it in every draw()
call. call.

10
src/Mesh.h

@ -102,10 +102,11 @@ for more infromation) and call Mesh::draw().
@section Mesh-performance-optimization Performance optimizations @section Mesh-performance-optimization Performance optimizations
If @extension{APPLE,vertex_array_object} is supported, VAOs are used instead If @extension{APPLE,vertex_array_object}, OpenGL ES 3.0 or
of binding the buffers and specifying vertex attribute pointers in each @es_extension{OES,vertex_array_object} on OpenGL ES 2.0 is supported, VAOs are
draw() call. The engine tracks currently bound VAO to avoid unnecessary calls used instead of binding the buffers and specifying vertex attribute pointers
to @fn_gl{BindVertexArray}. in each draw() call. The engine tracks currently bound VAO to avoid
unnecessary calls to @fn_gl{BindVertexArray}.
If extension @extension{EXT,direct_state_access} and VAOs are available, If extension @extension{EXT,direct_state_access} and VAOs are available,
DSA functions are used for specifying attribute locations to avoid unnecessary DSA functions are used for specifying attribute locations to avoid unnecessary
@ -113,6 +114,7 @@ calls to @fn_gl{BindBuffer} and @fn_gl{BindVertexArray}. See documentation of
addVertexBuffer(), addInterleavedVertexBuffer(), addVertexBufferStride() for addVertexBuffer(), addInterleavedVertexBuffer(), addVertexBufferStride() for
more information. more information.
@see IndexedMesh
@todo Support for indirect draw buffer (OpenGL 4.0, @extension{ARB,draw_indirect}) @todo Support for indirect draw buffer (OpenGL 4.0, @extension{ARB,draw_indirect})
@todo Redo in a way that allows glMultiDrawArrays, glDrawArraysInstanced etc. @todo Redo in a way that allows glMultiDrawArrays, glDrawArraysInstanced etc.
@todo Allow unbinding all vertex buffers with some function (not as side effect), @todo Allow unbinding all vertex buffers with some function (not as side effect),

2
src/Renderbuffer.h

@ -117,7 +117,7 @@ class MAGNUM_EXPORT Renderbuffer {
/** /**
* RGBA, each component normalized unsigned byte. * RGBA, each component normalized unsigned byte.
* @requires_gles30 %Extension @es_extension{ARM,rgba8} or * @requires_gles30 %Extension @es_extension{ARM,rgba8} or
* @es_extension{OES,required_internalformat} and @es_extension{OES,rgb8_rgba8} * @es_extension{OES,rgb8_rgba8}
*/ */
#ifndef MAGNUM_TARGET_GLES2 #ifndef MAGNUM_TARGET_GLES2
RGBA8 = GL_RGBA8, RGBA8 = GL_RGBA8,

Loading…
Cancel
Save