eclipse.platform.swt icon indicating copy to clipboard operation
eclipse.platform.swt copied to clipboard

[Cocoa][macOS] NPE error when initialize GLCanvas.

Open KShinku opened this issue 3 years ago • 2 comments

I had this issue trying to use SWT with lwjgl on apple silicon.

Exception in thread "main" java.lang.NullPointerException: Cannot invoke "org.eclipse.swt.internal.cocoa.NSGraphicsContext.saveGraphicsState()" because "context" is null at org.eclipse.swt.widgets.Widget.drawRect(Widget.java:764) at org.eclipse.swt.widgets.Canvas.drawRect(Canvas.java:170) at org.eclipse.swt.widgets.Display.windowProc(Display.java:6248) at org.eclipse.swt.internal.cocoa.OS.objc_msgSendSuper(Native Method) at org.eclipse.swt.widgets.Display.applicationNextEventMatchingMask(Display.java:5526) at org.eclipse.swt.widgets.Display.applicationProc(Display.java:5926) at org.eclipse.swt.internal.cocoa.OS.objc_msgSend(Native Method) at org.eclipse.swt.internal.cocoa.NSApplication.nextEventMatchingMask(NSApplication.java:92) at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3960) at org.eclipse.swt.snippets.Snippet195.main(Snippet195.java:126)

Environment:

macOS Monterey 12.4 M1 Apple Silicon

Java:

openjdk version "17" 2021-09-14 LTS OpenJDK Runtime Environment Zulu17.28+13-CA (build 17+35-LTS) OpenJDK 64-Bit Server VM Zulu17.28+13-CA (build 17+35-LTS, mixed mode, sharing)

SWT:

SWT-OS: macosx SWT-WS: cocoa SWT-Arch: aarch64 Implementation-Version: 3.120.0 Eclipse-Version: 4.24

This issue is easy to reproduce using Snippet195 provided by Using OpenGL in SWT Applications, it looks like exist in eclipse bugs list for a long time. See details in https://bugs.eclipse.org/bugs/show_bug.cgi?id=570649

KShinku avatar Jun 30 '22 08:06 KShinku

There is a workaround: Replace line 763 in org.eclipse.swt.widgets.Widget.drawRect NSGraphicsContext context = NSGraphicsContext.currentContext(); to NSGraphicsContext context = new NSGraphicsContext(); But I don't know what side effects it will bring.

KShinku avatar Jul 04 '22 04:07 KShinku

Is this issue related to https://github.com/eclipse-platform/eclipse.platform.swt/issues/806. On Mac, rendering occurs 2 or 3 times during mouse hovering and then suddenly throws an NPE as the context turns null.

elsazac avatar Mar 21 '25 09:03 elsazac