Load fixes, FreeType memory usage fix
							parent
							
								
									b381c123dd
								
							
						
					
					
						commit
						70b685fad8
					
				| 
						 | 
				
			
			@ -5,7 +5,7 @@ io.buffers io.files io.nonblocking io.sockets io.binary
 | 
			
		|||
io.sockets.impl windows.errors strings io.streams.duplex kernel
 | 
			
		||||
math namespaces sequences windows windows.kernel32
 | 
			
		||||
windows.shell32 windows.types windows.winsock splitting
 | 
			
		||||
continuations ;
 | 
			
		||||
continuations math.bitfields ;
 | 
			
		||||
IN: io.windows
 | 
			
		||||
 | 
			
		||||
TUPLE: windows-nt-io ;
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -1,11 +1,11 @@
 | 
			
		|||
! Copyright (C) 2005, 2007 Slava Pestov.
 | 
			
		||||
! Copyright (C) 2005, 2008 Slava Pestov.
 | 
			
		||||
! Portions copyright (C) 2007 Eduardo Cavazos.
 | 
			
		||||
! Portions copyright (C) 2008 Joe Groff.
 | 
			
		||||
! See http://factorcode.org/license.txt for BSD license.
 | 
			
		||||
USING: alien alien.c-types continuations kernel libc math macros
 | 
			
		||||
namespaces math.vectors math.constants math.functions
 | 
			
		||||
math.parser opengl.gl opengl.glu combinators arrays sequences
 | 
			
		||||
splitting words byte-arrays ;
 | 
			
		||||
splitting words byte-arrays assocs ;
 | 
			
		||||
IN: opengl
 | 
			
		||||
 | 
			
		||||
: coordinates [ first2 ] 2apply ;
 | 
			
		||||
| 
						 | 
				
			
			@ -233,7 +233,8 @@ TUPLE: sprite loc dim dim2 dlist texture ;
 | 
			
		|||
    dup sprite-dlist delete-dlist
 | 
			
		||||
    sprite-texture delete-texture ;
 | 
			
		||||
 | 
			
		||||
: free-sprites ( sprites -- ) [ [ free-sprite ] when* ] each ;
 | 
			
		||||
: free-sprites ( sprites -- )
 | 
			
		||||
    [ nip [ free-sprite ] when* ] assoc-each ;
 | 
			
		||||
 | 
			
		||||
: with-translation ( loc quot -- )
 | 
			
		||||
    GL_MODELVIEW [ >r gl-translate r> call ] do-matrix ; inline
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -36,13 +36,13 @@ M: font hashcode* drop font hashcode* ;
 | 
			
		|||
 | 
			
		||||
: close-freetype ( -- )
 | 
			
		||||
    global [
 | 
			
		||||
        open-fonts [ values [ close-font ] each f ] change
 | 
			
		||||
        open-fonts [ [ drop close-font ] assoc-each f ] change
 | 
			
		||||
        freetype [ FT_Done_FreeType f ] change
 | 
			
		||||
    ] bind ;
 | 
			
		||||
 | 
			
		||||
M: freetype-renderer free-fonts ( world -- )
 | 
			
		||||
    dup world-handle select-gl-context
 | 
			
		||||
    world-fonts values [ second free-sprites ] each ;
 | 
			
		||||
    world-fonts [ nip second free-sprites ] assoc-each ;
 | 
			
		||||
 | 
			
		||||
: ttf-name ( font style -- name )
 | 
			
		||||
    2array H{
 | 
			
		||||
| 
						 | 
				
			
			@ -100,7 +100,7 @@ SYMBOL: dpi
 | 
			
		|||
    swap set-font-height ;
 | 
			
		||||
 | 
			
		||||
: <font> ( handle -- font )
 | 
			
		||||
    V{ } clone
 | 
			
		||||
    H{ } clone
 | 
			
		||||
    { set-font-handle set-font-widths } font construct
 | 
			
		||||
    dup init-font ;
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -119,7 +119,7 @@ M: freetype-renderer open-font ( font -- open-font )
 | 
			
		|||
: char-width ( open-font char -- w )
 | 
			
		||||
    over font-widths [
 | 
			
		||||
        dupd load-glyph glyph-hori-advance ft-ceil
 | 
			
		||||
    ] cache-nth nip ;
 | 
			
		||||
    ] cache nip ;
 | 
			
		||||
 | 
			
		||||
M: freetype-renderer string-width ( open-font string -- w )
 | 
			
		||||
    0 -rot [ char-width + ] with each ;
 | 
			
		||||
| 
						 | 
				
			
			@ -175,7 +175,7 @@ M: freetype-renderer string-height ( open-font string -- h )
 | 
			
		|||
    [ bitmap>texture ] keep [ init-sprite ] keep ;
 | 
			
		||||
 | 
			
		||||
: draw-char ( open-font char sprites -- )
 | 
			
		||||
    [ dupd <char-sprite> ] cache-nth nip
 | 
			
		||||
    [ dupd <char-sprite> ] cache nip
 | 
			
		||||
    sprite-dlist glCallList ;
 | 
			
		||||
 | 
			
		||||
: (draw-string) ( open-font sprites string loc -- )
 | 
			
		||||
| 
						 | 
				
			
			@ -186,7 +186,7 @@ M: freetype-renderer string-height ( open-font string -- h )
 | 
			
		|||
    ] do-enabled ;
 | 
			
		||||
 | 
			
		||||
: font-sprites ( open-font world -- pair )
 | 
			
		||||
    world-fonts [ open-font V{ } clone 2array ] cache ;
 | 
			
		||||
    world-fonts [ open-font H{ } clone 2array ] cache ;
 | 
			
		||||
 | 
			
		||||
M: freetype-renderer draw-string ( font string loc -- )
 | 
			
		||||
    >r >r world get font-sprites first2 r> r> (draw-string) ;
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -6,7 +6,8 @@ math math.vectors namespaces prettyprint sequences strings
 | 
			
		|||
vectors words windows.kernel32 windows.gdi32 windows.user32
 | 
			
		||||
windows.opengl32 windows.messages windows.types
 | 
			
		||||
windows.nt windows threads timers libc combinators continuations
 | 
			
		||||
command-line shuffle opengl ui.render unicode.case ascii ;
 | 
			
		||||
command-line shuffle opengl ui.render unicode.case ascii
 | 
			
		||||
math.bitfields ;
 | 
			
		||||
IN: ui.windows
 | 
			
		||||
 | 
			
		||||
TUPLE: windows-ui-backend ;
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -1,4 +1,4 @@
 | 
			
		|||
USING: alien.syntax kernel math windows.types ;
 | 
			
		||||
USING: alien.syntax kernel math windows.types math.bitfields ;
 | 
			
		||||
IN: windows.advapi32
 | 
			
		||||
LIBRARY: advapi32
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -1,7 +1,8 @@
 | 
			
		|||
! Copyright (C) 2005, 2006 Doug Coleman.
 | 
			
		||||
! See http://factorcode.org/license.txt for BSD license.
 | 
			
		||||
USING: alien alien.c-types alien.syntax parser namespaces kernel
 | 
			
		||||
math windows.types windows.types init assocs sequences libc ;
 | 
			
		||||
math math.bitfields windows.types windows.types init assocs
 | 
			
		||||
sequences libc ;
 | 
			
		||||
IN: windows.opengl32
 | 
			
		||||
 | 
			
		||||
! PIXELFORMATDESCRIPTOR flags
 | 
			
		||||
| 
						 | 
				
			
			@ -70,8 +71,6 @@ IN: windows.opengl32
 | 
			
		|||
: WGL_SWAP_UNDERLAY14     HEX: 20000000 ; inline
 | 
			
		||||
: WGL_SWAP_UNDERLAY15     HEX: 40000000 ; inline
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
: pfd-dwFlags
 | 
			
		||||
    { PFD_DRAW_TO_WINDOW PFD_SUPPORT_OPENGL PFD_DOUBLEBUFFER } flags ;
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -1,7 +1,7 @@
 | 
			
		|||
! Copyright (C) 2005, 2006 Doug Coleman.
 | 
			
		||||
! See http://factorcode.org/license.txt for BSD license.
 | 
			
		||||
USING: alien alien.syntax parser namespaces kernel math
 | 
			
		||||
windows.types shuffle ;
 | 
			
		||||
windows.types shuffle math.bitfields ;
 | 
			
		||||
IN: windows.user32
 | 
			
		||||
 | 
			
		||||
! HKL for ActivateKeyboardLayout
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -1,8 +1,8 @@
 | 
			
		|||
! Copyright (C) 2006 Mackenzie Straight, Doug Coleman.
 | 
			
		||||
 | 
			
		||||
USING: alien alien.c-types alien.syntax arrays byte-arrays kernel
 | 
			
		||||
math sequences windows.types windows.kernel32 windows.errors structs
 | 
			
		||||
windows ;
 | 
			
		||||
USING: alien alien.c-types alien.syntax arrays byte-arrays
 | 
			
		||||
kernel math sequences windows.types windows.kernel32
 | 
			
		||||
windows.errors structs windows math.bitfields ;
 | 
			
		||||
IN: windows.winsock
 | 
			
		||||
 | 
			
		||||
USE: libc
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
		Reference in New Issue