SDL backend changes
This commit is contained in:
parent
10aca6a817
commit
d8e6296de7
@ -22,20 +22,14 @@
|
||||
|
||||
//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. */
|
||||
};
|
||||
//! OpenGL 2D Rendering Target.
|
||||
#define ZE_OGL (1)
|
||||
//! SDL Rendering Target.
|
||||
#define ZE_SDL (2)
|
||||
//! Define the graphics backend for ZEngine to use. (Options are ZE_OGL,ZE_SDL,ZE_D3D)
|
||||
#define GFX_BACKEND (ZE_SDL)
|
||||
|
||||
//! Define the graphics backend for ZEngine to use. (Options are OGL,SDL,DX)
|
||||
#define GFX_BACKEND OGL
|
||||
//! Define to include font support.
|
||||
#define USE_SDL_TTF
|
||||
//! Define to include non-bmp image file support.
|
||||
|
@ -24,7 +24,7 @@
|
||||
#include "ZE_Defines.h"
|
||||
|
||||
#include "SDL.h"
|
||||
#if GFX_BACKEND == OGL
|
||||
#if (GFX_BACKEND == ZE_OGL)
|
||||
#include "SDL_opengl.h"
|
||||
#include "external/SDLGL_Util.h"
|
||||
#endif
|
||||
|
@ -13,7 +13,7 @@
|
||||
\brief Definition file for core ZEngine class.
|
||||
|
||||
ZEngine Game Engine core Engine definition.
|
||||
<br>$Id: ZE_ZEngine.h,v 1.45 2003/08/01 21:57:32 cozman Exp $<br>
|
||||
<br>$Id: ZE_ZEngine.h,v 1.46 2003/08/02 01:18:45 cozman Exp $<br>
|
||||
\author James Turk
|
||||
**/
|
||||
|
||||
@ -240,7 +240,7 @@ class ZEngine
|
||||
**/
|
||||
void Clear(Uint8 red=0, Uint8 green=0, Uint8 blue=0, Uint8 alpha=255);
|
||||
|
||||
#if GFX_BACKEND == OGL
|
||||
#if (GFX_BACKEND == ZE_OGL)
|
||||
/////////////////////////////
|
||||
//OpenGL Specific Functions//
|
||||
/////////////////////////////
|
||||
|
@ -13,7 +13,7 @@
|
||||
\brief Definition file for ZImage.
|
||||
|
||||
Definition file for ZImage, the OpenGL version of the ZImage class for ZEngine.
|
||||
<br>$Id: ZE_ZImage.h,v 1.20 2003/08/01 21:57:32 cozman Exp $<br>
|
||||
<br>$Id: ZE_ZImage.h,v 1.21 2003/08/02 01:18:45 cozman Exp $<br>
|
||||
\author James Turk
|
||||
**/
|
||||
|
||||
@ -39,7 +39,7 @@ class ZImage
|
||||
SDL_Surface *rImage;
|
||||
//! Stored alpha value for drawing texture.
|
||||
Uint8 rAlpha;
|
||||
#if GFX_BACKEND == OGL
|
||||
#if (GFX_BACKEND == ZE_OGL)
|
||||
//! Texture lower X, used internally for flip.
|
||||
GLfloat rTexMinX;
|
||||
//! Texture lower Y, used internally for flip
|
||||
@ -214,7 +214,7 @@ class ZImage
|
||||
**/
|
||||
void Draw(int x, int y) const;
|
||||
|
||||
#if GFX_BACKEND == OGL
|
||||
#if (GFX_BACKEND == ZE_OGL)
|
||||
/*!
|
||||
\brief Draw Image to Screen.
|
||||
|
||||
|
@ -14,7 +14,7 @@
|
||||
|
||||
Definition and implementation file for ZEngine simple particle system, ZSimpleParticleSystem based on ZBaseParticleSystem.
|
||||
Due to problems with template classes the template implementation needs to be in the same file as the declaration.
|
||||
<br>$Id: ZE_ZSimpleParticleSystem.h,v 1.3 2003/07/10 23:45:09 cozman Exp $<br>
|
||||
<br>$Id: ZE_ZSimpleParticleSystem.h,v 1.4 2003/08/02 01:18:45 cozman Exp $<br>
|
||||
\author James Turk
|
||||
**/
|
||||
|
||||
@ -283,6 +283,8 @@ void ZSimpleParticleSystem<particleType>::UpdateParticle(int index, float elapse
|
||||
rParticles[index].energy = 0;
|
||||
}
|
||||
|
||||
#if (GFX_BACKEND == ZE_OGL)
|
||||
|
||||
template <class particleType>
|
||||
void ZSimpleParticleSystem<particleType>::Render()
|
||||
{
|
||||
@ -332,6 +334,36 @@ void ZSimpleParticleSystem<particleType>::Render()
|
||||
}
|
||||
}
|
||||
|
||||
#elif (GFX_BACKEND == ZE_SDL)
|
||||
|
||||
template <class particleType>
|
||||
void ZSimpleParticleSystem<particleType>::Render()
|
||||
{
|
||||
switch(rStyle)
|
||||
{
|
||||
case DS_POINT:
|
||||
for(unsigned int i=0; i < rCurParticles; i++)
|
||||
{
|
||||
//draw point
|
||||
}
|
||||
break;
|
||||
case DS_LINE:
|
||||
for(unsigned int i=0; i < rCurParticles; i++)
|
||||
{
|
||||
//draw line
|
||||
}
|
||||
break;
|
||||
case DS_IMAGE:
|
||||
for(unsigned int i=0; i < rCurParticles; i++)
|
||||
{
|
||||
//draw image
|
||||
}
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
#endif //GFX_BACKEND
|
||||
|
||||
template <class particleType>
|
||||
void ZSimpleParticleSystem<particleType>::ReloadImage()
|
||||
{
|
||||
|
2
include/external/SDLGL_Util.h
vendored
2
include/external/SDLGL_Util.h
vendored
@ -6,7 +6,7 @@
|
||||
|
||||
#include "ZE_Includes.h"
|
||||
|
||||
#if GFX_BACKEND == OGL
|
||||
#if (GFX_BACKEND == ZE_OGL)
|
||||
int power_of_two(int input);
|
||||
GLuint SDL_GL_LoadTexture(SDL_Surface *surface, GLfloat *texcoord);
|
||||
#endif
|
||||
|
@ -13,7 +13,7 @@
|
||||
\brief Central source file for ZEngine.
|
||||
|
||||
Actual implementation of ZEngine singleton class, the core of ZEngine.
|
||||
<br>$Id: ZE_ZEngine.cpp,v 1.54 2003/08/01 21:56:58 cozman Exp $<br>
|
||||
<br>$Id: ZE_ZEngine.cpp,v 1.55 2003/08/02 01:18:45 cozman Exp $<br>
|
||||
\author James Turk
|
||||
**/
|
||||
|
||||
@ -84,7 +84,7 @@ bool ZEngine::CreateDisplay(std::string title, std::string icon)
|
||||
SDL_Surface *iconImg;
|
||||
bool status=true; //status of setup, only true if everything went flawless
|
||||
int bpp;
|
||||
#if GFX_BACKEND == OGL
|
||||
#if (GFX_BACKEND == ZE_OGL)
|
||||
int rgb_size[3];
|
||||
#endif
|
||||
|
||||
@ -136,7 +136,7 @@ bool ZEngine::CreateDisplay(std::string title, std::string icon)
|
||||
}
|
||||
}
|
||||
|
||||
#if GFX_BACKEND == OGL
|
||||
#if (GFX_BACKEND == ZE_OGL)
|
||||
//buffer sizes
|
||||
switch (mBPP)
|
||||
{
|
||||
@ -171,7 +171,7 @@ bool ZEngine::CreateDisplay(std::string title, std::string icon)
|
||||
SDL_GL_SetAttribute(SDL_GL_ACCUM_ALPHA_SIZE, 0);
|
||||
|
||||
flags |= SDL_OPENGL;
|
||||
#elif GFX_BACKEND == SDL
|
||||
#elif (GFX_BACKEND == ZE_SDL)
|
||||
flags |= SDL_DOUBLEBUF;
|
||||
#endif //GFX_BACKEND
|
||||
|
||||
@ -208,7 +208,7 @@ bool ZEngine::CreateDisplay(std::string title, std::string icon)
|
||||
mHeight = mScreen->h;
|
||||
mBPP = mScreen->format->BitsPerPixel;
|
||||
|
||||
#if GFX_BACKEND == OGL
|
||||
#if (GFX_BACKEND == ZE_OGL)
|
||||
SetGL2D();
|
||||
#endif
|
||||
|
||||
@ -304,9 +304,9 @@ SDL_Surface *ZEngine::Display()
|
||||
|
||||
void ZEngine::Update()
|
||||
{
|
||||
#if GFX_BACKEND == OGL
|
||||
#if (GFX_BACKEND == ZE_OGL)
|
||||
SDL_GL_SwapBuffers();
|
||||
#elif GFX_BACKEND == SDL
|
||||
#elif (GFX_BACKEND == ZE_SDL)
|
||||
SDL_Flip(mScreen);
|
||||
#endif
|
||||
|
||||
@ -323,7 +323,7 @@ void ZEngine::Update()
|
||||
}
|
||||
}
|
||||
|
||||
#if GFX_BACKEND == OGL
|
||||
#if (GFX_BACKEND == ZE_OGL)
|
||||
|
||||
void ZEngine::Clear(Uint8 red, Uint8 green, Uint8 blue, Uint8 alpha)
|
||||
{
|
||||
@ -359,7 +359,7 @@ void ZEngine::SetGL2D()
|
||||
glLoadIdentity();
|
||||
}
|
||||
|
||||
#elif GFX_BACKEND == SDL
|
||||
#elif (GFX_BACKEND == ZE_SDL)
|
||||
|
||||
void ZEngine::Clear(Uint8 red, Uint8 green, Uint8 blue, Uint8 alpha)
|
||||
{
|
||||
|
@ -13,7 +13,7 @@
|
||||
\brief Source file for ZImage.
|
||||
|
||||
Implementation of ZImage, the Image class for ZEngine.
|
||||
<br>$Id: ZE_ZImage.cpp,v 1.38 2003/08/01 21:56:58 cozman Exp $<br>
|
||||
<br>$Id: ZE_ZImage.cpp,v 1.39 2003/08/02 01:18:45 cozman Exp $<br>
|
||||
\author James Turk
|
||||
**/
|
||||
|
||||
@ -116,7 +116,7 @@ void ZImage::OpenFromImage(const ZImage &img, Sint16 x, Sint16 y, Sint16 w, Sint
|
||||
OpenFromImage(img.Surface(),x,y,w,h);
|
||||
}
|
||||
|
||||
#if GFX_BACKEND == OGL
|
||||
#if (GFX_BACKEND == ZE_OGL)
|
||||
|
||||
//attach is really the core of ZImage, everything calls it, it converts SDL_Surface->OpenGL Texture->ZImage
|
||||
void ZImage::Attach(SDL_Surface *surface)
|
||||
@ -292,7 +292,7 @@ bool ZImage::IsLoaded() const
|
||||
return glIsTexture(rTexID) == GL_TRUE;
|
||||
}
|
||||
|
||||
#elif GFX_BACKEND == SDL
|
||||
#elif (GFX_BACKEND == ZE_SDL)
|
||||
|
||||
void ZImage::Attach(SDL_Surface *surface)
|
||||
{
|
||||
|
@ -13,7 +13,7 @@
|
||||
\brief Source file for ZRect.
|
||||
|
||||
Implementation of ZRect, the Rectangle class for ZEngine.
|
||||
<br>$Id: ZE_ZRect.cpp,v 1.13 2003/08/01 21:56:58 cozman Exp $<br>
|
||||
<br>$Id: ZE_ZRect.cpp,v 1.14 2003/08/02 01:18:45 cozman Exp $<br>
|
||||
\author James Turk
|
||||
**/
|
||||
|
||||
@ -100,7 +100,7 @@ bool ZRect::operator<(const ZRect &rhs) const
|
||||
|
||||
void ZRect::Draw(Uint8 red, Uint8 green, Uint8 blue, Uint8 alpha) const
|
||||
{
|
||||
#if GFX_BACKEND == OGL
|
||||
#if (GFX_BACKEND == ZE_OGL)
|
||||
glBindTexture(GL_TEXTURE_2D,0); //reset to blank texture
|
||||
glColor4ub(red,green,blue,alpha);
|
||||
glBegin(GL_QUADS);
|
||||
@ -110,7 +110,7 @@ void ZRect::Draw(Uint8 red, Uint8 green, Uint8 blue, Uint8 alpha) const
|
||||
glVertex2f(rX, rY+rHeight);
|
||||
glEnd();
|
||||
glColor4ub(255,255,255,255); //restore color setting
|
||||
#elif GFX_BACKEND == SDL
|
||||
#elif (GFX_BACKEND == ZE_SDL)
|
||||
SDL_Rect rect = SDLrect();
|
||||
SDL_FillRect(rEngine->Display(), &rect, SDL_MapRGBA(rEngine->Display()->format,red,green,blue,alpha));
|
||||
#endif //GFX_BACKEND
|
||||
|
2
src/external/SDLGL_Util.cpp
vendored
2
src/external/SDLGL_Util.cpp
vendored
@ -4,7 +4,7 @@
|
||||
|
||||
#include "external/SDLGL_Util.h"
|
||||
|
||||
#if GFX_BACKEND == OGL
|
||||
#if (GFX_BACKEND == ZE_OGL)
|
||||
|
||||
//finds nearest power of two (going up), needed for surfaces
|
||||
int power_of_two(int input)
|
||||
|
@ -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
|
||||
*******************************************************************************/
|
||||
|
||||
/*$Id: ZFontTest.cpp,v 1.13 2003/07/10 20:45:39 cozman Exp $*/
|
||||
/*$Id: ZFontTest.cpp,v 1.14 2003/08/02 01:18:45 cozman Exp $*/
|
||||
|
||||
#include <ZEngine.h>
|
||||
#include <string>
|
||||
@ -70,7 +70,7 @@ void Test()
|
||||
engine->Clear(); //clear screen
|
||||
//draw the images//
|
||||
for(int i=0; i <= 5; i++)
|
||||
text[i].Draw(10.0f*i,50.0f*i);
|
||||
text[i].Draw(10*i,50*i);
|
||||
engine->Update(); //update the screen
|
||||
}
|
||||
|
||||
|
@ -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
|
||||
*******************************************************************************/
|
||||
|
||||
/*$Id: ZImageTest.cpp,v 1.19 2003/07/10 20:45:39 cozman Exp $*/
|
||||
/*$Id: ZImageTest.cpp,v 1.20 2003/08/02 01:18:45 cozman Exp $*/
|
||||
|
||||
#include <ZEngine.h>
|
||||
#include <string>
|
||||
@ -91,9 +91,13 @@ void Test()
|
||||
image1.SetAlpha(alpha);
|
||||
image1.Draw(0,0);
|
||||
|
||||
#if (GFX_BACKEND == ZE_OGL)
|
||||
image2.DrawRotated(100,0,angle);
|
||||
if(++angle > 360)
|
||||
angle = 0.0f;
|
||||
#elif (GFX_BACKEND == ZE_SDL)
|
||||
image2.Draw(100,0);
|
||||
#endif
|
||||
|
||||
image3.Draw(200,0);
|
||||
textImage.Draw(0,100);
|
||||
|
@ -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
|
||||
*******************************************************************************/
|
||||
|
||||
/*$Id: ZParticleTest.cpp,v 1.2 2003/07/11 20:51:45 cozman Exp $*/
|
||||
/*$Id: ZParticleTest.cpp,v 1.3 2003/08/02 01:18:45 cozman Exp $*/
|
||||
|
||||
#include <ZEngine.h>
|
||||
#include <string>
|
||||
@ -76,7 +76,7 @@ void Test()
|
||||
effect[2].SetImage("data/particle2.tga");
|
||||
|
||||
bg.Open("data/rainbow.bmp");
|
||||
bg.Resize(engine->DisplayWidth()/2,engine->DisplayHeight()); //gives perspective on alpha on half of screen
|
||||
//bg.Resize(engine->DisplayWidth()/2,engine->DisplayHeight()); //gives perspective on alpha on half of screen
|
||||
|
||||
font.DrawText("(P)ause (U)npause (C)lear",text[0]);
|
||||
font.DrawText("1-3 : Change System Being Controlled",text[1]);
|
||||
|
Loading…
Reference in New Issue
Block a user