55 else if (
IsEqualGUID(iid, &IID_IVMRSurfaceAllocator))
57 else if (
IsEqualGUID(iid, &IID_IVMRWindowlessControl))
88 IDirectDrawSurface7_Release(
presenter->frontbuffer);
89 IDirectDrawSurface7_Release(
presenter->primary);
98 FIXME(
"iface %p, cookie %#Ix, stub!\n", iface,
cookie);
104 FIXME(
"iface %p, cookie %#Ix, stub!\n", iface,
cookie);
118 TRACE(
"flags %#lx, surface %p, start %s, end %s, aspect ratio %ldx%ld,\n",
121 TRACE(
"src %s, dst %s, type-specific flags %#lx, interlace flags %#lx.\n",
123 info->dwTypeSpecificFlags,
info->dwInterlaceFlags);
126 FIXME(
"Ignoring src/dst rects.\n");
133 ERR(
"Failed to blit, hr %#lx.\n",
hr);
192 if (
info->lpHdr->biBitCount != 32)
194 FIXME(
"Unhandled bit depth %u.\n",
info->lpHdr->biBitCount);
213 WARN(
"Failed to create surface, hr %#lx.\n",
hr);
234 IDirectDrawSurface7_Release(
presenter->frontbuffer);
244 TRACE(
"iface %p, id %#Ix, surface %p, flags %#lx.\n", iface,
id, surface,
flags);
251 FIXME(
"iface %p, notify %p, stub!\n", iface,
notify);
297 TRACE(
"iface %p, width %p, height %p, aspect_width %p, aspect_height %p.\n",
298 iface,
width,
height, aspect_width, aspect_height);
305 *aspect_width =
presenter->aspect_ratio.cx;
307 *aspect_height =
presenter->aspect_ratio.cy;
309 TRACE(
"Returning size (%ld, %ld), aspect ratio (%ld, %ld).\n",
346 FIXME(
"iface %p, mode %p, stub!\n", iface,
mode);
353 FIXME(
"iface %p, mode %#lx, stub!\n", iface,
mode);
361 IDirectDrawClipper *clipper;
367 ERR(
"Failed to create clipper, hr %#lx.\n",
hr);
369 ERR(
"Failed to set clip window, hr %#lx.\n",
hr);
371 ERR(
"Failed to set clipper, hr %#lx.\n",
hr);
372 IDirectDrawClipper_Release(clipper);
382 FIXME(
"iface %p, window %p, dc %p, stub!\n", iface,
window,
dc);
388 FIXME(
"iface %p, stub!\n", iface);
394 FIXME(
"iface %p, image %p, stub!\n", iface,
image);
400 FIXME(
"iface %p, color %#08lx, stub!\n", iface,
color);
406 FIXME(
"iface %p, color %p, stub!\n", iface,
color);
412 FIXME(
"iface %p, color %#08lx, stub!\n", iface,
color);
418 FIXME(
"iface %p, color %p, stub!\n", iface,
color);
461 if (!(
object =
calloc(1,
sizeof(*
object))))
466 object->refcount = 1;
470 ERR(
"Failed to create ddraw object, hr %#lx.\n",
hr);
476 ERR(
"Failed to set cooperative level, hr %#lx.\n",
hr);
479 ERR(
"Failed to create primary surface, hr %#lx.\n",
hr);
481 TRACE(
"Created VMR7 default presenter %p.\n",
object);
#define InterlockedIncrement
#define InterlockedDecrement
static const char * wine_dbgstr_rect(const RECT *prc)
#define WINE_DEFAULT_DEBUG_CHANNEL(t)
HRESULT WINAPI DirectDrawCreateEx(LPGUID lpGUID, LPVOID *lplpDD, REFIID id, LPUNKNOWN pUnkOuter)
@ VMRSample_SrcDstRectsValid
GLuint GLuint GLsizei count
GLint GLint GLsizei GLsizei height
GLint GLint GLsizei width
static IHTMLWindow2 * window
_In_ LPWSTR _In_ DWORD _In_ DWORD _In_ DWORD dwFlags
#define IsEqualGUID(rguid1, rguid2)
DWORD IDirectDrawSurface7
BOOL WINAPI ClientToScreen(_In_ HWND, _Inout_ LPPOINT)
BOOL WINAPI GetClientRect(_In_ HWND, _Out_ LPRECT)
BOOL WINAPI OffsetRect(_Inout_ LPRECT, _In_ int, _In_ int)
struct _DDSURFACEDESC2 DDSURFACEDESC2
#define DDSCAPS_PRIMARYSURFACE
#define DDSCAPS_OFFSCREENPLAIN
#define DDSD_BACKBUFFERCOUNT
static const char * debugstr_time(REFERENCE_TIME time)
DDPIXELFORMAT ddpfPixelFormat
IVMRImagePresenter IVMRImagePresenter_iface
IVMRSurfaceAllocator IVMRSurfaceAllocator_iface
IVMRImagePresenter IVMRImagePresenter_iface
IVMRSurfaceAllocator IVMRSurfaceAllocator_iface
IDirectDrawSurface7 * primary
IVMRWindowlessControl IVMRWindowlessControl_iface
IDirectDrawSurface7 * frontbuffer
#define CONTAINING_RECORD(address, type, field)
static HRESULT WINAPI windowless_control_GetBorderColor(IVMRWindowlessControl *iface, COLORREF *color)
static HRESULT WINAPI surface_allocator_QueryInterface(IVMRSurfaceAllocator *iface, REFIID iid, void **out)
static struct vmr7_presenter * impl_from_IVMRSurfaceAllocator(IVMRSurfaceAllocator *iface)
static ULONG WINAPI image_presenter_Release(IVMRImagePresenter *iface)
static struct vmr7_presenter * impl_from_IVMRWindowlessControl(IVMRWindowlessControl *iface)
static HRESULT WINAPI windowless_control_GetMaxIdealVideoSize(IVMRWindowlessControl *iface, LONG *width, LONG *height)
static HRESULT WINAPI image_presenter_QueryInterface(IVMRImagePresenter *iface, REFIID iid, void **out)
static HRESULT WINAPI windowless_control_SetVideoClippingWindow(IVMRWindowlessControl *iface, HWND window)
static ULONG WINAPI windowless_control_AddRef(IVMRWindowlessControl *iface)
static HRESULT WINAPI windowless_control_RepaintVideo(IVMRWindowlessControl *iface, HWND window, HDC dc)
static ULONG WINAPI surface_allocator_AddRef(IVMRSurfaceAllocator *iface)
static HRESULT WINAPI surface_allocator_FreeSurface(IVMRSurfaceAllocator *iface, DWORD_PTR id)
static ULONG WINAPI surface_allocator_Release(IVMRSurfaceAllocator *iface)
static HRESULT WINAPI windowless_control_SetVideoPosition(IVMRWindowlessControl *iface, const RECT *source, const RECT *dest)
static HRESULT WINAPI windowless_control_SetBorderColor(IVMRWindowlessControl *iface, COLORREF color)
static HRESULT WINAPI windowless_control_GetMinIdealVideoSize(IVMRWindowlessControl *iface, LONG *width, LONG *height)
static const IVMRSurfaceAllocatorVtbl surface_allocator_vtbl
static HRESULT WINAPI windowless_control_SetAspectRatioMode(IVMRWindowlessControl *iface, DWORD mode)
static HRESULT WINAPI surface_allocator_AdviseNotify(IVMRSurfaceAllocator *iface, IVMRSurfaceAllocatorNotify *notify)
static HRESULT WINAPI image_presenter_PresentImage(IVMRImagePresenter *iface, DWORD_PTR cookie, VMRPRESENTATIONINFO *info)
static HRESULT WINAPI surface_allocator_AllocateSurface(IVMRSurfaceAllocator *iface, DWORD_PTR id, VMRALLOCATIONINFO *info, DWORD *count, IDirectDrawSurface7 **surface)
static const IVMRWindowlessControlVtbl windowless_control_vtbl
static ULONG WINAPI windowless_control_Release(IVMRWindowlessControl *iface)
static HRESULT WINAPI windowless_control_SetColorKey(IVMRWindowlessControl *iface, COLORREF color)
static HRESULT WINAPI windowless_control_QueryInterface(IVMRWindowlessControl *iface, REFIID iid, void **out)
static struct vmr7_presenter * impl_from_IVMRImagePresenter(IVMRImagePresenter *iface)
static HRESULT WINAPI windowless_control_GetNativeVideoSize(IVMRWindowlessControl *iface, LONG *width, LONG *height, LONG *aspect_width, LONG *aspect_height)
static HRESULT WINAPI windowless_control_GetAspectRatioMode(IVMRWindowlessControl *iface, DWORD *mode)
static HRESULT WINAPI windowless_control_GetVideoPosition(IVMRWindowlessControl *iface, RECT *source, RECT *dest)
static ULONG WINAPI image_presenter_AddRef(IVMRImagePresenter *iface)
static HRESULT WINAPI image_presenter_StartPresenting(IVMRImagePresenter *iface, DWORD_PTR cookie)
static HRESULT WINAPI windowless_control_DisplayModeChanged(IVMRWindowlessControl *iface)
static HRESULT WINAPI windowless_control_GetCurrentImage(IVMRWindowlessControl *iface, BYTE **image)
static HRESULT WINAPI image_presenter_StopPresenting(IVMRImagePresenter *iface, DWORD_PTR cookie)
static HRESULT WINAPI surface_allocator_PrepareSurface(IVMRSurfaceAllocator *iface, DWORD_PTR id, IDirectDrawSurface7 *surface, DWORD flags)
static const IVMRImagePresenterVtbl image_presenter_vtbl
static HRESULT WINAPI windowless_control_GetColorKey(IVMRWindowlessControl *iface, COLORREF *color)
HRESULT vmr7_presenter_create(IUnknown *outer, IUnknown **out)
wchar_t tm const _CrtWcstime_Writes_and_advances_ptr_ count wchar_t ** out