sub image_draw { my ( $image,$x,$y,$xsize,$ysize ) = @_; glBindTexture(GL_TEXTURE_2D, $image); $xmax = $x + $xsize; $ymax = $y + $ysize; glBegin(GL_QUADS); glTexCoord(0.0, 0.0);glVertex($x, $y, 0); glTexCoord(1, 0.0); glVertex( $xmax, $y, 0); glTexCoord(1, 1); glVertex( $xmax, $ymax, 0); glTexCoord(0.0, 1);glVertex($x, $ymax, 0); glEnd(); } sub InitGL { my ($Width, $Height, $kernel, $heap)=@_; glViewport(0, 0, $Width, $Height); #LoadGLTextures(); image_load("./Media/imgs/",$kernel,$heap); glEnable(GL_TEXTURE_2D()); glClearColor(0.0, 0.0, 0.0, 0.0); glClearDepth(1.0); glDepthFunc(GL_LESS()); glEnable(GL_BLEND); glDisable(GL_DEPTH_TEST); glShadeModel(GL_SMOOTH()); glMatrixMode(GL_PROJECTION()); glLoadIdentity(); #glOrtho(0,640,0,480); gluOrtho2D(0, $Width, $Height,0); gluPerspective(45.0, $Width/$Height, 0.1, 100.0); glMatrixMode(GL_MODELVIEW()); glBlendFunc( GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA ); glColor(1.0, 1.0, 1.0, 1.0); glTranslate(0.0,0.0,-2.0); } image_draw($heap->{"images"}->{"2_bgtile"},0,0,640,480);