CrystalSpace

Public API Reference

Main Page | Modules | Namespace List | Class Hierarchy | Alphabetical List | Class List | Directories | File List | Namespace Members | Class Members | File Members | Related Pages

csGraphics2D Class Reference
[Common Plugin Classes]

This is the base class for 2D canvases. More...

#include <csplugincommon/canvas/graph2d.h>

List of all members.

Public Member Functions

virtual void AllowResize (bool)
 Enable/disable canvas resize (Over-ride in sub classes).
virtual bool BeginDraw ()
 This routine should be called before any draw operations.
virtual void Blit (int x, int y, int width, int height, unsigned char const *data)
 Blit a memory block. Format of the image is RGBA in bytes. Row by row.
virtual void ChangeDepth (int d)
 Change the depth of the canvas.
virtual void Clear (int color)
 Clear backbuffer.
virtual void ClearAll (int color)
 Clear all video pages.
virtual bool ClipLine (float &x1, float &y1, float &x2, float &y2, int xmin, int ymin, int xmax, int ymax)
 Clip a line against given rectangle Function returns true if line is not visible.
virtual void Close ()
 (*) Close graphics system
 csGraphics2D (iBase *)
 Create csGraphics2D object.
virtual bool DoubleBuffer (bool Enable)
 Enable or disable double buffering; return TRUE if supported.
virtual void DrawBox (int x, int y, int w, int h, int color)
 Draw a box of given width and height.
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)
 Same but exposed through iGraphics2D interface.
virtual int FindRGB (int r, int g, int b, int a=255)
virtual void FinishDraw ()
 This routine should be called when you finished drawing.
virtual void FreeArea (csImageArea *Area)
 Free storage allocated for a subarea of screen.
virtual void GetClipRect (int &xmin, int &ymin, int &xmax, int &ymax)
 Query clipping rectangle.
virtual bool GetDoubleBufferState ()
 Return current double buffering state.
virtual iFontServerGetFontServer ()
 Gets the font server.
virtual bool GetFullScreen ()
 Returns 'true' if the program is being run full-screen.
virtual float GetGamma () const
virtual int GetHeight ()
 Return the height of the framebuffer.
virtual iNativeWindowGetNativeWindow ()
 Return the Native Window interface for this canvas (if it has one).
virtual int GetPage ()
 Get active videopage number (starting from zero).
virtual int GetPalEntryCount ()
 Return the number of palette entries that can be modified.
virtual csRGBpixelGetPalette ()
 Get the palette (if there is one).
virtual void GetPixel (int x, int y, uint8 &oR, uint8 &oG, uint8 &oB, uint8 &oA)
 As GetPixel() above, but with alpha.
virtual void GetPixel (int x, int y, uint8 &oR, uint8 &oG, uint8 &oB)
 Query pixel R,G,B at given screen location.
virtual unsigned char * GetPixelAt (int x, int y)
 Same but exposed through iGraphics2D interface.
virtual int GetPixelBytes ()
 Return the number of bytes for every pixel.
virtual csPixelFormat const * GetPixelFormat ()
 Return information about about the pixel format.
virtual int GetWidth ()
 Return the width of the framebuffer.
virtual bool HandleEvent (iEvent &)
 Event handler for plugin.
virtual bool Initialize (iObjectRegistry *)
 Initialize the plugin.
virtual bool Open ()
 (*) Open graphics system (set videomode, open window etc)
virtual bool PerformExtension (char const *command,...)
 Perform a system specific extension.
virtual bool PerformExtensionV (char const *command, va_list)
 Perform a system specific extension.
virtual void Print (csRect const *=0)
 (*) Flip video pages (or dump backbuffer into framebuffer).
virtual bool Resize (int w, int h)
 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 SetClipRect (int xmin, int ymin, int xmax, int ymax)
 Set clipping rectangle.
virtual void SetFullScreen (bool b)
 Change the fullscreen state of the canvas.
virtual bool SetGamma (float)
virtual bool SetMouseCursor (iImage *image, const csRGBcolor *keycolor=0, int hotspot_x=0, int hotspot_y=0, csRGBcolor fg=csRGBcolor(255, 255, 255), csRGBcolor bg=csRGBcolor(0, 0, 0))
 Set mouse cursor using an image.
virtual bool SetMouseCursor (csMouseCursorID iShape)
 Set mouse cursor to one of predefined shape classes (see csmcXXX enum above).
virtual bool SetMousePosition (int x, int y)
 Set mouse cursor position; return success status.
virtual void SetRGB (int i, int r, int g, int b)
 (*) Set a color index to given R,G,B (0..255) values
virtual void Write (iFont *font, int x, int y, int fg, int bg, const char *text, uint flags=0)
 Write a text string into the back buffer.
virtual ~csGraphics2D ()
 Destroy csGraphics2D object.

Public Attributes

void(* _DrawPixel )(csGraphics2D *This, int x, int y, int color)
 Draw a pixel.
unsigned char *(* _GetPixelAt )(csGraphics2D *This, int x, int y)
 (*) Get address of video RAM at given x,y coordinates
bool AllowResizing
 Whether to allow resizing.
int ClipX1
 The clipping rectangle.
int ClipX2
int ClipY1
int ClipY2
csConfigAccess config
 The configuration file.
int Depth
int DisplayNumber
 Display number.
csFontCachefontCache
 The font cache.
csWeakRef< iFontServerFontServer
 The font server.
int FrameBufferLocked
 The counter that is incremented inside BeginDraw and decremented in FinishDraw().
bool FullScreen
 True if visual is full-screen.
int Height
bool is_open
 Open/Close state.
int * LineAddress
 Keep a array of Y*width to avoid multiplications.
unsigned char * Memory
 Most systems have a pointer to (real or pseudo) video RAM.
iObjectRegistryobject_reg
 The object registry.
csRef< iOffscreenCanvasCallbackofscb
 Callback to use for informing an external agent when several canvas operations have occured.
csRGBpixelPalette
 256-color palette.
bool PaletteAlloc [256]
 true if some palette entry is already allocated.
csPixelFormat pfmt
 The pixel format.
csWeakRef< iPluginManagerplugin_mgr
 The plugin manager.
int Width
 The width, height and depth of visual.
char * win_title
 Pointer to a title.

Protected Member Functions

iNativeWindowManager implementation
iDebugHelper implementation
virtual csTicks Benchmark (int)
virtual void Dump (iGraphics3D *)
virtual csPtr< iStringDump ()
virtual int GetSupportedTests () const
virtual csPtr< iStringStateTest ()
virtual csPtr< iStringUnitTest ()
iPluginConfig implementation
iNativeWindow implementation

Static Protected Member Functions

static void DrawPixel16 (csGraphics2D *This, int x, int y, int color)
 Draw a pixel in 16-bit modes.
static void DrawPixel32 (csGraphics2D *This, int x, int y, int color)
 Draw a pixel in 32-bit modes.
static void DrawPixel8 (csGraphics2D *This, int x, int y, int color)
 Draw a pixel in 8-bit modes.
static unsigned char * GetPixelAt16 (csGraphics2D *This, int x, int y)
 Return address of a 16-bit pixel.
static unsigned char * GetPixelAt32 (csGraphics2D *This, int x, int y)
 Return address of a 32-bit pixel.
static unsigned char * GetPixelAt8 (csGraphics2D *This, int x, int y)
 Return address of a 8-bit pixel.

Protected Attributes

int refreshRate
 Screen refresh rate.
bool vsync
 Activate Vsync.

Classes

struct  EventHandler


Detailed Description

This is the base class for 2D canvases.

Plugins should derive their own class from this one and implement required (marked with an asterisk (*)) functions. Functions not marked with an asterisk are optional, but possibly slow since they are too general.

Definition at line 58 of file graph2d.h.


Constructor & Destructor Documentation

csGraphics2D::csGraphics2D iBase  ) 
 

Create csGraphics2D object.

virtual csGraphics2D::~csGraphics2D  )  [virtual]
 

Destroy csGraphics2D object.


Member Function Documentation

virtual void csGraphics2D::AllowResize bool   )  [inline, virtual]
 

Enable/disable canvas resize (Over-ride in sub classes).

Definition at line 335 of file graph2d.h.

virtual bool csGraphics2D::BeginDraw  )  [virtual]
 

This routine should be called before any draw operations.

It should return true if graphics context is ready.

virtual void csGraphics2D::Blit int  x,
int  y,
int  width,
int  height,
unsigned char const *  data
[virtual]
 

Blit a memory block. Format of the image is RGBA in bytes. Row by row.

virtual void csGraphics2D::ChangeDepth int  d  )  [virtual]
 

Change the depth of the canvas.

virtual void csGraphics2D::Clear int  color  )  [virtual]
 

Clear backbuffer.

virtual void csGraphics2D::ClearAll int  color  )  [virtual]
 

Clear all video pages.

virtual bool csGraphics2D::ClipLine float &  x1,
float &  y1,
float &  x2,
float &  y2,
int  xmin,
int  ymin,
int  xmax,
int  ymax
[virtual]
 

Clip a line against given rectangle Function returns true if line is not visible.

virtual void csGraphics2D::Close  )  [virtual]
 

(*) Close graphics system

virtual bool csGraphics2D::DoubleBuffer bool  Enable  )  [virtual]
 

Enable or disable double buffering; return TRUE if supported.

virtual void csGraphics2D::DrawBox int  x,
int  y,
int  w,
int  h,
int  color
[virtual]
 

Draw a box of given width and height.

virtual void csGraphics2D::DrawLine float  x1,
float  y1,
float  x2,
float  y2,
int  color
[virtual]
 

Draw a line.

virtual void csGraphics2D::DrawPixel int  x,
int  y,
int  color
[inline, virtual]
 

Same but exposed through iGraphics2D interface.

Definition at line 200 of file graph2d.h.

static void csGraphics2D::DrawPixel16 csGraphics2D This,
int  x,
int  y,
int  color
[static, protected]
 

Draw a pixel in 16-bit modes.

static void csGraphics2D::DrawPixel32 csGraphics2D This,
int  x,
int  y,
int  color
[static, protected]
 

Draw a pixel in 32-bit modes.

static void csGraphics2D::DrawPixel8 csGraphics2D This,
int  x,
int  y,
int  color
[static, protected]
 

Draw a pixel in 8-bit modes.

virtual void csGraphics2D::FinishDraw  )  [virtual]
 

This routine should be called when you finished drawing.

virtual void csGraphics2D::FreeArea csImageArea Area  )  [virtual]
 

Free storage allocated for a subarea of screen.

virtual void csGraphics2D::GetClipRect int &  xmin,
int &  ymin,
int &  xmax,
int &  ymax
[virtual]
 

Query clipping rectangle.

virtual bool csGraphics2D::GetDoubleBufferState  )  [virtual]
 

Return current double buffering state.

virtual iFontServer* csGraphics2D::GetFontServer  )  [inline, virtual]
 

Gets the font server.

Definition at line 300 of file graph2d.h.

virtual bool csGraphics2D::GetFullScreen  )  [inline, virtual]
 

Returns 'true' if the program is being run full-screen.

Definition at line 344 of file graph2d.h.

virtual int csGraphics2D::GetHeight  )  [inline, virtual]
 

Return the height of the framebuffer.

Definition at line 307 of file graph2d.h.

virtual iNativeWindow* csGraphics2D::GetNativeWindow  )  [virtual]
 

Return the Native Window interface for this canvas (if it has one).

virtual int csGraphics2D::GetPage  )  [virtual]
 

Get active videopage number (starting from zero).

virtual int csGraphics2D::GetPalEntryCount  )  [inline, virtual]
 

Return the number of palette entries that can be modified.

This should return 0 if there is no palette (true color displays). This function is equivalent to the PalEntries field that you get from GetPixelFormat(). It is just a little bit easier to obtain this way.

Definition at line 252 of file graph2d.h.

virtual csRGBpixel* csGraphics2D::GetPalette  )  [inline, virtual]
 

Get the palette (if there is one).

Definition at line 311 of file graph2d.h.

virtual void csGraphics2D::GetPixel int  x,
int  y,
uint8 oR,
uint8 oG,
uint8 oB,
uint8 oA
[virtual]
 

As GetPixel() above, but with alpha.

virtual void csGraphics2D::GetPixel int  x,
int  y,
uint8 oR,
uint8 oG,
uint8 oB
[virtual]
 

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

virtual unsigned char* csGraphics2D::GetPixelAt int  x,
int  y
[inline, virtual]
 

Same but exposed through iGraphics2D interface.

Definition at line 242 of file graph2d.h.

Referenced by csG2DDrawBox< Tpixel, Tpixmixer >::DrawBox(), csG2DDrawLine< Tpixel, Tpixmixer >::DrawLine(), and csG2DDrawText< Tpixel, Tpixmixer1, Tpixmixer2, Tpixmixer3 >::DrawText().

static unsigned char* csGraphics2D::GetPixelAt16 csGraphics2D This,
int  x,
int  y
[static, protected]
 

Return address of a 16-bit pixel.

static unsigned char* csGraphics2D::GetPixelAt32 csGraphics2D This,
int  x,
int  y
[static, protected]
 

Return address of a 32-bit pixel.

static unsigned char* csGraphics2D::GetPixelAt8 csGraphics2D This,
int  x,
int  y
[static, protected]
 

Return address of a 8-bit pixel.

virtual int csGraphics2D::GetPixelBytes  )  [inline, virtual]
 

Return the number of bytes for every pixel.

This function is equivalent to the PixelBytes field that you get from GetPixelFormat().

Definition at line 260 of file graph2d.h.

virtual csPixelFormat const* csGraphics2D::GetPixelFormat  )  [inline, virtual]
 

Return information about about the pixel format.

Definition at line 266 of file graph2d.h.

virtual int csGraphics2D::GetWidth  )  [inline, virtual]
 

Return the width of the framebuffer.

Definition at line 304 of file graph2d.h.

virtual bool csGraphics2D::HandleEvent iEvent  )  [virtual]
 

Event handler for plugin.

Referenced by csGraphics2D::EventHandler::HandleEvent().

virtual bool csGraphics2D::Initialize iObjectRegistry  )  [virtual]
 

Initialize the plugin.

virtual bool csGraphics2D::Open  )  [virtual]
 

(*) Open graphics system (set videomode, open window etc)

virtual bool csGraphics2D::PerformExtension char const *  command,
  ...
[virtual]
 

Perform a system specific extension.

Return false if extension not supported.

virtual bool csGraphics2D::PerformExtensionV char const *  command,
va_list 
[virtual]
 

Perform a system specific extension.

Return false if extension not supported.

virtual void csGraphics2D::Print csRect const *  = 0  )  [inline, virtual]
 

(*) Flip video pages (or dump backbuffer into framebuffer).

Definition at line 178 of file graph2d.h.

virtual bool csGraphics2D::Resize int  w,
int  h
[virtual]
 

Resize the canvas.

virtual void csGraphics2D::RestoreArea csImageArea Area,
bool  Free = true
[virtual]
 

Restore a subarea of screen saved with SaveArea().

virtual csImageArea* csGraphics2D::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> csGraphics2D::ScreenShot  )  [virtual]
 

Do a screenshot: return a new iImage object.

virtual void csGraphics2D::SetClipRect int  xmin,
int  ymin,
int  xmax,
int  ymax
[virtual]
 

Set clipping rectangle.

virtual void csGraphics2D::SetFullScreen bool  b  )  [virtual]
 

Change the fullscreen state of the canvas.

virtual bool csGraphics2D::SetMouseCursor iImage image,
const csRGBcolor keycolor = 0,
int  hotspot_x = 0,
int  hotspot_y = 0,
csRGBcolor  fg = csRGBcolor(255, 255, 255),
csRGBcolor  bg = csRGBcolor(0, 0, 0)
[virtual]
 

Set mouse cursor using an image.

If the operation is unsupported, return 'false' otherwise return 'true'. On some platforms there is only monochrome pointers available. In this all black colors in the image will become the value of 'bg' and all non-black colors will become 'fg'

virtual bool csGraphics2D::SetMouseCursor csMouseCursorID  iShape  )  [virtual]
 

Set mouse cursor to one of predefined shape classes (see csmcXXX enum above).

If a specific mouse cursor shape is not supported, return 'false'; otherwise return 'true'. If system supports it and iBitmap != 0, shape should be set to the bitmap passed as second argument; otherwise cursor should be set to its nearest system equivalent depending on iShape argument.

virtual bool csGraphics2D::SetMousePosition int  x,
int  y
[virtual]
 

Set mouse cursor position; return success status.

virtual void csGraphics2D::SetRGB int  i,
int  r,
int  g,
int  b
[virtual]
 

(*) Set a color index to given R,G,B (0..255) values

virtual void csGraphics2D::Write iFont font,
int  x,
int  y,
int  fg,
int  bg,
const char *  text,
uint  flags = 0
[virtual]
 

Write a text string into the back buffer.


Member Data Documentation

void(* csGraphics2D::_DrawPixel)(csGraphics2D *This, int x, int y, int color)
 

Draw a pixel.

This allows deciding at run-time which function we will choose.

unsigned char*(* csGraphics2D::_GetPixelAt)(csGraphics2D *This, int x, int y)
 

(*) Get address of video RAM at given x,y coordinates

bool csGraphics2D::AllowResizing
 

Whether to allow resizing.

Definition at line 116 of file graph2d.h.

int csGraphics2D::ClipX1
 

The clipping rectangle.

Definition at line 72 of file graph2d.h.

csConfigAccess csGraphics2D::config
 

The configuration file.

Definition at line 69 of file graph2d.h.

int csGraphics2D::DisplayNumber
 

Display number.

If 0, use primary display; else if greater than 0, use that display number. If that display number is not present, use primary display.

Definition at line 112 of file graph2d.h.

csFontCache* csGraphics2D::fontCache
 

The font cache.

Definition at line 100 of file graph2d.h.

csWeakRef<iFontServer> csGraphics2D::FontServer
 

The font server.

Definition at line 98 of file graph2d.h.

int csGraphics2D::FrameBufferLocked
 

The counter that is incremented inside BeginDraw and decremented in FinishDraw().

Definition at line 125 of file graph2d.h.

bool csGraphics2D::FullScreen
 

True if visual is full-screen.

Definition at line 114 of file graph2d.h.

bool csGraphics2D::is_open
 

Open/Close state.

Definition at line 81 of file graph2d.h.

int* csGraphics2D::LineAddress
 

Keep a array of Y*width to avoid multiplications.

Definition at line 84 of file graph2d.h.

Referenced by csG2DDrawLine< Tpixel, Tpixmixer >::DrawLine().

unsigned char* csGraphics2D::Memory
 

Most systems have a pointer to (real or pseudo) video RAM.

Definition at line 78 of file graph2d.h.

Referenced by csG2DDrawLine< Tpixel, Tpixmixer >::DrawLine().

iObjectRegistry* csGraphics2D::object_reg
 

The object registry.

Definition at line 87 of file graph2d.h.

csRef<iOffscreenCanvasCallback> csGraphics2D::ofscb
 

Callback to use for informing an external agent when several canvas operations have occured.

Definition at line 95 of file graph2d.h.

csRGBpixel* csGraphics2D::Palette
 

256-color palette.

Definition at line 118 of file graph2d.h.

bool csGraphics2D::PaletteAlloc[256]
 

true if some palette entry is already allocated.

Definition at line 120 of file graph2d.h.

csPixelFormat csGraphics2D::pfmt
 

The pixel format.

Definition at line 75 of file graph2d.h.

Referenced by csPixMixerRGBA< Tpixel >::csPixMixerRGBA().

csWeakRef<iPluginManager> csGraphics2D::plugin_mgr
 

The plugin manager.

Definition at line 89 of file graph2d.h.

int csGraphics2D::refreshRate [protected]
 

Screen refresh rate.

Definition at line 133 of file graph2d.h.

bool csGraphics2D::vsync [protected]
 

Activate Vsync.

Definition at line 135 of file graph2d.h.

int csGraphics2D::Width
 

The width, height and depth of visual.

Definition at line 106 of file graph2d.h.

char* csGraphics2D::win_title
 

Pointer to a title.

Definition at line 103 of file graph2d.h.


The documentation for this class was generated from the following file:
Generated for Crystal Space by doxygen 1.4.4