bool dxCheckDisplayMode( int iWidth, int iHeight, int iDepth );
    Intention:  check if the specified display mode is supported
    Parameter:  width, height, and depth of desired screen mode
    Return:     true for yes, false for no
    Remark:     can be called before dxSetDisplayMode

void dxSetDisplayMode( int iWidth, int iHeight, int iDepth );
    Intention:  initialize DirectX objects and set display mode
    Parameter:  iDepth = 16, 24, 32 for R5G6B5, X8R8G8B8, A8R8G8B8
    Remark:     call dxCheckDisplayMode automatically

int dxRGB( int iRed, int iGreen, int iBlue );
    Intention:  get the color value of combined red, green and blue
    Parameter:  color components for red, green, blue
    Remark:     Alpha = 0 or 0xFF for 16 or 32 bit

int dxRGBR( int iColor );
int dxRGBG( int iColor );
int dxRGBB( int iColor );
    Intention:  get the color component value of red, green or blue

void dxInk( int iForeground, int iBackground );
    Intention:  set the current foreground and background colors

void dxCLS( void );
void dxCLS( int iColor );
    Intention:  clear the current bitmap using background or specified color

void dxDot( int iX, int iY );
void dxDot( int iX, int iY, int iColor );
    Intention:  draw a pixel on current bitmap with foreground or specified color

void dxLine( int iX1, int iY1, int iX2, int iY2 );
    Intention:  draw a line on current bitmap with current foreground color

void dxBox( int iLeft, int iTop, int iRight, int iBottom, int iSwap = 0 );
    Intention:  draw a filled box on current bitmap with current ink color
    Parameter:  iSwap = 0/1 for foreground/background color

void dxEllipse( int iX, int iY, int iXRadius, int iYRadius, int iFill = 0 );
    Intention:  draw an ellipse on current bitmap using current foreground color
    Parameter:  iFill = 0/1 for unfilled/filled mode
    Remark:     could be very slow

int dxPoint( int iX, int iY );
    Intention:  return the pixel color value from the current bitmap

int dxLockBitmap( void** ppData );
    Intention:  lock the current bitmap for faster reading or writing
    Parameter:  ppData: address of pointer used to access data
    Return:     pitch on success, zero on failure
    Remark:     must unlock bitmap before any other calls

void dxUnlockBitmap( void );
    Intention:  unlock the currently locked bitmap
    Remark:     unlock immediately after reading/writing data

void dxText( int iX, int iY, char* szText, int iXAlign = -1, int iYAlign = -1 );
    Intention:  output text to current bitmap at given coordinates
    Parameter:  iXAlign/iYAlign = -1, 0, 1: aligned left/top, center, right/bottom

void dxPrint( char* szText, int iMargin = 0 );
    Intention:  print text to the current bitmap at current cursor position
    Parameter:  iMargin is the space from right boundary
    Remark:     can include "\n" for multiple lines

void dxSetCursor( int iX, int iY );
    Intention:  set the cursor position used by dxPrint
    Remark:     iY will change automatically after calling dxPrint

void dxSetTextFont( char* szFont );
void dxSetTextFont( char* szFont, int iSize );
void dxSetTextFont( char* szFont, int iSize, bool bBold );
void dxSetTextFont( char* szFont, int iSize, bool bBold, bool bItalic );
    Intention:  set the properties of current text for dxText and dxPrint
    Remark:     iSize is logical font height

void dxSetTextSize( int iSize );
    Intention:  change the size of current font

void dxSetTextBold( bool bBold );
    Intention:  change the text style to bold/non-bold and non-italic

void dxSetTextItalic( bool bItalic );
    Intention:  change the text style to non-bold and italic/non-italic

void dxSetTextBoldItalic( bool bBoldItalic );
    Intention:  change the text style to bold and italic or non-bold and non-italic

void dxSetTextOpaque( bool bOpaque );
    Intention:  set the background of current text to background ink or transparent

bool dxTextOpaque( void );
char* dxTextFont( void );
int dxTextSize( void );
int dxTextStyle( void );
    Intention:  get the properties of current text setting used by dxText and dxPrint
    Return:     dxTextStyle returns 0 = normal, 1 = bold, 2 = italic, 3 = bold-italic
    Remark:     dxTextSize returns the logical font height

int dxTextWidth( char* szText );
int dxTextHeight( char* szText );
    Intention:  return the width/height of szText using the current text setting

void dxSync( void );
    Intention:  present the backbuffer content to the screen
    Remark:     one call is enough

bool dxLoop( void );
    Intention:  used in main loop
