mirror of https://github.com/Chlumsky/msdfgen.git
Improved error correction consistency for inverse Y-axis
This commit is contained in:
parent
cddd6c7308
commit
5ec8cef4c2
17
README.md
17
README.md
|
|
@ -113,25 +113,23 @@ in order to generate a distance field. Please note that all classes and function
|
|||
|
||||
Example:
|
||||
```c++
|
||||
#include "msdfgen.h"
|
||||
#include "msdfgen-ext.h"
|
||||
#include <msdfgen.h>
|
||||
#include <msdfgen-ext.h>
|
||||
|
||||
using namespace msdfgen;
|
||||
|
||||
int main() {
|
||||
FreetypeHandle *ft = initializeFreetype();
|
||||
if (ft) {
|
||||
FontHandle *font = loadFont(ft, "C:\\Windows\\Fonts\\arialbd.ttf");
|
||||
if (font) {
|
||||
if (FreetypeHandle *ft = initializeFreetype()) {
|
||||
if (FontHandle *font = loadFont(ft, "C:\\Windows\\Fonts\\arialbd.ttf")) {
|
||||
Shape shape;
|
||||
if (loadGlyph(shape, font, 'A')) {
|
||||
if (loadGlyph(shape, font, 'A', FONT_SCALING_EM_NORMALIZED)) {
|
||||
shape.normalize();
|
||||
// max. angle
|
||||
edgeColoringSimple(shape, 3.0);
|
||||
// output width, height
|
||||
Bitmap<float, 3> msdf(32, 32);
|
||||
// scale, translation
|
||||
SDFTransformation t(Projection(1.0, Vector2(4.0, 4.0)), Range(4.0));
|
||||
// scale, translation (in em's)
|
||||
SDFTransformation t(Projection(32.0, Vector2(0.125, 0.125)), Range(0.125));
|
||||
generateMSDF(msdf, shape, t);
|
||||
savePng(msdf, "output.png");
|
||||
}
|
||||
|
|
@ -141,7 +139,6 @@ int main() {
|
|||
}
|
||||
return 0;
|
||||
}
|
||||
|
||||
```
|
||||
|
||||
## Using a multi-channel distance field
|
||||
|
|
|
|||
|
|
@ -129,10 +129,10 @@ void MSDFErrorCorrection::protectCorners(const Shape &shape) {
|
|||
if (!(commonColor&(commonColor-1))) {
|
||||
// Find the four texels that envelop the corner and mark them as protected.
|
||||
Point2 p = transformation.project((*edge)->point(0));
|
||||
if (shape.inverseYAxis)
|
||||
p.y = stencil.height-p.y;
|
||||
int l = (int) floor(p.x-.5);
|
||||
int b = (int) floor(p.y-.5);
|
||||
if (shape.inverseYAxis)
|
||||
b = stencil.height-b-2;
|
||||
int r = l+1;
|
||||
int t = b+1;
|
||||
// Check that the positions are within bounds.
|
||||
|
|
|
|||
Loading…
Reference in New Issue