1 #include <inttypes.h>
2 #include <stdio.h>
3 #include <windows.h>
4 #include "get-graphics-offsets.h"
5 
main(int argc,char * argv[])6 int main(int argc, char *argv[])
7 {
8 	struct d3d8_offsets d3d8 = {0};
9 	struct d3d9_offsets d3d9 = {0};
10 	struct dxgi_offsets dxgi = {0};
11 	struct dxgi_offsets2 dxgi2 = {0};
12 
13 	WNDCLASSA wc = {0};
14 	wc.style = CS_OWNDC;
15 	wc.hInstance = GetModuleHandleA(NULL);
16 	wc.lpfnWndProc = (WNDPROC)DefWindowProcA;
17 	wc.lpszClassName = DUMMY_WNDCLASS;
18 
19 	SetErrorMode(SEM_FAILCRITICALERRORS);
20 
21 	if (!RegisterClassA(&wc)) {
22 		printf("failed to register '%s'\n", DUMMY_WNDCLASS);
23 		return -1;
24 	}
25 
26 	get_d3d9_offsets(&d3d9);
27 	get_d3d8_offsets(&d3d8);
28 	get_dxgi_offsets(&dxgi, &dxgi2);
29 
30 	printf("[d3d8]\n");
31 	printf("present=0x%" PRIx32 "\n", d3d8.present);
32 	printf("[d3d9]\n");
33 	printf("present=0x%" PRIx32 "\n", d3d9.present);
34 	printf("present_ex=0x%" PRIx32 "\n", d3d9.present_ex);
35 	printf("present_swap=0x%" PRIx32 "\n", d3d9.present_swap);
36 	printf("d3d9_clsoff=0x%" PRIx32 "\n", d3d9.d3d9_clsoff);
37 	printf("is_d3d9ex_clsoff=0x%" PRIx32 "\n", d3d9.is_d3d9ex_clsoff);
38 	printf("[dxgi]\n");
39 	printf("present=0x%" PRIx32 "\n", dxgi.present);
40 	printf("present1=0x%" PRIx32 "\n", dxgi.present1);
41 	printf("resize=0x%" PRIx32 "\n", dxgi.resize);
42 	printf("release=0x%" PRIx32 "\n", dxgi2.release);
43 
44 	(void)argc;
45 	(void)argv;
46 	return 0;
47 }
48