void get_d3d8_offsets(struct d3d8_offsets *offsets) { d3d8_info info = {}; bool success = d3d8_init(info); if (success) { offsets->present = vtable_offset(info.module, info.device, 15); } d3d8_free(info); }
static void d3d8_capture(IDirect3DDevice8 *device, IDirect3DSurface8 *backbuffer) { if (capture_should_stop()) { d3d8_free(); } if (capture_should_init()) { d3d8_init(device); } if (capture_ready()) { d3d8_shmem_capture(device, backbuffer); } }
IDirect3D8 * WINAPI DECLSPEC_HOTPATCH Direct3DCreate8(UINT sdk_version) { struct d3d8 *object; TRACE("sdk_version %#x.\n", sdk_version); if (!(object = HeapAlloc(GetProcessHeap(), HEAP_ZERO_MEMORY, sizeof(*object)))) return NULL; if (!d3d8_init(object)) { WARN("Failed to initialize d3d8.\n"); HeapFree(GetProcessHeap(), 0, object); return NULL; } TRACE("Created d3d8 object %p.\n", object); return &object->IDirect3D8_iface; }