@@ -579,19 +579,21 @@ class(`Join`) <- c("Join__bundle", "savvy_skiagd__sealed")
579
579
# ' * miter: Stroke miter.
580
580
# ' * blend_mode: BlendMode.
581
581
# ' * path_effect: PathEffect.
582
+ # ' * shader: Shader.
582
583
# '
583
584
# ' @noRd
584
585
`PaintAttrs` <- new.env(parent = emptyenv())
585
586
586
587
# ## associated functions for PaintAttrs
587
588
588
- `PaintAttrs` $ `set_attrs` <- function (`color` , `style` , `join` , `cap` , `width` , `miter` , `blend_mode` , `path_effect` ) {
589
+ `PaintAttrs` $ `set_attrs` <- function (`color` , `style` , `join` , `cap` , `width` , `miter` , `blend_mode` , `path_effect` , `shader` ) {
589
590
`style` <- .savvy_extract_ptr(`style` , " Style" )
590
591
`join` <- .savvy_extract_ptr(`join` , " Join" )
591
592
`cap` <- .savvy_extract_ptr(`cap` , " Cap" )
592
593
`blend_mode` <- .savvy_extract_ptr(`blend_mode` , " BlendMode" )
593
594
`path_effect` <- .savvy_extract_ptr(`path_effect` , " PathEffect" )
594
- .savvy_wrap_PaintAttrs(.Call(savvy_PaintAttrs_set_attrs__impl , `color` , `style` , `join` , `cap` , `width` , `miter` , `blend_mode` , `path_effect` ))
595
+ `shader` <- .savvy_extract_ptr(`shader` , " Shader" )
596
+ .savvy_wrap_PaintAttrs(.Call(savvy_PaintAttrs_set_attrs__impl , `color` , `style` , `join` , `cap` , `width` , `miter` , `blend_mode` , `path_effect` , `shader` ))
595
597
}
596
598
597
599
@@ -762,6 +764,91 @@ class(`PointMode`) <- c("PointMode__bundle", "savvy_skiagd__sealed")
762
764
cat(' PointMode\n ' )
763
765
}
764
766
767
+ # ## wrapper functions for Shader
768
+
769
+ `Shader_get_label` <- function (self ) {
770
+ function () {
771
+ .Call(savvy_Shader_get_label__impl , `self` )
772
+ }
773
+ }
774
+
775
+ `.savvy_wrap_Shader` <- function (ptr ) {
776
+ e <- new.env(parent = emptyenv())
777
+ e $ .ptr <- ptr
778
+ e $ `get_label` <- `Shader_get_label`(ptr )
779
+
780
+ class(e ) <- c(" Shader" , " savvy_skiagd__sealed" )
781
+ e
782
+ }
783
+
784
+
785
+ # ' Shader
786
+ # '
787
+ # ' @seealso
788
+ # ' * [Gradients | React Native Skia](https://shopify.github.io/react-native-skia/docs/shaders/gradients)
789
+ # ' * [Perlin Noise Shaders | React Native Skia](https://shopify.github.io/react-native-skia/docs/shaders/perlin-noise)
790
+ # ' * [Blending and Colors | React Native Skia](https://shopify.github.io/react-native-skia/docs/shaders/colors)
791
+ # ' @export
792
+ `Shader` <- new.env(parent = emptyenv())
793
+
794
+ # ## associated functions for Shader
795
+
796
+ `Shader` $ `blend` <- function (`mode` , `dst` , `src` ) {
797
+ `mode` <- .savvy_extract_ptr(`mode` , " BlendMode" )
798
+ `dst` <- .savvy_extract_ptr(`dst` , " Shader" )
799
+ `src` <- .savvy_extract_ptr(`src` , " Shader" )
800
+ .savvy_wrap_Shader(.Call(savvy_Shader_blend__impl , `mode` , `dst` , `src` ))
801
+ }
802
+
803
+ `Shader` $ `color` <- function (`color` ) {
804
+ .savvy_wrap_Shader(.Call(savvy_Shader_color__impl , `color` ))
805
+ }
806
+
807
+ `Shader` $ `conical_gradient` <- function (`start` , `end` , `radii` , `from` , `to` , `mode` , `flags` , `mat` ) {
808
+ `mode` <- .savvy_extract_ptr(`mode` , " TileMode" )
809
+ .savvy_wrap_Shader(.Call(savvy_Shader_conical_gradient__impl , `start` , `end` , `radii` , `from` , `to` , `mode` , `flags` , `mat` ))
810
+ }
811
+
812
+ `Shader` $ `fractal_noise` <- function (`freq` , `octaves` , `seed` , `tile_size` ) {
813
+ .savvy_wrap_Shader(.Call(savvy_Shader_fractal_noise__impl , `freq` , `octaves` , `seed` , `tile_size` ))
814
+ }
815
+
816
+ `Shader` $ `from_png` <- function (`png_bytes` , `mode` , `mat` ) {
817
+ `mode` <- .savvy_extract_ptr(`mode` , " TileMode" )
818
+ .savvy_wrap_Shader(.Call(savvy_Shader_from_png__impl , `png_bytes` , `mode` , `mat` ))
819
+ }
820
+
821
+ `Shader` $ `linear_gradient` <- function (`start` , `end` , `from` , `to` , `mode` , `flags` , `mat` ) {
822
+ `mode` <- .savvy_extract_ptr(`mode` , " TileMode" )
823
+ .savvy_wrap_Shader(.Call(savvy_Shader_linear_gradient__impl , `start` , `end` , `from` , `to` , `mode` , `flags` , `mat` ))
824
+ }
825
+
826
+ `Shader` $ `no_shader` <- function () {
827
+ .savvy_wrap_Shader(.Call(savvy_Shader_no_shader__impl ))
828
+ }
829
+
830
+ `Shader` $ `radial_gradient` <- function (`center` , `radius` , `from` , `to` , `mode` , `flags` , `mat` ) {
831
+ `mode` <- .savvy_extract_ptr(`mode` , " TileMode" )
832
+ .savvy_wrap_Shader(.Call(savvy_Shader_radial_gradient__impl , `center` , `radius` , `from` , `to` , `mode` , `flags` , `mat` ))
833
+ }
834
+
835
+ `Shader` $ `sweep_gradient` <- function (`center` , `start` , `end` , `from` , `to` , `mode` , `flags` , `mat` ) {
836
+ `mode` <- .savvy_extract_ptr(`mode` , " TileMode" )
837
+ .savvy_wrap_Shader(.Call(savvy_Shader_sweep_gradient__impl , `center` , `start` , `end` , `from` , `to` , `mode` , `flags` , `mat` ))
838
+ }
839
+
840
+ `Shader` $ `turbulence` <- function (`freq` , `octaves` , `seed` , `tile_size` ) {
841
+ .savvy_wrap_Shader(.Call(savvy_Shader_turbulence__impl , `freq` , `octaves` , `seed` , `tile_size` ))
842
+ }
843
+
844
+
845
+ class(`Shader` ) <- c(" Shader__bundle" , " savvy_skiagd__sealed" )
846
+
847
+ # ' @export
848
+ `print.Shader__bundle` <- function (x , ... ) {
849
+ cat(' Shader\n ' )
850
+ }
851
+
765
852
# ## wrapper functions for Style
766
853
767
854
@@ -838,3 +925,69 @@ class(`Style`) <- c("Style__bundle", "savvy_skiagd__sealed")
838
925
cat(' Style\n ' )
839
926
}
840
927
928
+ # ## wrapper functions for TileMode
929
+
930
+
931
+ `.savvy_wrap_TileMode` <- function (ptr ) {
932
+ e <- new.env(parent = emptyenv())
933
+ e $ .ptr <- ptr
934
+
935
+
936
+ class(e ) <- c(" TileMode" , " savvy_skiagd__sealed" )
937
+ e
938
+ }
939
+
940
+
941
+ # ' TileMode (0-3)
942
+ # '
943
+ # ' @export
944
+ `TileMode` <- new.env(parent = emptyenv())
945
+ `TileMode` $ `Clamp` <- .savvy_wrap_TileMode(0L )
946
+ `TileMode` $ `Repeat` <- .savvy_wrap_TileMode(1L )
947
+ `TileMode` $ `Mirror` <- .savvy_wrap_TileMode(2L )
948
+ `TileMode` $ `Decal` <- .savvy_wrap_TileMode(3L )
949
+
950
+ # ' @export
951
+ `$.TileMode__bundle` <- function (x , name ) {
952
+ if (! name %in% c(" Clamp" , " Repeat" , " Mirror" , " Decal" )) {
953
+ stop(paste0(" Unknown variant: " , name ), call. = FALSE )
954
+ }
955
+
956
+ NextMethod()
957
+ }
958
+
959
+ # ' @export
960
+ `[[.TileMode__bundle` <- function (x , i ) {
961
+ if (is.numeric(i )) {
962
+ stop(" TileMode cannot be subset by index" , call. = FALSE )
963
+ }
964
+
965
+ if (! i %in% c(" Clamp" , " Repeat" , " Mirror" , " Decal" )) {
966
+ stop(paste0(" Unknown variant: " , i ), call. = FALSE )
967
+ }
968
+
969
+ NextMethod()
970
+ }
971
+
972
+ # ' @export
973
+ `print.TileMode` <- function (x , ... ) {
974
+ idx <- x $ .ptr + 1L
975
+ label <- c(" Clamp" , " Repeat" , " Mirror" , " Decal" )[idx ]
976
+ if (is.na(label )) {
977
+ stop(" Unexpected value for TileMode" , call. = TRUE )
978
+ }
979
+ cat(" TileMode::" , label , " \n " , sep = " " )
980
+ }
981
+
982
+
983
+ # ## associated functions for TileMode
984
+
985
+
986
+
987
+ class(`TileMode` ) <- c(" TileMode__bundle" , " savvy_skiagd__sealed" )
988
+
989
+ # ' @export
990
+ `print.TileMode__bundle` <- function (x , ... ) {
991
+ cat(' TileMode\n ' )
992
+ }
993
+
0 commit comments