FIFE  be64c707dea6b3250bd4355bf5c825d25920087d
FIFE::RenderBackendOpenGL Class Reference

The main class of the OpenGL-based renderer. More...

#include <renderbackendopengl.h>

+ Inheritance diagram for FIFE::RenderBackendOpenGL:
+ Collaboration diagram for FIFE::RenderBackendOpenGL:

Classes

struct  currentState
 
struct  renderData2TC
 
struct  renderData2TCZ
 
struct  renderDataColorZ
 
struct  renderDataP
 
struct  renderDataT
 
struct  renderDataTC
 
struct  renderDataZ
 
class  RenderObject
 
struct  RenderZObject
 
struct  RenderZObjectTest
 

Public Member Functions

 RenderBackendOpenGL (const SDL_Color &colorkey)
 
virtual ~RenderBackendOpenGL ()
 
virtual const std::string & getName () const
 The name of the renderbackend. More...
 
virtual void startFrame ()
 Called when a new frame starts. More...
 
virtual void endFrame ()
 Called when a frame is finished and ready to be displayed. More...
 
virtual void init (const std::string &driver)
 Initializes the backend. More...
 
virtual void clearBackBuffer ()
 Forces a clear of the backbuffer. More...
 
virtual void setLightingModel (uint32_t lighting)
 Initializes the light. More...
 
virtual uint32_t getLightingModel () const
 Gets the current light model. More...
 
virtual void setLighting (float red, float green, float blue)
 Set colors for lighting. More...
 
virtual void resetLighting ()
 Reset lighting with default values. More...
 
virtual void resetStencilBuffer (uint8_t buffer)
 Reset stencil buffer with given value. More...
 
virtual void changeBlending (int32_t scr, int32_t dst)
 Change the Blendingmodel. More...
 
virtual void createMainScreen (const ScreenMode &mode, const std::string &title, const std::string &icon)
 Creates the mainscreen (the display window). More...
 
virtual void setScreenMode (const ScreenMode &mode)
 Sets the mainscreen display mode. More...
 
virtual ImagecreateImage (IResourceLoader *loader=0)
 
virtual ImagecreateImage (const std::string &name, IResourceLoader *loader=0)
 
virtual ImagecreateImage (const uint8_t *data, uint32_t width, uint32_t height)
 Creates an Image suitable for this renderbackend. More...
 
virtual ImagecreateImage (const std::string &name, const uint8_t *data, uint32_t width, uint32_t height)
 
virtual ImagecreateImage (SDL_Surface *surface)
 Helper function to create images from SDL_Surfaces. More...
 
virtual ImagecreateImage (const std::string &name, SDL_Surface *surface)
 
virtual void renderVertexArrays ()
 Render the Vertex Arrays, only for primitives (points, lines,...) More...
 
virtual void addImageToArray (uint32_t id, const Rect &rec, float const *st, uint8_t alpha, uint8_t const *rgba)
 Add the Image data to the array. More...
 
virtual void addImageToArray (const Rect &rect, uint32_t id1, float const *st1, uint32_t id2, float const *st2, uint8_t alpha, uint8_t const *rgba)
 
virtual void addImageToArrayZ (uint32_t id, const Rect &rect, float vertexZ, float const *st, uint8_t alpha, uint8_t const *rgba)
 
virtual void addImageToArrayZ (const Rect &rect, float vertexZ, uint32_t id1, float const *st1, uint32_t id2, float const *st2, uint8_t alpha, uint8_t const *rgba)
 
virtual void changeRenderInfos (RenderDataType type, uint16_t elements, int32_t src, int32_t dst, bool light, bool stentest, uint8_t stenref, GLConstants stenop, GLConstants stenfunc, OverlayType otype=OVERLAY_TYPE_NONE)
 Dirty helper function to change the render infos. More...
 
virtual void captureScreen (const std::string &filename)
 Creates a Screenshot and saves it to a file. More...
 
virtual void captureScreen (const std::string &filename, uint32_t width, uint32_t height)
 Creates a Screenshot with the given size(w,h) and saves it to a file. More...
 
virtual bool putPixel (int32_t x, int32_t y, uint8_t r, uint8_t g, uint8_t b, uint8_t a=255)
 Writes pixel to given position. More...
 
virtual void drawLine (const Point &p1, const Point &p2, uint8_t r, uint8_t g, uint8_t b, uint8_t a=255)
 Draws line between given points with given RGBA. More...
 
virtual void drawThickLine (const Point &p1, const Point &p2, uint8_t width, uint8_t r, uint8_t g, uint8_t b, uint8_t a=255)
 Draws line between given points with given RGBA and width. More...
 
virtual void drawPolyLine (const std::vector< Point > &points, uint8_t width, uint8_t r, uint8_t g, uint8_t b, uint8_t a=255)
 Draws lines between given points with given RGBA and width. More...
 
virtual void drawBezier (const std::vector< Point > &points, int32_t steps, uint8_t width, uint8_t r, uint8_t g, uint8_t b, uint8_t a=255)
 Draws bezier curve between given points with given RGBA and width. More...
 
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)
 Draws triangle between given points with given RGBA. More...
 
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)
 Draws an axis parallel rectangle. More...
 
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)
 Draws a filled axis parallel rectangle. More...
 
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)
 Draws quad between given points with given RGBA. More...
 
virtual void drawVertex (const Point &p, const uint8_t size, uint8_t r, uint8_t g, uint8_t b, uint8_t a=255)
 Draws a quad that represents a vertex with given RGBA. More...
 
virtual void drawCircle (const Point &p, uint32_t radius, uint8_t r, uint8_t g, uint8_t b, uint8_t a=255)
 Draws a circle. More...
 
virtual void drawFillCircle (const Point &p, uint32_t radius, uint8_t r, uint8_t g, uint8_t b, uint8_t a=255)
 Draws a filled circle. More...
 
virtual void drawCircleSegment (const Point &p, uint32_t radius, int32_t sangle, int32_t eangle, uint8_t r, uint8_t g, uint8_t b, uint8_t a=255)
 Draws a circle segment. More...
 
virtual void drawFillCircleSegment (const Point &p, uint32_t radius, int32_t sangle, int32_t eangle, uint8_t r, uint8_t g, uint8_t b, uint8_t a=255)
 Draws a filled circle segment. More...
 
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)
 Draws a light primitive that based on a triangle fan. More...
 
virtual void enableScissorTest ()
 Enables scissor test on the render backend. More...
 
virtual void disableScissorTest ()
 Disables scissor test on the render backend. More...
 
virtual void attachRenderTarget (ImagePtr &img, bool discard)
 Attaches given image as a new render surface. More...
 
virtual void detachRenderTarget ()
 Detaches current render surface. More...
 
virtual void renderGuiGeometry (const std::vector< GuiVertex > &vertices, const std::vector< int > &indices, const DoublePoint &translation, ImagePtr texture)
 Renders geometry required by gui. More...
 
void enableTextures (uint32_t texUnit)
 
void disableTextures (uint32_t texUnit)
 
void bindTexture (uint32_t texUnit, GLuint texId)
 
void bindTexture (GLuint textId)
 
- Public Member Functions inherited from FIFE::RenderBackend
 RenderBackend (const SDL_Color &colorkey)
 Constructor. More...
 
virtual ~RenderBackend ()
 Destructor. More...
 
void deinit ()
 Performs cleanup actions. More...
 
SDL_Window * getWindow ()
 
const ScreenModegetCurrentScreenMode () const
 Get current screen mode. More...
 
uint32_t getWidth () const
 
uint32_t getHeight () const
 
uint32_t getScreenWidth () const
 
uint32_t getScreenHeight () const
 
const RectgetArea () const
 
void pushClipArea (const Rect &cliparea, bool clear=true)
 Pushes clip area to clip stack Clip areas define which area is drawn on screen. More...
 
void popClipArea ()
 Pops clip area from clip stack. More...
 
const RectgetClipArea () const
 Gets the current clip area. More...
 
void setAlphaOptimizerEnabled (bool enabled)
 Enable or disable the alpha 'optimizing' code. More...
 
bool isAlphaOptimizerEnabled () const
 
void setImageCompressingEnabled (bool enabled)
 Enables or disable compressing images by video driver. More...
 
bool isImageCompressingEnabled () const
 
void setFramebufferEnabled (bool enabled)
 Enables or disable the usage of the framebuffer, if available. More...
 
bool isFramebufferEnabled () const
 
void setNPOTEnabled (bool enabled)
 Enables or disable the usage of npot, if available. More...
 
bool isNPOTEnabled () const
 
void setTextureFiltering (TextureFiltering filter)
 Sets the texture filtering method. More...
 
TextureFiltering getTextureFiltering () const
 
void setMipmappingEnabled (bool enabled)
 Enables or disables the usage of mipmapping. More...
 
bool isMipmappingEnabled () const
 
int32_t getMaxAnisotropy () const
 Gets max antisotropy for antisotropic filtering. More...
 
void setMonochromeEnabled (bool enabled)
 Enables or disables monochrome rendering. More...
 
bool isMonochromeEnabled () const
 
void setDepthBufferEnabled (bool enabled)
 Enables or disables depth buffer rendering. More...
 
bool isDepthBufferEnabled () const
 
void setAlphaTestValue (float alpha)
 Sets the value for alpha test. More...
 
float getAlphaTestValue () const
 
void setColorKeyEnabled (bool colorkeyenable)
 Sets whether to use the colorkey feature. More...
 
bool isColorKeyEnabled () const
 Gets whether the colorkey feature is in use. More...
 
void setColorKey (const SDL_Color &colorkey)
 Sets the global colorkey to use for images. More...
 
const SDL_Color & getColorKey () const
 Gets the global colorkey setting. More...
 
void setBackgroundColor (uint8_t r, uint8_t g, uint8_t b)
 Set the background color. More...
 
void resetBackgroundColor ()
 Reset the background color to black. More...
 
const SDL_PixelFormat & getPixelFormat () const
 Gets the current screen rgba format. More...
 
void setVSyncEnabled (bool vsync)
 Sets whether to use VSync. More...
 
bool isVSyncEnabled () const
 Gets whether VSync is in use. More...
 
void setFrameLimitEnabled (bool limited)
 Sets whether to use the frame limiter. More...
 
bool isFrameLimitEnabled () const
 Gets whether the frame limiter is in use. More...
 
void setFrameLimit (uint16_t framelimit)
 Sets the frame limit. More...
 
uint16_t getFrameLimit () const
 Gets the frame limit. More...
 
SDL_Surface * getScreenSurface ()
 Returns screen render surface. More...
 
SDL_Surface * getRenderTargetSurface ()
 Returns currently attached render surface. More...
 
Point getBezierPoint (const std::vector< Point > &points, int32_t elements, float t)
 Helper that returns an interpolated Point. More...
 
void addControlPoints (const std::vector< Point > &points, std::vector< Point > &newPoints)
 Helper that adds the control points for bezier curves. More...
 
- Public Member Functions inherited from FIFE::DynamicSingleton< RenderBackend >
 DynamicSingleton ()
 
virtual ~DynamicSingleton ()
 

Protected Member Functions

virtual void setClipArea (const Rect &cliparea, bool clear)
 Sets given clip area into image. More...
 
void enableLighting ()
 
void disableLighting ()
 
void enableStencilTest ()
 
void disableStencilTest ()
 
void setStencilTest (uint8_t stencil_ref, GLenum stencil_op, GLenum stencil_func)
 
uint8_t getStencilRef () const
 
void enableAlphaTest ()
 
void disableAlphaTest ()
 
void setAlphaTest (float ref_alpha)
 
void enableDepthTest ()
 
void disableDepthTest ()
 
void enableColorArray ()
 
void disableColorArray ()
 
void setEnvironmentalColor (uint32_t texUnit, const uint8_t *rgba)
 
void setVertexPointer (GLint size, GLsizei stride, const GLvoid *ptr)
 
void setColorPointer (GLsizei stride, const GLvoid *ptr)
 
void setTexCoordPointer (uint32_t texUnit, GLsizei stride, const GLvoid *ptr)
 
void prepareForOverlays ()
 
void renderWithoutZ ()
 
void renderWithZ ()
 
void renderWithZTest ()
 
void renderWithColorAndZ ()
 
void renderWithMultitextureAndZ ()
 
RenderZObjectTestgetRenderBufferObject (GLuint texture_id)
 
- Protected Member Functions inherited from FIFE::RenderBackend
void clearClipArea ()
 Clears any possible clip areas. More...
 

Protected Attributes

GLuint m_maskOverlay
 
std::vector< renderDataZm_renderZ_datas
 
std::vector< RenderZObjectTestm_renderZ_objects
 
std::vector< renderDataPm_renderPrimitiveDatas
 
std::vector< renderDataTm_renderTextureDatas
 
std::vector< renderDataTCm_renderTextureColorDatas
 
std::vector< renderData2TCm_renderMultitextureDatas
 
std::vector< RenderObjectm_renderObjects
 
std::vector< uint32_t > m_pIndices
 
std::vector< uint32_t > m_tIndices
 
std::vector< uint32_t > m_tcIndices
 
std::vector< uint32_t > m_tc2Indices
 
std::vector< renderDataZm_renderTextureDatasZ
 
std::vector< RenderZObjectm_renderTextureObjectsZ
 
std::vector< renderDataColorZm_renderTextureColorDatasZ
 
std::vector< RenderZObjectm_renderTextureColorObjectsZ
 
std::vector< renderData2TCZm_renderMultitextureDatasZ
 
std::vector< RenderObjectm_renderMultitextureObjectsZ
 
std::vector< renderDataZm_renderForcedDatasZ
 
std::vector< RenderObjectm_renderForcedObjectsZ
 
struct FIFE::RenderBackendOpenGL::currentState m_state
 
GLuint m_fbo_id
 
GLuint m_indicebufferId
 
std::vector< uint32_t > m_indices
 static indices for vertex data with z More...
 
ImagePtr m_img_target
 
bool m_target_discard
 
SDL_GLContext m_context
 
- Protected Attributes inherited from FIFE::RenderBackend
SDL_Window * m_window
 
SDL_Surface * m_screen
 
SDL_Surface * m_target
 
bool m_compressimages
 
bool m_useframebuffer
 
bool m_usenpot
 
bool m_isalphaoptimized
 
bool m_iscolorkeyenabled
 
SDL_Color m_colorkey
 
ScreenMode m_screenMode
 
SDL_PixelFormat m_rgba_format
 
bool m_isbackgroundcolor
 
SDL_Color m_backgroundcolor
 
bool m_isMipmapping
 
TextureFiltering m_textureFilter
 
int32_t m_maxAnisotropy
 
bool m_monochrome
 
bool m_isDepthBuffer
 
float m_alphaValue
 
bool m_vSync
 
std::stack< ClipInfom_clipstack
 
ClipInfo m_guiClip
 

Additional Inherited Members

- Static Public Member Functions inherited from FIFE::DynamicSingleton< RenderBackend >
static RenderBackendinstance ()
 

Detailed Description

The main class of the OpenGL-based renderer.

See also
RenderBackend

Definition at line 43 of file renderbackendopengl.h.

Constructor & Destructor Documentation

◆ RenderBackendOpenGL()

◆ ~RenderBackendOpenGL()

FIFE::RenderBackendOpenGL::~RenderBackendOpenGL ( )
virtual

Member Function Documentation

◆ addImageToArray() [1/2]

◆ addImageToArray() [2/2]

◆ addImageToArrayZ() [1/2]

◆ addImageToArrayZ() [2/2]

◆ attachRenderTarget()

◆ bindTexture() [1/2]

◆ bindTexture() [2/2]

void FIFE::RenderBackendOpenGL::bindTexture ( GLuint  textId)

◆ captureScreen() [1/2]

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

Creates a Screenshot and saves it to a file.

Implements FIFE::RenderBackend.

Definition at line 2432 of file renderbackendopengl.cpp.

References FIFE::BMASK, FIFE::RenderBackend::getHeight(), FIFE::RenderBackend::getWidth(), FIFE::GMASK, FIFE::NULLMASK, FIFE::RMASK, and FIFE::Image::saveAsPng().

Referenced by captureScreen().

+ Here is the caller graph for this function:

◆ captureScreen() [2/2]

void FIFE::RenderBackendOpenGL::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 2466 of file renderbackendopengl.cpp.

References FIFE::AMASK, FIFE::BMASK, captureScreen(), FIFE::RenderBackend::getHeight(), FIFE::RenderBackend::getWidth(), FIFE::GMASK, FIFE::RMASK, and FIFE::Image::saveAsPng().

◆ changeBlending()

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

Change the Blendingmodel.

Implements FIFE::RenderBackend.

Definition at line 701 of file renderbackendopengl.cpp.

References FIFE::RenderBackendOpenGL::currentState::blend_dst, FIFE::RenderBackendOpenGL::currentState::blend_src, and m_state.

Referenced by renderWithoutZ().

+ Here is the caller graph for this function:

◆ changeRenderInfos()

◆ clearBackBuffer()

void FIFE::RenderBackendOpenGL::clearBackBuffer ( )
virtual

Forces a clear of the backbuffer.

Implements FIFE::RenderBackend.

Definition at line 161 of file renderbackendopengl.cpp.

References disableScissorTest(), and enableScissorTest().

◆ createImage() [1/6]

Image * FIFE::RenderBackendOpenGL::createImage ( IResourceLoader loader = 0)
virtual

Implements FIFE::RenderBackend.

Definition at line 355 of file renderbackendopengl.cpp.

◆ createImage() [2/6]

Image * FIFE::RenderBackendOpenGL::createImage ( const std::string &  name,
IResourceLoader loader = 0 
)
virtual

Implements FIFE::RenderBackend.

Definition at line 359 of file renderbackendopengl.cpp.

◆ createImage() [3/6]

Image * FIFE::RenderBackendOpenGL::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 431 of file renderbackendopengl.cpp.

◆ createImage() [4/6]

Image * FIFE::RenderBackendOpenGL::createImage ( const std::string &  name,
const uint8_t *  data,
uint32_t  width,
uint32_t  height 
)
virtual

Implements FIFE::RenderBackend.

Definition at line 435 of file renderbackendopengl.cpp.

◆ createImage() [5/6]

Image * FIFE::RenderBackendOpenGL::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 363 of file renderbackendopengl.cpp.

References FIFE::RenderBackend::m_rgba_format.

◆ createImage() [6/6]

Image * FIFE::RenderBackendOpenGL::createImage ( const std::string &  name,
SDL_Surface *  surface 
)
virtual

Implements FIFE::RenderBackend.

Definition at line 397 of file renderbackendopengl.cpp.

References FIFE::RenderBackend::m_rgba_format.

◆ createMainScreen()

void FIFE::RenderBackendOpenGL::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
titleThe window title to use.
iconThe window icon to use.

Implements FIFE::RenderBackend.

Definition at line 167 of file renderbackendopengl.cpp.

References FIFE::RenderBackend::m_window, and setScreenMode().

◆ detachRenderTarget()

◆ disableAlphaTest()

void FIFE::RenderBackendOpenGL::disableAlphaTest ( )
protected

Definition at line 592 of file renderbackendopengl.cpp.

References FIFE::RenderBackendOpenGL::currentState::alpha_enabled, and m_state.

Referenced by renderWithColorAndZ(), renderWithMultitextureAndZ(), renderWithoutZ(), renderWithZ(), and renderWithZTest().

+ Here is the caller graph for this function:

◆ disableColorArray()

void FIFE::RenderBackendOpenGL::disableColorArray ( )
protected

Definition at line 628 of file renderbackendopengl.cpp.

References FIFE::RenderBackendOpenGL::currentState::color_enabled, and m_state.

Referenced by renderWithoutZ(), renderWithZ(), and renderWithZTest().

+ Here is the caller graph for this function:

◆ disableDepthTest()

void FIFE::RenderBackendOpenGL::disableDepthTest ( )
protected

Definition at line 614 of file renderbackendopengl.cpp.

References FIFE::RenderBackendOpenGL::currentState::depth_enabled, and m_state.

Referenced by renderWithColorAndZ(), renderWithMultitextureAndZ(), renderWithoutZ(), renderWithZ(), and renderWithZTest().

+ Here is the caller graph for this function:

◆ disableLighting()

void FIFE::RenderBackendOpenGL::disableLighting ( )
protected

◆ disableScissorTest()

void FIFE::RenderBackendOpenGL::disableScissorTest ( )
virtual

Disables scissor test on the render backend.

Implements FIFE::RenderBackend.

Definition at line 694 of file renderbackendopengl.cpp.

References m_state, and FIFE::RenderBackendOpenGL::currentState::scissor_test.

Referenced by clearBackBuffer(), and resetStencilBuffer().

+ Here is the caller graph for this function:

◆ disableStencilTest()

void FIFE::RenderBackendOpenGL::disableStencilTest ( )
protected

Definition at line 550 of file renderbackendopengl.cpp.

References m_state, and FIFE::RenderBackendOpenGL::currentState::sten_enabled.

Referenced by renderWithoutZ().

+ Here is the caller graph for this function:

◆ disableTextures()

void FIFE::RenderBackendOpenGL::disableTextures ( uint32_t  texUnit)

◆ drawBezier()

void FIFE::RenderBackendOpenGL::drawBezier ( const std::vector< Point > &  points,
int32_t  steps,
uint8_t  width,
uint8_t  r,
uint8_t  g,
uint8_t  b,
uint8_t  a = 255 
)
virtual

◆ drawCircle()

void FIFE::RenderBackendOpenGL::drawCircle ( const Point p,
uint32_t  radius,
uint8_t  r,
uint8_t  g,
uint8_t  b,
uint8_t  a = 255 
)
virtual

◆ drawCircleSegment()

void FIFE::RenderBackendOpenGL::drawCircleSegment ( const Point p,
uint32_t  radius,
int32_t  sangle,
int32_t  eangle,
uint8_t  r,
uint8_t  g,
uint8_t  b,
uint8_t  a = 255 
)
virtual

Draws a circle segment.

Note: The start angle must be less than the end angle. 0 angle is right side.

Implements FIFE::RenderBackend.

Definition at line 1844 of file renderbackendopengl.cpp.

References FIFE::RenderBackendOpenGL::renderDataP::color, FIFE::Math< T >::Cos(), m_pIndices, m_renderObjects, m_renderPrimitiveDatas, FIFE::Math< T >::Sin(), FIFE::Math< T >::twoPi(), FIFE::RenderBackendOpenGL::renderDataP::vertex, FIFE::PointType2D< T >::x, and FIFE::PointType2D< T >::y.

Referenced by FIFE::OpenGLGuiGraphics::drawCircleSegment().

+ Here is the caller graph for this function:

◆ drawFillCircle()

void FIFE::RenderBackendOpenGL::drawFillCircle ( const Point p,
uint32_t  radius,
uint8_t  r,
uint8_t  g,
uint8_t  b,
uint8_t  a = 255 
)
virtual

◆ drawFillCircleSegment()

void FIFE::RenderBackendOpenGL::drawFillCircleSegment ( const Point p,
uint32_t  radius,
int32_t  sangle,
int32_t  eangle,
uint8_t  r,
uint8_t  g,
uint8_t  b,
uint8_t  a = 255 
)
virtual

Draws a filled circle segment.

0 angle is right side. Note: The start angle must be less than the end angle.

Implements FIFE::RenderBackend.

Definition at line 1873 of file renderbackendopengl.cpp.

References FIFE::RenderBackendOpenGL::renderDataP::color, FIFE::Math< T >::Cos(), m_pIndices, m_renderObjects, m_renderPrimitiveDatas, FIFE::Math< T >::Sin(), FIFE::Math< T >::twoPi(), FIFE::RenderBackendOpenGL::renderDataP::vertex, FIFE::PointType2D< T >::x, and FIFE::PointType2D< T >::y.

Referenced by FIFE::OpenGLGuiGraphics::drawFillCircleSegment().

+ Here is the caller graph for this function:

◆ drawLightPrimitive()

void FIFE::RenderBackendOpenGL::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

◆ drawLine()

void FIFE::RenderBackendOpenGL::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 1513 of file renderbackendopengl.cpp.

References FIFE::RenderBackendOpenGL::renderDataP::color, m_pIndices, m_renderObjects, m_renderPrimitiveDatas, FIFE::RenderBackendOpenGL::renderDataP::vertex, FIFE::PointType2D< T >::x, and FIFE::PointType2D< T >::y.

Referenced by FIFE::OpenGLGuiGraphics::drawLine().

+ Here is the caller graph for this function:

◆ drawPolyLine()

void FIFE::RenderBackendOpenGL::drawPolyLine ( const std::vector< Point > &  points,
uint8_t  width,
uint8_t  r,
uint8_t  g,
uint8_t  b,
uint8_t  a = 255 
)
virtual

Draws lines between given points with given RGBA and width.

Implements FIFE::RenderBackend.

Definition at line 1574 of file renderbackendopengl.cpp.

References FIFE::RenderBackendOpenGL::renderDataP::color, drawFillCircle(), drawThickLine(), m_pIndices, m_renderObjects, m_renderPrimitiveDatas, and FIFE::RenderBackendOpenGL::renderDataP::vertex.

Referenced by FIFE::OpenGLGuiGraphics::drawPolyLine().

+ Here is the caller graph for this function:

◆ drawQuad()

void FIFE::RenderBackendOpenGL::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

◆ drawRectangle()

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

◆ drawThickLine()

void FIFE::RenderBackendOpenGL::drawThickLine ( const Point p1,
const Point p2,
uint8_t  width,
uint8_t  r,
uint8_t  g,
uint8_t  b,
uint8_t  a = 255 
)
virtual

◆ drawTriangle()

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

◆ drawVertex()

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

◆ enableAlphaTest()

void FIFE::RenderBackendOpenGL::enableAlphaTest ( )
protected

Definition at line 585 of file renderbackendopengl.cpp.

References FIFE::RenderBackendOpenGL::currentState::alpha_enabled, and m_state.

Referenced by renderWithMultitextureAndZ(), renderWithZ(), renderWithZTest(), and setAlphaTest().

+ Here is the caller graph for this function:

◆ enableColorArray()

void FIFE::RenderBackendOpenGL::enableColorArray ( )
protected

Definition at line 621 of file renderbackendopengl.cpp.

References FIFE::RenderBackendOpenGL::currentState::color_enabled, and m_state.

Referenced by renderWithoutZ(), renderWithZ(), and renderWithZTest().

+ Here is the caller graph for this function:

◆ enableDepthTest()

void FIFE::RenderBackendOpenGL::enableDepthTest ( )
protected

Definition at line 607 of file renderbackendopengl.cpp.

References FIFE::RenderBackendOpenGL::currentState::depth_enabled, and m_state.

Referenced by renderWithColorAndZ(), renderWithMultitextureAndZ(), renderWithZ(), and renderWithZTest().

+ Here is the caller graph for this function:

◆ enableLighting()

void FIFE::RenderBackendOpenGL::enableLighting ( )
protected

◆ enableScissorTest()

void FIFE::RenderBackendOpenGL::enableScissorTest ( )
virtual

Enables scissor test on the render backend.

Implements FIFE::RenderBackend.

Definition at line 687 of file renderbackendopengl.cpp.

References m_state, and FIFE::RenderBackendOpenGL::currentState::scissor_test.

Referenced by clearBackBuffer(), and resetStencilBuffer().

+ Here is the caller graph for this function:

◆ enableStencilTest()

void FIFE::RenderBackendOpenGL::enableStencilTest ( )
protected

Definition at line 543 of file renderbackendopengl.cpp.

References m_state, and FIFE::RenderBackendOpenGL::currentState::sten_enabled.

Referenced by setStencilTest().

+ Here is the caller graph for this function:

◆ enableTextures()

◆ endFrame()

void FIFE::RenderBackendOpenGL::endFrame ( )
virtual

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

Reimplemented from FIFE::RenderBackend.

Definition at line 348 of file renderbackendopengl.cpp.

References FIFE::RenderBackend::endFrame(), and FIFE::RenderBackend::m_window.

◆ fillRectangle()

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

◆ getLightingModel()

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

Gets the current light model.

Implements FIFE::RenderBackend.

Definition at line 454 of file renderbackendopengl.cpp.

References FIFE::RenderBackendOpenGL::currentState::lightmodel, and m_state.

◆ getName()

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

The name of the renderbackend.

Returns
The name of this renderbackend.

Implements FIFE::RenderBackend.

Definition at line 130 of file renderbackendopengl.cpp.

◆ getRenderBufferObject()

◆ getStencilRef()

uint8_t FIFE::RenderBackendOpenGL::getStencilRef ( ) const
protected

◆ init()

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

Initializes the backend.

Implements FIFE::RenderBackend.

Definition at line 135 of file renderbackendopengl.cpp.

◆ prepareForOverlays()

void FIFE::RenderBackendOpenGL::prepareForOverlays ( )
protected

◆ putPixel()

bool FIFE::RenderBackendOpenGL::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 1491 of file renderbackendopengl.cpp.

References FIFE::RenderBackendOpenGL::renderDataP::color, m_pIndices, m_renderObjects, m_renderPrimitiveDatas, FIFE::RenderBackend::m_target, and FIFE::RenderBackendOpenGL::renderDataP::vertex.

Referenced by FIFE::OpenGLGuiGraphics::drawLine(), and FIFE::OpenGLGuiGraphics::drawPoint().

+ Here is the caller graph for this function:

◆ renderGuiGeometry()

void FIFE::RenderBackendOpenGL::renderGuiGeometry ( const std::vector< GuiVertex > &  vertices,
const std::vector< int > &  indices,
const DoublePoint translation,
ImagePtr  texture 
)
virtual

◆ renderVertexArrays()

void FIFE::RenderBackendOpenGL::renderVertexArrays ( )
virtual

◆ renderWithColorAndZ()

◆ renderWithMultitextureAndZ()

◆ renderWithoutZ()

void FIFE::RenderBackendOpenGL::renderWithoutZ ( )
protected

Definition at line 791 of file renderbackendopengl.cpp.

References bindTexture(), changeBlending(), FIFE::RenderBackendOpenGL::RenderObject::color, FIFE::RenderBackendOpenGL::currentState::color_enabled, disableAlphaTest(), disableColorArray(), disableDepthTest(), disableLighting(), disableStencilTest(), disableTextures(), FIFE::RenderBackendOpenGL::RenderObject::dst, enableColorArray(), enableLighting(), enableTextures(), FIFE::RenderBackendOpenGL::RenderObject::light, FIFE::RenderBackendOpenGL::currentState::light_enabled, FIFE::RenderBackendOpenGL::currentState::lightmodel, m_maskOverlay, m_pIndices, m_renderMultitextureDatas, m_renderObjects, m_renderPrimitiveDatas, m_renderTextureColorDatas, m_renderTextureDatas, m_state, m_tc2Indices, m_tcIndices, m_tIndices, FIFE::RenderBackendOpenGL::RenderObject::mode, FIFE::RenderBackendOpenGL::RenderObject::overlay_id, FIFE::RenderBackendOpenGL::RenderObject::overlay_type, FIFE::OVERLAY_TYPE_COLOR, FIFE::OVERLAY_TYPE_COLOR_AND_TEXTURE, FIFE::OVERLAY_TYPE_NONE, FIFE::OVERLAY_TYPE_TEXTURES_AND_FACTOR, FIFE::RenderBackendOpenGL::RenderObject::rgba, setAlphaTest(), setColorPointer(), setEnvironmentalColor(), setStencilTest(), setTexCoordPointer(), setVertexPointer(), FIFE::RenderBackendOpenGL::RenderObject::size, FIFE::RenderBackendOpenGL::RenderObject::src, FIFE::RenderBackendOpenGL::currentState::sten_enabled, FIFE::RenderBackendOpenGL::currentState::sten_func, FIFE::RenderBackendOpenGL::currentState::sten_op, FIFE::RenderBackendOpenGL::currentState::sten_ref, FIFE::RenderBackendOpenGL::RenderObject::stencil_func, FIFE::RenderBackendOpenGL::RenderObject::stencil_op, FIFE::RenderBackendOpenGL::RenderObject::stencil_ref, FIFE::RenderBackendOpenGL::RenderObject::stencil_test, and FIFE::RenderBackendOpenGL::RenderObject::texture_id.

Referenced by renderVertexArrays().

+ Here is the caller graph for this function:

◆ renderWithZ()

◆ renderWithZTest()

◆ resetLighting()

void FIFE::RenderBackendOpenGL::resetLighting ( )
virtual

Reset lighting with default values.

Implements FIFE::RenderBackend.

Definition at line 537 of file renderbackendopengl.cpp.

References FIFE::RenderBackendOpenGL::currentState::lightmodel, m_state, and setLighting().

◆ resetStencilBuffer()

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

Reset stencil buffer with given value.

Implements FIFE::RenderBackend.

Definition at line 571 of file renderbackendopengl.cpp.

References disableScissorTest(), enableScissorTest(), m_state, and FIFE::RenderBackendOpenGL::currentState::sten_buf.

◆ setAlphaTest()

void FIFE::RenderBackendOpenGL::setAlphaTest ( float  ref_alpha)
protected

Definition at line 599 of file renderbackendopengl.cpp.

References FIFE::RenderBackendOpenGL::currentState::alpha_test, enableAlphaTest(), FIFE::Math< T >::Equal(), and m_state.

Referenced by renderWithColorAndZ(), renderWithoutZ(), and setScreenMode().

+ Here is the caller graph for this function:

◆ setClipArea()

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

◆ setColorPointer()

void FIFE::RenderBackendOpenGL::setColorPointer ( GLsizei  stride,
const GLvoid *  ptr 
)
protected

Definition at line 665 of file renderbackendopengl.cpp.

References FIFE::RenderBackendOpenGL::currentState::color_pointer, and m_state.

Referenced by renderWithColorAndZ(), renderWithMultitextureAndZ(), and renderWithoutZ().

+ Here is the caller graph for this function:

◆ setEnvironmentalColor()

void FIFE::RenderBackendOpenGL::setEnvironmentalColor ( uint32_t  texUnit,
const uint8_t *  rgba 
)
protected

◆ setLighting()

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

Set colors for lighting.

Implements FIFE::RenderBackend.

Definition at line 530 of file renderbackendopengl.cpp.

References FIFE::RenderBackendOpenGL::currentState::lightmodel, and m_state.

Referenced by resetLighting().

+ Here is the caller graph for this function:

◆ setLightingModel()

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

◆ setScreenMode()

◆ setStencilTest()

void FIFE::RenderBackendOpenGL::setStencilTest ( uint8_t  stencil_ref,
GLenum  stencil_op,
GLenum  stencil_func 
)
protected

◆ setTexCoordPointer()

void FIFE::RenderBackendOpenGL::setTexCoordPointer ( uint32_t  texUnit,
GLsizei  stride,
const GLvoid *  ptr 
)
protected

◆ setVertexPointer()

void FIFE::RenderBackendOpenGL::setVertexPointer ( GLint  size,
GLsizei  stride,
const GLvoid *  ptr 
)
protected

◆ startFrame()

void FIFE::RenderBackendOpenGL::startFrame ( )
virtual

Called when a new frame starts.

Reimplemented from FIFE::RenderBackend.

Definition at line 344 of file renderbackendopengl.cpp.

References FIFE::RenderBackend::startFrame().

Member Data Documentation

◆ m_context

SDL_GLContext FIFE::RenderBackendOpenGL::m_context
protected

Definition at line 281 of file renderbackendopengl.h.

Referenced by setScreenMode(), and ~RenderBackendOpenGL().

◆ m_fbo_id

GLuint FIFE::RenderBackendOpenGL::m_fbo_id
protected

Definition at line 275 of file renderbackendopengl.h.

Referenced by attachRenderTarget(), setScreenMode(), and ~RenderBackendOpenGL().

◆ m_img_target

ImagePtr FIFE::RenderBackendOpenGL::m_img_target
protected

Definition at line 279 of file renderbackendopengl.h.

Referenced by attachRenderTarget(), and detachRenderTarget().

◆ m_indicebufferId

GLuint FIFE::RenderBackendOpenGL::m_indicebufferId
protected

Definition at line 276 of file renderbackendopengl.h.

◆ m_indices

std::vector<uint32_t> FIFE::RenderBackendOpenGL::m_indices
protected

static indices for vertex data with z

Definition at line 278 of file renderbackendopengl.h.

Referenced by renderWithColorAndZ(), renderWithMultitextureAndZ(), renderWithZ(), and setScreenMode().

◆ m_maskOverlay

GLuint FIFE::RenderBackendOpenGL::m_maskOverlay
protected

◆ m_pIndices

◆ m_renderForcedDatasZ

std::vector<renderDataZ> FIFE::RenderBackendOpenGL::m_renderForcedDatasZ
protected

Definition at line 237 of file renderbackendopengl.h.

◆ m_renderForcedObjectsZ

std::vector<RenderObject> FIFE::RenderBackendOpenGL::m_renderForcedObjectsZ
protected

Definition at line 238 of file renderbackendopengl.h.

◆ m_renderMultitextureDatas

std::vector<renderData2TC> FIFE::RenderBackendOpenGL::m_renderMultitextureDatas
protected

Definition at line 214 of file renderbackendopengl.h.

Referenced by addImageToArray(), and renderWithoutZ().

◆ m_renderMultitextureDatasZ

std::vector<renderData2TCZ> FIFE::RenderBackendOpenGL::m_renderMultitextureDatasZ
protected

Definition at line 233 of file renderbackendopengl.h.

Referenced by addImageToArrayZ(), and renderWithMultitextureAndZ().

◆ m_renderMultitextureObjectsZ

std::vector<RenderObject> FIFE::RenderBackendOpenGL::m_renderMultitextureObjectsZ
protected

◆ m_renderObjects

◆ m_renderPrimitiveDatas

◆ m_renderTextureColorDatas

std::vector<renderDataTC> FIFE::RenderBackendOpenGL::m_renderTextureColorDatas
protected

Definition at line 212 of file renderbackendopengl.h.

Referenced by addImageToArray(), and renderWithoutZ().

◆ m_renderTextureColorDatasZ

std::vector<renderDataColorZ> FIFE::RenderBackendOpenGL::m_renderTextureColorDatasZ
protected

Definition at line 229 of file renderbackendopengl.h.

Referenced by addImageToArrayZ(), and renderWithColorAndZ().

◆ m_renderTextureColorObjectsZ

std::vector<RenderZObject> FIFE::RenderBackendOpenGL::m_renderTextureColorObjectsZ
protected

◆ m_renderTextureDatas

std::vector<renderDataT> FIFE::RenderBackendOpenGL::m_renderTextureDatas
protected

Definition at line 210 of file renderbackendopengl.h.

Referenced by addImageToArray(), and renderWithoutZ().

◆ m_renderTextureDatasZ

std::vector<renderDataZ> FIFE::RenderBackendOpenGL::m_renderTextureDatasZ
protected

Definition at line 225 of file renderbackendopengl.h.

Referenced by addImageToArrayZ(), and renderWithZ().

◆ m_renderTextureObjectsZ

std::vector<RenderZObject> FIFE::RenderBackendOpenGL::m_renderTextureObjectsZ
protected

Definition at line 226 of file renderbackendopengl.h.

Referenced by addImageToArrayZ(), renderVertexArrays(), and renderWithZ().

◆ m_renderZ_datas

std::vector<renderDataZ> FIFE::RenderBackendOpenGL::m_renderZ_datas
protected

Definition at line 203 of file renderbackendopengl.h.

Referenced by renderWithZTest().

◆ m_renderZ_objects

std::vector<RenderZObjectTest> FIFE::RenderBackendOpenGL::m_renderZ_objects
protected

◆ m_state

◆ m_target_discard

bool FIFE::RenderBackendOpenGL::m_target_discard
protected

Definition at line 280 of file renderbackendopengl.h.

Referenced by attachRenderTarget().

◆ m_tc2Indices

std::vector<uint32_t> FIFE::RenderBackendOpenGL::m_tc2Indices
protected

Definition at line 221 of file renderbackendopengl.h.

Referenced by addImageToArray(), and renderWithoutZ().

◆ m_tcIndices

std::vector<uint32_t> FIFE::RenderBackendOpenGL::m_tcIndices
protected

Definition at line 220 of file renderbackendopengl.h.

Referenced by addImageToArray(), and renderWithoutZ().

◆ m_tIndices

std::vector<uint32_t> FIFE::RenderBackendOpenGL::m_tIndices
protected

Definition at line 219 of file renderbackendopengl.h.

Referenced by addImageToArray(), and renderWithoutZ().


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