j
: Next unread message k
: Previous unread message j a
: Jump to all threads
j l
: Jump to MailingList overview
Author: wmb Date: 2007-09-18 00:44:57 +0200 (Tue, 18 Sep 2007) New Revision: 603
Added: cpu/x86/Linux/graphdev.fth Modified: cpu/x86/Linux/Makefile forth/wrapper/wrapper.c Log: Added X graphics support, disabled by default.
Modified: cpu/x86/Linux/Makefile =================================================================== --- cpu/x86/Linux/Makefile 2007-09-11 17:13:15 UTC (rev 602) +++ cpu/x86/Linux/Makefile 2007-09-17 22:44:57 UTC (rev 603) @@ -6,6 +6,7 @@ BP=../../..
CFLAGS = -O -g -m32 -DUNIX -D${OS} -DX86 +# CFLAGS += -DUSE_XCB
WRTAIL = forth/wrapper WRDIR = ${BP}/${WRTAIL}
Added: cpu/x86/Linux/graphdev.fth =================================================================== --- cpu/x86/Linux/graphdev.fth (rev 0) +++ cpu/x86/Linux/graphdev.fth 2007-09-17 22:44:57 UTC (rev 603) @@ -0,0 +1,42 @@ +purpose: Simulation of OFW graphics using X + +dev / new-device + " xgraphics" device-name + : open ( -- okay? ) d# 1200 d# 900 d# 392 syscall 2drop retval 0= ; + : close ( -- ) d# 396 syscall ; + + : fill-rectangle ( color565 x y w h -- ) d# 404 syscall 4drop drop ; +finish-device + +: get-color ( r g b -- color ) + d# 400 syscall 3drop retval +; + +: open-screen + " /xgraphics" open-dev to screen-ih +; + +0 value xred +0 value xgreen +0 value xblue +0 value xmagenta +0 value xblack +0 value xmagenta + +: demo ( -- ) + open-screen + + h# ff h# 00 h# 00 get-color to xred + h# 00 h# ff h# 00 get-color to xgreen + h# 00 h# 00 h# ff get-color to xblue + h# ff h# 00 h# ff get-color to xmagenta + 0 0 0 get-color to xblack + h# ff h# ff h# ff get-color to xmagenta + + d# 500 0 do i xred show-state loop + d# 1000 d# 500 do i xblue show-state loop + d# 1500 d# 1000 do i xgreen show-state loop + d# 2000 d# 1500 do i xmagenta show-state loop + + xblack d# 400 d# 300 d# 50 d# 60 " fill-rectangle" $call-screen +;
Modified: forth/wrapper/wrapper.c =================================================================== --- forth/wrapper/wrapper.c 2007-09-11 17:13:15 UTC (rev 602) +++ forth/wrapper/wrapper.c 2007-09-17 22:44:57 UTC (rev 603) @@ -371,6 +371,10 @@ extern long dlopen(), dlsym(), dlerror(), dlclose(); #endif
+#ifdef USE_XCB +extern long open_window(), close_window(), rgbcolor(), fill_rectangle(); +#endif + #ifdef JTAG #include "jtag.h" #endif @@ -493,7 +497,12 @@ #endif
/* 376 380 384 388 */ - m_inflate, m_map, m_unmap, s_ioperm + m_inflate, m_map, m_unmap, s_ioperm, + +#ifdef USE_XCB + /* 392 396 400 404 */ + open_window, close_window, rgbcolor, fill_rectangle, +#endif }; /* * Function semantics: