text: [{"Owner":"grayger","Date":"2016-12-23T09:17:14Z","Content":"_lt_div class_eq__qt_mages_qt__gt_\n\t\t\t\n_lt_p_gt_\n\tI am experienced with Phaser_co_ but new to Babylonjs. To make a game_co_ I am investigating 2d UI library that can work with BJS.\n_lt_/p_gt_\n\n_lt_p_gt_\n\tI can_t_t find any information about texture atlas in Canvas2D and CastorGUI. \n_lt_/p_gt_\n\n_lt_p_gt_\n\tDoes either of them support texture atlas?\n_lt_/p_gt_\n\n_lt_p_gt_\n\t \n_lt_/p_gt_\n\n_lt_p_gt_\n\t \n_lt_/p_gt_\n\n_lt_p_gt_\n\t \n_lt_/p_gt_\n\n\n\t\t\t\n\t\t_lt_/div_gt_\n\n\t\t_lt_div class_eq__qt_ipsI_qt__gt__lt_/div_gt__lt_/div_gt_"},{"Owner":"Wingnut","Date":"2016-12-24T14:46:10Z","Content":"_lt_div class_eq__qt_mages_qt__gt_\n\t\t\t\n_lt_p_gt_\n\tHi _lt_a contenteditable_eq__qt_false_qt_ data-ipshover_eq__qt__qt_ data-ipshover-target_eq__qt_http_dd_//www.html5gamedevs.com/profile/16259-grayger/?do_eq_hovercard_qt_ data-mentionid_eq__qt_16259_qt_ href_eq__qt_http_dd_//www.html5gamedevs.com/profile/16259-grayger/_qt_ rel_eq__qt__qt__gt_@grayger_lt_/a_gt__co_ welcome to forum.  Sorry for slow replies.\n_lt_/p_gt_\n\n_lt_p_gt_\n\tI have low experience_co_ but_co_ I think_co_ no. \n_lt_/p_gt_\n\n_lt_p_gt_\n\tSprite atlas_co_ no problems.  But I think you are talking about ALL the textures used on a dialog panel itself_co_ or many dialog panels... being contained on a single texture file.\n_lt_/p_gt_\n\n_lt_p_gt_\n\tI have never seen this done_co_ here... not with any of the BJS-related 2D GUI systems to date.\n_lt_/p_gt_\n\n_lt_p_gt_\n\tI could EASILY be wrong_co_ though.  And I hope I am on-subject.  _lt_img alt_eq__qt__dd_)_qt_ data-emoticon_eq__qt__qt_ height_eq__qt_20_qt_ src_eq__qt_http_dd_//www.html5gamedevs.com/uploads/emoticons/default_smile.png_qt_ srcset_eq__qt_http_dd_//www.html5gamedevs.com/uploads/emoticons/smile@2x.png 2x_qt_ title_eq__qt__dd_)_qt_ width_eq__qt_20_qt_ /_gt__lt_/p_gt_\n\n_lt_p_gt_\n\tBut_co_ I am going to ping the authors of _qt_the big 4_qt_ GUI systems... to see if they have comments.\n_lt_/p_gt_\n\n_lt_p_gt_\n\tCastorGUI - _lt_span_gt__lt_a contenteditable_eq__qt_false_qt_ data-ipshover_eq__qt__qt_ data-ipshover-target_eq__qt_http_dd_//www.html5gamedevs.com/profile/5292-dad72/?do_eq_hovercard_qt_ data-mentionid_eq__qt_5292_qt_ href_eq__qt_http_dd_//www.html5gamedevs.com/profile/5292-dad72/_qt_ rel_eq__qt__qt__gt_@Dad72_lt_/a_gt__lt_br /_gt_\n\tbGUI - _lt_a contenteditable_eq__qt_false_qt_ data-ipshover_eq__qt__qt_ data-ipshover-target_eq__qt_http_dd_//www.html5gamedevs.com/profile/5218-temechon/?do_eq_hovercard_qt_ data-mentionid_eq__qt_5218_qt_ href_eq__qt_http_dd_//www.html5gamedevs.com/profile/5218-temechon/_qt_ rel_eq__qt__qt__gt_@Temechon_lt_/a_gt__lt_/span_gt__lt_br /_gt_\n\tDialog - _lt_a contenteditable_eq__qt_false_qt_ data-ipshover_eq__qt__qt_ data-ipshover-target_eq__qt_http_dd_//www.html5gamedevs.com/profile/8492-jcpalmer/?do_eq_hovercard_qt_ data-mentionid_eq__qt_8492_qt_ href_eq__qt_http_dd_//www.html5gamedevs.com/profile/8492-jcpalmer/_qt_ rel_eq__qt__qt__gt_@JCPalmer_lt_/a_gt__lt_br /_gt_\n\tCanvas2D - _lt_a contenteditable_eq__qt_false_qt_ data-ipshover_eq__qt__qt_ data-ipshover-target_eq__qt_http_dd_//www.html5gamedevs.com/profile/18979-nockawa/?do_eq_hovercard_qt_ data-mentionid_eq__qt_18979_qt_ href_eq__qt_http_dd_//www.html5gamedevs.com/profile/18979-nockawa/_qt_ rel_eq__qt__qt__gt_@Nockawa_lt_/a_gt_\n_lt_/p_gt_\n\n_lt_p_gt_\n\tHow_t_s that for a ping festival?  Hey guys_co_ sorry for the power-ping_co_ but I wanted to make sure I was not giving Grayger bad/incorrect information.\n_lt_/p_gt_\n\n_lt_p_gt_\n\tCanvas2D is the most powerful and newest_co_ but only its underbelly is operational.  Its high-level GUI library is still in-dev_co_ I believe. \n_lt_/p_gt_\n\n_lt_p_gt_\n\tLet_t_s watch the comments_co_ Grayger... and see how much the guys hate me for the power-pinging.  _lt_img alt_eq__qt__dd_)_qt_ data-emoticon_eq__qt__qt_ height_eq__qt_20_qt_ src_eq__qt_http_dd_//www.html5gamedevs.com/uploads/emoticons/default_smile.png_qt_ srcset_eq__qt_http_dd_//www.html5gamedevs.com/uploads/emoticons/smile@2x.png 2x_qt_ title_eq__qt__dd_)_qt_ width_eq__qt_20_qt_ /_gt__lt_/p_gt_\n\n\n\t\t\t\n\t\t_lt_/div_gt_\n\n\t\t_lt_div class_eq__qt_ipsI_qt__gt__lt_/div_gt__lt_/div_gt_"},{"Owner":"Dad72","Date":"2016-12-24T15:53:27Z","Content":"_lt_div class_eq__qt_mages_qt__gt_\n\t\t\t\n_lt_p_gt_\n\tCastorGUI does not support texture atlases.\n_lt_/p_gt_\n\n_lt_p_gt_\n\tDo you have an example of what you want to do? I_t_m not sure what texture atlas is? Is this a list of all the textures? For that it is enough to create a function with an array that recovers all the textures and another function that recovers them.\n_lt_/p_gt_\n\n\n\t\t\t\n\t\t_lt_/div_gt_\n\n\t\t_lt_div class_eq__qt_ipsI_qt__gt__lt_/div_gt__lt_/div_gt_"},{"Owner":"grayger","Date":"2016-12-25T11:46:55Z","Content":"_lt_div class_eq__qt_mages_qt__gt_\n\t\t\t\n_lt_blockquote class_eq__qt_ipsQuote_qt_ data-ipsquote_eq__qt__qt_ data-ipsquote-contentapp_eq__qt_forums_qt_ data-ipsquote-contentclass_eq__qt_forums_Topic_qt_ data-ipsquote-contentcommentid_eq__qt_156606_qt_ data-ipsquote-contentid_eq__qt_27259_qt_ data-ipsquote-contenttype_eq__qt_forums_qt_ data-ipsquote-timestamp_eq__qt_1482594807_qt_ data-ipsquote-userid_eq__qt_5292_qt_ data-ipsquote-username_eq__qt_Dad72_qt__gt_\n\t_lt_div class_eq__qt_ipsQuote_citation_qt__gt_\n\t\t19 hours ago_co_ Dad72 said_dd_\n\t_lt_/div_gt_\n\n\t_lt_div class_eq__qt_ipsQuote_contents_qt__gt_\n\t\t_lt_p_gt_\n\t\t\tCastorGUI does not support texture atlases.\n\t\t_lt_/p_gt_\n\n\t\t_lt_p_gt_\n\t\t\tDo you have an example of what you want to do? I_t_m not sure what texture atlas is? Is this a list of all the textures? For that it is enough to create a function with an array that recovers all the textures and another function that recovers them.\n\t\t_lt_/p_gt_\n\t_lt_/div_gt_\n_lt_/blockquote_gt_\n\n_lt_p_gt_\n\tIt is a texture made up of multiple textures. _lt_a href_eq__qt_https_dd_//en.wikipedia.org/wiki/Texture_atlas_qt_ rel_eq__qt_external nofollow_qt__gt_https_dd_//en.wikipedia.org/wiki/Texture_atlas_lt_/a_gt_\n_lt_/p_gt_\n\n_lt_p_gt_\n\tThanks for the info. I need to investigate further. \n_lt_/p_gt_\n\n\n\t\t\t\n\t\t_lt_/div_gt_\n\n\t\t_lt_div class_eq__qt_ipsI_qt__gt__lt_/div_gt__lt_/div_gt_"},{"Owner":"Wingnut","Date":"2016-12-25T15:29:49Z","Content":"_lt_div class_eq__qt_mages_qt__gt_\n\t\t\t\n_lt_p_gt_\n\t_lt_a href_eq__qt_http_dd_//www.gameart2d.com/uploads/3/0/9/1/30917885/469557_orig.jpg_qt_ rel_eq__qt_external nofollow_qt__gt_http_dd_//www.gameart2d.com/uploads/3/0/9/1/30917885/469557_orig.jpg_lt_/a_gt_\n_lt_/p_gt_\n\n_lt_p_gt_\n\t_lt_img alt_eq__qt__dd_)_qt_ data-emoticon_eq__qt__qt_ height_eq__qt_20_qt_ src_eq__qt_http_dd_//www.html5gamedevs.com/uploads/emoticons/default_smile.png_qt_ srcset_eq__qt_http_dd_//www.html5gamedevs.com/uploads/emoticons/smile@2x.png 2x_qt_ title_eq__qt__dd_)_qt_ width_eq__qt_20_qt_ /_gt__lt_/p_gt_\n\n_lt_p_gt_\n\tCustom Shape2d_co_ part of Canvas2D system... not a problem.  Can do.  _lt_img alt_eq__qt__dd_)_qt_ data-emoticon_eq__qt__qt_ height_eq__qt_20_qt_ src_eq__qt_http_dd_//www.html5gamedevs.com/uploads/emoticons/default_smile.png_qt_ srcset_eq__qt_http_dd_//www.html5gamedevs.com/uploads/emoticons/smile@2x.png 2x_qt_ title_eq__qt__dd_)_qt_ width_eq__qt_20_qt_ /_gt_  Just don_t_t ask for drag-resizing on them.  heh\n_lt_/p_gt_\n\n_lt_p_gt_\n\tBasic test of multiple sprite2d using common atlas...  _lt_a href_eq__qt_http_dd_//www.babylonjs-playground.com/#1PO0WU%2330_qt_ rel_eq__qt_external nofollow_qt__gt_http_dd_//www.babylonjs-playground.com/#1PO0WU#30_lt_/a_gt_\n_lt_/p_gt_\n\n_lt_p_gt_\n\tLooking good.  Sprite 1 is entire atlas.  Sprites 2-4 are various pieces from the atlas.  FUN!\n_lt_/p_gt_\n\n\n\t\t\t\n\t\t_lt_/div_gt_\n\n\t\t_lt_div class_eq__qt_ipsI_qt__gt__lt_/div_gt__lt_/div_gt_"},{"Owner":"Nockawa","Date":"2016-12-25T18:20:12Z","Content":"_lt_div class_eq__qt_mages_qt__gt_\n\t\t\t\n_lt_blockquote class_eq__qt_ipsQuote_qt_ data-ipsquote_eq__qt__qt_ data-ipsquote-contentapp_eq__qt_forums_qt_ data-ipsquote-contentclass_eq__qt_forums_Topic_qt_ data-ipsquote-contentcommentid_eq__qt_156484_qt_ data-ipsquote-contentid_eq__qt_27259_qt_ data-ipsquote-contenttype_eq__qt_forums_qt_ data-ipsquote-timestamp_eq__qt_1482484634_qt_ data-ipsquote-userid_eq__qt_16259_qt_ data-ipsquote-username_eq__qt_grayger_qt__gt_\n\t_lt_div class_eq__qt_ipsQuote_citation_qt__gt_\n\t\tOn 12/23/2016 at 10_dd_17 AM_co_ grayger said_dd_\n\t_lt_/div_gt_\n\n\t_lt_div class_eq__qt_ipsQuote_contents_qt__gt_\n\t\t_lt_p_gt_\n\t\t\tI am experienced with Phaser_co_ but new to Babylonjs. To make a game_co_ I am investigating 2d UI library that can work with BJS.\n\t\t_lt_/p_gt_\n\n\t\t_lt_p_gt_\n\t\t\tI can_t_t find any information about texture atlas in Canvas2D and CastorGUI. \n\t\t_lt_/p_gt_\n\n\t\t_lt_p_gt_\n\t\t\tDoes either of them support texture atlas?\n\t\t_lt_/p_gt_\n\t_lt_/div_gt_\n_lt_/blockquote_gt_\n\n_lt_p_gt_\n\t \n_lt_/p_gt_\n\n_lt_p_gt_\n\tHi_co_ welcome to BJS community_co_\n_lt_/p_gt_\n\n_lt_p_gt_\n\tSupporting this tools file format is on my todo list for Canvas2D _lt_a href_eq__qt_https_dd_//www.codeandweb.com/texturepacker_qt_ rel_eq__qt_external nofollow_qt__gt_https_dd_//www.codeandweb.com/texturepacker_lt_/a_gt_ is that what you_t_re looking for?\n_lt_/p_gt_\n\n_lt_p_gt_\n\tIf you need it I may put it on the top of my TODO and start coding the feature first week of january_co_ I won_t_t be a big feature to code because _lt_a contenteditable_eq__qt_false_qt_ data-ipshover_eq__qt__qt_ data-ipshover-target_eq__qt_http_dd_//www.html5gamedevs.com/profile/17014-masterk/?do_eq_hovercard_qt_ data-mentionid_eq__qt_17014_qt_ href_eq__qt_http_dd_//www.html5gamedevs.com/profile/17014-masterk/_qt_ rel_eq__qt__qt__gt_@MasterK_lt_/a_gt_ already provided me pieces of JS code related to this_co_ but I would have to convert it to TypeScript and maybe change the architecture.\n_lt_/p_gt_\n\n_lt_p_gt_\n\tBottom line_dd_ if you badly need it_co_ I can work on it.\n_lt_/p_gt_\n\n\n\t\t\t\n\t\t_lt_/div_gt_\n\n\t\t_lt_div class_eq__qt_ipsI_qt__gt__lt_/div_gt__lt_/div_gt_"},{"Owner":"BitOfGold","Date":"2016-12-25T18:31:32Z","Content":"_lt_div class_eq__qt_mages_qt__gt_\n\t\t\t_lt_p_gt_\n\t_lt_a contenteditable_eq__qt_false_qt_ data-ipshover_eq__qt__qt_ data-ipshover-target_eq__qt_http_dd_//www.html5gamedevs.com/profile/18979-nockawa/?do_eq_hovercard_qt_ data-mentionid_eq__qt_18979_qt_ href_eq__qt_http_dd_//www.html5gamedevs.com/profile/18979-nockawa/_qt_ rel_eq__qt__qt__gt_@Nockawa_lt_/a_gt__dd__lt_br /_gt_\n\tI think supporting texturepacker is a great idea._lt_br /_gt_\n\tOn my personal _qt_wishlist_qt_ there is an item_dd_ 9-sliced gui background. (This needs a texture atlas too_co_ repeating background_co_ 4 corners_co_ 4 sides)_lt_br /_gt__lt_br /_gt_\n\tAnd thanks for Canvas2D!\n_lt_/p_gt_\n\n\t\t\t\n\t\t_lt_/div_gt_\n\n\t\t_lt_div class_eq__qt_ipsI_qt__gt__lt_/div_gt__lt_/div_gt_"},{"Owner":"jpdev","Date":"2016-12-25T18:42:52Z","Content":"_lt_div class_eq__qt_mages_qt__gt_\n\t\t\t\n_lt_p_gt_\n\tThe 9patch format (which I think was developed for android_co_ but is used by other libs like libgdx too) would be a great addition to canvas2d.\n_lt_/p_gt_\n\n_lt_p_gt_\n\tBitOfGold already somewhat explained it.\n_lt_/p_gt_\n\n_lt_p_gt_\n\tThe basic Idea is_co_ you have a picture of a button_co_ and around it is a 1px border that defines which parts of the button will be streched and which parts won_t_t.\n_lt_/p_gt_\n\n_lt_p_gt_\n\tTo actually render the button the outer 1px border has to be analyzed_co_ then the button has to be split up into the four corners (those are rendered not stretched at all) and a center piece (stretched in all directions) and 4 sides (stretched in one direction).\n_lt_/p_gt_\n\n_lt_p_gt_\n\t_lt_a href_eq__qt_https_dd_//github.com/chrislondon/9-Patch-Image-for-Websites/wiki/What-Are-9-Patch-Images_qt_ rel_eq__qt_external nofollow_qt__gt_https_dd_//github.com/chrislondon/9-Patch-Image-for-Websites/wiki/What-Are-9-Patch-Images_lt_/a_gt_\n_lt_/p_gt_\n\n_lt_p_gt_\n\tYou can make really nice scaling buttons with this.\n_lt_/p_gt_\n\n\n\t\t\t\n\t\t_lt_/div_gt_\n\n\t\t_lt_div class_eq__qt_ipsI_qt__gt__lt_/div_gt__lt_/div_gt_"},{"Owner":"Nabroski","Date":"2016-12-25T19:38:52Z","Content":"_lt_div class_eq__qt_mages_qt__gt_\n\t\t\t\n_lt_p_gt_\n\t \n_lt_/p_gt_\n\n_lt_p_gt_\n\t_lt_a contenteditable_eq__qt_false_qt_ data-ipshover_eq__qt__qt_ data-ipshover-target_eq__qt_http_dd_//www.html5gamedevs.com/profile/12925-fenomas/?do_eq_hovercard_qt_ data-mentionid_eq__qt_12925_qt_ href_eq__qt_http_dd_//www.html5gamedevs.com/profile/12925-fenomas/_qt_ rel_eq__qt__qt__gt_@fenomas_lt_/a_gt_\n_lt_/p_gt_\n\n_lt_p_gt_\n\t_lt_a href_eq__qt_https_dd_//github.com/andyhall/babylon-atlas_qt_ rel_eq__qt_external nofollow_qt__gt_https_dd_//github.com/andyhall/babylon-atlas_lt_/a_gt_\n_lt_/p_gt_\n\n\n\t\t\t\n\t\t_lt_/div_gt_\n\n\t\t_lt_div class_eq__qt_ipsI_qt__gt__lt_/div_gt__lt_/div_gt_"},{"Owner":"Nockawa","Date":"2016-12-25T20:45:35Z","Content":"_lt_div class_eq__qt_mages_qt__gt_\n\t\t\t\n_lt_p_gt_\n\tThe Scale9 Sprite is also on the top of this list_co_ also from a suggestion of _lt_a contenteditable_eq__qt_false_qt_ data-ipshover_eq__qt__qt_ data-ipshover-target_eq__qt_http_dd_//www.html5gamedevs.com/profile/17014-masterk/?do_eq_hovercard_qt_ data-mentionid_eq__qt_17014_qt_ href_eq__qt_http_dd_//www.html5gamedevs.com/profile/17014-masterk/_qt_ rel_eq__qt__qt__gt_@MasterK_lt_/a_gt_. It would be rendered in two Triangles_co_ very fast.\n_lt_/p_gt_\n\n_lt_p_gt_\n\tIt shouldn_t_t be long to develop_co_ I just wonder if the current Sprite2D class is the best one to include this feature.\n_lt_/p_gt_\n\n\n\t\t\t\n\t\t_lt_/div_gt_\n\n\t\t_lt_div class_eq__qt_ipsI_qt__gt__lt_/div_gt__lt_/div_gt_"},{"Owner":"MasterK","Date":"2016-12-26T03:14:40Z","Content":"_lt_div class_eq__qt_mages_qt__gt_\n\t\t\t_lt_p_gt_\n\tyeah. I_t_m here. And bmfont. That_t_s 2d common things. I told you.\n_lt_/p_gt_\n\n\t\t\t\n\t\t_lt_/div_gt_\n\n\t\t_lt_div class_eq__qt_ipsI_qt__gt__lt_/div_gt__lt_/div_gt_"},{"Owner":"Pryme8","Date":"2016-12-26T15:37:57Z","Content":"_lt_div class_eq__qt_mages_qt__gt_\n\t\t\t_lt_p_gt_\n\tPieUi can do this already.\n_lt_/p_gt_\n\n\t\t\t\n\t\t_lt_/div_gt_\n\n\t\t_lt_div class_eq__qt_ipsI_qt__gt__lt_/div_gt__lt_/div_gt_"},{"Owner":"grayger","Date":"2016-12-26T17:16:38Z","Content":"_lt_div class_eq__qt_mages_qt__gt_\n\t\t\t\n_lt_blockquote class_eq__qt_ipsQuote_qt_ data-ipsquote_eq__qt__qt_ data-ipsquote-contentapp_eq__qt_forums_qt_ data-ipsquote-contentclass_eq__qt_forums_Topic_qt_ data-ipsquote-contentcommentid_eq__qt_156730_qt_ data-ipsquote-contentid_eq__qt_27259_qt_ data-ipsquote-contenttype_eq__qt_forums_qt_ data-ipsquote-timestamp_eq__qt_1482766677_qt_ data-ipsquote-userid_eq__qt_19199_qt_ data-ipsquote-username_eq__qt_Pryme8_qt__gt_\n\t_lt_div class_eq__qt_ipsQuote_citation_qt__gt_\n\t\t1 hour ago_co_ Pryme8 said_dd_\n\t_lt_/div_gt_\n\n\t_lt_div class_eq__qt_ipsQuote_contents_qt__gt_\n\t\t_lt_p_gt_\n\t\t\tPieUi can do this already.\n\t\t_lt_/p_gt_\n\t_lt_/div_gt_\n_lt_/blockquote_gt_\n\n_lt_p_gt_\n\tWhat is PieUI? Just googled it but couldn_t_t find it.\n_lt_/p_gt_\n\n\n\t\t\t\n\t\t_lt_/div_gt_\n\n\t\t_lt_div class_eq__qt_ipsI_qt__gt__lt_/div_gt__lt_/div_gt_"},{"Owner":"grayger","Date":"2016-12-26T17:21:19Z","Content":"_lt_div class_eq__qt_mages_qt__gt_\n\t\t\t\n_lt_blockquote class_eq__qt_ipsQuote_qt_ data-ipsquote_eq__qt__qt_ data-ipsquote-contentapp_eq__qt_forums_qt_ data-ipsquote-contentclass_eq__qt_forums_Topic_qt_ data-ipsquote-contentcommentid_eq__qt_156673_qt_ data-ipsquote-contentid_eq__qt_27259_qt_ data-ipsquote-contenttype_eq__qt_forums_qt_ data-ipsquote-timestamp_eq__qt_1482690012_qt_ data-ipsquote-userid_eq__qt_18979_qt_ data-ipsquote-username_eq__qt_Nockawa_qt__gt_\n\t_lt_div class_eq__qt_ipsQuote_citation_qt__gt_\n\t\t22 hours ago_co_ Nockawa said_dd_\n\t_lt_/div_gt_\n\n\t_lt_div class_eq__qt_ipsQuote_contents_qt__gt_\n\t\t_lt_p_gt_\n\t\t\tBottom line_dd_ if you badly need it_co_ I can work on it.\n\t\t_lt_/p_gt_\n\t_lt_/div_gt_\n_lt_/blockquote_gt_\n\n_lt_p_gt_\n\tI can live without it for the time being. Thanks for your support @nockawa.\n_lt_/p_gt_\n\n_lt_p_gt_\n\tMaybe you are the developer of Canvas2D and other guys are requesting bmfont_co_ nine-patch_co_ and so on. Cheers!\n_lt_/p_gt_\n\n\n\t\t\t\n\t\t_lt_/div_gt_\n\n\t\t_lt_div class_eq__qt_ipsI_qt__gt__lt_/div_gt__lt_/div_gt_"},{"Owner":"Pryme8","Date":"2016-12-26T18:29:31Z","Content":"_lt_div class_eq__qt_mages_qt__gt_\n\t\t\t_lt_p_gt_\n\tLook it up on here look for mmmpie it_t_s a engine I_t_m sitting on that I will provide to certain people for a limited release.  There are like three guys in the communities that have it and all use it for their paid work.  I don_t_t mean to brag but it_t_s easily the best UI solution out there. It takes a little scripting to set up your elements and code your call backs but it_t_s a monster_co_ you can do anything and any functions you develop are reusable as modules_co_ with a full stack of prototypes for management or cloning deleting moving scaling rotating layering etc...  if your interested pm me we_t_ll talk and if I think you can handle it I_t_ll swing you pieui.0.0.3.js and a nifty project I call master sheet that will inspire you for your image atlas.\n_lt_/p_gt_\n\n\t\t\t\n\t\t_lt_/div_gt_\n\n\t\t_lt_div class_eq__qt_ipsI_qt__gt__lt_/div_gt__lt_/div_gt_"},{"Owner":"Pryme8","Date":"2016-12-26T18:32:00Z","Content":"_lt_div class_eq__qt_mages_qt__gt_\n\t\t\t\n_lt_iframe data-embedcontent_eq__qt__qt_ frameborder_eq__qt_0_qt_ src_eq__qt_http_dd_//www.html5gamedevs.com/topic/26065-mmm-pie/?do_eq_embed_qt__gt__lt_/iframe_gt_\n_lt_p_gt_\n\t \n_lt_/p_gt_\n\n\n\t\t\t\n\t\t_lt_/div_gt_\n\n\t\t_lt_div class_eq__qt_ipsI_qt__gt__lt_/div_gt__lt_/div_gt_"},{"Owner":"JCPalmer","Date":"2016-12-27T17:59:55Z","Content":"_lt_div class_eq__qt_mages_qt__gt_\n\t\t\t\n_lt_p_gt_\n\tI have played with the Blender texture atlas plug-in.  It does require that you lay out the UV maps of each texture_co_ but you can click select / drag them.  I assume that this is desired to eliminate the draw calls of a multi-material mesh.  Kind of feels like making pressed xmas cookies out of a rolled out dough square.  You can size and rotate individual section where you want to make things more or less detailed.  The down side is initially every UV is on top of every other.\n_lt_/p_gt_\n\n_lt_p_gt_\n\tI have also played with baking during export to combine multiple blender materials into 1.  Thought it would work good for something like MakeHuman_co_ where there is a texture of the whole skin_co_ but it is not well utilized as much of the body is covered with clothes.  It was a major disaster (still in the exporter in a switched off state though).  First problem is_co_ a new UV is recomputed_co_ not just strung together from the pieces.  Not near as compact.  This spills over into more / bigger vertices_co_ normals_co_ skeleton matrix indices &amp_sm_ weights_co_ vector colors_co_ shape keys_co_ and UV (of course).  Having multiple vertices only differing by UV makes this look more flat shaded.\n_lt_/p_gt_\n\n_lt_p_gt_\n\tThe 2nd problem relates to transparency.  I could not get the eye lashes &amp_sm_ eye browses to not be just solid black over the skin.  I know everyone just wants to hear how to do stuff_co_ not failures_co_ but suck it up.\n_lt_/p_gt_\n\n_lt_p_gt_\n\tI saw blender page that showed how to manually combine textures of Blender multi-materials_co_ but cannot seem to find it.  I would not think that combining in BJS itself would be in my interests.  Seems to me you need to forego using compressed textures_co_ if you did it that late.\n_lt_/p_gt_\n\n\n\t\t\t\n\t\t_lt_/div_gt_\n\n\t\t_lt_div class_eq__qt_ipsI_qt__gt__lt_/div_gt__lt_/div_gt_"},{"Owner":"Nockawa","Date":"2016-12-28T13:31:01Z","Content":"_lt_div class_eq__qt_mages_qt__gt_\n\t\t\t\n_lt_p_gt_\n\t_lt_a contenteditable_eq__qt_false_qt_ data-ipshover_eq__qt__qt_ data-ipshover-target_eq__qt_http_dd_//www.html5gamedevs.com/profile/8492-jcpalmer/?do_eq_hovercard_qt_ data-mentionid_eq__qt_8492_qt_ href_eq__qt_http_dd_//www.html5gamedevs.com/profile/8492-jcpalmer/_qt_ rel_eq__qt__qt__gt_@JCPalmer_lt_/a_gt_ I think the discussion was about texture atlas for 2D stuffs_co_ targeting 3D is another topic on its own I guess.\n_lt_/p_gt_\n\n_lt_p_gt_\n\tTexture Atlas is for me mostly about developing a production pipeline that enable people to use it in a efficient manner (either during development and at runtime).\n_lt_/p_gt_\n\n_lt_p_gt_\n\tThat_t_s why I can_t_t only think about a single class in Canvas2D where you would have to load manually a texture then specify _qt_manually_qt_ all the regions and their meaning to map them on sprites afterward.\n_lt_/p_gt_\n\n_lt_p_gt_\n\tI was mentioning this tool  _lt_a href_eq__qt_https_dd_//www.codeandweb.com/texturepacker_qt_ rel_eq__qt_external nofollow_qt_ style_eq__qt_color_dd_rgb(60_co_105_co_148)_sm_text-decoration_dd_underline_sm_background-color_dd_rgb(255_co_255_co_255)_sm_font-family_dd__t_Helvetica Neue_t__co_ Helvetica_co_ Arial_co_ sans-serif_sm_font-size_dd_14px_sm_font-style_dd_normal_sm_font-weight_dd_normal_sm_letter-spacing_dd_normal_sm_text-indent_dd_0px_sm_text-transform_dd_none_sm_white-space_dd_normal_sm_word-spacing_dd_0px_sm__qt__gt_https_dd_//www.codeandweb.com/texturepacker_lt_/a_gt_ that _lt_a contenteditable_eq__qt_false_qt_ data-ipshover_eq__qt__qt_ data-ipshover-target_eq__qt_http_dd_//www.html5gamedevs.com/profile/17014-masterk/?do_eq_hovercard_qt_ data-mentionid_eq__qt_17014_qt_ href_eq__qt_http_dd_//www.html5gamedevs.com/profile/17014-masterk/_qt_ rel_eq__qt__qt__gt_@MasterK_lt_/a_gt_ told me about_co_ it seems to be fairly wide spread and many engine supports it_co_ so my question is the following one_dd_\n_lt_/p_gt_\n\n_lt_p_gt_\n\tWould you all people that are interested in Texture Atlas in Canvas2D would be interested about supporting the file format of this tool_co_ which would imply to use it?\n_lt_/p_gt_\n\n_lt_p_gt_\n\tThanks\n_lt_/p_gt_\n\n\n\t\t\t\n\t\t_lt_/div_gt_\n\n\t\t_lt_div class_eq__qt_ipsI_qt__gt__lt_/div_gt__lt_/div_gt_"},{"Owner":"Wingnut","Date":"2016-12-28T14:27:22Z","Content":"_lt_div class_eq__qt_mages_qt__gt_\n\t\t\t\n_lt_p_gt_\n\tHey Noxxy!  Hope you_t_re feeling better these days.  Hi to everyone else_co_ too.\n_lt_/p_gt_\n\n_lt_p_gt_\n\tNockawa... do you care what tool is used to make a jpg full of sprites or gui border textures? \n_lt_/p_gt_\n\n_lt_blockquote class_eq__qt_ipsQuote_qt_ data-ipsquote_eq__qt__qt__gt_\n\t_lt_div class_eq__qt_ipsQuote_citation_qt__gt_\n\t\tQuote\n\t_lt_/div_gt_\n\n\t_lt_div class_eq__qt_ipsQuote_contents_qt__gt_\n\t\t_lt_div_gt_\n\t\t\t_lt_h3_gt_\n\t\t\t\tExport\n\t\t\t_lt_/h3_gt_\n\n\t\t\t_lt_p_gt_\n\t\t\t\tFor export (from TexturePacker)_co_ the following image formats can be used_dd_\n\t\t\t_lt_/p_gt_\n\n\t\t\t_lt_ul_gt__lt_li_gt_\n\t\t\t\t\t_lt_b_gt_PNG_lt_/b_gt_ - Portable Network Graphics\n\t\t\t\t_lt_/li_gt_\n\t\t\t\t_lt_li_gt_\n\t\t\t\t\t_lt_b_gt_PVR_lt_/b_gt_ - PowerVR - iPhone image format (gzip or zlib compressed)\n\t\t\t\t_lt_/li_gt_\n\t\t\t\t_lt_li_gt_\n\t\t\t\t\t_lt_b_gt_JPG_lt_/b_gt_ - Joint Photographic Experts Group\n\t\t\t\t_lt_/li_gt_\n\t\t\t\t_lt_li_gt_\n\t\t\t\t\t_lt_b_gt_BMP_lt_/b_gt_ - Bitmap\n\t\t\t\t_lt_/li_gt_\n\t\t\t\t_lt_li_gt_\n\t\t\t\t\t_lt_b_gt_TGA_lt_/b_gt_ - Targa Image File\n\t\t\t\t_lt_/li_gt_\n\t\t\t\t_lt_li_gt_\n\t\t\t\t\t_lt_b_gt_TIFF_lt_/b_gt_ - Tagged image file format\n\t\t\t\t_lt_/li_gt_\n\t\t\t\t_lt_li_gt_\n\t\t\t\t\t_lt_b_gt_PKM_lt_/b_gt_ - PKM with ETC1\n\t\t\t\t_lt_/li_gt_\n\t\t\t\t_lt_li_gt_\n\t\t\t\t\t_lt_b_gt_PPM_lt_/b_gt_ - Netbpm (ASCII or binary)\n\t\t\t\t_lt_/li_gt_\n\t\t\t\t_lt_li_gt_\n\t\t\t\t\t_lt_b_gt_WebP_lt_/b_gt_ - Google image format\n\t\t\t\t_lt_/li_gt_\n\t\t\t\t_lt_li_gt_\n\t\t\t\t\t_lt_b_gt_ATF_lt_/b_gt_ - Adobe Texture Format\n\t\t\t\t_lt_/li_gt_\n\t\t\t_lt_/ul_gt__lt_/div_gt_\n\t_lt_/div_gt_\n_lt_/blockquote_gt_\n\n_lt_p_gt_\n\tYou don_t_t really care what _lt_em_gt_creates_lt_/em_gt_ the PNG or JPG_co_ right?  Really_co_ you just want to let users choose WHERE on the atlas is the lower-left corner of the wanted _qt_piece_qt__co_ and then X/Y range/extent_co_ yes?  Your sprite2d/shape2d already have that feature. Even when you build the GUI lib template for a scale-able 9-part box model (8 border pieces and 1 tile-able central background)_co_ the user will still need to enter 9 lower-left starting points (atlas locations)_co_ and 9 extents (how much X/Y image to grab from _lt_em_gt_each_lt_/em_gt_ starting point).\n_lt_/p_gt_\n\n_lt_p_gt_\n\tSo_co_ it seems_co_ you only need to build an easy-to-use 9-part box model maker... and you wouldn_t_t care what creates the atlas. (I_t_m likely forgetting something_co_ though) (sorry)\n_lt_/p_gt_\n\n_lt_blockquote class_eq__qt_ipsQuote_qt_ data-ipsquote_eq__qt__qt_ data-ipsquote-contentapp_eq__qt_forums_qt_ data-ipsquote-contentclass_eq__qt_forums_Topic_qt_ data-ipsquote-contentcommentid_eq__qt_156886_qt_ data-ipsquote-contentid_eq__qt_27259_qt_ data-ipsquote-contenttype_eq__qt_forums_qt_ data-ipsquote-timestamp_eq__qt_1482931861_qt_ data-ipsquote-userid_eq__qt_18979_qt_ data-ipsquote-username_eq__qt_Nockawa_qt__gt_\n\t_lt_div class_eq__qt_ipsQuote_citation_qt__gt_\n\t\t1 hour ago_co_ Nockawa said_dd_\n\t_lt_/div_gt_\n\n\t_lt_div class_eq__qt_ipsQuote_contents_qt__gt_\n\t\t_lt_p_gt_\n\t\t\tThat_t_s why I can_t_t only think about a single class in Canvas2D where you would have to load manually a texture then specify _qt_manually_qt_ all the regions and their meaning to map them on sprites afterward.\n\t\t_lt_/p_gt_\n\t_lt_/div_gt_\n_lt_/blockquote_gt_\n\n_lt_p_gt_\n\tWould you mind re-wording that sentence?  I don_t_t understand that sentence real well.  Or maybe I do.  _lt_img alt_eq__qt__dd_)_qt_ data-emoticon_eq__qt__qt_ height_eq__qt_20_qt_ src_eq__qt_http_dd_//www.html5gamedevs.com/uploads/emoticons/default_smile.png_qt_ srcset_eq__qt_http_dd_//www.html5gamedevs.com/uploads/emoticons/smile@2x.png 2x_qt_ title_eq__qt__dd_)_qt_ width_eq__qt_20_qt_ /_gt__lt_/p_gt_\n\n_lt_p_gt_\n\tWould the Canvas2d 9-part box-model (I_t_m using _t_box-model_t_ term in the same respect as CSS uses it)... use 9 sprite2d/shape2d_co_ at its core? \n_lt_/p_gt_\n\n_lt_p_gt_\n\tSo if an image arrived... of an entire box-model... _lt_a href_eq__qt_http_dd_//image.shutterstock.com/z/stock-vector-interface-buttons-set-for-space-games-or-apps-vector-illustration-easy-to-edit-isolated-on-gray-224508388.jpg_qt_ rel_eq__qt_external nofollow_qt__gt_like this (complete box in upper left area)_lt_/a_gt__co_ then you (for your GUI lib) would _qt_slice_qt_ that image into 9 sprite-maps... and use 9 sprite2d/shape2d to display it? \n_lt_/p_gt_\n\n_lt_p_gt_\n\tvar compoundShape2d _eq_ SliceAndMapToNineSprites(imgurl_co_ startPos_co_ xRange_co_ yRange_co_ borderDepth)  ??  _lt_img alt_eq__qt__dd_D_qt_ data-emoticon_eq__qt__qt_ height_eq__qt_20_qt_ src_eq__qt_http_dd_//www.html5gamedevs.com/uploads/emoticons/default_biggrin.png_qt_ srcset_eq__qt_http_dd_//www.html5gamedevs.com/uploads/emoticons/biggrin@2x.png 2x_qt_ title_eq__qt__dd_D_qt_ width_eq__qt_20_qt_ /_gt_  \n_lt_/p_gt_\n\n_lt_p_gt_\n\tOr_co_ not?  I_t_m so confused.  SO many questions... and SO little Wingnut brainpower.\n_lt_/p_gt_\n\n\n\t\t\t\n\t\t_lt_/div_gt_\n\n\t\t_lt_div class_eq__qt_ipsI_qt__gt__lt_/div_gt__lt_/div_gt_"},{"Owner":"Nockawa","Date":"2016-12-28T15:41:19Z","Content":"_lt_div class_eq__qt_mages_qt__gt_\n\t\t\t\n_lt_p_gt_\n\tOk_co_ I_t_ll try to clarify some things up_dd_\n_lt_/p_gt_\n\n_lt_p_gt_\n\t1) To answer back a previous comment of another user_dd_ for me a Scale9 Sprite doesn_t_t have to rely on an Atlas Texture_co_ for me (but I totally understand other people may have other point of view) the Scale9Sprite is just a sprite with 4 more values_dd_ the 2 horiz splits and the 2 vert splits to define the 9 parts.\n_lt_/p_gt_\n\n_lt_p_gt_\n\t2) What I understood about TexturePacker (but I can be wrong because I just went to the product home page) is that it generates a picture file containing the atlas _lt_strong_gt_but also a json file_lt_/strong_gt_ that contains the whole information needed to find the right location/size of a given sprite_t_s bitmap you put in the Atlas. You could _lt_strong_gt_and_lt_/strong_gt_ will be able to specify these information manually_co_ but I think that if you store many sprites into one picture file_dd_ it_t_s better to rely on a product that ease the production chain of your development. That was what I was trying to say with_dd_ \n_lt_/p_gt_\n\n_lt_blockquote class_eq__qt_ipsQuote_qt_ data-ipsquote_eq__qt__qt__gt_\n\t_lt_div class_eq__qt_ipsQuote_citation_qt__gt_\n\t\tQuote\n\t_lt_/div_gt_\n\n\t_lt_div class_eq__qt_ipsQuote_contents_qt__gt_\n\t\t_lt_p_gt_\n\t\t\t_lt_span style_eq__qt_color_dd_rgb(39_co_42_co_52)_sm_font-family_dd__t_Helvetica Neue_t__co_ Helvetica_co_ Arial_co_ sans-serif_sm_font-size_dd_14px_sm_font-style_dd_normal_sm_font-weight_dd_normal_sm_letter-spacing_dd_normal_sm_text-indent_dd_0px_sm_text-transform_dd_none_sm_white-space_dd_normal_sm_word-spacing_dd_0px_sm_background-color_dd_rgb(251_co_251_co_251)_sm_float_dd_none_sm__qt__gt_That_t_s why I can_t_t only think about a single class in Canvas2D where you would have to load manually a texture then specify _qt_manually_qt_ all the regions and their meaning to map them on sprites afterward_lt_/span_gt_\n\t\t_lt_/p_gt_\n\t_lt_/div_gt_\n_lt_/blockquote_gt_\n\n_lt_p_gt_\n\tThe way Sprite2D is implemented internally so far would make things pretty easy to extend it to a Texture Altas_co_ because internally the Sprite2D_t_s bitmap (which can change because of the Frame support) is defined by a nomalized UV for the bottom/left corner and normalize size. Instead of storing just once this tuple I could make a list of them and there you have a Texture Atlas... But I don_t_t want it to be this way_co_ for me it should be a brand new primitive with a clearly defined semantic_co_ well_co_ I have to think it through_co_ and I still haven_t_t.\n_lt_/p_gt_\n\n_lt_p_gt_\n\tOne last thing concerning Scale9Sprite_co_ do you people know if there are tool which generate a json file that store the 4 splits values so you won_t_t have to specify them by code (or creating your own file format) ?\n_lt_/p_gt_\n\n_lt_p_gt_\n\tThanks\n_lt_/p_gt_\n\n\n\t\t\t\n\t\t_lt_/div_gt_\n\n\t\t_lt_div class_eq__qt_ipsI_qt__gt__lt_/div_gt__lt_/div_gt_"},{"Owner":"MasterK","Date":"2016-12-30T07:56:25Z","Content":"_lt_div class_eq__qt_mages_qt__gt_\n\t\t\t\n_lt_p_gt_\n\tone thing to say avoid you don_t_t know_dd_\n_lt_/p_gt_\n\n_lt_p_gt_\n\tone frame pic in atlas texture also can be used for scale9sprite.\n_lt_/p_gt_\n\n_lt_p_gt_\n\tanother way speak_dd_ scale9sprite_t_s texture will also be packaged in texture atlas.\n_lt_/p_gt_\n\n\n\t\t\t\n\t\t_lt_/div_gt_\n\n\t\t_lt_div class_eq__qt_ipsI_qt__gt__lt_/div_gt__lt_/div_gt_"},{"Owner":"Pryme8","Date":"2016-12-30T15:36:50Z","Content":"_lt_div class_eq__qt_mages_qt__gt_\n\t\t\t_lt_p_gt_\n\tI really wish I could just post the source to Master Sprite...  &gt_sm__&lt_sm_  Let me see if I can get the rights to do that. \n_lt_/p_gt_\n\n\t\t\t\n\t\t_lt_/div_gt_\n\n\t\t_lt_div class_eq__qt_ipsI_qt__gt__lt_/div_gt__lt_/div_gt_"},{"Owner":"Nockawa","Date":"2016-12-30T15:41:23Z","Content":"_lt_div class_eq__qt_mages_qt__gt_\n\t\t\t\n_lt_p_gt_\n\t_lt_a contenteditable_eq__qt_false_qt_ data-ipshover_eq__qt__qt_ data-ipshover-target_eq__qt_http_dd_//www.html5gamedevs.com/profile/19199-pryme8/?do_eq_hovercard_qt_ data-mentionid_eq__qt_19199_qt_ href_eq__qt_http_dd_//www.html5gamedevs.com/profile/19199-pryme8/_qt_ rel_eq__qt__qt__gt_@Pryme8_lt_/a_gt_\n_lt_/p_gt_\n\n_lt_p_gt_\n\tI render Sprites using WebGL_t_s Vertex &amp_sm_ Fragment Shader.\n_lt_/p_gt_\n\n_lt_p_gt_\n\tThis allow me for instance to render a Scale9Sprite in two triangles_co_ do you have the same approach?\n_lt_/p_gt_\n\n\n\t\t\t\n\t\t_lt_/div_gt_\n\n\t\t_lt_div class_eq__qt_ipsI_qt__gt__lt_/div_gt__lt_/div_gt_"},{"Owner":"Pryme8","Date":"2016-12-30T19:10:54Z","Content":"_lt_div class_eq__qt_mages_qt__gt_\n\t\t\t_lt_p_gt_\n\tMine is just to make the texture atlas and sprite sheets_co_ with animation and state links how you display it would be on you.  So yeah it would work with your approach.\n_lt_/p_gt_\n\n\t\t\t\n\t\t_lt_/div_gt_\n\n\t\t_lt_div class_eq__qt_ipsI_qt__gt__lt_/div_gt__lt_/div_gt_"},{"Owner":"Nockawa","Date":"2017-01-04T17:39:42Z","Content":"_lt_div class_eq__qt_mages_qt__gt_\n\t\t\t_lt_p_gt_\n\t_lt_a contenteditable_eq__qt_false_qt_ data-ipshover_eq__qt__qt_ data-ipshover-target_eq__qt_http_dd_//www.html5gamedevs.com/profile/16259-grayger/?do_eq_hovercard_qt_ data-mentionid_eq__qt_16259_qt_ href_eq__qt_http_dd_//www.html5gamedevs.com/profile/16259-grayger/_qt_ rel_eq__qt__qt__gt_@grayger_lt_/a_gt_ I just pushed the TextureAtlas feature along with Scale9Sprite_co_ I will make Playground example tonight and a more formal announcement in the Canvas2D main post.\n_lt_/p_gt_\n\n\t\t\t\n\t\t_lt_/div_gt_\n\n\t\t_lt_div class_eq__qt_ipsI_qt__gt__lt_/div_gt__lt_/div_gt_"}]