#include <stdarg.h>
#include "windef.h"
#include "winbase.h"
#include "objbase.h"
#include "wincodecs_private.h"
#include "wine/debug.h"
Go to the source code of this file.
|
| WINE_DEFAULT_DEBUG_CHANNEL (wincodecs) |
|
static FlipRotator * | impl_from_IWICBitmapFlipRotator (IWICBitmapFlipRotator *iface) |
|
static HRESULT WINAPI | FlipRotator_QueryInterface (IWICBitmapFlipRotator *iface, REFIID iid, void **ppv) |
|
static ULONG WINAPI | FlipRotator_AddRef (IWICBitmapFlipRotator *iface) |
|
static ULONG WINAPI | FlipRotator_Release (IWICBitmapFlipRotator *iface) |
|
static HRESULT WINAPI | FlipRotator_GetSize (IWICBitmapFlipRotator *iface, UINT *puiWidth, UINT *puiHeight) |
|
static HRESULT WINAPI | FlipRotator_GetPixelFormat (IWICBitmapFlipRotator *iface, WICPixelFormatGUID *pPixelFormat) |
|
static HRESULT WINAPI | FlipRotator_GetResolution (IWICBitmapFlipRotator *iface, double *pDpiX, double *pDpiY) |
|
static HRESULT WINAPI | FlipRotator_CopyPalette (IWICBitmapFlipRotator *iface, IWICPalette *pIPalette) |
|
static HRESULT WINAPI | FlipRotator_CopyPixels (IWICBitmapFlipRotator *iface, const WICRect *prc, UINT cbStride, UINT cbBufferSize, BYTE *pbBuffer) |
|
static HRESULT WINAPI | FlipRotator_Initialize (IWICBitmapFlipRotator *iface, IWICBitmapSource *pISource, WICBitmapTransformOptions options) |
|
HRESULT | FlipRotator_Create (IWICBitmapFlipRotator **fliprotator) |
|
◆ COBJMACROS
◆ FlipRotator
◆ FlipRotator_AddRef()
Definition at line 72 of file fliprotate.c.
73{
76
77 TRACE(
"(%p) refcount=%lu\n", iface,
ref);
78
80}
#define InterlockedIncrement
static FlipRotator * impl_from_IWICBitmapFlipRotator(IWICBitmapFlipRotator *iface)
◆ FlipRotator_CopyPalette()
Definition at line 140 of file fliprotate.c.
142{
144 TRACE(
"(%p,%p)\n", iface, pIPalette);
145
148 else
149 return IWICBitmapSource_CopyPalette(
This->source, pIPalette);
150}
#define WINCODEC_ERR_WRONGSTATE
◆ FlipRotator_CopyPixels()
Definition at line 152 of file fliprotate.c.
154{
158 UINT srcy, srcwidth, srcheight;
161
163
165
167 {
168
169 FIXME(
"flipping x and rotating are not implemented\n");
171 }
172
173 hr = IWICBitmapSource_GetSize(
This->source, &srcwidth, &srcheight);
175
177 {
186 }
187
189 {
191 srcy = srcheight - 1 -
y;
192 else
194
199
200 hr = IWICBitmapSource_CopyPixels(
This->source, &rc, cbStride, cbStride,
201 pbBuffer);
202
204
205 pbBuffer += cbStride;
206 }
207
209}
GLint GLint GLint GLint GLint GLint y
GLint GLint GLsizei GLsizei height
GLint GLint GLsizei width
static const char * debug_wic_rect(const WICRect *rect)
◆ FlipRotator_Create()
Definition at line 266 of file fliprotate.c.
267{
269
272
279#ifdef __REACTOS__
281#else
283#endif
284 This->lock.DebugInfo->Spare[0] = (
DWORD_PTR)(__FILE__
": FlipRotator.lock");
285
286 *fliprotator = &
This->IWICBitmapFlipRotator_iface;
287
289}
BOOL WINAPI InitializeCriticalSectionEx(OUT LPCRITICAL_SECTION lpCriticalSection, IN DWORD dwSpinCount, IN DWORD flags)
static const IWICBitmapFlipRotatorVtbl FlipRotator_Vtbl
VOID WINAPI InitializeCriticalSection(OUT LPCRITICAL_SECTION lpCriticalSection)
#define RTL_CRITICAL_SECTION_FLAG_FORCE_DEBUG_INFO
Referenced by ImagingFactory_CreateBitmapFlipRotator().
◆ FlipRotator_GetPixelFormat()
Definition at line 114 of file fliprotate.c.
116{
118 TRACE(
"(%p,%p)\n", iface, pPixelFormat);
119
122 else
123 return IWICBitmapSource_GetPixelFormat(
This->source, pPixelFormat);
124}
◆ FlipRotator_GetResolution()
Definition at line 126 of file fliprotate.c.
128{
130 TRACE(
"(%p,%p,%p)\n", iface, pDpiX, pDpiY);
131
134 else if (
This->swap_xy)
135 return IWICBitmapSource_GetResolution(
This->source, pDpiY, pDpiX);
136 else
137 return IWICBitmapSource_GetResolution(
This->source, pDpiX, pDpiY);
138}
◆ FlipRotator_GetSize()
Definition at line 100 of file fliprotate.c.
102{
104 TRACE(
"(%p,%p,%p)\n", iface, puiWidth, puiHeight);
105
108 else if (
This->swap_xy)
109 return IWICBitmapSource_GetSize(
This->source, puiHeight, puiWidth);
110 else
111 return IWICBitmapSource_GetSize(
This->source, puiWidth, puiHeight);
112}
◆ FlipRotator_Initialize()
Definition at line 211 of file fliprotate.c.
213{
216
218
220
222 {
225 }
226
228 {
231 }
232
234 {
237 }
238
241
244
245 IWICBitmapSource_AddRef(pISource);
246 This->source = pISource;
247
250
252}
void WINAPI LeaveCriticalSection(LPCRITICAL_SECTION)
void WINAPI EnterCriticalSection(LPCRITICAL_SECTION)
@ WICBitmapTransformRotate180
@ WICBitmapTransformFlipVertical
@ WICBitmapTransformRotate90
@ WICBitmapTransformFlipHorizontal
◆ FlipRotator_QueryInterface()
Definition at line 48 of file fliprotate.c.
50{
53
55
59 {
60 *
ppv = &
This->IWICBitmapFlipRotator_iface;
61 }
62 else
63 {
66 }
67
70}
#define IsEqualIID(riid1, riid2)
◆ FlipRotator_Release()
Definition at line 82 of file fliprotate.c.
83{
86
87 TRACE(
"(%p) refcount=%lu\n", iface,
ref);
88
90 {
91 This->lock.DebugInfo->Spare[0] = 0;
93 if (
This->source) IWICBitmapSource_Release(
This->source);
95 }
96
98}
#define InterlockedDecrement
void WINAPI DeleteCriticalSection(PCRITICAL_SECTION)
◆ impl_from_IWICBitmapFlipRotator()
Definition at line 43 of file fliprotate.c.
44{
46}
#define CONTAINING_RECORD(address, type, field)
Referenced by FlipRotator_AddRef(), FlipRotator_CopyPalette(), FlipRotator_CopyPixels(), FlipRotator_GetPixelFormat(), FlipRotator_GetResolution(), FlipRotator_GetSize(), FlipRotator_Initialize(), FlipRotator_QueryInterface(), and FlipRotator_Release().
◆ WINE_DEFAULT_DEBUG_CHANNEL()
WINE_DEFAULT_DEBUG_CHANNEL |
( |
wincodecs |
| ) |
|
◆ FlipRotator_Vtbl
const IWICBitmapFlipRotatorVtbl FlipRotator_Vtbl |
|
static |
Initial value:= {
}
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 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 HRESULT WINAPI FlipRotator_Initialize(IWICBitmapFlipRotator *iface, IWICBitmapSource *pISource, WICBitmapTransformOptions options)
static ULONG WINAPI FlipRotator_Release(IWICBitmapFlipRotator *iface)
Definition at line 254 of file fliprotate.c.
Referenced by FlipRotator_Create().