FrameBufferGLX Class Reference

#include <FrameBufferGLX.h>

Inheritance diagram for FrameBufferGLX:

FrameBuffer GRAObject List of all members.

Public Member Functions

 FrameBufferGLX (unsigned mode, const char *name=NULL)
 FrameBufferGLX (unsigned width, unsigned height, unsigned mode, const char *name=NULL)
virtual ~FrameBufferGLX ()
virtual void setWidth (unsigned)
virtual void setHeight (unsigned)
virtual void showContent ()
virtual void setColor (const Camera &, unsigned, unsigned, float, const Color3f &)
virtual void setColor (const Camera &, unsigned, unsigned, const Color3f &)
virtual void setColors (const Camera &, unsigned, unsigned, float, const Color3f[], unsigned)
virtual void setColors (const Camera &, unsigned, unsigned, const Color3f[], unsigned)
virtual Color3f getColor (unsigned, unsigned) const
virtual void clearColor (const Color3f &)
virtual unsigned getWidth () const
virtual unsigned getHeight () const

Static Public Attributes

static const unsigned FB_RGBA = (1 << 0)
static const unsigned FB_INDEX = (1 << 1)
static const unsigned FB_SINGLE = (1 << 2)
static const unsigned FB_DOUBLE = (1 << 3)
static const unsigned FB_DEPTH = (1 << 4)

Protected Member Functions

void _init (const char *)
void _destroy ()
void _sanitizeMode ()

Protected Attributes

Display * _pDisplay
XVisualInfo * _pVisualInfo
Colormap _colormap
Window _win
GLXContext _context
XEvent _event
XSetWindowAttributes _winAttr
XImage * _pImage
XGCValues _gcValues
GC _gc
unsigned long _shiftRed
unsigned long _shiftGreen
unsigned long _shiftBlue
bool _byteRev
unsigned _width
unsigned _height
unsigned _fbMode

Detailed Description

Definition at line 15 of file FrameBufferGLX.h.


Constructor & Destructor Documentation

FrameBufferGLX unsigned  mode,
const char *  name = NULL
[inline]
 

Constructors

= width in pixels = height in pixels

Definition at line 44 of file FrameBufferGLX.h.

FrameBufferGLX unsigned  width,
unsigned  height,
unsigned  mode,
const char *  name = NULL
[inline]
 

Definition at line 46 of file FrameBufferGLX.h.

virtual ~FrameBufferGLX  )  [inline, virtual]
 

Destructor

Definition at line 52 of file FrameBufferGLX.h.


Member Function Documentation

void _destroy  )  [protected]
 

Definition at line 111 of file FrameBufferGLX.cc.

References FrameBufferGLX::_context, FrameBufferGLX::_pDisplay, FrameBufferGLX::_pImage, FrameBufferGLX::_pVisualInfo, FrameBufferGLX::_win, and FrameBufferGLX::_winAttr.

void _init const char *   )  [protected]
 

Definition at line 5 of file FrameBufferGLX.cc.

References FrameBufferGLX::_byteRev, FrameBufferGLX::_context, FrameBuffer::_fbMode, FrameBufferGLX::_gc, FrameBufferGLX::_gcValues, FrameBuffer::_height, FrameBufferGLX::_pDisplay, FrameBufferGLX::_pImage, FrameBufferGLX::_pVisualInfo, FrameBufferGLX::_shiftBlue, FrameBufferGLX::_shiftGreen, FrameBufferGLX::_shiftRed, FrameBuffer::_width, FrameBufferGLX::_win, FrameBufferGLX::_winAttr, FrameBuffer::FB_DEPTH, FrameBuffer::FB_DOUBLE, and FrameBuffer::FB_RGBA.

void _sanitizeMode  )  [inline, protected, inherited]
 

Definition at line 32 of file FrameBuffer.h.

void clearColor const Color3f &   )  [virtual]
 

Sets all pixels to given color

= new color

Reimplemented from FrameBuffer.

Definition at line 309 of file FrameBufferGLX.cc.

References FrameBuffer::_fbMode, FrameBufferGLX::_pDisplay, FrameBufferGLX::_win, and FrameBuffer::FB_DOUBLE.

Color3f getColor unsigned  ,
unsigned 
const [virtual]
 

Returns the pixel's color.

This method is slow due to manipulation with OpenGL matrices. Use another frame-buffer for this task!

= pixel x position, 0 = left = pixel y position, 0 = bottom = color of the pixel

Reimplemented from FrameBuffer.

Definition at line 291 of file FrameBufferGLX.cc.

References FrameBufferGLX::_byteRev, FrameBuffer::_height, FrameBufferGLX::_pImage, FrameBufferGLX::_pVisualInfo, FrameBufferGLX::_shiftBlue, FrameBufferGLX::_shiftGreen, and FrameBufferGLX::_shiftRed.

virtual unsigned getHeight  )  const [inline, virtual, inherited]
 

Definition at line 81 of file FrameBuffer.h.

Referenced by RTRender::_render().

virtual unsigned getWidth  )  const [inline, virtual, inherited]
 

Manipulation with frame-buffer's width and height (in pixels)

Definition at line 80 of file FrameBuffer.h.

Referenced by RTRender::_render().

void setColor const Camera ,
unsigned  ,
unsigned  ,
const Color3f & 
[virtual]
 

Reimplemented from FrameBuffer.

Definition at line 235 of file FrameBufferGLX.cc.

References FrameBufferGLX::_byteRev, FrameBufferGLX::_gc, FrameBuffer::_height, FrameBufferGLX::_pDisplay, FrameBufferGLX::_pImage, FrameBufferGLX::_pVisualInfo, FrameBufferGLX::_shiftBlue, FrameBufferGLX::_shiftGreen, FrameBufferGLX::_shiftRed, and FrameBufferGLX::_win.

void setColor const Camera ,
unsigned  ,
unsigned  ,
float  ,
const Color3f & 
[virtual]
 

Sets the pixel's color.

This method is slow due to manipulation with OpenGL matrices. Use another frame-buffer for this task!

= camera that made the snapshot = pixel x position, 0 = left = pixel y position, 0 = bottom = "depth" of pixel = new color of the pixel

Reimplemented from FrameBuffer.

Definition at line 224 of file FrameBufferGLX.cc.

void setColors const Camera ,
unsigned  ,
unsigned  ,
const   Color3f[],
unsigned 
[virtual]
 

Reimplemented from FrameBuffer.

Definition at line 273 of file FrameBufferGLX.cc.

References FrameBuffer::_width.

void setColors const Camera ,
unsigned  ,
unsigned  ,
float  ,
const   Color3f[],
unsigned 
[virtual]
 

Sets color of many pixels. Setting color pixel by pixel is usually too slow. We can therefore write more pixels at once. Pixels are written by lines starting at given pixel.

= camera that made the snapshot = position x of the first pixel, 0 = left = position y of the first pixel, 0 = bottom = "depth" of pixel = array of new pixel colors = number of pixels

Reimplemented from FrameBuffer.

Definition at line 262 of file FrameBufferGLX.cc.

void setHeight unsigned   )  [virtual]
 

Reimplemented from FrameBuffer.

Definition at line 176 of file FrameBufferGLX.cc.

References FrameBuffer::_height, FrameBufferGLX::_pDisplay, FrameBufferGLX::_pImage, FrameBufferGLX::_pVisualInfo, FrameBuffer::_width, and FrameBufferGLX::_win.

void setWidth unsigned   )  [virtual]
 

Manipulation with frame-buffer's width and height (in pixels)

Reimplemented from FrameBuffer.

Definition at line 137 of file FrameBufferGLX.cc.

References FrameBuffer::_height, FrameBufferGLX::_pDisplay, FrameBufferGLX::_pImage, FrameBufferGLX::_pVisualInfo, FrameBuffer::_width, and FrameBufferGLX::_win.

void showContent  )  [virtual]
 

Force to show the frame-buffer content on the screen. This method should be called after setColor() and setColors().

Reimplemented from FrameBuffer.

Definition at line 215 of file FrameBufferGLX.cc.

References FrameBuffer::_fbMode, FrameBufferGLX::_gc, FrameBufferGLX::_pDisplay, FrameBufferGLX::_pImage, FrameBufferGLX::_win, and FrameBuffer::FB_DOUBLE.


Member Data Documentation

bool _byteRev [protected]
 

Definition at line 31 of file FrameBufferGLX.h.

Referenced by FrameBufferGLX::_init(), FrameBufferGLX::getColor(), and FrameBufferGLX::setColor().

Colormap _colormap [protected]
 

Definition at line 19 of file FrameBufferGLX.h.

GLXContext _context [protected]
 

Definition at line 21 of file FrameBufferGLX.h.

Referenced by FrameBufferGLX::_destroy(), and FrameBufferGLX::_init().

XEvent _event [protected]
 

Definition at line 22 of file FrameBufferGLX.h.

unsigned _fbMode [protected, inherited]
 

Definition at line 22 of file FrameBuffer.h.

Referenced by FrameBufferGLX::_init(), FrameBufferGLX::clearColor(), FrameBufferGLUT::FrameBufferGLUT(), FrameBufferGLX::showContent(), and FrameBufferGLUT::showContent().

GC _gc [protected]
 

Definition at line 26 of file FrameBufferGLX.h.

Referenced by FrameBufferGLX::_init(), FrameBufferGLX::setColor(), and FrameBufferGLX::showContent().

XGCValues _gcValues [protected]
 

Definition at line 25 of file FrameBufferGLX.h.

Referenced by FrameBufferGLX::_init().

unsigned _height [protected, inherited]
 

Definition at line 21 of file FrameBuffer.h.

Referenced by FrameBufferGLX::_init(), FrameBufferGLX::getColor(), FrameBufferGLX::setColor(), FrameBufferGL::setColor(), FrameBufferGLX::setHeight(), and FrameBufferGLX::setWidth().

Display* _pDisplay [protected]
 

Definition at line 17 of file FrameBufferGLX.h.

Referenced by FrameBufferGLX::_destroy(), FrameBufferGLX::_init(), FrameBufferGLX::clearColor(), FrameBufferGLX::setColor(), FrameBufferGLX::setHeight(), FrameBufferGLX::setWidth(), and FrameBufferGLX::showContent().

XImage* _pImage [protected]
 

Definition at line 24 of file FrameBufferGLX.h.

Referenced by FrameBufferGLX::_destroy(), FrameBufferGLX::_init(), FrameBufferGLX::getColor(), FrameBufferGLX::setColor(), FrameBufferGLX::setHeight(), FrameBufferGLX::setWidth(), and FrameBufferGLX::showContent().

XVisualInfo* _pVisualInfo [protected]
 

Definition at line 18 of file FrameBufferGLX.h.

Referenced by FrameBufferGLX::_destroy(), FrameBufferGLX::_init(), FrameBufferGLX::getColor(), FrameBufferGLX::setColor(), FrameBufferGLX::setHeight(), and FrameBufferGLX::setWidth().

unsigned long _shiftBlue [protected]
 

Definition at line 30 of file FrameBufferGLX.h.

Referenced by FrameBufferGLX::_init(), FrameBufferGLX::getColor(), and FrameBufferGLX::setColor().

unsigned long _shiftGreen [protected]
 

Definition at line 29 of file FrameBufferGLX.h.

Referenced by FrameBufferGLX::_init(), FrameBufferGLX::getColor(), and FrameBufferGLX::setColor().

unsigned long _shiftRed [protected]
 

Definition at line 28 of file FrameBufferGLX.h.

Referenced by FrameBufferGLX::_init(), FrameBufferGLX::getColor(), and FrameBufferGLX::setColor().

unsigned _width [protected, inherited]
 

Definition at line 20 of file FrameBuffer.h.

Referenced by FrameBufferGLX::_init(), FrameBufferGL::setColor(), FrameBufferGLX::setColors(), FrameBufferGLX::setHeight(), and FrameBufferGLX::setWidth().

Window _win [protected]
 

Definition at line 20 of file FrameBufferGLX.h.

Referenced by FrameBufferGLX::_destroy(), FrameBufferGLX::_init(), FrameBufferGLX::clearColor(), FrameBufferGLX::setColor(), FrameBufferGLX::setHeight(), FrameBufferGLX::setWidth(), and FrameBufferGLX::showContent().

XSetWindowAttributes _winAttr [protected]
 

Definition at line 23 of file FrameBufferGLX.h.

Referenced by FrameBufferGLX::_destroy(), and FrameBufferGLX::_init().

const unsigned FB_DEPTH = (1 << 4) [static, inherited]
 

Definition at line 29 of file FrameBuffer.h.

Referenced by FrameBufferGLX::_init(), and FrameBufferGLUT::FrameBufferGLUT().

const unsigned FB_DOUBLE = (1 << 3) [static, inherited]
 

Definition at line 28 of file FrameBuffer.h.

Referenced by FrameBufferGLX::_init(), FrameBufferGLX::clearColor(), FrameBufferGLUT::FrameBufferGLUT(), FrameBufferGLX::showContent(), and FrameBufferGLUT::showContent().

const unsigned FB_INDEX = (1 << 1) [static, inherited]
 

Definition at line 26 of file FrameBuffer.h.

Referenced by FrameBufferGLUT::FrameBufferGLUT().

const unsigned FB_RGBA = (1 << 0) [static, inherited]
 

Definition at line 25 of file FrameBuffer.h.

Referenced by FrameBufferGLX::_init(), and FrameBufferGLUT::FrameBufferGLUT().

const unsigned FB_SINGLE = (1 << 2) [static, inherited]
 

Definition at line 27 of file FrameBuffer.h.

Referenced by FrameBufferGLUT::FrameBufferGLUT().


The documentation for this class was generated from the following files:
Generated on Tue Nov 21 15:11:43 2006 for gra by  doxygen 1.4.6