chiark / gitweb /
no need for off colour - now background has everything off; fix colours and trim...
authorian <ian>
Sun, 26 Jun 2005 00:51:40 +0000 (00:51 +0000)
committerian <ian>
Sun, 26 Jun 2005 00:51:40 +0000 (00:51 +0000)
layout/Makefile
layout/plan-data-format.h
layout/plan-to-gui-data

index fc1c3b4259bfa9dbcbc42a5a3d4608959dbfb35d..165ffd8b2b5551589cb47a9547ff95af9e2cd17c 100644 (file)
@@ -25,8 +25,7 @@ default:      $(CPROGS) for-test-ui
 all:           default lpages layers extras
 for-test-ui:   ours.graph.c ours.redactgraph ours.raw.neato.ps \
                ours.redacted.neato.ps ours.layout-data.o \
-               ours.dgram-bot.segcmap subseg2display ui-plan-bot.ppm \
-               ui-plan-bot.o
+               ours.dgram-bot.segcmap ours.dgram-bot.plandata.c
 
 layers:                $(LAYERS)
 lpages:                $(LPAGES)
@@ -69,9 +68,6 @@ compose-segenco: compose-segenco.o
 %-pindata.asm: %.layout-data.c
                @:
 
-ui-plan-%.c:   plan-to-gui-data ours.dgram-%.segcmap ui-plan-%.ppm
-               ./$+ $o
-
 %.pin-info:    pin-info-gen ../pcb/%.net
                ./$< $* $o
 
index 822e4db3fdaba6096d8e9ad2869115171d11c0b6..1f5bc255b8448206a6f294253cdaa01a946a2cd2 100644 (file)
@@ -36,6 +36,5 @@ typedef struct {
 } PlanData;
 
 extern const PlanData ui_plan_data;
-extern const char ui_plan_colour_off[];
 
 #endif /*PLAN_DATA_FORMAT_H*/
index 436f090006b6a4506e447864f777fd57c8bda8cc..7b6af4c669cc46344998e18b6c7b2b085b44f345 100755 (executable)
@@ -59,16 +59,14 @@ our(%xpmdata);
 # $xpmdata{$style}{$namerhs}{Y}{Max}
 # $xpmdata{$style}{$namerhs}{Pixels}{$y}{$x}
 # $xpmdata{$style}{$namerhs}{Holey}
-# $xpmdata{$style}{$namerhs}{Partial}
 # $xpminstance{$instancename}{Data}= $xpmname
 
-sub xpmdata_setup ($$$$) {
-    my ($style, $namerhs, $holey, $partial)=@_;
+sub xpmdata_setup ($$$) {
+    my ($style, $namerhs, $holey)=@_;
     my ($xp,$xy);
     die if $xpmdata{$style}{$namerhs};
     $xp= $xpmdata{$style}{$namerhs}= {
        Holey => $holey,
-       Partial => $partial
        };
 }
 
@@ -83,7 +81,7 @@ our (@segnum_name,%movfeats,%movfeat_prefix,%movfeat_configbits);
 # $movfeat_prefix{$xpmname}
 # $movfeat_configbits{$xpmname}
 
-xpmdata_setup('background','',1,0);
+xpmdata_setup('background','',1);
 
 for (;;) {
     $!=0; defined($_=<>) or die $!;
@@ -94,9 +92,9 @@ for (;;) {
        $datum_basebit{$1}= $3;
     } elsif (m/^S ([0-9A-Z]+) (0x[0-9a-f]+)$/) {
        seteq(\$segnum_name[hex $2], $1, "segnum $2");
-       xpmdata_setup("bitmap","m_$1",1,1);
-       xpmdata_setup("on","_$1",1,1);
-       xpmdata_setup("bitmap","e_$1",1,1);
+       xpmdata_setup("bitmap","m_$1",1);
+       xpmdata_setup("on","_$1",1);
+       xpmdata_setup("bitmap","e_$1",1);
     } elsif (m/^F ([0-9A-Z]+) (0x[0-9a-f]+) ([A-Z]+) (0x[0-9a-f]+) (\d+)$/) {
        my ($xpmname,$bitno,$namerhs);
        seteq(\$segnum_name[hex $2], $1, "segnum $2 F $3");
@@ -104,12 +102,12 @@ for (;;) {
        $xpmname= $1.'_'.$3;
        $movfeat_prefix{$xpmname}= hex $4;
        $movfeat_configbits{$xpmname}= $5;
-       xpmdata_setup("on","u_$xpmname",1,1);
-       xpmdata_setup("bitmap","m_$xpmname",1,1);
+       xpmdata_setup("on","u_$xpmname",1);
+       xpmdata_setup("bitmap","m_$xpmname",1);
        for ($bitno=0; $bitno<$movfeat_configbits{$xpmname}; $bitno++) {
            $namerhs= "${xpmname}_${bitno}";
-           xpmdata_setup("on","_$namerhs",1,1);
-           xpmdata_setup("bitmap","e_$namerhs",1,1);
+           xpmdata_setup("on","_$namerhs",1);
+           xpmdata_setup("bitmap","e_$namerhs",1);
        }
     }
 }
@@ -136,13 +134,8 @@ print STDERR "xpm_sizes\n";
     foreach $rr (values %xpmdata) {
        foreach $xp (values %$rr) {
            foreach $xy (qw(X Y)) {
-               if ($xp->{Partial}) {
-                   $xp->{$xy}{Min}= $sz{$xy}-1;
-                   $xp->{$xy}{Max}= 0;
-               } else {
-                   $xp->{$xy}{Min}= 0;
-                   $xp->{$xy}{Max}= $sz{$xy}-1;
-               }
+               $xp->{$xy}{Min}= $sz{$xy}-1;
+               $xp->{$xy}{Max}= 0;
            }
        }
     }
@@ -176,11 +169,9 @@ sub xpmdata_pixel ($$$) {
 #print STDERR " set\n";
 }
 
-sub in_pixel () {
-    my ($pbytes, $namerhs);
-    $!=0; read(ARGV, $pbytes, 3) == 3 or die $!;
-    return if $pbytes eq "\xff\xff\xff";
-    my ($movfeat,%t,$xpmname,$segname,$datum,$k,$angstr,$bitno,$me);
+sub in_pixel ($) {
+    my ($pbytes) = @_;
+    my ($namerhs,$movfeat,%t,$xpmname,$segname,$datum,$k,$angstr,$bitno,$me);
     $pp= "$ARGV $p{X} $p{Y}";
     $datum= unpack 'V', $pbytes."\0";
     foreach $k (keys %datum_numbits) {
@@ -266,11 +257,16 @@ for (;;) {
     read_pixmap_header();
     $ARGV =~ m/.*\.p([0-9a-f]+)\b/ or die "$ARGV ?";
     $p{Movpos}= $1 eq 'f' ? '' : hex($1);
+    my ($pbytes,$x,$xsz);
+    $xsz= $sz{X};
     for ($p{Y}=0; $p{Y}<$sz{Y}; $p{Y}++) {
        printf STDERR "%s %d\r",$ARGV,$p{Y}
            unless $p{Y} % 100;
-       for ($p{X}=0; $p{X}<$sz{X}; $p{X}++) {
-           in_pixel();
+       for ($x=0; $x<$xsz; $x++) {
+           $!=0; read(ARGV, $pbytes, 3) == 3 or die $!;
+           next if $pbytes eq "\xff\xff\xff";
+           $p{X}= $x;
+           in_pixel($pbytes);
        }
     }
 }
@@ -301,7 +297,7 @@ sub xpm_cmap_entry ($$$) {
 sub xpm_cmap_rgbpermil($@) {
     my ($cmapname, @l) = @_;
     my ($pixchars, @rgb);
-    die "$cmapname @l" if @l % 4;
+    die "$cmapname @l ?" if @l % 4;
     while (@l) {
        ($pixchars, @rgb)= @l[0..3];  @l = @l[4..$#l];
        xpm_cmap_entry($cmapname, $pixchars,
@@ -359,18 +355,19 @@ sub xpm_cmap_angular($$$@) {
 
 sub cmaps_define () {
     my ($style,$inv,$ondet);
-    my (@background, @off, @otherposn);
+    my (@background, @projected, @off, @otherposn);
 
     @background= qw(100 100 100);
     @off= qw(0 0 0);
     @otherposn= qw(50 50 50);
+    @projected= qw(75 75 75);
     
     xpm_cmap("background","background");
-    xpm_cmap_rgbpermil('', 'off',@off);
     xpm_cmap_rgbpermil("background",
                       ' ', @background,
-                      qw(! 999 0 980
-                         = 75 75 75));
+                      '=', @projected,
+                      '!', @off);
+
     xpm_cmap("bitmap","bitmap");
     xpm_cmap_fixedbitmap("bitmap",'*');
     
@@ -469,11 +466,12 @@ sub xpmdata_output_all () {
 
 sub ppdr ($$$) {
     my ($style,$cmap,$namerhs) = @_;
-    my ($xpmd);
+    my ($xpmd, $backgd);
     $xpmd= $xpmdata{$style}{$namerhs};
+    $backgd= $xpmdata{'background'}{''};
 defined $xpmd or die "$style $cmap $namerhs ?";
-    return sprintf("{ %d,%d, p_%s_%s }",
-                   $xpmd->{X}{Min}, $xpmd->{Y}{Min},
+    return sprintf("{ %d-%d,%d-%d, p_%s_%s }",
+                  (map { $xpmd->{$_}{Min}, $backgd->{$_}{Min} } qw(X Y)),
                   $cmap, $namerhs);
 }