Repository navigation
Conversation
It now passes dmabuf planes on Linux, as well as IOSurface pointer on macOS. It has also been refactored into multiple classes for each platform.
|
It would be nice if we could also support Mac. I would be interested in your take on #514 (comment) |
|
This is something I would love to have too, as it would greatly simplify one of my use cases (OSR as an overlay with transparency), and having a "raw texture handle" would be great as that's how I actually need/use the browser texture. |
|
@magreenblatt I've opened a successor PR that implements the renderer part for the JOGL-based renderer, including macOS via IOSurface. Linux is tested, Windows and macOS still need testing on real machines. The same import paths are running in production in our LWJGL renderer, linked in the new PR. This branch also has the merge with the current master and the macOS IOSurface helper, so either PR can be merged on its own. Closing this one in favor of the new PR is fine by me. |
CEF supports hardware-accelerated off-screen rendering by enabling
shared_texture_enabledviaWindowInfoand passing--off-screen-rendering-enabled --shared-texture-enabledas arguments.Unfortunately, Java CEF lacks bindings for OnAcceleratedPaint, meaning we cannot make use of this feature. This pull request enables this feature when turning
shared_texture_enabledto true.The changes were tested on a forked JCEF version (on Update to CEF 143.0.14+gdd46a37+chromium-143.0.7499.193):
On Windows, CEF provides the D3D11 shared texture handle which can be importing using
ImportMemoryWin32HandleEXTusing OpenGL's EXT_external_objects_win32 which is supported by LWJGL3.Example Code
On Linux, CEF provides dmabuf planes, which can be imported using EGL and then bound as an OpenGL texture (EGL dmabuf import / EGLImage-based path).
Example Code
Demo:
540270441-a18fd487-386b-431d-a1f3-f3afa76e6854.1.mp4
Use Squash And Merge.