text: [{"Owner":"JCPalmer","Date":"2015-03-28T18:47:43Z","Content":"_lt_div class_eq__qt_mages_qt__gt_\n\t\t\t\n_lt_p_gt_Here is the tester / Demo page of the Dialog extension I am doing.  Taken a while.  All development done except multi-camera / modal stack.  Not published yet in respository._lt_/p_gt__lt_p_gt_ _lt_/p_gt__lt_p_gt__lt_a href_eq__qt_https_dd_//googledrive.com/host/0B6-s6ZjHyEwUfjlzYXJKMC1zLXdIaV81REJhbjdfRmczQTJFOEpjWWg2SUIwZVRRS0VsR28_qt_ rel_eq__qt_external nofollow_qt__gt_https_dd_//googledrive.com/host/0B6-s6ZjHyEwUfjlzYXJKMC1zLXdIaV81REJhbjdfRmczQTJFOEpjWWg2SUIwZVRRS0VsR28_lt_/a_gt__lt_/p_gt__lt_p_gt_ _lt_/p_gt__lt_p_gt_Please look over.  I saw that on my Mac that fonts did not look that good.  FYI_co_ make the window the size you wish before loading.  HTML set for loading in CocoonJS_co_ &amp_sm_ does not re-size with window._lt_/p_gt__lt_p_gt_ _lt_/p_gt__lt_p_gt_Jeff_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":"Samuel Girardin","Date":"2015-03-28T22:54:06Z","Content":"_lt_div class_eq__qt_mages_qt__gt_\n\t\t\t\n_lt_p_gt_Fonts are perfects on windows with ie or chrome._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":"jahow","Date":"2015-03-29T14:13:53Z","Content":"_lt_div class_eq__qt_mages_qt__gt_\n\t\t\t\n_lt_p_gt_Everything works perfectly fine here! The result is impressive_co_ although the FPS is pretty low when zoomed out and displaying some panels (ex._dd_ Look&amp_sm_Feel panel_co_ 1000 meshes total_co_ 20 FPS)._lt_/p_gt__lt_p_gt_ _lt_/p_gt__lt_p_gt_Do you have specific uses intended for this?_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":"2015-03-29T18:13:32Z","Content":"_lt_div class_eq__qt_mages_qt__gt_\n\t\t\t\n_lt_p_gt_It_t_s just plain amazing_co_ Jc.  Well done!_lt_/p_gt__lt_p_gt_ _lt_/p_gt__lt_p_gt_Can I ask about stringBundles and messageBundles_co_ etc?  Are there provisions for multi-language (i18n)?  (thx)_lt_/p_gt__lt_p_gt_ _lt_/p_gt__lt_p_gt__lt_a href_eq__qt_https_dd_//www.google.com/search?q_eq_xul+window+types&amp_sm_source_eq_lnms&amp_sm_tbm_eq_isch_qt_ rel_eq__qt_external nofollow_qt__gt_https_dd_//www.google.com/search?q_eq_xul+window+types&amp_sm_source_eq_lnms&amp_sm_tbm_eq_isch_lt_/a_gt__lt_/p_gt__lt_p_gt_ _lt_/p_gt__lt_p_gt_A fun search for various types of xul windows/panels... makes ya think about where Jeff_t_s dialog COULD go_co_ from here._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":"jahow","Date":"2015-03-30T05:45:01Z","Content":"_lt_div class_eq__qt_mages_qt__gt_\n\t\t\t\n_lt_p_gt_I didn_t_t know about XUL... this looks like an endless stream of possibilities _lt_img src_eq__qt_http_dd_//www.html5gamedevs.com/uploads/emoticons/default_smile.png_qt_ alt_eq__qt__dd_)_qt_ srcset_eq__qt_http_dd_//www.html5gamedevs.com/uploads/emoticons/smile@2x.png 2x_qt_ width_eq__qt_20_qt_ height_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":"JCPalmer","Date":"2015-03-30T16:04:34Z","Content":"_lt_div class_eq__qt_mages_qt__gt_\n\t\t\t\n_lt_p_gt_Thank you for trying this out &amp_sm_ your feedback.  Let me go through some of your responses._lt_/p_gt__lt_p_gt_ _lt_/p_gt__lt_p_gt_First_co_ there is no internationalization.  If one were to build that_co_ it is usually built on top of a windowing system.  This would be the case here too_co_ except_dd__lt_/p_gt__lt_ul_gt__lt_li_gt_I do not know if string in Javascript is 16 bit or not_co_ which you would need for unicode_co_ multi-byte languages._lt_/li_gt__lt_li_gt_Blender_t_s built in font does not handle those letters.  You would have to switch the typeface to an os system font (truetype?).  Blender does this_co_ but I have not tried it.  In any case the character code being &gt_sm_ 128 would require it go in a file / module ending in _EXT.  This is how I allowed those french / german vowels without making the file too big._lt_/li_gt__lt_/ul_gt__lt_p_gt_@Wingnut_co_ I do not know what these bundles you speak of are (part of internationalization?)_lt_/p_gt__lt_p_gt_ _lt_/p_gt__lt_p_gt_I have just done more testing on mac.  I thought it might have been my ignorance on how to operate an arc rotate camera without a mouse.  I just plugged in a real mouse_co_ and zoomed in_co_ and it does not look good.  It is a 5 year old machine_co_ so results probably not important._lt_/p_gt__lt_p_gt_ _lt_/p_gt__lt_p_gt_I have not run this on CocoonJS yet.  The Url is too long_co_ and is redirected using Googledrive.  Will do this from my local server.  When I tried to load it from Safari on a retina iPad air 2_co_  the forcing of the hardware level to 1 made everything huge_co_ and clicking on the buttons did nothing.  Not sure if that is a bug_co_ or just  self inflicted._lt_/p_gt__lt_p_gt_ _lt_/p_gt__lt_p_gt_The gracious comments of lets say _t_surprise of how well this worked_t_ are probably due to the speed advantage Tower of Babel 2.0 inline code has over Fileloader &amp_sm_ .babylon files.  TOB can serve up meshes on an industrial scale.  Fileloader has many speed inhibitors_dd__lt_/p_gt__lt_ul_gt__lt_li_gt_It relies on JSON.  I am pretty sure every every time you request a mesh the entire .babylon is parsed.  You could have a .babylon for each letter_co_ 96_co_ but that causes as many problems as it solves._lt_/li_gt__lt_li_gt_FileLoader does not support cloning.  This is more than just a speed problem_co_ but also a CPU / GPU memory problem._lt_/li_gt__lt_li_gt_No OO programing capability. You a stuck with getting a BABYLON.Mesh.  With inline code_co_ you can specify a base class.  TOB 2.0 has a base class property in Blender. I fully take advantage of this here make the _t_A_t_ class inherit from DIALOG.Letter_co_ which inherits fro DIALOG.BasePanel._lt_/li_gt__lt_li_gt_I do not know how the JSON parser is implemented_co_ but I know the javascript parser is written in a compiled language._lt_/li_gt__lt_/ul_gt__lt_p_gt_The result is when you click on the LAF button_co_ nearly 700 meshes fly up in almost the blink of the eye.  Fileloader might even crash some systems with low memory trying to do that.  _lt_/p_gt__lt_p_gt_ _lt_/p_gt__lt_p_gt_@jahow_co_ you helped more than you know saying 1000 meshes.  There is either a memory leak in TOB mesh factories or in Babylon.JS itself.  Debug shows 792 meshes should exist.  Click another section and come back and it is 792.  I did some random series of clicks and the number started growing.  Need to investigate._lt_/p_gt__lt_p_gt_ _lt_/p_gt__lt_p_gt_Have to stop.  This is already too long._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":"2015-03-30T21:42:45Z","Content":"_lt_div class_eq__qt_mages_qt__gt_\n\t\t\t\n_lt_p_gt_Thanks for the info_co_ Jeff!  Yes_co_ stringBundles are for i18n.  They are a flat database of key/value. _lt_/p_gt__lt_p_gt_ _lt_/p_gt__lt_p_gt_All GUI _qt_widgets_qt_ that can contain text... can/should use attributes like label_eq__qt_$run_button_label_qt_ or maybe label_eq__qt_$colors_panel_label_qt_._lt_/p_gt__lt_p_gt_ _lt_/p_gt__lt_p_gt_Then_co_ everytime you populate a widget with some text_co_ you would run a function called getString(token_co_ whichbundle)_sm_  Then use THAT returned text.  Or getMessage(token_co_ bundle).  Study firefox stringbundles for more/better info_co_ I suppose._lt_/p_gt__lt_p_gt_ _lt_/p_gt__lt_p_gt_The English stringBundle (sometimes a .properties file) for the above example... might look like this..._lt_/p_gt__lt_p_gt_ _lt_/p_gt__lt_p_gt_run_button_label _eq_ _qt_Run_qt__sm__lt_/p_gt__lt_p_gt_colors_panel_label _eq_ _qt_Choose a color_qt__sm__lt_/p_gt__lt_p_gt_ _lt_/p_gt__lt_p_gt_etc._lt_/p_gt__lt_p_gt_ _lt_/p_gt__lt_p_gt_I learned this from xul (I spent 5-6 years having fun with it_co_ building a Mozilla extension). _lt_/p_gt__lt_p_gt_ _lt_/p_gt__lt_p_gt_By doing this_co_ you can change the language of an entire application... just by switching its stringbundle.  This keeps translators from needing to muck-around in the code._lt_/p_gt__lt_p_gt_ _lt_/p_gt__lt_p_gt_Of course XUL is xml-based_co_ so maybe things are different_co_ but... no.  Using stringbundles (for labels) and messagebundles (for error reporting and other _t_messages_t_)... is pretty wise. _lt_/p_gt__lt_p_gt_ _lt_/p_gt__lt_p_gt_It won_t_t slow tab-panel changing speeds very much_co_ because all the tab-panes are built at init-time.  They just switch z-order with each tab-press.  No stringbundle queries needed at tab-click time. _lt_/p_gt__lt_p_gt_ _lt_/p_gt__lt_p_gt_*shrug* _lt_img src_eq__qt_http_dd_//www.html5gamedevs.com/uploads/emoticons/default_smile.png_qt_ alt_eq__qt__dd_)_qt_ srcset_eq__qt_http_dd_//www.html5gamedevs.com/uploads/emoticons/smile@2x.png 2x_qt_ width_eq__qt_20_qt_ height_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":"jahow","Date":"2015-03-31T05:46:46Z","Content":"_lt_div class_eq__qt_mages_qt__gt_\n\t\t\t\n_lt_p_gt_Sweet_co_ I_t_m happy I could help _lt_img src_eq__qt_http_dd_//www.html5gamedevs.com/uploads/emoticons/default_smile.png_qt_ alt_eq__qt__dd_)_qt_ srcset_eq__qt_http_dd_//www.html5gamedevs.com/uploads/emoticons/smile@2x.png 2x_qt_ width_eq__qt_20_qt_ height_eq__qt_20_qt__gt_ Good luck with that bug-hunting!_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_"}]