canvas.h

00001 /*--License:
00002         Kyra Sprite Engine
00003         Copyright Lee Thomason (Grinning Lizard Software) 2001-2005
00004         www.grinninglizard.com/kyra
00005         www.sourceforge.net/projects/kyra
00006 
00007         Kyra is provided under the LGPL. 
00008         
00009         I kindly request you display a splash screen (provided in the HTML documentation)
00010         to promote Kyra and acknowledge the software and everyone who has contributed to it, 
00011         but it is not required by the license.
00012 
00013 --- LGPL License --
00014 
00015     This library is free software; you can redistribute it and/or
00016     modify it under the terms of the GNU Lesser General Public
00017     License as published by the Free Software Foundation; either
00018     version 2.1 of the License, or (at your option) any later version.
00019 
00020     This library is distributed in the hope that it will be useful,
00021     but WITHOUT ANY WARRANTY; without even the implied warranty of
00022     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
00023     Lesser General Public License for more details.
00024 
00025     You should have received a copy of the GNU Lesser General Public
00026     License along with this library; if not, write to the Free Software
00027     Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
00028 
00029         The full text of the license can be found in lgpl.txt
00030 */
00031 
00032 #ifndef KYRA_CANVAS_INCLUDED
00033 #define KYRA_CANVAS_INCLUDED
00034 
00035 #include "image.h"
00036 #include "canvasresource.h"
00037 
00038 
00039 struct KrPaintInfo;
00040 class  KrCanvasResource;
00041 union  KrRGBA;
00042 
00043 
00054 class KrCanvas : public KrImage
00055 {
00056   public:
00057 
00059         KrCanvas( KrCanvasResource* resource );
00060         virtual ~KrCanvas();
00061 
00062         virtual void Draw(      KrPaintInfo* paintInfo, 
00063                                                 const grinliz::Rectangle2I& clip,
00064                                                 int window );
00065 
00066         int Width()                     { return resource->Width(); }   
00067         int Height()            { return resource->Height(); }  
00068 
00074         KrRGBA* Pixels()        { return resource->Pixels(); }
00075 
00081         void Refresh()          { resource->Refresh(); }
00082 
00083         virtual KrImNode* Clone();
00084 
00085         virtual void QueryBoundingBox( grinliz::Rectangle2I* boundingBox, int window = 0 );
00086         virtual bool HitTest( int x, int y, int flags, std::vector<KrImage*>* results, int window );
00087         virtual KrCanvas* ToCanvas()    { return this; }
00088         virtual void CalcTransform( int window );
00089         virtual KrResource* Resource()                  { return resource; }
00090         
00091   protected:
00092 
00093   private:
00094         KrCanvasResource* resource;
00095 };
00096 
00097 
00098 #endif

Generated on Thu Jul 20 20:45:31 2006 for Kyra by  doxygen 1.4.7