2013/3/25 Stéphane Ducasse <[email protected]>: > > > Begin forwarded message: > > From: Igor Stasenko <[email protected]> > Subject: Re: Some question and request for Athens > Date: March 25, 2013 2:57:33 PM GMT+01:00 > To: Tristan Bourgois <[email protected]> > Cc: Stéphane Ducasse <[email protected]>, LE PORS Eric > <[email protected]> > > On 25 March 2013 11:45, Tristan Bourgois <[email protected]> wrote: > > Hi Igor! > > I have some questions and request for Athens :) > > 1 Do exist a possibility in Athens to draw a Surface on a Surface? > For example : > aSurf drawSurface: anOtherSurface at: aPosition > (I need it for draw image on a surface) > > > yes. You can use Forms or surfaces as paints so they act like 2D textures: > > canvas setPaint: someSurface. > canvas drawShape: myRect.
Thanks that's works fine :) > > 2 About my first question, I try to draw a png image on a Surface and > I get some strange behavior. When nothing is applied on my first > surface and draw the image in a rectangle path I crash the VM! > This an example I tried and crash my VM: > > |surf pharoLogo ref path patternPaint| > surf := AthensCairoSurface extent: 600@600. > > ref := 'pharo.png' asFileReference. > pharoLogo := AthensCairoSurface createFromFile: ref fullName ifFailed:[nil]. > > surf drawDuring: [:can| > surf clear. > patternPaint := can setPaint: pharoLogo. > patternPaint setExtend: #None. > can drawShape: (0@0 extent: pharoLogo extent). > ]. > Display getCanvas drawImage: surf asForm at: 0@0. > > If you need more information about the crash and my environment ask it :) > > weird... it should be working fine. I try it on a new clean image and again get a VM crash. > 3. Do exist something in Athens to create some text and get the extent > of the text? I tried to draw text but I only succeed to draw a text > without font (only width) and I don't found how to get the extent of > this text :( This is really important for the next of the porting > because I'm blocking on that and the textModel is not necessary for > the next of my work because they already have a layoutManager for the > text. > > You can use freetype to measure text extent. Please look how i doing it with > AthensTextScanner. > Because the default methods of freetype using rounding for font size(s), > which is not really nice. > I added more precise methods, which do not do any rounding and using > them for measuring > text extent. > > Try this: > > text := 'asdsdgs' asText. > lines := (AthensTextComposer scan: text for: AthensTextScanner new) lines. > > lines first width. > > will give you the width. > > (but for that to work, your default font should be TTF font) Sorry for the newbie question but how I can change the default font to TTF font? > Thanks Igor :) > > Tristan > > PS: The porting advance as well :) I have animation and that's really > amazing :) > > > > > -- > Best regards, > Igor Stasenko. > >
