62 *
ppv = &
This->IWICBitmapFlipRotator_iface;
79 TRACE(
"(%p) refcount=%u\n", iface,
ref);
89 TRACE(
"(%p) refcount=%u\n", iface,
ref);
93 This->lock.DebugInfo->Spare[0] = 0;
95 if (
This->source) IWICBitmapSource_Release(
This->source);
106 TRACE(
"(%p,%p,%p)\n", iface, puiWidth, puiHeight);
110 else if (
This->swap_xy)
111 return IWICBitmapSource_GetSize(
This->source, puiHeight, puiWidth);
113 return IWICBitmapSource_GetSize(
This->source, puiWidth, puiHeight);
120 TRACE(
"(%p,%p)\n", iface, pPixelFormat);
125 return IWICBitmapSource_GetPixelFormat(
This->source, pPixelFormat);
129 double *pDpiX,
double *pDpiY)
132 TRACE(
"(%p,%p,%p)\n", iface, pDpiX, pDpiY);
136 else if (
This->swap_xy)
137 return IWICBitmapSource_GetResolution(
This->source, pDpiY, pDpiX);
139 return IWICBitmapSource_GetResolution(
This->source, pDpiX, pDpiY);
146 TRACE(
"(%p,%p)\n", iface, pIPalette);
151 return IWICBitmapSource_CopyPalette(
This->source, pIPalette);
160 UINT srcy, srcwidth, srcheight;
171 FIXME(
"flipping x and rotating are not implemented\n");
175 hr = IWICBitmapSource_GetSize(
This->source, &srcwidth, &srcheight);
193 srcy = srcheight - 1 -
y;
202 hr = IWICBitmapSource_CopyPixels(
This->source, &rc, cbStride, cbStride,
207 pbBuffer += cbStride;
247 IWICBitmapSource_AddRef(pISource);
248 This->source = pISource;
282 This->lock.DebugInfo->Spare[0] = (
DWORD_PTR)(__FILE__
": FlipRotator.lock");
284 *fliprotator = &
This->IWICBitmapFlipRotator_iface;
#define InterlockedIncrement
#define InterlockedDecrement
#define WINE_DEFAULT_DEBUG_CHANNEL(t)
#define HeapFree(x, y, z)
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