MMSFBBackEndInterface Class Reference

#include <mmsfbbackendinterface.h>

Inheritance diagram for MMSFBBackEndInterface:

List of all members.


Public Member Functions

 MMSFBBackEndInterface (int queue_size=1000)
void init (Display *x_display, int x_screen, Window x_window, MMSFBRectangle x11_win_rect)
void init ()
void swap ()
void alloc (MMSFBSurface *surface)
void free (MMSFBSurface *surface)
void clear (MMSFBSurface *surface, MMSFBColor &color)
void fillRectangle (MMSFBSurface *surface, MMSFBRectangle &rect, MMSFBDrawingFlags drawingflags)
void fillTriangle (MMSFBSurface *surface, MMSFBTriangle &triangle)
void drawLine (MMSFBSurface *surface, int x1, int y1, int x2, int y2)
void drawRectangle (MMSFBSurface *surface, MMSFBRectangle &rect)
void drawTriangle (MMSFBSurface *surface, MMSFBTriangle &triangle)
void blit (MMSFBSurface *surface, MMSFBSurface *source, MMSFBRectangle &src_rect, int x, int y, MMSFBBlittingFlags blittingflags)
void stretchBlit (MMSFBSurface *surface, MMSFBSurface *source, MMSFBRectangle &src_rect, MMSFBRectangle &dst_rect, MMSFBBlittingFlags blittingflags)
void blitBuffer (MMSFBSurface *surface, MMSFBSurfacePlanes *src_planes, MMSFBSurfacePixelFormat src_pixelformat, int src_width, int src_height, MMSFBRectangle &src_rect, int x, int y, MMSFBBlittingFlags blittingflags)
void stretchBlitBuffer (MMSFBSurface *surface, MMSFBSurfacePlanes *src_planes, MMSFBSurfacePixelFormat src_pixelformat, int src_width, int src_height, MMSFBRectangle &src_rect, MMSFBRectangle &dst_rect, MMSFBBlittingFlags blittingflags)
void createAlphaTexture (unsigned int *texture, unsigned char *buffer, int width, int height)
void deleteTexture (unsigned int texture)
void drawString (MMSFBSurface *surface, string &text, int len, int x, int y)
void renderScene (MMSFBSurface *surface, MMS_VERTEX_ARRAY **varrays, MMS_INDEX_ARRAY **iarrays, MMS3D_MATERIAL *materials, MMSFBSurface **texsurfaces, MMS3D_OBJECT **objects)
void merge (MMSFBSurface *surface, MMSFBSurface *source1, MMSFBSurface *source2, MMSFBMergingMode mergingmode)
void initVertexBuffer (unsigned int *buffer, unsigned int size, void *data=NULL)
void initVertexSubBuffer (unsigned int buffer, unsigned int offset, unsigned int size, void *data)
void initIndexBuffer (unsigned int *buffer, unsigned int size, void *data=NULL)
void initIndexSubBuffer (unsigned int buffer, unsigned int offset, unsigned int size, void *data)
void deleteBuffer (unsigned int buffer)

Private Types

enum  BEI_REQUEST_TYPE {
  BEI_REQUEST_TYPE_INIT = 0, BEI_REQUEST_TYPE_SWAP, BEI_REQUEST_TYPE_ALLOC, BEI_REQUEST_TYPE_FREE,
  BEI_REQUEST_TYPE_CLEAR, BEI_REQUEST_TYPE_FILLRECTANGLE, BEI_REQUEST_TYPE_FILLTRIANGLE, BEI_REQUEST_TYPE_DRAWLINE,
  BEI_REQUEST_TYPE_DRAWRECTANGLE, BEI_REQUEST_TYPE_DRAWTRIANGLE, BEI_REQUEST_TYPE_BLIT, BEI_REQUEST_TYPE_STRETCHBLIT,
  BEI_REQUEST_TYPE_STRETCHBLITBUFFER, BEI_REQUEST_TYPE_CREATEALPHATEXTURE, BEI_REQUEST_TYPE_DELETETEXTURE, BEI_REQUEST_TYPE_DRAWSTRING,
  BEI_REQUEST_TYPE_RENDERSCENE, BEI_REQUEST_TYPE_MERGE, BEI_REQUEST_TYPE_INITVERTEXBUFFER, BEI_REQUEST_TYPE_INITVERTEXSUBBUFFER,
  BEI_REQUEST_TYPE_INITINDEXBUFFER, BEI_REQUEST_TYPE_INITINDEXSUBBUFFER, BEI_REQUEST_TYPE_DELETEBUFFER
}

Private Member Functions

void oglMatrix (bool central_projection, int left, int right, int bottom, int top, int nearZ=0, int farZ=1)
 internal: init or update the current matrix
void oglAlloc (MMSFBSurface *surface, bool rbo_required=false)
 internal: allocate a new MMSFBSurface which uses OpenGL memory
void oglBindSurface (MMSFBSurface *surface)
 internal: bind a MMSFBSurface and it's OpenGL handle(s) to the OpenGL context
void oglBindSurface (MMSFBSurface *surface, int nearZ, int farZ, bool central_projection=false)
 internal: see oglBindSurface(MMSFBSurface *surface), additionally using nearer and farther depth in conjunction with central_projection flag
bool oglDrawBuffer (MMSFBBuffer::BUFFER *buffer, MMSFBBuffer::INDEX_BUFFER *index_buffer=NULL, MMSFBBuffer::VERTEX_BUFFER *vertex_buffer=NULL)
 internal: draw arrays of OpenGL primitives
void processData (void *in_data, int in_data_len, void **out_data, int *out_data_len)
 Process a new event from the client.
void processInit (BEI_INIT *req)
void processSwap (BEI_SWAP *req)
void processAlloc (BEI_ALLOC *req)
void processFree (BEI_FREE *req)
void processClear (BEI_CLEAR *req)
void processFillRectangle (BEI_FILLRECTANGLE *req)
void processFillTriangle (BEI_FILLTRIANGLE *req)
void processDrawLine (BEI_DRAWLINE *req)
void processDrawRectangle (BEI_DRAWRECTANGLE *req)
void processDrawTriangle (BEI_DRAWTRIANGLE *req)
void processBlit (BEI_BLIT *req)
void processStretchBlit (BEI_STRETCHBLIT *req)
void processStretchBlitBuffer (BEI_STRETCHBLITBUFFER *req)
void processCreateAlphaTexture (BEI_CREATEALPHATEXTURE *req)
void processDeleteTexture (BEI_DELETETEXTURE *req)
void processDrawString (BEI_DRAWSTRING *req)
void processRenderScene (BEI_RENDERSCENE *req)
void processMerge (BEI_MERGE *req)
void processInitVertexBuffer (BEI_INITVERTEXBUFFER *req)
void processInitVertexSubBuffer (BEI_INITVERTEXSUBBUFFER *req)
void processInitIndexBuffer (BEI_INITINDEXBUFFER *req)
void processInitIndexSubBuffer (BEI_INITINDEXSUBBUFFER *req)
void processDeleteBuffer (BEI_DELETEBUFFER *req)

Private Attributes

MMSFBGL mmsfbgl
 access to the OpenGL wrapper class
bool reset_matrix
 indicate that the matrix should be reset next time used
bool matrix_central_projection
 if true the central projection will be used, else parallel projection is used
int matrix_left
 specify the coordinate for the left vertical clipping plane
int matrix_right
 specify the coordinate for the right vertical clipping plane
int matrix_bottom
 specify the coordinate for the bottom horizontal clipping plane
int matrix_top
 specify the coordinate for the top horizontal clipping plane
int matrix_nearZ
 specify the distance to the nearer depth clipping plane
int matrix_farZ
 specify the distance to the farther depth clipping plane

Classes

struct  BEI_ALLOC
struct  BEI_BLIT
struct  BEI_CLEAR
struct  BEI_CREATEALPHATEXTURE
struct  BEI_DELETEBUFFER
struct  BEI_DELETETEXTURE
struct  BEI_DRAWLINE
struct  BEI_DRAWRECTANGLE
struct  BEI_DRAWSTRING
struct  BEI_DRAWTRIANGLE
struct  BEI_FILLRECTANGLE
struct  BEI_FILLTRIANGLE
struct  BEI_FREE
struct  BEI_INIT
struct  BEI_INITINDEXBUFFER
struct  BEI_INITINDEXSUBBUFFER
struct  BEI_INITVERTEXBUFFER
struct  BEI_INITVERTEXSUBBUFFER
struct  BEI_MERGE
struct  BEI_RENDERSCENE
struct  BEI_STRETCHBLIT
struct  BEI_STRETCHBLITBUFFER
struct  BEI_SWAP

Detailed Description

Definition at line 46 of file mmsfbbackendinterface.h.


Member Enumeration Documentation

Enumerator:
BEI_REQUEST_TYPE_INIT 
BEI_REQUEST_TYPE_SWAP 
BEI_REQUEST_TYPE_ALLOC 
BEI_REQUEST_TYPE_FREE 
BEI_REQUEST_TYPE_CLEAR 
BEI_REQUEST_TYPE_FILLRECTANGLE 
BEI_REQUEST_TYPE_FILLTRIANGLE 
BEI_REQUEST_TYPE_DRAWLINE 
BEI_REQUEST_TYPE_DRAWRECTANGLE 
BEI_REQUEST_TYPE_DRAWTRIANGLE 
BEI_REQUEST_TYPE_BLIT 
BEI_REQUEST_TYPE_STRETCHBLIT 
BEI_REQUEST_TYPE_STRETCHBLITBUFFER 
BEI_REQUEST_TYPE_CREATEALPHATEXTURE 
BEI_REQUEST_TYPE_DELETETEXTURE 
BEI_REQUEST_TYPE_DRAWSTRING 
BEI_REQUEST_TYPE_RENDERSCENE 
BEI_REQUEST_TYPE_MERGE 
BEI_REQUEST_TYPE_INITVERTEXBUFFER 
BEI_REQUEST_TYPE_INITVERTEXSUBBUFFER 
BEI_REQUEST_TYPE_INITINDEXBUFFER 
BEI_REQUEST_TYPE_INITINDEXSUBBUFFER 
BEI_REQUEST_TYPE_DELETEBUFFER 

Definition at line 48 of file mmsfbbackendinterface.h.


Constructor & Destructor Documentation

MMSFBBackEndInterface::MMSFBBackEndInterface ( int  queue_size = 1000  ) 

Definition at line 254 of file mmsfbbackendinterface.cpp.


Member Function Documentation

void MMSFBBackEndInterface::oglMatrix ( bool  central_projection,
int  left,
int  right,
int  bottom,
int  top,
int  nearZ = 0,
int  farZ = 1 
) [private]

internal: init or update the current matrix

Definition at line 390 of file mmsfbbackendinterface.cpp.

void MMSFBBackEndInterface::oglAlloc ( MMSFBSurface surface,
bool  rbo_required = false 
) [private]

internal: allocate a new MMSFBSurface which uses OpenGL memory

Definition at line 417 of file mmsfbbackendinterface.cpp.

void MMSFBBackEndInterface::oglBindSurface ( MMSFBSurface surface  )  [private]

internal: bind a MMSFBSurface and it's OpenGL handle(s) to the OpenGL context

Definition at line 494 of file mmsfbbackendinterface.cpp.

void MMSFBBackEndInterface::oglBindSurface ( MMSFBSurface surface,
int  nearZ,
int  farZ,
bool  central_projection = false 
) [private]

internal: see oglBindSurface(MMSFBSurface *surface), additionally using nearer and farther depth in conjunction with central_projection flag

Definition at line 520 of file mmsfbbackendinterface.cpp.

bool MMSFBBackEndInterface::oglDrawBuffer ( MMSFBBuffer::BUFFER buffer,
MMSFBBuffer::INDEX_BUFFER index_buffer = NULL,
MMSFBBuffer::VERTEX_BUFFER vertex_buffer = NULL 
) [private]

internal: draw arrays of OpenGL primitives

Definition at line 560 of file mmsfbbackendinterface.cpp.

void MMSFBBackEndInterface::processData ( void *  in_data,
int  in_data_len,
void **  out_data,
int *  out_data_len 
) [private, virtual]

Process a new event from the client.

Reimplemented from MMSThreadServer.

Definition at line 258 of file mmsfbbackendinterface.cpp.

void MMSFBBackEndInterface::processInit ( BEI_INIT req  )  [private]

Definition at line 366 of file mmsfbbackendinterface.cpp.

void MMSFBBackEndInterface::processSwap ( BEI_SWAP req  )  [private]

Definition at line 605 of file mmsfbbackendinterface.cpp.

void MMSFBBackEndInterface::processAlloc ( BEI_ALLOC req  )  [private]

Definition at line 620 of file mmsfbbackendinterface.cpp.

void MMSFBBackEndInterface::processFree ( BEI_FREE req  )  [private]

Definition at line 645 of file mmsfbbackendinterface.cpp.

void MMSFBBackEndInterface::processClear ( BEI_CLEAR req  )  [private]

Definition at line 662 of file mmsfbbackendinterface.cpp.

void MMSFBBackEndInterface::processFillRectangle ( BEI_FILLRECTANGLE req  )  [private]

Definition at line 690 of file mmsfbbackendinterface.cpp.

void MMSFBBackEndInterface::processFillTriangle ( BEI_FILLTRIANGLE req  )  [private]

Definition at line 717 of file mmsfbbackendinterface.cpp.

void MMSFBBackEndInterface::processDrawLine ( BEI_DRAWLINE req  )  [private]

Definition at line 778 of file mmsfbbackendinterface.cpp.

void MMSFBBackEndInterface::processDrawRectangle ( BEI_DRAWRECTANGLE req  )  [private]

Definition at line 828 of file mmsfbbackendinterface.cpp.

void MMSFBBackEndInterface::processDrawTriangle ( BEI_DRAWTRIANGLE req  )  [private]

Definition at line 862 of file mmsfbbackendinterface.cpp.

void MMSFBBackEndInterface::processBlit ( BEI_BLIT req  )  [private]

Definition at line 925 of file mmsfbbackendinterface.cpp.

void MMSFBBackEndInterface::processStretchBlit ( BEI_STRETCHBLIT req  )  [private]

Definition at line 1006 of file mmsfbbackendinterface.cpp.

void MMSFBBackEndInterface::processStretchBlitBuffer ( BEI_STRETCHBLITBUFFER req  )  [private]

Definition at line 1084 of file mmsfbbackendinterface.cpp.

void MMSFBBackEndInterface::processCreateAlphaTexture ( BEI_CREATEALPHATEXTURE req  )  [private]

Definition at line 1164 of file mmsfbbackendinterface.cpp.

void MMSFBBackEndInterface::processDeleteTexture ( BEI_DELETETEXTURE req  )  [private]

Definition at line 1184 of file mmsfbbackendinterface.cpp.

void MMSFBBackEndInterface::processDrawString ( BEI_DRAWSTRING req  )  [private]

Definition at line 1205 of file mmsfbbackendinterface.cpp.

void MMSFBBackEndInterface::processRenderScene ( BEI_RENDERSCENE req  )  [private]

Definition at line 1395 of file mmsfbbackendinterface.cpp.

void MMSFBBackEndInterface::processMerge ( BEI_MERGE req  )  [private]

Definition at line 1527 of file mmsfbbackendinterface.cpp.

void MMSFBBackEndInterface::processInitVertexBuffer ( BEI_INITVERTEXBUFFER req  )  [private]

Definition at line 1637 of file mmsfbbackendinterface.cpp.

void MMSFBBackEndInterface::processInitVertexSubBuffer ( BEI_INITVERTEXSUBBUFFER req  )  [private]

Definition at line 1673 of file mmsfbbackendinterface.cpp.

void MMSFBBackEndInterface::processInitIndexBuffer ( BEI_INITINDEXBUFFER req  )  [private]

Definition at line 1695 of file mmsfbbackendinterface.cpp.

void MMSFBBackEndInterface::processInitIndexSubBuffer ( BEI_INITINDEXSUBBUFFER req  )  [private]

Definition at line 1731 of file mmsfbbackendinterface.cpp.

void MMSFBBackEndInterface::processDeleteBuffer ( BEI_DELETEBUFFER req  )  [private]

Definition at line 1751 of file mmsfbbackendinterface.cpp.

void MMSFBBackEndInterface::init ( Display *  x_display,
int  x_screen,
Window  x_window,
MMSFBRectangle  x11_win_rect 
)

Definition at line 340 of file mmsfbbackendinterface.cpp.

void MMSFBBackEndInterface::init (  ) 

Definition at line 356 of file mmsfbbackendinterface.cpp.

void MMSFBBackEndInterface::swap (  ) 

Definition at line 599 of file mmsfbbackendinterface.cpp.

void MMSFBBackEndInterface::alloc ( MMSFBSurface surface  ) 

Definition at line 612 of file mmsfbbackendinterface.cpp.

void MMSFBBackEndInterface::free ( MMSFBSurface surface  ) 

Definition at line 637 of file mmsfbbackendinterface.cpp.

void MMSFBBackEndInterface::clear ( MMSFBSurface surface,
MMSFBColor color 
)

Definition at line 653 of file mmsfbbackendinterface.cpp.

void MMSFBBackEndInterface::fillRectangle ( MMSFBSurface surface,
MMSFBRectangle rect,
MMSFBDrawingFlags  drawingflags 
)

Definition at line 681 of file mmsfbbackendinterface.cpp.

void MMSFBBackEndInterface::fillTriangle ( MMSFBSurface surface,
MMSFBTriangle triangle 
)

Definition at line 709 of file mmsfbbackendinterface.cpp.

void MMSFBBackEndInterface::drawLine ( MMSFBSurface surface,
int  x1,
int  y1,
int  x2,
int  y2 
)

Definition at line 767 of file mmsfbbackendinterface.cpp.

void MMSFBBackEndInterface::drawRectangle ( MMSFBSurface surface,
MMSFBRectangle rect 
)

Definition at line 820 of file mmsfbbackendinterface.cpp.

void MMSFBBackEndInterface::drawTriangle ( MMSFBSurface surface,
MMSFBTriangle triangle 
)

Definition at line 854 of file mmsfbbackendinterface.cpp.

void MMSFBBackEndInterface::blit ( MMSFBSurface surface,
MMSFBSurface source,
MMSFBRectangle src_rect,
int  x,
int  y,
MMSFBBlittingFlags  blittingflags 
)

Definition at line 912 of file mmsfbbackendinterface.cpp.

void MMSFBBackEndInterface::stretchBlit ( MMSFBSurface surface,
MMSFBSurface source,
MMSFBRectangle src_rect,
MMSFBRectangle dst_rect,
MMSFBBlittingFlags  blittingflags 
)

Definition at line 994 of file mmsfbbackendinterface.cpp.

void MMSFBBackEndInterface::blitBuffer ( MMSFBSurface surface,
MMSFBSurfacePlanes src_planes,
MMSFBSurfacePixelFormat  src_pixelformat,
int  src_width,
int  src_height,
MMSFBRectangle src_rect,
int  x,
int  y,
MMSFBBlittingFlags  blittingflags 
)

Definition at line 1049 of file mmsfbbackendinterface.cpp.

void MMSFBBackEndInterface::stretchBlitBuffer ( MMSFBSurface surface,
MMSFBSurfacePlanes src_planes,
MMSFBSurfacePixelFormat  src_pixelformat,
int  src_width,
int  src_height,
MMSFBRectangle src_rect,
MMSFBRectangle dst_rect,
MMSFBBlittingFlags  blittingflags 
)

Definition at line 1068 of file mmsfbbackendinterface.cpp.

void MMSFBBackEndInterface::createAlphaTexture ( unsigned int *  texture,
unsigned char *  buffer,
int  width,
int  height 
)

Definition at line 1154 of file mmsfbbackendinterface.cpp.

void MMSFBBackEndInterface::deleteTexture ( unsigned int  texture  ) 

Definition at line 1177 of file mmsfbbackendinterface.cpp.

void MMSFBBackEndInterface::drawString ( MMSFBSurface surface,
string &  text,
int  len,
int  x,
int  y 
)

Definition at line 1194 of file mmsfbbackendinterface.cpp.

void MMSFBBackEndInterface::renderScene ( MMSFBSurface surface,
MMS_VERTEX_ARRAY **  varrays,
MMS_INDEX_ARRAY **  iarrays,
MMS3D_MATERIAL materials,
MMSFBSurface **  texsurfaces,
MMS3D_OBJECT **  objects 
)

Definition at line 1346 of file mmsfbbackendinterface.cpp.

void MMSFBBackEndInterface::merge ( MMSFBSurface surface,
MMSFBSurface source1,
MMSFBSurface source2,
MMSFBMergingMode  mergingmode 
)

Definition at line 1515 of file mmsfbbackendinterface.cpp.

void MMSFBBackEndInterface::initVertexBuffer ( unsigned int *  buffer,
unsigned int  size,
void *  data = NULL 
)

Definition at line 1628 of file mmsfbbackendinterface.cpp.

void MMSFBBackEndInterface::initVertexSubBuffer ( unsigned int  buffer,
unsigned int  offset,
unsigned int  size,
void *  data 
)

Definition at line 1662 of file mmsfbbackendinterface.cpp.

void MMSFBBackEndInterface::initIndexBuffer ( unsigned int *  buffer,
unsigned int  size,
void *  data = NULL 
)

Definition at line 1686 of file mmsfbbackendinterface.cpp.

void MMSFBBackEndInterface::initIndexSubBuffer ( unsigned int  buffer,
unsigned int  offset,
unsigned int  size,
void *  data 
)

Definition at line 1720 of file mmsfbbackendinterface.cpp.

void MMSFBBackEndInterface::deleteBuffer ( unsigned int  buffer  ) 

Definition at line 1744 of file mmsfbbackendinterface.cpp.


Member Data Documentation

access to the OpenGL wrapper class

Definition at line 247 of file mmsfbbackendinterface.h.

indicate that the matrix should be reset next time used

Definition at line 250 of file mmsfbbackendinterface.h.

if true the central projection will be used, else parallel projection is used

Definition at line 253 of file mmsfbbackendinterface.h.

specify the coordinate for the left vertical clipping plane

Definition at line 256 of file mmsfbbackendinterface.h.

specify the coordinate for the right vertical clipping plane

Definition at line 259 of file mmsfbbackendinterface.h.

specify the coordinate for the bottom horizontal clipping plane

Definition at line 262 of file mmsfbbackendinterface.h.

specify the coordinate for the top horizontal clipping plane

Definition at line 265 of file mmsfbbackendinterface.h.

specify the distance to the nearer depth clipping plane

Definition at line 268 of file mmsfbbackendinterface.h.

specify the distance to the farther depth clipping plane

Definition at line 271 of file mmsfbbackendinterface.h.


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