Clone() public method

public Clone ( ) : BaseEffect
return BaseEffect
示例#1
0
        internal void Start(BaseEffect effect,
                            Cairo.ImageSurface source,
                            Cairo.ImageSurface dest,
                            Gdk.Rectangle renderBounds)
        {
            Debug.WriteLine("AsyncEffectRenderer.Start ()");

            if (effect == null)
            {
                throw new ArgumentNullException("effect");
            }

            if (source == null)
            {
                throw new ArgumentNullException("source");
            }

            if (dest == null)
            {
                throw new ArgumentNullException("dest");
            }

            if (renderBounds.IsEmpty)
            {
                throw new ArgumentException("renderBounds.IsEmpty");
            }

            // It is important the effect's properties don't change during rendering.
            // So a copy is made for the render.
            this.effect = effect.Clone();

            this.source_surface = source;
            this.dest_surface   = dest;
            this.render_bounds  = renderBounds;

            // If a render is already in progress, then cancel it,
            // and start a new render.
            if (IsRendering)
            {
                cancel_render_flag  = true;
                restart_render_flag = true;
                return;
            }

            StartRender();
        }
示例#2
0
		internal void Start (BaseEffect effect,
		                     Cairo.ImageSurface source,
		                     Cairo.ImageSurface dest,
		                     Gdk.Rectangle renderBounds)
		{
			Debug.WriteLine ("AsyncEffectRenderer.Start ()");
			
			if (effect == null)
				throw new ArgumentNullException ("effect");
			
			if (source == null)
				throw new ArgumentNullException ("source");
			
			if (dest == null)
				throw new ArgumentNullException ("dest");
			
			if (renderBounds.IsEmpty)
				throw new ArgumentException ("renderBounds.IsEmpty");
			
			// It is important the effect's properties don't change during rendering.
			// So a copy is made for the render.
			this.effect = effect.Clone();
			
			this.source_surface = source;
			this.dest_surface = dest;
			this.render_bounds = renderBounds;
			
			// If a render is already in progress, then cancel it,
			// and start a new render.
			if (IsRendering) {
				cancel_render_flag = true;
				restart_render_flag = true;
				return;
			}
			
			StartRender ();
		}