⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 ipa.h

📁 下载来的一个看图软件的源代码
💻 H
字号:
/* libwmf (<libwmf/ipa.h>): library for wmf conversion   Copyright (C) 2000 - various; see CREDITS, ChangeLog, and sources   The libwmf Library is free software; you can redistribute it and/or   modify it under the terms of the GNU Library General Public License as   published by the Free Software Foundation; either version 2 of the   License, or (at your option) any later version.   The libwmf Library is distributed in the hope that it will be useful,   but WITHOUT ANY WARRANTY; without even the implied warranty of   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU   Library General Public License for more details.   You should have received a copy of the GNU Library General Public   License along with the libwmf Library; see the file COPYING.  If not,   write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,   Boston, MA 02111-1307, USA.  *//* Interface Programmable des Applications ?? */#ifndef LIBWMF_IPA_H#define LIBWMF_IPA_H#include <libwmf/types.h>#ifdef __cplusplusextern "C" {#endif/* Type declarations */typedef struct _wmfRGB                 wmfRGB;typedef struct _wmfBMP                 wmfBMP;typedef struct _wmfBrush               wmfBrush;typedef struct _wmfPen                 wmfPen;typedef struct _wmfFont                wmfFont;typedef struct _wmfFontData            wmfFontData;typedef struct _wmfColorData           wmfColorData;typedef struct _wmfDC                  wmfDC;typedef struct _wmfFlood_t             wmfFlood_t;typedef struct _wmfDrawPixel_t         wmfDrawPixel_t;typedef struct _wmfDrawArc_t           wmfDrawArc_t;typedef struct _wmfDrawLine_t          wmfDrawLine_t;typedef struct _wmfPolyLine_t          wmfPolyLine_t;typedef struct _wmfPolyPoly_t          wmfPolyPoly_t;typedef struct _wmfDrawRectangle_t     wmfDrawRectangle_t;typedef struct _wmfPolyRectangle_t     wmfPolyRectangle_t;typedef struct _wmfBMP_Read_t          wmfBMP_Read_t;typedef struct _wmfBMP_Draw_t          wmfBMP_Draw_t;typedef struct _wmfROP_Draw_t          wmfROP_Draw_t;typedef struct _wmfDrawText_t          wmfDrawText_t;typedef struct _wmfUserData_t          wmfUserData_t;typedef struct _wmfFunctionReference   wmfFunctionReference;typedef float (*wmfStringWidth) (wmfAPI*,wmfFont*,char*);typedef void  (*wmfMap)         (wmfAPI*,wmfFont*);/* Device-layer device-independent default functions */extern void   wmf_ipa_bmp_b64 (wmfAPI*,wmfBMP_Draw_t*,wmfStream*);extern void   wmf_ipa_bmp_png (wmfAPI*,wmfBMP_Draw_t*,char*);extern void   wmf_ipa_bmp_jpg (wmfAPI*,wmfBMP_Draw_t*,char*);extern void   wmf_ipa_bmp_eps (wmfAPI*,wmfBMP_Draw_t*,char*);extern void   wmf_ipa_bmp_read (wmfAPI*,wmfBMP_Read_t*);extern void   wmf_ipa_bmp_free (wmfAPI*,wmfBMP*);extern wmfBMP wmf_ipa_bmp_copy (wmfAPI*,wmfBMP*,unsigned int,unsigned int);extern int    wmf_ipa_bmp_color (wmfAPI*,wmfBMP*,wmfRGB*,unsigned int,unsigned int);extern void   wmf_ipa_bmp_setcolor (wmfAPI*,wmfBMP*,wmfRGB*,unsigned char,unsigned int,unsigned int);extern int    wmf_ipa_bmp_interpolate (wmfAPI*,wmfBMP*,wmfRGB*,float,float);extern void          wmf_ipa_color_init (wmfAPI*);extern void          wmf_ipa_color_add (wmfAPI*,wmfRGB*);extern unsigned long wmf_ipa_color_index (wmfAPI*,wmfRGB*);extern unsigned long wmf_ipa_color_count (wmfAPI*);extern wmfRGB*       wmf_ipa_color (wmfAPI*,unsigned long);extern char*        wmf_ipa_page_format (wmfAPI*,wmf_page_t);extern unsigned int wmf_ipa_page_width  (wmfAPI*,wmf_page_t);extern unsigned int wmf_ipa_page_height (wmfAPI*,wmf_page_t);/* Other useful functions */extern wmfRGB wmf_rgb_white (wmfAPI*);extern wmfRGB wmf_rgb_black (wmfAPI*);extern wmfRGB wmf_rgb_color (wmfAPI*,float,float,float);/* Structure definitions */struct _wmfRGB{	unsigned char r;	unsigned char g;	unsigned char b;};struct _wmfBMP{	U16 width;	U16 height;	void* data;};struct _wmfPen{	U16 lopnStyle;	double width;	double height;	wmfRGB lopnColor;};struct _wmfBrush{	U16 lbStyle;	U16 lbHatch;	wmfRGB lbColor;	wmfBMP bmp;};struct _wmfFont{	U16 lfHeight;	U16 lfWidth;	S16 lfEscapement;	S16 lfOrientation;	U16 lfWeight;	U8 lfItalic;	U8 lfUnderline;	U8 lfStrikeOut;	U8 lfCharSet;	U8 lfOutPrecision;	U8 lfClipPrecision;	U8 lfQuality;	U8 lfPitchAndFamily;	char* lfFaceName;	void* user_data;};/** * API->font_data is a pointer to a wmfFontData. wmf_api_create () sets this up automatically, but * wmf_lite_create () does not. If you use wmf_lite_create () then you \b must create your own * wmfFontData. \b libwmflite requires you to define \p map and \p stringwidth functions but the * rest of these fields are ignored (they are only used by \b libwmf). */struct _wmfFontData{	/**	 * Necessary field: exactly what the function does is irrelevant.	 */	wmfMap map;	/**	 * Necessary field: returns width of specified string in points, assuming (unstretched)	 * font size of 1pt.	 */	wmfStringWidth stringwidth;	/**	 * A handle for data, unused by libwmflite	 */	void* user_data;};struct _wmfColorData{	unsigned long max;	unsigned long count;	wmfRGB* rgb;};struct _wmfDC{	void* userdata;	wmfBrush* brush;	wmfPen* pen;	wmfFont* font;	wmfRGB textcolor;	wmfRGB bgcolor;	U16 textalign;	U16 bgmode;	U16 polyfillmode;	U16 charextra;	U16 breakextra;	U16 ROPmode;	struct	{	S32 Ox;		S32 Oy;		S32 width;		S32 height;	} Window;	double pixel_width; /* Display pixel dimensions (inches) */	double pixel_height;	U16 map_mode;	void* clip;};/* IPA info structures */struct _wmfFlood_t{	wmfDC* dc;	wmfD_Coord pt;	wmfRGB color;	U16 type;	double pixel_width;	double pixel_height;};struct _wmfDrawPixel_t{	wmfDC* dc;	wmfD_Coord pt;	wmfRGB color;	double pixel_width;	double pixel_height;};struct _wmfDrawArc_t{	wmfDC* dc;	wmfD_Coord TL;	wmfD_Coord BR;	wmfD_Coord start; /* draw_ellipse: (ignored) */	wmfD_Coord end;};struct _wmfDrawLine_t{	wmfDC* dc;	wmfD_Coord from;	wmfD_Coord to;};struct _wmfPolyLine_t{	wmfDC* dc;	wmfD_Coord* pt;	U16 count;};struct _wmfPolyPoly_t{	wmfDC* dc;	wmfD_Coord** pt; /* pt[i][*] = points of ith polygon */	U16* count;      /* points in ith polygon */	U16  npoly;      /* number of polygons */};struct _wmfDrawRectangle_t{	wmfDC* dc;	wmfD_Coord TL;	wmfD_Coord BR;	float width; /* draw_rectangle: axes of corner ellipses; zero if un-rounded */	float height;};struct _wmfPolyRectangle_t{	wmfDC* dc;	wmfD_Coord* TL; /* region_frame & region_paint: TL[count],BR[count] give the */	wmfD_Coord* BR; /* final `extents'... */	unsigned int count;	float width;  /* region_frame: border thickness; zero otherwise */	float height;};struct _wmfBMP_Read_t          /* Two means available for accessing BMP image:        */{	long offset;           /* (1) position in source file of start of BMP;        *                                * use API->bbuf.seek to set pos(ition), etc.          */	long length;           /* (2) buffer of length length containing image of BMP */	unsigned char* buffer;	U16 width;  /* WMF player may preset these values; zero otherwise. */	U16 height; /* Use caution - may be buggy... ?? [TODO]             */	wmfBMP bmp;};struct _wmfBMP_Draw_t{	wmfDC* dc;	wmfD_Coord pt;	wmfBMP bmp;	U32 type;	struct	{	U16 x;		U16 y;		U16 w;		U16 h;	} crop;	double pixel_width;	double pixel_height;};struct _wmfROP_Draw_t{	wmfDC* dc;	wmfD_Coord TL;	wmfD_Coord BR;	U32 ROP;	double pixel_width;	double pixel_height;};struct _wmfDrawText_t{	wmfDC* dc;	wmfD_Coord pt;	wmfD_Coord TL; /* Clip zone */	wmfD_Coord BR;	struct /* An estimated surround zone */	{	wmfD_Coord TL;		wmfD_Coord TR;		wmfD_Coord BL;		wmfD_Coord BR;	} bbox;	char* str;	U16 flags;	double font_height;	double font_ratio;  /* width to height ratio */};struct _wmfUserData_t	/* TODO: Need to be careful with usage here; not all these are set by the player! */{	wmfDC* dc;          /* dc is guaranteed */	void* data;         /* data also, except for init */};struct _wmfFunctionReference{	void (*device_open) (wmfAPI*);	void (*device_close) (wmfAPI*);	void (*device_begin) (wmfAPI*);	void (*device_end) (wmfAPI*);	void (*flood_interior) (wmfAPI*,wmfFlood_t*);	void (*flood_exterior) (wmfAPI*,wmfFlood_t*);	void (*draw_pixel) (wmfAPI*,wmfDrawPixel_t*);	void (*draw_pie) (wmfAPI*,wmfDrawArc_t*);	void (*draw_chord) (wmfAPI*,wmfDrawArc_t*);	void (*draw_arc) (wmfAPI*,wmfDrawArc_t*);	void (*draw_ellipse) (wmfAPI*,wmfDrawArc_t*);	void (*draw_line) (wmfAPI*,wmfDrawLine_t*);	void (*poly_line) (wmfAPI*,wmfPolyLine_t*);	void (*draw_polygon) (wmfAPI*,wmfPolyLine_t*);	void (*draw_polypolygon) (wmfAPI*,wmfPolyPoly_t*);	void (*draw_rectangle) (wmfAPI*,wmfDrawRectangle_t*);	void (*rop_draw) (wmfAPI*,wmfROP_Draw_t*);	void (*bmp_draw) (wmfAPI*,wmfBMP_Draw_t*);	void (*bmp_read) (wmfAPI*,wmfBMP_Read_t*);	void (*bmp_free) (wmfAPI*,wmfBMP*);	void (*draw_text) (wmfAPI*,wmfDrawText_t*);	void (*udata_init) (wmfAPI*,wmfUserData_t*);	void (*udata_copy) (wmfAPI*,wmfUserData_t*);	void (*udata_set) (wmfAPI*,wmfUserData_t*);	void (*udata_free) (wmfAPI*,wmfUserData_t*);	void (*region_frame) (wmfAPI*,wmfPolyRectangle_t*);	void (*region_paint) (wmfAPI*,wmfPolyRectangle_t*);	void (*region_clip) (wmfAPI*,wmfPolyRectangle_t*);};#ifdef __cplusplus}#endif#endif /* ! LIBWMF_IPA_H */

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -