home *** CD-ROM | disk | FTP | other *** search
/ Gold Fish 3 / goldfish_volume_3.bin / files / gfx / misc / imagefx_sdk / include / scan / draw.h < prev    next >
Encoding:
C/C++ Source or Header  |  1995-01-18  |  4.0 KB  |  141 lines

  1. /*
  2.  * ImageFX Development Header File
  3.  * Copyright © 1991-1995 Nova Design, Inc.
  4.  * Written by Thomas Krehbiel
  5.  *
  6.  * Drawing Definitions
  7.  *
  8.  */
  9.  
  10. #ifndef SCAN_DRAW_H
  11.  
  12.  
  13. /*
  14.  * Drawing Tool types (active drawing tool):
  15.  *
  16.  */
  17. enum Tool_Tag
  18. {
  19.    DT_NONE = 0,            /* No drawing */
  20.    DT_LINE,                /* Standard line */
  21.    DT_FREEHAND1,           /* Free hand, dotted line */
  22.    DT_FREEHAND2,           /* Free hand, solid line */
  23.    DT_BOX,                 /* Empty box */
  24.    DT_FILLEDBOX,           /* Filled box */
  25.    DT_OVAL,                /* Empty oval */
  26.    DT_FILLEDOVAL,          /* Filled Oval */
  27.    DT_POLY,                /* Polygon */
  28.    DT_FILLEDPOLY,          /* Filled polygon */
  29.    DT_TEXT,                /* Text (obsolete) */
  30.    DT_BRUSH,               /* Rectangular Brush */
  31.    DT_FREEBRUSH,           /* Freehand Brush */
  32.    DT_POLYBRUSH,           /* Polygon Brush */
  33.    DT_FREEFILL,            /* Filled Freehand */
  34.    DT_AIRBRUSH,            /* Airbrush */
  35.    DT_FLOOD,               /* Floodfill */
  36.    DT_CURVE,               /* Curve */
  37.    DT_MAGICWAND,           /* "Magic Wand" brush pickup */
  38.  
  39.    /*
  40.     * Private tools:
  41.     */
  42.    DT_HANDLE,              /* Set brush handle */
  43.    DT_STRETCH,             /* Stretch brush (NOT USED) */
  44.    DT_ROTATE               /* Rotate brush (NOT USED) */
  45. };
  46.  
  47.  
  48. /*
  49.  * Drawing Modes (OBSOLETE AS OF 2.0):
  50.  *
  51.  */
  52. enum DMode_Tag
  53. {
  54.    DM_NORMAL = 0,          /* Standard Matte */
  55.    DM_DARKEN,              /* Darken */
  56.    DM_LIGHTEN,             /* Lighten */
  57.    DM_COLOR,               /* Color Only */
  58.    DM_GRADIENT,            /* Gradient Fill */
  59.    DM_COLORIZE,            /* Colorize greyscale */
  60.    DM_HUE,                 /* Hue Only */
  61.    DM_SATURATION,          /* Saturation Only */
  62.    DM_VALUE,               /* Value Only */
  63.    DM_BLUR,                /* Blur Area */
  64.    DM_RUBTHRU,             /* Rubthrough to Swap */
  65.    DM_TRACE,               /* Trace through to other buffer */
  66.    DM_ADD,                 /* Add */
  67.    DM_PANTOGRAPH,          /* PantoGraph mode */
  68. };
  69.  
  70. #define DM_TINT   DM_HUE   /* Ancient compatibility, do not use */
  71. #define DM_LUMA   DM_VALUE /* Ancient compatibility, do not use */
  72.  
  73. /*
  74.  * Fill Mode Types:
  75.  *
  76.  */
  77. enum Fill_Tags
  78. {
  79.    FM_SOLID = 0,           /* Solid Fill */
  80.    FM_VERT,                /* Vertical Gradient */
  81.    FM_HORIZ,               /* Horizontal Gradient */
  82.    FM_RADIAL,              /* Radial Gradient */
  83.    FM_WHEEL,               /* Wheel Gradient (2.0) */
  84.    FM_DIAGLR,              /* Diagonal LR Gradient */
  85.    FM_DIAGRL,              /* Diagonal RL Gradient */
  86.    FM_CROSS,               /* Two Diagonal Patterns (UNUSED) */
  87.    FM_PATTERN,             /* Horizontal + Vertical Pattern (UNUSED) */
  88.    FM_BRUSH,               /* Tile with Brush */
  89.    FM_BRUSHWARP,           /* Warp brush into shape */
  90.    FM_BRICK,               /* Brick tile with Brush (2.0) */
  91. };
  92.  
  93. /*
  94.  * Edge Mode Types:
  95.  *
  96.  */
  97. enum Edge_Tag
  98. {
  99.    EM_NORMAL = 0,          /* Normal edge mode */
  100.    EM_ANTIALIAS,           /* Anti-alias edges */
  101.    EM_FEATHERIN,           /* "Feather" edges inward */
  102.    EM_FEATHEROUT,          /* "Feather" edges outward */
  103.    EM_FEATHERBOTH,         /* "Feather" edges both in and out (NOT USED) */
  104.    EM_RESTRICT             /* Restrict operations to edges (NOT USED) */
  105. };
  106.  
  107. /*
  108.  * Region Types:
  109.  *
  110.  */
  111. enum Area_Tag
  112. {
  113.    AT_FULL = 0,            /* Entire image */
  114.    AT_BOX,                 /* Rectangular Region */
  115.    AT_OVAL,                /* Oval Region (2.0) */
  116.    AT_POLY,                /* Polygon Region */
  117.    AT_FREE,                /* Freehand Region */
  118.    AT_FLOOD,               /* Flood region */
  119.    AT_BRUSH                /* Brush only */
  120. };
  121.  
  122. #define AT_WAND AT_FLOOD   /* Ancient compatibility - do not use */
  123.  
  124. /*
  125.  * POINT:
  126.  *
  127.  * Internally used to keep track of polygons and freehand drawing.
  128.  *
  129.  */
  130. typedef struct _POINT
  131. {
  132.    struct _POINT  *Next;   /* Next point */
  133.    short           Y, X;   /* This point's location */
  134.    short           Z;      /* Normally indicates pressure (ie. tablet) */
  135.    short           pad;
  136. } POINT;
  137.  
  138.  
  139. #define SCAN_DRAW_H
  140. #endif
  141.