paragui-cvs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[paragui-cvs] CVS: paragui/include glSDL.h,NONE,1.1.2.1 paragui.h,1.5,1.


From: Teunis Peters <address@hidden>
Subject: [paragui-cvs] CVS: paragui/include glSDL.h,NONE,1.1.2.1 paragui.h,1.5,1.5.2.1 paragui_types.h,1.5,1.5.2.1 pgapplication.h,1.11,1.11.2.1 pgbutton.h,1.6,1.6.2.1 pgcolumnitem.h,1.4,1.4.2.1 pgdraw.h,1.4,1.4.2.1 pgfilearchive.h,1.5,1.5.2.1 pgfont.h,1.4,1.4.2.1 pgimage.h,1.4,1.4.2.1 pglabel.h,1.4,1.4.2.1 pglineedit.h,1.5,1.5.2.1 pglistboxitem.h,1.4,1.4.2.1 pglog.h,1.3,1.3.2.1 pgpoint.h,1.1,1.1.2.1 pgpopupmenu.h,1.7,1.7.2.1 pgprogressbar.h,1.4,1.4.2.1 pgrect.h,1.5,1.5.2.1 pgrichedit.h,1.3,1.3.2.1 pgsignals.h,1.7,1.7.2.1 pgsurfacecache.h,1.3,1.3.2.1 pgtheme.h,1.4,1.4.2.1 pgthemewidget.h,1.4,1.4.2.1 pgwidget.h,1.13,1.13.2.1 pgwidgetdnd.h,1.4,1.4.2.1 pgwidgetlist.h,1.8,1.8.2.1 pgwindow.h,1.7,1.7.2.1
Date: Tue, 18 Jun 2002 18:40:43 -0400

Update of /cvsroot/paragui/paragui/include
In directory subversions:/tmp/cvs-serv27818/include

Modified Files:
      Tag: devel-opengl
        paragui.h paragui_types.h pgapplication.h pgbutton.h 
        pgcolumnitem.h pgdraw.h pgfilearchive.h pgfont.h pgimage.h 
        pglabel.h pglineedit.h pglistboxitem.h pglog.h pgpoint.h 
        pgpopupmenu.h pgprogressbar.h pgrect.h pgrichedit.h 
        pgsignals.h pgsurfacecache.h pgtheme.h pgthemewidget.h 
        pgwidget.h pgwidgetdnd.h pgwidgetlist.h pgwindow.h 
Added Files:
      Tag: devel-opengl
        glSDL.h 
Log Message:
Initial checkin of code by Teunis Peters
Added abstraction layer for display support.
Initial OpenGL testing mode - use SDL_GLSDL to activate
A lot of test code is still present - FIXME
Some demos do not operate at all.  Some work barely.
only animation works flawlessly at this time.


--- NEW FILE ---
/*(LGPL)
------------------------------------------------------------
        glSDL - SDL 2D API on top of OpenGL
------------------------------------------------------------
 * (c) David Olofson, 2001, 2002
 * This code is released under the terms of the GNU LGPL.
 */

#ifndef _GLSDL_H_
#define _GLSDL_H_

/* We're still using SDL datatypes here - we just add some stuff. */
#include "SDL.h"

#ifndef HAVE_OPENGL

/* Fakes to make glSDL code compile with SDL. */
#define SDL_GLSDL               0
#define LOGIC_W(s)              ( (s)->w )
#define LOGIC_H(s)              ( (s)->h )
#define GLSDL_FIX_SURFACE(s)

#else   /* HAVE_OPENGL */

#if HAS_SDL_OPENGL_H
#include "SDL_opengl.h"
#else
#ifdef WIN32
#include <windows.h>
#endif
#if defined(__APPLE__) && defined(__MACH__)
#include <OpenGL/gl.h>
#include <OpenGL/glu.h>
#else
#include <GL/gl.h>
#include <GL/glu.h>
#endif
#endif

#include "begin_code.h"
#ifdef __cplusplus
extern "C" {
#endif


/*----------------------------------------------------------
        glSDL specific data types
----------------------------------------------------------*/

typedef struct _glSDL_Tile
{
        Uint16  bank;
        Uint16  index;
} _glSDL_Tile;


/*----------------------------------------------------------
        SDL style API
----------------------------------------------------------*/

typedef enum glSDL_TileModes
{
        GLSDL_TM_SINGLE,
        GLSDL_TM_HORIZONTAL,
        GLSDL_TM_VERTICAL,
        GLSDL_TM_HUGE
} glSDL_TileModes;


typedef struct glSDL_TexInfo
{
        /* Size of surface in logic screen pixels */
        int             lw, lh;

        int             textures;
        GLuint          *texture;
        int             texsize;        /* width/height of OpenGL texture */
        glSDL_TileModes tilemode;
        int             tilew, tileh;   /* At least one must equal texsize! */
        int             tilespertex;
        SDL_Rect        virt;           /* Total size of assembled surface */

        /* Area of surface to download when/after unlocking */
        SDL_Rect        invalid_area;
} glSDL_TexInfo;


/*
 * Uuurgh! SDL doesn't clear the 'unused1' field.
 */
#define GLSDL_FIX_SURFACE(s)    (s)->unused1 = 0xffffffff;
#define IS_GLSDL_SURFACE(s)     ((s) && glSDL_GetTexInfo(s))

#define LOGIC_W(s)      ( IS_GLSDL_SURFACE(s) ? TEXINFO(s)->lw : (s)->w )
#define LOGIC_H(s)      ( IS_GLSDL_SURFACE(s) ? TEXINFO(s)->lh : (s)->h )

#define SDL_GLSDL       0x00100000      /* Create an OpenGL 2D rendering 
context */


/*
 * Wraps SDL_SetVideoMode(), and adds support for the SDL_GLSDL flag.
 *
 * If 'flags' contains SDL_GLSDL, glSDL_SetVideoMode() sets up a "pure"
 * OpenGL rendering context for use with the glSDL_ calls.
 *
 * SDL can be closed as usual (using SDL_ calls), but you should call
 * glSDL_Quit() (kludge) to allow glSDL to clean up it's internal stuff.
 */
SDL_Surface *glSDL_SetVideoMode(int width, int height, int bpp, Uint32 flags);
void glSDL_Quit(void);

void glSDL_QuitSubSystem(Uint32 flags);

/* Replaces SDL_Quit() entirely, when using the override defines */
void _glSDL_FullQuit(void);

SDL_Surface *glSDL_GetVideoSurface(void);

void glSDL_UpdateRects(SDL_Surface *screen, int numrects, SDL_Rect *rects);
void glSDL_UpdateRect(SDL_Surface *screen, Sint32 x, Sint32 y, Uint32 w, Uint32 
h);

/*
 * Works like SDL_Flip(), but may also perform enqueued blits.
 * (That is, it's possible that the implementation renders
 * *nothing* until glSDL_Flip() is called.)
 */
int glSDL_Flip(SDL_Surface *screen);

void glSDL_FreeSurface(SDL_Surface *surface);

int glSDL_LockSurface(SDL_Surface *surface);
void glSDL_UnlockSurface(SDL_Surface *surface);

/*
 * Like the respective SDL functions, although they ignore
 * SDL_RLEACCEL, as it makes no sense in this context.
 */
int glSDL_SetColorKey(SDL_Surface *surface, Uint32 flag, Uint32 key);
int glSDL_SetAlpha(SDL_Surface *surface, Uint32 flag, Uint8 alpha);

/*
 * Sets up clipping for the screen, or a SDL_Surface.
 *
 * Note that this function takes both SDL_Surfaces and
 * glSDL_Surfaces.
 */
SDL_bool glSDL_SetClipRect(SDL_Surface *surface, SDL_Rect *rect);

int glSDL_BlitSurface(SDL_Surface *src, SDL_Rect *srcrect,
                         SDL_Surface *dst, SDL_Rect *dstrect);

int glSDL_FillRect(SDL_Surface *dst, SDL_Rect *dstrect, Uint32 color);

/*
 * Convert the given surface into a SDL_Surface (if it isn't
 * one already), and makes sure that the underlying SDL_Surface
 * is of a pixel format suitable for fast texture downloading.
 *
 * Note that you *only* have to use this function if you want
 * fast pixel access to surfaces (ie "procedural textures").
 * Any surfaces that aren't converted will be downloaded
 * automatically upon the first call to glSDL_BlitSurface(),
 * but if conversion is required, it will be required for
 * every glSDL_UnlockSurface() call.
 *
 * IMPORTANT:
 *      You *can* pass an SDL_Surface directly to this function,
 *      and it will try to deal with it nicely. However, this
 *      requires that a temporary SDL_Surface is created, and
 *      this surface is cached only until the texture memory is
 *      needed for new surfaces.
 */
SDL_Surface *glSDL_DisplayFormat(SDL_Surface *surface);
SDL_Surface *glSDL_DisplayFormatAlpha(SDL_Surface *surface);

SDL_Surface *glSDL_ConvertSurface
                        (SDL_Surface *src, SDL_PixelFormat *fmt, Uint32 flags);
SDL_Surface *glSDL_CreateRGBSurface
                        (Uint32 flags, int width, int height, int depth, 
                        Uint32 Rmask, Uint32 Gmask, Uint32 Bmask, Uint32 Amask);
SDL_Surface *glSDL_CreateRGBSurfaceFrom(void *pixels,
                        int width, int height, int depth, int pitch,
                        Uint32 Rmask, Uint32 Gmask, Uint32 Bmask, Uint32 Amask);
SDL_Surface *glSDL_LoadBMP(const char *file);



/*----------------------------------------------------------
        glSDL specific API extensions
----------------------------------------------------------*/

/*
 * Invalidate part of a texture.
 *
 * This function can be used either between calls to
 * glSDL_LockSurface() and glSDL_UnlockSurface(), or before
 * calling glSDL_DownloadSurface().
 *
 * In either case, it causes only the specified area to be
 * downloaded when unlocking the surface, or calling
 * glSDL_UnlockSurface(), respectively.
 *
 * Note that if this function is not used, glSDL assumes that
 * the entire surface has to be updated. (That is, it's safe
 * to ignore this function - it's "just a performance hack.")
 *
 * Passing a rectangle with zero height or width cancels the
 * downloading when/after unlocking the surface. Use if you
 * just want to read the texture, but feel like being nice and
 * obeying SDL_MUSTLOCK() - which is a good idea, as things
 * may change...
 *
 * Passing NULL for the 'area' argument results in the entire
 * surface being invalidated.
 *
 * NOTE: This function does NOT perform clipping! Weird or
 *       even Bad Things may happen if you specify areas
 *       that protrude outside the edges of the actual
 *       surface.
 */
void glSDL_Invalidate(SDL_Surface *surface, SDL_Rect *area);

/*
 * Set logic width and height of a surface.
 *
 * When used on the screen surface: 
 *      Changes the OpenGL view coordinate system without
 *      changing the screen resolution. This is used to
 *      decouple the rendering coordinate system from the
 *      physical screen resolution, which is needed to
 *      achieve sub-pixel resolution without switching to
 *      float coords.
 *
 * When used on a SDL_Surface:
 *      Normally, surfaces are scaled so that one pixel on
 *      the surface corresponds to one pixel in the current
 *      logic screen resolution. This function makes it
 *      possible to change that relation by specifying the
 *      desired size of the rendered texture in the current
 *      logic screen resolution.
 *
 * BUG? WRT blitting *to* surfaces, this call affects
 *      the screen surface and other surfaces differently!
 *      As of now, coordinates are *always* treated as real
 *      pixels when blitting to normal surfaces, whereas
 *      they are scaled when blitting to the screen.
 *
 * Of course, this function can also be "abused" just to
 * make rendering code independent of screen resolution,
 * although that can potentially *lower* accuracy, if the
 * real resolution is higher than the logic resolution.
 */
void glSDL_SetLogicSize(SDL_Surface *surface, int w, int h);

/*
 * Make sure that the texture of the specified surface is up
 * to date in OpenGL texture memory.
 *
 * This can be used together with glSDL_UnloadSurface() to
 * implement custom texture caching schemes.
 *
 * Returns 0 on success, or a negative value if something
 * went wrong.
 */
int glSDL_DownloadSurface(SDL_Surface *surface);

/*
 * Free the texture space used by the specified surface.
 *
 * Normally, glSDL should download textures when needed, and
 * unload the oldest (in terms of use) surfaces, if it runs out
 * of texture space.
 */
void glSDL_UnloadSurface(SDL_Surface *surface);


/*
 * Get the clSDL_TexInfo struct associated with a surface.
 */
glSDL_TexInfo *glSDL_GetTexInfo(SDL_Surface *surface);



/* Some extra overloading for common external lib calls... */
SDL_Surface *glSDL_IMG_Load(const char *file);

#ifdef __cplusplus
}
#endif
#include "close_code.h"

/* Some ugly "overriding"... */
#ifndef _GLSDL_NO_REDEFINES_
/*
 * You *always* need to lock and unlock a glSDL surface in
 * order to get glSDL to update the OpenGL texture!
 */
#undef  SDL_MUSTLOCK
#define SDL_MUSTLOCK(surface)   \
  (surface->offset ||           \
  ((surface->flags & (SDL_HWSURFACE|SDL_ASYNCBLIT|SDL_RLEACCEL)) != 0) ||       
\
  IS_GLSDL_SURFACE(surface))

#define SDL_SetVideoMode                glSDL_SetVideoMode
#define SDL_GetVideoSurface             glSDL_GetVideoSurface
#define SDL_Quit                        _glSDL_FullQuit
#define SDL_QuitSubSystem               glSDL_QuitSubSystem
#define SDL_UpdateRects                 glSDL_UpdateRects
#define SDL_UpdateRect                  glSDL_UpdateRect
#define SDL_Flip                        glSDL_Flip
#define SDL_FreeSurface                 glSDL_FreeSurface
#define SDL_LockSurface                 glSDL_LockSurface
#define SDL_UnlockSurface               glSDL_UnlockSurface
#define SDL_SetColorKey                 glSDL_SetColorKey
#define SDL_SetAlpha                    glSDL_SetAlpha
#define SDL_SetClipRect                 glSDL_SetClipRect
#undef  SDL_BlitSurface
#define SDL_BlitSurface                 glSDL_BlitSurface
#define SDL_FillRect                    glSDL_FillRect
#define SDL_DisplayFormat               glSDL_DisplayFormat
#define SDL_DisplayFormatAlpha          glSDL_DisplayFormatAlpha
#define SDL_ConvertSurface              glSDL_ConvertSurface
#define SDL_CreateRGBSurface            glSDL_CreateRGBSurface
#define SDL_CreateRGBSurfaceFrom        glSDL_CreateRGBSurfaceFrom
#undef  SDL_AllocSurface
#define SDL_AllocSurface                glSDL_CreateRGBSurface
#undef  SDL_LoadBMP
#define SDL_LoadBMP                     glSDL_LoadBMP
#endif

/* Some extra overloading for common external lib calls... */
#include "SDL_image.h"
#define IMG_Load(x)     glSDL_IMG_Load(x)

#endif  /* HAVE_OPENGL */

#endif

Index: paragui.h
===================================================================
RCS file: /cvsroot/paragui/paragui/include/paragui.h,v
retrieving revision 1.5
retrieving revision 1.5.2.1
diff -C2 -r1.5 -r1.5.2.1
*** paragui.h   27 Apr 2002 15:36:54 -0000      1.5
--- paragui.h   18 Jun 2002 22:40:38 -0000      1.5.2.1
***************
*** 43,47 ****
  
  // SDL
! #include "SDL.h"
  #include "SDL_thread.h"
  
--- 43,47 ----
  
  // SDL
! #include "glSDL.h"
  #include "SDL_thread.h"
  

Index: paragui_types.h
===================================================================
RCS file: /cvsroot/paragui/paragui/include/paragui_types.h,v
retrieving revision 1.5
retrieving revision 1.5.2.1
diff -C2 -r1.5 -r1.5.2.1
*** paragui_types.h     27 Apr 2002 15:36:54 -0000      1.5
--- paragui_types.h     18 Jun 2002 22:40:38 -0000      1.5.2.1
***************
*** 35,39 ****
  #define PARAGUI_TYPES_H
  
! #include "SDL.h"
  
  //! Structure for widget gradients
--- 35,39 ----
  #define PARAGUI_TYPES_H
  
! #include "glSDL.h"
  
  //! Structure for widget gradients

Index: pgapplication.h
===================================================================
RCS file: /cvsroot/paragui/paragui/include/pgapplication.h,v
retrieving revision 1.11
retrieving revision 1.11.2.1
diff -C2 -r1.11 -r1.11.2.1
*** pgapplication.h     6 May 2002 11:18:01 -0000       1.11
--- pgapplication.h     18 Jun 2002 22:40:38 -0000      1.11.2.1
***************
*** 40,43 ****
--- 40,47 ----
  
  class PG_Theme;
+ namespace PG_Draw {
+ class PG_Draw;
+ class PG_DrawableSurface;
+ };
  
  /**
***************
*** 144,148 ****
        @return         pointer the new screen surface
        */
!       SDL_Surface* SetScreen(SDL_Surface* screen);
  
        /**
--- 148,152 ----
        @return         pointer the new screen surface
        */
!       PG_Draw::PG_DrawableSurface* SetScreen(PG_Draw::PG_DrawableSurface* 
screen);
  
        /**
***************
*** 151,155 ****
        @return pointer the screen surface
        */
!       static SDL_Surface* GetScreen();
  
        /**
--- 155,159 ----
        @return pointer the screen surface
        */
!         static PG_Draw::PG_DrawableSurface* GetScreen();
  
        /**
***************
*** 196,200 ****
        @return         true - background image was altered successfully
        */
!       bool SetBackground(SDL_Surface* surface, int mode=BKMODE_TILE);
  
        /**
--- 200,204 ----
        @return         true - background image was altered successfully
        */
!       bool SetBackground(PG_Draw::PG_DrawableSurface* surface, int 
mode=BKMODE_TILE);
  
        /**
***************
*** 290,293 ****
--- 294,316 ----
  
        /**
+       Set application`s drawing environment
+ 
+       @param  drawable  the drawing toolkit to use.
+       Set drawing environment for the application.  The default is to use
+       the SDL-native one builtin and for most purposes this should suffice.
+       Call this early as the PG_Draw* class also handles initializing the
+       video environment.
+       THIS FUNCTION MUST BE PROCESSED BEFORE PG_Application::InitScreen()
+       */
+         void SetDrawingEnvironment(PG_Draw::PG_Draw* drawable);
+    
+       /**
+       Get application`s drawing environment
+ 
+       @return   returns the drawing environment currently in use by the 
application.
+       */
+         static PG_Draw::PG_Draw* GetDrawingEnvironment();
+ 
+       /**
        Set application`s window-manager title and icon name.
  
***************
*** 434,438 ****
          \sa PG_ShowCursor, PG_DrawCursor
        */
!       static void SetCursor(SDL_Surface *image);
        //! Update the graphical mouse cursor
        /*!
--- 457,461 ----
          \sa PG_ShowCursor, PG_DrawCursor
        */
!       static void SetCursor(PG_Draw::PG_DrawableSurface* image);
        //! Update the graphical mouse cursor
        /*!
***************
*** 554,559 ****
  
        bool my_freeBackground;
!       static SDL_Surface* my_background;
!       static SDL_Surface* my_scaled_background;
        static SDL_Color my_backcolor;
        static int my_backmode;
--- 577,582 ----
  
        bool my_freeBackground;
!       static PG_Draw::PG_DrawableSurface* my_background;
!       static PG_Draw::PG_DrawableSurface* my_scaled_background;
        static SDL_Color my_backcolor;
        static int my_backmode;
***************
*** 562,566 ****
        static std::string app_path;
        static PG_Application* pGlobalApp;
!       static SDL_Surface* screen;
  
        static bool bulkMode;
--- 585,589 ----
        static std::string app_path;
        static PG_Application* pGlobalApp;
!       static PG_Draw::PG_DrawableSurface* screen;
  
        static bool bulkMode;
***************
*** 570,574 ****
        static bool enableAppIdleCalls;
  
!       static SDL_Surface *my_mouse_pointer;
        static PG_Rect my_mouse_position;
        static PG_CURSOR_MODE my_mouse_mode;
--- 593,597 ----
        static bool enableAppIdleCalls;
  
!       static PG_Draw::PG_DrawableSurface* my_mouse_pointer;
        static PG_Rect my_mouse_position;
        static PG_CURSOR_MODE my_mouse_mode;
***************
*** 576,579 ****
--- 599,603 ----
  
        static PG_Widget* lastwidget;
+         static PG_Draw::PG_Draw* drawable;
  };
  

Index: pgbutton.h
===================================================================
RCS file: /cvsroot/paragui/paragui/include/pgbutton.h,v
retrieving revision 1.6
retrieving revision 1.6.2.1
diff -C2 -r1.6 -r1.6.2.1
*** pgbutton.h  27 Apr 2002 15:36:54 -0000      1.6
--- pgbutton.h  18 Jun 2002 22:40:38 -0000      1.6.2.1
***************
*** 157,161 ****
                This member function set's the buttons background and tiling 
mode for a specific state.
        */
!       void SetBackground(int state, SDL_Surface* background, int mode = 
BKMODE_TILE);
  
        /**
--- 157,161 ----
                This member function set's the buttons background and tiling 
mode for a specific state.
        */
!       void SetBackground(int state, PG_Draw::PG_DrawableSurface* background, 
int mode = BKMODE_TILE);
  
        /**
***************
*** 189,197 ****
        // new in 1.0.2 (surface)
        
!       bool SetIcon(SDL_Surface* icon_up, SDL_Surface* icon_down = NULL, 
SDL_Surface* icon_over = NULL);
  
        // 1.0.1 versions (surface)
  
!       bool SetIcon(SDL_Surface* icon_up, SDL_Surface* icon_down = NULL);
  
        /**
--- 189,197 ----
        // new in 1.0.2 (surface)
        
!       bool SetIcon(PG_Draw::PG_DrawableSurface* icon_up, 
PG_Draw::PG_DrawableSurface* icon_down = NULL, PG_Draw::PG_DrawableSurface* 
icon_over = NULL);
  
        // 1.0.1 versions (surface)
  
!       bool SetIcon(PG_Draw::PG_DrawableSurface* icon_up, 
PG_Draw::PG_DrawableSurface* icon_down = NULL);
  
        /**
***************
*** 247,254 ****
  
        /**  */
!       virtual void eventButtonSurface(SDL_Surface** surface, int newstate, 
Uint16 w, Uint16 h);
  
        /**  */
!       void eventBlit(SDL_Surface* srf, const PG_Rect& src, const PG_Rect& 
dst);
  
        /**  */
--- 247,254 ----
  
        /**  */
!       virtual void eventButtonSurface(PG_Draw::PG_DrawableSurface** surface, 
int newstate, Uint16 w, Uint16 h);
  
        /**  */
!       void eventBlit(PG_Draw::PG_DrawableSurface* srf, const PG_Rect& src, 
const PG_Rect& dst);
  
        /**  */

Index: pgcolumnitem.h
===================================================================
RCS file: /cvsroot/paragui/paragui/include/pgcolumnitem.h,v
retrieving revision 1.4
retrieving revision 1.4.2.1
diff -C2 -r1.4 -r1.4.2.1
*** pgcolumnitem.h      27 Apr 2002 15:36:54 -0000      1.4
--- pgcolumnitem.h      18 Jun 2002 22:40:38 -0000      1.4.2.1
***************
*** 97,101 ****
  
        /** */
!       void eventBlit(SDL_Surface* srf, const PG_Rect& src, const PG_Rect& 
dst);
  
  private:
--- 97,101 ----
  
        /** */
!       void eventBlit(PG_Draw::PG_DrawableSurface* srf, const PG_Rect& src, 
const PG_Rect& dst);
  
  private:

Index: pgdraw.h
===================================================================
RCS file: /cvsroot/paragui/paragui/include/pgdraw.h,v
retrieving revision 1.4
retrieving revision 1.4.2.1
diff -C2 -r1.4 -r1.4.2.1
*** pgdraw.h    27 Apr 2002 15:36:54 -0000      1.4
--- pgdraw.h    18 Jun 2002 22:40:38 -0000      1.4.2.1
***************
*** 52,148 ****
  namespace PG_Draw {
  
! //! Rotate and scale an SDL_Surface
! /*!
!   Rotates and scales a 32bit or 8bit SDL_Surface to newly created
!   destination surface. If smooth is 1 the destination 32bit surface is
!   anti-aliased. If the surface is not 8bit or 32bit RGBA/ABGR it will
!   be converted into a 32bit RGBA format on the fly.
! 
!   \param src source surface
!   \param angle the rotation in degrees
!   \param zoom the scaling factor
!   \param smooth whether or not to use anti-aliasing
! 
!   \return A new surface with the scaled, rotated original surface.
! */
! 
! DECLSPEC SDL_Surface* RotoScaleSurface(SDL_Surface *src, double angle,
!         double zoom, bool smooth = true);
! 
! //! Scale an SDL_Surface
! /*!
!   Scales a 32bit or 8bit SDL_Surface to newly created destination
!   surface.  If the surface is not 8bit or 32bit RGBA/ABGR it will be
!   converted into a 32bit RGBA format on the fly.
! 
!   \param src source surface
!   \param zoomx, zoomy width and height scaling factors
!   \param smooth whether or not to enable anti-aliasing
! 
!   \return A newly created surface with the scaled surface
! */
! DECLSPEC SDL_Surface* ScaleSurface(SDL_Surface *src, double zoomx, double 
zoomy,
!                                       bool smooth = true);
! 
! //! Scale an SDL_Surface
! /*!
!   Scales a 32bit or 8bit SDL_Surface to newly created destination
!   surface.  If the surface is not 8bit or 32bit RGBA/ABGR it will be
!   converted into a 32bit RGBA format on the fly.
! 
!   \param src source surface
!   \param rect PG_Rect specifying the width and height of the new surface
!   \param smooth whether or not to enable anti-aliasing
! 
!   \return A newly created surface with the scaled surface
! */
! static inline SDL_Surface *ScaleSurface(SDL_Surface *src, const PG_Rect &rect,
!         bool smooth = true) {
!       return ScaleSurface(src, static_cast<double>(rect.w) / src->w,
!                              static_cast<double>(rect.h) / src->h, smooth);
! }
! 
! //! Scale an SDL_Surface
! /*!
!   Scales a 32bit or 8bit SDL_Surface to newly created destination
!   surface.  If the surface is not 8bit or 32bit RGBA/ABGR it will be
!   converted into a 32bit RGBA format on the fly.
! 
!   \param src source surface
!   \param newx, newy the width and height of the new surface
!   \param smooth whether or not to enable anti-aliasing
! 
!   \return A newly created surface with the scaled surface
! */
! static inline SDL_Surface *ScaleSurface(SDL_Surface *src, Uint16 newx, Uint16 
newy,
!         bool smooth = true) {
!       return ScaleSurface(src, static_cast<double>(newx) / src->w,
!                              static_cast<double>(newy) / src->h, smooth);
! }
! 
! //! Scale and blit surface
! /*!
!   Scales a 32 bit or 8 bit SDL_Surface to the size of the destination
!   surface dst and blits the result to the destination surface.  If the
!   surface is not 8bit or 32bit RGBA/ABGR it will be converted into a
!   32bit RGBA format on the fly.
! 
!   \param src Source surface
!   \param dst destination surface
!   \param smooth whether or not to use anti-aliasing */
! DECLSPEC void BlitScale(SDL_Surface *src, SDL_Surface *dst, bool smooth = 
true);
  
! /**
        Creates a surface filled with a gradient
  
        @param r                the dimensions of the surface to be created
        @param gradient the gradient colors to use
!       @return                 a SDL_Surface pointer to the new surface
  
        This function creates a new surface filled with a given gradient 
defined by a set of colors
! */
! DECLSPEC SDL_Surface* CreateGradient(const PG_Rect& r, PG_Gradient& gradient);
  
! /**
        Creates a surface filled with a gradient
  
--- 52,342 ----
  namespace PG_Draw {
  
!    class PG_Draw;
!    class PG_DrawableSurface;
  
!    class PG_DrawableSurface {
!       friend class PG_Draw;
!     protected:
!       PG_DrawableSurface();
!     public:
!       PG_DrawableSurface(SDL_Surface*);
!       virtual ~PG_DrawableSurface();
! 
!       virtual SDL_Surface* getScreen();
! 
!       /**
!       Update the surface; default is SDL_UpdateRects(..)
!       */
!       virtual void UpdateRects(int numrects, PG_Rect *rects);
!             
!       /**
!       Lock the surface; default is [if SDL_MUSTLOCK(surface) 
SDL_LockSurface(..)]
!       */
!       virtual int Lock();
!       /**
!       Unlock the surface; default is [if SDL_MUSTLOCK(surface) 
SDL_UnlockSurface(..)]
!       */
!       virtual void Unlock();
! 
!       /**
!       Set clipping rectangle; default is SDL_SetClipRect(..)
!        */
!       virtual bool SetClipRect(const PG_Rect& rect);
!       virtual bool SetClipRect();
! 
!       /**
!       Get clipping rectangle; default is SDL_GetClipRect(..)
!       */
!       virtual void GetClipRect(PG_Rect& rect);
! 
!       /**
!       Blit a surface to this surface (specifically); default is 
SDL_BlitSurface
!       with the destination being the current surface.
!       */
!       virtual void BlitSurface(const PG_DrawableSurface* srf_src, const 
PG_Rect& rect_src, const PG_Rect& rect_dst);
!       virtual void BlitSurface(const SDL_Surface* srf_src, const PG_Rect& 
rect_src, const PG_Rect& rect_dst);
!       //! Scale and blit surface
!       /*!
!       Scales a 32 bit or 8 bit SDL_Surface to the size of the destination
!       surface dst and blits the result to the destination surface.  If the
!       surface is not 8bit or 32bit RGBA/ABGR it will be converted into a
!       32bit RGBA format on the fly.
!       Destination is <this> surface.
!       
!       \param src Source surface
!       \param smooth whether or not to use anti-aliasing */
!       virtual void BlitScale(PG_DrawableSurface* src, bool smooth = true);
! 
!       /* from SDL_SetColors(..) (don't US know how to spell? It's 'colour'! */
!       virtual int SetColors(SDL_Color *colors, int firstcolor, int ncolors);
!       virtual int SetPalette(int flags, SDL_Color *colors, int firstcolor, 
int ncolors);
!       virtual int SetColorKey(Uint32 flag, Uint32 key);
!       virtual int SetAlpha(Uint32 flag, Uint8 alpha);
!       virtual int FillRect(const PG_Rect& dstrect, Uint32 color);
!       /**
!       Draw a line.
!       @param x0 x startposition
!       @param y0 y startposition
!       @param x1 x endposition
!       @param y1 y endposition
!       @param color color of the line
!       @param width width of the line
! 
!       Draws a line with given color and width onto a surface.
!        */
!       virtual void DrawLine(Uint32 x0, Uint32 y0, Uint32 x1, Uint32 y1, const 
SDL_Color& color, Uint8 width = 1);
! 
!       /**
!       Set a pixel.
!       @param x      x position
!       @param y      y position
!       @param color  color of the pixel; using this for consistency
!       */
!       virtual void SetPixel(int x, int y, const SDL_Color& color);
! 
!       //! Rotate and scale an SDL_Surface
!       /*!
!       Rotates and scales a 32bit or 8bit SDL_Surface to newly created
!       destination surface. If smooth is 1 the destination 32bit surface is
!       anti-aliased. If the surface is not 8bit or 32bit RGBA/ABGR it will
!       be converted into a 32bit RGBA format on the fly.
!       Source surface is <this> object.
!       
!       \param angle the rotation in degrees
!       \param zoom the scaling factor
!       \param smooth whether or not to use anti-aliasing
!       
!       \return A new surface with the scaled, rotated original surface.
!       */
!       virtual PG_DrawableSurface* RotoScaleSurface(double angle, double zoom,
!                                                  bool smooth = true);
!       
!       //! Scale an SDL_Surface
!       /*!
!       Scales a 32bit or 8bit SDL_Surface to newly created destination
!       surface.  If the surface is not 8bit or 32bit RGBA/ABGR it will be
!       converted into a 32bit RGBA format on the fly.
!       Source surface is <this> object.
!       
!       \param zoomx, zoomy width and height scaling factors
!       \param smooth whether or not to enable anti-aliasing
!       
!       \return A newly created surface with the scaled surface
!       */
!       virtual PG_DrawableSurface* ScaleSurface(double zoomx, double zoomy,
!                                              bool smooth = true);
! 
!       //! Scale an SDL_Surface
!       /*!
!       Scales a 32bit or 8bit SDL_Surface to newly created destination
!       surface.  If the surface is not 8bit or 32bit RGBA/ABGR it will be
!       converted into a 32bit RGBA format on the fly.
!       Source surface is <this> object.
!       
!       \param rect PG_Rect specifying the width and height of the new surface
!       \param smooth whether or not to enable anti-aliasing
!       
!       \return A newly created surface with the scaled surface
!       */
!       PG_DrawableSurface* ScaleSurface(const PG_Rect &rect,
!                                      bool smooth = true);
!       
!       //! Scale an SDL_Surface
!       /*!
!       Scales a 32bit or 8bit SDL_Surface to newly created destination
!       surface.  If the surface is not 8bit or 32bit RGBA/ABGR it will be
!       converted into a 32bit RGBA format on the fly.
!       Source surface is <this> object.
!       
!       \param newx, newy the width and height of the new surface
!       \param smooth whether or not to enable anti-aliasing
!       
!       \return A newly created surface with the scaled surface
!       */
!       PG_DrawableSurface* ScaleSurface(Uint16 newx, Uint16 newy,
!                                      bool smooth = true);
! 
!       /**
!        */
!       virtual void DrawGradient(const PG_Rect& r, PG_Gradient& gradient);
!       
!       /**
!        */
!       virtual void DrawGradient(const PG_Rect& rect, const SDL_Color & ul, 
const SDL_Color & ur, const SDL_Color & dl, const SDL_Color & dr);
! 
!       /**
!        Draw a 'themed' surface onto this surface
!        
!        @param r               the rectangle of the surface to draw in
!        @param gradient        pointer to a gradient structure (may be NULL)
!        @param background      pointer to a background surface (may be NULL)
!        @param bkmode          the mode how to fill in the background surface 
(BKMODE_TILE | BKMODE_STRETCH)
!        @param blend           the blend-level between gradient an background
!       */
!       virtual void DrawThemedSurface(const PG_Rect& r, PG_Gradient* gradient, 
PG_DrawableSurface* background, int bkmode, Uint8 blend);
! 
!       virtual void DrawTile(const PG_Rect& ref, const PG_Rect& drawrect, 
PG_DrawableSurface* tilemap);
! 
!    protected:
!       SDL_Surface* ref;
!    };
!    
!    class PG_Draw {
!     public:
!       static PG_Draw* GetDefaultDrawable();
!       PG_Draw();
!       virtual ~PG_Draw();
! 
!       /**
!        Start the drawing system; default does SDL_Init(flags);
!        \param  flags  same flags as SDL_Init
!        */
!       virtual void init(Uint32 flags);
!       /**
!        Quit the drawing system; default does SDL_Quit(flags);
!        */
!       virtual void quit();
!       
!       /**
!        Collect information about the current video environment; default is 
SDL_GetVideoInfo()
!        */
!       virtual const SDL_VideoInfo* GetVideoInfo() const;
!       
!       /**
!        Tests that the videomode defined is valid; default is 
SDL_VideoModeOK(..)
!        */
!       virtual int VerifyMode(int width, int height, int depth, Uint32 flags);
!       
!       /**
!       Sets the videomode; default is SDL_SetVideoMode(...)
!       */
!       virtual PG_DrawableSurface* SetMode(int width, int height, int depth, 
Uint32 flags);
! 
!       /**
!       Lists available videomodes; default is SDL_ListModes(...)
!       */
!       virtual SDL_Rect ** ListModes(SDL_PixelFormat *format, Uint32 flags);
!       
!       /**
!       Flips the screen (if in doublebuffering mode); default is SDL_Flip(..)
!       */
!       virtual int Flip();
!       
!       /**
!       Update the screen; default is SDL_UpdateRects(..)
!       */
!       virtual void UpdateRects(int numrects, PG_Rect *rects);
!       
!       /**
!       Lock the screen; default is [if SDL_MUSTLOCK(surface) 
SDL_LockSurface(..)]
!       */
!       virtual int Lock();
!       /**
!       Unlock the screen; default is [if SDL_MUSTLOCK(surface) 
SDL_UnlockSurface(..)]
!       */
!       virtual void Unlock();
! 
!       /**
!       Set clipping rectangle; default is SDL_SetClipRect(..)
!        */
!       virtual bool SetClipRect(const PG_Rect& rect = PG_Rect());
!       virtual bool SetClipRect();
!       
!       /**
!       Get clipping rectangle; default is SDL_GetClipRect(..)
!       */
!       virtual void GetClipRect(PG_Rect& rect);
! 
!       /**
!       Blit a surface to the screen (specifically); default is SDL_BlitSurface
!       with the destination being the display screen.
!       */
!       virtual void BlitSurface(const PG_DrawableSurface* srf_src, const 
PG_Rect& rect_src, const PG_Rect& rect_dst);
!       virtual void BlitSurface(const SDL_Surface* srf_src, const PG_Rect& 
rect_src, const PG_Rect& rect_dst);
! 
!       /**
!        Creates a drawing surface; default is SDL_CreateRGBSurface
!        note that the intent of this is to create hardware surface memory and
!        depth,Rmask,Gmask,Bmask,Amask defaults from the existing screen 
settings
!        */
!       virtual PG_DrawableSurface*
!       CreateDrawableSurface(Uint32 flags,int width, int height, int depth=0,
!                             Uint32 Rmask=0, Uint32 Gmask=0, Uint32 Bmask=0, 
Uint32 Amask=0);
! 
!       virtual PG_DrawableSurface* CreateDrawableSurface(int width, int 
height);
! 
!       /**
!       Same as per CreateDrawableSurface except initialize from a set of 
pixels;
!       pitch defaults to width*depth.
!       */
!       virtual PG_DrawableSurface*
!       CreateDrawableSurfaceFrom(void* pixels,
!                                 Uint32 flags,int width, int height, int 
depth=0, int pitch=0,
!                                 Uint32 Rmask=0, Uint32 Gmask=0, Uint32 
Bmask=0, Uint32 Amask=0);
!       
!       /**
!       Creates a PG_DrawableSurface from an SDL_Surface; default is 
SDL_ConvertSurface
!       */
!       virtual PG_DrawableSurface* CopyDrawableSurface(SDL_Surface* src);
! 
!       /**
!       Creates a PG_DrawableSurface matching current display settings from an
!       SDL_Surface; default is SDL_DisplayFormat or SDL_DisplayFormatAlpha
!       depending on 'hasalpha'
!       */
!       virtual PG_DrawableSurface* AccelDrawableSurface(SDL_Surface* src, bool 
hasalpha=false);
! 
!       /**
        Creates a surface filled with a gradient
  
        @param r                the dimensions of the surface to be created
        @param gradient the gradient colors to use
!       @return                 a surface pointer to the new surface
  
        This function creates a new surface filled with a given gradient 
defined by a set of colors
!       */
!       virtual PG_DrawableSurface* CreateGradient(const PG_Rect& r, 
PG_Gradient& gradient);
  
!       /**
        Creates a surface filled with a gradient
  
***************
*** 152,239 ****
        @param dl               lower/left gradient color
        @param dr               lower/right gradient color
!       @return                 a SDL_Surface pointer to the new surface
  
        This function creates a new surface filled with a given gradient 
defined by a set of colors
! */
! DECLSPEC SDL_Surface* CreateGradient(const PG_Rect& r, SDL_Color & ul, 
SDL_Color & ur, SDL_Color & dl, SDL_Color & dr);
  
! /**
! */
! DECLSPEC void DrawGradient(SDL_Surface* surface, const PG_Rect& r, 
PG_Gradient& gradient);
! 
! /**
! */
! DECLSPEC void DrawGradient(SDL_Surface * surface, const PG_Rect& rect, const 
SDL_Color & ul, const SDL_Color & ur, const SDL_Color & dl, const SDL_Color & 
dr);
! 
! /**
!       Create a new SDL surface
!       @param w width of the new surface
!       @param h height of the new surface
!       @param flags surface-flags (default = SDL_SWSURFACE)
!       @return pointer to the new surface
!       This function creates a new SDL surface
! */
! DECLSPEC SDL_Surface* CreateRGBSurface(Uint16 w, Uint16 h, int flags = 
SDL_SWSURFACE);
! 
! /**
!       Draw a 'themed' surface
! 
!       @param surface                  the surface to draw on
!       @param r                                        the rectangle of the 
surface to draw in
!       @param gradient         pointer to a gradient structure (may be NULL)
!       @param background       pointer to a background surface (may be NULL)
!       @param bkmode           the mode how to fill in the background surface 
(BKMODE_TILE | BKMODE_STRETCH)
!       @param blend                            the blend-level between 
gradient an background
! */
! DECLSPEC void DrawThemedSurface(SDL_Surface* surface, const PG_Rect& r, 
PG_Gradient* gradient, SDL_Surface* background, int bkmode, Uint8 blend);
! 
! /**
!       Draw a line.
!       @param surface destination surface
!       @param x0 x startposition
!       @param y0 y startposition
!       @param x1 x endposition
!       @param y1 y endposition
!       @param color color of the line
!       @param width width of the line
! 
!       Draws a line with given color and width onto a surface.
! */
! DECLSPEC void DrawLine(SDL_Surface* surface, Uint32 x0, Uint32 y0, Uint32 x1, 
Uint32 y1, const SDL_Color& color, Uint8 width = 1);
! 
! /**
!       Set a pixel.
!       @param x x position
!       @param y y position
!       @param r red color component
!       @param g green color component
!       @param b blue color component
!       @param surface destination surface
! */
! DECLSPEC void SetPixel(int x, int y, Uint8 r, Uint8 g, Uint8 b, SDL_Surface * 
surface);
! 
! /**
!       replacement for SDL_BlitSurface
!       @param srf_src  source surface
!       @param rect_src PG_Rect of the source rectangle
!       @param dst_src  destination surface
!       @param rect_dst PG_Rect of the destination rectangle
! 
!       This function simply replaces SDL_BlitSurface and uses PG_Rect instead 
of SDL_Rect.
! */
! inline void BlitSurface(SDL_Surface* srf_src, const PG_Rect& rect_src, 
SDL_Surface* srf_dst, const PG_Rect& rect_dst) {
!       SDL_BlitSurface(srf_src, (PG_Rect*)&rect_src, srf_dst, 
(PG_Rect*)&rect_dst);
! }
! 
! DECLSPEC void DrawTile(SDL_Surface* surface, const PG_Rect& ref, const 
PG_Rect& drawrect, SDL_Surface* tilemap);
! 
! #ifndef DOXYGEN_SKIP
! // These will disappear (moved to another lib)
! DECLSPEC void RectStretch(SDL_Surface* src_surface, int xs1, int ys1, int 
xs2, int ys2, SDL_Surface* dst_surface, int xd1, int yd1, int xd2, int yd2, 
Uint32* voiLUT);
! DECLSPEC void CreateFilterLUT();
! DECLSPEC void PG_SmoothFast(SDL_Surface* src, SDL_Surface* dst);
! DECLSPEC void InterpolatePixel(SDL_Surface* src, SDL_Surface* dest);
! #endif // DOXYGEN_SKIP
  
  } // namespace PG_Draw
  
--- 346,385 ----
        @param dl               lower/left gradient color
        @param dr               lower/right gradient color
!       @return                 a surface pointer to the new surface
  
        This function creates a new surface filled with a given gradient 
defined by a set of colors
!       */
!       virtual PG_DrawableSurface*  CreateGradient(const PG_Rect& r, SDL_Color 
& ul, SDL_Color & ur, SDL_Color & dl, SDL_Color & dr);
  
!       virtual PG_DrawableSurface* GetVideoSurface();
  
+     protected:
+       Uint32 flags;
+       static PG_Draw* defaultdraw;
+       PG_DrawableSurface* screen;
+    };
+ 
+    inline PG_DrawableSurface* PG_Draw::GetVideoSurface() {
+      return screen;
+    };
+ 
+    inline SDL_Surface* PG_DrawableSurface::getScreen() {
+      return ref;
+    };
+ 
+    inline PG_DrawableSurface*
+      PG_DrawableSurface::ScaleSurface(const PG_Rect &rect,
+                                     bool smooth = true) {
+      return ScaleSurface(static_cast<double>(rect.w) / ref->w,
+                        static_cast<double>(rect.h) / ref->h, smooth);
+    }
+    
+    inline PG_DrawableSurface*
+      PG_DrawableSurface::ScaleSurface(Uint16 newx, Uint16 newy,
+                                     bool smooth = true) {
+      return ScaleSurface(static_cast<double>(newx) / ref->w,
+                        static_cast<double>(newy) / ref->h, smooth);
+    }
+    
  } // namespace PG_Draw
  

Index: pgfilearchive.h
===================================================================
RCS file: /cvsroot/paragui/paragui/include/pgfilearchive.h,v
retrieving revision 1.5
retrieving revision 1.5.2.1
diff -C2 -r1.5 -r1.5.2.1
*** pgfilearchive.h     29 Apr 2002 11:44:21 -0000      1.5
--- pgfilearchive.h     18 Jun 2002 22:40:38 -0000      1.5.2.1
***************
*** 235,248 ****
        @param filename imagefile to load
        @param convert convert the loaded surface into screen format (default = 
true)
!       @return pointer to loaded SDL_Surface or NULL
        */
!       static SDL_Surface* LoadSurface(const char* filename, bool convert = 
false);
  
        /**
        Removes the surface from the cache
        @param bDeleteIfExists delete (free) the surface if it isn't in the 
cache
!       @return pointer to the SDL_Surface to remove
        */
!       static bool UnloadSurface(SDL_Surface* surface, bool bDeleteIfNotExists 
= true);
  
        /**
--- 235,248 ----
        @param filename imagefile to load
        @param convert convert the loaded surface into screen format (default = 
true)
!       @return pointer to loaded PG_Draw::PG_DrawableSurface or NULL
        */
!       static PG_Draw::PG_DrawableSurface* LoadSurface(const char* filename, 
bool convert = false);
  
        /**
        Removes the surface from the cache
        @param bDeleteIfExists delete (free) the surface if it isn't in the 
cache
!       @return pointer to the PG_Draw::PG_DrawableSurface to remove
        */
!       static bool UnloadSurface(PG_Draw::PG_DrawableSurface* surface, bool 
bDeleteIfNotExists = true);
  
        /**

Index: pgfont.h
===================================================================
RCS file: /cvsroot/paragui/paragui/include/pgfont.h,v
retrieving revision 1.4
retrieving revision 1.4.2.1
diff -C2 -r1.4 -r1.4.2.1
*** pgfont.h    27 Apr 2002 15:36:54 -0000      1.4
--- pgfont.h    18 Jun 2002 22:40:38 -0000      1.4.2.1
***************
*** 38,41 ****
--- 38,46 ----
  #include "pgrect.h"
  
+ namespace PG_Draw {
+ class PG_Draw;
+ class PG_DrawableSurface;
+ };
+ 
  #include <ft2build.h>
  #include FT_FREETYPE_H
***************
*** 183,189 ****
        @return true on success
        */
!       static bool RenderText(SDL_Surface *Surface, const PG_Rect& ClipRect, 
int BaseLineX, int BaseLineY, const char *Text, PG_Font* ParamIn);
  
!       static bool RenderText(SDL_Surface *Surface, PG_Rect *ClipRect, int 
BaseLineX, int BaseLineY, const char *Text, PG_Font* ParamIn);
  
        /**
--- 188,194 ----
        @return true on success
        */
!       static bool RenderText(PG_Draw::PG_DrawableSurface* Surface, const 
PG_Rect& ClipRect, int BaseLineX, int BaseLineY, const char *Text, PG_Font* 
ParamIn);
  
!       static bool RenderText(PG_Draw::PG_DrawableSurface* Surface, PG_Rect 
*ClipRect, int BaseLineX, int BaseLineY, const char *Text, PG_Font* ParamIn);
  
        /**
***************
*** 195,199 ****
        /**
        */
!       static bool BlitFTBitmap(SDL_Surface *Surface, FT_Bitmap *Bitmap, int 
PosX, int PosY, PG_Font* Param, PG_Rect *ClipRect);
  
        /**
--- 200,204 ----
        /**
        */
!       static bool BlitFTBitmap(PG_Draw::PG_DrawableSurface* Surface, 
FT_Bitmap *Bitmap, int PosX, int PosY, PG_Font* Param, PG_Rect *ClipRect);
  
        /**

Index: pgimage.h
===================================================================
RCS file: /cvsroot/paragui/paragui/include/pgimage.h,v
retrieving revision 1.4
retrieving revision 1.4.2.1
diff -C2 -r1.4 -r1.4.2.1
*** pgimage.h   27 Apr 2002 15:36:54 -0000      1.4
--- pgimage.h   18 Jun 2002 22:40:38 -0000      1.4.2.1
***************
*** 58,74 ****
        @param parent           pointer to the parent widget or NULL
        @param p                                position of the PG_Image widget
!       @param image            pointer to imagedata (SDL_Surface)
        @param freeimage        if true the imagedata is handled by the widget
        @param style            widgetstyle to use
        */
!       PG_Image(PG_Widget* parent, const PG_Point& p, SDL_Surface* image, bool 
freeimage = true, const char* style = "ThemeWidget");
  
  protected:
  
        /** */
!       void eventDraw(SDL_Surface* surface, const PG_Rect& rect);
  
        /** */
!       void eventBlit(SDL_Surface* srf, const PG_Rect& src, const PG_Rect& 
dst);
  };
  
--- 58,74 ----
        @param parent           pointer to the parent widget or NULL
        @param p                                position of the PG_Image widget
!       @param image            pointer to imagedata 
(PG_Draw::PG_DrawableSurface)
        @param freeimage        if true the imagedata is handled by the widget
        @param style            widgetstyle to use
        */
!       PG_Image(PG_Widget* parent, const PG_Point& p, 
PG_Draw::PG_DrawableSurface* image, bool freeimage = true, const char* style = 
"ThemeWidget");
  
  protected:
  
        /** */
!       void eventDraw(PG_Draw::PG_DrawableSurface* surface, const PG_Rect& 
rect);
  
        /** */
!       void eventBlit(PG_Draw::PG_DrawableSurface* srf, const PG_Rect& src, 
const PG_Rect& dst);
  };
  

Index: pglabel.h
===================================================================
RCS file: /cvsroot/paragui/paragui/include/pglabel.h,v
retrieving revision 1.4
retrieving revision 1.4.2.1
diff -C2 -r1.4 -r1.4.2.1
*** pglabel.h   27 Apr 2002 15:36:54 -0000      1.4
--- pglabel.h   18 Jun 2002 22:40:38 -0000      1.4.2.1
***************
*** 66,73 ****
  
        /** */
!       SDL_Surface* SetIcon(const char* filename);
  
        /** */
!       SDL_Surface* SetIcon(SDL_Surface* icon);
  
        /**
--- 66,73 ----
  
        /** */
!       PG_Draw::PG_DrawableSurface* SetIcon(const char* filename);
  
        /** */
!       PG_Draw::PG_DrawableSurface* SetIcon(PG_Draw::PG_DrawableSurface* icon);
  
        /**
***************
*** 83,92 ****
        @param rect             Rectangle to draw in, relative to surface.
        */
!       void eventDraw(SDL_Surface* surface, const PG_Rect& rect);
  
        /** */
!       void eventBlit(SDL_Surface* srf, const PG_Rect& src, const PG_Rect& 
dst);
  
!       SDL_Surface* my_srfIcon;
  
  private:
--- 83,92 ----
        @param rect             Rectangle to draw in, relative to surface.
        */
!       void eventDraw(PG_Draw::PG_DrawableSurface* surface, const PG_Rect& 
rect);
  
        /** */
!       void eventBlit(PG_Draw::PG_DrawableSurface* srf, const PG_Rect& src, 
const PG_Rect& dst);
  
!       PG_Draw::PG_DrawableSurface* my_srfIcon;
  
  private:

Index: pglineedit.h
===================================================================
RCS file: /cvsroot/paragui/paragui/include/pglineedit.h,v
retrieving revision 1.5
retrieving revision 1.5.2.1
diff -C2 -r1.5 -r1.5.2.1
*** pglineedit.h        27 Apr 2002 15:36:54 -0000      1.5
--- pglineedit.h        18 Jun 2002 22:40:38 -0000      1.5.2.1
***************
*** 165,170 ****
  
        /** */
!       void eventBlit(SDL_Surface* surface, const PG_Rect& src, const PG_Rect& 
dst);
!       //void eventDraw(SDL_Surface* surface, const PG_Rect& rect);
  
        /** */
--- 165,170 ----
  
        /** */
!       void eventBlit(PG_Draw::PG_DrawableSurface* surface, const PG_Rect& 
src, const PG_Rect& dst);
!       //void eventDraw(PG_Draw::PG_DrawableSurface* surface, const PG_Rect& 
rect);
  
        /** */
***************
*** 206,210 ****
        char my_passchar;
  
!       SDL_Surface* my_srfTextCursor;
  };
  
--- 206,210 ----
        char my_passchar;
  
!       PG_Draw::PG_DrawableSurface* my_srfTextCursor;
  };
  

Index: pglistboxitem.h
===================================================================
RCS file: /cvsroot/paragui/paragui/include/pglistboxitem.h,v
retrieving revision 1.4
retrieving revision 1.4.2.1
diff -C2 -r1.4 -r1.4.2.1
*** pglistboxitem.h     27 Apr 2002 15:36:54 -0000      1.4
--- pglistboxitem.h     18 Jun 2002 22:40:38 -0000      1.4.2.1
***************
*** 38,42 ****
  
        /** */
!       PG_ListBoxItem(int height, const char* text = NULL, SDL_Surface* icon = 
NULL, void* userdata = NULL, const char* style="ListBox");
  
        /** */
--- 38,42 ----
  
        /** */
!       PG_ListBoxItem(int height, const char* text = NULL, 
PG_Draw::PG_DrawableSurface* icon = NULL, void* userdata = NULL, const char* 
style="ListBox");
  
        /** */
***************
*** 49,53 ****
  
        /** */
!       void eventBlit(SDL_Surface* srf, const PG_Rect& src, const PG_Rect& 
dst);
  
        /** */
--- 49,53 ----
  
        /** */
!       void eventBlit(PG_Draw::PG_DrawableSurface* srf, const PG_Rect& src, 
const PG_Rect& dst);
  
        /** */
***************
*** 57,63 ****
  
        PG_Gradient* my_gradient[3];
!       SDL_Surface* my_background[3];
!       SDL_Surface* my_srfHover;
!       SDL_Surface* my_srfSelected;
  
        int my_bkmode[3];
--- 57,63 ----
  
        PG_Gradient* my_gradient[3];
!       PG_Draw::PG_DrawableSurface* my_background[3];
!       PG_Draw::PG_DrawableSurface* my_srfHover;
!       PG_Draw::PG_DrawableSurface* my_srfSelected;
  
        int my_bkmode[3];

Index: pglog.h
===================================================================
RCS file: /cvsroot/paragui/paragui/include/pglog.h,v
retrieving revision 1.3
retrieving revision 1.3.2.1
diff -C2 -r1.3 -r1.3.2.1
*** pglog.h     15 Apr 2002 13:35:35 -0000      1.3
--- pglog.h     18 Jun 2002 22:40:38 -0000      1.3.2.1
***************
*** 37,41 ****
  
  #include <stdarg.h>
! #include "SDL.h"
  
  //! ParaGUI logging level
--- 37,41 ----
  
  #include <stdarg.h>
! #include "glSDL.h"
  
  //! ParaGUI logging level

Index: pgpoint.h
===================================================================
RCS file: /cvsroot/paragui/paragui/include/pgpoint.h,v
retrieving revision 1.1
retrieving revision 1.1.2.1
diff -C2 -r1.1 -r1.1.2.1
*** pgpoint.h   27 Apr 2002 16:07:14 -0000      1.1
--- pgpoint.h   18 Jun 2002 22:40:38 -0000      1.1.2.1
***************
*** 2,6 ****
  #define PG_POINT_H
  
! #include "SDL.h"
  
  class PG_Point {
--- 2,6 ----
  #define PG_POINT_H
  
! #include "glSDL.h"
  
  class PG_Point {

Index: pgpopupmenu.h
===================================================================
RCS file: /cvsroot/paragui/paragui/include/pgpopupmenu.h,v
retrieving revision 1.7
retrieving revision 1.7.2.1
diff -C2 -r1.7 -r1.7.2.1
*** pgpopupmenu.h       7 May 2002 12:47:43 -0000       1.7
--- pgpopupmenu.h       18 Jun 2002 22:40:38 -0000      1.7.2.1
***************
*** 85,95 ****
        inline void moveTo(int x, int y);
  
!       inline SDL_Surface* getNormal() const;
!       inline SDL_Surface* getDisabled() const;
!       inline SDL_Surface* getSelected() const;
! 
!       bool paintNormal(SDL_Surface *canvas, SDL_Color *tcol, SDL_Color *scol 
= 0);
!       bool paintDisabled(SDL_Surface *canvas, SDL_Color *tcol, SDL_Color 
*scol = 0);
!       bool paintSelected(SDL_Surface *canvas, SDL_Color *tcol, SDL_Color 
*scol = 0);
  
        inline void disable();
--- 85,95 ----
        inline void moveTo(int x, int y);
  
!       inline PG_Draw::PG_DrawableSurface* getNormal() const;
!       inline PG_Draw::PG_DrawableSurface* getDisabled() const;
!       inline PG_Draw::PG_DrawableSurface* getSelected() const;
! 
!       bool paintNormal(PG_Draw::PG_DrawableSurface* canvas, SDL_Color *tcol, 
SDL_Color *scol = 0);
!       bool paintDisabled(PG_Draw::PG_DrawableSurface* canvas, SDL_Color 
*tcol, SDL_Color *scol = 0);
!       bool paintSelected(PG_Draw::PG_DrawableSurface* canvas, SDL_Color 
*tcol, SDL_Color *scol = 0);
  
        inline void disable();
***************
*** 120,124 ****
  private: // methods
        void initItem();
!       bool renderSurface(SDL_Surface *canvas, SDL_Surface **text, SDL_Color 
*tcol, SDL_Color *scol = 0);
        bool isValidRect();
  
--- 120,124 ----
  private: // methods
        void initItem();
!       bool renderSurface(PG_Draw::PG_DrawableSurface* canvas, 
PG_Draw::PG_DrawableSurface** text, SDL_Color *tcol, SDL_Color *scol = 0);
        bool isValidRect();
  
***************
*** 131,137 ****
        int           myId;
  
!       SDL_Surface  *sNormal;
!       SDL_Surface  *sSelected;
!       SDL_Surface  *sDisabled;
  
        bool          selected;
--- 131,137 ----
        int           myId;
  
!       PG_Draw::PG_DrawableSurface* sNormal;
!       PG_Draw::PG_DrawableSurface* sSelected;
!       PG_Draw::PG_DrawableSurface* sDisabled;
  
        bool          selected;
***************
*** 260,264 ****
  
        // reimplemented
!       void eventBlit(SDL_Surface* srf, const PG_Rect& src, const PG_Rect& 
dst);
  
        void eventMouseEnter();
--- 260,264 ----
  
        // reimplemented
!       void eventBlit(PG_Draw::PG_DrawableSurface* srf, const PG_Rect& src, 
const PG_Rect& dst);
  
        void eventMouseEnter();
***************
*** 313,317 ****
  
        PG_Gradient          *miGradients[3];
!       SDL_Surface          *miBackgrounds[3];
        int                   miBkModes[3];
        Uint8                 miBlends[3];
--- 313,317 ----
  
        PG_Gradient          *miGradients[3];
!       PG_Draw::PG_DrawableSurface* miBackgrounds[3];
        int                   miBkModes[3];
        Uint8                 miBlends[3];
***************
*** 342,354 ****
  };
  
! inline SDL_Surface* PG_MenuItem::getNormal() const {
        return sNormal;
  }
  
! inline SDL_Surface* PG_MenuItem::getDisabled() const {
        return sDisabled;
  }
  
! inline SDL_Surface* PG_MenuItem::getSelected() const {
        return sSelected;
  }
--- 342,354 ----
  };
  
! inline PG_Draw::PG_DrawableSurface* PG_MenuItem::getNormal() const {
        return sNormal;
  }
  
! inline PG_Draw::PG_DrawableSurface* PG_MenuItem::getDisabled() const {
        return sDisabled;
  }
  
! inline PG_Draw::PG_DrawableSurface* PG_MenuItem::getSelected() const {
        return sSelected;
  }

Index: pgprogressbar.h
===================================================================
RCS file: /cvsroot/paragui/paragui/include/pgprogressbar.h,v
retrieving revision 1.4
retrieving revision 1.4.2.1
diff -C2 -r1.4 -r1.4.2.1
*** pgprogressbar.h     27 Apr 2002 15:36:55 -0000      1.4
--- pgprogressbar.h     18 Jun 2002 22:40:38 -0000      1.4.2.1
***************
*** 70,77 ****
  
        /** */
!       void eventBlit(SDL_Surface* srf, const PG_Rect& src, const PG_Rect& 
dst);
  
        /**
!       void eventDraw(SDL_Surface* surface, const PG_Rect& rect);
        */
  private:
--- 70,77 ----
  
        /** */
!       void eventBlit(PG_Draw::PG_DrawableSurface* srf, const PG_Rect& src, 
const PG_Rect& dst);
  
        /**
!       void eventDraw(PG_Draw::PG_DrawableSurface* surface, const PG_Rect& 
rect);
        */
  private:
***************
*** 81,85 ****
  
        PG_Gradient my_pbGradient;
!       SDL_Surface* my_pbBackground;
        int my_pbBackmode;
        int my_pbBlend;
--- 81,85 ----
  
        PG_Gradient my_pbGradient;
!       PG_Draw::PG_DrawableSurface* my_pbBackground;
        int my_pbBackmode;
        int my_pbBlend;

Index: pgrect.h
===================================================================
RCS file: /cvsroot/paragui/paragui/include/pgrect.h,v
retrieving revision 1.5
retrieving revision 1.5.2.1
diff -C2 -r1.5 -r1.5.2.1
*** pgrect.h    4 Jun 2002 05:20:16 -0000       1.5
--- pgrect.h    18 Jun 2002 22:40:38 -0000      1.5.2.1
***************
*** 111,115 ****
        @return                 true if the point is inside the rectangle
        */
!       inline bool IsInside(const PG_Point& p) {
                return ( (x <= p.x) && (p.x <= x + w) && (y <= p.y) && (p.y <= 
y + h) );
        }
--- 111,115 ----
        @return                 true if the point is inside the rectangle
        */
!       inline bool IsInside(const PG_Point& p) const {
                return ( (x <= p.x) && (p.x <= x + w) && (y <= p.y) && (p.y <= 
y + h) );
        }
***************
*** 146,150 ****
        }
  
!       inline bool IsNull() {
                return (!Width() && !Height());
        }
--- 146,150 ----
        }
  
!       inline bool IsNull() const {
                return (!Width() && !Height());
        }
***************
*** 155,159 ****
        \return true if the rectangles overlap, false otherwise
        */
!       inline bool OverlapRect(const PG_Rect& p, const PG_Rect& c) {
                return !( (p.x + p.w < c.x) || (p.x > c.x + c.w) || (p.y + p.h 
< c.y) || (p.y > c.y + c.h)  || (p.IntersectRect(c).IsNull()) );
        }
--- 155,159 ----
        \return true if the rectangles overlap, false otherwise
        */
!       inline bool OverlapRect(const PG_Rect& p, const PG_Rect& c) const {
                return !( (p.x + p.w < c.x) || (p.x > c.x + c.w) || (p.y + p.h 
< c.y) || (p.y > c.y + c.h)  || (p.IntersectRect(c).IsNull()) );
        }
***************
*** 164,168 ****
        \return true if this rectangle an p overlap, false otherwise
        */
!       inline bool OverlapRect(const PG_Rect& p) {
                return OverlapRect(p, *this);
        }
--- 164,168 ----
        \return true if this rectangle an p overlap, false otherwise
        */
!       inline bool OverlapRect(const PG_Rect& p) const {
                return OverlapRect(p, *this);
        }
***************
*** 173,177 ****
        \return true if this rectangle an p overlap, false otherwise
        */
!       inline bool OverlapRect(PG_Rect* p) {
                return OverlapRect(*p, *this);
        }
--- 173,177 ----
        \return true if this rectangle an p overlap, false otherwise
        */
!       inline bool OverlapRect(PG_Rect* p) const {
                return OverlapRect(*p, *this);
        }

Index: pgrichedit.h
===================================================================
RCS file: /cvsroot/paragui/paragui/include/pgrichedit.h,v
retrieving revision 1.3
retrieving revision 1.3.2.1
diff -C2 -r1.3 -r1.3.2.1
*** pgrichedit.h        15 Apr 2002 13:35:35 -0000      1.3
--- pgrichedit.h        18 Jun 2002 22:40:38 -0000      1.3.2.1
***************
*** 77,81 ****
        /**
        */
!       void eventBlit(SDL_Surface* srf, const PG_Rect& src, const PG_Rect& 
dst);
  
        void UpdateScrollBarsPos();
--- 77,81 ----
        /**
        */
!       void eventBlit(PG_Draw::PG_DrawableSurface* srf, const PG_Rect& src, 
const PG_Rect& dst);
  
        void UpdateScrollBarsPos();

Index: pgsignals.h
===================================================================
RCS file: /cvsroot/paragui/paragui/include/pgsignals.h,v
retrieving revision 1.7
retrieving revision 1.7.2.1
diff -C2 -r1.7 -r1.7.2.1
*** pgsignals.h 7 May 2002 12:47:43 -0000       1.7
--- pgsignals.h 18 Jun 2002 22:40:38 -0000      1.7.2.1
***************
*** 30,34 ****
  #define PG_SIGNALS_H
  
! #include "SDL.h"
  #include <sigc++/sigc++.h>
  
--- 30,34 ----
  #define PG_SIGNALS_H
  
! #include "glSDL.h"
  #include <sigc++/sigc++.h>
  

Index: pgsurfacecache.h
===================================================================
RCS file: /cvsroot/paragui/paragui/include/pgsurfacecache.h,v
retrieving revision 1.3
retrieving revision 1.3.2.1
diff -C2 -r1.3 -r1.3.2.1
*** pgsurfacecache.h    15 Apr 2002 13:35:35 -0000      1.3
--- pgsurfacecache.h    18 Jun 2002 22:40:38 -0000      1.3.2.1
***************
*** 32,38 ****
  #include "paragui.h"
  
  typedef struct {
        int refcount;
!       SDL_Surface* surface;
        std::string key;
  }
--- 32,43 ----
  #include "paragui.h"
  
+ namespace PG_Draw {
+ class PG_Draw;
+ class PG_DrawableSurface;
+ };
+ 
  typedef struct {
        int refcount;
!       PG_Draw::PG_DrawableSurface* surface;
        std::string key;
  }
***************
*** 46,54 ****
  
        void CreateKey(std::string &key, Uint16 w, Uint16 h,
!                      PG_Gradient* gradient, SDL_Surface* background,
                       Sint8 bkmode, Uint8 blend);
!       SDL_Surface* FindSurface(const std::string &key);
!       SDL_Surface* AddSurface(const std::string &key, SDL_Surface* surface);
!       void DeleteSurface(SDL_Surface* surface, bool bDeleteIfNotExists = 
true);
  
        void IncRef(const std::string &key);
--- 51,59 ----
  
        void CreateKey(std::string &key, Uint16 w, Uint16 h,
!                      PG_Gradient* gradient, PG_Draw::PG_DrawableSurface* 
background,
                       Sint8 bkmode, Uint8 blend);
!       PG_Draw::PG_DrawableSurface* FindSurface(const std::string &key);
!       PG_Draw::PG_DrawableSurface* AddSurface(const std::string &key, 
PG_Draw::PG_DrawableSurface* surface);
!       void DeleteSurface(PG_Draw::PG_DrawableSurface* surface, bool 
bDeleteIfNotExists = true);
  
        void IncRef(const std::string &key);
***************
*** 59,63 ****
  
        pg_surface_cache_t* FindByKey(const std::string &key);
!       pg_surface_cache_t* FindBySurface(SDL_Surface* surface);
  
        void* my_surfacemap;
--- 64,68 ----
  
        pg_surface_cache_t* FindByKey(const std::string &key);
!       pg_surface_cache_t* FindBySurface(PG_Draw::PG_DrawableSurface* surface);
  
        void* my_surfacemap;

Index: pgtheme.h
===================================================================
RCS file: /cvsroot/paragui/paragui/include/pgtheme.h,v
retrieving revision 1.4
retrieving revision 1.4.2.1
diff -C2 -r1.4 -r1.4.2.1
*** pgtheme.h   27 Apr 2002 15:36:55 -0000      1.4
--- pgtheme.h   18 Jun 2002 22:40:38 -0000      1.4.2.1
***************
*** 47,51 ****
        virtual int FindFontSize(const char* widgettype, const char* 
objectname) = 0;
        virtual int FindFontStyle(const char* widgettype, const char* 
objectname) = 0;
!       virtual SDL_Surface* FindSurface(const char* widgettype, const char* 
object, const char* name) = 0;
        virtual PG_Gradient* FindGradient(const char* widgettype, const char* 
object, const char* name) = 0;
        virtual long FindProperty(const char* widgettype, const char* object, 
const char* name) = 0;
--- 47,51 ----
        virtual int FindFontSize(const char* widgettype, const char* 
objectname) = 0;
        virtual int FindFontStyle(const char* widgettype, const char* 
objectname) = 0;
!       virtual PG_Draw::PG_DrawableSurface* FindSurface(const char* 
widgettype, const char* object, const char* name) = 0;
        virtual PG_Gradient* FindGradient(const char* widgettype, const char* 
object, const char* name) = 0;
        virtual long FindProperty(const char* widgettype, const char* object, 
const char* name) = 0;

Index: pgthemewidget.h
===================================================================
RCS file: /cvsroot/paragui/paragui/include/pgthemewidget.h,v
retrieving revision 1.4
retrieving revision 1.4.2.1
diff -C2 -r1.4 -r1.4.2.1
*** pgthemewidget.h     27 Apr 2002 15:36:55 -0000      1.4
--- pgthemewidget.h     18 Jun 2002 22:40:38 -0000      1.4.2.1
***************
*** 137,141 ****
        @return                                         true on success
        */
!       bool SetBackground(SDL_Surface* surface, int mode=BKMODE_TILE);
  
        /**
--- 137,141 ----
        @return                                         true on success
        */
!       bool SetBackground(PG_Draw::PG_DrawableSurface* surface, int 
mode=BKMODE_TILE);
  
        /**
***************
*** 175,179 ****
        of the widget.
        */
!       bool SetImage(SDL_Surface* image, bool bFreeImage = true);
  
        /**
--- 175,179 ----
        of the widget.
        */
!       bool SetImage(PG_Draw::PG_DrawableSurface* image, bool bFreeImage = 
true);
  
        /**
***************
*** 195,199 ****
        The generated surface is managed by the surfacecache. Don't delete 
these surface with SDL_FreeSurface. Please use DeleteThemedSurface.
        */
!       static SDL_Surface* CreateThemedSurface(const PG_Rect& r, PG_Gradient* 
gradient, SDL_Surface* background, int bkmode, Uint8 blend);
  
        /**
--- 195,199 ----
        The generated surface is managed by the surfacecache. Don't delete 
these surface with SDL_FreeSurface. Please use DeleteThemedSurface.
        */
!       static PG_Draw::PG_DrawableSurface* CreateThemedSurface(const PG_Rect& 
r, PG_Gradient* gradient, PG_Draw::PG_DrawableSurface* background, int bkmode, 
Uint8 blend);
  
        /**
***************
*** 201,205 ****
        @param  surface         pointer to surface
        */
!       static void DeleteThemedSurface(SDL_Surface* surface);
  
  protected:
--- 201,205 ----
        @param  surface         pointer to surface
        */
!       static void DeleteThemedSurface(PG_Draw::PG_DrawableSurface* surface);
  
  protected:
***************
*** 209,222 ****
  
        /** */
!       void eventDraw(SDL_Surface* surface, const PG_Rect& rect);
  
        /** */
!       void eventBlit(SDL_Surface* srf, const PG_Rect& src, const PG_Rect& 
dst);
  
  
        bool my_has_gradient;
        PG_Gradient my_gradient;
!       SDL_Surface* my_background;
!       SDL_Surface* my_image;
  
        Uint8 my_blendLevel;
--- 209,222 ----
  
        /** */
!       void eventDraw(PG_Draw::PG_DrawableSurface* surface, const PG_Rect& 
rect);
  
        /** */
!       void eventBlit(PG_Draw::PG_DrawableSurface* srf, const PG_Rect& src, 
const PG_Rect& dst);
  
  
        bool my_has_gradient;
        PG_Gradient my_gradient;
!       PG_Draw::PG_DrawableSurface* my_background;
!       PG_Draw::PG_DrawableSurface* my_image;
  
        Uint8 my_blendLevel;

Index: pgwidget.h
===================================================================
RCS file: /cvsroot/paragui/paragui/include/pgwidget.h,v
retrieving revision 1.13
retrieving revision 1.13.2.1
diff -C2 -r1.13 -r1.13.2.1
*** pgwidget.h  6 May 2002 10:40:49 -0000       1.13
--- pgwidget.h  18 Jun 2002 22:40:38 -0000      1.13.2.1
***************
*** 194,207 ****
        Return the pointer to the widget's drawing surface
  
!       @return SDL_Surface pointer to the drawing surface
        */
!       SDL_Surface* GetWidgetSurface();
  
        /**
        Return the pointer to the screen surface
  
!       @return SDL_Surface pointer to the screen surface
        */
!       SDL_Surface* GetScreenSurface();
  
        /**
--- 194,207 ----
        Return the pointer to the widget's drawing surface
  
!       @return PG_Draw::PG_DrawableSurface pointer to the drawing surface
        */
!       PG_Draw::PG_DrawableSurface* GetWidgetSurface();
  
        /**
        Return the pointer to the screen surface
  
!       @return PG_Draw::PG_DrawableSurface pointer to the screen surface
        */
!       PG_Draw::PG_DrawableSurface* GetScreenSurface();
  
        /**
***************
*** 766,770 ****
        @Note Only widgets with drawing surfaces (see the constructor) will 
call this eventhandler.
        */
!       virtual void eventDraw(SDL_Surface* surface, const PG_Rect& rect);
  
        /**
--- 766,770 ----
        @Note Only widgets with drawing surfaces (see the constructor) will 
call this eventhandler.
        */
!       virtual void eventDraw(PG_Draw::PG_DrawableSurface* surface, const 
PG_Rect& rect);
  
        /**
***************
*** 775,779 ****
        Override this eventhandler to perform custom blitting behaviour 
(without drawing onto the widget surface).
        */
!       virtual void eventBlit(SDL_Surface* srf, const PG_Rect& src, const 
PG_Rect& dst);
  
        /**
--- 775,779 ----
        Override this eventhandler to perform custom blitting behaviour 
(without drawing onto the widget surface).
        */
!       virtual void eventBlit(PG_Draw::PG_DrawableSurface* srf, const PG_Rect& 
src, const PG_Rect& dst);
  
        /**
***************
*** 805,814 ****
        pointer to the widgets drawing surface or NULL
        */
!       SDL_Surface* my_srfObject;
  
        /**
        pointer to the screen surface
        */
!       SDL_Surface* my_srfScreen;
  
        /**
--- 805,814 ----
        pointer to the widgets drawing surface or NULL
        */
!       PG_Draw::PG_DrawableSurface* my_srfObject;
  
        /**
        pointer to the screen surface
        */
!       PG_Draw::PG_DrawableSurface* my_srfScreen;
  
        /**

Index: pgwidgetdnd.h
===================================================================
RCS file: /cvsroot/paragui/paragui/include/pgwidgetdnd.h,v
retrieving revision 1.4
retrieving revision 1.4.2.1
diff -C2 -r1.4 -r1.4.2.1
*** pgwidgetdnd.h       27 Apr 2002 15:36:55 -0000      1.4
--- pgwidgetdnd.h       18 Jun 2002 22:40:38 -0000      1.4.2.1
***************
*** 73,80 ****
  
        /**  */
!       void updateDragArea(PG_Point pt, SDL_Surface* image);
  
        /**  */
!       void drawDragArea(PG_Point pt, SDL_Surface* image);
  
  protected: // Protected methods
--- 73,80 ----
  
        /**  */
!       void updateDragArea(PG_Point pt, PG_Draw::PG_DrawableSurface* image);
  
        /**  */
!       void drawDragArea(PG_Point pt, PG_Draw::PG_DrawableSurface* image);
  
  protected: // Protected methods
***************
*** 105,112 ****
  
        /**  */
!       virtual SDL_Surface* eventQueryDragImage();
  
        /**  */
!       virtual SDL_Surface* eventQueryDropImage(SDL_Surface* dragimage = NULL);
  
        PG_WidgetDnD* dnd_next;
--- 105,112 ----
  
        /**  */
!       virtual PG_Draw::PG_DrawableSurface* eventQueryDragImage();
  
        /**  */
!       virtual PG_Draw::PG_DrawableSurface* 
eventQueryDropImage(PG_Draw::PG_DrawableSurface* dragimage = NULL);
  
        PG_WidgetDnD* dnd_next;
***************
*** 125,129 ****
  
        /**  */
!       void slideDragImage(PG_Point start, PG_Point end, int steps, 
SDL_Surface* image);
  
        bool            CanDrag;
--- 125,129 ----
  
        /**  */
!       void slideDragImage(PG_Point start, PG_Point end, int steps, 
PG_Draw::PG_DrawableSurface* image);
  
        bool            CanDrag;
***************
*** 133,138 ****
        PG_Point dragPointOld;
        PG_Point dragPointCurrent;
!       SDL_Surface* dragimage;
!       SDL_Surface* dragimagecache;
  
  private: // disable the copy operators
--- 133,138 ----
        PG_Point dragPointOld;
        PG_Point dragPointCurrent;
!       PG_Draw::PG_DrawableSurface* dragimage;
!       PG_Draw::PG_DrawableSurface* dragimagecache;
  
  private: // disable the copy operators

Index: pgwidgetlist.h
===================================================================
RCS file: /cvsroot/paragui/paragui/include/pgwidgetlist.h,v
retrieving revision 1.8
retrieving revision 1.8.2.1
diff -C2 -r1.8 -r1.8.2.1
*** pgwidgetlist.h      30 Apr 2002 10:18:38 -0000      1.8
--- pgwidgetlist.h      18 Jun 2002 22:40:38 -0000      1.8.2.1
***************
*** 156,160 ****
  
        /** */
!       void eventBlit(SDL_Surface* srf, const PG_Rect& src, const PG_Rect& 
dst);
  
        /**  */
--- 156,160 ----
  
        /** */
!       void eventBlit(PG_Draw::PG_DrawableSurface* srf, const PG_Rect& src, 
const PG_Rect& dst);
  
        /**  */

Index: pgwindow.h
===================================================================
RCS file: /cvsroot/paragui/paragui/include/pgwindow.h,v
retrieving revision 1.7
retrieving revision 1.7.2.1
diff -C2 -r1.7 -r1.7.2.1
*** pgwindow.h  2 May 2002 09:50:38 -0000       1.7
--- pgwindow.h  18 Jun 2002 22:40:38 -0000      1.7.2.1
***************
*** 80,84 ****
  
        /** */
!       void eventBlit(SDL_Surface* srf, const PG_Rect& src, const PG_Rect& 
dst);
  
        /** */
--- 80,84 ----
  
        /** */
!       void eventBlit(PG_Draw::PG_DrawableSurface* srf, const PG_Rect& src, 
const PG_Rect& dst);
  
        /** */




reply via email to

[Prev in Thread] Current Thread [Next in Thread]