DrawClipped and DrawClipped test
This commit is contained in:
parent
a9c641bc9d
commit
1cce44c276
@ -13,7 +13,7 @@
|
|||||||
\brief Definition file for ZImage.
|
\brief Definition file for ZImage.
|
||||||
|
|
||||||
Definition file for ZImage, the OpenGL version of the ZImage class for ZEngine.
|
Definition file for ZImage, the OpenGL version of the ZImage class for ZEngine.
|
||||||
<br>$Id: ZE_ZImage.h,v 1.23 2003/09/01 00:22:27 cozman Exp $<br>
|
<br>$Id: ZE_ZImage.h,v 1.24 2003/09/01 03:30:39 cozman Exp $<br>
|
||||||
\author James Turk
|
\author James Turk
|
||||||
**/
|
**/
|
||||||
|
|
||||||
@ -215,6 +215,17 @@ class ZImage
|
|||||||
**/
|
**/
|
||||||
void Draw(int x, int y) const;
|
void Draw(int x, int y) const;
|
||||||
|
|
||||||
|
/*!
|
||||||
|
\brief Draw Clipped Image to screen.
|
||||||
|
|
||||||
|
Image is drawn such that only portions of image which fall within a certain area appear.
|
||||||
|
\since 0.8.5
|
||||||
|
\param x X coord to draw Image to.
|
||||||
|
\param y Y coord to draw Image to.
|
||||||
|
\param clipRect Rectangle to clip within.
|
||||||
|
**/
|
||||||
|
void DrawClipped(int x, int y, ZRect clipRect) const;
|
||||||
|
|
||||||
#if (GFX_BACKEND == ZE_OGL)
|
#if (GFX_BACKEND == ZE_OGL)
|
||||||
/*!
|
/*!
|
||||||
\brief Draw Image to Screen.
|
\brief Draw Image to Screen.
|
||||||
|
@ -13,7 +13,7 @@
|
|||||||
\brief Source file for ZImage.
|
\brief Source file for ZImage.
|
||||||
|
|
||||||
Implementation of ZImage, the Image class for ZEngine.
|
Implementation of ZImage, the Image class for ZEngine.
|
||||||
<br>$Id: ZE_ZImage.cpp,v 1.42 2003/09/01 00:22:35 cozman Exp $<br>
|
<br>$Id: ZE_ZImage.cpp,v 1.43 2003/09/01 03:30:39 cozman Exp $<br>
|
||||||
\author James Turk
|
\author James Turk
|
||||||
**/
|
**/
|
||||||
|
|
||||||
@ -197,6 +197,11 @@ void ZImage::Draw(int x, int y) const
|
|||||||
Draw(static_cast<float>(x),static_cast<float>(y));
|
Draw(static_cast<float>(x),static_cast<float>(y));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void ZImage::DrawClipped(int x, int y, ZRect clipRect) const
|
||||||
|
{
|
||||||
|
DrawClipped(static_cast<float>(x),static_cast<float>(y),clipRect);
|
||||||
|
}
|
||||||
|
|
||||||
void ZImage::Draw(float x, float y) const
|
void ZImage::Draw(float x, float y) const
|
||||||
{
|
{
|
||||||
glColor4ub(255,255,255,rAlpha); //sets the color correctly
|
glColor4ub(255,255,255,rAlpha); //sets the color correctly
|
||||||
@ -400,6 +405,14 @@ void ZImage::Draw(int x, int y) const
|
|||||||
SDL_BlitSurface(rImage, NULL, rEngine->Display(), &rect);
|
SDL_BlitSurface(rImage, NULL, rEngine->Display(), &rect);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void ZImage::DrawClipped(int x, int y, ZRect clipRect) const
|
||||||
|
{
|
||||||
|
SDL_Rect rect;
|
||||||
|
rect.x = static_cast<Sint16>(x);
|
||||||
|
rect.y = static_cast<Sint16>(y);
|
||||||
|
SDL_BlitSurface(rImage, &clipRect.SDLrect(), rEngine->Display(), &rect);
|
||||||
|
}
|
||||||
|
|
||||||
bool ZImage::IsLoaded() const
|
bool ZImage::IsLoaded() const
|
||||||
{
|
{
|
||||||
return rImage ? true : false;
|
return rImage ? true : false;
|
||||||
|
@ -9,7 +9,7 @@ This example file is in the public domain, it may be used with no restrictions.
|
|||||||
and the home of this Library is http://www.zengine.sourceforge.net
|
and the home of this Library is http://www.zengine.sourceforge.net
|
||||||
*******************************************************************************/
|
*******************************************************************************/
|
||||||
|
|
||||||
/*$Id: ZImageTest.cpp,v 1.20 2003/08/02 01:18:45 cozman Exp $*/
|
/*$Id: ZImageTest.cpp,v 1.21 2003/09/01 03:30:39 cozman Exp $*/
|
||||||
|
|
||||||
#include <ZEngine.h>
|
#include <ZEngine.h>
|
||||||
#include <string>
|
#include <string>
|
||||||
@ -39,13 +39,14 @@ bool Initialize()
|
|||||||
void Test()
|
void Test()
|
||||||
{
|
{
|
||||||
ZEngine *engine = ZEngine::GetInstance();
|
ZEngine *engine = ZEngine::GetInstance();
|
||||||
float angle=0.0f;
|
float angle=0.0f,movDelta;
|
||||||
Uint8 alpha=128,alphaDelta=1;
|
Uint8 alpha=128,alphaDelta=1;
|
||||||
|
|
||||||
//Open and Setup all the Images//
|
//Open and Setup all the Images//
|
||||||
SDL_Surface *temp;
|
SDL_Surface *temp;
|
||||||
ZImage image1, image2, image3, textImage;
|
ZImage image1,image2,image3,image4,textImage;
|
||||||
ZFont font("data/almontew.ttf",30);
|
ZFont font("data/almontew.ttf",30);
|
||||||
|
ZRect clipRect(400,300,30,30);
|
||||||
|
|
||||||
font.SetColor(0,255,0);
|
font.SetColor(0,255,0);
|
||||||
font.SetBGColor(0,0,255);
|
font.SetBGColor(0,0,255);
|
||||||
@ -54,9 +55,11 @@ void Test()
|
|||||||
image1.Attach(temp); //this attaches the surface into itself
|
image1.Attach(temp); //this attaches the surface into itself
|
||||||
image2.Open("data/test01.bmp");
|
image2.Open("data/test01.bmp");
|
||||||
image3.OpenFromImage(image2.Surface(),5,5,20,20);
|
image3.OpenFromImage(image2.Surface(),5,5,20,20);
|
||||||
|
image4.Open("data/rainbow.bmp");
|
||||||
temp = NULL; //and temp will now be controlled and freed by image1
|
temp = NULL; //and temp will now be controlled and freed by image1
|
||||||
image1.SetColorKey(255,0,255);
|
image1.SetColorKey(255,0,255);
|
||||||
image2.SetColorKey(255,0,255);
|
image2.SetColorKey(255,0,255);
|
||||||
|
image4.Resize(400,300);
|
||||||
font.DrawShadedText("ZImage Test.",textImage);
|
font.DrawShadedText("ZImage Test.",textImage);
|
||||||
|
|
||||||
do
|
do
|
||||||
@ -75,11 +78,29 @@ void Test()
|
|||||||
engine->SetReloadNeed(false); //very important for speed, without this you'd be reloading every frame
|
engine->SetReloadNeed(false); //very important for speed, without this you'd be reloading every frame
|
||||||
}
|
}
|
||||||
|
|
||||||
if(engine->KeyIsPressed(SDLK_s))
|
//movement//
|
||||||
|
movDelta = static_cast<float>(engine->GetFrameTime()*30);
|
||||||
|
if(engine->KeyIsPressed(SDLK_LEFT))
|
||||||
|
clipRect.MoveRel(-movDelta,0);
|
||||||
|
if(engine->KeyIsPressed(SDLK_RIGHT))
|
||||||
|
clipRect.MoveRel(movDelta,0);
|
||||||
|
if(engine->KeyIsPressed(SDLK_UP))
|
||||||
|
clipRect.MoveRel(0,-movDelta);
|
||||||
|
if(engine->KeyIsPressed(SDLK_DOWN))
|
||||||
|
clipRect.MoveRel(0,movDelta);
|
||||||
|
if(engine->KeyIsPressed(SDLK_EQUALS))
|
||||||
{
|
{
|
||||||
//code to toggle screen//
|
clipRect.MoveRel(-1,-1);
|
||||||
engine->ToggleFullscreen();
|
clipRect.ResizeRel(2,2);
|
||||||
}
|
}
|
||||||
|
if(engine->KeyIsPressed(SDLK_MINUS))
|
||||||
|
{
|
||||||
|
clipRect.MoveRel(1,1);
|
||||||
|
clipRect.ResizeRel(-2,-2);
|
||||||
|
}
|
||||||
|
|
||||||
|
if(engine->KeyIsPressed(SDLK_s))
|
||||||
|
engine->ToggleFullscreen();
|
||||||
if(engine->KeyIsPressed(SDLK_ESCAPE))
|
if(engine->KeyIsPressed(SDLK_ESCAPE))
|
||||||
engine->RequestQuit();
|
engine->RequestQuit();
|
||||||
|
|
||||||
@ -100,6 +121,7 @@ void Test()
|
|||||||
#endif
|
#endif
|
||||||
|
|
||||||
image3.Draw(200,0);
|
image3.Draw(200,0);
|
||||||
|
image4.DrawClipped(400,300,clipRect);
|
||||||
textImage.Draw(0,100);
|
textImage.Draw(0,100);
|
||||||
engine->Update(); //update the screen
|
engine->Update(); //update the screen
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user