From 996b09e508ab27d1e64a79d69a212374fbd82e8c Mon Sep 17 00:00:00 2001 From: Bill Kendrick Date: Tue, 7 Feb 2023 01:42:52 -0800 Subject: [PATCH] Magic Bloom: Add sound effect Source https://freesound.org/people/kentnelson64/sounds/647221/ ("This work is licensed under the Creative Commons 0 License.") --- docs/AUTHORS.txt | 8 +++++++- docs/CHANGES.txt | 7 +++---- magic/sounds/bloom.ogg | Bin 0 -> 43130 bytes magic/src/bloom.c | 42 ++++++++++++++++++++++++----------------- 4 files changed, 35 insertions(+), 22 deletions(-) create mode 100644 magic/sounds/bloom.ogg diff --git a/docs/AUTHORS.txt b/docs/AUTHORS.txt index 559940667..71a9b8492 100644 --- a/docs/AUTHORS.txt +++ b/docs/AUTHORS.txt @@ -6,7 +6,7 @@ Copyright (c) 2002-2023 Various contributors (see below, and CHANGES.txt) https://tuxpaint.org/ -June 17, 2002 - January 30, 2023 +June 17, 2002 - February 7, 2023 * Design and Coding: @@ -131,6 +131,12 @@ June 17, 2002 - January 30, 2023 (https://freesound.org/people/Kawgrim/sounds/584865/) Creative Commons 0 by Kawgrim + Bloom magic tool + by Bill Kendrick + Googly Eyes sound effect: "Torch Crackle.wav" + (https://freesound.org/people/kentnelson64/sounds/647221/) + Creative Commons 0 license by "kentnelson64" + Mouse accessibility code and keyboard access Ankit Choudary , as part of GSOC 2010, with integration and fixes by Pere Pujal i Carabantes diff --git a/docs/CHANGES.txt b/docs/CHANGES.txt index 083f0697b..efaef7abe 100644 --- a/docs/CHANGES.txt +++ b/docs/CHANGES.txt @@ -7,7 +7,7 @@ Various contributors (see below, and AUTHORS.txt) https://tuxpaint.org/ -2023.February.6 (0.9.29) +2023.February.7 (0.9.29) * Improvements to "Stamp" tool: ----------------------------- * Stamps may now be rotated. @@ -44,9 +44,8 @@ https://tuxpaint.org/ * "Bloom" - Apply a glowing light bloom effect to the image. Bill Kendrick - - [WIP] - Bloom icon needed - [WIP] - Bloom sound effect needed + (Sound effected licensed as Creative Commons 0 (CC0 1.0) + by https://freesound.org/people/kentnelson64/) * [WIP] "Rivulet"; apply rivulets of water to the canvas - needs better icon diff --git a/magic/sounds/bloom.ogg b/magic/sounds/bloom.ogg new file mode 100644 index 0000000000000000000000000000000000000000..df839e1f49eb823dd345b950fa5c7c72675aa1f5 GIT binary patch literal 43130 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 O8$hW7hIz~WJYfK#;Xb|q literal 0 HcmV?d00001 diff --git a/magic/src/bloom.c b/magic/src/bloom.c index 930bd5c94..3fc0fe983 100644 --- a/magic/src/bloom.c +++ b/magic/src/bloom.c @@ -64,6 +64,9 @@ void bloom_line_callback_drag(void *ptr, int which, SDL_Surface * canvas, void bloom_release(magic_api * api, int which, SDL_Surface * canvas, SDL_Surface * snapshot, int x, int y, SDL_Rect * update_rect); +void bloom_apply_effect(magic_api * api, + SDL_Surface * canvas, + SDL_Surface * snapshot); void bloom_switchin(magic_api * api, int which, int mode, SDL_Surface * canvas); void bloom_switchout(magic_api * api, int which, int mode, @@ -83,7 +86,7 @@ int bloom_init(magic_api * api) snprintf(fname, sizeof(fname), "%ssounds/magic/bloom.ogg", api->data_directory); - snd_effects = NULL; /* FIXME Mix_LoadWAV(fname); */ + snd_effects = Mix_LoadWAV(fname); bloom_scale = sqrt(2 * (BLOOM_PAINT_RADIUS * BLOOM_PAINT_RADIUS)); @@ -172,8 +175,7 @@ bloom_click(magic_api * api, int which, int mode, } memset(bloom_mask, 128, (canvas->w * canvas->h)); - bloom_release(api, which, canvas, snapshot, x, y, - update_rect); + bloom_apply_effect(api, canvas, snapshot); update_rect->x = 0; update_rect->y = 0; @@ -202,22 +204,33 @@ bloom_drag(magic_api * api ATTRIBUTE_UNUSED, int which ATTRIBUTE_UNUSED, SDL_Sur void bloom_release(magic_api * api, int which ATTRIBUTE_UNUSED, - SDL_Surface * canvas ATTRIBUTE_UNUSED, - SDL_Surface * snapshot ATTRIBUTE_UNUSED, + SDL_Surface * canvas, + SDL_Surface * snapshot, int x ATTRIBUTE_UNUSED, int y ATTRIBUTE_UNUSED, - SDL_Rect * update_rect ATTRIBUTE_UNUSED) { - int sample, offset, offset_flip, xx, yy; - Uint8 r, g, b; - float rf, gf, bf, mask_weight, lum; - float sums[3]; - Uint32 color; - + SDL_Rect * update_rect) { if (bloom_mask == NULL) return; if (snd_effects != NULL) api->stopsound(); + bloom_apply_effect(api, canvas, snapshot); + + update_rect->x = 0; + update_rect->y = 0; + update_rect->w = canvas->w; + update_rect->h = canvas->h; +} + +void bloom_apply_effect(magic_api * api, + SDL_Surface * canvas, + SDL_Surface * snapshot) { + int sample, offset, offset_flip, x, y, xx, yy; + Uint8 r, g, b; + float rf, gf, bf, mask_weight, lum; + float sums[3]; + Uint32 color; + SDL_BlitSurface(snapshot, NULL, canvas, NULL); for (y = 0; y < canvas->h; y++) { @@ -296,11 +309,6 @@ void bloom_release(magic_api * api, int which ATTRIBUTE_UNUSED, } } } - - update_rect->x = 0; - update_rect->y = 0; - update_rect->w = canvas->w; - update_rect->h = canvas->h; }