/* vim:expandtab:ts=2 sw=2:
*/
/*  Grafx2 - The Ultimate 256-color bitmap paint program
    Copyright 2007 Adrien Destugues
    Copyright 1996-2001 Sunset Design (Guillaume Dorme & Karl Maritaud)
    Grafx2 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; version 2
    of the License.
    Grafx2 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 Grafx2; if not, see 
*/
//////////////////////////////////////////////////////////////////////////////
///@file op_c.h
/// Color reduction and color conversion (24b->8b, RGB<->HSL).
/// This is called op_c because half of the process was originally 
/// coded in op_asm, in assembler.
//////////////////////////////////////////////////////////////////////////////
#ifndef _OP_C_H_
#define _OP_C_H_
#include "struct.h"
//////////////////////////////////////////////// Définition des types de base
typedef T_Components * T_Bitmap24B;
typedef byte * T_Bitmap256;
//////////////////////////////////////// Définition d'une table de conversion
typedef struct
{
  int nbb_r; // Nb de bits de précision sur les rouges
  int nbb_g; // Nb de bits de précision sur les verts
  int nbb_b; // Nb de bits de précision sur les bleu
  int rng_r; // Nb de valeurs sur les rouges (= 1<