ВСЕ черные пиксели с SWT начиная с Windows 10 Update 1809 и gc.print () / gc.copyArea ( - PullRequest
1 голос
/ 05 июня 2019

У меня есть этот кусок кода, который работал веками (от кислорода до кислорода) в течение последних 4 лет,

Начиная с обновления Windows 10 1809 это приводит к полностью черному изображению. Это происходит на нескольких ПК.

public static Image renderToImage(Control control) {
    Shell imgShell = new Shell(control.getDisplay(), SWT.NO_TRIM);
    Composite oldParent = control.getParent();
    Point size = control.getSize();
    imgShell.setSize(size);
    control.setParent(imgShell);
    Image image = new Image(control.getShell().getDisplay(), size.x, size.y);
    GC gc = new GC(image);

    //gc.setForeground(imgShell.getDisplay().getSystemColor(SWT.COLOR_RED));
    //gc.drawString("Image",size.x/2, size.y/2, true);
    control.print(gc);
    gc.dispose();
    control.setParent(oldParent);

    return image;
  }

Я обновил свое приложение с кислорода до eclipse-rcp-1903, и эта проблема сохраняется.

Строка gc.drawString работает и запишет на изображение слова «Изображение».

Следующий скриншот показывает проблему. Черная область должна быть изображением, которое было скопировано с оболочки, похожей на изображение под ней. enter image description here

...