Git Product home page Git Product logo

Comments (11)

Chlumsky avatar Chlumsky commented on July 2, 2024 1

@LautrecOfCarim This turned out to be a way more complex problem than it seemed inititally, since the contours are supplied in a completely randomized order, but I believe I solved it, so it should work now. It took me two or three afternoons, but it was a very interesting problem. See #6.

from msdfgen.

ryanbartley avatar ryanbartley commented on July 2, 2024

I also have seen this problem with Helvetica neue lt std on the lower-case and upper-case letter 'o'. It looks like it pulls out of the inner for loop and resets the state variable to NONE and when it resamples face->glyph->outline.tags[index], it comes back with QUADRATIC_POINT and on state==NONE it's REQUIRED(pointType == PATH_POINT). I'm looking deeper into it now.

from msdfgen.

ryanbartley avatar ryanbartley commented on July 2, 2024

I was able to get the 'o' to work after taking out the REQUIRED(pointType == PATH_POINT). Here's the result...
screen shot 2016-08-18 at 9 56 37 am
...I wonder if there's a case that isn't being accounted for, as in a glyph that has a different structure. I will continue researching it. Let me know if that makes sense. Here's a link to the font I'm using.

from msdfgen.

Chlumsky avatar Chlumsky commented on July 2, 2024

Are you using the latest version? There is no line containing REQUIRE(pointType == PATH_POINT) anymore.

from msdfgen.

chaoticbob avatar chaoticbob commented on July 2, 2024

@Chlumsky - Did some digging on this with the latest version of the code. Looks like the letter 'o' in some fonts (e.g. Neue Helvetica Pro 55 Roman has no PATH_POINT in the first contour in TTF format. So eventually the REQUIRE macro forces it out of the loop with a failure. But if one comments out the REQUIRED macro, an infinite loop occurs due to no exit of the loop.

from msdfgen.

ryanbartley avatar ryanbartley commented on July 2, 2024

@Chlumsky, I updated and have gotten the 'o' in Helvetica Neue Bold to work, thanks for that. I'm also seeing the same thing as @chaoticbob.

from msdfgen.

chaoticbob avatar chaoticbob commented on July 2, 2024

Here's my fix for loadGlyph wrt the issue I mentioned above:

            switch (state) {
                case NONE:
                    if (pointType == PATH_POINT) {
                        firstPathPoint = index;
                        startPoint = point;
                        state = PATH_POINT;
                    } else if((face->glyph->outline.tags[first] == FT_Curve_Tag_Conic) && (face->glyph->outline.tags[last] == FT_Curve_Tag_Conic)) {
                        firstPathPoint = index;
                        Point2 firstPoint( face->glyph->outline.points[first].x/64., face->glyph->outline.points[first].y/64.);
                        Point2 lastPoint( face->glyph->outline.points[last].x/64., face->glyph->outline.points[last].y/64.);
                        startPoint = .5*(firstPoint + lastPoint);
                        controlPoint[0] = point;                        
                        state = QUADRATIC_POINT;
                    }
                    break;

I found this discussion to be helpful for contours that are all quadratic points, aka uses the all quadratic shorthand.

from msdfgen.

behdad avatar behdad commented on July 2, 2024

You should be using FT_Outline_Decompose() instead of manually decoding the outline.

from msdfgen.

vkalpias avatar vkalpias commented on July 2, 2024

This font also throws that Failed to load glyph from font file error https://fonts.google.com/specimen/Londrina+Solid on some characters for example character a (0x61)

from msdfgen.

Chlumsky avatar Chlumsky commented on July 2, 2024

Alright, I changed it to FT_Outline_Decompose() as per @behdad's comment. Everything should be fine now.

from msdfgen.

LautrecOfCarim avatar LautrecOfCarim commented on July 2, 2024

I'm getting similar problems with some characters. The '$' glyph from Crimson-Italic has overlapping contours and doesn't render properly.

crimson

from msdfgen.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.