Remove .gitignore do nothing is ignored.
[synfig.git] / synfig-core / trunk / src / modules / lyr_freetype / lyr_freetype.h
index 4de4b19..81261bc 100644 (file)
@@ -1,18 +1,23 @@
-/*! ========================================================================
-** Synfig
-** Template Header File
-** $Id: lyr_freetype.h,v 1.3 2005/01/24 03:08:17 darco Exp $
+/* === S Y N F I G ========================================================= */
+/*!    \file lyr_freetype.h
+**     \brief Header file for implementation of the "Text" layer
 **
-** 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
+**     Copyright (c) 2007, 2008 Chris Moore
 **
-** 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 ===========================================================
 **
 
 /* === H E A D E R S ======================================================= */
 
+//#ifdef __APPLE__
+//#define USE_MAC_FT_FUNCS     (1)
+//#endif
+
 #include <synfig/layer_composite.h>
 #include <synfig/vector.h>
 #include <synfig/color.h>
 #include FT_GLYPH_H
 #include <vector>
 
+#include <synfig/string.h>
+#include <synfig/time.h>
+#include <synfig/context.h>
+#include <synfig/paramdesc.h>
+#include <synfig/renddesc.h>
+#include <synfig/surface.h>
+#include <synfig/value.h>
+#include <synfig/valuenode.h>
+#include <synfig/canvas.h>
+
+
+#include <ETL/misc>
+
+#ifdef USE_MAC_FT_FUNCS
+       #include <CoreServices/CoreServices.h>
+       #include FT_MAC_H
+#endif
+
 /* === M A C R O S ========================================================= */
 
 /* === T Y P E D E F S ===================================================== */
@@ -59,28 +86,28 @@ struct TextLine
 
        TextLine():width(0) { }
        void clear_and_free();
-       
+
        int actual_height()const
        {
                int height(0);
-               
+
                std::vector<Glyph>::const_iterator iter;
                for(iter=glyph_table.begin();iter!=glyph_table.end();++iter)
                {
                        FT_BBox   glyph_bbox;
-       
+
                        //FT_Glyph_Get_CBox( glyphs[n], ft_glyph_bbox_pixels, &glyph_bbox );
                        FT_Glyph_Get_CBox( iter->glyph, ft_glyph_bbox_subpixels, &glyph_bbox );
-       
+
                        if(glyph_bbox.yMax>height)
                                height=glyph_bbox.yMax;
                }
                return height;
-       }       
+       }
 };
 
 
-class lyr_freetype : public synfig::Layer_Composite, public synfig::Layer_NoDeform
+class Layer_Freetype : public synfig::Layer_Composite, public synfig::Layer_NoDeform
 {
        SYNFIG_LAYER_MODULE_EXT
 private:
@@ -92,7 +119,7 @@ private:
        synfig::Vector size;
        synfig::Vector orient;
        synfig::Color color;
-       synfig::Point pos;
+       synfig::Point origin;
        synfig::Real compress;
        synfig::Real vcompress;
 
@@ -106,18 +133,20 @@ private:
        bool needs_sync_;
 
        void sync();
-       
+
+       synfig::Color color_func(const synfig::Point &x, int quality=10, float supersample=0)const;
+
        mutable synfig::Mutex mutex;
-       
+
 public:
-       lyr_freetype();
-       virtual ~lyr_freetype();
+       Layer_Freetype();
+       virtual ~Layer_Freetype();
 
        virtual bool set_param(const String & param, const synfig::ValueBase &value);
        virtual ValueBase get_param(const String & param)const;
-       virtual Color get_color(Context context, const Point &pos)const;
+       virtual Color get_color(Context context, const synfig::Point &pos)const;
        virtual bool accelerated_render(Context context,Surface *surface,int quality, const RendDesc &renddesc, ProgressCallback *cb)const;
-       
+
        virtual Vocab get_param_vocab()const;
 
        virtual bool set_version(const String &ver){if(ver=="0.1")old_version=true;return true;}