dxgi/tests: Add tests for CreateDXGIFactory().
This commit is contained in:
parent
a13a546573
commit
e806b5bab9
|
@ -21,6 +21,8 @@
|
||||||
#include "d3d10.h"
|
#include "d3d10.h"
|
||||||
#include "wine/test.h"
|
#include "wine/test.h"
|
||||||
|
|
||||||
|
static HRESULT (WINAPI *pCreateDXGIFactory1)(REFIID iid, void **factory);
|
||||||
|
|
||||||
static IDXGIDevice *create_device(void)
|
static IDXGIDevice *create_device(void)
|
||||||
{
|
{
|
||||||
IDXGIDevice *dxgi_device;
|
IDXGIDevice *dxgi_device;
|
||||||
|
@ -499,12 +501,78 @@ static void test_createswapchain(void)
|
||||||
ok(!refcount, "Device has %u references left.\n", refcount);
|
ok(!refcount, "Device has %u references left.\n", refcount);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static void test_create_factory(void)
|
||||||
|
{
|
||||||
|
IDXGIFactory1 *factory;
|
||||||
|
IUnknown *iface;
|
||||||
|
HRESULT hr;
|
||||||
|
|
||||||
|
iface = (void *)0xdeadbeef;
|
||||||
|
hr = CreateDXGIFactory(&IID_IDXGIDevice, (void **)&iface);
|
||||||
|
ok(hr == E_NOINTERFACE, "Got unexpected hr %#x.\n", hr);
|
||||||
|
ok(!iface, "Got unexpected iface %p.\n", iface);
|
||||||
|
|
||||||
|
hr = CreateDXGIFactory(&IID_IUnknown, (void **)&iface);
|
||||||
|
ok(SUCCEEDED(hr), "Failed to create factory with IID_IUnknown, hr %#x.\n", hr);
|
||||||
|
IUnknown_Release(iface);
|
||||||
|
|
||||||
|
hr = CreateDXGIFactory(&IID_IDXGIObject, (void **)&iface);
|
||||||
|
ok(SUCCEEDED(hr), "Failed to create factory with IID_IDXGIObject, hr %#x.\n", hr);
|
||||||
|
IUnknown_Release(iface);
|
||||||
|
|
||||||
|
factory = (void *)0xdeadbeef;
|
||||||
|
hr = CreateDXGIFactory(&IID_IDXGIFactory, (void **)&iface);
|
||||||
|
ok(SUCCEEDED(hr), "Failed to create factory with IID_IDXGIFactory, hr %#x.\n", hr);
|
||||||
|
hr = IUnknown_QueryInterface(iface, &IID_IDXGIFactory1, (void **)&factory);
|
||||||
|
ok(hr == E_NOINTERFACE, "Got unexpected hr %#x.\n", hr);
|
||||||
|
ok(!factory, "Got unexpected factory %p.\n", factory);
|
||||||
|
IUnknown_Release(iface);
|
||||||
|
|
||||||
|
iface = (void *)0xdeadbeef;
|
||||||
|
hr = CreateDXGIFactory(&IID_IDXGIFactory1, (void **)&iface);
|
||||||
|
ok(hr == E_NOINTERFACE, "Got unexpected hr %#x.\n", hr);
|
||||||
|
ok(!iface, "Got unexpected iface %p.\n", iface);
|
||||||
|
|
||||||
|
if (!pCreateDXGIFactory1)
|
||||||
|
{
|
||||||
|
win_skip("CreateDXGIFactory1 not available, skipping tests.\n");
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
iface = (void *)0xdeadbeef;
|
||||||
|
hr = pCreateDXGIFactory1(&IID_IDXGIDevice, (void **)&iface);
|
||||||
|
ok(hr == E_NOINTERFACE, "Got unexpected hr %#x.\n", hr);
|
||||||
|
ok(!iface, "Got unexpected iface %p.\n", iface);
|
||||||
|
|
||||||
|
hr = pCreateDXGIFactory1(&IID_IUnknown, (void **)&iface);
|
||||||
|
ok(SUCCEEDED(hr), "Failed to create factory with IID_IUnknown, hr %#x.\n", hr);
|
||||||
|
IUnknown_Release(iface);
|
||||||
|
|
||||||
|
hr = pCreateDXGIFactory1(&IID_IDXGIObject, (void **)&iface);
|
||||||
|
ok(SUCCEEDED(hr), "Failed to create factory with IID_IDXGIObject, hr %#x.\n", hr);
|
||||||
|
IUnknown_Release(iface);
|
||||||
|
|
||||||
|
hr = pCreateDXGIFactory1(&IID_IDXGIFactory, (void **)&iface);
|
||||||
|
ok(SUCCEEDED(hr), "Failed to create factory with IID_IDXGIFactory, hr %#x.\n", hr);
|
||||||
|
hr = IUnknown_QueryInterface(iface, &IID_IDXGIFactory1, (void **)&factory);
|
||||||
|
ok(SUCCEEDED(hr), "Failed to query IDXGIFactory1 interface, hr %#x.\n", hr);
|
||||||
|
IDXGIFactory1_Release(factory);
|
||||||
|
IUnknown_Release(iface);
|
||||||
|
|
||||||
|
hr = pCreateDXGIFactory1(&IID_IDXGIFactory1, (void **)&iface);
|
||||||
|
ok(SUCCEEDED(hr), "Failed to create factory with IID_IDXGIFactory1, hr %#x.\n", hr);
|
||||||
|
IUnknown_Release(iface);
|
||||||
|
}
|
||||||
|
|
||||||
START_TEST(device)
|
START_TEST(device)
|
||||||
{
|
{
|
||||||
|
pCreateDXGIFactory1 = (void *)GetProcAddress(GetModuleHandleA("dxgi.dll"), "CreateDXGIFactory1");
|
||||||
|
|
||||||
test_adapter_desc();
|
test_adapter_desc();
|
||||||
test_device_interfaces();
|
test_device_interfaces();
|
||||||
test_create_surface();
|
test_create_surface();
|
||||||
test_parents();
|
test_parents();
|
||||||
test_output();
|
test_output();
|
||||||
test_createswapchain();
|
test_createswapchain();
|
||||||
|
test_create_factory();
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue