blitz3d/bbruntime/bbgraphics.h

120 lines
4.1 KiB
C++

#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 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