mirror of
https://github.com/Detanup01/gbe_fork.git
synced 2024-10-22 20:48:17 +08:00
5b55d448f7
* for windows build script: prevent permissive language extensions via the compiler flag `/permissive-`
71 lines
3.0 KiB
C
71 lines
3.0 KiB
C
// this library is sometimes needed because some apps (like appid 410900) will check
|
|
// for its existence inside their memory space during runtime,
|
|
// otherwise they'll trigger custom nagging stuff
|
|
|
|
// notice how functions return a boolean result as uint32 not bool
|
|
// the return value is placed inside the entire 'eax' register, not just 'al'
|
|
// you have to disassem both 32-bit and 64-bit libraries to see this nonsense
|
|
// ex: 32-bit ValveIsScreenshotsHooked(): mov al, byte ptr ds:[0x7AF62DA1]
|
|
// 64-bit ValveIsScreenshotsHooked(): movzx eax, byte ptr ds:[0x00007FF8938F235D]
|
|
|
|
#ifndef __GAME_OVERLAY_RENDERER_LIB_H__
|
|
#define __GAME_OVERLAY_RENDERER_LIB_H__
|
|
|
|
#include "dll/common_includes.h"
|
|
|
|
|
|
S_API_EXPORT steam_bool S_CALLTYPE BOverlayNeedsPresent();
|
|
|
|
S_API_EXPORT steam_bool S_CALLTYPE IsOverlayEnabled();
|
|
|
|
S_API_EXPORT void S_CALLTYPE OverlayHookD3D3(void *param_1, void *param_2);
|
|
|
|
S_API_EXPORT void S_CALLTYPE SetNotificationInset(int32 param_1, int32 param_2);
|
|
|
|
S_API_EXPORT void S_CALLTYPE SetNotificationPosition(ENotificationPosition param_1);
|
|
|
|
S_API_EXPORT steam_bool S_CALLTYPE SteamOverlayIsUsingGamepad();
|
|
|
|
S_API_EXPORT steam_bool S_CALLTYPE SteamOverlayIsUsingKeyboard();
|
|
|
|
S_API_EXPORT void S_CALLTYPE ValveHookScreenshots(bool param_1);
|
|
|
|
S_API_EXPORT steam_bool S_CALLTYPE ValveIsScreenshotsHooked();
|
|
|
|
// only available for 32-bit lib on Windows
|
|
// the function takes 2 arguments, but they're expected to be at [esp] & [esp+4]
|
|
// notice how the top of the stack is not the return address, but param 1
|
|
// this function might be designed to be invoked via a jmp instruction,
|
|
// at the end it does this:
|
|
// popad // pop all 8 general purpose registers
|
|
// popfd // pop flags register
|
|
// ret // regular return
|
|
// notice how it eventually deallocates 8+1 registers (4 bytes * 9),
|
|
// meaning that (4 bytes * 2 input params) + (4 bytes * 9) are deallocated from the stack
|
|
|
|
// note: this is not marked S_API_EXPORT, because later we'll use a linker pragma
|
|
// to both export this function, and prevent __stdcall name mangling
|
|
#if defined(__WINDOWS_32__)
|
|
void __stdcall VirtualFreeWrapper(
|
|
void *param_1, void *param_2,
|
|
void *stack_cleanup_1, void *stack_cleanup_2, void *stack_cleanup_3, void *stack_cleanup_4, void *stack_cleanup_5,
|
|
void *stack_cleanup_6, void *stack_cleanup_7, void *stack_cleanup_8, void *stack_cleanup_9
|
|
);
|
|
#endif // __WINDOWS_32__
|
|
|
|
S_API_EXPORT void S_CALLTYPE VulkanSteamOverlayGetScaleFactors(float *param_1, float *param_2);
|
|
|
|
S_API_EXPORT void S_CALLTYPE VulkanSteamOverlayPresent(
|
|
void *param_1, int32 param_2, int32 param_3, void *param_4, void * param_5,
|
|
void *param_6, void *param_7, void *param_8, void *param_9, void *param_10
|
|
);
|
|
|
|
|
|
S_API_EXPORT void S_CALLTYPE VulkanSteamOverlayProcessCapturedFrame(
|
|
bool param_1, int32 param_2, int32 param_3, int32 param_4, void *param_5, void *param_6, int32 param_7,
|
|
int32 param_8, int32 param_9, int32 param_10, int32 param_11, int16 param_12, int16 param_13, int16 param_14
|
|
);
|
|
|
|
|
|
#endif // __GAME_OVERLAY_RENDERER_LIB_H__
|