コード例 #1
0
ファイル: d3d8-capture.cpp プロジェクト: AlexNe/obs-studio
static void d3d8_init(IDirect3DDevice8 *device)
{
	data.d3d8 = get_system_module("d3d8.dll");

	if (!d3d8_init_format_backbuffer(device))
		return;

	if (!d3d8_shmem_init(device))
		d3d8_free();
}
コード例 #2
0
ファイル: d3d8-offsets.cpp プロジェクト: AmesianX/obs-studio
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);
}
コード例 #3
0
ファイル: d3d8-capture.cpp プロジェクト: AlexNe/obs-studio
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);
	}
}
コード例 #4
0
ファイル: d3d8-capture.cpp プロジェクト: AlexNe/obs-studio
static HRESULT STDMETHODCALLTYPE hook_reset(IDirect3DDevice8 *device,
		D3DPRESENT_PARAMETERS *parameters)
{
	HRESULT hr;

	if (capture_active())
		d3d8_free();

	unhook(&reset);
	reset_t call = (reset_t)reset.call_addr;
	hr = call(device, parameters);
	rehook(&reset);

	return hr;
}