inclusion of SDL GFX_BACKEND

This commit is contained in:
James Turk 2003-08-01 21:57:32 +00:00
parent 5ed1ea52b5
commit 30a7e11654
6 changed files with 79 additions and 53 deletions

View File

@ -22,6 +22,20 @@
//Defines- undefine any of these if you dont have the indicated SDL extension// //Defines- undefine any of these if you dont have the indicated SDL extension//
/*!
\brief Defines for graphics backend selection.
Various graphics backends, default is OpenGL, but to port to systems with SDL but no OpenGL
use of SDL is possible. .
**/
enum GFXBackend
{
OGL, /*!< OpenGL 2D Rendering Target. */
SDL /*!< SDL Rendering Target. */
};
//! Define the graphics backend for ZEngine to use. (Options are OGL,SDL,DX)
#define GFX_BACKEND OGL
//! Define to include font support. //! Define to include font support.
#define USE_SDL_TTF #define USE_SDL_TTF
//! Define to include non-bmp image file support. //! Define to include non-bmp image file support.

View File

@ -24,8 +24,10 @@
#include "ZE_Defines.h" #include "ZE_Defines.h"
#include "SDL.h" #include "SDL.h"
#if GFX_BACKEND == OGL
#include "SDL_opengl.h" #include "SDL_opengl.h"
#include "external/SDLGL_Util.h" #include "external/SDLGL_Util.h"
#endif
#ifdef USE_SDL_IMAGE #ifdef USE_SDL_IMAGE
#include "SDL_image.h" #include "SDL_image.h"
#endif #endif

View File

@ -13,7 +13,7 @@
\brief Definition file for core ZEngine class. \brief Definition file for core ZEngine class.
ZEngine Game Engine core Engine definition. ZEngine Game Engine core Engine definition.
<br>$Id: ZE_ZEngine.h,v 1.44 2003/07/12 01:25:42 cozman Exp $<br> <br>$Id: ZE_ZEngine.h,v 1.45 2003/08/01 21:57:32 cozman Exp $<br>
\author James Turk \author James Turk
**/ **/
@ -233,13 +233,14 @@ class ZEngine
\brief Clear screen to a certain color (Black by default). \brief Clear screen to a certain color (Black by default).
Clears a rectangle on screen to a color, defaults to solid black. Clears a rectangle on screen to a color, defaults to solid black.
\param red Red component (0.0-1.0) of new color. \param red Red component (0-255) of new color.
\param green Green component (0.0-1.0) of new color. \param green Green component (0-255) of new color.
\param blue Blue component (0.0-1.0) of new color. \param blue Blue component (0-255) of new color.
\param alpha Alpha component (0.0-1.0) of new color. \param alpha Alpha component (0-255) of new color.
**/ **/
void Clear(float red=0.0f, float green=0.0f, float blue=0.0f, float alpha=1.0f); void Clear(Uint8 red=0, Uint8 green=0, Uint8 blue=0, Uint8 alpha=255);
#if GFX_BACKEND == OGL
///////////////////////////// /////////////////////////////
//OpenGL Specific Functions// //OpenGL Specific Functions//
///////////////////////////// /////////////////////////////
@ -251,6 +252,7 @@ class ZEngine
unless you change the OpenGL mode manually. unless you change the OpenGL mode manually.
**/ **/
void SetGL2D(); void SetGL2D();
#endif //GFX_BACKEND
//////////////////////////////////////////// ////////////////////////////////////////////
//Timer and Framerate Independent Movement// //Timer and Framerate Independent Movement//

View File

@ -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.19 2003/06/11 00:15:26 cozman Exp $<br> <br>$Id: ZE_ZImage.h,v 1.20 2003/08/01 21:57:32 cozman Exp $<br>
\author James Turk \author James Turk
**/ **/
@ -35,6 +35,11 @@ class ZImage
protected: protected:
//! Pointer to ZEngine Object //! Pointer to ZEngine Object
ZEngine* rEngine; ZEngine* rEngine;
//! Stored texture.
SDL_Surface *rImage;
//! Stored alpha value for drawing texture.
Uint8 rAlpha;
#if GFX_BACKEND == OGL
//! Texture lower X, used internally for flip. //! Texture lower X, used internally for flip.
GLfloat rTexMinX; GLfloat rTexMinX;
//! Texture lower Y, used internally for flip //! Texture lower Y, used internally for flip
@ -43,16 +48,13 @@ class ZImage
GLfloat rTexMaxX; GLfloat rTexMaxX;
//! Texture Y width ratio, used internally by OpenGL. //! Texture Y width ratio, used internally by OpenGL.
GLfloat rTexMaxY; GLfloat rTexMaxY;
//! Stored texture for future use.
SDL_Surface *rImage;
//! Texture ID for OpenGL. //! Texture ID for OpenGL.
unsigned int rTexID; unsigned int rTexID;
//! Current draw width of Texture. //! Current draw width of Texture.
unsigned int rWidth; unsigned int rWidth;
//! Current draw height of Texture. //! Current draw height of Texture.
unsigned int rHeight; unsigned int rHeight;
//! Stored alpha value for drawing texture. #endif //GFX_BACKEND == OGL
Uint8 rAlpha;
public: public:
@ -203,6 +205,47 @@ class ZImage
**/ **/
void SetColorKey(Uint8 red, Uint8 green, Uint8 blue); void SetColorKey(Uint8 red, Uint8 green, Uint8 blue);
/*!
\brief Draw Image to Screen.
Draw Image to screen at specified location.
\param x X coord to draw Image to.
\param y Y coord to draw Image to.
**/
void Draw(int x, int y) const;
#if GFX_BACKEND == OGL
/*!
\brief Draw Image to Screen.
Draw Image to screen at specified location.
\since 0.8.3
\param x X coord to draw Image to.
\param y Y coord to draw Image to.
**/
void Draw(float x, float y) const;
/*!
\brief Draw Image rotated to screen.
Image is rotated about it's own center by specified angle, then drawn to screen.
\param x X coord to draw Image to.
\param y Y coord to draw Image to.
\param angle Angle in degrees to rotate image.
**/
void DrawRotated(int x, int y, float angle) const;
/*!
\brief Draw Image rotated to screen.
Image is rotated about it's own center by specified angle, then drawn to screen.
\since 0.8.3
\param x X coord to draw Image to.
\param y Y coord to draw Image to.
\param angle Angle in degrees to rotate image.
**/
void DrawRotated(float x, float y, float angle) const;
/*! /*!
\brief Flip image over one or both axes. \brief Flip image over one or both axes.
@ -237,46 +280,7 @@ class ZImage
Draw uses this but the average user should never need to call this. Draw uses this but the average user should never need to call this.
**/ **/
void Bind() const; void Bind() const;
#endif //GFX_BACKEND == OGL
/*!
\brief Draw Image to Screen.
Draw Image to screen at specified location.
\param x X coord to draw Image to.
\param y Y coord to draw Image to.
**/
void Draw(int x, int y) const;
/*!
\brief Draw Image to Screen.
Draw Image to screen at specified location.
\since 0.8.3
\param x X coord to draw Image to.
\param y Y coord to draw Image to.
**/
void Draw(float x, float y) const;
/*!
\brief Draw Image rotated to screen.
Image is rotated about it's own center by specified angle, then drawn to screen.
\param x X coord to draw Image to.
\param y Y coord to draw Image to.
\param angle Angle in degrees to rotate image.
**/
void DrawRotated(int x, int y, float angle) const;
/*!
\brief Draw Image rotated to screen.
Image is rotated about it's own center by specified angle, then drawn to screen.
\since 0.8.3
\param x X coord to draw Image to.
\param y Y coord to draw Image to.
\param angle Angle in degrees to rotate image.
**/
void DrawRotated(float x, float y, float angle) const;
///////////// /////////////
//Accessors// //Accessors//

View File

@ -13,7 +13,7 @@
\brief Definition file for ZRect. \brief Definition file for ZRect.
Definition file for ZRect, the Rectangle class for ZEngine. Definition file for ZRect, the Rectangle class for ZEngine.
<br>$Id: ZE_ZRect.h,v 1.11 2003/05/13 01:30:51 cozman Exp $<br> <br>$Id: ZE_ZRect.h,v 1.12 2003/08/01 21:57:32 cozman Exp $<br>
\author James Turk \author James Turk
**/ **/
@ -33,6 +33,8 @@ namespace ZE
class ZRect class ZRect
{ {
protected: protected:
//! Pointer to ZEngine Object
ZEngine* rEngine;
//! X Position of top left corner of rectangle. //! X Position of top left corner of rectangle.
float rX; float rX;
//! Y Position of top left corner of rectangle. //! Y Position of top left corner of rectangle.

View File

@ -6,7 +6,9 @@
#include "ZE_Includes.h" #include "ZE_Includes.h"
#if GFX_BACKEND == OGL
int power_of_two(int input); int power_of_two(int input);
GLuint SDL_GL_LoadTexture(SDL_Surface *surface, GLfloat *texcoord); GLuint SDL_GL_LoadTexture(SDL_Surface *surface, GLfloat *texcoord);
#endif
#endif //__sdlgl_h__ #endif //__sdlgl_h__