public ScratchRenderTarget(RenderCoordinator coordinator, UIContext context) { Context = context; int width = (int)(context.CanvasSize.X * context.ScratchScaleFactor), height = (int)(context.CanvasSize.Y * context.ScratchScaleFactor); Instance = new AutoRenderTarget( coordinator, width, height, false, Context.ScratchSurfaceFormat, DepthFormat.Depth24Stencil8 ); }
public override void Issue(DeviceManager manager) { var single = Single; if (SingleAuto != null) { single = SingleAuto.Get(); } var isValid = true; if (Multiple != null) { foreach (var rt in Multiple) { if (!AutoRenderTarget.IsRenderTargetValid(rt.RenderTarget)) { isValid = false; } } if (!isValid) { if (IgnoreInvalidRenderTargets) { MarkAsIssued(); return; } else { throw new ObjectDisposedException("Invalid render target for batch group " + Name); } } manager.PushRenderTargets(Multiple); } else { if (single != null && (!AutoRenderTarget.IsRenderTargetValid(single))) { isValid = false; } if (!isValid) { if (IgnoreInvalidRenderTargets) { MarkAsIssued(); return; } else { throw new ObjectDisposedException("Invalid render target for batch group " + Name); } } manager.PushRenderTarget(single); } try { base.Issue(manager); } finally { manager.PopRenderTarget(); } }