Skip to content

In-game Runtime API #235

@chyyran

Description

@chyyran

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

  • DirectX 11
  • OpenGL
  • DirectX 12 (xenia)
  • Vulkan

DX9 support probably not worth maintaining.

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions