FIFE  2008.0
 All Classes Namespaces Functions Variables Enumerations Enumerator Pages
FIFE::RenderBackendSDL Class Reference

#include <renderbackendsdl.h>

Inheritance diagram for FIFE::RenderBackendSDL:
Inheritance graph
Collaboration diagram for FIFE::RenderBackendSDL:
Collaboration graph

Public Member Functions

virtual const std::string & getName () const
 
virtual void startFrame ()
 
virtual void endFrame ()
 
virtual void init (const std::string &driver)
 
virtual void clearBackBuffer ()
 
virtual void setLightingModel (uint32_t lighting)
 
virtual uint32_t getLightingModel () const
 
virtual void setLighting (float red, float green, float blue)
 
virtual void resetLighting ()
 
virtual void resetStencilBuffer (uint8_t buffer)
 
virtual void changeBlending (int32_t scr, int32_t dst)
 
virtual void createMainScreen (const ScreenMode &mode, const std::string &title, const std::string &icon)
 
virtual void setScreenMode (const ScreenMode &mode)
 
virtual ImagecreateImage (const uint8_t *data, uint32_t width, uint32_t height)
 
virtual ImagecreateImage (SDL_Surface *surface)
 
virtual void renderVertexArrays ()
 
virtual void addImageToArray (uint32_t id, const Rect &rec, float const *st, uint8_t alpha, uint8_t const *rgb)
 
virtual void changeRenderInfos (uint16_t elements, int32_t src, int32_t dst, bool light, bool stentest, uint8_t stenref, GLConstants stenop, GLConstants stenfunc)
 
virtual void captureScreen (const std::string &filename)
 
virtual void captureScreen (const std::string &filename, uint32_t width, uint32_t height)
 
virtual bool putPixel (int32_t x, int32_t y, uint8_t r, uint8_t g, uint8_t b, uint8_t a=255)
 
virtual void drawLine (const Point &p1, const Point &p2, uint8_t r, uint8_t g, uint8_t b, uint8_t a=255)
 
virtual void drawTriangle (const Point &p1, const Point &p2, const Point &p3, uint8_t r, uint8_t g, uint8_t b, uint8_t a=255)
 
virtual void drawRectangle (const Point &p, uint16_t w, uint16_t h, uint8_t r, uint8_t g, uint8_t b, uint8_t a=255)
 
virtual void fillRectangle (const Point &p, uint16_t w, uint16_t h, uint8_t r, uint8_t g, uint8_t b, uint8_t a=255)
 
virtual void drawQuad (const Point &p1, const Point &p2, const Point &p3, const Point &p4, uint8_t r, uint8_t g, uint8_t b, uint8_t a=255)
 
virtual void drawVertex (const Point &p, const uint8_t size, uint8_t r, uint8_t g, uint8_t b, uint8_t a=255)
 
virtual void drawLightPrimitive (const Point &p, uint8_t intensity, float radius, int32_t subdivisions, float xstretch, float ystretch, uint8_t red, uint8_t green, uint8_t blue)
 
virtual void attachRenderTarget (ImagePtr &img, bool discard)
 
virtual void detachRenderTarget ()
 
- Public Member Functions inherited from FIFE::RenderBackend
 RenderBackend (const SDL_Color &colorkey)
 
virtual ~RenderBackend ()
 
void deinit ()
 
const ScreenMode & getCurrentScreenMode () const
 
void pushClipArea (const Rect &cliparea, bool clear=true)
 
void popClipArea ()
 
const RectgetClipArea () const
 
void setAlphaOptimizerEnabled (bool enabled)
 
bool isAlphaOptimizerEnabled () const
 
void setImageCompressingEnabled (bool enabled)
 
bool isImageCompressingEnabled () const
 
void setFramebufferEnabled (bool enabled)
 
bool isFramebufferEnabled () const
 
void setNPOTEnabled (bool enabled)
 
bool isNPOTEnabled () const
 
void setColorKeyEnabled (bool colorkeyenable)
 
bool isColorKeyEnabled () const
 
void setColorKey (const SDL_Color &colorkey)
 
const SDL_Color & getColorKey () const
 
void setBackgroundColor (uint8_t r, uint8_t g, uint8_t b)
 
void resetBackgroundColor ()
 
const SDL_PixelFormat & getPixelFormat () const
 
void setFrameLimitEnabled (bool limited)
 
bool isFrameLimitEnabled () const
 
void setFrameLimit (uint16_t framelimit)
 
uint16_t getFrameLimit () const
 
SDL_Surface * getRenderTargetSurface ()
 

Protected Member Functions

virtual void setClipArea (const Rect &cliparea, bool clear)
 
- Protected Member Functions inherited from FIFE::RenderBackend
void clearClipArea ()
 

Detailed Description

The main class of the SDL-based renderer.

See Also
RenderBackend

Definition at line 43 of file renderbackendsdl.h.

Member Function Documentation

void FIFE::RenderBackendSDL::addImageToArray ( uint32_t  id,
const Rect rec,
float const *  st,
uint8_t  alpha,
uint8_t const *  rgb 
)
virtual

Add the Image data to the array

Implements FIFE::RenderBackend.

Definition at line 190 of file renderbackendsdl.cpp.

void FIFE::RenderBackendSDL::attachRenderTarget ( ImagePtr img,
bool  discard 
)
virtual

Attaches given image as a new render surface

Implements FIFE::RenderBackend.

Definition at line 478 of file renderbackendsdl.cpp.

References setClipArea().

void FIFE::RenderBackendSDL::captureScreen ( const std::string &  filename)
virtual

Creates a Screenshot and saves it to a file.

Implements FIFE::RenderBackend.

Definition at line 346 of file renderbackendsdl.cpp.

References FIFE::Image::saveAsPng().

Referenced by captureScreen().

Here is the caller graph for this function:

void FIFE::RenderBackendSDL::captureScreen ( const std::string &  filename,
uint32_t  width,
uint32_t  height 
)
virtual

Creates a Screenshot with the given size(w,h) and saves it to a file.

Implements FIFE::RenderBackend.

Definition at line 365 of file renderbackendsdl.cpp.

References captureScreen(), and FIFE::Image::saveAsPng().

void FIFE::RenderBackendSDL::changeBlending ( int32_t  scr,
int32_t  dst 
)
virtual

Change the Blendingmodel.

Implements FIFE::RenderBackend.

Definition at line 184 of file renderbackendsdl.cpp.

void FIFE::RenderBackendSDL::changeRenderInfos ( uint16_t  elements,
int32_t  src,
int32_t  dst,
bool  light,
bool  stentest,
uint8_t  stenref,
GLConstants  stenop,
GLConstants  stenfunc 
)
virtual

Dirty helper function to change the render infos

Implements FIFE::RenderBackend.

Definition at line 193 of file renderbackendsdl.cpp.

void FIFE::RenderBackendSDL::clearBackBuffer ( )
virtual

Forces a clear of the backbuffer

Implements FIFE::RenderBackend.

Definition at line 71 of file renderbackendsdl.cpp.

Image * FIFE::RenderBackendSDL::createImage ( const uint8_t *  data,
uint32_t  width,
uint32_t  height 
)
virtual

Creates an Image suitable for this renderbackend.

Parameters
dataPointer to the imagedata (needs to be in RGBA, 8 bits per channel).
widthWidth of the image.
heightHeight of the image.
Returns
The new Image.

Implements FIFE::RenderBackend.

Definition at line 159 of file renderbackendsdl.cpp.

Image * FIFE::RenderBackendSDL::createImage ( SDL_Surface *  surface)
virtual

Helper function to create images from SDL_Surfaces. Takes ownership over the surface.

Parameters
surfaceThe surface to convert.
Returns
The new Image.

Implements FIFE::RenderBackend.

Definition at line 151 of file renderbackendsdl.cpp.

void FIFE::RenderBackendSDL::createMainScreen ( const ScreenMode &  mode,
const std::string &  title,
const std::string &  icon 
)
virtual

Creates the mainscreen (the display window).

Parameters
modeThe ScreenMode to use.
See Also
FIFE::ScreenMode.
Parameters
titeThe window title to use.
iconThe window icon to use.

Implements FIFE::RenderBackend.

Definition at line 81 of file renderbackendsdl.cpp.

References setScreenMode().

void FIFE::RenderBackendSDL::detachRenderTarget ( )
virtual

Detaches current render surface

Implements FIFE::RenderBackend.

Definition at line 485 of file renderbackendsdl.cpp.

void FIFE::RenderBackendSDL::drawLightPrimitive ( const Point p,
uint8_t  intensity,
float  radius,
int32_t  subdivisions,
float  xstretch,
float  ystretch,
uint8_t  red,
uint8_t  green,
uint8_t  blue 
)
virtual

Draws a light primitive that based on a triangle fan

Implements FIFE::RenderBackend.

Definition at line 343 of file renderbackendsdl.cpp.

void FIFE::RenderBackendSDL::drawLine ( const Point p1,
const Point p2,
uint8_t  r,
uint8_t  g,
uint8_t  b,
uint8_t  a = 255 
)
virtual

Draws line between given points with given RGBA

Implements FIFE::RenderBackend.

Definition at line 200 of file renderbackendsdl.cpp.

References putPixel().

Referenced by drawRectangle(), drawTriangle(), and drawVertex().

Here is the caller graph for this function:

void FIFE::RenderBackendSDL::drawQuad ( const Point p1,
const Point p2,
const Point p3,
const Point p4,
uint8_t  r,
uint8_t  g,
uint8_t  b,
uint8_t  a = 255 
)
virtual

Draws quad between given points with given RGBA

Implements FIFE::RenderBackend.

Definition at line 327 of file renderbackendsdl.cpp.

References fillRectangle().

void FIFE::RenderBackendSDL::drawRectangle ( const Point p,
uint16_t  w,
uint16_t  h,
uint8_t  r,
uint8_t  g,
uint8_t  b,
uint8_t  a = 255 
)
virtual

Draws an axis parallel rectangle.

Implements FIFE::RenderBackend.

Definition at line 298 of file renderbackendsdl.cpp.

References drawLine().

void FIFE::RenderBackendSDL::drawTriangle ( const Point p1,
const Point p2,
const Point p3,
uint8_t  r,
uint8_t  g,
uint8_t  b,
uint8_t  a = 255 
)
virtual

Draws triangle between given points with given RGBA

Implements FIFE::RenderBackend.

Definition at line 292 of file renderbackendsdl.cpp.

References drawLine().

void FIFE::RenderBackendSDL::drawVertex ( const Point p,
const uint8_t  size,
uint8_t  r,
uint8_t  g,
uint8_t  b,
uint8_t  a = 255 
)
virtual

Draws a quad that represents a vertex with given RGBA

Implements FIFE::RenderBackend.

Definition at line 331 of file renderbackendsdl.cpp.

References drawLine().

void FIFE::RenderBackendSDL::endFrame ( )
virtual

Called when a frame is finished and ready to be displayed.

Reimplemented from FIFE::RenderBackend.

Definition at line 138 of file renderbackendsdl.cpp.

References FIFE::RenderBackend::endFrame().

void FIFE::RenderBackendSDL::fillRectangle ( const Point p,
uint16_t  w,
uint16_t  h,
uint8_t  r,
uint8_t  g,
uint8_t  b,
uint8_t  a = 255 
)
virtual

Draws a filled axis parallel rectangle.

Implements FIFE::RenderBackend.

Definition at line 316 of file renderbackendsdl.cpp.

Referenced by drawQuad().

Here is the caller graph for this function:

uint32_t FIFE::RenderBackendSDL::getLightingModel ( ) const
virtual

Gets the current light model.

Implements FIFE::RenderBackend.

Definition at line 171 of file renderbackendsdl.cpp.

const std::string & FIFE::RenderBackendSDL::getName ( ) const
virtual

The name of the renderbackend.

Returns
The name of this renderbackend.

Implements FIFE::RenderBackend.

Definition at line 52 of file renderbackendsdl.cpp.

void FIFE::RenderBackendSDL::init ( const std::string &  driver)
virtual

Initializes the backend.

Implements FIFE::RenderBackend.

Definition at line 57 of file renderbackendsdl.cpp.

bool FIFE::RenderBackendSDL::putPixel ( int32_t  x,
int32_t  y,
uint8_t  r,
uint8_t  g,
uint8_t  b,
uint8_t  a = 255 
)
virtual

Writes pixel to given position. Returns true, if pixel was written (not out of bounds)

Implements FIFE::RenderBackend.

Definition at line 196 of file renderbackendsdl.cpp.

Referenced by drawLine().

Here is the caller graph for this function:

void FIFE::RenderBackendSDL::renderVertexArrays ( )
virtual

Render the Vertex Arrays, only for primitives (points, lines,...)

Implements FIFE::RenderBackend.

Definition at line 187 of file renderbackendsdl.cpp.

void FIFE::RenderBackendSDL::resetLighting ( )
virtual

Reset lighting with default values.

Implements FIFE::RenderBackend.

Definition at line 178 of file renderbackendsdl.cpp.

void FIFE::RenderBackendSDL::resetStencilBuffer ( uint8_t  buffer)
virtual

Reset stencil buffer with given value.

Implements FIFE::RenderBackend.

Definition at line 181 of file renderbackendsdl.cpp.

void FIFE::RenderBackendSDL::setClipArea ( const Rect cliparea,
bool  clear 
)
protectedvirtual

Sets given clip area into image

See Also
pushClipArea

Implements FIFE::RenderBackend.

Definition at line 462 of file renderbackendsdl.cpp.

References FIFE::RectType< T >::h, FIFE::RectType< T >::w, FIFE::RectType< T >::x, and FIFE::RectType< T >::y.

Referenced by attachRenderTarget().

Here is the caller graph for this function:

void FIFE::RenderBackendSDL::setLighting ( float  red,
float  green,
float  blue 
)
virtual

Set colors for lighting

Implements FIFE::RenderBackend.

Definition at line 175 of file renderbackendsdl.cpp.

void FIFE::RenderBackendSDL::setLightingModel ( uint32_t  lighting)
virtual

Initializes the light.

Implements FIFE::RenderBackend.

Definition at line 167 of file renderbackendsdl.cpp.

void FIFE::RenderBackendSDL::setScreenMode ( const ScreenMode &  mode)
virtual

Sets the mainscreen display mode.

Parameters
modeThe ScreenMode to change the display to.
See Also
FIFE::ScreenMode.

Implements FIFE::RenderBackend.

Definition at line 94 of file renderbackendsdl.cpp.

Referenced by createMainScreen().

Here is the caller graph for this function:

void FIFE::RenderBackendSDL::startFrame ( )
virtual

Called when a new frame starts.

Reimplemented from FIFE::RenderBackend.

Definition at line 134 of file renderbackendsdl.cpp.

References FIFE::RenderBackend::startFrame().


The documentation for this class was generated from the following files: