|
|
|
|
/*
|
|
|
|
|
This file is part of Magnum.
|
|
|
|
|
|
|
|
|
|
Copyright © 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017
|
|
|
|
|
Vladimír Vondruš <mosra@centrum.cz>
|
|
|
|
|
|
|
|
|
|
Permission is hereby granted, free of charge, to any person obtaining a
|
|
|
|
|
copy of this software and associated documentation files (the "Software"),
|
|
|
|
|
to deal in the Software without restriction, including without limitation
|
|
|
|
|
the rights to use, copy, modify, merge, publish, distribute, sublicense,
|
|
|
|
|
and/or sell copies of the Software, and to permit persons to whom the
|
|
|
|
|
Software is furnished to do so, subject to the following conditions:
|
|
|
|
|
|
|
|
|
|
The above copyright notice and this permission notice shall be included
|
|
|
|
|
in all copies or substantial portions of the Software.
|
|
|
|
|
|
|
|
|
|
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
|
|
|
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
|
|
|
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
|
|
|
|
|
THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
|
|
|
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
|
|
|
|
|
FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
|
|
|
|
|
DEALINGS IN THE SOFTWARE.
|
|
|
|
|
*/
|
|
|
|
|
|
|
|
|
|
/** @page opengl OpenGL
|
|
|
|
|
@brief State of OpenGL support, version and extension requirements.
|
|
|
|
|
|
|
|
|
|
The following table maps OpenGL function names to Magnum API, useful for
|
|
|
|
|
developers with existing OpenGL background. Note that, as reverse mapping, each
|
|
|
|
|
function documentation also contains list of OpenGL functions used.
|
|
|
|
|
|
|
|
|
|
- @subpage opengl-mapping
|
|
|
|
|
|
|
|
|
|
State of implementation of particular OpenGL versions and extensions is in the
|
|
|
|
|
following table.
|
|
|
|
|
|
|
|
|
|
- @subpage opengl-support
|
|
|
|
|
|
|
|
|
|
@section opengl-required-extensions Version and extension requirements
|
|
|
|
|
|
|
|
|
|
The engine requires at least OpenGL 2.1 or OpenGL ES 2.0, but some specific
|
|
|
|
|
functionality has greater requirements. Following are lists of features
|
|
|
|
|
requiring specific OpenGL version. In most cases it is also specified which
|
|
|
|
|
extension is required, so if given hardware supports required extension, it
|
|
|
|
|
doesn't need to have required OpenGL version too (e.g. @extension{ARB,vertex_array_object}
|
|
|
|
|
is supported on older Intel GPUs even if they are capable of OpenGL 2.1 only).
|
|
|
|
|
|
|
|
|
|
- @subpage requires-gl30
|
|
|
|
|
- @subpage requires-gl31
|
|
|
|
|
- @subpage requires-gl32
|
|
|
|
|
- @subpage requires-gl33
|
|
|
|
|
- @subpage requires-gl40
|
|
|
|
|
- @subpage requires-gl41
|
|
|
|
|
- @subpage requires-gl42
|
|
|
|
|
- @subpage requires-gl43
|
|
|
|
|
- @subpage requires-gl44
|
|
|
|
|
- @subpage requires-gl45
|
|
|
|
|
- @subpage requires-extension
|
|
|
|
|
- @subpage requires-gl
|
|
|
|
|
- @subpage requires-gles20
|
|
|
|
|
- @subpage requires-gles30
|
|
|
|
|
- @subpage requires-gles31
|
|
|
|
|
- @subpage requires-es-extension
|
|
|
|
|
- @subpage requires-gles
|
|
|
|
|
- @subpage requires-webgl20
|
|
|
|
|
- @subpage requires-webgl-extension
|
|
|
|
|
|
|
|
|
|
@see @ref building, @ref cmake, @ref MAGNUM_TARGET_GLES,
|
|
|
|
|
@ref MAGNUM_TARGET_GLES2
|
|
|
|
|
|
|
|
|
|
@page requires-gl30 Functionality requiring OpenGL 3.0
|
|
|
|
|
@page requires-gl31 Functionality requiring OpenGL 3.1
|
|
|
|
|
@page requires-gl32 Functionality requiring OpenGL 3.2
|
|
|
|
|
@page requires-gl33 Functionality requiring OpenGL 3.3
|
|
|
|
|
@page requires-gl40 Functionality requiring OpenGL 4.0
|
|
|
|
|
@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-gl45 Functionality requiring OpenGL 4.5
|
|
|
|
|
|
|
|
|
|
@page requires-extension Functionality requiring specific OpenGL extension
|
|
|
|
|
|
|
|
|
|
@page requires-gl Functionality requiring desktop OpenGL
|
|
|
|
|
|
|
|
|
|
The following symbols are not defined when targeting OpenGL ES or WebGL.
|
|
|
|
|
|
|
|
|
|
@see @ref MAGNUM_TARGET_GLES
|
|
|
|
|
|
|
|
|
|
@page requires-gles20 Functionality requiring OpenGL ES 2.0 or WebGL 1.0
|
|
|
|
|
|
|
|
|
|
The following symbols are not defined when targeting OpenGL ES 3.0, WebGL 2.0
|
|
|
|
|
or desktop OpenGL.
|
|
|
|
|
|
|
|
|
|
@see @ref MAGNUM_TARGET_GLES2
|
|
|
|
|
|
|
|
|
|
@page requires-gles30 Functionality requiring OpenGL ES 3.0
|
|
|
|
|
|
|
|
|
|
@see @ref MAGNUM_TARGET_GLES3
|
|
|
|
|
|
|
|
|
|
@page requires-gles31 Functionality requiring OpenGL ES 3.1
|
|
|
|
|
|
|
|
|
|
The following symbols are not defined when targeting OpenGL ES 2.0.
|
|
|
|
|
|
|
|
|
|
@page requires-es-extension Functionality requiring specific OpenGL ES extension
|
|
|
|
|
|
|
|
|
|
@page requires-gles Functionality requiring OpenGL ES or desktop OpenGL
|
|
|
|
|
|
|
|
|
|
The following symbols are not defined when targeting WebGL.
|
|
|
|
|
|
|
|
|
|
@see @ref MAGNUM_TARGET_WEBGL, @ref requires-gl
|
|
|
|
|
|
|
|
|
|
@page requires-webgl20 Functionality requiring WebGL 2.0
|
|
|
|
|
|
|
|
|
|
@page requires-webgl-extension Functionality requiring specific WebGL extension
|
|
|
|
|
|
|
|
|
|
*/
|