factor/extra/ui/render/test/test.factor

76 lines
2.1 KiB
Factor
Raw Normal View History

2009-02-09 23:52:20 -05:00
! Copyright (C) 2008, 2009 Slava Pestov.
2008-11-18 15:15:48 -05:00
! See http://factorcode.org/license.txt for BSD license.
USING: accessors colors arrays kernel sequences math byte-arrays
2009-02-12 10:22:35 -05:00
namespaces grouping fry cap images.bitmap ui.gadgets ui.gadgets.packs
ui.gadgets.borders ui.gadgets.grids ui.gadgets.grid-lines
ui.gadgets.labels ui.gadgets.buttons ui.pens ui.pens.solid ui.render
ui opengl opengl.gl colors.constants images images.loader ;
2008-11-18 15:15:48 -05:00
IN: ui.render.test
SINGLETON: line-test
M: line-test draw-interior
2drop { 0 0 } { 0 10 } gl-line ;
: <line-gadget> ( -- gadget )
<gadget>
line-test >>interior
{ 1 10 } >>dim ;
: message-window ( text -- )
<label> "Message" open-window ;
2008-11-18 21:51:45 -05:00
SYMBOL: render-output
: twiddle ( bytes -- bytes )
#! On Windows, white is { 253 253 253 } ?
2008-11-18 21:51:45 -05:00
[ 10 /i ] map ;
2008-11-18 21:51:45 -05:00
: bitmap= ( bitmap1 bitmap2 -- ? )
2009-03-15 18:36:08 -04:00
[ bitmap>> twiddle ] bi@ = ;
2008-11-18 15:15:48 -05:00
2008-11-18 21:35:50 -05:00
: check-rendering ( gadget -- )
2008-11-18 21:51:45 -05:00
screenshot
2008-11-18 21:35:50 -05:00
[ render-output set-global ]
[
2009-03-15 18:36:08 -04:00
"vocab:ui/render/test/reference.bmp" load-image
2008-11-18 22:59:11 -05:00
bitmap= "is perfect" "needs work" ?
2008-11-18 22:58:30 -05:00
"Your UI rendering " prepend
2008-11-18 21:35:50 -05:00
message-window
2008-11-18 15:15:48 -05:00
] bi ;
2008-11-18 21:35:50 -05:00
TUPLE: take-screenshot { first-time? initial: t } ;
M: take-screenshot draw-boundary
dup first-time?>> [
over check-rendering
f >>first-time?
] when
2drop ;
2008-11-18 15:15:48 -05:00
: <ui-render-test> ( -- gadget )
2008-11-18 21:35:50 -05:00
<shelf>
take-screenshot new >>boundary
2008-11-18 15:15:48 -05:00
<gadget>
2009-02-09 23:52:20 -05:00
COLOR: black <solid> >>interior
2008-11-18 15:15:48 -05:00
{ 98 98 } >>dim
{ 1 1 } <border> add-gadget
2008-11-18 15:15:48 -05:00
<gadget>
2009-02-09 23:52:20 -05:00
COLOR: gray <solid> >>boundary
2008-11-18 15:15:48 -05:00
{ 94 94 } >>dim
{ 3 3 } <border>
2009-02-09 23:52:20 -05:00
COLOR: red <solid> >>boundary
2008-11-18 15:15:48 -05:00
add-gadget
<line-gadget> <line-gadget> <line-gadget> 3array
<line-gadget> <line-gadget> <line-gadget> 3array
<line-gadget> <line-gadget> <line-gadget> 3array
3array <grid>
{ 5 5 } >>gap
2009-02-09 23:52:20 -05:00
COLOR: blue <grid-lines> >>boundary
2008-11-18 15:15:48 -05:00
add-gadget ;
: ui-render-test ( -- )
<ui-render-test> "Test" open-window ;
MAIN: ui-render-test