Platform and Equinox API

Here are descriptions of some of the changes of interest to plug-in developers made to the Eclipse Platform and SWT for the 4.34 release of Eclipse.

New features oriented towards end-users of the platform can be viewed in the What's New section of the Eclipse Platform User Guide.

Platform Changes

SWT Changes

Constructor for Dynamically Scaled, Custom-Drawn Image

The Image class provides a constructor for creating an empty image based on a concrete size, which is then usually filled programmatically via a GC. Such an image will be created according to a fixed zoom value. When the image is requested in a different zoom via getImageData(zoom), the image will be raster-scaled, leading to blurry results.


The API has been extended as follows to address this limitation:
  • A new constructor has been added to the Image class:
    Image(Device device, ImageGcDrawer imageGcDrawer, int width, int height)
  • The constructor accepts implementations of ImageGcDrawer defining the method:
    drawOn(GC gc, int imageWidth, int imageHeight)

Such an image will call imageGcDrawer.drawOn(...) whenever the image data for a different zoom is requested to generate that data in a size as required for the specified zoom.

To be prepared for enhanced UI scaling mechanisms, such as the monitor-specific scaling feature on windows (see this news), this new constructor should be preferred for programmatic creation of images instead of the existing constructors using a fixed size.