Skip to content

In-game Runtime API #235

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.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions