@@ -382,7 +382,7 @@ visualSuite("WebGPU", function () {
382382 p5 . shader ( shader ) ;
383383 p5 . plane ( 20 , 20 ) ;
384384 await screenshot ( ) ;
385- } , { focus : true } ) ;
385+ } ) ;
386386 } ) ;
387387
388388 visualTest ( 'randomGaussian() colors a basic shader (WebGPU)' , async function ( p5 , screenshot ) {
@@ -1664,6 +1664,74 @@ visualTest('randomGaussian() in a fragment loop averages to the mean (WebGPU)',
16641664 ) ;
16651665 } ) ;
16661666
1667+ visualSuite ( '2D Shapes' , function ( ) {
1668+ visualTest ( 'TRIANGLE_FAN with per-vertex fills' , async function ( p5 , screenshot ) {
1669+ await p5 . createCanvas ( 50 , 50 , p5 . WEBGPU ) ;
1670+ p5 . background ( 255 ) ;
1671+ p5 . beginShape ( p5 . TRIANGLE_FAN ) ;
1672+ p5 . fill ( 'red' ) ;
1673+ p5 . vertex ( 0 , 0 ) ;
1674+ const n = 10 ;
1675+ const r = 20 ;
1676+ p5 . fill ( 'blue' ) ;
1677+ for ( let i = 0 ; i <= n ; i ++ ) {
1678+ const angle = i / n * p5 . TWO_PI ;
1679+ p5 . vertex ( r * p5 . cos ( angle ) , r * p5 . sin ( angle ) ) ;
1680+ }
1681+ p5 . endShape ( ) ;
1682+ await screenshot ( ) ;
1683+ } ) ;
1684+
1685+ visualTest ( 'TRIANGLE_FAN in p5.Geometry with per-vertex fills' , async function ( p5 , screenshot ) {
1686+ await p5 . createCanvas ( 50 , 50 , p5 . WEBGPU ) ;
1687+ p5 . background ( 255 ) ;
1688+ const geom = p5 . buildGeometry ( ( ) => {
1689+ p5 . beginShape ( p5 . TRIANGLE_FAN ) ;
1690+ p5 . fill ( 'red' ) ;
1691+ p5 . vertex ( 0 , 0 ) ;
1692+ const n = 10 ;
1693+ const r = 20 ;
1694+ p5 . fill ( 'blue' ) ;
1695+ for ( let i = 0 ; i <= n ; i ++ ) {
1696+ const angle = i / n * p5 . TWO_PI ;
1697+ p5 . vertex ( r * p5 . cos ( angle ) , r * p5 . sin ( angle ) ) ;
1698+ }
1699+ p5 . endShape ( ) ;
1700+ } ) ;
1701+ p5 . model ( geom ) ;
1702+ await screenshot ( ) ;
1703+ } ) ;
1704+
1705+ visualTest ( 'TRIANGLE_STRIP with per-vertex fills' , async function ( p5 , screenshot ) {
1706+ await p5 . createCanvas ( 50 , 50 , p5 . WEBGPU ) ;
1707+ p5 . background ( 255 ) ;
1708+ p5 . beginShape ( p5 . TRIANGLE_STRIP ) ;
1709+ const n = 6 ;
1710+ for ( let i = 0 ; i < n ; i ++ ) {
1711+ p5 . fill ( i % 2 === 0 ? 'red' : 'blue' ) ;
1712+ p5 . vertex ( p5 . map ( i , 0 , n - 1 , - 20 , 20 ) , i % 2 === 0 ? - 10 : 10 ) ;
1713+ }
1714+ p5 . endShape ( ) ;
1715+ await screenshot ( ) ;
1716+ } ) ;
1717+
1718+ visualTest ( 'TRIANGLE_STRIP in p5.Geometry with per-vertex fills' , async function ( p5 , screenshot ) {
1719+ await p5 . createCanvas ( 50 , 50 , p5 . WEBGPU ) ;
1720+ p5 . background ( 255 ) ;
1721+ const geom = p5 . buildGeometry ( ( ) => {
1722+ p5 . beginShape ( p5 . TRIANGLE_STRIP ) ;
1723+ const n = 6 ;
1724+ for ( let i = 0 ; i < n ; i ++ ) {
1725+ p5 . fill ( i % 2 === 0 ? 'red' : 'blue' ) ;
1726+ p5 . vertex ( p5 . map ( i , 0 , n - 1 , - 20 , 20 ) , i % 2 === 0 ? - 10 : 10 ) ;
1727+ }
1728+ p5 . endShape ( ) ;
1729+ } ) ;
1730+ p5 . model ( geom ) ;
1731+ await screenshot ( ) ;
1732+ } ) ;
1733+ } ) ;
1734+
16671735 visualSuite ( 'Feedback' , function ( ) {
16681736 visualTest (
16691737 'Drawing accumulates across frames when background is set in setup' ,
0 commit comments