X-Git-Url: https://git.pterodactylus.net/?a=blobdiff_plain;f=synfig-core%2Ftrunk%2Fsrc%2Fmodules%2Fmod_gif%2Ftrgt_gif.h;h=ae10e31d3a7407ffd4778ec22f6bd0d77cb9243e;hb=9459638ad6797b8139f1e9f0715c96076dbf0890;hp=381baed398ffdb29e617ccde1011162ce27902d2;hpb=16b3beced25134bef064705568ecb893a6be4e79;p=synfig.git diff --git a/synfig-core/trunk/src/modules/mod_gif/trgt_gif.h b/synfig-core/trunk/src/modules/mod_gif/trgt_gif.h index 381baed..ae10e31 100644 --- a/synfig-core/trunk/src/modules/mod_gif/trgt_gif.h +++ b/synfig-core/trunk/src/modules/mod_gif/trgt_gif.h @@ -1,18 +1,22 @@ -/*! ======================================================================== -** Sinfg -** Template Header File -** $Id: trgt_gif.h,v 1.1.1.1 2005/01/04 01:23:10 darco Exp $ +/* === S Y N F I G ========================================================= */ +/*! \file trgt_gif.h +** \brief Template Header ** -** Copyright (c) 2002 Robert B. Quattlebaum Jr. +** $Id$ ** -** This software and associated documentation -** are CONFIDENTIAL and PROPRIETARY property of -** the above-mentioned copyright holder. +** \legal +** Copyright (c) 2002-2005 Robert B. Quattlebaum Jr., Adrian Bentley ** -** You may not copy, print, publish, or in any -** other way distribute this software without -** a prior written agreement with -** the copyright holder. +** This package 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. +** +** This package 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. +** \endlegal ** ** === N O T E S =========================================================== ** @@ -20,17 +24,17 @@ /* === S T A R T =========================================================== */ -#ifndef __SINFG_TRGT_GIF_H -#define __SINFG_TRGT_GIF_H +#ifndef __SYNFIG_TRGT_GIF_H +#define __SYNFIG_TRGT_GIF_H /* === H E A D E R S ======================================================= */ -#include -#include -#include +#include +#include +#include #include -#include -#include +#include +#include /* === M A C R O S ========================================================= */ @@ -38,22 +42,22 @@ /* === C L A S S E S & S T R U C T S ======================================= */ -class gif : public sinfg::Target_Scanline +class gif : public synfig::Target_Scanline { - SINFG_TARGET_MODULE_EXT + SYNFIG_TARGET_MODULE_EXT private: // Class for abstracting the // output of the codes struct bitstream { - sinfg::SmartFILE file; + synfig::SmartFILE file; unsigned char pool; char curr_bit; bitstream():pool(0),curr_bit(0),curr_pos(0) {} - bitstream(sinfg::SmartFILE file):file(file),pool(0),curr_bit(0),curr_pos(0) {} + bitstream(synfig::SmartFILE file):file(file),pool(0),curr_bit(0),curr_pos(0) {} unsigned char buffer[256]; int curr_pos; - + // Pushes a single bit onto the bit void push_bit(bool bit) { @@ -63,8 +67,8 @@ private: if(curr_bit==8) empty(); } - - // Emptys out the current pool into + + // Empties out the current pool into // the buffer. Calls 'dump()' if the // buffer is full. void empty() @@ -74,9 +78,9 @@ private: pool=0; if(curr_pos==255)dump(); } - + // If there is anything in the - // buffer or in the pool, it + // buffer or in the pool, it // dumps it to the filestream. // Buffer and pool are cleared. void dump() @@ -90,7 +94,7 @@ private: curr_pos=0; } } - + // Pushes a symbol of the given size // onto the bitstream. void push_value(int value, int size) @@ -108,24 +112,24 @@ private: int code; // lzwcode struct lzwcode* kids; // children of this node struct lzwcode* next; // siblings of this node - + lzwcode():value(0),code(0),kids(0),next(0) { } - + lzwcode *FindCode(int value) { lzwcode *node=this; - + // check the children (kids) of the node for the value for (node = node->kids; node != 0; node = node->next) if (node->value == value) return(node); return(0); } - + void AddNode(unsigned short code, unsigned short value) { lzwcode *n = new lzwcode; - + // add a new child to node; the child will have code and value n->value = value; n->code = code; @@ -133,21 +137,21 @@ private: n->next = this->kids; this->kids = n; } - + static lzwcode * NewTable(int values) { int i; lzwcode * table = new lzwcode; - + table->kids = 0; for (i = 0; i < values; i++) table->AddNode( i, i); - + return(table); } - + // Destructor just deletes any - // children and sibblings. + // children and siblings. ~lzwcode() { if(kids) @@ -159,16 +163,16 @@ private: private: bitstream bs; - sinfg::String filename; - sinfg::SmartFILE file; - int + synfig::String filename; + synfig::SmartFILE file; + int i, // General-purpose index codesize, // Current code size - rootsize, // Size of pixel bits (will be recalculted) + rootsize, // Size of pixel bits (will be recalculated) nextcode; // Next code to use lzwcode *table,*next,*node; - - sinfg::Surface curr_surface; + + synfig::Surface curr_surface; etl::surface curr_frame; etl::surface prev_frame; @@ -184,22 +188,22 @@ private: int iframe_density; int loop_count; bool local_palette; - - sinfg::Palette curr_palette; - + + synfig::Palette curr_palette; + void output_curr_palette(); - + public: gif(const char *filename); - virtual bool set_rend_desc(sinfg::RendDesc *desc); + virtual bool set_rend_desc(synfig::RendDesc *desc); virtual bool init(); - virtual bool start_frame(sinfg::ProgressCallback *cb); + virtual bool start_frame(synfig::ProgressCallback *cb); virtual void end_frame(); virtual ~gif(); - - virtual sinfg::Color * start_scanline(int scanline); + + virtual synfig::Color * start_scanline(int scanline); virtual bool end_scanline(void); };