Patrick Dähne wrote: > Hello Allen, > > Am 24.06.2007 um 02:59 schrieb Allen Bierbaum: > >> I have been trying to create a new foreground that renders text and I >> have run into a question while looking at the SimpleStatForeground >> implementation... >> >> Does anyone know what the scale factory in TextTXFFace is for or what >> physical parameter it represents? I see the comment that says "The >> scale factor used to scale font metrics", but I just don't understand >> what this means or what it corresponds to physically. How does this >> figure into the size of the text when it is rendered to geometry or to >> the screen? > > The TextTXFFace::_scale factor is used to scale the size (actually > the height) of the characters from pixel units to 1 world unit. > > When you create a TextTXFFace, you specify the size (height) of the > characters in pixels via the size member variable of the TextTXFParam > object you provide as an argument to the create() factory method. In > practice, you won't get exactly the size you specified - which size > you actually get depends on the font designer. > > When you create the text geometry via TextTXFFace::fillGeo, you have > to specify a scale factor. This factor controls the height of the > text geometry in world units. > > Usually, you want to render text so that one pixel of the text > texture corresponds to one pixel on the screen. To do this, you have > to specify 1 / TextTXFFace::_scale as the scale parameter for > fillGeo. I.e. you have to write something like this: > > face->fillGeo(..., 1 / face->getScale()); > > That is the only reason why this mysterious scale factor exists in > the TextTXFFace class. > > The whole implementation of TextTXFFace is a little bit questionable. > When I implemented the class, I thought it would be a good idea to > scale the text geometry to 1 world unit. But recently I changed my > mind, and I plan to change/improve the interface. Unfortunately, I > currently do not have time to do that.
I can see the reason for both ways of doing it. The way it is done right now is not necessarily bad, but I think it needs documented more completely so people can understand what to expect. The only reason I realized I needed some of this was because I looked at the implementation of SimpleStatsForeground. The code works well, it is just a bit confusing if you don't know what to expect. :) -Allen > > Hope this helps, > > Patrick > > > ------------------------------------------------------------------------- > This SF.net email is sponsored by DB2 Express > Download DB2 Express C - the FREE version of DB2 express and take > control of your XML. No limits. Just data. Click to get it now. > http://sourceforge.net/powerbar/db2/ > _______________________________________________ > Opensg-users mailing list > [email protected] > https://lists.sourceforge.net/lists/listinfo/opensg-users > ------------------------------------------------------------------------- This SF.net email is sponsored by DB2 Express Download DB2 Express C - the FREE version of DB2 express and take control of your XML. No limits. Just data. Click to get it now. http://sourceforge.net/powerbar/db2/ _______________________________________________ Opensg-users mailing list [email protected] https://lists.sourceforge.net/lists/listinfo/opensg-users
