From e7842b4f46ef909cac25666be43a5a6b6ca7551b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bj=C3=B6rn-Egil=20Dahlberg?= Date: Thu, 4 Feb 2010 18:04:37 +0100 Subject: Fix egd_render transparent to use float constants The render engine has float guards to enhance beam code generation. However, the default case used integers which caused the engine to crash. This is now fixed. --- lib/percept/src/egd_render.erl | 2 +- lib/percept/test/egd_SUITE.erl | 4 ++++ 2 files changed, 5 insertions(+), 1 deletion(-) (limited to 'lib') diff --git a/lib/percept/src/egd_render.erl b/lib/percept/src/egd_render.erl index cea9d2d926..0d459f8b09 100644 --- a/lib/percept/src/egd_render.erl +++ b/lib/percept/src/egd_render.erl @@ -179,7 +179,7 @@ color(Trans,Layers,Type,OldC) -> color([],_) -> {0.0,0.0,0.0,0.0}; color([{_,C}|_],opaque) -> C; -color(Layers,alpha) -> color1({0,0,0,0},Layers). +color(Layers,alpha) -> color1({0.0,0.0,0.0,0.0},Layers). color1(Color,[]) -> Color; color1(Color,[{_,C}|Layers]) -> color1(alpha_blend(Color,C),Layers). diff --git a/lib/percept/test/egd_SUITE.erl b/lib/percept/test/egd_SUITE.erl index a2595400dd..df78600fc7 100644 --- a/lib/percept/test/egd_SUITE.erl +++ b/lib/percept/test/egd_SUITE.erl @@ -143,6 +143,8 @@ image_shape(Config) when is_list(Config) -> ?line ok = bitmap_point_has_color(Bitmap, {W,H}, Pt2, Fgc), ?line ok = bitmap_point_has_color(Bitmap, {W,H}, Pt1, Fgc), + ?line <<_/binary>> = egd:render(Im, raw_bitmap, [{render_engine, alpha}]), + ?line ok = egd:destroy(Im), erase(image_size), ok. @@ -177,6 +179,8 @@ image_primitives(Config) when is_list(Config) -> ?line ok = bitmap_point_has_color(Bitmap, {W,H}, Pt2, Fgc), ?line ok = bitmap_point_has_color(Bitmap, {W,H}, Pt1, Fgc), + ?line <<_/binary>> = egd_render:binary(Im2, alpha), + erase(image_size), ok. -- cgit v1.2.3