HRESULT dxgi_output_create(struct dxgi_adapter *adapter, struct dxgi_output **output) { if (!(*output = heap_alloc_zero(sizeof(**output)))) return E_OUTOFMEMORY; dxgi_output_init(*output, adapter); return S_OK; }
HRESULT dxgi_adapter_init(struct dxgi_adapter *adapter, IWineDXGIFactory *parent, UINT ordinal) { struct dxgi_output *output; adapter->IWineDXGIAdapter_iface.lpVtbl = &dxgi_adapter_vtbl; adapter->parent = parent; adapter->refcount = 1; adapter->ordinal = ordinal; output = HeapAlloc(GetProcessHeap(), HEAP_ZERO_MEMORY, sizeof(*output)); if (!output) { return E_OUTOFMEMORY; } dxgi_output_init(output, adapter); adapter->output = &output->IDXGIOutput_iface; return S_OK; }
HRESULT dxgi_adapter_init(struct dxgi_adapter *adapter, struct dxgi_factory *parent, UINT ordinal) { struct dxgi_output *output; adapter->IDXGIAdapter1_iface.lpVtbl = &dxgi_adapter_vtbl; adapter->parent = parent; adapter->refcount = 1; wined3d_private_store_init(&adapter->private_store); adapter->ordinal = ordinal; if (!(output = HeapAlloc(GetProcessHeap(), HEAP_ZERO_MEMORY, sizeof(*output)))) { wined3d_private_store_cleanup(&adapter->private_store); return E_OUTOFMEMORY; } dxgi_output_init(output, adapter); adapter->output = &output->IDXGIOutput_iface; return S_OK; }