@@ -763,12 +763,13 @@ internal _ImageInfo(int width, int height, int format, int? rowBytes = null) {
763763 public int rowBytes ;
764764 }
765765
766- public class Image : NativeWrapperDisposable , IEquatable < Image > {
766+ public class Image : NativeWrapperCPtrDisposable , IEquatable < Image > {
767+
767768 internal Image ( IntPtr ptr ) : base ( ptr ) {
768769 }
769770
770- public override void DisposePtr ( IntPtr ptr ) {
771- Image_dispose ( ptr ) ;
771+ public override void DisposeCPtrImpl ( IntPtr ptr ) {
772+ Image_dispose ( ptr ) ;
772773 }
773774
774775 public int width => Image_width ( _ptr ) ;
@@ -880,18 +881,31 @@ public override int GetHashCode() {
880881
881882 public delegate void ImageDecoderCallback ( Image result ) ;
882883
883- public class FrameInfo : NativeWrapper {
884+ public class FrameInfo : NativeWrapperCPtrDisposable {
885+
884886 internal FrameInfo ( IntPtr ptr ) : base ( ptr ) {
885887 }
886888
887- public override void DisposePtr ( IntPtr ptr ) {
889+ public override void DisposeCPtrImpl ( IntPtr ptr ) {
888890 FrameInfo_dispose ( ptr ) ;
889891 }
890892
893+
891894 public TimeSpan duration => TimeSpan . FromMilliseconds ( _durationMillis ) ;
892895 int _durationMillis => FrameInfo_durationMillis ( _ptr ) ;
893896
894- public Image image => new Image ( FrameInfo_image ( _ptr ) ) ;
897+
898+ private Image _image ;
899+
900+ public Image image {
901+ get {
902+ if ( _image == null ) {
903+ _image = new Image ( FrameInfo_image ( _ptr ) ) ;
904+ }
905+
906+ return _image ;
907+ }
908+ }
895909
896910 [ DllImport ( NativeBindings . dllName ) ]
897911 static extern void FrameInfo_dispose ( IntPtr ptr ) ;
@@ -1055,11 +1069,11 @@ public enum PathOperation {
10551069 reverseDifference ,
10561070 }
10571071
1058- public abstract class EngineLayer : NativeWrapper {
1072+ public abstract class EngineLayer : NativeWrapperCPtrDisposable {
10591073 protected EngineLayer ( IntPtr ptr ) : base ( ptr ) {
10601074 }
10611075
1062- public override void DisposePtr ( IntPtr ptr ) {
1076+ public override void DisposeCPtrImpl ( IntPtr ptr ) {
10631077 EngineLayer_dispose ( ptr ) ;
10641078 }
10651079
@@ -2844,11 +2858,12 @@ static extern void Canvas_drawShadow(IntPtr ptr, IntPtr path, uint color, float
28442858 bool transparentOccluder ) ;
28452859 }
28462860
2847- public class Picture : NativeWrapperDisposable {
2861+ public class Picture : NativeWrapperCPtrDisposable {
2862+
28482863 internal Picture ( IntPtr ptr ) : base ( ptr ) {
28492864 }
28502865
2851- public override void DisposePtr ( IntPtr ptr ) {
2866+ public override void DisposeCPtrImpl ( IntPtr ptr ) {
28522867 Picture_dispose ( ptr ) ;
28532868 }
28542869
0 commit comments