Added OpenFromImage for ZImage<-->ZImage drawing.

This commit is contained in:
James Turk 2003-02-10 04:55:48 +00:00
parent 4a9e49fba0
commit dee427ac89
2 changed files with 44 additions and 5 deletions

View File

@ -13,7 +13,7 @@
File: ZE_ZImage.h <br> File: ZE_ZImage.h <br>
Description: Header file for core ZEngine Image and Texture Object. <br> Description: Header file for core ZEngine Image and Texture Object. <br>
Author(s): James Turk, Gamer Tazar <br> Author(s): James Turk, Gamer Tazar <br>
$Id: ZE_ZImage.h,v 1.13 2003/02/10 04:40:16 cozman Exp $<br> $Id: ZE_ZImage.h,v 1.14 2003/02/10 04:55:48 cozman Exp $<br>
\file ZE_ZImage.h \file ZE_ZImage.h
\brief Definition file for ZImage. \brief Definition file for ZImage.
@ -94,7 +94,7 @@ class ZImage
/*! /*!
\brief Constructor to Construct from part of an SDL_Surface*. \brief Constructor to Construct from part of an SDL_Surface*.
Constructor is same as calling ZImage::OpenFromImage. Constructor is same as calling ZImage::OpenFromImage with an SDL_Surface*.
\param img Image to take new image from. \param img Image to take new image from.
\param x X Coordinate in source of top left corner. \param x X Coordinate in source of top left corner.
@ -104,6 +104,19 @@ class ZImage
**/ **/
ZImage(SDL_Surface *img, Sint16 x, Sint16 y, Sint16 w, Sint16 h); ZImage(SDL_Surface *img, Sint16 x, Sint16 y, Sint16 w, Sint16 h);
/*!
\brief Constructor to Construct from part of another ZImage.
Constructor is same as calling ZImage::OpenFromImage with a ZImage.
\param img Image to take new image from.
\param x X Coordinate in source of top left corner.
\param y Y Coordinate in source of top left corner.
\param w Width of new image.
\param h Height of new image.
**/
ZImage(const ZImage &img, Sint16 x, Sint16 y, Sint16 w, Sint16 h);
/*! /*!
\brief Destructor, frees memory. \brief Destructor, frees memory.
@ -124,11 +137,11 @@ class ZImage
void Open(string filename); void Open(string filename);
/*! /*!
\brief Cuts part of an existing image to create the new image. \brief Cuts part of an existing image to create a new image.
Cut part of an SDL_Surface to create a new Image. Cut part of an SDL_Surface to create a new Image.
\param img Image to take new image from. \param img SDL_Surface* to take new image from.
\param x X Coordinate in source of top left corner. \param x X Coordinate in source of top left corner.
\param y Y Coordinate in source of top left corner. \param y Y Coordinate in source of top left corner.
\param w Width of new image. \param w Width of new image.
@ -136,6 +149,19 @@ class ZImage
**/ **/
void OpenFromImage(SDL_Surface *img, Sint16 x, Sint16 y, Sint16 w, Sint16 h); void OpenFromImage(SDL_Surface *img, Sint16 x, Sint16 y, Sint16 w, Sint16 h);
/*!
\brief Cuts part of an existing ZImage to create a new image.
Cut part of another ZImage to create a new Image.
\param img ZImage to take new image from.
\param x X Coordinate in source of top left corner.
\param y Y Coordinate in source of top left corner.
\param w Width of new image.
\param h Height of new image.
**/
void OpenFromImage(const ZImage &img, Sint16 x, Sint16 y, Sint16 w, Sint16 h);
/*! /*!
\brief Attach an existing surface to class. \brief Attach an existing surface to class.

View File

@ -13,7 +13,7 @@
File: ZE_ZImage.cpp <br> File: ZE_ZImage.cpp <br>
Description: Implementation source file for core ZEngine Image or Texture Object. <br> Description: Implementation source file for core ZEngine Image or Texture Object. <br>
Author(s): James Turk, Gamer Tazar <br> Author(s): James Turk, Gamer Tazar <br>
$Id: ZE_ZImage.cpp,v 1.24 2003/02/10 04:02:38 cozman Exp $<br> $Id: ZE_ZImage.cpp,v 1.25 2003/02/10 04:55:48 cozman Exp $<br>
\file ZE_ZImage.cpp \file ZE_ZImage.cpp
\brief Source file for ZImage. \brief Source file for ZImage.
@ -66,6 +66,14 @@ ZImage::ZImage(SDL_Surface *img, Sint16 x, Sint16 y, Sint16 w, Sint16 h)
OpenFromImage(img,x,y,w,h); OpenFromImage(img,x,y,w,h);
} }
ZImage::ZImage(const ZImage &img, Sint16 x, Sint16 y, Sint16 w, Sint16 h)
{
rEngine = ZEngine::GetInstance();
rImage = NULL;
rAlpha = 255;
OpenFromImage(img.Surface(),x,y,w,h); //call SDL_Surface* version instead of taking the long way
}
ZImage::~ZImage() ZImage::~ZImage()
{ {
Release(); Release();
@ -107,6 +115,11 @@ void ZImage::OpenFromImage(SDL_Surface *image, Sint16 x, Sint16 y, Sint16 w, Sin
Attach(cutImg); Attach(cutImg);
} }
void ZImage::OpenFromImage(const ZImage &img, Sint16 x, Sint16 y, Sint16 w, Sint16 h)
{
OpenFromImage(img.Surface(),x,y,w,h);
}
void ZImage::Attach(SDL_Surface *surface) void ZImage::Attach(SDL_Surface *surface)
{ {
GLfloat coord[4]; GLfloat coord[4];