aboutsummaryrefslogtreecommitdiff
path: root/src/render.rs
AgeCommit message (Collapse)Author
2019-12-25allow the spec names to be aligned center/rightDaniel Schadt
2019-12-25[render] factor out trait position calculationDaniel Schadt
Working with a "grid" system where we can specifiy the row and column number directly is way easier than all the x_slice/y_slice calculations that have been done in all the methods.
2019-12-25Merge branch 'user-options'Daniel Schadt
2019-12-16also use a mask for major trait imagesDaniel Schadt
While it doesn't look as ugly if you have a major trait with a thick black border, it still looks a bit off, especially since some of them do come with the proper alpha channel, while others don't. This fix uses the same mask for all major traits now as well, which should make them look more uniform and remove the thick black border.
2019-12-14add preliminary support for user configurationsDaniel Schadt
2019-12-14correctly render transparent backgroundsDaniel Schadt
Previously, some areas were "double exposed" to the transparency, making them a bit darker than the rest. The solution is to make sure that each part is drawn with the correct background color, and then only copying pixels instead of blending them to the final canvas.
2019-12-14replace magic constants in rendererDaniel Schadt
2019-12-12remove quick_errorDaniel Schadt
quick_error used the deprecated Error::cause interface, therefore we want to use our own error enums with proper methods.
2019-12-10avoid crashing with empty build templatesDaniel Schadt
This would occur if e.g. only the profession was given.
2019-12-08improve line renderingDaniel Schadt
This makes it so that instead of always going from the middle of the minor trait, they will now adjust based on where they are going to. This means if the chosen trait is the top one, the line will start a bit further to the top, which makes it better to look at.
2019-12-08formattingDaniel Schadt
2019-12-08center skills in output imageDaniel Schadt
2019-12-08use imageproc to draw the rectangleDaniel Schadt
Doesn't change the outcome but looks better to read
2019-12-08improve antialiasing of thick linesDaniel Schadt
As it turns out, the algorithm for drawing convex polygons is very bad at handling aliasing, and the line height looked off as well. The new algorithm fixes the issue by first drawing a horizontal filled rectangle, then rotating the rectangle by the required angle (using bicubic filtering) and finally overlaying the rectangle onto the target. This improves both the looks of the line height and the aliasing effects.
2019-12-08add support for brightness gradientsDaniel Schadt
2019-12-08fix background croppingDaniel Schadt
2019-12-07improve grayscale renderingDaniel Schadt
Apparently, turning the picture to grayscale also messes with the alpha channel. A lot of trait icons have a small transparent border though. Therefore, we want to preserve the alpha channel by copying it back from the original trait icon. This improves render quality and removes some of the artifacts.
2019-12-06initial commitDaniel Schadt