internal void CloneTo(DrawTarget clone, bool cloneModifiers, bool cloneDrawList) { clone.activeModifiers = new List<IBeginEndDraw>(); clone.camera = this.camera; clone.drawList = cloneDrawList ? new List<IDraw>(this.drawList) : new List<IDraw>(); if (this.modifiers != null) { clone.modifiers = cloneModifiers ? new List<IBeginEndDraw>(this.modifiers) : null; if (clone.modifiers != null) clone.activeModifiers = new List<IBeginEndDraw>(clone.modifiers.Capacity); } clone.rendering = false; clone.enabled = true; clone.bufferClear = new ClearBufferModifier(true); clone.bufferClear.ClearColour = this.bufferClear.ClearColour; clone.bufferClear.ClearColourEnabled = this.bufferClear.ClearColourEnabled; clone.bufferClear.ClearDepth = this.bufferClear.ClearDepth; clone.bufferClear.ClearDepthEnabled = this.bufferClear.ClearDepthEnabled; clone.bufferClear.ClearStencilEnabled = this.bufferClear.ClearStencilEnabled; clone.bufferClear.ClearStencilValue = this.bufferClear.ClearStencilValue; clone.bufferClear.Enabled = this.bufferClear.Enabled; }
void ICamera.ProjectFromTarget(ref Vector2 coordinate, float projectDepth, out Vector3 position, DrawTarget target) { camera.ProjectFromTarget(ref coordinate, projectDepth, out position, target); }
/// <summary> /// <para>Attempt to get the layout (position and size) of this element</para> /// <para>The draw target the element is draw to must be specified</para> /// <para>Note this operation can be quite expensive if performed multiple times per frame</para> /// </summary> /// <param name="position"></param> /// <param name="size"></param> /// <param name="drawTarget"></param> /// <returns></returns> public bool TryGetLayout(out Vector2 position, out Vector2 size, DrawTarget drawTarget) { return TryGetLayout(out position, out size, drawTarget.Size); }
bool ICamera.ProjectToTarget(ref Vector3 position, out Vector2 coordinate, DrawTarget target) { return camera.ProjectToTarget(ref position, out coordinate, target); }