Work on premultiplied alpha
This commit is contained in:
@@ -281,6 +281,7 @@
|
||||
<compilerflag value="-DGLFW_OGL" if="glfw"/>
|
||||
<compilerflag value="-DLIME_CURL_SSL" if="ssl" unless="nocurl"/>
|
||||
<compilerflag value="-DLIME_FORCE_GLES1" if="LIME_FORCE_GLES1"/>
|
||||
<compilerflag value="-DLIME_PREMULTIPLIED_ALPHA" if="LIME_PREMULTIPLIED_ALPHA"/>
|
||||
<compilerflag value="-Wno-conversion" if="linux"/>
|
||||
|
||||
<!-- <file name="src/common/Surface.cpp"/> -->
|
||||
@@ -356,6 +357,7 @@
|
||||
<compilerflag value="-DGLFW_OGL" if="glfw"/>
|
||||
<compilerflag value="-DLIME_CURL_SSL" if="ssl" unless="nocurl"/>
|
||||
<compilerflag value="-DLIME_FORCE_GLES1" if="LIME_FORCE_GLES1"/>
|
||||
<compilerflag value="-DLIME_PREMULTIPLIED_ALPHA" if="LIME_PREMULTIPLIED_ALPHA"/>
|
||||
<compilerflag value="-Wno-conversion" if="linux"/>
|
||||
|
||||
<file name="src/renderer/opengl/OpenGLInit.cpp"/>
|
||||
|
||||
@@ -28,7 +28,11 @@ namespace lime {
|
||||
|
||||
public:
|
||||
|
||||
#ifdef LIME_PREMULTIPLIED_ALPHA
|
||||
Surface () : mTexture (0), mVersion (0), mFlags (SURF_FLAGS_NOT_REPEAT_IF_NON_PO2 | SURF_FLAGS_USE_PREMULTIPLIED_ALPHA), mAllowTrans (true) {}; // Non-PO2 will generate dodgy repeating anyhow...
|
||||
#else
|
||||
Surface () : mTexture (0), mVersion (0), mFlags (SURF_FLAGS_NOT_REPEAT_IF_NON_PO2), mAllowTrans (true) {}; // Non-PO2 will generate dodgy repeating anyhow...
|
||||
#endif
|
||||
|
||||
virtual RenderTarget BeginRender (const Rect &inRect, bool inForHitTest = false) = 0;
|
||||
virtual void BlitChannel (const RenderTarget &outTarget, const Rect &inSrcRect, int inPosX, int inPosY, int inSrcChannel, int inDestChannel) const = 0;
|
||||
|
||||
@@ -404,7 +404,11 @@ namespace lime {
|
||||
}
|
||||
|
||||
int progId = 0;
|
||||
#ifdef LIME_PREMULTIPLIED_ALPHA
|
||||
bool premAlpha = true;
|
||||
#else
|
||||
bool premAlpha = false;
|
||||
#endif
|
||||
|
||||
if ((element.mFlags & DRAW_HAS_TEX) && element.mSurface) {
|
||||
|
||||
|
||||
@@ -231,7 +231,11 @@ namespace lime {
|
||||
|
||||
if (mColourScaleSlot >= 0) {
|
||||
|
||||
#ifdef LIME_PREMULTIPLIED_ALPHA
|
||||
glUniform4f (mColourScaleSlot, inTransform->redMultiplier * inTransform->alphaMultiplier * rf, inTransform->greenMultiplier * inTransform->alphaMultiplier * gf, inTransform->blueMultiplier * inTransform->alphaMultiplier * bf, inTransform->alphaMultiplier * af);
|
||||
#else
|
||||
glUniform4f (mColourScaleSlot, inTransform->redMultiplier * rf, inTransform->greenMultiplier * gf, inTransform->blueMultiplier * bf, inTransform->alphaMultiplier * af);
|
||||
#endif
|
||||
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user