From 7209907193ead35c23360b6328c0c154fa9b73a0 Mon Sep 17 00:00:00 2001 From: gered Date: Sun, 26 Mar 2023 17:59:42 -0400 Subject: [PATCH] change to a better tint color used in visual test figure it is best to use a color that contains all different and non-zero RGB components --- ggdt/tests/graphics_rgba.rs | 12 ++++++------ .../ref/rgba/blend_function_tinted_blend.png | Bin 8576 -> 8617 bytes 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/ggdt/tests/graphics_rgba.rs b/ggdt/tests/graphics_rgba.rs index 972d85e..40a9a1f 100644 --- a/ggdt/tests/graphics_rgba.rs +++ b/ggdt/tests/graphics_rgba.rs @@ -1601,34 +1601,34 @@ fn blend_function_tinted_blend() { let bmp_solid_with_varied_alpha = generate_solid_bitmap_with_varied_alpha(32, 32); let bmp_with_varied_alpha = generate_bitmap_with_varied_alpha(32, 32); - let method = RgbaBlitMethod::SolidBlended(BlendFunction::TintedBlend(to_argb32(255, 255, 0, 0))); + let method = RgbaBlitMethod::SolidBlended(BlendFunction::TintedBlend(to_argb32(255, 155, 242, 21))); screen.blit(method.clone(), &bmp_solid, 10, 5); screen.blit(method.clone(), &bmp_solid_with_varied_alpha, 100, 5); screen.blit(method.clone(), &bmp_with_varied_alpha, 200, 5); - let method = RgbaBlitMethod::SolidBlended(BlendFunction::TintedBlend(to_argb32(127, 255, 0, 0))); + let method = RgbaBlitMethod::SolidBlended(BlendFunction::TintedBlend(to_argb32(127, 155, 242, 21))); screen.blit(method.clone(), &bmp_solid, 10, 40); screen.blit(method.clone(), &bmp_solid_with_varied_alpha, 100, 40); screen.blit(method.clone(), &bmp_with_varied_alpha, 200, 40); - let method = RgbaBlitMethod::SolidBlended(BlendFunction::TintedBlend(to_argb32(0, 255, 0, 0))); + let method = RgbaBlitMethod::SolidBlended(BlendFunction::TintedBlend(to_argb32(0, 155, 242, 21))); screen.blit(method.clone(), &bmp_solid, 10, 75); screen.blit(method.clone(), &bmp_solid_with_varied_alpha, 100, 75); screen.blit(method.clone(), &bmp_with_varied_alpha, 200, 75); ////// - let method = RgbaBlitMethod::SolidBlended(BlendFunction::TintedBlend(to_argb32(255, 255, 0, 0))); + let method = RgbaBlitMethod::SolidBlended(BlendFunction::TintedBlend(to_argb32(255, 155, 242, 21))); screen.blit(method.clone(), &bmp_solid, 10, 125); screen.blit(method.clone(), &bmp_solid_with_varied_alpha, 100, 125); screen.blit(method.clone(), &bmp_with_varied_alpha, 200, 125); - let method = RgbaBlitMethod::SolidBlended(BlendFunction::TintedBlend(to_argb32(127, 255, 0, 0))); + let method = RgbaBlitMethod::SolidBlended(BlendFunction::TintedBlend(to_argb32(127, 155, 242, 21))); screen.blit(method.clone(), &bmp_solid, 10, 160); screen.blit(method.clone(), &bmp_solid_with_varied_alpha, 100, 160); screen.blit(method.clone(), &bmp_with_varied_alpha, 200, 160); - let method = RgbaBlitMethod::SolidBlended(BlendFunction::TintedBlend(to_argb32(0, 255, 0, 0))); + let method = RgbaBlitMethod::SolidBlended(BlendFunction::TintedBlend(to_argb32(0, 155, 242, 21))); screen.blit(method.clone(), &bmp_solid, 10, 195); screen.blit(method.clone(), &bmp_solid_with_varied_alpha, 100, 195); screen.blit(method.clone(), &bmp_with_varied_alpha, 200, 195); diff --git a/ggdt/tests/ref/rgba/blend_function_tinted_blend.png b/ggdt/tests/ref/rgba/blend_function_tinted_blend.png index 71e4ed83fb090ed2ca0582a54a9583e4eb547ade..8ba2098cb7693ba32c68833ca2821405604d839b 100644 GIT binary patch literal 8617 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 literal 8576 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