OpenGL rendering tweaks

db4
Slava Pestov 2008-11-17 05:16:34 -06:00
parent e6fbd4f84f
commit 3f85a4e727
4 changed files with 8 additions and 9 deletions

View File

@ -31,7 +31,7 @@ IN: opengl
over glEnableClientState dip glDisableClientState ; inline
: words>values ( word/value-seq -- value-seq )
[ dup word? [ execute ] [ ] if ] map ;
[ dup word? [ execute ] when ] map ;
: (all-enabled) ( seq quot -- )
over [ glEnable ] each dip [ glDisable ] each ; inline
@ -71,10 +71,10 @@ MACRO: all-enabled-client-state ( seq quot -- )
: (rect-vertices) ( dim -- vertices )
{
[ drop 0 1 ]
[ first 1- 1 ]
[ [ first 1- ] [ second ] bi ]
[ second 0 swap ]
[ drop 0.5 0.5 ]
[ first 0.5 ]
[ [ first ] [ second ] bi ]
[ second 0.5 swap ]
} cleave 8 narray >c-float-array ;
: rect-vertices ( dim -- )

View File

@ -196,7 +196,6 @@ M: freetype-renderer string-height ( open-font string -- h )
:: (draw-string) ( open-font sprites string loc -- )
GL_TEXTURE_2D [
loc [
-0.5 0.5 0.0 glTranslated
string open-font string char-widths scan-sums [
[ open-font sprites ] 2dip draw-char
] 2each

View File

@ -112,7 +112,7 @@ M: editor ungraft*
line-height * ;
: caret-loc ( editor -- loc )
[ editor-caret* ] keep 2dup loc>x
[ editor-caret* ] keep 2dup loc>x 1+
rot first rot line>y 2array ;
: caret-dim ( editor -- dim )
@ -120,7 +120,7 @@ M: editor ungraft*
: scroll>caret ( editor -- )
dup graft-state>> second [
dup caret-loc over caret-dim { 1 0 } v+ <rect>
dup caret-loc over caret-dim <rect>
over scroll>rect
] when drop ;

View File

@ -23,7 +23,7 @@ SYMBOL: viewport-translation
[ rect-intersect ] keep
dim>> dup { 0 1 } v* viewport-translation set
{ 0 0 } over gl-viewport
-0.5 swap first2 [ 0.5 - ] [ 0.5 + ] bi* 0.5 gluOrtho2D
0 swap first2 0 gluOrtho2D
clip set
do-clip ;