@@ -882,7 +882,7 @@ describe('Core canvas behavior', () => {
882882 const colorSpace = CanvasKit . ColorSpace . SRGB ;
883883 const surface = CanvasKit . MakeCanvasSurface ( 'test' , CanvasKit . ColorSpace . SRGB ) ;
884884 expect ( surface ) . toBeTruthy ( 'Could not make surface' ) ;
885- let info = surface . imageInfo ( )
885+ let info = surface . imageInfo ( ) ;
886886 expect ( info . alphaType ) . toEqual ( CanvasKit . AlphaType . Unpremul ) ;
887887 expect ( info . colorType ) . toEqual ( CanvasKit . ColorType . RGBA_8888 ) ;
888888 expect ( CanvasKit . ColorSpace . Equals ( info . colorSpace , colorSpace ) )
@@ -900,7 +900,7 @@ describe('Core canvas behavior', () => {
900900 console . log ( 'Not expecting color space support in cpu backed suface.' ) ;
901901 return ;
902902 }
903- let info = surface . imageInfo ( )
903+ let info = surface . imageInfo ( ) ;
904904 expect ( info . alphaType ) . toEqual ( CanvasKit . AlphaType . Unpremul ) ;
905905 expect ( info . colorType ) . toEqual ( CanvasKit . ColorType . RGBA_F16 ) ;
906906 expect ( CanvasKit . ColorSpace . Equals ( info . colorSpace , colorSpace ) )
@@ -918,7 +918,7 @@ describe('Core canvas behavior', () => {
918918 console . log ( 'Not expecting color space support in cpu backed suface.' ) ;
919919 return ;
920920 }
921- let info = surface . imageInfo ( )
921+ let info = surface . imageInfo ( ) ;
922922 expect ( info . alphaType ) . toEqual ( CanvasKit . AlphaType . Unpremul ) ;
923923 expect ( info . colorType ) . toEqual ( CanvasKit . ColorType . RGBA_F16 ) ;
924924 expect ( CanvasKit . ColorSpace . Equals ( info . colorSpace , colorSpace ) )
@@ -1036,4 +1036,26 @@ describe('Core canvas behavior', () => {
10361036 expect ( expected [ i ] ) . toBeCloseTo ( actual [ i ] , 5 , `element ${ i } ` ) ;
10371037 }
10381038 }
1039+
1040+ it ( 'can create a RasterDirectSurface' , ( ) => {
1041+ // Make enough space for a 5x5 8888 surface (4 bytes for R, G, B, A)
1042+ const rdsData = CanvasKit . Malloc ( Uint8Array , 5 * 5 * 4 ) ;
1043+ const surface = CanvasKit . MakeRasterDirectSurface ( {
1044+ 'width' : 5 ,
1045+ 'height' : 5 ,
1046+ 'colorType' : CanvasKit . ColorType . RGBA_8888 ,
1047+ 'alphaType' : CanvasKit . AlphaType . Premul ,
1048+ 'colorSpace' : CanvasKit . ColorSpace . SRGB ,
1049+ } , rdsData , 5 * 4 ) ;
1050+
1051+ surface . getCanvas ( ) . clear ( CanvasKit . Color ( 200 , 100 , 0 , 0.8 ) ) ;
1052+ const pixels = rdsData . toTypedArray ( ) ;
1053+ // Check that the first pixels colors are right.
1054+ expect ( pixels [ 0 ] ) . toEqual ( 160 ) ; // red (premul, 0.8 * 200)
1055+ expect ( pixels [ 1 ] ) . toEqual ( 80 ) ; // green (premul, 0.8 * 100)
1056+ expect ( pixels [ 2 ] ) . toEqual ( 0 ) ; // blue (premul, not that it matters)
1057+ expect ( pixels [ 3 ] ) . toEqual ( 204 ) ; // alpha (0.8 * 255)
1058+ surface . delete ( ) ;
1059+ CanvasKit . Free ( rdsData ) ;
1060+ } ) ;
10391061} ) ;
0 commit comments