📄 libmng.h
字号:
#ifdef MNG_SUPPORT_READ
MNG_EXT mng_retcode MNG_DECL mng_setcb_readdata (mng_handle hHandle,
mng_readdata fProc);
#endif
/* write callback */
/* called to put data into the outputstream */
#ifdef MNG_SUPPORT_WRITE
MNG_EXT mng_retcode MNG_DECL mng_setcb_writedata (mng_handle hHandle,
mng_writedata fProc);
#endif
/* error callback */
/* called when an error occurs */
/* the application can determine if the error is recoverable,
and may inform the library by setting specific returncodes */
MNG_EXT mng_retcode MNG_DECL mng_setcb_errorproc (mng_handle hHandle,
mng_errorproc fProc);
/* trace callback */
/* called to show the currently executing function */
#ifdef MNG_SUPPORT_TRACE
MNG_EXT mng_retcode MNG_DECL mng_setcb_traceproc (mng_handle hHandle,
mng_traceproc fProc);
#endif
/* callbacks for read processing */
/* processheader is called when all header information has been gathered
from the inputstream */
/* processtext is called for every tEXt, zTXt and iTXt chunk in the
inputstream (iType=0 for tEXt, 1 for zTXt and 2 for iTXt);
you can call get_imagelevel to check at what nesting-level the chunk is
encountered (eg. tEXt inside an embedded image inside a MNG -> level == 2;
in most other case -> level == 1) */
/* processsave & processseek are called for SAVE/SEEK chunks */
/* processneed is called for the nEED chunk; you should specify a callback
for this as the default behavior will be to abort processing, unless
the requirement is one of:
- a supported chunk
- the text "draft nn" where nn is a numeric value
- the text "MNG-1.0" or "MNG-1.1"
- the text "CACHEOFF" */
/* processmend is called at the very end of the animation-stream;
note that this may not be the end of the animation though! */
/* processterm is called when a TERM chunk is encountered; there can be only
1 in the stream (or none) */
/* processunknown is called after reading each non-critical unknown chunk */
#ifdef MNG_SUPPORT_READ
MNG_EXT mng_retcode MNG_DECL mng_setcb_processheader (mng_handle hHandle,
mng_processheader fProc);
MNG_EXT mng_retcode MNG_DECL mng_setcb_processtext (mng_handle hHandle,
mng_processtext fProc);
MNG_EXT mng_retcode MNG_DECL mng_setcb_processsave (mng_handle hHandle,
mng_processsave fProc);
MNG_EXT mng_retcode MNG_DECL mng_setcb_processseek (mng_handle hHandle,
mng_processseek fProc);
MNG_EXT mng_retcode MNG_DECL mng_setcb_processneed (mng_handle hHandle,
mng_processneed fProc);
MNG_EXT mng_retcode MNG_DECL mng_setcb_processmend (mng_handle hHandle,
mng_processmend fProc);
MNG_EXT mng_retcode MNG_DECL mng_setcb_processterm (mng_handle hHandle,
mng_processterm fProc);
MNG_EXT mng_retcode MNG_DECL mng_setcb_processunknown(mng_handle hHandle,
mng_processunknown fProc);
#endif
/* callbacks for display processing */
/* getcanvasline is called to get an access-pointer to a line on the
drawing-canvas */
/* getbkgdline is called to get an access-pointer to a line from the
background-canvas */
/* refresh is called to inform the GUI to redraw the current canvas onto
it's output device (eg. in Win32 this would mean sending an
invalidate message for the specified region */
/* NOTE that the update-region is specified as x,y,width,height; eg. the
invalidate message for Windows requires left,top,right,bottom parameters
where the bottom-right is exclusive of the region!!
to get these correctly is as simple as:
left = x;
top = y;
right = x + width;
bottom = y + height;
if your implementation requires inclusive points, simply subtract 1 from
both the right & bottom values calculated above.
*/
#ifdef MNG_SUPPORT_DISPLAY
MNG_EXT mng_retcode MNG_DECL mng_setcb_getcanvasline (mng_handle hHandle,
mng_getcanvasline fProc);
MNG_EXT mng_retcode MNG_DECL mng_setcb_getbkgdline (mng_handle hHandle,
mng_getbkgdline fProc);
MNG_EXT mng_retcode MNG_DECL mng_setcb_getalphaline (mng_handle hHandle,
mng_getalphaline fProc);
MNG_EXT mng_retcode MNG_DECL mng_setcb_refresh (mng_handle hHandle,
mng_refresh fProc);
/* timing callbacks */
/* gettickcount is called to get the system tickcount (milliseconds);
this is used to determine the remaining interval between frames */
/* settimer is called to inform the application that it should set a timer;
when the timer is triggered the app must call mng_display_resume */
MNG_EXT mng_retcode MNG_DECL mng_setcb_gettickcount (mng_handle hHandle,
mng_gettickcount fProc);
MNG_EXT mng_retcode MNG_DECL mng_setcb_settimer (mng_handle hHandle,
mng_settimer fProc);
/* color management callbacks */
/* called to transmit color management information to the application */
/* these are only used when you #define MNG_APP_CMS */
#ifdef MNG_APP_CMS
MNG_EXT mng_retcode MNG_DECL mng_setcb_processgamma (mng_handle hHandle,
mng_processgamma fProc);
MNG_EXT mng_retcode MNG_DECL mng_setcb_processchroma (mng_handle hHandle,
mng_processchroma fProc);
MNG_EXT mng_retcode MNG_DECL mng_setcb_processsrgb (mng_handle hHandle,
mng_processsrgb fProc);
MNG_EXT mng_retcode MNG_DECL mng_setcb_processiccp (mng_handle hHandle,
mng_processiccp fProc);
MNG_EXT mng_retcode MNG_DECL mng_setcb_processarow (mng_handle hHandle,
mng_processarow fProc);
#endif /* MNG_APP_CMS */
#endif /* MNG_SUPPORT_DISPLAY */
/* release push data callback */
/* used when the app pushes data into libmng (as opposed to libmng pulling it)
and relinquishes ownership of the pushed data-buffer, but *does* want to
release (free) the buffer itself once libmng has finished processing it */
#ifdef MNG_SUPPORT_READ
MNG_EXT mng_retcode MNG_DECL mng_setcb_releasedata (mng_handle hHandle,
mng_releasedata fProc);
#endif
/* ************************************************************************** */
/* * * */
/* * Callback get functions * */
/* * * */
/* ************************************************************************** */
/* see _setcb_ */
#ifndef MNG_INTERNAL_MEMMNGMT
MNG_EXT mng_memalloc MNG_DECL mng_getcb_memalloc (mng_handle hHandle);
MNG_EXT mng_memfree MNG_DECL mng_getcb_memfree (mng_handle hHandle);
#endif
/* see _setcb_ */
#ifdef MNG_SUPPORT_READ
MNG_EXT mng_releasedata MNG_DECL mng_getcb_releasedata (mng_handle hHandle);
#endif
/* see _setcb_ */
#if defined(MNG_SUPPORT_READ) || defined(MNG_WRITE_SUPPORT)
#ifndef MNG_NO_OPEN_CLOSE_STREAM
MNG_EXT mng_openstream MNG_DECL mng_getcb_openstream (mng_handle hHandle);
MNG_EXT mng_closestream MNG_DECL mng_getcb_closestream (mng_handle hHandle);
#endif
#endif
/* see _setcb_ */
#ifdef MNG_SUPPORT_READ
MNG_EXT mng_readdata MNG_DECL mng_getcb_readdata (mng_handle hHandle);
#endif
/* see _setcb_ */
#ifdef MNG_SUPPORT_WRITE
MNG_EXT mng_writedata MNG_DECL mng_getcb_writedata (mng_handle hHandle);
#endif
/* see _setcb_ */
MNG_EXT mng_errorproc MNG_DECL mng_getcb_errorproc (mng_handle hHandle);
/* see _setcb_ */
#ifdef MNG_SUPPORT_TRACE
MNG_EXT mng_traceproc MNG_DECL mng_getcb_traceproc (mng_handle hHandle);
#endif
/* see _setcb_ */
#ifdef MNG_SUPPORT_READ
MNG_EXT mng_processheader MNG_DECL mng_getcb_processheader (mng_handle hHandle);
MNG_EXT mng_processtext MNG_DECL mng_getcb_processtext (mng_handle hHandle);
MNG_EXT mng_processsave MNG_DECL mng_getcb_processsave (mng_handle hHandle);
MNG_EXT mng_processseek MNG_DECL mng_getcb_processseek (mng_handle hHandle);
MNG_EXT mng_processneed MNG_DECL mng_getcb_processneed (mng_handle hHandle);
MNG_EXT mng_processunknown MNG_DECL mng_getcb_processunknown (mng_handle hHandle);
MNG_EXT mng_processterm MNG_DECL mng_getcb_processterm (mng_handle hHandle);
#endif
/* see _setcb_ */
#ifdef MNG_SUPPORT_DISPLAY
MNG_EXT mng_getcanvasline MNG_DECL mng_getcb_getcanvasline (mng_handle hHandle);
MNG_EXT mng_getbkgdline MNG_DECL mng_getcb_getbkgdline (mng_handle hHandle);
MNG_EXT mng_getalphaline MNG_DECL mng_getcb_getalphaline (mng_handle hHandle);
MNG_EXT mng_refresh MNG_DECL mng_getcb_refresh (mng_handle hHandle);
/* see _setcb_ */
MNG_EXT mng_gettickcount MNG_DECL mng_getcb_gettickcount (mng_handle hHandle);
MNG_EXT mng_settimer MNG_DECL mng_getcb_settimer (mng_handle hHandle);
/* see _setcb_ */
#ifdef MNG_APP_CMS
MNG_EXT mng_processgamma MNG_DECL mng_getcb_processgamma (mng_handle hHandle);
MNG_EXT mng_processchroma MNG_DECL mng_getcb_processchroma (mng_handle hHandle);
MNG_EXT mng_processsrgb MNG_DECL mng_getcb_processsrgb (mng_handle hHandle);
MNG_EXT mng_processiccp MNG_DECL mng_getcb_processiccp (mng_handle hHandle);
MNG_EXT mng_processarow MNG_DECL mng_getcb_processarow (mng_handle hHandle);
#endif /* MNG_APP_CMS */
#endif /* MNG_SUPPORT_DISPLAY */
/* ************************************************************************** */
/* * * */
/* * Property set functions * */
/* * * */
/* ************************************************************************** */
/* Application data pointer */
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -