34DEFINE_GUID(IID_CMetaBitmapRenderTarget, 0x0ccd7824,0xdc16,0x4d09,0xbc,0xa8,0x6b,0x09,0xc4,0xef,0x55,0x35);
112 LONG prev_val =
This->lock, new_val;
116 new_val = prev_val - 1;
134 *
ppv = &
This->IWICBitmapLock_iface;
152 TRACE(
"(%p) refcount=%lu\n", iface,
ref);
162 TRACE(
"(%p) refcount=%lu\n", iface,
ref);
167 IWICBitmap_Release(&
This->parent->IWICBitmap_iface);
178 TRACE(
"(%p,%p,%p)\n", iface, puiWidth, puiHeight);
180 if (!puiWidth || !puiHeight)
183 *puiWidth =
This->width;
184 *puiHeight =
This->height;
193 TRACE(
"(%p,%p)\n", iface, pcbStride);
198 *pcbStride =
This->parent->stride;
204 UINT *pcbBufferSize,
BYTE **ppbData)
207 TRACE(
"(%p,%p,%p)\n", iface, pcbBufferSize, ppbData);
209 if (!pcbBufferSize || !ppbData)
212 *pcbBufferSize =
This->parent->stride * (
This->height - 1) +
213 ((
This->parent->bpp *
This->width) + 7)/8;
214 *ppbData =
This->data;
223 TRACE(
"(%p,%p)\n", iface, pPixelFormat);
225 return IWICBitmap_GetPixelFormat(&
This->parent->IWICBitmap_iface, pPixelFormat);
250 *
ppv = &
This->IWICBitmap_iface;
255 *
ppv = &
This->IMILBitmap_iface;
259 if (
IsEqualIID(&IID_CMetaBitmapRenderTarget, iid))
276 TRACE(
"(%p) refcount=%lu\n", iface,
ref);
286 TRACE(
"(%p) refcount=%lu\n", iface,
ref);
290 if (
This->palette) IWICPalette_Release(
This->palette);
291 This->cs.DebugInfo->Spare[0] = 0;
307 TRACE(
"(%p,%p,%p)\n", iface, puiWidth, puiHeight);
309 if (!puiWidth || !puiHeight)
312 *puiWidth =
This->width;
313 *puiHeight =
This->height;
322 TRACE(
"(%p,%p)\n", iface, pPixelFormat);
333 double *pDpiX,
double *pDpiY)
336 TRACE(
"(%p,%p,%p)\n", iface, pDpiX, pDpiY);
338 if (!pDpiX || !pDpiY)
353 TRACE(
"(%p,%p)\n", iface, pIPalette);
355 if (!
This->palette_set)
358 return IWICPalette_InitializeFromPalette(pIPalette,
This->palette);
368 This->stride,
prc, cbStride, cbBufferSize, pbBuffer);
390 else if (prcLock->
X >=
This->width || prcLock->
Y >=
This->height ||
395 else if (((prcLock->
X *
This->bpp) % 8) != 0)
397 FIXME(
"Cannot lock at an X coordinate not at a full byte\n");
417 (
This->bpp * prcLock->
X)/8;
419 IWICBitmap_AddRef(&
This->IWICBitmap_iface);
420 *ppILock = &
result->IWICBitmapLock_iface;
430 TRACE(
"(%p,%p)\n", iface, pIPalette);
442 IWICPalette_Release(new_palette);
446 hr = IWICPalette_InitializeFromPalette(
This->palette, pIPalette);
449 This->palette_set = 1;
455 double dpiX,
double dpiY)
458 TRACE(
"(%p,%f,%f)\n", iface, dpiX, dpiY);
487 return IWICBitmap_QueryInterface(&
This->IWICBitmap_iface, iid,
ppv);
493 return IWICBitmap_AddRef(&
This->IWICBitmap_iface);
499 return IWICBitmap_Release(&
This->IWICBitmap_iface);
516 { &GUID_WICPixelFormatDontCare, 0 },
517 { &GUID_WICPixelFormat1bppIndexed, 1 },
518 { &GUID_WICPixelFormat2bppIndexed, 2 },
519 { &GUID_WICPixelFormat4bppIndexed, 3 },
520 { &GUID_WICPixelFormat8bppIndexed, 4 },
521 { &GUID_WICPixelFormatBlackWhite, 5 },
522 { &GUID_WICPixelFormat2bppGray, 6 },
523 { &GUID_WICPixelFormat4bppGray, 7 },
524 { &GUID_WICPixelFormat8bppGray, 8 },
525 { &GUID_WICPixelFormat16bppBGR555, 9 },
526 { &GUID_WICPixelFormat16bppBGR565, 0x0a },
527 { &GUID_WICPixelFormat16bppGray, 0x0b },
528 { &GUID_WICPixelFormat24bppBGR, 0x0c },
529 { &GUID_WICPixelFormat24bppRGB, 0x0d },
530 { &GUID_WICPixelFormat32bppBGR, 0x0e },
531 { &GUID_WICPixelFormat32bppBGRA, 0x0f },
532 { &GUID_WICPixelFormat32bppPBGRA, 0x10 },
533 { &GUID_WICPixelFormat48bppRGB, 0x15 },
534 { &GUID_WICPixelFormat64bppRGBA, 0x16 },
535 { &GUID_WICPixelFormat64bppPRGBA, 0x17 },
536 { &GUID_WICPixelFormat32bppCMYK, 0x1c }
565 double *dpix,
double *dpiy)
568 TRACE(
"(%p,%p,%p)\n", iface, dpix, dpiy);
569 return IWICBitmap_GetResolution(&
This->IWICBitmap_iface, dpix, dpiy);
577 return IWICBitmap_CopyPalette(&
This->IWICBitmap_iface,
palette);
597 *
ppv = &
This->IMILUnknown1_iface;
606 return IWICBitmap_Lock(&
This->IWICBitmap_iface, rc,
flags,
lock);
612 IWICBitmapLock_Release(
lock);
620 return IWICBitmap_SetPalette(&
This->IWICBitmap_iface,
palette);
626 TRACE(
"(%p,%f,%f)\n", iface, dpix, dpiy);
627 return IWICBitmap_SetResolution(&
This->IWICBitmap_iface, dpix, dpiy);
632 FIXME(
"(%p,%p): stub\n", iface, rc);
666 return IWICBitmap_AddRef(&
This->IWICBitmap_iface);
672 return IWICBitmap_Release(&
This->IWICBitmap_iface);
677 FIXME(
"(%p,%p): stub\n", iface,
arg);
688 FIXME(
"(%p,%p): stub\n", iface,
arg);
694 FIXME(
"(%p,%p): stub\n", iface,
arg);
700 FIXME(
"(%p,%p): stub\n", iface,
arg);
712 FIXME(
"(%p,%p): stub\n", iface,
arg);
718 FIXME(
"(%p): stub\n", iface);
751 FIXME(
"(%p): stub\n", iface);
757 FIXME(
"(%p): stub\n", iface);
824 This->palette_set = 0;
829 This->width = uiWidth;
830 This->height = uiHeight;
840 This->cs.DebugInfo->Spare[0] = (
DWORD_PTR)(__FILE__
": BitmapImpl.lock");
842 *ppIBitmap = &
This->IWICBitmap_iface;
#define InterlockedIncrement
#define InterlockedDecrement
#define WINE_DEFAULT_DEBUG_CHANNEL(t)
void copy_pixels(const BYTE *src, UINT src_row_pitch, UINT src_slice_pitch, BYTE *dst, UINT dst_row_pitch, UINT dst_slice_pitch, const struct volume *size, const struct pixel_format_desc *format) DECLSPEC_HIDDEN
static __inline const char * wine_dbgstr_longlong(ULONGLONG ll)
BOOL WINAPI InitializeCriticalSectionEx(OUT LPCRITICAL_SECTION lpCriticalSection, IN DWORD dwSpinCount, IN DWORD flags)
static HRESULT WINAPI BitmapLockImpl_QueryInterface(IWICBitmapLock *iface, REFIID iid, void **ppv)
static void BitmapImpl_ReleaseLock(BitmapImpl *This)
static HRESULT WINAPI IMILUnknown2Impl_QueryInterface(IMILUnknown2 *iface, REFIID iid, void **ppv)
static const struct @623 pixel_fmt_map[]
static HRESULT WINAPI IMILBitmapImpl_QueryInterface(IMILBitmap *iface, REFIID iid, void **ppv)
static HRESULT WINAPI BitmapLockImpl_GetDataPointer(IWICBitmapLock *iface, UINT *pcbBufferSize, BYTE **ppbData)
static ULONG WINAPI IMILUnknown1Impl_AddRef(IMILUnknown1 *iface)
HRESULT WINAPI IMILUnknown1Impl_unknown8(IMILUnknown1 *iface)
static HRESULT WINAPI IMILBitmapImpl_unknown1(IMILBitmap *iface, void **ppv)
static BitmapImpl * impl_from_IMILBitmap(IMILBitmap *iface)
static const IMILBitmapVtbl IMILBitmapImpl_Vtbl
static HRESULT WINAPI BitmapImpl_CopyPalette(IWICBitmap *iface, IWICPalette *pIPalette)
static HRESULT WINAPI IMILUnknown2Impl_unknown1(IMILUnknown2 *iface, void *arg1, void **arg2)
static HRESULT WINAPI IMILBitmapImpl_CopyPalette(IMILBitmap *iface, IWICPalette *palette)
static BOOL BitmapImpl_AcquireLock(BitmapImpl *This, int write)
static HRESULT WINAPI IMILBitmapImpl_CopyPixels(IMILBitmap *iface, const WICRect *rc, UINT stride, UINT size, BYTE *buffer)
static ULONG WINAPI BitmapLockImpl_Release(IWICBitmapLock *iface)
static HRESULT WINAPI BitmapLockImpl_GetStride(IWICBitmapLock *iface, UINT *pcbStride)
static BitmapImpl * impl_from_IMILUnknown1(IMILUnknown1 *iface)
static HRESULT WINAPI IMILBitmapImpl_SetPalette(IMILBitmap *iface, IWICPalette *palette)
static HRESULT WINAPI IMILUnknown1Impl_unknown6(IMILUnknown1 *iface, DWORD64 arg)
static HRESULT WINAPI IMILBitmapImpl_AddDirtyRect(IMILBitmap *iface, const WICRect *rc)
static HRESULT WINAPI IMILBitmapImpl_GetPixelFormat(IMILBitmap *iface, int *format)
static HRESULT WINAPI IMILUnknown1Impl_unknown7(IMILUnknown1 *iface, void *arg)
static ULONG WINAPI BitmapImpl_AddRef(IWICBitmap *iface)
static BitmapLockImpl * impl_from_IWICBitmapLock(IWICBitmapLock *iface)
static HRESULT WINAPI BitmapLockImpl_GetSize(IWICBitmapLock *iface, UINT *puiWidth, UINT *puiHeight)
static HRESULT WINAPI BitmapImpl_GetPixelFormat(IWICBitmap *iface, WICPixelFormatGUID *pPixelFormat)
static ULONG WINAPI IMILUnknown2Impl_AddRef(IMILUnknown2 *iface)
static HRESULT WINAPI BitmapImpl_QueryInterface(IWICBitmap *iface, REFIID iid, void **ppv)
static HRESULT WINAPI IMILUnknown1Impl_unknown2(IMILUnknown1 *iface, void *arg1, void *arg2)
HRESULT BitmapImpl_Create(UINT uiWidth, UINT uiHeight, UINT stride, UINT datasize, void *view, UINT offset, REFWICPixelFormatGUID pixelFormat, WICBitmapCreateCacheOption option, IWICBitmap **ppIBitmap)
static HRESULT WINAPI BitmapLockImpl_GetPixelFormat(IWICBitmapLock *iface, WICPixelFormatGUID *pPixelFormat)
static ULONG WINAPI IMILUnknown1Impl_Release(IMILUnknown1 *iface)
static HRESULT WINAPI IMILUnknown1Impl_QueryInterface(IMILUnknown1 *iface, REFIID iid, void **ppv)
static HRESULT WINAPI IMILBitmapImpl_GetResolution(IMILBitmap *iface, double *dpix, double *dpiy)
static ULONG WINAPI IMILUnknown2Impl_Release(IMILUnknown2 *iface)
static HRESULT WINAPI BitmapImpl_Lock(IWICBitmap *iface, const WICRect *prcLock, DWORD flags, IWICBitmapLock **ppILock)
static BitmapImpl * impl_from_IWICBitmap(IWICBitmap *iface)
static HRESULT WINAPI IMILUnknown2Impl_unknown2(IMILUnknown2 *iface, void *arg1, void *arg2)
static HRESULT WINAPI IMILBitmapImpl_GetSize(IMILBitmap *iface, UINT *width, UINT *height)
static HRESULT WINAPI IMILUnknown1Impl_unknown5(IMILUnknown1 *iface, void *arg)
static HRESULT WINAPI BitmapImpl_GetResolution(IWICBitmap *iface, double *pDpiX, double *pDpiY)
static const IMILUnknown2Vtbl IMILUnknown2Impl_Vtbl
static HRESULT WINAPI IMILUnknown2Impl_unknown3(IMILUnknown2 *iface, void *arg1)
static HRESULT WINAPI BitmapImpl_SetResolution(IWICBitmap *iface, double dpiX, double dpiY)
static const IWICBitmapLockVtbl BitmapLockImpl_Vtbl
static HRESULT WINAPI IMILBitmapImpl_Lock(IMILBitmap *iface, const WICRect *rc, DWORD flags, IWICBitmapLock **lock)
static HRESULT WINAPI BitmapImpl_CopyPixels(IWICBitmap *iface, const WICRect *prc, UINT cbStride, UINT cbBufferSize, BYTE *pbBuffer)
static ULONG WINAPI IMILBitmapImpl_AddRef(IMILBitmap *iface)
static HRESULT WINAPI IMILBitmapImpl_Unlock(IMILBitmap *iface, IWICBitmapLock *lock)
static ULONG WINAPI BitmapLockImpl_AddRef(IWICBitmapLock *iface)
static ULONG WINAPI IMILBitmapImpl_Release(IMILBitmap *iface)
HRESULT WINAPI IMILUnknown1Impl_unknown3(IMILUnknown1 *iface, void *arg)
static HRESULT WINAPI IMILBitmapImpl_SetResolution(IMILBitmap *iface, double dpix, double dpiy)
static const IMILUnknown1Vtbl IMILUnknown1Impl_Vtbl
static const IWICBitmapVtbl BitmapImpl_Vtbl
static ULONG WINAPI BitmapImpl_Release(IWICBitmap *iface)
static HRESULT WINAPI BitmapImpl_GetSize(IWICBitmap *iface, UINT *puiWidth, UINT *puiHeight)
static HRESULT WINAPI BitmapImpl_SetPalette(IWICBitmap *iface, IWICPalette *pIPalette)
static HRESULT WINAPI IMILUnknown1Impl_unknown4(IMILUnknown1 *iface, void *arg)
void WINAPI IMILUnknown1Impl_unknown1(IMILUnknown1 *iface, void *arg)
HRESULT get_pixelformat_bpp(const GUID *pixelformat, UINT *bpp)
HRESULT PaletteImpl_Create(IWICPalette **palette)
GLint GLenum GLsizei GLsizei GLsizei GLint GLsizei const GLvoid * data
GLint GLint GLsizei GLsizei height
GLint GLint GLsizei width
GLuint GLuint GLuint GLuint arg1
GLuint GLuint GLuint GLuint GLuint GLuint GLuint arg2
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
#define InterlockedCompareExchangePointer
#define InterlockedCompareExchange
#define memcpy(s1, s2, n)
#define DEFINE_THISCALL_WRAPPER(func, args)
#define DEFINE_GUID(name, l, w1, w2, b1, b2, b3, b4, b5, b6, b7, b8)
#define IsEqualGUID(rguid1, rguid2)
#define IsEqualIID(riid1, riid2)
IMILUnknown1 IMILUnknown1_iface
IMILUnknown2 IMILUnknown2_iface
IWICBitmap IWICBitmap_iface
IMILBitmap IMILBitmap_iface
WICPixelFormatGUID pixelformat
IWICBitmapLock IWICBitmapLock_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)
WICBitmapCreateCacheOption
static const char * debug_wic_rect(const WICRect *rect)
#define WINCODEC_ERR_ALREADYLOCKED
#define WINCODEC_ERR_PALETTEUNAVAILABLE
#define WINCODEC_ERR_INSUFFICIENTBUFFER
#define RTL_CRITICAL_SECTION_FLAG_FORCE_DEBUG_INFO