Difference between revisions of "GraphicsFeature"

(Use the feature templates)
(Updated for 11.0)
Line 13: Line 13:
  
 
<code>multicanvasformats</code> is supported on OpenGL 3-capable desktop systems, and OpenGL ES 3-capable mobile devices.}}
 
<code>multicanvasformats</code> is supported on OpenGL 3-capable desktop systems, and OpenGL ES 3-capable mobile devices.}}
 +
 +
{{New feature|0.11.0|
 +
;glsl3: Whether GLSL 3 [[Shader]]s can be used.
 +
;instancing: Whether [[love.graphics.drawInstanced|mesh instancing]] is supported.
 +
;fullnpot: Whether textures with non-power-of-two dimensions can use [[Texture:setMipmapFilter|mipmapping]] and the 'repeat' [[WrapMode]].
 +
;pixelshaderhighp: Whether pixel shaders can use "highp" 32 bit floating point numbers (as opposed to just 16 bit or lower precision).
 +
shaderderivatives: Whether shaders can use the <code>dFdx</code>, <code>dFdy</code>, and <code>fwidth</code> functions for computing derivatives.
 +
 +
=== Notes ===
 +
<code>glsl3</code> and <code>instancing</code> are supported on OpenGL 3 and OpenGL ES 3-capable systems.
 +
 +
<code>instancing</code> is also supported on some older systems that don't support GLSL 3, but [[Mesh:attachAttribute|vertex attribute-based]] instancing must be used in that case (instead of <code>love_InstanceID</code> in a GLSL 3 shader).
 +
 +
<code>fullnpot</code>, <code>pixelshaderhighp</code>, and <code>shaderderivatives</code> are supported on all desktop systems and most mobile systems, except for some older OpenGL ES 2 devices.}}
  
 
{{Removed feature|0.10.0|
 
{{Removed feature|0.10.0|

Revision as of 02:40, 1 April 2018

Available since LÖVE 0.8.0
This enum is not supported in earlier versions.

Graphics features that can be checked for with love.graphics.getSupported.

Constants

Available since LÖVE 0.10.0
clampzero
Whether the "clampzero" WrapMode is supported.
lighten
Whether the "lighten" and "darken" BlendModes are supported.
multicanvasformats
Whether multiple Canvases with different formats can be used in the same love.graphics.setCanvas call.

Notes

clampzero is supported on all desktop systems, but only some mobile devices. If it's not supported and it's attempted to be set, the "clamp" wrap mode will automatically be used instead.

lighten is supported on all desktop systems, and OpenGL ES 3-capable mobile devices.

multicanvasformats is supported on OpenGL 3-capable desktop systems, and OpenGL ES 3-capable mobile devices.


Available since LÖVE 0.11.0
glsl3
Whether GLSL 3 Shaders can be used.
instancing
Whether mesh instancing is supported.
fullnpot
Whether textures with non-power-of-two dimensions can use mipmapping and the 'repeat' WrapMode.
pixelshaderhighp
Whether pixel shaders can use "highp" 32 bit floating point numbers (as opposed to just 16 bit or lower precision).

shaderderivatives: Whether shaders can use the dFdx, dFdy, and fwidth functions for computing derivatives.

Notes

glsl3 and instancing are supported on OpenGL 3 and OpenGL ES 3-capable systems.

instancing is also supported on some older systems that don't support GLSL 3, but vertex attribute-based instancing must be used in that case (instead of love_InstanceID in a GLSL 3 shader).

fullnpot, pixelshaderhighp, and shaderderivatives are supported on all desktop systems and most mobile systems, except for some older OpenGL ES 2 devices.


Removed in LÖVE 0.10.0
canvas
Support for Canvas.
npot
Support for textures with non-power-of-two sizes. See PO2 Syndrome.
subtractive
Support for the subtractive blend mode.


Available since LÖVE 0.9.0 and removed in LÖVE 0.10.0
shader
Support for Shaders.
hdrcanvas
Support for HDR Canvases. Use love.graphics.getCanvasFormats instead.
multicanvas
Support for simultaneous rendering to at least 4 canvases at once, with love.graphics.setCanvas. Use love.graphics.getSystemLimits instead.
mipmap
Support for Mipmaps.
dxt
Support for DXT compressed images (see CompressedFormat.) Use love.graphics.getCompressedImageFormats instead.
bc5
Support for BC4 and BC5 compressed images. Use love.graphics.getCompressedImageFormats instead.


Available since LÖVE 0.9.1 and removed in LÖVE 0.10.0

Use love.graphics.isGammaCorrect or love.graphics.getCanvasFormats instead

srgb
Support for gamma-correct rendering with the srgb window flag in love.window.setMode, and the "srgb" TextureFormat for Canvases and Images.


Removed in LÖVE 0.9.0
pixeleffect
Support for PixelEffects.


Notes

Canvases, Shaders, mipmaps, npot textures, and the subtract BlendMode are always supported in version 0.10.0 and newer (due to its system requirements.)

For previous versions:

subtractive, mipmap, and dxt are supported on nearly every system.

canvas, multicanvas, npot, and shader have roughly the same minimum requirements for support: a DirectX 9.0c+ capable graphics card with drivers that support ~OpenGL 2.1+.

hdrcanvas, bc5, and srgb all share mostly the same minimum requirements for support as well: a DirectX 10+ capable graphics card with drivers that support ~OpenGL 3+.


DirectX 9.0c+ capable graphics cards include the nvidia GeForce 5000-series (2003) and newer, the ATI Radeon 9000-series and newer, and the Intel GMA x3100 GPU and newer.

DirectX 10+ capable graphics cards include the nvidia GeForce 8000-series (2006) and newer, the ATI/AMD HD 2000-series and newer, and the Intel HD 2000/3000 GPUs and newer.

See Also


Other Languages