It seems to me that certain TTF fonts are not compatible with the inbuilt font engine.
Here is an example:
https://drive.google.com/file/d/0ByABbA ... p=drivesdk
When I want to open it like this:
openfont(1,"ram:symbpron.ttf",12,{Engine=#fontengine_inbuilt})
it fails to open a file: symbpron.ttf.font
Here is an excerpt from a snoopy log:
00255 : hollywood : FAIL = GetVar("codeset_default",0x6134A2C8,256,0x00000100) [248uS]
00256 : hollywood : FAIL = Open("ram:symbpron.ttf.font",OLD) = [0x00000000] [37uS]
00257 : hollywood : FAIL = GetVar("codeset_default",0x6134A2C8,256,0x00000100) [95uS]
00258 : hollywood : FAIL = Open("Fonts/ram:symbpron.ttf.font",OLD) = [0x00000000] [2155269uS]
00259 : hollywood : FAIL = GetVar("codeset_default",0x6134A2C8,256,0x00000100) [623uS]
00260 : hollywood : FAIL = Open("FONTSsymbpron.ttf.font",OLD) = [0x00000000] [118uS]
According the OS4 TypeManager this font has a Windows Symbol encoding instead of Windows Unicode which other fonts has. Whatever that means...
I need to traverse all fonts from a selected drawer, so I should use this way to open fonts.
Inbuilt fontengine problem with certain ttf files
Re: Inbuilt fontengine problem with certain ttf files
The main problem is that I can't make any workaround because this:
00258 : hollywood : FAIL = Open("Fonts/ram:symbpron.ttf.font",OLD) = [0x00000000] [2155269uS]
The system asks for the Fonts/ram: assign which is hardly can be set.
00258 : hollywood : FAIL = Open("Fonts/ram:symbpron.ttf.font",OLD) = [0x00000000] [2155269uS]
The system asks for the Fonts/ram: assign which is hardly can be set.
Re: Inbuilt fontengine problem with certain ttf files
Let me tell you that Hollywood is an amazingly flexible beast.
The above problem can be workaround like this:
Anyway a fix may be needed for that "Fonts/ram:symbpron.ttf.font"
The above problem can be workaround like this:
Code: Select all
SetFont ( DefineVirtualFileFromString(FileToString(file$) ,FilePart(file$)) , 36, {Engine = #FONTENGINE_INBUILT})
- airsoftsoftwair
- Posts: 5443
- Joined: Fri Feb 12, 2010 2:33 pm
- Location: Germany
- Contact:
Re: Inbuilt fontengine problem with certain ttf files
Yes, this is clearly a bug. I'll fix it. Thanks for reporting and your creative workaround
Re: Inbuilt fontengine problem with certain ttf files
Another problem is that if you want to open a corrupt font or not a ttf file with that method, it will not throw any error message while the SetFont ( file$, 36, {Engine = #FONTENGINE_INBUILT}) will fail if the font file is not correct.
No error.
Error: test.hws:3: This font type does not support anti-aliased output!
Code: Select all
SetFont (DefineVirtualFileFromString ( "a" , "a"), 24 ,{Engine = #FONTENGINE_INBUILT})
Print("Hello")
WaitLeftMouse
Code: Select all
SetFont (DefineVirtualFileFromString ( "a" , "a"), 24 ,{Engine = #FONTENGINE_INBUILT})
SetFontStyle(#ANTIALIAS)
Print("Hello")
WaitLeftMouse
- airsoftsoftwair
- Posts: 5443
- Joined: Fri Feb 12, 2010 2:33 pm
- Location: Germany
- Contact:
Re: Inbuilt fontengine problem with certain ttf files
Hmm, yes, looks suspicious as well.
- airsoftsoftwair
- Posts: 5443
- Joined: Fri Feb 12, 2010 2:33 pm
- Location: Germany
- Contact:
Re: Inbuilt fontengine problem with certain ttf files
Code: Select all
- Fix: Passing a *.ttf file using an absolute path to OpenFont() or SetFont() will no longer
result in Hollywood trying to access invalid paths in case OpenFont() or SetFont() can't
handle the file
- Fix: Loading very old *.ttf files which didn't contain a native Unicode cmap wasn't possible