Bug 493455 - [win32] wrong transparency for some icons and images

Almost all win32 APIs working with transparent bitmaps expect them to
be in premultiplied alpha format. Notable exceptions are bitmaps used
to create icons and the ImageList API. Therefore, transparent images
switched from being stored in straight alpha format to premultiplied
alpha format in commit 8d21781c6b65b49d2f30db28ada54be673b5925c.

This was not properly reflected in Display.create32BitDIB(Image image)
that now wrongly applied the alpha multiplication again to already pre-
multiplied RGB values. Moreover, both Display.create32BitDIB taking a
native bitmap and converting it to a 32-bit bitmap that is then used to
create an icon as well as ImageList.set are expected to produce bitmaps
in straight alpha format. However, they now failed to properly convert
back from premultiplied alpha format.

Change-Id: I0cfa74161227bfd9204b531e9c7d028c1a5bcc82
Reviewed-on: https://git.eclipse.org/r/c/platform/eclipse.platform.swt/+/190757
Tested-by: Niraj Modi <niraj.modi@in.ibm.com>
Reviewed-by: Niraj Modi <niraj.modi@in.ibm.com>
2 files changed
tree: 6c7b2e060aeac8bac5e1da4743d92b295033595f
  1. bundles/
  2. container/
  3. examples/
  4. features/
  5. local-build/
  6. tests/
  7. .gitattributes
  8. .gitignore
  9. CONTRIBUTING
  10. Jenkinsfile
  11. LICENSE
  12. NOTICE
  13. pom.xml
  14. README.md
README.md

Contributing to SWT

Thanks for your interest in this project.

Developer resources:

See the following description for how to contribute a feature or a bug fix to SWT.

Information regarding source code management, builds, coding standards, and more and be found under the following link.

Contributor License Agreement:

Before your contribution can be accepted by the project, you need to create and electronically sign the Eclipse Foundation Contributor License Agreement (CLA).

Contact:

Contact the project developers via the project's “dev” list.

Search for bugs:

This project uses Bugzilla to track ongoing development and issues.

Create a new bug:

Be sure to search for existing bugs before you create another one. Remember that contributions are always welcome!