Pinta.Core.Document.GetLayersToPaint C# (CSharp) Method

GetLayersToPaint() public method

public GetLayersToPaint ( bool include_tool_layer = true ) : List
include_tool_layer bool
return List
        public List<Layer> GetLayersToPaint(bool include_tool_layer = true)
        {
            List<Layer> paint = new List<Layer> ();

            foreach (var layer in UserLayers) {
                if (!layer.Hidden)
                    paint.Add (layer);

                if (layer == CurrentUserLayer) {
                    if (!ToolLayer.Hidden && include_tool_layer)
                        paint.Add (ToolLayer);

                    if (ShowSelectionLayer && (!SelectionLayer.Hidden))
                        paint.Add (SelectionLayer);
                }

                if (!layer.Hidden)
                {
                    foreach (ReEditableLayer rel in layer.ReEditableLayers)
                    {
                        //Make sure that each UserLayer's ReEditableLayer is in use before adding it to the List of Layers to Paint.
                        if (rel.IsLayerSetup)
                        {
                            paint.Add(rel.Layer);
                        }
                    }
                }
            }

            return paint;
        }

Usage Example

Example #1
0
 /// <summary>
 /// Creates a thumbnail image preview of a document.
 /// </summary>
 private Cairo.ImageSurface CreateImagePreview(Document doc)
 {
     var surface = new Cairo.ImageSurface (Cairo.Format.Argb32, PreviewWidth, PreviewHeight);
     canvas_renderer.Initialize (doc.ImageSize, new Gdk.Size (PreviewWidth, PreviewHeight));
     canvas_renderer.Render (doc.GetLayersToPaint (), surface, Gdk.Point.Zero);
     return surface;
 }