{"action":"created","issue":{"url":"https://api.github.com/repos/LayoutFarm/Typography/issues/19","repository_url":"https://api.github.com/repos/LayoutFarm/Typography","labels_url":"https://api.github.com/repos/LayoutFarm/Typography/issues/19/labels{/name}","comments_url":"https://api.github.com/repos/LayoutFarm/Typography/issues/19/comments","events_url":"https://api.github.com/repos/LayoutFarm/Typography/issues/19/events","html_url":"https://github.com/LayoutFarm/Typography/issues/19","id":208710604,"number":19,"title":"GlyphPathBuilder","user":{"login":"prepare","id":7447159,"avatar_url":"https://avatars2.githubusercontent.com/u/7447159?v=3","gravatar_id":"","url":"https://api.github.com/users/prepare","html_url":"https://github.com/prepare","followers_url":"https://api.github.com/users/prepare/followers","following_url":"https://api.github.com/users/prepare/following{/other_user}","gists_url":"https://api.github.com/users/prepare/gists{/gist_id}","starred_url":"https://api.github.com/users/prepare/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/prepare/subscriptions","organizations_url":"https://api.github.com/users/prepare/orgs","repos_url":"https://api.github.com/users/prepare/repos","events_url":"https://api.github.com/users/prepare/events{/privacy}","received_events_url":"https://api.github.com/users/prepare/received_events","type":"User","site_admin":false},"labels":[],"state":"open","locked":false,"assignee":null,"assignees":[],"milestone":null,"comments":6,"created_at":"2017-02-19T11:09:18Z","updated_at":"2017-03-07T03:11:50Z","closed_at":null,"body":""},"comment":{"url":"https://api.github.com/repos/LayoutFarm/Typography/issues/comments/284608665","html_url":"https://github.com/LayoutFarm/Typography/issues/19#issuecomment-284608665","issue_url":"https://api.github.com/repos/LayoutFarm/Typography/issues/19","id":284608665,"user":{"login":"zwcloud","id":6965758,"avatar_url":"https://avatars3.githubusercontent.com/u/6965758?v=3","gravatar_id":"","url":"https://api.github.com/users/zwcloud","html_url":"https://github.com/zwcloud","followers_url":"https://api.github.com/users/zwcloud/followers","following_url":"https://api.github.com/users/zwcloud/following{/other_user}","gists_url":"https://api.github.com/users/zwcloud/gists{/gist_id}","starred_url":"https://api.github.com/users/zwcloud/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/zwcloud/subscriptions","organizations_url":"https://api.github.com/users/zwcloud/orgs","repos_url":"https://api.github.com/users/zwcloud/repos","events_url":"https://api.github.com/users/zwcloud/events{/privacy}","received_events_url":"https://api.github.com/users/zwcloud/received_events","type":"User","site_admin":false},"created_at":"2017-03-07T03:11:50Z","updated_at":"2017-03-07T03:11:50Z","body":"OK... I think I finally understand how [`DevGdiTextPrinter.DrawString`](https://github.com/LayoutFarm/Typography/blob/411c0b922d389e0c8e72a8305df3e243606ddf0c/Demo/Windows/GdiPlusSample.WinForms/GdiPlus/DevGdiTextPrinter.cs#L91) works now.\r\n\r\n1. Set some properties for drawing context (GDI) and glyph layout.\r\n2. Get/create typeface and glyph builder.\r\n3. Layout glyphs: get layouted glyphs (`List<GlyphPlan>`).\r\n4. For each `GlyphPlan` in the layouted glyphs,\r\n    I. Prepare glyph data for GDI path generating later:\r\n       (a) extract glyph points and contours from the typeface\r\n       (b) adjust glyph points according to some settings and properties\r\n    II. Set transformation matrix M (scale and offset) for the generated path.\r\n    III. Generate GDI path via `GlyphPathBuilder.ReadShapes` for this single glyph.\r\n    IV.  Transform the path by the matrix M.\r\n    V. Render the path with GDI methods.\r\n\r\nAm I right?"}}
{"actor":{"display_login":"zwcloud"}}