[aseprite] 03/64: Fix pasting screenshots/clipboard content in 32bpp on Windows

Tobias Hansen thansen at moszumanska.debian.org
Tue Jun 21 14:42:59 UTC 2016


This is an automated email from the git hooks/post-receive script.

thansen pushed a commit to branch master
in repository aseprite.

commit 160418daeade414c89509ac9c3845d9df4708261
Author: David Capello <davidcapello at gmail.com>
Date:   Fri May 6 09:09:47 2016 -0300

    Fix pasting screenshots/clipboard content in 32bpp on Windows
---
 src/app/util/clipboard_native.cpp | 10 +++++++++-
 1 file changed, 9 insertions(+), 1 deletion(-)

diff --git a/src/app/util/clipboard_native.cpp b/src/app/util/clipboard_native.cpp
index dcdf6f5..660a1a8 100644
--- a/src/app/util/clipboard_native.cpp
+++ b/src/app/util/clipboard_native.cpp
@@ -233,11 +233,19 @@ bool get_native_clipboard_bitmap(doc::Image** image,
         const uint32_t* src = (const uint32_t*)(img.data()+spec.bytes_per_row*y);
         for (unsigned long x=0; x<spec.width; ++x, ++it, ++src) {
           const uint32_t c = *((const uint32_t*)src);
+
+          // On Windows, 32bpp images are used for performance only,
+          // the alpha mask is always zero (which means that the image
+          // is only RGB, without alpha information).
+          int alpha =
+            (spec.alpha_mask ?
+             uint8_t((c & spec.alpha_mask) >> spec.alpha_shift): 255);
+
           *it = doc::rgba(
             uint8_t((c & spec.red_mask  ) >> spec.red_shift  ),
             uint8_t((c & spec.green_mask) >> spec.green_shift),
             uint8_t((c & spec.blue_mask ) >> spec.blue_shift ),
-            uint8_t((c & spec.alpha_mask) >> spec.alpha_shift));
+            alpha);
         }
       }
       break;

-- 
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/pkg-games/aseprite.git



More information about the Pkg-games-commits mailing list