X-Git-Url: https://git.pterodactylus.net/?a=blobdiff_plain;f=synfig-core%2Ftrunk%2Fsrc%2Fsynfig%2Fsurfacenew.h;h=d99eec0b0d4af5d9ff5be53d2a6396c68bbcd2d4;hb=9459638ad6797b8139f1e9f0715c96076dbf0890;hp=0fcafe71006018df4e683f2d901c53532b063938;hpb=28f28705612902c15cd0702cc891fba35bf2d2df;p=synfig.git diff --git a/synfig-core/trunk/src/synfig/surfacenew.h b/synfig-core/trunk/src/synfig/surfacenew.h index 0fcafe7..d99eec0 100644 --- a/synfig-core/trunk/src/synfig/surfacenew.h +++ b/synfig-core/trunk/src/synfig/surfacenew.h @@ -2,19 +2,20 @@ /*! \file surfacenew.h ** \brief Template Header ** -** $Id: surfacenew.h,v 1.1 2005/01/21 19:29:10 darco Exp $ +** $Id$ ** ** \legal -** Copyright (c) 2002 Robert B. Quattlebaum Jr. +** Copyright (c) 2002-2005 Robert B. Quattlebaum Jr., Adrian Bentley ** -** This software and associated documentation -** are CONFIDENTIAL and PROPRIETARY property of -** the above-mentioned 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. ** -** 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 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 */ /* ========================================================================= */ @@ -49,7 +50,7 @@ enum SurfaceColorSystem { COLORSYS_RGB, COLORSYS_YUV, - + COLORSYS_END }; // END of enum SurfaceColorSystem @@ -76,14 +77,14 @@ class SurfaceNew : etl::shared_object -- ** -- T Y P E S ----------------------------------------------------------- */ -public: +public: //! \writeme typedef etl::handle Handle; //! \writeme typedef etl::handle HandleConst; - + //! \writeme typedef etl::loose_handle LooseHandle; @@ -98,7 +99,7 @@ public: //! \writeme typedef SurfaceColorSystem; - + //! \writeme class Lock { @@ -106,36 +107,36 @@ public: public: Lock(const Handle& x):x(x) { x->lock(); } void unlock() { if(x){ x->unlock(); x=0; } } - ~Lock() { unlock(); } + ~Lock() { unlock(); } }; // END of class Lock friend class Lock; - + private: //! \writeme class ChannelData; - + /* -- ** -- D A T A ------------------------------------------------------------- */ private: - + //! \writeme RecMutex mutex_; - + //! \writeme int w_,h_; //! \writeme ColorSystem color_system_; - + //! \writeme bool premult_flag_; //! \writeme std::map channel_map_; - + /* -- ** -- S I G N A L S ------------------------------------------------------- */ @@ -153,7 +154,7 @@ public: */ protected: - + //! \writeme SurfaceNew(); @@ -170,10 +171,10 @@ public: //! \writeme int get_w()const; - + //! \writeme int get_h()const; - + //! \writeme void set_wh(int w, int h); @@ -185,16 +186,16 @@ public: //! Should only be used in certain circumstances Color get_color(int x, int y)const; - + //! \writeme void lock(); - + //! \writeme void unlock(); - + //! \writeme bool trylock(); - + //! \writeme ChannelLock lock_channel(Channel chan); @@ -209,13 +210,13 @@ public: //! \writeme bool is_channel_defined(Channel chan)const; - + //! \writeme bool get_premult()const; //! \writeme void set_premult(); - + /* -- ** -- S T A T I C F U N C T I O N S ------------------------------------- */ @@ -228,12 +229,12 @@ public: //! Converts an old Surface to a SurfaceNew static Handle create(const Surface&); - //! Dupilcates a surface + //! Duplicates a surface static Handle create(HandleConst); //! Creates a cropped copy of a surface static Handle crop(HandleConst, int x, int y, int w, int h); - + static void blit( Handle dest, int x_dest, @@ -242,7 +243,7 @@ public: float amount=1.0, Color::BlendMethod bm=Color::BLEND_COMPOSITE ); - + static void blit( Handle dest, int x_dest, @@ -255,8 +256,8 @@ public: float amount=1.0, Color::BlendMethod bm=Color::BLEND_COMPOSITE ); - - + + static void chan_mlt(ChannelLock& dest, float x); static void chan_mlt(ChannelLock& dest, const ChannelLockConst& x); @@ -279,17 +280,17 @@ class SurfaceChannelLockConst -- ** -- T Y P E S ----------------------------------------------------------- */ -public: +public: /* -- ** -- D A T A ------------------------------------------------------------- */ protected: - + //! \writeme SurfaceNew::Handle surface_; - + //! \writeme etl::reference_counter ref_count_; @@ -298,7 +299,7 @@ protected: //! \writeme bool data_ptr_checked_out_; - + /* -- ** -- C O N S T R U C T O R S --------------------------------------------- */ @@ -306,7 +307,7 @@ protected: public: SurfaceChannelLockConst(); - + //! \writeme ~SurfaceChannelLockConst(); @@ -315,28 +316,28 @@ public: */ public: - + //! \writeme SurfaceChannel get_channel()const; - + //! \writeme int get_w()const; - + //! \writeme int get_h()const; - + //! \writeme float get_value(int x, int y); - + //! \writeme const float* get_data_ptr()const; - + //! \writeme int get_data_ptr_stride()const; - + //! Releases the pointer obtained with get_data_ptr() void release_data_ptr()const; - + //! \writeme operator bool()const; }; // END of class SurfaceChannelLockConst @@ -348,19 +349,19 @@ class SurfaceChannelLock : public SurfaceChannelLockConst friend class SurfaceNew; using SurfaceChannelLock::get_data_ptr; - + /* -- ** -- T Y P E S ----------------------------------------------------------- */ -public: +public: /* -- ** -- D A T A ------------------------------------------------------------- */ private: - + /* -- ** -- C O N S T R U C T O R S --------------------------------------------- */ @@ -381,10 +382,10 @@ public: //! \writeme void clear(); - + //! \writeme void fill(float value); - + //! \writeme void set_value(int x, int y, float v);