[PATCH 4/6] Add luminance alpha support

James Le Cuirot chewi at aura-online.co.uk
Sun Jun 1 15:28:39 PDT 2014


Admittedly I have no idea what this is but it was originally added by
Bit Blot because it's needed by Aquaria.
---
 include/GL/glpng.h | 1 +
 src/glpng.c        | 5 ++++-
 2 files changed, 5 insertions(+), 1 deletion(-)

diff --git a/include/GL/glpng.h b/include/GL/glpng.h
index 172a757..96e95e9 100644
--- a/include/GL/glpng.h
+++ b/include/GL/glpng.h
@@ -57,6 +57,7 @@ extern "C" {
 #define PNG_SIMPLEMIPMAP PNG_SIMPLEMIPMAPS
 
 /* Transparency parameters */
+#define PNG_LUMINANCEALPHA -4
 #define PNG_CALLBACKT -3 /* Call the callback function to generate alpha   */
 #define PNG_ALPHA     -2 /* Use alpha channel in PNG file, if there is one */
 #define PNG_SOLID     -1 /* No transparency                                */
diff --git a/src/glpng.c b/src/glpng.c
index e671bd1..e19c35d 100644
--- a/src/glpng.c
+++ b/src/glpng.c
@@ -503,7 +503,7 @@ static int pngLoadCommon(int mipmap, int trans, pngInfo *pinfo, png_structp png,
 		}
 		else
 		#endif
-		if (trans == PNG_SOLID || trans == PNG_ALPHA || color == PNG_COLOR_TYPE_RGB_ALPHA || color == PNG_COLOR_TYPE_GRAY_ALPHA) {
+		if (trans == PNG_SOLID || trans == PNG_ALPHA || trans == PNG_LUMINANCEALPHA || color == PNG_COLOR_TYPE_RGB_ALPHA || color == PNG_COLOR_TYPE_GRAY_ALPHA) {
 			GLenum glformat;
 			GLint glcomponent;
 
@@ -528,6 +528,9 @@ static int pngLoadCommon(int mipmap, int trans, pngInfo *pinfo, png_structp png,
 					goto finish;
 			}
 
+			if (trans == PNG_LUMINANCEALPHA)
+				glformat = GL_LUMINANCE_ALPHA;
+
 			if (mipmap == PNG_BUILDMIPMAPS)
 				Build2DMipmaps(glcomponent, width, height, glformat, data, 1);
 			else if (mipmap == PNG_SIMPLEMIPMAPS)
-- 
1.9.2



More information about the Games mailing list