{"id":1185,"date":"2023-02-19T00:51:12","date_gmt":"2023-02-19T04:51:12","guid":{"rendered":"https:\/\/jausoft.com\/blog\/?p=1185"},"modified":"2023-02-19T00:58:14","modified_gmt":"2023-02-19T04:58:14","slug":"more-graph-type-rendering-updates","status":"publish","type":"post","link":"https:\/\/jausoft.com\/blog\/2023\/02\/19\/more-graph-type-rendering-updates\/","title":{"rendered":"More Graph Type Rendering Updates &#8230;"},"content":{"rendered":"<p>Another update in the <a href=\"https:\/\/jausoft.com\/blog\/tag\/graph_type_rendering\/\">Graph Type Rendering<\/a> Saga. I will use this entry to continuously add progress in the comment section. I will wrap up the remaining issues here and a <a href=\"https:\/\/jogamp.org\/cgit\/jogl.git\/commit\/?id=dd98cf0ae983429187256ab3236fa7dad1cd13d0\"><em>layout fix<\/em> for spacing<\/a>.<!--more--><\/p>\n<h3>Spacing Layout Issue<\/h3>\n<p>The &#8216;<em>space<\/em>&#8216; spacing fix allows to render the font <em>FreeSerif-Regular<\/em> properly as shown below. Cause was to erroneously use fixed IDs for space (and CR) which is resolved.<\/p>\n<p><a href=\"https:\/\/jausoft.com\/blog\/wp-content\/uploads\/2023\/02\/text-vbaa1-msaa0-FreeSerif_Regular-text1-S04-Z0000-snap14-1628x640-1.png\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-1186\" src=\"https:\/\/jausoft.com\/blog\/wp-content\/uploads\/2023\/02\/text-vbaa1-msaa0-FreeSerif_Regular-text1-S04-Z0000-snap14-1628x640-1.png\" alt=\"\" width=\"1628\" height=\"640\" srcset=\"https:\/\/jausoft.com\/blog\/wp-content\/uploads\/2023\/02\/text-vbaa1-msaa0-FreeSerif_Regular-text1-S04-Z0000-snap14-1628x640-1.png 1628w, https:\/\/jausoft.com\/blog\/wp-content\/uploads\/2023\/02\/text-vbaa1-msaa0-FreeSerif_Regular-text1-S04-Z0000-snap14-1628x640-1-300x118.png 300w, https:\/\/jausoft.com\/blog\/wp-content\/uploads\/2023\/02\/text-vbaa1-msaa0-FreeSerif_Regular-text1-S04-Z0000-snap14-1628x640-1-1024x403.png 1024w, https:\/\/jausoft.com\/blog\/wp-content\/uploads\/2023\/02\/text-vbaa1-msaa0-FreeSerif_Regular-text1-S04-Z0000-snap14-1628x640-1-768x302.png 768w, https:\/\/jausoft.com\/blog\/wp-content\/uploads\/2023\/02\/text-vbaa1-msaa0-FreeSerif_Regular-text1-S04-Z0000-snap14-1628x640-1-1536x604.png 1536w, https:\/\/jausoft.com\/blog\/wp-content\/uploads\/2023\/02\/text-vbaa1-msaa0-FreeSerif_Regular-text1-S04-Z0000-snap14-1628x640-1-1088x428.png 1088w\" sizes=\"auto, (max-width: 1628px) 100vw, 1628px\" \/><\/a><\/p>\n<h3>Graph Curve Renderer Overflow Issue<\/h3>\n<p>Further, the so called overflow issue occurs having <em>too much text<\/em>,<br \/>\noverflowing as in looping from the end text-block to the beginning with garbage.<\/p>\n<p>Root cause is our ES2 VBO GLRegion implementation using\u00a0 UNSIGNED_SHORT to store vertex-indices<br \/>\nand the triangulation code checked for integer maximums to produce a new data-set.<br \/>\nHence we hit the roof with a simple ~700 character text.<\/p>\n<p>For now I hacked using UNSIGNED_INT in the renderer, which is available for ES3 for <em>glDrawElements(..).<\/em><\/p>\n<p>I have to validate the alternative code path later for ES2 only devices and add UNSIGNED_INT usage for ES3+ including desktop.<\/p>\n<p>See the long text below, rendered via one GLRegion\u00a0 ..<\/p>\n<h3><a href=\"https:\/\/jausoft.com\/blog\/wp-content\/uploads\/2023\/02\/TestTextRendererNEWT00-snap0-msaa00-fontsz24.0-1280x720-vbaa-cols0004.png\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-1187\" src=\"https:\/\/jausoft.com\/blog\/wp-content\/uploads\/2023\/02\/TestTextRendererNEWT00-snap0-msaa00-fontsz24.0-1280x720-vbaa-cols0004.png\" alt=\"\" width=\"1280\" height=\"720\" srcset=\"https:\/\/jausoft.com\/blog\/wp-content\/uploads\/2023\/02\/TestTextRendererNEWT00-snap0-msaa00-fontsz24.0-1280x720-vbaa-cols0004.png 1280w, https:\/\/jausoft.com\/blog\/wp-content\/uploads\/2023\/02\/TestTextRendererNEWT00-snap0-msaa00-fontsz24.0-1280x720-vbaa-cols0004-300x169.png 300w, https:\/\/jausoft.com\/blog\/wp-content\/uploads\/2023\/02\/TestTextRendererNEWT00-snap0-msaa00-fontsz24.0-1280x720-vbaa-cols0004-1024x576.png 1024w, https:\/\/jausoft.com\/blog\/wp-content\/uploads\/2023\/02\/TestTextRendererNEWT00-snap0-msaa00-fontsz24.0-1280x720-vbaa-cols0004-768x432.png 768w, https:\/\/jausoft.com\/blog\/wp-content\/uploads\/2023\/02\/TestTextRendererNEWT00-snap0-msaa00-fontsz24.0-1280x720-vbaa-cols0004-1088x612.png 1088w\" sizes=\"auto, (max-width: 1280px) 100vw, 1280px\" \/><\/a><\/h3>\n<p>FreeMono-Regular is also readable now (glyph bugs listed below)<\/p>\n<p><a href=\"https:\/\/jausoft.com\/blog\/wp-content\/uploads\/2023\/02\/text-vbaa1-msaa0-FreeMono_Regular-text1-S04-Z0000-snap06-1628x640-1.png\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-1182\" src=\"https:\/\/jausoft.com\/blog\/wp-content\/uploads\/2023\/02\/text-vbaa1-msaa0-FreeMono_Regular-text1-S04-Z0000-snap06-1628x640-1.png\" alt=\"\" width=\"1628\" height=\"640\" srcset=\"https:\/\/jausoft.com\/blog\/wp-content\/uploads\/2023\/02\/text-vbaa1-msaa0-FreeMono_Regular-text1-S04-Z0000-snap06-1628x640-1.png 1628w, https:\/\/jausoft.com\/blog\/wp-content\/uploads\/2023\/02\/text-vbaa1-msaa0-FreeMono_Regular-text1-S04-Z0000-snap06-1628x640-1-300x118.png 300w, https:\/\/jausoft.com\/blog\/wp-content\/uploads\/2023\/02\/text-vbaa1-msaa0-FreeMono_Regular-text1-S04-Z0000-snap06-1628x640-1-1024x403.png 1024w, https:\/\/jausoft.com\/blog\/wp-content\/uploads\/2023\/02\/text-vbaa1-msaa0-FreeMono_Regular-text1-S04-Z0000-snap06-1628x640-1-768x302.png 768w, https:\/\/jausoft.com\/blog\/wp-content\/uploads\/2023\/02\/text-vbaa1-msaa0-FreeMono_Regular-text1-S04-Z0000-snap06-1628x640-1-1536x604.png 1536w, https:\/\/jausoft.com\/blog\/wp-content\/uploads\/2023\/02\/text-vbaa1-msaa0-FreeMono_Regular-text1-S04-Z0000-snap06-1628x640-1-1088x428.png 1088w\" sizes=\"auto, (max-width: 1628px) 100vw, 1628px\" \/><\/a><\/p>\n<h3>Wrap up of remaining Issues<\/h3>\n<p>The single character lists after the font-name denote a broken glyph rendering.<\/p>\n<p>FreeMono Bold<br \/>\n&#8211; q<br \/>\n&#8211; 4<\/p>\n<p>FreeMono Regular<br \/>\n&#8211; M<br \/>\n&#8211; \u00e9 (Qu\u00e9bec)<\/p>\n<p>FreeSan Regular<br \/>\n&#8211; 0<br \/>\n&#8211; 8 (upper loop)<\/p>\n<p>FreeSerif Bold Italic<br \/>\n&#8211; \u00e6 (Kv\u00e6ven)<\/p>\n<p>FreeSerif Italic<br \/>\n&#8211; m<br \/>\n&#8211; u<br \/>\n&#8211; k<\/p>\n<p>FreeSerif Regular<br \/>\n&#8211; &amp;<\/p>\n<p>FreeSan Bold: OK<br \/>\nFreeSerif Bold: OK<br \/>\nUbuntu Light: OK<br \/>\nUbuntu Light Italic: OK<br \/>\nUbuntu Regular: OK<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Another update in the Graph Type Rendering Saga. I will use this entry to continuously add progress in the comment section. I will wrap up the remaining issues here and a layout fix for spacing.<\/p>\n","protected":false},"author":2,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"inline_featured_image":false,"footnotes":""},"categories":[7,3,8],"tags":[9,13,22,71,16,44,33,31,17,46,68],"class_list":["post-1185","post","type-post","status-publish","format-standard","hentry","category-3d-opengl","category-computer-stuff","category-jogamp","tag-3d","tag-embedded-device","tag-fonts","tag-graph_type_rendering","tag-java","tag-jogamp","tag-linux","tag-mobile","tag-opengl","tag-openjdk","tag-type-rendering"],"_links":{"self":[{"href":"https:\/\/jausoft.com\/blog\/wp-json\/wp\/v2\/posts\/1185","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/jausoft.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/jausoft.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/jausoft.com\/blog\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/jausoft.com\/blog\/wp-json\/wp\/v2\/comments?post=1185"}],"version-history":[{"count":4,"href":"https:\/\/jausoft.com\/blog\/wp-json\/wp\/v2\/posts\/1185\/revisions"}],"predecessor-version":[{"id":1191,"href":"https:\/\/jausoft.com\/blog\/wp-json\/wp\/v2\/posts\/1185\/revisions\/1191"}],"wp:attachment":[{"href":"https:\/\/jausoft.com\/blog\/wp-json\/wp\/v2\/media?parent=1185"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/jausoft.com\/blog\/wp-json\/wp\/v2\/categories?post=1185"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/jausoft.com\/blog\/wp-json\/wp\/v2\/tags?post=1185"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}