text: 
  #ifndef BBGRAPHICS_H
  #define BBGRAPHICS_H
  
  #include "bbsys.h"
  #include "../gxruntime/gxgraphics.h"
  
  extern gxGraphics *gx_graphics;
  extern gxCanvas *gx_canvas;
  extern gxScene *gx_scene;
  
  class bbImage;
  
  //general graphics functions
  int		 bbCountGfxDrivers();
  BBStr *	 bbGfxDriverName( int n );
  BBStr *	 bbGfxDriverDesc( int n );
  void	 bbSetGfxDriver( int n );
  int		 bbGfxModeExists( int w,int h,int d );
  int		 bbCountGfxModes();
  int		 bbGfxModeWidth( int n );
  int		 bbGfxModeHeight( int n );
  int		 bbGfxModeDepth( int n );
  int		 bbGraphicsWidth();
  int		 bbGraphicsHeight();
  int		 bbGraphicsDepth();
  int		 bbAvailVidMem();
  int		 bbTotalVidMem();
  
  //mode functions
  void	 bbGraphics( int w,int h,int d,int mode );
  gxCanvas * bbFrontBuffer();
  gxCanvas * bbBackBuffer();
  void	 bbEndGraphics();
  int		 bbGraphicsLost();
  int      bbInFocus();
  int		 bbScanLine();
  void	 bbVWait( int n );
  void	 bbFlip( int vwait );
  
  //graphics buffer functions
  void	 bbSetBuffer( gxCanvas *buff );
  gxCanvas * bbGraphicsBuffer();
  int		 bbLoadBuffer( gxCanvas *surf,BBStr *str );
  int		 bbSaveBuffer( gxCanvas *surf,BBStr *str );
  
  //fast read/write operations...
  void	 bbLockBuffer( gxCanvas *buff );
  void	 bbUnlockBuffer( gxCanvas *buff );
  int		 bbReadPixel( int x,int y,gxCanvas *buff );
  void	 bbWritePixel( int x,int y,int argb,gxCanvas *buff );
  int		 bbReadPixelFast( int x,int y,gxCanvas *buff );
  void	 bbWritePixelFast( int x,int y,int argb,gxCanvas *buff );
  
  
  //2d rendering functions
  void	 bbOrigin( int x,int y );
  void	 bbViewport( int x,int y,int w,int h );
  void	 bbColor( int r,int g,int b );
  void	 bbClsColor( int r,int g,int b );
  void	 bbCls();
  void	 bbPlot( int x,int y );
  void	 bbLine( int x1,int y1,int x2,int y2 );
  void	 bbRect( int x,int y,int w,int h,int solid );
  void	 bbOval( int x,int y,int w,int h,int solid );
  void	 bbText( int x,int y,BBStr *str,int centre_x,int centre_y );
  void	 bbGetColor( int x,int y );
  int		 bbColorRed();
  int		 bbColorGreen();
  int		 bbColorBlue();
  
  //font functions
  gxFont * bbLoadFont( BBStr *name,int height,int bold,int italic,int underline );
  void	 bbFreeFont( gxFont *f );
  void	 bbSetFont( gxFont *f );
  int		 bbFontWidth();
  int		 bbFontHeight();
  int		 bbStringWidth( BBStr *str );
  int		 bbStringHeight( BBStr *str );
  
  //image functions
  bbImage* bbLoadImage( BBStr *s );
  bbImage* bbCopyImage( bbImage *i );
  bbImage* bbCreateImage( int w,int h,int n );
  bbImage* bbLoadAnimImage( BBStr *s,int w,int h,int first,int cnt );
  void	 bbFreeImage( bbImage *i );
  int		 bbSaveImage( bbImage *i,BBStr *filename,int frame );
  void	 bbGrabImage( bbImage *i,int x,int y,int n );
  gxCanvas * bbImageBuffer( bbImage *i,int n );
  void	 bbDrawImage( bbImage *i,int x,int y,int frame );
  void	 bbDrawBlock( bbImage *i,int x,int y,int frame );
  void	 bbTileImage( bbImage *i,int x,int y,int frame );
  void	 bbTileBlock( bbImage *i,int x,int y,int frame );
  void	 bbDrawImageRect( bbImage *i,int x,int y,int r_x,int r_y,int r_w,int r_h,int frame );
  void	 bbDrawBlockRect( bbImage *i,int x,int y,int r_x,int r_y,int r_w,int r_h,int frame );
  void	 bbMaskImage( bbImage *i,int r,int g,int b );
  void	 bbHandleImage( bbImage *i,int x,int y );
  void	 bbScaleImage( bbImage *i,float w,float h );
  void	 bbResizeImage( bbImage *i,float w,float h );
  void	 bbRotateImage( bbImage *i,float angle );
  void	 bbTFormImage( bbImage *i,float a,float b,float c,float d );
  void	 bbTFormFilter( int enable );
  void	 bbAutoMidHandle( int enable );
  void	 bbMidHandle( bbImage *i );
  int		 bbImageWidth( bbImage *i );
  int		 bbImageHeight( bbImage *i );
  int		 bbImageXHandle( bbImage *i );
  int		 bbImageYHandle( bbImage *i );
  int		 bbImagesOverlap( bbImage *i1,int x1,int y1,bbImage *i2,int x2,int y2 );
  int		 bbImagesCollide( bbImage *i1,int x1,int y1,int f1,bbImage *i2,int x2,int y2,int f2 );
  int		 bbRectsOverlap( int x1,int y1,int w1,int h1,int x2,int y2,int w2,int h2 );
  int		 bbImageRectOverlap( bbImage *i,int x,int y,int r_x,int r_y,int r_w,int r_h );
  int		 bbImageRectCollide( bbImage *i,int x,int y,int f,int r_x,int r_y,int r_w,int r_h );
  
  //simple print functions
  void	 bbWrite( BBStr *str );
  void	 bbPrint( BBStr *str );
  BBStr *	 bbInput( BBStr *prompt );
  void	 bbLocate( int x,int y );
  
  #endif