: c-struct? ( type -- ? ) (c-type) struct-type? ;
-: (define-struct) ( name vocab size align fields -- )
+: (define-struct) ( name size align fields -- )
>r [ align ] keep r>
struct-type boa
- -rot define-c-type ;
+ swap typedef ;
: define-struct-early ( name vocab fields -- fields )
- -rot [ rot first2 <field-spec> ] 2curry map ;
+ [ first2 <field-spec> ] with with map ;
: compute-struct-align ( types -- n )
[ c-type-align ] map supremum ;
[ 2 GL_FLOAT 0 ] dip glTexCoordPointer ; inline
: line-vertices ( a b -- )
- append >float-array underlying>> gl-vertex-pointer ;
+ [ first2 [ 0.5 + ] bi@ ] bi@ 4 narray
- >c-float-array gl-vertex-pointer ;
++ >float-array underlying>> gl-vertex-pointer ;
: gl-line ( a b -- )
line-vertices GL_LINES 0 2 glDrawArrays ;
: (rect-vertices) ( dim -- vertices )
{
- [ drop 0 1 ]
- [ first 1- 1 ]
- [ [ first 1- ] [ second ] bi ]
- [ second 0 swap ]
+ [ drop 0.5 0.5 ]
+ [ first 0.3 - 0.5 ]
+ [ [ first 0.3 - ] [ second 0.3 - ] bi ]
+ [ second 0.3 - 0.5 swap ]
- } cleave 8 narray >c-float-array ;
+ } cleave 8 float-array{ } nsequence underlying>> ;
: rect-vertices ( dim -- )
(rect-vertices) gl-vertex-pointer ;
classes.tuple opengl opengl.gl math.vectors ui.commands ui.gadgets
ui.gadgets.borders ui.gadgets.labels ui.gadgets.theme
ui.gadgets.tracks ui.gadgets.packs ui.gadgets.worlds ui.gestures
-ui.render math.geometry.rect locals alien.c-types ;
+ui.render math.geometry.rect locals alien.c-types
+specialized-arrays.float ;
-
IN: ui.gadgets.buttons
TUPLE: button < border pressed? selected? quot ;