Skip to content
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

Overlays and the Ingame API #836

Draft
wants to merge 38 commits into
base: master
Choose a base branch
from

Conversation

chyyran
Copy link
Member

@chyyran chyyran commented Jan 29, 2022

Ingame Pipe ABI

Todo

  • Graphics Renderers
    • OpenGL Renderer
    • Vulkan Renderer
    • DirectX 11 Renderer
    • DirectX 12 Renderer
  • Input
    • Storyboard browser input
    • Storyboard overlay toggle
    • Storyboard input redirection and mapping
  • Interop
    • Storyboard GraphQL API for ingame
  • Other
    • Storyboard memory triggers (cheevos? cheats?)

@codecov
Copy link

codecov bot commented Jan 29, 2022

Codecov Report

Merging #836 (1196649) into master (d5eb772) will decrease coverage by 0.32%.
The diff coverage is 10.34%.

❗ Current head 1196649 differs from pull request most recent head bb0dd64. Consider uploading reports for the commit bb0dd64 to get more accurate results

@@            Coverage Diff             @@
##           master     #836      +/-   ##
==========================================
- Coverage   74.43%   74.11%   -0.33%     
==========================================
  Files         546      548       +2     
  Lines       16935    16989      +54     
==========================================
- Hits        12606    12591      -15     
- Misses       4329     4398      +69     

@chyyran
Copy link
Member Author

chyyran commented Jan 29, 2022

dx9 in-process render poc
image

@chyyran chyyran mentioned this pull request Jan 29, 2022
4 tasks
@chyyran chyyran changed the title Feature cef overlay platform Overlays and the Ingame API Feb 1, 2022
@chyyran
Copy link
Member Author

chyyran commented Feb 5, 2022

image

yooooo

@chyyran
Copy link
Member Author

chyyran commented Feb 19, 2022

looking at rewriting the ingame component in Rust for single-assembly injection.

marshalling right now between native and managed context is a mess to say the least

@chyyran
Copy link
Member Author

chyyran commented Feb 23, 2022

Might more sense as a standalone library in Rust here.

We do a lot of hacky shit so this definitely won't be safe Rust but if at all possible a single-dll injection is preferable to chainloading the CLR

https://github.com/SnowflakePowered/snowflake-ingame

@chyyran
Copy link
Member Author

chyyran commented Mar 17, 2022

SnowflakePowered/snowflake-ingame@fec8172 fully implements dx11 and ogl rendering. Can remove inject dll from project

@chyyran chyyran added this to the API 1.0 milestone Aug 15, 2022
@chyyran chyyran self-assigned this Sep 6, 2022
TextureHandle = this.SharedTextureHandle,
Width = this.TargetTextureDescription.Width,
Height = this.TargetTextureDescription.Height,
Size = this.TargetTextureDescription.Width * this.TargetTextureDescription.Height * CEFBufferBPP * 2
Copy link

@pabloko pabloko Apr 24, 2023

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

i guess its not (width * height * 4) * 2 but (pitch * height * 4)
since you're backing gl texture with dx texture, you may take into account the stride to get valid size

Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

further a lot more of investigation, it turns out a value of 0 will map the resource according to its internal size

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

thank you so much! I’ll continue to work on this once I sort out vulkan for the snowflake-ingame side

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
Status: In Progress
Development

Successfully merging this pull request may close these issues.

2 participants