CrystalSpace

Public API Reference

csGraphics2DGLCommon Class Reference
[Common Plugin Classes]

Basic OpenGL version of the 2D driver class. More...

#include <csplugincommon/opengl/glcommon2d.h>

Inherits scfImplementationExt2< csGraphics2DGLCommon, csGraphics2D, iEventPlug, iOpenGLDriverDatabase >.

List of all members.

Public Member Functions

virtual bool BeginDraw ()
 This routine should be called before any draw operations.
virtual void Blit (int x, int y, int w, int h, unsigned char const *data)
 Blit.
virtual void Clear (int color)
 Clear the screen with color.
 csGraphics2DGLCommon (iBase *iParent)
 Constructor does little, most initialization stuff happens in Initialize().
virtual bool DebugCommand (const char *cmd)
 Execute a debug command.
virtual bool DoubleBuffer (bool Enable)
 Enable or disable double buffering; returns success status.
virtual void DrawBox (int x, int y, int w, int h, int color)
 Draw a box.
virtual void DrawLine (float x1, float y1, float x2, float y2, int color)
 Draw a line.
virtual void DrawPixel (int x, int y, int color)
 Draw a pixel.
virtual void DrawPixels (csPixelCoord const *pixels, int num_pixels, int color)
 Draw a series of pixels.
virtual void FinishDraw ()
 This routine should be called when you finished drawing.
virtual bool GetDoubleBufferState ()
 Get the double buffer state.
virtual unsigned char * GetPixelAt (int x, int y)
 Get address of video RAM at given x,y coordinates.
virtual bool Initialize (iObjectRegistry *object_reg)
 Initialize the plugin.
virtual bool Open ()
 Initialize font cache, texture cache, prints renderer name and version.
virtual bool PerformExtensionV (char const *command, va_list)
 Perform extension commands.
virtual bool Resize (int width, int height)
 Resize the canvas.
virtual void RestoreArea (csImageArea *Area, bool Free=true)
 Restore a subarea of screen saved with SaveArea().
virtual csImageAreaSaveArea (int x, int y, int w, int h)
 Save a subarea of screen area into the variable Data.
virtual csPtr< iImageScreenShot ()
 Do a screenshot: return a new iImage object.
virtual void SetRGB (int i, int r, int g, int b)
 Set a palette entry.
virtual ~csGraphics2DGLCommon ()
 Clear font cache etc.
iEventPlug implementation

virtual unsigned GetPotentiallyConflictingEvents ()
virtual unsigned QueryEventPriority (unsigned)
iGLDriverDatabase implementation

void ReadDatabase (iDocumentNode *dbRoot, int configPriority=iConfigManager::ConfigPriorityPlugin+20, const char *phase=0)

Public Attributes

csRef< iEventOutletEventOutlet
 The event plug object.

Protected Member Functions

void DecomposeColor (int iColor, GLubyte &oR, GLubyte &oG, GLubyte &oB, GLubyte &oA)
 Decompose a color ID into r,g,b components.
void DecomposeColor (int iColor, float &oR, float &oG, float &oB, float &oA)
 Same but uses floating-point format.
void OpenDriverDB (const char *phase=0)
 Open default driver database.
void setGLColorfromint (int color)
 Set up current GL RGB color from a packed color format.

Protected Attributes

GLPixelFormat currentFormat
 Depth buffer resolution.
csGLDriverDatabase driverdb
 Driver database.
csGLExtensionManager ext
 Extension manager.
bool multiFavorQuality
 Multisample samples.
csGLStateCachestatecache
 Cache for GL states.

Friends

class csGLFontCache
class csGLScreenShot

Detailed Description

Basic OpenGL version of the 2D driver class.

You can look at one of the OpenGL canvas classes as an example of how to inherit and use this class. In short, inherit from this common class instead of from csGraphics2D, and override all the functions you normally would except for the 2D drawing functions, which are supplied for you here. That way all OpenGL drawing functions are unified over platforms, so that a fix or improvement will be inherited by all platforms instead of percolating via people copying code over.

Definition at line 59 of file glcommon2d.h.


Constructor & Destructor Documentation

csGraphics2DGLCommon::csGraphics2DGLCommon ( iBase iParent  ) 

Constructor does little, most initialization stuff happens in Initialize().

virtual csGraphics2DGLCommon::~csGraphics2DGLCommon (  )  [virtual]

Clear font cache etc.


Member Function Documentation

virtual bool csGraphics2DGLCommon::BeginDraw (  )  [virtual]

This routine should be called before any draw operations.

It should return true if graphics context is ready.

virtual void csGraphics2DGLCommon::Blit ( int  x,
int  y,
int  w,
int  h,
unsigned char const *  data 
) [virtual]

Blit.

virtual void csGraphics2DGLCommon::Clear ( int  color  )  [virtual]

Clear the screen with color.

virtual bool csGraphics2DGLCommon::DebugCommand ( const char *  cmd  )  [virtual]

Execute a debug command.

void csGraphics2DGLCommon::DecomposeColor ( int  iColor,
float &  oR,
float &  oG,
float &  oB,
float &  oA 
) [protected]

Same but uses floating-point format.

void csGraphics2DGLCommon::DecomposeColor ( int  iColor,
GLubyte &  oR,
GLubyte &  oG,
GLubyte &  oB,
GLubyte &  oA 
) [protected]

Decompose a color ID into r,g,b components.

virtual bool csGraphics2DGLCommon::DoubleBuffer ( bool  Enable  )  [inline, virtual]

Enable or disable double buffering; returns success status.

Definition at line 288 of file glcommon2d.h.

virtual void csGraphics2DGLCommon::DrawBox ( int  x,
int  y,
int  w,
int  h,
int  color 
) [virtual]

Draw a box.

virtual void csGraphics2DGLCommon::DrawLine ( float  x1,
float  y1,
float  x2,
float  y2,
int  color 
) [virtual]

Draw a line.

virtual void csGraphics2DGLCommon::DrawPixel ( int  x,
int  y,
int  color 
) [virtual]

Draw a pixel.

virtual void csGraphics2DGLCommon::DrawPixels ( csPixelCoord const *  pixels,
int  num_pixels,
int  color 
) [virtual]

Draw a series of pixels.

virtual void csGraphics2DGLCommon::FinishDraw (  )  [virtual]

This routine should be called when you finished drawing.

virtual bool csGraphics2DGLCommon::GetDoubleBufferState (  )  [inline, virtual]

Get the double buffer state.

Definition at line 285 of file glcommon2d.h.

virtual unsigned char* csGraphics2DGLCommon::GetPixelAt ( int  x,
int  y 
) [virtual]

Get address of video RAM at given x,y coordinates.

The OpenGL version of this function just returns 0 if not doing a screenshot.

virtual bool csGraphics2DGLCommon::Initialize ( iObjectRegistry object_reg  )  [virtual]

Initialize the plugin.

virtual bool csGraphics2DGLCommon::Open (  )  [virtual]

Initialize font cache, texture cache, prints renderer name and version.

you should still print out the 2D driver type (X, Win, etc.) in your subclass code.

void csGraphics2DGLCommon::OpenDriverDB ( const char *  phase = 0  )  [protected]

Open default driver database.

virtual bool csGraphics2DGLCommon::PerformExtensionV ( char const *  command,
va_list   
) [virtual]

Perform extension commands.

virtual bool csGraphics2DGLCommon::Resize ( int  width,
int  height 
) [virtual]

Resize the canvas.

virtual void csGraphics2DGLCommon::RestoreArea ( csImageArea Area,
bool  Free = true 
) [virtual]

Restore a subarea of screen saved with SaveArea().

virtual csImageArea* csGraphics2DGLCommon::SaveArea ( int  x,
int  y,
int  w,
int  h 
) [virtual]

Save a subarea of screen area into the variable Data.

Storage is allocated in this call, you should either FreeArea() it after usage or RestoreArea() it.

virtual csPtr<iImage> csGraphics2DGLCommon::ScreenShot (  )  [virtual]

Do a screenshot: return a new iImage object.

void csGraphics2DGLCommon::setGLColorfromint ( int  color  )  [protected]

Set up current GL RGB color from a packed color format.

virtual void csGraphics2DGLCommon::SetRGB ( int  i,
int  r,
int  g,
int  b 
) [virtual]

Set a palette entry.


Member Data Documentation

GLPixelFormat csGraphics2DGLCommon::currentFormat [protected]

Depth buffer resolution.

Definition at line 158 of file glcommon2d.h.

Driver database.

Definition at line 160 of file glcommon2d.h.

The event plug object.

Definition at line 174 of file glcommon2d.h.

Extension manager.

Definition at line 151 of file glcommon2d.h.

Multisample samples.

Whether to favor quality or speed.

Definition at line 155 of file glcommon2d.h.

Cache for GL states.

Definition at line 131 of file glcommon2d.h.


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

Generated for Crystal Space 1.4.1 by doxygen 1.7.1