#include #include #include enum { X_RES = 720, Y_RES = 480, X_ST_CO = 100, Y_ST_CO = 100 }; GLfloat X_END_CO = X_ST_CO, Y_END_CO = Y_ST_CO; int main() { int running; glfwInit(); if( !glfwOpenWindow( X_RES, Y_RES, 0, 0, 0, 0, 0, 0, GLFW_WINDOW ) ) { glfwTerminate(); return 0; } glfwEnable( GLFW_STICKY_KEYS ); glfwSwapInterval( 1 ); glClearColor( 1, 1, 1, 1 ); glPixelStorei(GL_UNPACK_ALIGNMENT, 1 ); glDisable( GL_TEXTURE_2D ); glEnable( GL_BLEND ); glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA); glMatrixMode( GL_PROJECTION ); glLoadIdentity(); glOrtho( 0, X_END_CO, 0, Y_END_CO, -1, 1 ); glMatrixMode( GL_MODELVIEW ); glLoadIdentity(); GLfloat pixelW = (GLfloat)X_END_CO / X_RES; GLfloat pixelH = (GLfloat)Y_END_CO / Y_RES; GLubyte *bufAlpha, *bufAlpha2, *bufRGBA, *bufRGBA2, *bufRGB, *bufMono; ResLoader r; r.loadFile( "image2.gray", &bufAlpha ); r.loadFile( "image.rgba", &bufRGBA ); GLubyte tColor[ 4 ] = { 255, 255, 255, 0 }; setTransparencyColor( 64, 64, tColor, bufRGBA ); r.loadFile( "image.rgb", &bufRGB ); GLubyte color[ 3 ] = { 0, 0, 255 }; GLuint id; buildLinearTexture( 64, 64, 1, bufAlpha, id ); RGBtoRGBA( 64, 64, bufRGB, tColor, &bufRGBA2 ); //r.loadFile( "image.mono", &bufMono ); alphatoBM( 64, 64, bufAlpha, 120, &bufMono ); BMtoAlpha( 64, 64, bufMono, &bufAlpha2 ); SFonts sf( "out" ); sf.color[ 0 ] = 0; sf.color[ 1 ] = 255; sf.color[ 2 ] = 0; sf.interSpace = pixelW; sf.space = 8 * pixelW; sf.pixelW = pixelW; sf.pixelH = pixelH; sf.xPos = 20; sf.yPos = 80; do { glClear( GL_COLOR_BUFFER_BIT ); drawRectangle( 5, 95, 40, 30, color ); drawTexture( 0, 80, pixelW * 64, pixelH * 64, id ); drawLRectangle( 15, 55, 40, 30, color, 1 ); drawRGBPixels( 0, 90, 64, 64, bufRGB, pixelW, pixelH ); drawRGBAPixels( 0, 85, 64, 64, bufRGBA, pixelW, pixelH ); drawAlphaPixels( 0, 80, 64, 64, color, bufAlpha2, pixelW, pixelH ); string text = "Print test."; sf.print( text.c_str() ); glFlush(); glfwSwapBuffers(); running = !glfwGetKey( GLFW_KEY_ESC ) && glfwGetWindowParam( GLFW_OPENED ); } while( running ); glfwTerminate(); }