From f30aa3d40cbd971a95657165aa56ffaed993613e Mon Sep 17 00:00:00 2001 From: koldo Date: Mon, 13 Sep 2010 08:26:35 +0000 Subject: [PATCH] *RasterPlayer: Included transparency support. Thanks Mindtraveller. git-svn-id: svn://ultimatepp.org/upp/trunk@2690 f0d560ea-af0d-0410-9eb7-867de7ffcac7 --- uppsrc/RasterPlayer/RasterPlayer.cpp | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/uppsrc/RasterPlayer/RasterPlayer.cpp b/uppsrc/RasterPlayer/RasterPlayer.cpp index 00747b386..25740e611 100644 --- a/uppsrc/RasterPlayer/RasterPlayer.cpp +++ b/uppsrc/RasterPlayer/RasterPlayer.cpp @@ -70,6 +70,7 @@ bool RasterPlayer::LoadBuffer(const String &buffer) { Rect r; for (int i = 0; i < raster->GetPageCount(); ++i) { if (previous) { + iw.Alpha().DrawImage(r, previous, GrayColor(255)); iw.DrawImage(r, previous); previous = Null; } @@ -77,15 +78,16 @@ bool RasterPlayer::LoadBuffer(const String &buffer) { r = raster->GetPageRect(i); switch (raster->GetPageDisposal(i)) { case 1: - case 2: iw.DrawRect(r, White()); + case 2: iw.DrawRect(r, SColorFace()); break; //case 2: iw.DrawRect(sz, White()); // It seems gif files do not comply with standard // break; case 4: if (i > 0) - previous = ::GetRect_(images[i-1], r); - iw.DrawRect(sz, White()); + previous = GetRect_(images[i-1], r); + iw.DrawRect(sz, SColorFace()); break; } + iw.Alpha().DrawImage(r.left, r.top, raster->GetImage(0, 0, r.right-r.left, r.bottom-r.top), GrayColor(255)); iw.DrawImage(r.left, r.top, raster->GetImage(0, 0, r.right-r.left, r.bottom-r.top)); images.Add(iw); delays.Add(max(50, 10*raster->GetPageDelay(i)));