csGraphics2DGLCommon Class Reference (Crystal Space 2.0 Public API Reference)

| ## Public API Reference

- Main Page
- Related Pages
- Modules
- Namespaces
- Classes
- Files

- Class List
- Class Index
- Class Hierarchy
- Class Members

Public Member Functions | Public Attributes | Protected Member Functions | Protected Attributes | Friends
csGraphics2DGLCommon Class Reference
Common Plugin Classes

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

`#include <csplugincommon/opengl/glcommon2d.h>`

Inheritance diagram for csGraphics2DGLCommon:

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.
virtual void | Close ()
| (*) Close graphics system
| 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 | DrawLineProjected (const csVector3 &v1, const csVector3 &v2, float fov, int color)
| Draw a line in camera space.
virtual void | DrawLineProjected (const csVector3 &v1, const csVector3 &v2, const CS::Math::Matrix4 &projection, int color)
| Draw a line in camera space.
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 const char * | GetHWGLVersion ()
| Get a string containing the OpenGL version.
virtual const char * | GetHWRenderer ()
| Get a string containing the hardware renderer.
virtual const char * | GetHWVendor ()
| Get a string containing the vendor info.
virtual void | GetPixel (int x, int y, uint8 &oR, uint8 &oG, uint8 &oB)
| Query pixel R,G,B at given screen location.
virtual void | GetPixel (int x, int y, uint8 &oR, uint8 &oG, uint8 &oB, uint8 &oA)
| As GetPixel() above, but with alpha.
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 csPtr< iImage > | ScreenShot ()
| Do a screenshot: return a new iImage object.
virtual void | SetClipRect (int xmin, int ymin, int xmax, int ymax)
| Set clipping rectangle.
void | SetViewport (int left, int top, int width, int height)
| Set the viewport (the rectangle of the framebuffer to draw to).
virtual | ~csGraphics2DGLCommon ()
| Clear font cache etc.
iEventPlug implementation
virtual unsigned | GetPotentiallyConflictingEvents ()
| Get the mask of events that can be generated by this source and are generated directly from user actions (e.g.
virtual unsigned | QueryEventPriority (unsigned)
| Query how strong the plug's wish to generate certain class of events is.
iGLDriverDatabase implementation
void | ReadDatabase (iDocumentNode *dbRoot, int configPriority=iConfigManager::ConfigPriorityPlugin+20, const char *phase=0)
| Read a custom driver database.
## Public Attributes
csRef< iEventOutlet > | EventOutlet
| 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.
bool | DrawLineNearClip (csVector3 &v1, csVector3 &v2)
| Clip line to be drawn by DrawLine to SMALL_Z.
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.
bool | openComplete
| Canvas is completely opened.
csGLStateCache * | statecache
| 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.

Reimplemented from csGraphics2D.

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

Blit.

Implements iGraphics2D.

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

Clear the screen with color.

Reimplemented from csGraphics2D.

virtual void csGraphics2DGLCommon::Close | ( |  | ) | `[virtual]`

(*) Close graphics system

Reimplemented from csGraphics2D.

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

Execute a debug command.

Reimplemented from csGraphics2D.

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

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

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

Same but uses floating-point format.

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

Enable or disable double buffering; returns success status.

Definition at line 268 of file glcommon2d.h.

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

Draw a box.

Implements iGraphics2D.

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

Draw a line.

Implements iGraphics2D.

bool csGraphics2DGLCommon::DrawLineNearClip | ( | csVector3 & | v1,
|  | csVector3 & | v2
| ) |  | `[protected]`

Clip line to be drawn by DrawLine to SMALL_Z.

Returns `false` if the line should not be drawn.

virtual void csGraphics2DGLCommon::DrawLineProjected | ( | const csVector3 & | v1,
|  | const csVector3 & | v2,
|  | float | fov,
|  | int | color
| ) |  | `[virtual]`

Draw a line in camera space.

Implements iGraphics2D.

virtual void csGraphics2DGLCommon::DrawLineProjected | ( | const csVector3 & | v1,
|  | const csVector3 & | v2,
|  | const CS::Math::Matrix4 & | projection,
|  | int | color
| ) |  | `[virtual]`

Draw a line in camera space.

Implements iGraphics2D.

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

Draw a pixel.

Implements iGraphics2D.

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

Draw a series of pixels.

Implements iGraphics2D.

virtual void csGraphics2DGLCommon::FinishDraw | ( |  | ) | `[virtual]`

This routine should be called when you finished drawing.

Reimplemented from csGraphics2D.

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

Get the double buffer state.

Definition at line 265 of file glcommon2d.h.

virtual const char* csGraphics2DGLCommon::GetHWGLVersion | ( |  | ) | `[virtual]`

Get a string containing the OpenGL version.

Reimplemented from csGraphics2D.

virtual const char* csGraphics2DGLCommon::GetHWRenderer | ( |  | ) | `[virtual]`

Get a string containing the hardware renderer.

Reimplemented from csGraphics2D.

virtual const char* csGraphics2DGLCommon::GetHWVendor | ( |  | ) | `[virtual]`

Get a string containing the vendor info.

Reimplemented from csGraphics2D.

virtual void csGraphics2DGLCommon::GetPixel | ( | int | x,
|  | int | y,
|  | uint8 & | oR,
|  | uint8 & | oG,
|  | uint8 & | oB
| ) |  | `[virtual]`

Query pixel R,G,B at given screen location.

Implements iGraphics2D.

virtual void csGraphics2DGLCommon::GetPixel | ( | int | x,
|  | int | y,
|  | uint8 & | oR,
|  | uint8 & | oG,
|  | uint8 & | oB,
|  | uint8 & | oA
| ) |  | `[virtual]`

As GetPixel() above, but with alpha.

Implements iGraphics2D.

virtual unsigned csGraphics2DGLCommon::GetPotentiallyConflictingEvents | ( |  | ) | `[inline, virtual]`

Get the mask of events that can be generated by this source and are generated directly from user actions (e.g.

key presses, mouse clicks and so on). This is used to locate potentialy conflicting combinations of event source plugins (for example two event sources may generate a csevKeyDown event each from every key press).

The mask is a combination of CSEVTYPE_XXX values ORed together.

Implements iEventPlug.

Definition at line 281 of file glcommon2d.h.

virtual bool csGraphics2DGLCommon::Initialize | ( | iObjectRegistry * | object_reg | ) | `[virtual]`

Initialize the plugin.

Reimplemented from csGraphics2D.

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.

Reimplemented from csGraphics2D.

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.

Reimplemented from csGraphics2D.

virtual unsigned csGraphics2DGLCommon::QueryEventPriority | ( | unsigned | iType | ) | `[inline, virtual]`

Query how strong the plug's wish to generate certain class of events is.

The plug with the strongest wish wins. The argument is one of CSEVTYPE_XXX values (but never a combination of several OR'ed together).

The typical value is somewhere around 100; the event plugs which are sometimes implemented inside the system drivers (such as for Windows and DJGPP) usually have the priority 100.

Implements iEventPlug.

Definition at line 283 of file glcommon2d.h.

void csGraphics2DGLCommon::ReadDatabase | ( | iDocumentNode * | dbRoot,
|  | int | configPriority = `iConfigManager::ConfigPriorityPlugin+20`,
|  | const char * | phase = `0`
| ) |  | `[inline]`

Read a custom driver database.

Parameters:

  dbRoot | Document node containing the `<configs>` and `<rules>` nodes required by the driver DB as children.
  configPriority | Priority with which the individual tweaks are added to the configuration manager.
  phase | Simple rule filter; only rules whose "phase" attribute match this string are considered. 0 and an empty string are equivalent.

Reimplemented from iOpenGLDriverDatabase.

Definition at line 289 of file glcommon2d.h.

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

Resize the canvas.

Reimplemented from csGraphics2D.

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

Do a screenshot: return a new iImage object.

Implements iGraphics2D.

virtual void csGraphics2DGLCommon::SetClipRect | ( | int | xmin,
|  | int | ymin,
|  | int | xmax,
|  | int | ymax
| ) |  | `[virtual]`

Set clipping rectangle.

Reimplemented from csGraphics2D.

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

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

void csGraphics2DGLCommon::SetViewport | ( | int | left,
|  | int | top,
|  | int | width,
|  | int | height
| ) |  | `[virtual]`

Set the viewport (the rectangle of the framebuffer to draw to).

Parameters:

  left | Left of the viewport. X=0 will map to this.
  top | Right of the viewport. Y=0 will map to this.
  width | Width of the viewport.
  height | Height of the viewport.

Reimplemented from csGraphics2D.

## Member Data Documentation

GLPixelFormat csGraphics2DGLCommon::currentFormat`[protected]`

Depth buffer resolution.

Definition at line 159 of file glcommon2d.h.

csGLDriverDatabase csGraphics2DGLCommon::driverdb`[protected]`

Driver database.

Definition at line 161 of file glcommon2d.h.

csRef<iEventOutlet> csGraphics2DGLCommon::EventOutlet

The event plug object.

Definition at line 185 of file glcommon2d.h.

csGLExtensionManager csGraphics2DGLCommon::ext`[protected]`

Extension manager.

Definition at line 152 of file glcommon2d.h.

bool csGraphics2DGLCommon::multiFavorQuality`[protected]`

Multisample samples.

Whether to favor quality or speed.

Definition at line 156 of file glcommon2d.h.

bool csGraphics2DGLCommon::openComplete`[protected]`

Canvas is completely opened.

Definition at line 135 of file glcommon2d.h.

csGLStateCache* csGraphics2DGLCommon::statecache`[protected]`

Cache for GL states.

Definition at line 131 of file glcommon2d.h.

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

- csplugincommon/opengl/glcommon2d.h