60 *
ppv = &
This->IWICBitmapFlipRotator_iface;
77 TRACE(
"(%p) refcount=%lu\n", iface,
ref);
87 TRACE(
"(%p) refcount=%lu\n", iface,
ref);
91 This->lock.DebugInfo->Spare[0] = 0;
93 if (
This->source) IWICBitmapSource_Release(
This->source);
104 TRACE(
"(%p,%p,%p)\n", iface, puiWidth, puiHeight);
108 else if (
This->swap_xy)
109 return IWICBitmapSource_GetSize(
This->source, puiHeight, puiWidth);
111 return IWICBitmapSource_GetSize(
This->source, puiWidth, puiHeight);
118 TRACE(
"(%p,%p)\n", iface, pPixelFormat);
123 return IWICBitmapSource_GetPixelFormat(
This->source, pPixelFormat);
127 double *pDpiX,
double *pDpiY)
130 TRACE(
"(%p,%p,%p)\n", iface, pDpiX, pDpiY);
134 else if (
This->swap_xy)
135 return IWICBitmapSource_GetResolution(
This->source, pDpiY, pDpiX);
137 return IWICBitmapSource_GetResolution(
This->source, pDpiX, pDpiY);
144 TRACE(
"(%p,%p)\n", iface, pIPalette);
149 return IWICBitmapSource_CopyPalette(
This->source, pIPalette);
158 UINT srcy, srcwidth, srcheight;
169 FIXME(
"flipping x and rotating are not implemented\n");
173 hr = IWICBitmapSource_GetSize(
This->source, &srcwidth, &srcheight);
191 srcy = srcheight - 1 -
y;
200 hr = IWICBitmapSource_CopyPixels(
This->source, &rc, cbStride, cbStride,
205 pbBuffer += cbStride;
245 IWICBitmapSource_AddRef(pISource);
246 This->source = pISource;
284 This->lock.DebugInfo->Spare[0] = (
DWORD_PTR)(__FILE__
": FlipRotator.lock");
286 *fliprotator = &
This->IWICBitmapFlipRotator_iface;
#define InterlockedIncrement
#define InterlockedDecrement
#define WINE_DEFAULT_DEBUG_CHANNEL(t)
BOOL WINAPI InitializeCriticalSectionEx(OUT LPCRITICAL_SECTION lpCriticalSection, IN DWORD dwSpinCount, IN DWORD flags)
static HRESULT WINAPI FlipRotator_GetPixelFormat(IWICBitmapFlipRotator *iface, WICPixelFormatGUID *pPixelFormat)
static HRESULT WINAPI FlipRotator_CopyPixels(IWICBitmapFlipRotator *iface, const WICRect *prc, UINT cbStride, UINT cbBufferSize, BYTE *pbBuffer)
static HRESULT WINAPI FlipRotator_GetSize(IWICBitmapFlipRotator *iface, UINT *puiWidth, UINT *puiHeight)
static FlipRotator * impl_from_IWICBitmapFlipRotator(IWICBitmapFlipRotator *iface)
static HRESULT WINAPI FlipRotator_CopyPalette(IWICBitmapFlipRotator *iface, IWICPalette *pIPalette)
static HRESULT WINAPI FlipRotator_GetResolution(IWICBitmapFlipRotator *iface, double *pDpiX, double *pDpiY)
static ULONG WINAPI FlipRotator_AddRef(IWICBitmapFlipRotator *iface)
static HRESULT WINAPI FlipRotator_QueryInterface(IWICBitmapFlipRotator *iface, REFIID iid, void **ppv)
static const IWICBitmapFlipRotatorVtbl FlipRotator_Vtbl
static HRESULT WINAPI FlipRotator_Initialize(IWICBitmapFlipRotator *iface, IWICBitmapSource *pISource, WICBitmapTransformOptions options)
HRESULT FlipRotator_Create(IWICBitmapFlipRotator **fliprotator)
static ULONG WINAPI FlipRotator_Release(IWICBitmapFlipRotator *iface)
GLint GLint GLint GLint GLint GLint y
GLint GLint GLsizei GLsizei height
GLint GLint GLsizei width
#define IsEqualIID(riid1, riid2)
IWICBitmapSource * source
IWICBitmapFlipRotator IWICBitmapFlipRotator_iface
VOID WINAPI InitializeCriticalSection(OUT LPCRITICAL_SECTION lpCriticalSection)
#define CONTAINING_RECORD(address, type, field)
void WINAPI LeaveCriticalSection(LPCRITICAL_SECTION)
void WINAPI EnterCriticalSection(LPCRITICAL_SECTION)
void WINAPI DeleteCriticalSection(PCRITICAL_SECTION)
WICBitmapTransformOptions
@ WICBitmapTransformRotate180
@ WICBitmapTransformFlipVertical
@ WICBitmapTransformRotate90
@ WICBitmapTransformFlipHorizontal
static const char * debug_wic_rect(const WICRect *rect)
#define WINCODEC_ERR_WRONGSTATE
#define RTL_CRITICAL_SECTION_FLAG_FORCE_DEBUG_INFO