Add mipmapping support to Canvases.

- Added an optional mipmap index argument to the non-table variant of love.graphics.setCanvas, and an optional ‘mipmap’ field to the table variant.
- Canvas:setMipmapFilter now works.
- Added Canvas:generateMipmaps.
- Added Canvas:getMipmapMode.
- Added a new ‘mipmaps’ enum field to the table passed into love.graphics.newCanvas. Accepted values are “none” (default), “manual”, and “auto”.

If a Canvas has the manual mipmap mode, you will either need to render to a mipmap level or call Canvas:generateMipmaps. If it has the auto mode, mipmaps will be automatically generated after rendering to that Canvas. Generating mipmaps is not free.

--HG--
branch : minor
This commit is contained in:
Alex Szpakowski
2017-04-15 01:58:03 -03:00
parent a0ef2ac28b
commit 7161d600b7
16 changed files with 396 additions and 201 deletions
+4
View File
@@ -328,6 +328,7 @@ public:
bool isPixelShaderHighpSupported() const;
bool isInstancingSupported() const;
bool isDepthCompareSampleSupported() const;
bool isSamplerLODBiasSupported() const;
/**
* Returns the maximum supported width or height of a texture.
@@ -363,6 +364,8 @@ public:
**/
float getMaxAnisotropy() const;
float getMaxLODBias() const;
void updateTextureMemorySize(size_t oldsize, size_t newsize);
@@ -407,6 +410,7 @@ private:
bool pixelShaderHighpSupported;
float maxAnisotropy;
float maxLODBias;
int max2DTextureSize;
int max3DTextureSize;
int maxCubeTextureSize;