-
-
Notifications
You must be signed in to change notification settings - Fork 15
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
In-game Runtime API #235
Comments
I've looked into that, and actually got a Bitmap rendering on top of an arbitrary RetroArch instance, but I couldn't get CEF to initialize properly and render to it. |
what do you mean with CEF? |
Chromium Embedded Framework, like the Steam Overlay
…On Tue, Jul 4, 2017, 12:27 AM Andrés ***@***.***> wrote:
what do you mean with CEF?
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
<#235 (comment)>,
or mute the thread
<https://github.com/notifications/unsubscribe-auth/AA9EN7-rg1GAQ3NXMWxwGNdlU3JD4sCHks5sKb8egaJpZM4JEC2z>
.
|
To clarify: I need to be able to render the webpage through CEF on to the injected surface, and be able to pass input to the instance of CEF so that users can interact with the webpage. This will be used to build an ingame-UI framework of sorts, and be able to control launched applications through a socket interface/message passing/some other hacky method abstracted away. The Steam Overlay is not built in CEF, but does allow rendering of a CEF instance when using the ingame web browser. It doesn't have to be done in managed code (C#), but should be able to be invoked through some standard calling convention (so probably C). |
Did you guys find a solution to this ? |
Haven't yet no, it hasn't been a priority for a while either. Although if I
could get this working it would be really nice to have.
…On Wed, Jan 10, 2018, 3:51 AM ionut stoica, ***@***.***> wrote:
Did you guys find a solution to this ?
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
<#235 (comment)>,
or mute the thread
<https://github.com/notifications/unsubscribe-auth/AA9EN8xAVPnfoBIdNdbV_vPuPHGF3heOks5tJHocgaJpZM4JEC2z>
.
|
So.. after playing some multi-disc games I have come to the conclusion that an ergonomic API for this is rather necessary UX wise. There is no other way to properly swap games without requiring the user memorize some hotkeys and this is of course not acceptable. Interfacing with the emulator process can be done easily via window messaging but we need an overlay UX. |
Work in #836 |
Seems like while DX11 shared resources work fine, there's not much information in sharing Hosting CEF in-process is another option but I'd like to avoid that |
DX12 is trivial-ish since it can be done with the same loader. Vulkan is just weird so I'm probably going to have to build a mini-layer in https://github.com/SnowflakePowered/sabinokaku and inject CLR that way. |
Investigating native-only single DLL solution in https://github.com/SnowflakePowered/snowflake-ingame |
Similar to how the Steam overlay works, I want to be able to overlay a browser instance over the emulators Snowflake launches. However, I'm not familiar with hooking code, let alone attempting to render it over an arbitrary surface hooked into a game. If anyone is familiar with this, let me know, it'd be a big help.
Resources
Core hook entry: https://github.com/SnowflakePowered/sabinokaku
Hook impl: https://github.com/Reloaded-Project/Reloaded.Hooks
Example impl of hooking FFXIV: https://github.com/goatcorp/Dalamud
CEF hosting: https://github.com/Styr1x/Browsingway
Example impl: https://github.com/Reloaded-Project/Reloaded-II
In-process hosting: https://gitlab.com/kaminariss/nextui-plugin/
hooking input on linux: https://tronche.com/gui/x/xlib/event-handling/XSelectInput.html
sharing resources between dx11/dx12: https://stackoverflow.com/questions/52869111/sharing-id3d11buffer-and-id3d12resource
GL_EXT_memory_object_win32/GL_EXT_memory_object for OpenGL buffer sharing. May be possible to offprocess chrome, render CEF to texture then paint.
KMT: https://www.khronos.org/registry/OpenGL/extensions/EXT/EXT_win32_keyed_mutex.txt
https://www.intel.com/content/www/us/en/developer/articles/technical/sharing-surfaces-between-opencl-and-directx-11-on-intel-processor-graphics.html
https://github.com/flightlessmango/MangoHud/blob/master/src/vulkan.cpp#L1581
https://blog.techlab-xe.net/post-5439/
vk ex: https://github.com/scenerygraphics/scenery/blob/master/src/main/kotlin/graphics/scenery/controls/Hololens.kt#L232
Todo
DX9 support probably not worth maintaining.
The text was updated successfully, but these errors were encountered: