Difference between revisions of "Structures"

From Amiga Coding
Jump to: navigation, search
(New page: == graphics.library structures == __TOC__ ===ColorMap=== This structure is the primary storage for palette data. Color data itself is stored in two tables: ColorTable and LowColorBits. ...)
 
(graphics.library structures)
 
(4 intermediate revisions by the same user not shown)
Line 1: Line 1:
 
== graphics.library structures ==
 
== graphics.library structures ==
__TOC__
 
  
===ColorMap===
+
[[ColorMap]]
  
This structure is the primary storage for palette data.
+
[[DimensionInfo]]
  
Color data itself is stored in two tables: ColorTable and LowColorBits. These fields are actually pointer to arrays of UWORDs. Each UWORD corresponds to one color.
+
[[DisplayInfo]]
Number of UWORDs in these array is equal to Count value in this structure.
 
ColorTable stores upper nibbles of RGB values, LowColorBits stores low nibbles.
 
  
Example:<br/>
+
[[DisplayInfoHandle]]
color number 4, value: 0x00ABCDEF<br/>
 
ColorTable  [4] = 0x0ACE,<br/>
 
LowColorBits[4] = 0x0BDF<br/>
 
  
When setting a ColorTable entry upper nibble is kept unchanged instead of just zeroing it out. This means that this nibble is used for something by Amiga
+
[[MonitorInfo]]
chipset (perhaps alpha value for genlock?)
 
  
SpriteBase fields keep bank number, not a color number. On m68k Amiga colors are divided into
+
[[MonitorSpec]]
banks, 16 per each. So bank number is color number divided by 16. Base color is a number which
 
is added to all colors of the sprite in order to look up the actual palette entry.
 
  
<pre>
+
[[NameInto]]
struct ColorMap
 
{
 
    UBYTE Flags;      /* see below */
 
    UBYTE Type;      /* Colormap type (reflects version), see below */
 
    UWORD Count; /* Number of palette entries */
 
    APTR  ColorTable; /* Table of high nibbles of color values */
 
  
    /* The following fields are present only if Type >= COLORMAP_TYPE_V36 */
+
[[SpecialMonitor]]
    struct ViewPortExtra * cm_vpe; /* ViewPortExtra, for faster access */
 
 
 
    APTR  LowColorBits; /* Table of low nibbles of color values */
 
    UBYTE TransparencyPlane;
 
    UBYTE SpriteResolution; /* see below */
 
    UBYTE SpriteResDefault;
 
    UBYTE AuxFlags;
 
 
 
    struct ViewPort * cm_vp; /* Points back to a ViewPort this colormap belongs to */
 
 
 
    APTR NormalDisplayInfo;
 
    APTR CoerceDisplayInfo;
 
 
 
    struct TagItem      * cm_batch_items;
 
    ULONG                VPModeID;
 
    struct PaletteExtra * PalExtra; /* Structure controlling palette sharing */
 
 
 
    UWORD SpriteBase_Even; /* Color bank for even sprites (see above) */
 
    UWORD SpriteBase_Odd; /* The same for odd sprites   */
 
    UWORD Bp_0_base;
 
    UWORD Bp_1_base;
 
};
 
 
 
/* Flags */
 
#define CMF_CMTRANS                0
 
#define COLORMAP_TRANSPARENCY  (1<<0)
 
#define CMF_CPTRANS                1
 
#define COLORPLANE_TRANSPARENCY (1<<1)
 
#define CMF_BRDRBLNK                2
 
#define BORDER_BLANKING        (1<<2)
 
#define CMF_BRDNTRAN                3
 
#define BORDER_NOTRANSPARENCY  (1<<3)
 
#define VIDEOCONTROL_BATCH      (1<<4)
 
#define USER_COPPER_CLIP        (1<<5)
 
#define CMF_BRDRSPRT                6
 
#define BORDERSPRITES          (1<<6)
 
 
 
/* Type */
 
#define COLORMAP_TYPE_V1_2 0
 
#define COLORMAP_TYPE_V36  1
 
#define COLORMAP_TYPE_V39  2
 
 
 
/* SpriteResolution */
 
#define SPRITERESN_ECS    0x00
 
#define SPRITERESN_140NS  0x01
 
#define SPRITERESN_70NS    0x02
 
#define SPRITERESN_35NS    0x03
 
#define SPRITERESN_DEFAULT 0xFF
 
</pre>
 
  
 
[[category:graphics.library]]
 
[[category:graphics.library]]

Latest revision as of 10:05, 13 July 2010