From 239bfa10cb7553fabd90553ff582d526ef48d524 Mon Sep 17 00:00:00 2001 From: Erik Onarheim Date: Tue, 14 May 2024 22:27:06 -0500 Subject: [PATCH] add test --- src/spec/TextSpec.ts | 39 ++++++++++++++++++ .../GraphicsTextSpec/spritefont-scaled.png | Bin 0 -> 1685 bytes 2 files changed, 39 insertions(+) create mode 100644 src/spec/images/GraphicsTextSpec/spritefont-scaled.png diff --git a/src/spec/TextSpec.ts b/src/spec/TextSpec.ts index 3b28f07df..4389e21d6 100644 --- a/src/spec/TextSpec.ts +++ b/src/spec/TextSpec.ts @@ -921,6 +921,45 @@ describe('A Text Graphic', () => { await expectAsync(canvasElement).toEqualImage('src/spec/images/GraphicsTextSpec/spritefont-text.png'); }); + it('can scale a spritefont', async () => { + const spriteFontImage = new ex.ImageSource('src/spec/images/GraphicsTextSpec/spritefont.png'); + + await spriteFontImage.load(); + + const spriteFontSheet = ex.SpriteSheet.fromImageSource({ + image: spriteFontImage, + grid: { + rows: 3, + columns: 16, + spriteWidth: 16, + spriteHeight: 16 + } + }); + + const spriteFont = new ex.SpriteFont({ + alphabet: '0123456789abcdefghijklmnopqrstuvwxyz,!\'&."?- ', + caseInsensitive: true, + spacing: -5, + spriteSheet: spriteFontSheet, + scale: ex.vec(3, 3) + }); + + const sut = new ex.Text({ + text: 'Some Sprite Text!?', + font: spriteFont + }); + + const canvasElement = document.createElement('canvas'); + canvasElement.width = 200; + canvasElement.height = 100; + const ctx = new ex.ExcaliburGraphicsContext2DCanvas({ canvasElement }); + + ctx.clear(); + sut.draw(ctx, 0, 50); + expect(spriteFont.measureText('some test')).toEqual(ex.BoundingBox.fromDimension((16 - 5) * 9 * 3, 16 * 3, ex.vec(0, 0))); + await expectAsync(canvasElement).toEqualImage('src/spec/images/GraphicsTextSpec/spritefont-scaled.png'); + }); + it('can have a custom lineHeight', async () => { const spriteFontImage = new ex.ImageSource('src/spec/images/GraphicsTextSpec/spritefont.png'); diff --git a/src/spec/images/GraphicsTextSpec/spritefont-scaled.png b/src/spec/images/GraphicsTextSpec/spritefont-scaled.png new file mode 100644 index 0000000000000000000000000000000000000000..9a24b23fc419e54c41af62a9be472605b059bc88 GIT binary patch literal 1685 zcmeAS@N?(olHy`uVBq!ia0vp^CxAGGgAGU?ZmZ`8QjEnx?oJHr&dI!FU|{q2ba4!+ zhZ?~Pt+u}_IeUG+{@eQhhvQr81sV>dbH*G}C}Cr{#bUs5m$C7` zLW5%lKSzQ<6$6tLqn|*pbf70k!UPqk;AL(M%^7z(yqp-CRRm`lnKDVZJa!8aVvo(=EGs{+nzOGq(yy*Q@l?|5 zTW>e*s9K$K_lD`(?K+>H1-zF$x%}(SX|~E6OaD#06`iB|GrHvF6)FA6VS8hFivIjr zQBzSDa?jq<-k4-$74y-)o4=wCTO&EaMqwJoytzjxOBc)R@5 zzw7d+AH4#)x@>h$Y`pAzzx(^N)brz}UAB*#GWT!(sc-+TKm9bF-|LCS_h$j!SGDI) z6Id%1ZRyT)`_#gvtxGef|9r1w`s-C=>Q9mEJ%1BkGTv19D!47@*VFg?ldt=qcUwMp zZ*}VPciXiu*sZm%D~b@iUVgr=KIiV9U?umR=I!TuRWH`eI(u`)#;Kn^+~cPS zk^9Y>b&hX%oGyQS!&Lbbjf?LDC3s)(SaV(B>yFU=#e1LqkK20Y&Yx*__Q>ei?lfzj z)0=QQ@XgoDQ=^pKcZzo`-B?{)eSLmt|CFy5U5+}r`SFk6vU~flJFD=`=&kl%2eVXx zYFGL2Z$>N2<@4ulUfci0d9@hOpC7MONhL5!RCb9n3UzLkI2-i)h42!&w>m#vwrqG~ zUv;))-W1*-dH=P`8O0PPE{~X~)_-K4c=MITcQbT#e)q>2FH%o!{*pE6goHrmCy$)< zx7_C|+-vK}c=&hC#n-z2+`4~uODy?nvS4b%)23rg2A7^pjOccJ<-Kdyy=(ukS64}I zz3%$3a*s^TSI_nH-Xu-9cDW(#)BioYOz{)>O_*Ow($2HpD0(%B*1`PMXQ!r`Nv zeOxZTW9y7LwI#0qyPfMy#dg6(74_Cziax}NT$^UuKfO))m!sT9rRhd%uRq@FADDI` zF|D~mpDVjL;@G5{=N1V5RggYn^eTd(YQJuD^|xITo1WyXyc-mLBxah-o~5&dHil%@7?VA9Fuo_(_?!XD)QSQ!Hh{F#mx0Yx)zYu gvh+wJpI^^>d*_M%_gztGz