Commit Graph

586 Commits

Author SHA1 Message Date
Seebs 34cdd8729b Simplify Matrix math, use 6-value affine matrixes.
It turns out that affine matrices are much simpler than the 3x3 matrices
they imply, and we can use this to dramatically streamline some code.
For a test program, this was about a 50% gain in frame rate just from
the cost of the applyMatrixAndMask calls in imdraw, which were calling
matrix.Project() many times. Simplifying matrix.Project, alone, got a
nearly 50% frame rate boost!

Also modify pixelgl's SetMatrix to copy the six values of a 3x2
Affine into the corresponding locations of a 3x3 matrix.
2017-06-09 10:37:43 -05:00
Seebs 0358330d3b The initializer is surprisingly expensive.
Removing the call to Alpha(1) and replacing it with an inline definition
produces measurable improvements. Replacing each instance of ZV with
Vec{} further improves things. We keep an inline RGBA because there
are circumstances (mostly when using pictures) where we don't want to
have to set colors to get default behavior.

For a fairly triangle-heavy thing, this reduces time spent in SetLen
from something over 10% of execution time to around 2.5% of execution
time.
2017-06-07 21:25:54 -05:00
faiface 4b7553cd73 add maze generator community example 2017-05-30 13:30:09 +02:00
faiface 781c44f119 add text tutorial link to README 2017-05-30 02:53:24 +02:00
faiface c385b247b3 add 07 guide code 2017-05-30 02:52:33 +02:00
faiface 3706d040ce fix typo in doc 2017-05-28 18:50:56 +02:00
faiface 4749e3ee7e add Canvas.Frame method 2017-05-28 18:44:30 +02:00
faiface e06acda99b minorly simplify typewriter example 2017-05-28 00:06:29 +02:00
faiface 9e0c65d8dd remove profiling from typewriter example 2017-05-27 19:19:31 +02:00
faiface bbeab0aebf update 06 guide code 2017-05-26 21:26:06 +02:00
faiface d5f7088b7d update 05 guide code 2017-05-26 14:04:44 +02:00
faiface 9a401948ae remove accidentaly set theme 2017-05-25 22:51:17 +02:00
Michal Štrba abc99bdef8 Set theme jekyll-theme-time-machine 2017-05-25 20:03:02 +02:00
faiface debdbea894 limit ttf face glyphcacheentries size in typewriter example 2017-05-25 15:21:28 +02:00
faiface fc30e51016 update 04 guide code 2017-05-24 22:05:01 +02:00
faiface 90432a7857 update drawing features in README 2017-05-24 20:39:11 +02:00
faiface 51c32e407f update 03 guide code 2017-05-24 20:34:46 +02:00
faiface 659dc6fd5f update 02 guide code 2017-05-24 16:16:59 +02:00
faiface 50ba35d4cb add text input mention to README 2017-05-24 14:42:00 +02:00
faiface 9102076f1b add text drawing feature mention to README 2017-05-24 14:36:18 +02:00
faiface 2834411318 fix link in README 2017-05-24 14:34:49 +02:00
faiface 7fe45b5a88 replace xor screenshot with typewriter screenshot in README 2017-05-24 14:33:50 +02:00
faiface 51e1843f4b remove debug print from typewriter example 2017-05-24 02:21:25 +02:00
faiface eab5be6207 fiddle with constants in typewriter example 2017-05-24 00:01:33 +02:00
faiface 62fa797088 clarify typewriter doc 2017-05-23 22:06:43 +02:00
faiface 970faf0b63 clarify typewriter example readme 2017-05-23 20:40:45 +02:00
faiface 6c269fc8a5 add typewriter example 2017-05-23 20:07:23 +02:00
faiface a794d27972 clarify Rect doc 2017-05-21 19:38:21 +02:00
faiface bc08b65073 fix typo in ToRGBA doc 2017-05-21 19:33:01 +02:00
faiface bf6e20a04b fix Matrix doc 2017-05-21 19:30:29 +02:00
faiface ecdd8462bb replace complex128 Vec with a struct 2017-05-21 19:25:06 +02:00
faiface 3af9c2b20e remove Text.SetMatrix and Text.SetColorMask, add Text.Draw(target, matrix) and Text.DrawColorMask(target, matrix, mask) 2017-05-21 18:23:51 +02:00
faiface 3ae612a84d minor change 2017-05-21 18:23:20 +02:00
faiface 0ac5371d7e update Sprite's doc 2017-05-21 15:31:07 +02:00
faiface fccedc5a9d remove Text.Matrix() and Text.ColorMask() getters 2017-05-19 01:58:34 +02:00
faiface f7aac5ed09 change Text properties to fields 2017-05-18 23:59:42 +02:00
faiface 1d928485d6 change IMDraw properties to fields 2017-05-18 23:50:45 +02:00
faiface b832e83517 change Sprite.Draw and Canvas.Draw signatures (include Matrix) 2017-05-17 23:45:22 +02:00
faiface 53167788d6 accept zero target size in Rect.Resized 2017-05-15 01:15:16 +02:00
faiface 9d60c5fa32 improve Atlas creation time 2-3 times 2017-05-11 19:48:43 +02:00
faiface cce26f0a51 add Window.Repeat 2017-05-10 23:54:06 +02:00
faiface b15c10298e fix and simplify input handling in Window 2017-05-10 21:22:47 +02:00
faiface 3a14aae310 add Window.Typed 2017-05-10 21:10:10 +02:00
faiface e86120db20 change text.New to take an Atlas 2017-05-10 17:56:09 +02:00
faiface a510048648 add text package doc 2017-05-09 16:48:26 +02:00
faiface feb12a1c7e add Text.Matrix and Text.ColorMask 2017-05-09 16:46:11 +02:00
faiface 3ffbbb9cda add examples on LineHeight and TabWidth to Text doc 2017-05-09 16:40:44 +02:00
faiface 863e1e2f0c add note about not destroying face.Face to Atlas doc 2017-05-09 16:39:03 +02:00
faiface e3268db31e mention control characters in Text doc 2017-05-09 16:36:59 +02:00
faiface 7b10ad8497 remove accidental markdown formating from Text doc 2017-05-09 16:35:51 +02:00