mirror of
git://git.sv.gnu.org/emacs.git
synced 2026-01-24 05:22:04 -08:00
* src/dispextern.h (struct image): Add field 'smoothing' for NTGUI. * src/image.c (image_set_transform): Assign the 'smoothing' field of the image struct. * src/w32gdiplus.h: Add references to more GDI+ functions. * src/w32image.c (gdiplus_init): Add references to more GDI+ functions. * src/w32term.c (w32_draw_image_foreground): If the image is marked for smoothing and GDI+ is available, draw it with GDI+ bilinear interpolation. * etc/NEWS: New entry for this change.
139 lines
6.7 KiB
C
139 lines
6.7 KiB
C
#ifdef WINDOWSNT
|
|
typedef GpStatus (WINGDIPAPI *GdiplusStartup_Proc)
|
|
(ULONG_PTR *, GdiplusStartupInput *, GdiplusStartupOutput *);
|
|
typedef VOID (WINGDIPAPI *GdiplusShutdown_Proc) (ULONG_PTR);
|
|
typedef GpStatus (WINGDIPAPI *GdipCreateFromHDC_Proc)
|
|
(HDC hdc, GpGraphics **graphics);
|
|
typedef GpStatus (WINGDIPAPI *GdipDeleteGraphics_Proc) (GpGraphics *graphics);
|
|
typedef GpStatus (WINGDIPAPI *GdipGetPropertyItemSize_Proc)
|
|
(GpImage *, PROPID, UINT *);
|
|
typedef GpStatus (WINGDIPAPI *GdipGetPropertyItem_Proc)
|
|
(GpImage *, PROPID, UINT, PropertyItem *);
|
|
typedef GpStatus (WINGDIPAPI *GdipImageGetFrameDimensionsCount_Proc)
|
|
(GpImage *, UINT *);
|
|
typedef GpStatus (WINGDIPAPI *GdipImageGetFrameDimensionsList_Proc)
|
|
(GpImage *, GUID *, UINT);
|
|
typedef GpStatus (WINGDIPAPI *GdipImageGetFrameCount_Proc)
|
|
(GpImage *, GDIPCONST GUID *, UINT *);
|
|
typedef GpStatus (WINGDIPAPI *GdipImageSelectActiveFrame_Proc)
|
|
(GpImage*, GDIPCONST GUID *, UINT);
|
|
typedef GpStatus (WINGDIPAPI *GdipCreateBitmapFromFile_Proc)
|
|
(WCHAR *, GpBitmap **);
|
|
typedef GpStatus (WINGDIPAPI *GdipCreateBitmapFromStream_Proc)
|
|
(IStream *, GpBitmap **);
|
|
typedef GpStatus (WINGDIPAPI *GdipCreateBitmapFromScan0_Proc)
|
|
(INT, INT, INT, PixelFormat, BYTE*, GpBitmap**);
|
|
typedef GpStatus (WINGDIPAPI *GdipCreateBitmapFromHBITMAP_Proc)
|
|
(HBITMAP hbm, HPALETTE hpal, GpBitmap** bitmap);
|
|
typedef GpStatus (WINGDIPAPI *GdipSetInterpolationMode_Proc)
|
|
(GpGraphics *graphics, InterpolationMode interpolationMode);
|
|
typedef GpStatus (WINGDIPAPI *GdipDrawImageRectRectI_Proc)
|
|
(GpGraphics *graphics, GpImage *image, INT dstx, INT dsty, INT dstwidth,
|
|
INT dstheight, INT srcx, INT srcy, INT srcwidth, INT srcheight,
|
|
GpUnit srcUnit, GDIPCONST GpImageAttributes* imageAttributes,
|
|
DrawImageAbort callback, VOID * callbackData);
|
|
typedef IStream * (WINAPI *SHCreateMemStream_Proc) (const BYTE *, UINT);
|
|
typedef GpStatus (WINGDIPAPI *GdipCreateHBITMAPFromBitmap_Proc)
|
|
(GpBitmap *, HBITMAP *, ARGB);
|
|
typedef GpStatus (WINGDIPAPI *GdipDisposeImage_Proc) (GpImage *);
|
|
typedef GpStatus (WINGDIPAPI *GdipGetImageHeight_Proc) (GpImage *, UINT *);
|
|
typedef GpStatus (WINGDIPAPI *GdipGetImageWidth_Proc) (GpImage *, UINT *);
|
|
typedef GpStatus (WINGDIPAPI *GdipGetImageEncodersSize_Proc) (UINT *, UINT *);
|
|
typedef GpStatus (WINGDIPAPI *GdipGetImageEncoders_Proc)
|
|
(UINT, UINT, ImageCodecInfo *);
|
|
typedef GpStatus (WINGDIPAPI *GdipLoadImageFromFile_Proc)
|
|
(GDIPCONST WCHAR *,GpImage **);
|
|
typedef GpStatus (WINGDIPAPI *GdipGetImageThumbnail_Proc)
|
|
(GpImage *, UINT, UINT, GpImage**, GetThumbnailImageAbort, VOID *);
|
|
typedef GpStatus (WINGDIPAPI *GdipSaveImageToFile_Proc)
|
|
(GpImage *, GDIPCONST WCHAR *, GDIPCONST CLSID *,
|
|
GDIPCONST EncoderParameters *);
|
|
typedef GpStatus (WINGDIPAPI *GdipImageRotateFlip_Proc)
|
|
(GpImage *image, RotateFlipType rfType);
|
|
|
|
extern GdiplusStartup_Proc fn_GdiplusStartup;
|
|
extern GdiplusShutdown_Proc fn_GdiplusShutdown;
|
|
extern GdipCreateFromHDC_Proc fn_GdipCreateFromHDC;
|
|
extern GdipDeleteGraphics_Proc fn_GdipDeleteGraphics;
|
|
extern GdipGetPropertyItemSize_Proc fn_GdipGetPropertyItemSize;
|
|
extern GdipGetPropertyItem_Proc fn_GdipGetPropertyItem;
|
|
extern GdipImageGetFrameDimensionsCount_Proc fn_GdipImageGetFrameDimensionsCount;
|
|
extern GdipImageGetFrameDimensionsList_Proc fn_GdipImageGetFrameDimensionsList;
|
|
extern GdipImageGetFrameCount_Proc fn_GdipImageGetFrameCount;
|
|
extern GdipImageSelectActiveFrame_Proc fn_GdipImageSelectActiveFrame;
|
|
extern GdipCreateBitmapFromFile_Proc fn_GdipCreateBitmapFromFile;
|
|
extern GdipCreateBitmapFromStream_Proc fn_GdipCreateBitmapFromStream;
|
|
extern GdipCreateBitmapFromHBITMAP_Proc fn_GdipCreateBitmapFromHBITMAP;
|
|
extern GdipDrawImageRectRectI_Proc fn_GdipDrawImageRectRectI;
|
|
extern GdipSetInterpolationMode_Proc fn_GdipSetInterpolationMode;
|
|
extern GdipCreateBitmapFromScan0_Proc fn_GdipCreateBitmapFromScan0;
|
|
extern SHCreateMemStream_Proc fn_SHCreateMemStream;
|
|
extern GdipCreateHBITMAPFromBitmap_Proc fn_GdipCreateHBITMAPFromBitmap;
|
|
extern GdipDisposeImage_Proc fn_GdipDisposeImage;
|
|
extern GdipGetImageHeight_Proc fn_GdipGetImageHeight;
|
|
extern GdipGetImageWidth_Proc fn_GdipGetImageWidth;
|
|
extern GdipGetImageEncodersSize_Proc fn_GdipGetImageEncodersSize;
|
|
extern GdipGetImageEncoders_Proc fn_GdipGetImageEncoders;
|
|
extern GdipLoadImageFromFile_Proc fn_GdipLoadImageFromFile;
|
|
extern GdipGetImageThumbnail_Proc fn_GdipGetImageThumbnail;
|
|
extern GdipSaveImageToFile_Proc fn_GdipSaveImageToFile;
|
|
extern GdipImageRotateFlip_Proc fn_GdipImageRotateFlip;
|
|
|
|
# undef GdiplusStartup
|
|
# undef GdiplusShutdown
|
|
# undef GdipGetPropertyItemSize
|
|
# undef GdipGetPropertyItem
|
|
# undef GdipImageGetFrameDimensionsCount
|
|
# undef GdipImageGetFrameDimensionsList
|
|
# undef GdipImageGetFrameCount
|
|
# undef GdipImageSelectActiveFrame
|
|
# undef GdipCreateBitmapFromFile
|
|
# undef GdipCreateBitmapFromStream
|
|
# undef GdipCreateBitmapFromScan0
|
|
# undef GdipCreateBitmapFromHBITMAP
|
|
# undef GdipCreateFromHDC
|
|
# undef GdipDrawImageRectRectI
|
|
# undef GdipSetInterpolationMode
|
|
# undef GdipDeleteGraphics
|
|
# undef SHCreateMemStream
|
|
# undef GdipCreateHBITMAPFromBitmap
|
|
# undef GdipDisposeImage
|
|
# undef GdipGetImageHeight
|
|
# undef GdipGetImageWidth
|
|
# undef GdipGetImageEncodersSize
|
|
# undef GdipGetImageEncoders
|
|
# undef GdipLoadImageFromFile
|
|
# undef GdipGetImageThumbnail
|
|
# undef GdipSaveImageToFile
|
|
# undef GdipSaveImageRotateFlip
|
|
|
|
# define GdiplusStartup fn_GdiplusStartup
|
|
# define GdiplusShutdown fn_GdiplusShutdown
|
|
# define GdipGetPropertyItemSize fn_GdipGetPropertyItemSize
|
|
# define GdipGetPropertyItem fn_GdipGetPropertyItem
|
|
# define GdipImageGetFrameDimensionsCount fn_GdipImageGetFrameDimensionsCount
|
|
# define GdipImageGetFrameDimensionsList fn_GdipImageGetFrameDimensionsList
|
|
# define GdipImageGetFrameCount fn_GdipImageGetFrameCount
|
|
# define GdipImageSelectActiveFrame fn_GdipImageSelectActiveFrame
|
|
# define GdipCreateBitmapFromFile fn_GdipCreateBitmapFromFile
|
|
# define GdipCreateBitmapFromStream fn_GdipCreateBitmapFromStream
|
|
# define GdipCreateBitmapFromScan0 fn_GdipCreateBitmapFromScan0
|
|
# define GdipCreateBitmapFromHBITMAP fn_GdipCreateBitmapFromHBITMAP
|
|
# define GdipCreateFromHDC fn_GdipCreateFromHDC
|
|
# define GdipDrawImageRectRectI fn_GdipDrawImageRectRectI
|
|
# define GdipSetInterpolationMode fn_GdipSetInterpolationMode
|
|
# define GdipDeleteGraphics fn_GdipDeleteGraphics
|
|
# define SHCreateMemStream fn_SHCreateMemStream
|
|
# define GdipCreateHBITMAPFromBitmap fn_GdipCreateHBITMAPFromBitmap
|
|
# define GdipDisposeImage fn_GdipDisposeImage
|
|
# define GdipGetImageHeight fn_GdipGetImageHeight
|
|
# define GdipGetImageWidth fn_GdipGetImageWidth
|
|
# define GdipGetImageEncodersSize fn_GdipGetImageEncodersSize
|
|
# define GdipGetImageEncoders fn_GdipGetImageEncoders
|
|
# define GdipLoadImageFromFile fn_GdipLoadImageFromFile
|
|
# define GdipGetImageThumbnail fn_GdipGetImageThumbnail
|
|
# define GdipSaveImageToFile fn_GdipSaveImageToFile
|
|
# define GdipImageRotateFlip fn_GdipImageRotateFlip
|
|
#endif
|
|
|
|
int w32_gdip_get_encoder_clsid (const char *type, CLSID *clsid);
|