Hi all,

With the improved object system in place, I've been porting the existing
SDL Parrot bindings.  Here's a sample program that draws the friendly
blue rectangle again:

.pcc_sub _main non_prototyped, @MAIN
        load_bytecode "library/sdl_app.imc"
        load_bytecode "library/sdl_rect.imc"
        load_bytecode "library/sdl_color.imc"

        .sym pmc app
        .sym int app_type

        find_type app_type, 'SDL::App'
        new app, app_type

        .sym pmc args
        new args, .PerlHash
        set args['height'], 480
        set args['width'],  640
        set args['bpp'],      0
        set args['flags'],    1

        app.'_new'( args )

        .sym pmc rect
        .sym int rect_type

        find_type rect_type, 'SDL::Rect'
        new rect, rect_type

        new args, .PerlHash
        set args['height'], 100
        set args['width'],  100
        set args['x'],      270
        set args['y'],      190

        rect.'_new'( args )

        .sym pmc color
        .sym int color_type

        find_type color_type, 'SDL::Color'
        new color, color_type

        new args, .PerlHash
        set args['r'],  0
        set args['g'],  0
        set args['b'], 255

        color.'_new'( args )

        app.'_fill_rect'( rect, color )
        app.'_update_rect'( rect )

        sleep 2

        app.'_quit'()
        end
.end

As you can see, this is a lot simpler and quite a bit cleaner.  I'll add
some documentation, port the existing examples to the new code, and
check it in.

Any preferences whether these files are 'library/sdl_rect.imc' or
'library/sdl/rect.imc', by the way?

-- c

Reply via email to