'Classes/System/Drawing/TextureBrush.ab #require #require #require #require #require #require #require Namespace System Namespace Drawing Class TextureBrush Inherits Brush Public Sub TextureBrush(image As Image, wrapMode = Drawing2D.WrapMode.Tile As Drawing2D.WrapMode) Dim texture = 0 As *GpTexture lastResult = GdiPlus.DllExports.GdipCreateTexture(image.NativeImage, wrapMode, texture) SetNativeBrush(texture) End Sub Sub TextureBrush(image As Image, wrapMode As Drawing2D.WrapMode, dstRect As /*Const*/ RectangeF) Dim texture = 0 As *GpTexture lastResult = GdiPlus.DllExports.GdipCreateTexture2(image.NativeImage, wrapMode, dstRect.X, dstRect.Y, dstRect.Width, dstRect.Height, texture) SetNativeBrush(texture) End Sub Sub TextureBrush(image As Image, dstRect As /*Const*/ RectangeF, imageAttributes = Nothing As /*Const*/ Imaging.ImageAttributes) Dim texture = 0 As *GpTexture lastResult = GdiPlus.DllExports.GdipCreateTextureIA(image.nativeImage, Imaging.ImageAttributes.Native(imageAttributes), dstRect.X, dstRect.Y, dstRect.Width, dstRect.Height, texture) SetNativeBrush(texture) End Sub Sub TextureBrush(image As Image, dstRect As /*Const*/ Rectange, imageAttributes = Nothing As /*Const*/ Imaging.ImageAttributes) Dim texture = 0 As *GpTexture lastResult = GdiPlus.DllExports.GdipCreateTextureIAI(image.nativeImage, Imaging.ImageAttributes.Native(imageAttributes), dstRect.X, dstRect.Y, dstRect.Width, dstRect.Height, texture) SetNativeBrush(texture) End Sub Sub TextureBrush(image As Image, wrapMode As Drawing2D.WrapMode, dstRect As /*Const*/ Rectange) Dim texture = 0 As *GpTexture lastResult = GdiPlus.DllExports.GdipCreateTexture2I(image.NativeImage, wrapMode, dstRect.X, dstRect.Y, dstRect.Width, dstRect.Height, texture) SetNativeBrush(texture) End Sub Sub TextureBrush(image As Image, wrapMode As Drawing2D.WrapMode, dstX As Single, dstY As Single, dstWidth As Single, dstHeight As Single) Dim texture = 0 As *GpTexture lastResult = GdiPlus.DllExports.GdipCreateTexture2(image.nativeImage, wrapMode, dstX, dstY, dstWidth, dstHeight, texture) SetNativeBrush(texture) End Sub Sub TextureBrush(image As Image, wrapMode As Drawing2D.WrapMode, dstX As Long, dstY As Long, dstWidth As Long, dstHeight As Long) Dim texture = 0 As *GpTexture lastResult = GdiPlus.DllExports.GdipCreateTexture2I(image.nativeImage, wrapMode, dstX, dstY, dstWidth, dstHeight, texture) SetNativeBrush(texture) End Sub Function Transform(matrix As /*Const*/ Drawing2D.Matrix) As Gdiplus.Status return SetStatus(GdiPlus.DllExports.GdipSetTextureTransform(nativeBrush As *GpTexture, matrix.NativeMatrix)) End Function Const Function Transform() As Drawing2D.Matrix Transform = New Drawing2D.Matrix SetStatus(GdiPlus.DllExports.GdipGetTextureTransform(nativeBrush As *GpTexture, Transform.NativeMatrix)) End Function Function ResetTransform() As Gdiplus.Status return SetStatus(GdiPlus.DllExports.GdipResetTextureTransform(nativeBrush As *GpTexture)) End Function Function MultiplyTransform(matrix As /*Const*/ Drawing2D.Matrix, order = Drawing2D.MatrixOrder.Prepend As Drawing2D.MatrixOrder) As Gdiplus.Status return SetStatus(GdiPlus.DllExports.GdipMultiplyTextureTransform(nativeBrush As *GpTexture, matrix.NativeMatrix, order)) End Function Function TranslateTransform(dx As Single, dy As Single, order = Drawing2D.MatrixOrder.Prepend As Drawing2D.MatrixOrder) As Gdiplus.Status return SetStatus(GdiPlus.DllExports.GdipTranslateTextureTransform(nativeBrush As *GpTexture, dx, dy, order)) End Function Function ScaleTransform(sx As Single, sy As Single, order = Drawing2D.MatrixOrder.Prepend As Drawing2D.MatrixOrder) As Gdiplus.Status return SetStatus(GdiPlus.DllExports.GdipScaleTextureTransform(nativeBrush As *GpTexture, sx, sy, order)) End Function Function RotateTransform(angle As Single, order = Drawing2D.MatrixOrder.Prepend As Drawing2D.MatrixOrder) As Gdiplus.Status return SetStatus(GdiPlus.DllExports.GdipRotateTextureTransform(nativeBrush As *GpTexture, angle, order)) End Function Function WrapMode(wrapMode As Drawing2D.WrapMode) As Gdiplus.Status return SetStatus(GdiPlus.DllExports.GdipSetTextureWrapMode(nativeBrush As *GpTexture, wrapMode)) End Function Const Function WrapMode() As Drawing2D.WrapMode SetStatus(GdiPlus.DllExports.GdipGetTextureWrapMode(nativeBrush As *GpTexture, WrapMode) End Function Const Function Image() As Image Dim image As *GpImage SetStatus(GdiPlus.DllExports.GdipGetTextureImage(nativeBrush As *GpTexture, image)) Image = New Image(image, lastResult) If Object.ReferenceEquals(Image, Nothing) Then GdiPlus.DllExports.GdipDisposeImage(image) End If End Function 'protected: Sub TextureBrush() End Sub End Class End Namespace 'Drawing End Namespace 'System