Added SDL_BLENDMODE_BLEND_PREMULTIPLIED and SDL_BLENDMODE_ADD_PREMULTIPLIED
Fixes https://github.com/libsdl-org/SDL/issues/2485
This commit is contained in:
@@ -702,6 +702,17 @@ static int render_testBlitBlend(void *arg)
|
||||
SDL_DestroySurface(referenceSurface);
|
||||
referenceSurface = NULL;
|
||||
|
||||
/* Test Blend Premultiplied. */
|
||||
testBlitBlendMode(tface, SDL_BLENDMODE_BLEND_PREMULTIPLIED);
|
||||
referenceSurface = SDLTest_ImageBlitBlendPremultiplied();
|
||||
|
||||
/* Compare, then Present */
|
||||
compare(referenceSurface, ALLOWABLE_ERROR_BLENDED);
|
||||
SDL_RenderPresent(renderer);
|
||||
|
||||
SDL_DestroySurface(referenceSurface);
|
||||
referenceSurface = NULL;
|
||||
|
||||
/* Test Add. */
|
||||
testBlitBlendMode(tface, SDL_BLENDMODE_ADD);
|
||||
referenceSurface = SDLTest_ImageBlitBlendAdd();
|
||||
@@ -713,6 +724,17 @@ static int render_testBlitBlend(void *arg)
|
||||
SDL_DestroySurface(referenceSurface);
|
||||
referenceSurface = NULL;
|
||||
|
||||
/* Test Add Premultiplied. */
|
||||
testBlitBlendMode(tface, SDL_BLENDMODE_ADD_PREMULTIPLIED);
|
||||
referenceSurface = SDLTest_ImageBlitBlendAddPremultiplied();
|
||||
|
||||
/* Compare, then Present */
|
||||
compare(referenceSurface, ALLOWABLE_ERROR_BLENDED);
|
||||
SDL_RenderPresent(renderer);
|
||||
|
||||
SDL_DestroySurface(referenceSurface);
|
||||
referenceSurface = NULL;
|
||||
|
||||
/* Test Mod. */
|
||||
testBlitBlendMode(tface, SDL_BLENDMODE_MOD);
|
||||
referenceSurface = SDLTest_ImageBlitBlendMod();
|
||||
@@ -1154,6 +1176,15 @@ hasBlendModes(void)
|
||||
if (!isSupported(ret)) {
|
||||
fail = 1;
|
||||
}
|
||||
ret = SDL_SetRenderDrawBlendMode(renderer, SDL_BLENDMODE_BLEND_PREMULTIPLIED );
|
||||
if (!isSupported(ret))
|
||||
fail = 1;
|
||||
ret = SDL_GetRenderDrawBlendMode(renderer, &mode );
|
||||
if (!isSupported(ret))
|
||||
fail = 1;
|
||||
ret = (mode != SDL_BLENDMODE_BLEND_PREMULTIPLIED);
|
||||
if (!isSupported(ret))
|
||||
fail = 1;
|
||||
ret = SDL_SetRenderDrawBlendMode(renderer, SDL_BLENDMODE_ADD);
|
||||
if (!isSupported(ret)) {
|
||||
fail = 1;
|
||||
@@ -1166,6 +1197,18 @@ hasBlendModes(void)
|
||||
if (!isSupported(ret)) {
|
||||
fail = 1;
|
||||
}
|
||||
ret = SDL_SetRenderDrawBlendMode(renderer, SDL_BLENDMODE_ADD_PREMULTIPLIED);
|
||||
if (!isSupported(ret)) {
|
||||
fail = 1;
|
||||
}
|
||||
ret = SDL_GetRenderDrawBlendMode(renderer, &mode);
|
||||
if (!isSupported(ret)) {
|
||||
fail = 1;
|
||||
}
|
||||
ret = (mode != SDL_BLENDMODE_ADD_PREMULTIPLIED);
|
||||
if (!isSupported(ret)) {
|
||||
fail = 1;
|
||||
}
|
||||
ret = SDL_SetRenderDrawBlendMode(renderer, SDL_BLENDMODE_MOD);
|
||||
if (!isSupported(ret)) {
|
||||
fail = 1;
|
||||
|
||||
Reference in New Issue
Block a user