1 ! Copyright (C) 2008, 2009 Slava Pestov.
2 ! See http://factorcode.org/license.txt for BSD license.
3 USING: accessors colors arrays kernel sequences math byte-arrays
4 namespaces grouping fry cap images.bitmap ui.gadgets ui.gadgets.packs
5 ui.gadgets.borders ui.gadgets.grids ui.gadgets.grid-lines
6 ui.gadgets.labels ui.gadgets.buttons ui.pens ui.pens.solid ui.render
7 ui opengl opengl.gl colors.constants images images.loader ;
12 M: line-test draw-interior
13 2drop { 0 0 } { 0 10 } gl-line ;
15 : <line-gadget> ( -- gadget )
20 : message-window ( text -- )
21 <label> "Message" open-window ;
25 : twiddle ( bytes -- bytes )
26 #! On Windows, white is { 253 253 253 } ?
29 : bitmap= ( bitmap1 bitmap2 -- ? )
30 [ bitmap>> twiddle ] same? ;
32 : check-rendering ( gadget -- )
34 [ render-output set-global ]
36 "vocab:ui/render/test/reference.bmp" load-image
37 bitmap= "is perfect" "needs work" ?
38 "Your UI rendering " prepend
42 TUPLE: take-screenshot { first-time? initial: t } ;
44 M: take-screenshot draw-boundary
51 : <ui-render-test> ( -- gadget )
53 take-screenshot new >>boundary
55 COLOR: black <solid> >>interior
57 { 1 1 } <border> add-gadget
59 COLOR: gray <solid> >>boundary
62 COLOR: red <solid> >>boundary
64 <line-gadget> <line-gadget> <line-gadget> 3array
65 <line-gadget> <line-gadget> <line-gadget> 3array
66 <line-gadget> <line-gadget> <line-gadget> 3array
69 COLOR: blue <grid-lines> >>boundary
72 : ui-render-test ( -- )
73 <ui-render-test> "Test" open-window ;