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

📄 gd_io.c

📁 Linux/Unix下的绘图函数库(Graphic Drawing Library)
💻 C
字号:
/*   * io.c   *   * Implements the simple I/O 'helper' routines.   *   * Not really essential, but these routines were used extensively in GD,   * so they were moved here. They also make IOCtx calls look better...   *   * Written (or, at least, moved) 1999, Philip Warner.   * */#ifdef HAVE_CONFIG_H#include "config.h"#endif#include <math.h>#include <string.h>#include <stdlib.h>#include "gd.h"/* Use this for commenting out debug-print statements. *//* Just use the first '#define' to allow all the prints... *//*#define IO_DBG(s) (s) */#define IO_DBG(s)/* * Write out a word to the I/O context pointer */voidPutword (int w, gdIOCtx * ctx){  unsigned char buf[2];  buf[0] = w & 0xff;  buf[1] = (w / 256) & 0xff;  (ctx->putBuf) (ctx, (char *) buf, 2);}voidPutchar (int c, gdIOCtx * ctx){  (ctx->putC) (ctx, c & 0xff);}voidgdPutC (const unsigned char c, gdIOCtx * ctx){  (ctx->putC) (ctx, c);}voidgdPutWord (int w, gdIOCtx * ctx){  IO_DBG (printf ("Putting word...\n"));  (ctx->putC) (ctx, (unsigned char) (w >> 8));  (ctx->putC) (ctx, (unsigned char) (w & 0xFF));  IO_DBG (printf ("put.\n"));}voidgdPutInt (int w, gdIOCtx * ctx){  IO_DBG (printf ("Putting int...\n"));  (ctx->putC) (ctx, (unsigned char) (w >> 24));  (ctx->putC) (ctx, (unsigned char) ((w >> 16) & 0xFF));  (ctx->putC) (ctx, (unsigned char) ((w >> 8) & 0xFF));  (ctx->putC) (ctx, (unsigned char) (w & 0xFF));  IO_DBG (printf ("put.\n"));}intgdGetC (gdIOCtx * ctx){  return ((ctx->getC) (ctx));}intgdGetByte (int *result, gdIOCtx * ctx){  int r;  r = (ctx->getC) (ctx);  if (r == EOF)    {      return 0;    }  *result = r;  return 1;}intgdGetWord (int *result, gdIOCtx * ctx){  int r;  r = (ctx->getC) (ctx);  if (r == EOF)    {      return 0;    }  *result = r << 8;  r = (ctx->getC) (ctx);  if (r == EOF)    {      return 0;    }  *result += r;  return 1;}intgdGetInt (int *result, gdIOCtx * ctx){  int r;  r = (ctx->getC) (ctx);  if (r == EOF)    {      return 0;    }  *result = r << 24;  r = (ctx->getC) (ctx);  if (r == EOF)    {      return 0;    }  *result += r << 16;  r = (ctx->getC) (ctx);  if (r == EOF)    {      return 0;    }  *result += r << 8;  r = (ctx->getC) (ctx);  if (r == EOF)    {      return 0;    }  *result += r;  return 1;}intgdPutBuf (const void *buf, int size, gdIOCtx * ctx){  IO_DBG (printf ("Putting buf...\n"));  return (ctx->putBuf) (ctx, buf, size);  IO_DBG (printf ("put.\n"));}intgdGetBuf (void *buf, int size, gdIOCtx * ctx){  return (ctx->getBuf) (ctx, buf, size);}intgdSeek (gdIOCtx * ctx, const int pos){  IO_DBG (printf ("Seeking...\n"));  return ((ctx->seek) (ctx, pos));  IO_DBG (printf ("Done.\n"));}longgdTell (gdIOCtx * ctx){  IO_DBG (printf ("Telling...\n"));  return ((ctx->tell) (ctx));  IO_DBG (printf ("told.\n"));}

⌨️ 快捷键说明

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