Index: trunk/src/libcschem/cnc_bitmap.h =================================================================== --- trunk/src/libcschem/cnc_bitmap.h (revision 926) +++ trunk/src/libcschem/cnc_bitmap.h (revision 927) @@ -29,6 +29,8 @@ #define CSCH_CONCRETE_BITMAP_H #include "libcschem/concrete.h" +typedef csch_uint32_t csch_pixel_t; /* rgb(a) color of pixelated objects */ + /* type=CSCH_CTYPE_BITMAP */ typedef struct csch_cbitmap_s { csch_chdr_t hdr; Index: trunk/src/libcschem/cnc_pen.h =================================================================== --- trunk/src/libcschem/cnc_pen.h (revision 926) +++ trunk/src/libcschem/cnc_pen.h (revision 927) @@ -28,6 +28,7 @@ #ifndef CSCH_CONCRETE_PEN_H #define CSCH_CONCRETE_PEN_H #include "libcschem/concrete.h" +#include "color.h" /* type=CSCH_CTYPE_PEN */ @@ -40,7 +41,7 @@ csch_chdr_t hdr; csch_pen_shape_t shape; csch_coord_t size; /* diameter or edge length */ - csch_pixel_t color; + pcb_color_t color; unsigned int dash; }; Index: trunk/src/libcschem/common_types.h =================================================================== --- trunk/src/libcschem/common_types.h (revision 926) +++ trunk/src/libcschem/common_types.h (revision 927) @@ -9,17 +9,10 @@ #define CSCH_INVALID_OID ((csch_oid_t)(0)) #define CSCH_MAX_OID ((csch_oid_t)0x7FFFFFFF) -typedef csch_uint32_t csch_color_t; /* rgb(a) color of vector objects */ -typedef csch_uint32_t csch_pixel_t; /* rgb(a) color of pixelated objects */ - #define CSCH_COORD_MIN ((csch_coord_t)(-((1UL<<31)-1))) #define CSCH_COORD_MAX ((csch_coord_t)(+((1UL<<31)-1))) #define CSCH_COORD_INV CSCH_COORD_MAX -#define csch_pixelr(p) (((p) & 0xFF000000) >> 24) -#define csch_pixelg(p) (((p) & 0x00FF0000) >> 16) -#define csch_pixelb(p) (((p) & 0x0000FF00) >> 8) - /* from concrete.h */ typedef struct csch_cpen_s csch_cpen_t; typedef struct csch_sheet_s csch_sheet_t; Index: trunk/src/libcschem/concrete.h =================================================================== --- trunk/src/libcschem/concrete.h (revision 926) +++ trunk/src/libcschem/concrete.h (revision 927) @@ -30,6 +30,7 @@ #include "global_typedefs.h" #include "hidlib.h" +#include "color.h" #include "libcschem/common_types.h" #include "libcschem/rtree.h" @@ -123,7 +124,7 @@ csch_cgrp_t direct, indirect; /* a sheet is really made of groups to keep the code simple */ /* (sheet attributes are in the direct, the indirect group is for the "local library") */ csch_oid_t dflt_pen; - csch_color_t dflt_fill; + pcb_color_t dflt_fill; char *dflt_font, *dflt_font_size, *dflt_font_style; char *loadname; /* original file name */ Index: trunk/src/plugins/export_animator/export_animator.c =================================================================== --- trunk/src/plugins/export_animator/export_animator.c (revision 926) +++ trunk/src/plugins/export_animator/export_animator.c (revision 927) @@ -58,8 +58,8 @@ { if (ctx->pen == pen) return; - if ((ctx->pen == NULL) || (ctx->pen->color != pen->color)) - fprintf(ctx->f, "color #%02x%02x%02x\n", csch_pixelr(pen->color), csch_pixelg(pen->color), csch_pixelb(pen->color)); + if ((ctx->pen == NULL) || (ctx->pen->color.packed != pen->color.packed)) + fprintf(ctx->f, "color #%02x%02x%02x\n", pen->color.r, pen->color.g, pen->color.b); ctx->pen = pen; } Index: trunk/src/plugins/io_lihata/read.c =================================================================== --- trunk/src/plugins/io_lihata/read.c (revision 926) +++ trunk/src/plugins/io_lihata/read.c (revision 927) @@ -287,10 +287,10 @@ /*** atomic object parsing ***/ -static int parse_color(read_ctx_t *ctx, csch_pixel_t *dst, const lht_node_t *src) +static int parse_color(read_ctx_t *ctx, pcb_color_t *dst, const lht_node_t *src) { char *end; - long l; + unsigned long l; if (src->type != LHT_TEXT) { error(src, ("color value must be text\n")); @@ -313,8 +313,8 @@ error(src, ("color value: invalid integer '%s' - out of bounds\n", src->data.text.value+1)); return -1; } - *dst = l << 8; - return 0; + l = l << 8; + return pcb_color_load_packed(dst, l); } static int parse_pen_shape(read_ctx_t *ctx, csch_pen_shape_t *dst, const lht_node_t *src)