X-Git-Url: https://www.chiark.greenend.org.uk/ucgi/~yarrgweb/git?p=ypp-sc-tools.web-live.git;a=blobdiff_plain;f=pctb%2Fstructure.h;fp=pctb%2Fstructure.h;h=0000000000000000000000000000000000000000;hp=263a26ad86fe1e8ea5e0ee588b88d4c1cba0393a;hb=c68fb80a6bbf7acbcac4b2cb2143f5fea745cd2b;hpb=b9cce976550d000f15e5a8f2b690740bdae1e468 diff --git a/pctb/structure.h b/pctb/structure.h deleted file mode 100644 index 263a26a..0000000 --- a/pctb/structure.h +++ /dev/null @@ -1,91 +0,0 @@ -/* - * Image canonicalisation function for use by callers feeding - * images into structure.c's routines. - */ -/* - * This is part of ypp-sc-tools, a set of third-party tools for assisting - * players of Yohoho Puzzle Pirates. - * - * Copyright (C) 2009 Ian Jackson - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - * - * Yohoho and Puzzle Pirates are probably trademarks of Three Rings and - * are used without permission. This program is not endorsed or - * sponsored by Three Rings. - */ - -#ifndef STRUCTURE_H -#define STRUCTURE_H - - -#include "convert.h" - - -typedef struct { char blue2[256]; } CanonColourInfoBlues; -typedef struct { CanonColourInfoBlues *green2[256]; } CanonColourInfoGreens; -typedef struct { CanonColourInfoGreens *red2[256]; } CanonColourInfoReds; -extern CanonColourInfoReds canoncolourinfo_tree; - -CanonImage *alloc_canon_image(int w, int h); - -static inline char canon_lookup_colour(unsigned char r, - unsigned char g, - unsigned char b) { - CanonColourInfoGreens *greens= canoncolourinfo_tree.red2[r]; - if (!greens) return '?'; - CanonColourInfoBlues *blues= greens->green2[g]; - if (!blues) return '?'; - return blues->blue2[b]; -} - -#define CANONICALISE_IMAGE(im,w,h,rgb_save, COMPUTE_RGB) do{ \ - /* compute_rgb should be a number of statements, or \ - * a block, which assigns to \ - * Rgb rgb; \ - * given the values of \ - * int x,y; \ - * all of which are anamorphic. Result is stored in im. \ - * The COMPUTE_RGB is executed exactly once for \ - * each pixel in reading order. \ - */ \ - (im)= alloc_canon_image((w), (h)); \ - (rgb_save)= alloc_rgb_image((w), (h)); \ - \ - int x,y; \ - for (y=0; y<(h); y++) { \ - for (x=0; x<(w); x++) { \ - Rgb rgb; \ - COMPUTE_RGB; \ - CANONIMG_ALSO_STORERGB((rgb_save)); \ - (im)->d[y*(w) + x]= canon_lookup_colour(rgb, rgb>>8, rgb>>16); \ - } \ - if (DEBUGP(rect)) { \ - fprintf(debug, "%4d ",y); \ - fwrite(im->d + y*(w), 1,(w), debug); \ - fputc('\n',debug); \ - } \ - } \ - debug_flush(); \ - }while(0) - - -#define CANONIMG_ALSO_STORERGB(ri) \ - do{ \ - Rgb *rip= RI_PIXEL32((ri),x,y); \ - *rip= rgb; \ - }while(0) - - -#endif /*STRUCTURE_H*/