private BitmapBrush CreateDirectBrush( ImageBrush brush, SharpDX.Direct2D1.RenderTarget target, Bitmap image, Rect sourceRect, Rect destinationRect) { var tileMode = brush.TileMode; var scale = brush.Stretch.CalculateScaling(destinationRect.Size, sourceRect.Size); var translate = CalculateTranslate(brush, sourceRect, destinationRect, scale); var transform = Matrix.CreateTranslation(-sourceRect.Position) * Matrix.CreateScale(scale) * Matrix.CreateTranslation(translate); var opts = new BrushProperties { Transform = transform.ToDirect2D(), Opacity = (float)brush.Opacity, }; var bitmapOpts = new BitmapBrushProperties { ExtendModeX = GetExtendModeX(tileMode), ExtendModeY = GetExtendModeY(tileMode), }; return new BitmapBrush(target, image, bitmapOpts, opts); }
/// <summary> /// Create the grid pattern (squares) brush /// </summary> /// <param name="target"></param> /// <returns></returns> BitmapBrush CreateGridPatternBrush(RenderTarget target) { // Create a compatible render target. BitmapRenderTarget compatibleRenderTarget = target.CreateCompatibleRenderTarget(CompatibleRenderTargetOptions.None, new SizeF(10.0f, 10.0f)); //// Draw a pattern. SolidColorBrush spGridBrush = compatibleRenderTarget.CreateSolidColorBrush(new ColorF(0.93f, 0.94f, 0.96f, 1.0f)); compatibleRenderTarget.BeginDraw(); compatibleRenderTarget.FillRectangle(new RectF(0.0f, 0.0f, 10.0f, 1.0f), spGridBrush); compatibleRenderTarget.FillRectangle(new RectF(0.0f, 0.1f, 1.0f, 10.0f), spGridBrush); compatibleRenderTarget.EndDraw(); //// Retrieve the bitmap from the render target. D2DBitmap spGridBitmap; spGridBitmap = compatibleRenderTarget.Bitmap; //// Choose the tiling mode for the bitmap brush. BitmapBrushProperties brushProperties = new BitmapBrushProperties(ExtendMode.Wrap, ExtendMode.Wrap, BitmapInterpolationMode.Linear); //// Create the bitmap brush. return(renderTarget.CreateBitmapBrush(spGridBitmap, brushProperties)); }
private BitmapBrush CreateDirectBrush( ImageBrush brush, SharpDX.Direct2D1.RenderTarget target, Bitmap image, Rect sourceRect, Rect destinationRect) { var tileMode = brush.TileMode; var scale = brush.Stretch.CalculateScaling(destinationRect.Size, sourceRect.Size); var translate = CalculateTranslate(brush, sourceRect, destinationRect, scale); var transform = Matrix.CreateTranslation(-sourceRect.Position) * Matrix.CreateScale(scale) * Matrix.CreateTranslation(translate); var opts = new BrushProperties { Transform = transform.ToDirect2D(), Opacity = (float)brush.Opacity, }; var bitmapOpts = new BitmapBrushProperties { ExtendModeX = GetExtendModeX(tileMode), ExtendModeY = GetExtendModeY(tileMode), }; return(new BitmapBrush(target, image, bitmapOpts, opts)); }
public D2DSpriteBitmapBrush(D2DSpriteBatch batch, D2DSpriteBitmap bitmap, BitmapBrushProperties bbp) { this._bitmap = bitmap; this._batch = batch; this._bitmapBrushProperties = bbp; this.Brush = new BitmapBrush(batch.DWRenderTarget, this._bitmap, bbp); this._batch.BatchDisposing += _batch_BatchDisposing; }
internal override void Create() { if (NativeBrush != null) { NativeBrush.Dispose(); } m_bitmap.Create(); var props = new BitmapBrushProperties(); props.InterpolationMode = BitmapInterpolationMode.Linear; NativeBrush = new BitmapBrush(Owner.D2dRenderTarget, m_bitmap.NativeBitmap, props); ExtendModeX = m_extendModeX; ExtendModeY = m_extendModeY; InterpolationMode = D2dBitmapInterpolationMode.Linear; Location = m_location; Bitmap = m_bitmap; }
/// <summary> /// Create the grid pattern (squares) brush /// </summary> /// <param name="target"></param> /// <returns></returns> BitmapBrush CreateGridPatternBrush(RenderTarget target) { // Create a compatible render target. BitmapRenderTarget compatibleRenderTarget = target.CreateCompatibleRenderTarget(CompatibleRenderTargetOptions.None, new SizeF(10.0f, 10.0f)); //// Draw a pattern. SolidColorBrush spGridBrush = compatibleRenderTarget.CreateSolidColorBrush(new ColorF(0.93f, 0.94f, 0.96f, 1.0f)); compatibleRenderTarget.BeginDraw(); compatibleRenderTarget.FillRectangle(new RectF(0.0f, 0.0f, 10.0f, 1.0f), spGridBrush); compatibleRenderTarget.FillRectangle(new RectF(0.0f, 0.1f, 1.0f, 10.0f), spGridBrush); compatibleRenderTarget.EndDraw(); //// Retrieve the bitmap from the render target. D2DBitmap spGridBitmap; spGridBitmap = compatibleRenderTarget.Bitmap; //// Choose the tiling mode for the bitmap brush. BitmapBrushProperties brushProperties = new BitmapBrushProperties(ExtendMode.Wrap, ExtendMode.Wrap, BitmapInterpolationMode.Linear); //// Create the bitmap brush. return renderTarget.CreateBitmapBrush(spGridBitmap, brushProperties); }
internal override void Create() { if (NativeBrush != null) NativeBrush.Dispose(); m_bitmap.Create(); var props = new BitmapBrushProperties(); props.InterpolationMode = BitmapInterpolationMode.Linear; NativeBrush = new BitmapBrush(Owner.D2dRenderTarget, m_bitmap.NativeBitmap, props); ExtendModeX = m_extendModeX; ExtendModeY = m_extendModeY; InterpolationMode = D2dBitmapInterpolationMode.Linear; Location = m_location; Bitmap = m_bitmap; }
private static void ConfigureBitmapBrush(out BitmapBrushProperties description) { description.InterpolationMode = BitmapInterpolationMode.Linear; description.ExtendModeX = ExtendMode.Wrap; description.ExtendModeY = ExtendMode.Wrap; }
public D2DSpriteBitmapBrush CreateBitmapBrush(Stream fileStream, BitmapBrushProperties bbp = new BitmapBrushProperties()) { return(new D2DSpriteBitmapBrush(this, CreateBitmap(fileStream), bbp)); }
public D2DSpriteBitmapBrush CreateBitmapBrush(string fileName, BitmapBrushProperties bbp = new BitmapBrushProperties()) { return(new D2DSpriteBitmapBrush(this, CreateBitmap(fileName), bbp)); }
BrushAsset IAssetManager.LoadBrush(Bitmap bitmap, BitmapBrushProperties? bitmapProps, BrushProperties? brushProps) { return _assetManager.LoadBrush(bitmap, bitmapProps, brushProps); }
public BitmapBrushDescription(Bitmap bitmap, BitmapBrushProperties? bitmapProps, BrushProperties? brushProps) { Bitmap = bitmap; BitmapBrushProps = bitmapProps; BrushProps = brushProps; }
BrushAsset IAssetManager.LoadBrush(Bitmap bitmap, BitmapBrushProperties? bitmapBrushProps, BrushProperties? brushProps) { /// TODFO: THis needs to be finished!!!! BitmapBrush brush = new BitmapBrush(RenderTarget2D, bitmap, bitmapBrushProps, brushProps); return new BrushAsset(brush); }
public static Brush GetPatternBrush(RenderTarget renderTarget, System.Drawing.Color fillColor, float opacity, xPFT.Charting.Base.FillPattern fillPattern, float patternSize = 10) { if (renderTarget != null) { BitmapRenderTarget brt = new BitmapRenderTarget(renderTarget, CompatibleRenderTargetOptions.None, new SharpDX.Size2F(patternSize, patternSize)); Brush tempBrush = new SolidColorBrush(brt, xPFT.DrawingBase.Convertor.ColorConvertor(fillColor, opacity)); if (fillPattern == xPFT.Charting.Base.FillPattern.Solid) { return(tempBrush); } brt.BeginDraw(); brt.Clear(Color.Transparent); switch (fillPattern) { case xPFT.Charting.Base.FillPattern.Hachure_Double: brt.DrawLine(new SharpDX.Vector2(0, 0), new SharpDX.Vector2(patternSize, patternSize), tempBrush, 1); brt.DrawLine(new SharpDX.Vector2(patternSize, 0), new SharpDX.Vector2(0, patternSize), tempBrush, 1); break; case xPFT.Charting.Base.FillPattern.Hachure: brt.DrawLine(new SharpDX.Vector2(patternSize, 0), new SharpDX.Vector2(0, patternSize), tempBrush, 0.5f); break; case xPFT.Charting.Base.FillPattern.Hashure_Back: brt.DrawLine(new SharpDX.Vector2(0, 0), new SharpDX.Vector2(patternSize, patternSize), tempBrush, 0.5f); break; case xPFT.Charting.Base.FillPattern.Dash: brt.DrawLine(new SharpDX.Vector2(0, patternSize / 4), new SharpDX.Vector2(patternSize / 4, patternSize / 4), tempBrush, 0.5f); brt.DrawLine(new SharpDX.Vector2(patternSize * 3 / 4, patternSize / 4), new SharpDX.Vector2(patternSize, patternSize / 4), tempBrush, 0.5f); brt.DrawLine(new SharpDX.Vector2(patternSize / 4, patternSize * 3 / 4), new SharpDX.Vector2(patternSize * 3 / 4, patternSize * 3 / 4), tempBrush, 0.5f); break; case xPFT.Charting.Base.FillPattern.Squre: brt.DrawLine(new SharpDX.Vector2(0, patternSize / 2), new SharpDX.Vector2(patternSize, patternSize / 2), tempBrush, 0.5f); brt.DrawLine(new SharpDX.Vector2(patternSize / 2, 0), new SharpDX.Vector2(patternSize / 2, patternSize), tempBrush, 0.5f); break; case xPFT.Charting.Base.FillPattern.Dot: brt.FillEllipse(new SharpDX.Direct2D1.Ellipse(new SharpDX.Vector2(patternSize / 4, patternSize / 4), 1, 1), tempBrush); brt.FillEllipse(new SharpDX.Direct2D1.Ellipse(new SharpDX.Vector2(patternSize / 4, patternSize * 3 / 4), 1, 1), tempBrush); brt.FillEllipse(new SharpDX.Direct2D1.Ellipse(new SharpDX.Vector2(patternSize * 3 / 4, patternSize / 4), 1, 1), tempBrush); brt.FillEllipse(new SharpDX.Direct2D1.Ellipse(new SharpDX.Vector2(patternSize * 3 / 4, patternSize * 3 / 4), 1, 1), tempBrush); break; case xPFT.Charting.Base.FillPattern.Zig_Zag_Horizontal: brt.DrawLine(new SharpDX.Vector2(0, patternSize / 2), new SharpDX.Vector2(patternSize / 2, 0), tempBrush, 0.5f); brt.DrawLine(new SharpDX.Vector2(patternSize, patternSize / 2), new SharpDX.Vector2(patternSize / 2, 0), tempBrush, 0.5f); brt.DrawLine(new SharpDX.Vector2(0, patternSize), new SharpDX.Vector2(patternSize / 2, patternSize / 2), tempBrush, 0.5f); brt.DrawLine(new SharpDX.Vector2(patternSize, patternSize), new SharpDX.Vector2(patternSize / 2, patternSize / 2), tempBrush, 0.5f); break; case xPFT.Charting.Base.FillPattern.Zig_Zag_Vertical: brt.DrawLine(new SharpDX.Vector2(patternSize / 2, 0), new SharpDX.Vector2(0, patternSize / 2), tempBrush, 0.5f); brt.DrawLine(new SharpDX.Vector2(patternSize / 2, patternSize), new SharpDX.Vector2(0, patternSize / 2), tempBrush, 0.5f); brt.DrawLine(new SharpDX.Vector2(patternSize, 0), new SharpDX.Vector2(patternSize / 2, patternSize / 2), tempBrush, 0.5f); brt.DrawLine(new SharpDX.Vector2(patternSize, patternSize), new SharpDX.Vector2(patternSize / 2, patternSize / 2), tempBrush, 0.5f); break; } brt.EndDraw(); BitmapBrushProperties bmpbp = new BitmapBrushProperties(); bmpbp.ExtendModeX = ExtendMode.Wrap; bmpbp.ExtendModeY = ExtendMode.Wrap; bmpbp.InterpolationMode = BitmapInterpolationMode.Linear; BitmapBrush br = new BitmapBrush(brt, brt.Bitmap, bmpbp); tempBrush.Dispose(); brt.Dispose(); return(br); } else { return(null); } }