Check it out!!!Simple DirectMedia Layer is a cross-platform multimedia library designed to provide low level access to audio, keyboard, mouse, joystick, 3D hardware via OpenGL, and 2D video framebuffer. It is used by MPEG playback software, emulators, and many popular games, including the award winning Linux port of "Civilization: Call To Power."
SDL supports Linux, Windows, Windows CE, BeOS, MacOS, Mac OS X, FreeBSD, NetBSD, OpenBSD, BSD/OS, Solaris, IRIX, and QNX. The code contains support for AmigaOS, Dreamcast, Atari, AIX, OSF/Tru64, RISC OS, SymbianOS, and OS/2, but these are not officially supported.
SDL is written in C, but works with C++ natively, and has bindings to several other languages, including Ada, C#, D, Eiffel, Erlang, Euphoria, Guile, Haskell, Java, Lisp, Lua, ML, Objective C, Pascal, Perl, PHP, Pike, Pliant, Python, Ruby, Smalltalk, and Tcl.
SDL is distributed under GNU LGPL version 2. This license allows you to use SDL freely in commercial programs as long as you link with the dynamic library.
#pragma comment( linker, "/subsystem:\"windows\" /entry:\"mainCRTStartup\"" )
#include <stdlib.h>
#include <GL/glut.h>
static GLfloat spin = 0.0;
void init( void )
{
glClearColor ( 0.0, 0.0, 0.0, 0.0 );
glShadeModel ( GL_FLAT );
}
void display( void )
{
glClear ( GL_COLOR_BUFFER_BIT );
glPushMatrix ( );
glRotatef ( spin, 0.0, 0.0, 1.0 );
glColor3f ( 0.0, 1.0, 0.0 );
glRectf ( -25.0, -25.0, 25.0, 25.0 );
glPopMatrix ( );
glutSwapBuffers ( ); // Swap Buffers
}
void spinDisplay( void )
{
spin += 2.0;
if ( spin == 360.0 )
spin = 0.0;
glutPostRedisplay ( );
}
void reshape( int w, int h )
{
glViewport ( 0, 0, (GLsizei) w, (GLsizei) h );
glMatrixMode ( GL_PROJECTION );
glLoadIdentity ( );
gluOrtho2D ( -50.0, 50.0, -50.0, 50.0 );
glMatrixMode ( GL_MODELVIEW );
glLoadIdentity ( );
}
void mouse( int button, int state, int x, int y )
{
switch ( button )
{
case GLUT_LEFT_BUTTON:
if ( state == GLUT_DOWN )
glutIdleFunc ( spinDisplay );
break;
case GLUT_RIGHT_BUTTON:
if ( state == GLUT_DOWN )
glutIdleFunc ( NULL );
break;
default:
break;
}
}
void keyhandle( int key, int x, int y )
{
int m = glutGetModifiers( );
if ( key == 4 && m == 4 )
exit ( 0 );
}
int main( int argc, char** argv )
{
glutInit( &argc, argv );
glutInitDisplayMode( GLUT_DOUBLE | GLUT_RGB );
glutInitWindowSize( 250, 250 );
glutInitWindowPosition( 250, 200 );
glutCreateWindow( "Rotating Cube" );
init( );
glutDisplayFunc( display );
glutReshapeFunc( reshape );
glutMouseFunc( mouse );
glutSpecialFunc( keyhandle );
glutMainLoop( );
return 0;
}
Nice start of a thread, but why did you miss DirectX SDK for Windows Platforms with IDEs like Code Blocks, Visual Studio, DevC++, etc.
mm... well I did start with DirectX, may be because I like the COM methodologies, but its preferable for graphics programmers to be flexible with SDL, DirectX and OpenGL. Well, comes to a choice to choose from. Easy and Flexibility to learn is something that a user can only determine on, OpenGL is easier because it uses the old C methodology, Structured programming, but DirectX is of the OOPS type. I have programmed with both, for me both are the same, so here are the choices to choose from.
i m learning DirectX and all the math with it.
yeah the learning curve is steep and takes some time..
but at the EnD its WOrth it if ur programming game for Windows.