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.
>
>

Reply via email to