Create "canvas" as 24-bit all the time
Previously was having it match the display's ("screen"'s) depth
and masks, but this apparently causes artifacts under SDL2.
Closes https://sourceforge.net/p/tuxpaint/bugs/259/
This commit is contained in:
parent
39264d3545
commit
53c1c5e995
2 changed files with 15 additions and 7 deletions
|
|
@ -7,7 +7,7 @@ Various contributors (see below, and AUTHORS.txt)
|
||||||
http://www.tuxpaint.org/
|
http://www.tuxpaint.org/
|
||||||
|
|
||||||
|
|
||||||
2022.September.2 (0.9.29)
|
2022.September.4 (0.9.29)
|
||||||
* Improvements to "Stamp" tool:
|
* Improvements to "Stamp" tool:
|
||||||
-----------------------------
|
-----------------------------
|
||||||
* WIP - Stamps may now be rotated.
|
* WIP - Stamps may now be rotated.
|
||||||
|
|
@ -17,6 +17,12 @@ http://www.tuxpaint.org/
|
||||||
|
|
||||||
* Bug Fixes:
|
* Bug Fixes:
|
||||||
----------
|
----------
|
||||||
|
* Always creating 24-bit canvases, in an attempt to avoid blending
|
||||||
|
artifacts, e.g., when applying brush strokes using the Paint tool.
|
||||||
|
(Previously, we were using the display's color depth and masks,
|
||||||
|
which seemed to work fine under SDL1.2, but does not under SDL2.)
|
||||||
|
Closes https://sourceforge.net/p/tuxpaint/bugs/259/
|
||||||
|
|
||||||
* Opening and immediately dismissing Color Mixer could cause
|
* Opening and immediately dismissing Color Mixer could cause
|
||||||
an unexpected color to be chosen.
|
an unexpected color to be chosen.
|
||||||
h/t @kentonyanamin on Twitter for reporting.
|
h/t @kentonyanamin on Twitter for reporting.
|
||||||
|
|
|
||||||
|
|
@ -28079,13 +28079,15 @@ static void setup(void)
|
||||||
printf("Canvas size is %d x %d\n", canvas_width, canvas_height);
|
printf("Canvas size is %d x %d\n", canvas_width, canvas_height);
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
canvas = SDL_CreateRGBSurface(screen->flags, canvas_width, canvas_height,
|
/* Per https://wiki.libsdl.org/SDL_CreateRGBSurface,
|
||||||
screen->format->BitsPerPixel,
|
* the flags are unused and should be set to 0
|
||||||
screen->format->Rmask, screen->format->Gmask, screen->format->Bmask, 0);
|
* Using zeros for the RGB masks sets a default value, based on the depth.
|
||||||
|
*/
|
||||||
|
canvas = SDL_CreateRGBSurface(0, canvas_width, canvas_height,
|
||||||
|
24, 0, 0, 0, 0);
|
||||||
|
|
||||||
save_canvas = SDL_CreateRGBSurface(screen->flags, canvas_width, canvas_height,
|
save_canvas = SDL_CreateRGBSurface(0, canvas_width, canvas_height,
|
||||||
screen->format->BitsPerPixel,
|
24, 0, 0, 0, 0);
|
||||||
screen->format->Rmask, screen->format->Gmask, screen->format->Bmask, 0);
|
|
||||||
|
|
||||||
|
|
||||||
img_starter = NULL;
|
img_starter = NULL;
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue