factor/contrib/cairo/cairo_simple.factor

58 lines
1.1 KiB
Factor
Raw Permalink Normal View History

2005-10-05 12:35:29 -04:00
! A simple cairo example
!
! To run this code, bootstrap Factor like so:
!
! ./f boot.image.le32
! -libraries:sdl:name=libSDL.so
! -libraries:sdl-gfx:name=libSDL_gfx
! -libraries:cairo:name=libcairo
!
! (But all on one line)
!
! Then, start Factor as usual (./f factor.image) and enter these
! at the listener:
!
! "/contrib/cairo/load.factor" run-resource
2005-10-05 12:35:29 -04:00
! "cairo_simple.factor" run-file
IN: cairo-simple
USE: cairo
USE: cairo-sdl
USE: compiler
USE: errors
USE: kernel
USE: namespaces
USE: sdl
2006-01-18 14:06:34 -05:00
USE: alien
2005-10-05 12:35:29 -04:00
: redraw ( -- )
cr get
[ cairo_identity_matrix ] keep
[ 0.0 0.1 0.8 cairo_set_source_rgb ] keep ! set blue color
[ 130.0 90.0 60.0 60.0 cairo_rectangle ] keep ! draw a rectangle
cairo_fill ; ! and fill it
: event-loop ( event -- )
[ redraw ] with-surface
dup SDL_PollEvent
[
dup event-type SDL_QUIT = [
drop
] [
event-loop
] if
] [
event-loop
] if ;
: cairo-sdl-test ( -- )
320 240 32 SDL_HWSURFACE [
set-up-cairo
2005-12-25 17:46:21 -05:00
"event" <c-object> event-loop
2005-10-05 12:35:29 -04:00
cr get cairo_destroy
SDL_Quit
] with-screen ;
cairo-sdl-test