/* call-seq: * VideoMode.new() -> mode * VideoMode.new( width, height, bpp = 32 ) -> mode * * Create a new mode. */ static VALUE VideoMode_New( int argc, VALUE *args, VALUE aKlass ) { sf::VideoMode *object = NULL; switch( argc ) { case 0: object = new sf::VideoMode(); break; case 2: object = new sf::VideoMode( FIX2UINT( args[0] ), FIX2UINT( args[1] ) ); break; case 3: object = new sf::VideoMode( FIX2UINT( args[0] ), FIX2UINT( args[1] ),FIX2UINT( args[2] ) ); break; default: rb_raise( rb_eArgError, "Expected 0, 2 or 3 arguments but was given %d", argc ); break; } VALUE rbData = Data_Wrap_Struct( aKlass, 0, VideoMode_Free, object ); rb_obj_call_init( rbData, 0, 0 ); return rbData; }