Camelia, the Perl 6 bug

IRC log for #openframeworks, 2013-08-09

| Channels | #openframeworks index | Today | | Search | Google Search | Plain-Text | summary

All times shown according to UTC.

Time Nick Message
00:35 vade joined #openframeworks
01:14 lmccart joined #openframeworks
01:20 jacres joined #openframeworks
01:20 readywater joined #openframeworks
01:51 bakercp joined #openframeworks
01:51 admsyn joined #openframeworks
02:38 julapy joined #openframeworks
02:40 bakercp joined #openframeworks
02:55 jvcleave are there any other platforms using the Programmable renderer other than armv*?
02:56 kylemcd joined #openframeworks
03:39 Topic for #openframeworks is now Welcome to http://openframeworks.cc/ - OF 0.8.0 is on the verge of release - logs at http://irclog.perlgeek.de/openframeworks/
04:02 jacres joined #openframeworks
04:10 dantheman joined #openframeworks
04:11 dantheman anyone around
04:13 kylemcd yo
04:13 kylemcd eating lunch atm
04:14 dantheman nice
04:14 dantheman btw kylemcd kickstarter hit 250k today
04:14 dantheman say hi to peoples for me
04:14 kylemcd oh man no way
04:14 kylemcd we might have to actually do this
04:14 kylemcd yeahhhh
04:14 dantheman only 350k more
04:22 bakercp joined #openframeworks
04:34 admsyn joined #openframeworks
04:38 admsyn joined #openframeworks
05:16 bakercp joined #openframeworks
06:05 admsyn joined #openframeworks
06:08 kylemcd i'm working on editing the manifesto and preparing to post it to the OF site
06:55 admsyn joined #openframeworks
06:58 roxlu joined #openframeworks
07:04 bakercp joined #openframeworks
07:17 dantheman manifesto?
07:18 admsyn manifesto
07:18 dantheman lol
07:19 admsyn https://docs.google.com/document/d/1MgSQI-​Dt9q0sstmNXITXErqb1-gcbsUFrc2hI-zo47s/edit#
07:19 admsyn ^
07:19 admsyn (that's just a WIP, btw)
07:20 roxlu :)
07:20 dantheman no that word always makes me think of batshit crazy people who write them in a cabin in the woods
07:20 dantheman lol
07:20 admsyn I was saying it should be read in the voice of an angry italian :)
07:20 roxlu :)
07:20 dantheman lol
07:20 dantheman haha
07:21 dantheman armed creative coders?
07:21 dantheman lol
07:22 roxlu I'm super interested in following the discussion about typography ...
07:23 bakercp Hey Roxlu!
07:23 bakercp Yes, we're very interested in your input.
07:23 roxlu Hey! Awesome : )
07:23 kylemcd yeah i'm listening too, curious to hear ;)
07:23 bakercp I'm adding some notes here about internationalization + typography
07:23 bakercp https://docs.google.com/document/d/1XAeTWr​g7EBJG6VCeUJHFanVBKuQfDawrI0ofQ84l2AM/edit#
07:24 roxlu Am I right that "Typography" also mean "Font Rendering" ?
07:24 bakercp (working on internationalization from the string perspective now … not type)
07:24 bakercp Yeah
07:24 bakercp Font rendering.
07:24 roxlu ok
07:24 bakercp We're currently evaluating some existing options … and trying to figure out the boundaries of where we should be
07:25 roxlu I've tested tons of different solutions for a project where I had to render many many characters... (Freetype, BMFont, Pango/Cairo, FTGL)
07:25 bakercp e.g. Pango in the core seems like too much without the flexibility we need
07:25 bakercp and what we have is too little.
07:25 bakercp We are really interested in https://code.google.com/p/freetype-gl/ + harfbuzz + ICU
07:26 bakercp that would give us some caching + international shaping (harfbuzz / fribidi) + international UTF8/Unicode support via ICU
07:26 bakercp We would implement our own minimal layout engine
07:26 roxlu yeah things like cairo/pango look like great libraries but i found that their development is kinda "in house" and render quality between platforms wasnt the same. I used BMFont at the end to have the same cross platform rendering.
07:27 bakercp but would not go as far as Pango and would focus on giving people handles / references to glyphs
07:27 bakercp (looking at bmfont)
07:27 bakercp yeah, bmfont is a similar approach to freetype-gl
07:27 roxlu bmfont is just a bitmap font tool, but it has lots of options to get good quality. And bitmap fonts are awesome if you need to render lots of -dynamic- text
07:28 roxlu yeah
07:28 bakercp have you had experience with freetype-gl (not the same as FTGL)
07:28 dantheman god this is a huge todo list
07:28 bakercp :)
07:28 dantheman and I like what I see
07:29 roxlu yeah I gave it a shot, but found it a bit bloated; I ended up writing a simple freetype wrapper myself;
07:29 roxlu It all comes down to a vertex buffer + texture(s)
07:29 bakercp yeah, i'm not convinced we should use the library directly, but I like its strategies
07:30 bakercp yeah
07:30 bakercp +1 on vb + tex
07:31 bakercp A related issue that we are discussing is how to do better dynamic font allocation / management (i.e. keep the FT face open in memory and give users references to shared font objects rather than creating completely new instances of FT each time you need a difference size, face, etc)
07:31 roxlu While working on this I found that the toughest thing was to create a simple api and still be able to really optimize
07:32 bakercp For performance we need to stick with the atlas approach, so one open question is how to dynamically cache glyphs as needs (i.e. if one texture atlas fills up, do we create a new atlas and start adding to it ...)
07:32 bakercp (i.e. how "smart" would a glyph manager / texture atlast manager need to be)
07:32 roxlu I tried the atlas approach, but ended up switching that with bitmap/vertex based fonts
07:33 roxlu I generated atlases dynamically into big textures and automatically creating new textures when the atlas didn't have any space left
07:33 roxlu but at some point this slowed down my app because of all the texture binds/fetches
07:34 roxlu But then, atlasses might be good for static text
07:34 roxlu not so for dynamic
07:36 bakercp -- roxlu -- could you explain what you mean by "not so for dynamic"
07:36 bakercp ?
07:36 bakercp -- how did you end up storying the rasterized glyph data?
07:36 bakercp (storying == storing :))
07:37 roxlu ah, I think I had a different idea about "atlasses"
07:37 roxlu You're talking about a bitmap font?
07:37 roxlu like: http://xbox.create.msdn.com/assets/cms/​images/XNA_BitmapFontMaker_02_large.jpg
07:45 bakercp yeah
07:45 bakercp but ideally better packing :)
07:45 roxlu Ah ok, yeah
07:45 bakercp http://freetype-gl.googlecode.c​om/svn/wiki/images/texture.png
07:45 roxlu I was using a different approach, but using a bitmap font turned out to be the fastest
07:45 bakercp (https://code.google.com/p/freetype-gl/)
07:45 bakercp yeah, that's what we do now in the core
07:46 bakercp so we want to continue that
07:46 bakercp (we don't do that exactly, but a version of that)
07:46 roxlu I'm using a tool for that: BMFont, but that's quite limited and specific
07:46 roxlu yeah
07:47 bakercp in my mind "ofFontManager" would take care of managing shared instances of stuff like this.
07:47 roxlu yes
07:47 bakercp Users would ask for references to fonts -- kind of like you do with linux's fontconfig .. it will give you a best match for the parameters you want
07:47 roxlu How do you want to handle different sizes?
07:47 bakercp it's an open question.
07:47 roxlu yeah because you need to recreate the bitmap-font then
07:48 roxlu or use distance fields
07:48 bakercp we could be super "smart" about it … and perhaps only keep the largest raster image … and auto-scale down ...
07:48 bakercp but i think that would introduce hinting artifacts
07:48 roxlu yes
07:48 roxlu I would go for regenerating
07:48 roxlu and "atlas" several bitmap fonts together
07:48 bakercp yeah
07:48 bakercp like that image abouve
07:49 roxlu though, then... you also need to think about what glyphs you want to store in the bitmap-font
07:49 bakercp yeah
07:49 bakercp there are several approaches
07:49 roxlu Todd implemented a packing algorithm; super simple but works really wel
07:49 bakercp one would be the pre-defined approach
07:49 bakercp http://clb.demon.fi/files/RectangleBinPack/
07:49 bakercp is what freetype-gl uses.
07:49 bakercp it's fast
07:49 bakercp and i have an oF implementation of it already
07:49 roxlu ah great!
07:50 bakercp re: glyphs to store
07:50 bakercp we could take the Processing approach where we predefine all that we need
07:50 bakercp via something like this:
07:50 bakercp https://github.com/bakercp/ofxFont​/blob/master/src/ofCharacterSet.h
07:51 bakercp https://github.com/bakercp/ofxFont/​blob/master/src/ofCharacterSet.cpp
07:51 roxlu ah yeah
07:51 roxlu hehe this is when I choose pango/cairo :)
07:52 bakercp or if there was some way to use an online (real-time) bin packer
07:52 bakercp to save glyphs as needed
07:52 roxlu I think pango/cairo use that approach
07:52 bakercp for real-time projects (say rendering tweets …) there are a lot of new glyphs that can come across the wire …
07:52 roxlu yes, and you might need to switch fonts based on that
07:52 bakercp and as our japanese friends have reminded me … you can't ask for ALL japanese characters upon startup
07:53 roxlu yep
07:53 bakercp there are thousands
07:53 roxlu so you need to detect scripts too
07:53 bakercp so we need a way to dynamically cache to an atlas and potentially when one atlas fills, create a new atlas and start filling it.
07:54 roxlu yes
07:54 bakercp ofFontManager would keep track of the texture and texture coords of a given glyph (at a certain size / face etc)
07:54 bakercp super fancy :)
07:54 bakercp and not too difficult.
07:55 bakercp we could add utility methods to prune / reclaim the caches if the user desired.
07:55 roxlu I would say that the difficult part will be handling different scripts
07:55 bakercp yeah
07:55 bakercp when you say "scripts" what do you mean?
07:55 bakercp i.e. faces or fonts … ?
07:55 roxlu like cyrillic, chinese,
07:55 bakercp ahh yes.
07:55 roxlu you need different fonts for the glyphs
07:55 bakercp Yes.
07:55 roxlu unless you use Arial-Unicode :)
07:56 roxlu but that's just 40MB or so :>
07:56 bakercp That may be beyond the scope ...
07:56 bakercp :)
07:56 roxlu haha
07:56 bakercp But it's an important point.
07:56 roxlu yeah, that why I said I start using pango/cairo then
07:56 bakercp got it.
07:56 roxlu they have fantastic support for ths stuff
07:56 bakercp pango / cairo takes care of that?
07:56 roxlu yes
07:56 bakercp nice.
07:56 roxlu any reason why not to use pango as backend?
07:57 bakercp my concern is that it will be more difficult to get direct access to individual character position information etc.
07:57 bakercp example would be: 1. render a complex block of text
07:57 roxlu why would you want to have direct access to the char pos?
07:57 bakercp 2. attach each glyph to a particle in a particle system.
07:58 bakercp 3. blow it up.
07:58 bakercp 4. later, reassemble the text into the original layout.
07:58 roxlu hmmm
07:58 bakercp http://vimeo.com/468417#at=0
07:59 bakercp (old project, but I still do stuff like this … where text moves around a lot)
07:59 roxlu yeah, one thing I know which is not so easy to do with cairo/pango is text on a curve
07:59 bakercp yeah
08:00 dantheman bakercp: that's nice
08:00 bakercp my impression is that pango is really good at layout for static scenarios (like web browsers, PDFs etc) but not really good at animated etc.
08:00 roxlu I would say, if you solve the issue of retrieving the individual glyphs (which I'm pretty sure is possible), pango would be the best choice
08:01 bakercp if we could be assured that we have the kind of flexibility to do something like i just outlined with pango, it would be ideal.
08:01 roxlu yeah I would think so too
08:02 roxlu I would save you lots of headaches :>
08:02 bakercp pango can default to native shaper support (i.e. coretext on osx / uniscribe on windows / harfbuzz fribidi icu on linux)
08:02 bakercp or it can use the linux flavor across the board if needed.
08:02 roxlu Have you seen Skia?
08:02 bakercp yeah, i love it :)
08:02 bakercp really nice native support.  uses harfbuzz, etc.
08:03 roxlu I never used it but that one can to text rendering right/
08:03 bakercp yeah
08:03 roxlu and layouting?
08:03 bakercp it's a core chrome render i believe
08:03 roxlu yeah I thought so
08:03 bakercp OK.  I'm going to spend some time with Pango … good to get your thoughts on that.
08:04 roxlu I havent looked into it, but wouldn't that be an option?
08:04 roxlu (Skia)
08:04 bakercp Skia is pretty insane … replaces a _lot_ of what oF already does.
08:04 bakercp I think it would be a bit of a beast …. but it's worth reviewing again.
08:05 roxlu how does rendering text with skia works?
08:06 jvcleave joined #openframeworks
08:07 bakercp it's using -- harfbuzz directly
08:07 bakercp (have you read this? http://behdad.org/text/)
08:07 bakercp (it talks about harfbuzz vs. pango etc)
08:07 roxlu yeah some time ago
08:07 bakercp (it has been updated fairly recently)
08:08 bakercp (harfbuzz has seen lots of activity and has become the defacto standard)
08:08 bakercp (and was originally the shaper behind pango, but has surpassed it and been re-integrated in its newer form … i think)
08:09 roxlu yeah, that reminds me that the pango/cairo community is not so "open" and active
08:09 roxlu which might be something to consider too
08:09 bakercp yeah
08:09 roxlu though for some projects where I needed unicode rendering +layouting, it was great
08:10 bakercp yeah
08:10 bakercp I'm adding some notes to that document on things we need to examine / research more.
08:11 roxlu great having this chat man! good shareing some thoughts abou tthis !
08:11 roxlu often I'm on my own with text-rendering :)
08:11 bakercp we need to spend some time getting reaquainted w/pango
08:13 bakercp -- roxlu would you be willing to do a bit or research on the current state of pango vis-a-vis the blow-up-and-control-the-text-scenario I outlined above?
08:13 bakercp I think you probably have the most experience w/ pango
08:13 roxlu I have to finish a project next couple of days, sorry
08:13 bakercp understood :)
08:13 bakercp The Team will take a look :)
08:14 roxlu I can have a chat here, but no time to really do any coding ... I wish I could : )
08:14 bakercp Thanks for your input though …..
08:14 bakercp It's important to keep you in the loop
08:15 roxlu This might help: https://github.com/roxlu/roxlu/blob/maste​r/addons/Pango/src/pango/TextSurface.cpp
08:15 roxlu was an experiment of using pango + their markup code (which is also great to have)
09:01 bakercp joined #openframeworks
09:33 rossc1 joined #openframeworks
10:54 roxlu hi guys, what are the current thoughts about cmake?
11:03 bakercp joined #openframeworks
11:16 kylemcd roxlu, we're about to break for dinner :)
11:17 roxlu ok, thanks; enjoy! say hi to marek/james/arturo/[everyone I forget]
11:22 neue joined #openframeworks
11:29 admsyn joined #openframeworks
11:32 bastidererste joined #openframeworks
11:33 bastidererste hi guys, cant rec audio to a video with ofQTKitGrabber on my retina macpook. any ideas?
11:33 admsyn as in you want to make a "video" that's just audio?
11:33 bastidererste im using the oscVideoRecorderexample
11:34 bastidererste no... the audio isnt recorded to the video im recording
11:35 admsyn hm, alright
11:35 admsyn have you checked that you've set your default sound input to be the right thing? (i.e. your mic)
11:36 bastidererste audioDevices.size() says size 1, audioDeviceID() is 0
11:38 admsyn what's your audioDevices look like?
11:38 bastidererste damn, throw some shoes at me....   vidRecorder->setUseAudio(true);... now its working
11:38 admsyn haha
11:38 admsyn \o/
11:40 bastidererste in an moment of pure rage i commented out vidRecorder->setUseAudio(true);
11:40 bastidererste thanks for sharing brainz
11:40 admsyn np
13:04 vade joined #openframeworks
13:18 superFluid joined #openframeworks
15:14 vade joined #openframeworks
15:37 jacres joined #openframeworks
15:42 dantheman_ joined #openframeworks
16:03 superFluid joined #openframeworks
16:25 dantheman_ joined #openframeworks
16:29 dantheman__ joined #openframeworks
17:15 superFluid joined #openframeworks
17:32 DrCode joined #openframeworks
17:33 dantheman_ joined #openframeworks
17:38 dantheman_ joined #openframeworks
17:54 dantheman_ joined #openframeworks
18:02 bilderbuchi joined #openframeworks
18:25 GuidovanPossum joined #openframeworks
19:09 bilderbuchi left #openframeworks
19:19 bakercp joined #openframeworks
21:00 armadillu joined #openframeworks
23:50 vade joined #openframeworks

| Channels | #openframeworks index | Today | | Search | Google Search | Plain-Text | summary