浏览代码

Added textureflags to Font.Load

Mark Sibly 7 年之前
父节点
当前提交
6cf4ab9633
共有 2 个文件被更改,包括 16 次插入13 次删除
  1. 6 6
      modules/mojo/graphics/font.monkey2
  2. 10 7
      modules/mojo/graphics/freetypefont.monkey2

+ 6 - 6
modules/mojo/graphics/font.monkey2

@@ -105,12 +105,12 @@ Class Font Extends Resource
 	
 	#rem monkeydoc Loads a font from a file.
 	#end
-	Function Load:Font( path:String,height:Float,shader:Shader=Null )
+	Function Load:Font( path:String,height:Float,shader:Shader=Null,textureFlags:TextureFlags=TextureFlags.FilterMipmap )
 	
 		If Not shader shader=Shader.GetShader( "font" )
 		
-		Local font:=FreeTypeFont.Load( path,height,shader )
-		If Not font And Not ExtractRootDir( path ) font=FreeTypeFont.Load( "font::"+path,height,shader )
+		Local font:=FreeTypeFont.Load( path,height,shader,textureFlags )
+		If Not font And Not ExtractRootDir( path ) font=FreeTypeFont.Load( "font::"+path,height,shader,textureFlags )
 		
 		Return font
 	End
@@ -157,14 +157,14 @@ End
 
 Class ResourceManager Extension
 
-	Method OpenFont:Font( path:String,height:Float,shader:Shader=Null )
+	Method OpenFont:Font( path:String,height:Float,shader:Shader=Null,textureFlags:TextureFlags=TextureFlags.FilterMipmap )
 	
-		Local slug:="Font:name="+StripDir( StripExt( path ) )+"&height="+height+"&shader="+(shader ? shader.Name Else "")
+		Local slug:="Font:name="+StripDir( StripExt( path ) )+"&height="+height+"&shader="+(shader ? shader.Name Else "")+"&textureFlags="+Int(textureFlags)
 		
 		Local font:=Cast<Font>( OpenResource( slug ) )
 		If font Return font
 		
-		font=Font.Load( path,height )
+		font=Font.Load( path,height,shader,textureFlags )
 		
 		AddResource( slug,font )
 		Return font

+ 10 - 7
modules/mojo/graphics/freetypefont.monkey2

@@ -19,13 +19,13 @@ Public
 #end
 Class FreeTypeFont Extends Font
 
-	Function Load:FreeTypeFont( path:String,fheight:Float,shader:Shader )
+	Function Load:FreeTypeFont( path:String,fheight:Float,shader:Shader,textureFlags:TextureFlags )
 	
 		Local ext:=ExtractExt( path )
 		If Not ext
-			Local font:=Load( path+".otf",fheight,shader )
-			If Not font font=Load( path+".ttf",fheight,shader )
-			If Not font font=Load( path+".fon",fheight,shader )
+			Local font:=Load( path+".otf",fheight,shader,textureFlags )
+			If Not font font=Load( path+".ttf",fheight,shader,textureFlags )
+			If Not font font=Load( path+".fon",fheight,shader,textureFlags )
 			Return font
 		Endif
 	
@@ -40,7 +40,7 @@ Class FreeTypeFont Extends Font
 			Return Null
 		Endif
 		
-		Local font:=New FreeTypeFont( data,face,fheight,shader )
+		Local font:=New FreeTypeFont( data,face,fheight,shader,textureFlags )
 		
 		Return font
 	End
@@ -132,7 +132,7 @@ Class FreeTypeFont Extends Font
 			tx+=gw+1
 		Next
 		
-		gpage.image=New Image( pixmap,TextureFlags.Filter|TextureFlags.Mipmap,_shader )
+		gpage.image=New Image( pixmap,_textureFlags,_shader )
 		gpage.glyphs=glyphs
 		
 '		Print "Loading glyph page "+page+", image size="+gpage.image.Rect.Size
@@ -155,14 +155,17 @@ Class FreeTypeFont Extends Font
 	Field _data:DataBuffer
 	Field _face:FT_Face
 	Field _shader:Shader
+	Field _textureFlags:TextureFlags
+	
 	Field _height:Int
 	Field _ascent:Int
 	
-	Method New( data:DataBuffer,face:FT_Face,fheight:Float,shader:Shader )
+	Method New( data:DataBuffer,face:FT_Face,fheight:Float,shader:Shader,textureFlags:TextureFlags )
 		
 		_data=data
 		_face=face
 		_shader=shader
+		_textureFlags=textureFlags
 
 		Local size_req:FT_Size_RequestRec