Note that this is a theoretical bug - I do not have a keyboard I can
reproduce this. However, if I remove a key from genkeys.go, pressing
that key will, after this change, still emit its character to
AppendInputChars.
Thus, this better supports "odd" international keyboards.
Also, make the updateInput calls more consistent - always one call per
event. This should change no behavior, but should be more debuggable.
Closes#2684
After we found a correct definition of the term 'dot', BoundString seems
less useful than expected. In order to adjust the position of a text, we
should use a face's Metrics and a string's advance (font.MeasureString).
For centering, using bounds is slightly inaccurate as the bounds
don't consider left/right-side bearings. Also, using bounds for
heights is slightly inaccurate as baselines for texts on the same
line would not be the same.
Updates #2143
We found clearIfOverlapped could be a heavy task in some actual applications.
Instead of clearing existing data in the pixels records, add a new record
with a nil slice which indicates a cleared region.
Negative values should not disappear. For example, if _HIWORD returns 63000,
then _GET_Y_LPARAM should return -2536, but now it returns 63000.
This fixes that.
In DirectX 11, if a device and a factory are independently created,
some functions like MakeWindowAssociation doe't work well.
This change fixes the issue by getting a factory from a device and
using it.
Closes#2661
This change adds a new compiler directive 'kage:unit' to Kage. This
takes one of these two values: 'pixel' and 'texel'. The default value
is 'texel'.
With the pixel-unit mode, all the built-in functions treats pixels
instead of texels, and the texCoord argument of Fragment is in pixels.
This simplifies shader programs as programs no longer have the notion
of texels.
With the texel-unit mode, the behavior is the same as the current
behavior.
Closes#1431