Difference between revisions of "GraphicsFeature"

m
m
 
(15 intermediate revisions by 3 users not shown)
Line 1: Line 1:
 
{{newin|[[0.8.0]]|080|type=enum}}
 
{{newin|[[0.8.0]]|080|type=enum}}
Graphics features that can be checked for with [[love.graphics.isSupported]].
+
Graphics features that can be checked for with [[love.graphics.getSupported]].
 
== Constants ==
 
== Constants ==
 +
{{New feature|0.10.0|
 +
;clampzero: Whether the "clampzero" [[WrapMode]] is supported.
 +
;lighten: Whether the "lighten" and "darken" [[BlendMode]]s are supported.
 +
;multicanvasformats: Whether multiple [[Canvas]]es with different [[CanvasFormat|formats]] can be used in the same [[love.graphics.setCanvas]] call.
 +
 +
=== Notes ===
 +
<code>clampzero</code> 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.
 +
 +
<code>lighten</code> is supported on all 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|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|
 
;canvas: Support for [[Canvas]].
 
;canvas: Support for [[Canvas]].
 
;npot: Support for textures with non-power-of-two sizes. See [[PO2 Syndrome]].  
 
;npot: Support for textures with non-power-of-two sizes. See [[PO2 Syndrome]].  
;subtractive: Support for the subtractive [[BlendMode|blend mode]].
+
;subtractive: Support for the subtractive [[BlendMode|blend mode]].}}
{{oldin|[[0.9.0]]|090|type=constant}}
+
{{Removed new feature|0.9.0|0.10.0|
;pixeleffect: Support for [[PixelEffect]].
+
;shader: Support for [[Shader]]s.
{{newin|[[0.9.0]]|090|type=constants|plural=y}}
 
;shader: Support for [[Shader]].
 
 
;hdrcanvas: Support for HDR [[Canvas]]es. Use [[love.graphics.getCanvasFormats]] instead.
 
;hdrcanvas: Support for HDR [[Canvas]]es. Use [[love.graphics.getCanvasFormats]] instead.
;multicanvas: Support for simultaneous rendering to at least 4 [[Canvas|canvases]] at once, with [[love.graphics.setCanvas]].
+
;multicanvas: Support for simultaneous rendering to at least 4 [[Canvas|canvases]] at once, with [[love.graphics.setCanvas]]. Use [[love.graphics.getSystemLimits]] instead.
 
;mipmap: Support for Mipmaps.
 
;mipmap: Support for Mipmaps.
 
;dxt: Support for DXT compressed images (see [[CompressedFormat]].) Use [[love.graphics.getCompressedImageFormats]] instead.
 
;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.
+
;bc5: Support for BC4 and BC5 compressed images. Use [[love.graphics.getCompressedImageFormats]] instead.}}
{{newin|[[0.9.1]]|091|type=constants|plural=y}}
+
{{Removed new feature|0.9.1|0.10.0|
;srgb:Support for gamma-correct rendering with the <code>srgb</code> window flag in [[love.window.setMode]], and the "srgb" [[TextureFormat]] for [[love.graphics.newCanvas|Canvases]] and [[love.graphics.newImage|Images]].
+
Use [[love.graphics.isGammaCorrect]] or [[love.graphics.getCanvasFormats]] instead
== Notes ==
+
;srgb:Support for gamma-correct rendering with the <code>srgb</code> window flag in [[love.window.setMode]], and the "srgb" [[TextureFormat]] for [[love.graphics.newCanvas|Canvases]] and [[love.graphics.newImage|Images]].}}
 +
{{Removed feature|0.9.0|
 +
;pixeleffect: Support for [[PixelEffect]]s.}}
 +
 
 +
=== Notes ===
 +
[[Canvas]]es, [[Shader]]s, 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:
 +
 
 
<code>subtractive</code>, <code>mipmap</code>, and <code>dxt</code> are supported on nearly every system.
 
<code>subtractive</code>, <code>mipmap</code>, and <code>dxt</code> are supported on nearly every system.
  
Line 27: Line 60:
  
 
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.
 
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 ==
 
== See Also ==
 
* [[parent::love.graphics]]
 
* [[parent::love.graphics]]
* [[love.graphics.isSupported]]
+
* [[love.graphics.getSupported]]
 
[[Category:Enums]]
 
[[Category:Enums]]
{{#set:Description=Graphics features that can be checked for with [[love.graphics.isSupported]].}}
+
{{#set:Description=Graphics features that can be checked for with [[love.graphics.getSupported]].}}
 +
 
 
== Other Languages ==
 
== Other Languages ==
 
{{i18n|GraphicsFeature}}
 
{{i18n|GraphicsFeature}}

Latest revision as of 13:59, 20 July 2019

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 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