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);
			}