]> gitweb.factorcode.org Git - factor.git/blob - basis/ui/pens/polygon/polygon.factor
Merge OneEyed's patch
[factor.git] / basis / ui / pens / polygon / polygon.factor
1 ! Copyright (C) 2009 Slava Pestov.
2 ! See http://factorcode.org/license.txt for BSD license.
3 USING: ;
4 IN: ui.pens.polygon
5
6 ! Polygon pen
7 TUPLE: polygon color
8 interior-vertices
9 interior-count
10 boundary-vertices
11 boundary-count ;
12
13 : close-path ( points -- points' )
14     dup first suffix ;
15
16 : <polygon> ( color points -- polygon )
17     dup close-path [ [ concat >float-array ] [ length ] bi ] bi@
18     polygon boa ;
19
20 M: polygon draw-boundary
21     nip
22     [ color>> gl-color ]
23     [ boundary-vertices>> gl-vertex-pointer ]
24     [ [ GL_LINE_STRIP 0 ] dip boundary-count>> glDrawArrays ]
25     tri ;
26
27 M: polygon draw-interior
28     nip
29     [ color>> gl-color ]
30     [ interior-vertices>> gl-vertex-pointer ]
31     [ [ GL_POLYGON 0 ] dip interior-count>> glDrawArrays ]
32     tri ;