72 if (!
device->d3d_parent->extended)
74 WARN(
"IDirect3D9 instance wasn't created with CreateDirect3D9Ex, returning E_NOINTERFACE.\n");
115 WARN(
"Swapchain does not have any references.\n");
137 const RECT *src_rect,
const RECT *dst_rect,
HWND dst_window_override,
143 TRACE(
"iface %p, src_rect %s, dst_rect %s, dst_window_override %p, dirty_region %p, flags %#lx.\n",
145 dst_window_override, dirty_region,
flags);
151 FIXME(
"Ignoring dirty_region %p.\n", dirty_region);
163 TRACE(
"iface %p, surface %p.\n", iface, surface);
180 TRACE(
"iface %p, backbuffer_idx %u, backbuffer_type %#x, backbuffer %p.\n",
181 iface, backbuffer_idx, backbuffer_type, backbuffer);
187 WARN(
"The output pointer is NULL, returning D3DERR_INVALIDCALL.\n");
213 TRACE(
"iface %p, raster_status %p.\n", iface, raster_status);
229 TRACE(
"iface %p, mode %p.\n", iface,
mode);
265 DWORD presentation_interval;
279 UINT *last_present_count)
281 FIXME(
"iface %p, last_present_count %p, stub!\n", iface, last_present_count);
283 if (last_present_count)
284 *last_present_count = 0;
292 FIXME(
"iface %p, present_stats %p, stub!\n", iface, present_stats);
295 memset(present_stats, 0,
sizeof(*present_stats));
307 TRACE(
"iface %p, mode %p, rotation %p.\n", iface,
mode, rotation);
362 TRACE(
"parent %p, windowed %d.\n",
parent, windowed);
384 WARN(
"Failed to create wined3d swapchain, hr %#lx.\n",
hr);
408 if (!(
object =
calloc(1,
sizeof(*
object))))
413 WARN(
"Failed to initialize swapchain, hr %#lx.\n",
hr);
418 for (
i = 0;
i <
desc->backbuffer_count; ++
i)
443 TRACE(
"Created swapchain %p.\n",
object);
#define DECLSPEC_HOTPATCH
#define InterlockedIncrement
#define InterlockedDecrement
static const char * wine_dbgstr_rect(const RECT *prc)
#define WINE_DEFAULT_DEBUG_CHANNEL(t)
#define STDMETHODCALLTYPE
#define D3DERR_INVALIDCALL
static HRESULT swapchain_init(struct d3d8_swapchain *swapchain, struct d3d8_device *device, struct wined3d_swapchain_desc *desc, unsigned int swap_interval)
D3DFORMAT d3dformat_from_wined3dformat(enum wined3d_format_id format)
enum _D3DBACKBUFFER_TYPE D3DBACKBUFFER_TYPE
static HRESULT WINAPI DECLSPEC_HOTPATCH d3d9_swapchain_Present(IDirect3DSwapChain9Ex *iface, const RECT *src_rect, const RECT *dst_rect, HWND dst_window_override, const RGNDATA *dirty_region, DWORD flags)
static HRESULT WINAPI d3d9_swapchain_GetLastPresentCount(IDirect3DSwapChain9Ex *iface, UINT *last_present_count)
static const struct wined3d_swapchain_state_parent_ops d3d9_swapchain_state_parent_ops
HRESULT d3d9_swapchain_create(struct d3d9_device *device, struct wined3d_swapchain_desc *desc, unsigned int swap_interval, struct d3d9_swapchain **swapchain)
static HRESULT WINAPI d3d9_swapchain_GetDevice(IDirect3DSwapChain9Ex *iface, IDirect3DDevice9 **device)
static void STDMETHODCALLTYPE d3d9_swapchain_wined3d_object_released(void *parent)
static const struct IDirect3DSwapChain9ExVtbl d3d9_swapchain_vtbl
static ULONG WINAPI d3d9_swapchain_Release(IDirect3DSwapChain9Ex *iface)
static HRESULT WINAPI d3d9_swapchain_GetPresentParameters(IDirect3DSwapChain9Ex *iface, D3DPRESENT_PARAMETERS *parameters)
static struct d3d9_swapchain * impl_from_IDirect3DSwapChain9Ex(IDirect3DSwapChain9Ex *iface)
static void CDECL d3d9_swapchain_windowed_state_changed(struct wined3d_swapchain_state_parent *parent, BOOL windowed)
static HRESULT WINAPI d3d9_swapchain_GetRasterStatus(IDirect3DSwapChain9Ex *iface, D3DRASTER_STATUS *raster_status)
static HRESULT WINAPI d3d9_swapchain_GetFrontBufferData(IDirect3DSwapChain9Ex *iface, IDirect3DSurface9 *surface)
static HRESULT WINAPI d3d9_swapchain_GetBackBuffer(IDirect3DSwapChain9Ex *iface, UINT backbuffer_idx, D3DBACKBUFFER_TYPE backbuffer_type, IDirect3DSurface9 **backbuffer)
static HRESULT WINAPI d3d9_swapchain_GetPresentStatistics(IDirect3DSwapChain9Ex *iface, D3DPRESENTSTATS *present_stats)
static HRESULT WINAPI d3d9_swapchain_GetDisplayModeEx(IDirect3DSwapChain9Ex *iface, D3DDISPLAYMODEEX *mode, D3DDISPLAYROTATION *rotation)
static ULONG WINAPI d3d9_swapchain_AddRef(IDirect3DSwapChain9Ex *iface)
static const struct wined3d_parent_ops d3d9_swapchain_wined3d_parent_ops
static HRESULT WINAPI d3d9_swapchain_GetDisplayMode(IDirect3DSwapChain9Ex *iface, D3DDISPLAYMODE *mode)
static HRESULT WINAPI d3d9_swapchain_QueryInterface(IDirect3DSwapChain9Ex *iface, REFIID riid, void **out)
static DWORD d3dpresentationinterval_from_wined3dswapinterval(enum wined3d_swap_interval interval)
#define IDirect3DSwapChain9Ex_Release(p)
#define IDirect3DSwapChain9Ex_AddRef(p)
#define IDirect3DDevice9Ex_Release(p)
#define S_PRESENT_OCCLUDED
#define IDirect3DSurface9_AddRef(p)
#define IDirect3DDevice9Ex_AddRef(p)
#define IDirect3DDevice9_AddRef(p)
static void present_parameters_from_wined3d_swapchain_desc(D3DPRESENT_PARAMETERS *present_parameters, const struct wined3d_swapchain_desc *swapchain_desc, DWORD presentation_interval)
struct wined3d_rendertarget_view *CDECL wined3d_device_context_get_depth_stencil_view(const struct wined3d_device_context *context)
struct wined3d_texture *__cdecl wined3d_texture_from_resource(struct wined3d_resource *resource)
void *CDECL wined3d_texture_get_sub_resource_parent(struct wined3d_texture *texture, unsigned int sub_resource_idx)
struct wined3d_resource *CDECL wined3d_rendertarget_view_get_resource(const struct wined3d_rendertarget_view *view)
#define D3DPRESENT_INTERVAL_THREE
#define D3DPRESENT_INTERVAL_TWO
#define D3DPRESENT_INTERVAL_FOUR
#define D3DPRESENT_INTERVAL_IMMEDIATE
#define D3DPRESENT_INTERVAL_ONE
#define D3DPRESENT_INTERVAL_DEFAULT
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
D3D11_SHADER_VARIABLE_DESC desc
#define IsEqualGUID(rguid1, rguid2)
#define D3DERR_DEVICELOST
IDirect3DDevice9Ex * parent_device
struct wined3d_swapchain * swapchain
IDirect3DSurface9 IDirect3DSurface9_iface
IDirect3DSwapChain9Ex IDirect3DSwapChain9Ex_iface
IDirect3DDevice9Ex * parent_device
struct wined3d_swapchain * wined3d_swapchain
unsigned int swap_interval
struct wined3d_swapchain_state_parent state_parent
enum wined3d_format_id format_id
enum wined3d_scanline_ordering scanline_ordering
unsigned int backbuffer_height
unsigned int backbuffer_width
enum wined3d_format_id backbuffer_format
#define CONTAINING_RECORD(address, type, field)
wchar_t tm const _CrtWcstime_Writes_and_advances_ptr_ count wchar_t ** out
static struct d3d9_device * impl_from_IDirect3DDevice9Ex(IDirect3DDevice9Ex *iface)
struct d3d9_surface * d3d9_surface_create(struct wined3d_texture *wined3d_texture, unsigned int sub_resource_idx, IUnknown *container)
struct d3d9_surface * unsafe_impl_from_IDirect3DSurface9(IDirect3DSurface9 *iface)
static D3DSCANLINEORDERING d3dscanlineordering_from_wined3d(enum wined3d_scanline_ordering ordering)
struct wined3d_texture *CDECL wined3d_swapchain_get_back_buffer(const struct wined3d_swapchain *swapchain, UINT back_buffer_idx)
void CDECL wined3d_swapchain_get_desc(const struct wined3d_swapchain *swapchain, struct wined3d_swapchain_desc *desc)
HRESULT CDECL wined3d_swapchain_get_raster_status(const struct wined3d_swapchain *swapchain, struct wined3d_raster_status *raster_status)
ULONG CDECL wined3d_swapchain_decref(struct wined3d_swapchain *swapchain)
HRESULT CDECL wined3d_swapchain_create(struct wined3d_device *device, const struct wined3d_swapchain_desc *desc, struct wined3d_swapchain_state_parent *state_parent, void *parent, const struct wined3d_parent_ops *parent_ops, struct wined3d_swapchain **swapchain)
ULONG CDECL wined3d_swapchain_incref(struct wined3d_swapchain *swapchain)
HRESULT CDECL wined3d_swapchain_get_front_buffer_data(const struct wined3d_swapchain *swapchain, struct wined3d_texture *dst_texture, unsigned int sub_resource_idx)
HRESULT CDECL wined3d_swapchain_get_display_mode(const struct wined3d_swapchain *swapchain, struct wined3d_display_mode *mode, enum wined3d_display_rotation *rotation)
HRESULT CDECL wined3d_swapchain_present(struct wined3d_swapchain *swapchain, const RECT *src_rect, const RECT *dst_rect, HWND dst_window_override, unsigned int swap_interval, uint32_t flags)
@ WINED3D_SWAP_INTERVAL_TWO
@ WINED3D_SWAP_INTERVAL_FOUR
@ WINED3D_SWAP_INTERVAL_ONE
@ WINED3D_SWAP_INTERVAL_DEFAULT
@ WINED3D_SWAP_INTERVAL_THREE
@ WINED3D_SWAP_INTERVAL_IMMEDIATE
#define WINED3D_SWAPCHAIN_IMPLICIT
void WINAPI wined3d_mutex_unlock(void)
void WINAPI wined3d_mutex_lock(void)