Logo Search packages:      
Sourcecode: mtpaint version File versions  Download package

csel.h

/*    csel.h
      Copyright (C) 2006 Dmitry Groshev

      This file is part of mtPaint.

      mtPaint 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 2 of the License, or
      (at your option) any later version.

      mtPaint 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 mtPaint in the file COPYING.
*/

#include <gtk/gtk.h>

#define CMAPSIZE (64 * 64 * 64 / 16)

typedef struct
{
      /* Input fields */
      int center, limit, center_a, limit_a;
      int mode, invert;
      double range;
      /* Cache fields */
      guint32 colormap[CMAPSIZE * 2];
      guint32 pmap[256 / 32];
      int pcache[256], cbase, irange, amin, amax;
      double clxn[3], cvec, range2;
} csel_info;
#define CSEL_SVSIZE ((size_t)(&((csel_info *)0)->colormap))

csel_info *csel_data;
int csel_preview, csel_preview_a, csel_overlay;
double gamma256[256], gamma64[64];
double midgamma256[256], midgamma64[64];
double kgamma256, kgamma64;
extern unsigned char ungamma256[], ungamma64[];

#define UNGAMMA64(X) (ungamma64[(int)((X) * kgamma64)] - \
      ((X) < midgamma64[ungamma64[(int)((X) * kgamma64)]]))
#define UNGAMMA256(X) (ungamma256[(int)((X) * kgamma256)] - \
      ((X) < midgamma256[ungamma256[(int)((X) * kgamma256)]]))

double rgb2B(double r, double g, double b);
void rgb2LXN(double *tmp, double r, double g, double b);
void init_cols();
void get_lxn(double *lxn, int col);

int csel_scan(int start, int step, int cnt, unsigned char *mask,
      unsigned char *img, csel_info *info);
double csel_eval(int mode, int center, int limit);
void csel_reset(csel_info *info);
void csel_init();

Generated by  Doxygen 1.6.0   Back to index