38 mode->RefreshRate.Denominator = 1;
49 mode->RefreshRate.Denominator = 1;
69 FIXME(
"Matching formats to device not implemented.\n");
91 a =
left->RefreshRate.Numerator *
right->RefreshRate.Denominator;
92 b =
right->RefreshRate.Numerator *
left->RefreshRate.Denominator;
144 for (
i = 0;
i < *mode_count; ++
i)
149 WARN(
"Failed to get output mode %u, hr %#lx.\n",
i,
hr);
154 switch (struct_version)
173 switch (struct_version)
207 IUnknown_AddRef(iface);
238 IWineDXGIAdapter_Release(&output->
adapter->IWineDXGIAdapter_iface);
284 return IWineDXGIAdapter_QueryInterface(&output->
adapter->IWineDXGIAdapter_iface,
riid,
parent);
297 TRACE(
"iface %p, desc %p.\n", iface,
desc);
306 WARN(
"Failed to get output desc, hr %#lx.\n",
hr);
314 WARN(
"Failed to get output display mode, hr %#lx.\n",
hr);
334 FIXME(
"iface %p, format %s, flags %#x, mode_count %p, modes %p partial stub!\n",
348 TRACE(
"iface %p, mode %p, closest_match %p, device %p.\n",
369 FIXME(
"iface %p stub!\n", iface);
371 TRACE(
"iface %p stub!\n", iface);
381 TRACE(
"iface %p, device %p, exclusive %d.\n", iface,
device, exclusive);
397 TRACE(
"iface %p.\n", iface);
409 TRACE(
"iface %p, gamma_caps %p.\n", iface, gamma_caps);
430 else if (
f > 65535.0f)
444 TRACE(
"iface %p, gamma_control %p.\n", iface, gamma_control);
447 FIXME(
"Ignoring unhandled scale {%.8e, %.8e, %.8e}.\n", gamma_control->
Scale.
Red,
450 FIXME(
"Ignoring unhandled offset {%.8e, %.8e, %.8e}.\n", gamma_control->
Offset.
Red,
453 for (
i = 0;
i < 256; ++
i)
471 FIXME(
"iface %p, gamma_control %p stub!\n", iface, gamma_control);
478 FIXME(
"iface %p, surface %p stub!\n", iface, surface);
485 FIXME(
"iface %p, surface %p stub!\n", iface, surface);
492 FIXME(
"iface %p, stats %p stub!\n", iface, stats);
504 FIXME(
"iface %p, format %s, flags %#x, mode_count %p, modes %p partial stub!\n",
518 TRACE(
"iface %p, mode %p, closest_match %p, device %p.\n",
545 FIXME(
"iface %p, device %p, output_duplication %p stub!\n", iface,
device, output_duplication);
554 FIXME(
"iface %p stub!\n", iface);
574 FIXME(
"iface %p, format %#x, color_space %#x, device %p, flags %p stub!\n",
586 FIXME(
"iface %p, device %p, flags %#x, format_count %u, formats %p, "
587 "output_duplication %p stub!\n", iface,
device,
flags, format_count,
604 FIXME(
"iface %p, desc %p semi-stub!\n", iface,
desc);
613 WARN(
"Failed to get output desc, hr %#lx.\n",
hr);
621 WARN(
"Failed to get output display mode, hr %#lx.\n",
hr);
629 WARN(
"Failed to get output desc, hr %#lx.\n",
hr);
640 desc->BitsPerColor = 0;
642 desc->RedPrimary[0] = 0.f;
643 desc->RedPrimary[1] = 0.f;
644 desc->GreenPrimary[0] = 0.f;
645 desc->GreenPrimary[1] = 0.f;
646 desc->BluePrimary[0] = 0.f;
647 desc->BluePrimary[1] = 0.f;
648 desc->WhitePoint[0] = 0.f;
649 desc->WhitePoint[1] = 0.f;
650 desc->MinLuminance = 0.f;
651 desc->MaxLuminance = 0.f;
652 desc->MaxFullFrameLuminance = 0.f;
660 FIXME(
"iface %p, flags %p stub!\n", iface,
flags);
722 IWineDXGIAdapter_AddRef(&output->
adapter->IWineDXGIAdapter_iface);
728 if (!(*output =
calloc(1,
sizeof(**output))))
#define InterlockedIncrement
#define InterlockedDecrement
#define WINE_DEFAULT_DEBUG_CHANNEL(t)
#define STDMETHODCALLTYPE
const char * debug_dxgi_format(DXGI_FORMAT format)
enum wined3d_format_id wined3dformat_from_dxgi_format(DXGI_FORMAT format)
DXGI_FORMAT dxgi_format_from_wined3dformat(enum wined3d_format_id format)
static const struct pixel_format_desc formats[]
static HRESULT STDMETHODCALLTYPE dxgi_output_GetPrivateData(IDXGIOutput6 *iface, REFGUID guid, UINT *data_size, void *data)
static BOOL STDMETHODCALLTYPE dxgi_output_SupportsOverlays(IDXGIOutput6 *iface)
static HRESULT STDMETHODCALLTYPE dxgi_output_WaitForVBlank(IDXGIOutput6 *iface)
static HRESULT STDMETHODCALLTYPE dxgi_output_QueryInterface(IDXGIOutput6 *iface, REFIID iid, void **object)
static WORD uint16_from_float(float f)
static HRESULT STDMETHODCALLTYPE dxgi_output_GetDisplayModeList(IDXGIOutput6 *iface, DXGI_FORMAT format, UINT flags, UINT *mode_count, DXGI_MODE_DESC *modes)
static HRESULT STDMETHODCALLTYPE dxgi_output_SetDisplaySurface(IDXGIOutput6 *iface, IDXGISurface *surface)
static HRESULT STDMETHODCALLTYPE dxgi_output_FindClosestMatchingMode1(IDXGIOutput6 *iface, const DXGI_MODE_DESC1 *mode, DXGI_MODE_DESC1 *closest_match, IUnknown *device)
static HRESULT STDMETHODCALLTYPE dxgi_output_GetDisplaySurfaceData1(IDXGIOutput6 *iface, IDXGIResource *resource)
static HRESULT STDMETHODCALLTYPE dxgi_output_SetPrivateData(IDXGIOutput6 *iface, REFGUID guid, UINT data_size, const void *data)
static HRESULT STDMETHODCALLTYPE dxgi_output_GetGammaControlCapabilities(IDXGIOutput6 *iface, DXGI_GAMMA_CONTROL_CAPABILITIES *gamma_caps)
static DXGI_MODE_SCANLINE_ORDER dxgi_mode_scanline_order_from_wined3d(enum wined3d_scanline_ordering ordering)
static HRESULT STDMETHODCALLTYPE dxgi_output_GetDesc1(IDXGIOutput6 *iface, DXGI_OUTPUT_DESC1 *desc)
static HRESULT STDMETHODCALLTYPE dxgi_output_CheckOverlayColorSpaceSupport(IDXGIOutput6 *iface, DXGI_FORMAT format, DXGI_COLOR_SPACE_TYPE color_space, IUnknown *device, UINT *flags)
static HRESULT STDMETHODCALLTYPE dxgi_output_SetPrivateDataInterface(IDXGIOutput6 *iface, REFGUID guid, const IUnknown *object)
static HRESULT STDMETHODCALLTYPE dxgi_output_GetDesc(IDXGIOutput6 *iface, DXGI_OUTPUT_DESC *desc)
static DXGI_MODE_ROTATION dxgi_mode_rotation_from_wined3d(enum wined3d_display_rotation rotation)
static void dxgi_output_init(struct dxgi_output *output, unsigned int output_idx, struct dxgi_adapter *adapter)
static const struct IDXGIOutput6Vtbl dxgi_output_vtbl
static HRESULT STDMETHODCALLTYPE dxgi_output_FindClosestMatchingMode(IDXGIOutput6 *iface, const DXGI_MODE_DESC *mode, DXGI_MODE_DESC *closest_match, IUnknown *device)
static HRESULT STDMETHODCALLTYPE dxgi_output_GetFrameStatistics(IDXGIOutput6 *iface, DXGI_FRAME_STATISTICS *stats)
HRESULT dxgi_output_create(struct dxgi_adapter *adapter, unsigned int output_idx, struct dxgi_output **output)
static HRESULT STDMETHODCALLTYPE dxgi_output_GetParent(IDXGIOutput6 *iface, REFIID riid, void **parent)
static HRESULT STDMETHODCALLTYPE dxgi_output_DuplicateOutput1(IDXGIOutput6 *iface, IUnknown *device, UINT flags, UINT format_count, const DXGI_FORMAT *formats, IDXGIOutputDuplication **output_duplication)
static HRESULT STDMETHODCALLTYPE dxgi_output_GetDisplayModeList1(IDXGIOutput6 *iface, DXGI_FORMAT format, UINT flags, UINT *mode_count, DXGI_MODE_DESC1 *modes)
static HRESULT STDMETHODCALLTYPE dxgi_output_SetGammaControl(IDXGIOutput6 *iface, const DXGI_GAMMA_CONTROL *gamma_control)
static HRESULT STDMETHODCALLTYPE dxgi_output_TakeOwnership(IDXGIOutput6 *iface, IUnknown *device, BOOL exclusive)
static HRESULT STDMETHODCALLTYPE dxgi_output_GetDisplaySurfaceData(IDXGIOutput6 *iface, IDXGISurface *surface)
static HRESULT STDMETHODCALLTYPE dxgi_output_CheckOverlaySupport(IDXGIOutput6 *iface, DXGI_FORMAT format, IUnknown *device, UINT *flags)
static HRESULT dxgi_output_find_closest_matching_mode(struct dxgi_output *output, struct wined3d_display_mode *mode, IUnknown *device)
static HRESULT dxgi_output_get_display_mode_list(struct dxgi_output *output, DXGI_FORMAT format, unsigned int *mode_count, void *modes, enum dxgi_mode_struct_version struct_version)
struct dxgi_output * unsafe_impl_from_IDXGIOutput(IDXGIOutput *iface)
static HRESULT STDMETHODCALLTYPE dxgi_output_DuplicateOutput(IDXGIOutput6 *iface, IUnknown *device, IDXGIOutputDuplication **output_duplication)
static ULONG STDMETHODCALLTYPE dxgi_output_AddRef(IDXGIOutput6 *iface)
static struct dxgi_output * impl_from_IDXGIOutput6(IDXGIOutput6 *iface)
static void dxgi_mode1_from_wined3d(DXGI_MODE_DESC1 *mode, const struct wined3d_display_mode *wined3d_mode)
static HRESULT STDMETHODCALLTYPE dxgi_output_GetGammaControl(IDXGIOutput6 *iface, DXGI_GAMMA_CONTROL *gamma_control)
static int dxgi_mode_desc_compare(const void *l, const void *r)
static ULONG STDMETHODCALLTYPE dxgi_output_Release(IDXGIOutput6 *iface)
static void STDMETHODCALLTYPE dxgi_output_ReleaseOwnership(IDXGIOutput6 *iface)
static void dxgi_mode_from_wined3d(DXGI_MODE_DESC *mode, const struct wined3d_display_mode *wined3d_mode)
@ DXGI_MODE_STRUCT_VERSION_0
@ DXGI_MODE_STRUCT_VERSION_1
static HRESULT STDMETHODCALLTYPE dxgi_output_CheckHardwareCompositionSupport(IDXGIOutput6 *iface, UINT *flags)
_ACRTIMP void __cdecl qsort(void *, size_t, size_t, int(__cdecl *)(const void *, const void *))
HRESULT dxgi_get_private_data(struct wined3d_private_store *store, REFGUID guid, UINT *data_size, void *data)
HRESULT dxgi_set_private_data(struct wined3d_private_store *store, REFGUID guid, UINT data_size, const void *data)
void wined3d_display_mode_from_dxgi(struct wined3d_display_mode *wined3d_mode, const DXGI_MODE_DESC *mode)
HRESULT dxgi_set_private_data_interface(struct wined3d_private_store *store, REFGUID guid, const IUnknown *object)
void wined3d_display_mode_from_dxgi1(struct wined3d_display_mode *wined3d_mode, const DXGI_MODE_DESC1 *mode)
const char * debug_dxgi_mode(const DXGI_MODE_DESC *desc)
const char * debug_dxgi_mode1(const DXGI_MODE_DESC1 *desc)
@ DXGI_COLOR_SPACE_RGB_FULL_G22_NONE_P709
@ DXGI_MODE_SCALING_UNSPECIFIED
Character const *const size_t const max_count
static enum @1153 ordering
GLint GLenum GLsizei GLsizei GLsizei GLint GLsizei const GLvoid * data
GLdouble GLdouble GLdouble r
GLboolean GLboolean GLboolean b
GLboolean GLboolean GLboolean GLboolean a
GLsizei GLenum const GLvoid GLsizei GLenum GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLint GLint GLint GLshort GLshort GLshort GLubyte GLubyte GLubyte GLuint GLuint GLuint GLushort GLushort GLushort GLbyte GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLfloat GLint GLint GLint GLint GLshort GLshort GLshort GLshort GLubyte GLubyte GLubyte GLubyte GLuint GLuint GLuint GLuint GLushort GLushort GLushort GLushort GLboolean const GLdouble const GLfloat const GLint const GLshort const GLbyte const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLdouble const GLfloat const GLfloat const GLint const GLint const GLshort const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort GLenum GLenum GLenum GLfloat GLenum GLint GLenum GLenum GLenum GLfloat GLenum GLenum GLint GLenum GLfloat GLenum GLint GLint GLushort GLenum GLenum GLfloat GLenum GLenum GLint GLfloat const GLubyte GLenum GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLint GLint GLsizei GLsizei GLint GLenum GLenum const GLvoid GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLenum const GLdouble GLenum GLenum const GLfloat GLenum GLenum const GLint GLsizei GLuint GLfloat GLuint GLbitfield GLfloat GLint GLuint GLboolean GLenum GLfloat GLenum GLbitfield GLenum GLfloat GLfloat GLint GLint const GLfloat GLenum GLfloat GLfloat GLint GLint GLfloat GLfloat GLint GLint const GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat const GLdouble const GLfloat const GLdouble const GLfloat GLint i
#define memcpy(s1, s2, n)
D3D11_SHADER_VARIABLE_DESC desc
static const BYTE ramp[17]
#define IsEqualGUID(rguid1, rguid2)
BOOL ScaleAndOffsetSupported
UINT NumGammaControlPoints
float ControlPointPositions[1025]
DXGI_RGB GammaCurve[1025]
IDXGIOutput6 IDXGIOutput6_iface
struct wined3d_private_store private_store
struct dxgi_adapter * adapter
struct wined3d_output * wined3d_output
enum wined3d_format_id format_id
enum wined3d_scanline_ordering scanline_ordering
WCHAR device_name[CCHDEVICENAME]
#define CONTAINING_RECORD(address, type, field)
HRESULT CDECL wined3d_output_get_desc(const struct wined3d_output *output, struct wined3d_output_desc *desc)
unsigned int CDECL wined3d_output_get_mode_count(struct wined3d_output *output, enum wined3d_format_id format_id, enum wined3d_scanline_ordering scanline_ordering, bool cached)
HRESULT CDECL wined3d_output_set_gamma_ramp(struct wined3d_output *output, const struct wined3d_gamma_ramp *ramp)
void CDECL wined3d_output_release_ownership(const struct wined3d_output *output)
HRESULT CDECL wined3d_output_get_mode(struct wined3d_output *output, enum wined3d_format_id format_id, enum wined3d_scanline_ordering scanline_ordering, unsigned int mode_idx, struct wined3d_display_mode *mode, bool cached)
struct wined3d_output *CDECL wined3d_adapter_get_output(const struct wined3d_adapter *adapter, unsigned int idx)
HRESULT CDECL wined3d_output_take_ownership(const struct wined3d_output *output, BOOL exclusive)
HRESULT CDECL wined3d_output_find_closest_matching_mode(struct wined3d_output *output, struct wined3d_display_mode *mode)
HRESULT CDECL wined3d_output_get_display_mode(const struct wined3d_output *output, struct wined3d_display_mode *mode, enum wined3d_display_rotation *rotation)
static void wined3d_private_store_cleanup(struct wined3d_private_store *store)
static void wined3d_private_store_init(struct wined3d_private_store *store)
wined3d_scanline_ordering
@ WINED3D_SCANLINE_ORDERING_UNKNOWN
void WINAPI wined3d_mutex_unlock(void)
void WINAPI wined3d_mutex_lock(void)
#define DXGI_ERROR_MORE_DATA
#define DXGI_ERROR_INVALID_CALL