LWJGL / lwjgl3

LWJGL is a Java library that enables cross-platform access to popular native APIs useful in the development of graphics (OpenGL, Vulkan, bgfx), audio (OpenAL, Opus), parallel computing (OpenCL, CUDA) and XR (OpenVR, LibOVR, OpenXR) applications.
https://www.lwjgl.org
BSD 3-Clause "New" or "Revised" License
4.83k stars 641 forks source link

OpenGL 4.6 to support apple devices #727

Closed jredfox closed 2 years ago

jredfox commented 2 years ago

Description

mac has depreciated opengl since 4.1 and moved to metal. We need you guys to come up with a fix for it on macOs, IPadOs, IOS. If you guys don't fix this for macOs at the very least all java games won't work with mac devices. This means there will be no point to ever use opengl again because no it's limited to only windows and linux. Game developers don't normally manually support linux if they have to convert it to opengl or opengl es graphics api. therefore they will just use direct x 12 and metal.

it needs to be regular opengl and not opengl es there is a cap of profile compatibility contexts and even plain out graphics api behavior like piping, and matrices I believe (push / pop?).

octylFractal commented 2 years ago

I'm not sure what the request is exactly, there seems to already be 4.6 API https://github.com/LWJGL/lwjgl3/blob/master/modules/lwjgl/opengl/src/generated/java/org/lwjgl/opengl/GL46.java

jredfox commented 2 years ago

macOs and all apple devices are removing native support for opengl. So you guys need to re-add the drivers and api yourself

Sent from Mailhttps://go.microsoft.com/fwlink/?LinkId=550986 for Windows

From: Octavia @.> Sent: Tuesday, February 8, 2022 9:22 AM To: @.> Cc: @.>; @.> Subject: Re: [LWJGL/lwjgl3] OpenGL 4.6 to support apple devices (Issue #727)

I'm not sure what the request is exactly, there seems to already be 4.6 API https://github.com/LWJGL/lwjgl3/blob/master/modules/lwjgl/opengl/src/generated/java/org/lwjgl/opengl/GL46.java

— Reply to this email directly, view it on GitHubhttps://github.com/LWJGL/lwjgl3/issues/727#issuecomment-1032726910, or unsubscribehttps://github.com/notifications/unsubscribe-auth/ACKJBMJMJ64AGCY6ACZ24ZDU2EYK5ANCNFSM5N2WHQEQ. You are receiving this because you authored the thread.Message ID: @.***>

orange451 commented 2 years ago

What is there for LWJGL to fix? LWJGL binds to what is available. As you mention OpenGL 4.6 is not available on mac, that is not inherently a LWJGL problem? Or am I misunderstanding?

TheMrMilchmann commented 2 years ago

mac has depreciated opengl since 4.1 and moved to metal.

Apple deprecated OpenGL support in macOS Mojave 10.14 (in 2018). OpenGL 4.1 was (and still remains) the latest OpenGL version that is natively supported in macOS. While they clearly want us to use Metal, there is no indication that support for this version will be removed in the near future.

We need you guys to come up with a fix for it on macOs, IPadOs, IOS.

Java and (therefore) LWJGL do not really support iOS and IPadOS due to platform limitations.

If you guys don't fix this for macOs at the very least all java games won't work with mac devices. This means there will be no point to ever use opengl again because no it's limited to only windows and linux. Game developers don't normally manually support linux if they have to convert it to opengl or opengl es graphics api. therefore they will just use direct x 12 and metal.

If you want to develop a cross-platform application going forward, the best strategy is using Vulkan natively for Windows and Linux, and via MoltenVK (a Vulkan over Metal wrapper) for macOS.

it needs to be regular opengl and not opengl es there is a cap of profile compatibility contexts and even plain out graphics api behavior like piping, and matrices I believe (push / pop?).

I'm not sure what you mean here.

Generally, it is out of scope for LWJGL to provide native OpenGL 4.6 support for macOS. However, it is possible that in the future a library similar to MoltenVK will be distributed alongside LWJGL to provide support for later OpenGL versions. This is tracked in https://github.com/LWJGL/lwjgl3/issues/718.