View Issue Details [ Jump to Notes ] | [ Issue History ] [ Print ] | ||||||||
ID | Project | Category | View Status | Date Submitted | Last Update | ||||
---|---|---|---|---|---|---|---|---|---|
0006320 | Spring engine | General | public | 2019-10-11 19:23 | 2019-10-15 22:13 | ||||
Reporter | lhog | ||||||||
Assigned To | |||||||||
Priority | normal | Severity | minor | Reproducibility | always | ||||
Status | resolved | Resolution | no change required | ||||||
Product Version | 104.0 +git | ||||||||
Target Version | Fixed in Version | 104.0 +git | |||||||
Summary | 0006320: Font drawing on develop | ||||||||
Description | I'm trying to put some text on the screen on develop, but the text doesn't appear in the expected place. As far as I was able to understand from the engine code, the font handlers load default shader and should set right matrices for the shader. Still I got nothing. | ||||||||
Steps To Reproduce | local fontfile = LUAUI_DIRNAME .. "fonts/" .. Spring.GetConfigString("bar_font", "Poppins-Regular.otf") local vsx,vsy = Spring.GetViewGeometry() local fontfileScale = (0.5 + (vsx*vsy / 5700000)) local fontfileSize = 25 local fontfileOutlineSize = 6 local fontfileOutlineStrength = 1.4 local font = gl.LoadFont(fontfile, fontfileSize*fontfileScale, fontfileOutlineSize*fontfileScale, fontfileOutlineStrength) function widget:DrawScreen() local px, py, sx, sy, cs = 500, 500, 800, 800, 8 local tcol = WhiteStr font:Begin() font:Print(tcol.."leftleft", px, py, 50, "or") font:End() end | ||||||||
Tags | No tags attached. | ||||||||
Checked infolog.txt for Errors | Yes | ||||||||
Attached Files |
|
![]() |
|
Kloot (developer) 2019-10-11 22:18 |
1) update to 1965-g4c26c8e 2) px and py should not be given in pixels but in relative coords [0,1] |
lhog (reporter) 2019-10-12 00:25 |
Although the recent has made text to appear on the screen, it always appear in the left bottom part of the screen if px and py are within [0,1] range. If I go slightly over 1 or below 0 text just disappears, no actual movement of text is present. Also aren't normalized coords supposed to only be relevant with FONT_NORM option (which is not even exposed to Lua) font:Print(tcol.."leftleft", px, py, 0.05, "ocvB") P.S. I'm doing wrapper, so for me normalized or screen coordinates are just a small annoyance, but overall gamedevs will prefer to define their elements in pixels, as it's consistent with the rest of the emulated GL1.x functions. |
lhog (reporter) 2019-10-12 00:59 |
BTW, if called in DrawWorld font:Print() draws the text the same way as in DrawScreen* i.e. in screen space, rather than in the world space. If [0,1] coords in DrawScreen() are just small annoyance, then same [0,1] coords in DrawWorld() are totally user unfriendly (if it's not a bug). |
Kloot (developer) 2019-10-12 01:33 |
FONT_NORM normalizes the text *size*, not the coors. You indeed can't pass it to font:Print but that is easily fixed. "it always appear in the left bottom part of the screen if px and py are within [0,1] range" sounds like a wrong projection matrix, the default should always be equal to glOrtho(0, 1, 0, 1, -1, 1) with rescaled z if clipctrl is enabled. It seems LuaFonts is also missing WorldPrint, will be added later. |
lhog (reporter) 2019-10-12 22:00 |
>>>> the default should always be equal to glOrtho(0, 1, 0, 1, -1, 1) Am I supposed to construct Orthographic projection myself or did you mean it was an engine bug you were going to fix? |
![]() |
|||
Date Modified | Username | Field | Change |
---|---|---|---|
2019-10-11 19:23 | lhog | New Issue | |
2019-10-11 22:18 | Kloot | Note Added: 0020175 | |
2019-10-12 00:25 | lhog | Note Added: 0020177 | |
2019-10-12 00:59 | lhog | Note Added: 0020178 | |
2019-10-12 01:33 | Kloot | Note Added: 0020179 | |
2019-10-12 22:00 | lhog | Note Added: 0020181 | |
2019-10-15 22:13 | Kloot | Status | new => resolved |
2019-10-15 22:13 | Kloot | Resolution | open => no change required |
2019-10-15 22:13 | Kloot | Fixed in Version | => 104.0 +git |