Blame mono/Diagram/DiaSynfig.cs

Ivan Mahonin 777717
/*
Ivan Mahonin 777717
    ......... 2015 Ivan Mahonin
Ivan Mahonin 777717
Ivan Mahonin 777717
    This program is free software: you can redistribute it and/or modify
Ivan Mahonin 777717
    it under the terms of the GNU General Public License as published by
Ivan Mahonin 777717
    the Free Software Foundation, either version 3 of the License, or
Ivan Mahonin 777717
    (at your option) any later version.
Ivan Mahonin 777717
Ivan Mahonin 777717
    This program is distributed in the hope that it will be useful,
Ivan Mahonin 777717
    but WITHOUT ANY WARRANTY; without even the implied warranty of
Ivan Mahonin 777717
    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
Ivan Mahonin 777717
    GNU General Public License for more details.
Ivan Mahonin 777717
Ivan Mahonin 777717
    You should have received a copy of the GNU General Public License
Ivan Mahonin 777717
    along with this program.  If not, see <http://www.gnu.org/licenses/>.
Ivan Mahonin 777717
*/
Ivan Mahonin 777717
Ivan Mahonin 777717
using System;
Ivan Mahonin 8cb222
using System.Drawing;
Ivan Mahonin 8cb222
Ivan Mahonin 8cb222
namespace Diagram {
Ivan Mahonin 8cb222
    public class DiaSynfig {
Ivan Mahonin 8cb222
        public static Diagram build() {
Ivan Mahonin 8cb222
            Color colorSW = Color.DarkRed;
Ivan Mahonin 8cb222
            Color colorCommon = Color.Black;
Ivan Mahonin 8cb222
            Color colorGL = Color.DarkBlue;
Ivan Mahonin 8cb222
Ivan Mahonin 8cb222
            return new Diagram()
Ivan Mahonin 8cb222
                .addBlock(
Ivan Mahonin 8cb222
                    @"glContext",
Ivan Mahonin 8cb222
                    @"Windowless OpenGL context",
Ivan Mahonin 8cb222
                    @"(using EGL)",
Ivan Mahonin 8cb222
                    colorGL,
Ivan Mahonin 8cb222
                    new string[] { "glStorage" }
Ivan Mahonin 8cb222
                )
Ivan Mahonin 8cb222
                .addBlock(
Ivan Mahonin 8cb222
                    @"glStorage",
Ivan Mahonin 8cb222
                    @"Common storage GL resources",
Ivan Mahonin 8cb222
                    @"Store handles of context, shaders, textures in the RendererGL class instance",
Ivan Mahonin 8cb222
                    colorGL,
Ivan Mahonin 8cb222
                    new string[] { "glBlend" }
Ivan Mahonin 8cb222
                )
Ivan Mahonin 8cb222
                .addBlock(
Ivan Mahonin 8cb222
                    @"swBlend",
Ivan Mahonin 8cb222
                    @"«Blend Task»",
Ivan Mahonin 8cb222
                    @"for Software rendering",
Ivan Mahonin 8cb222
                    colorSW,
Ivan Mahonin 8cb222
                    new string[] { "cGroup" }
Ivan Mahonin 8cb222
                )
Ivan Mahonin 8cb222
                .addBlock(
Ivan Mahonin 8cb222
                    @"cGroup",
Ivan Mahonin 8cb222
                    @"Render «Groups» (Layer_PasteCanvas)",
Ivan Mahonin 8cb222
                    @"Build task-trees using «Blend Task» to link tasks of sub-layers.",
Ivan Mahonin 8cb222
                    colorCommon,
Ivan Mahonin 8cb222
                    new string[] { "swLayer" }
Ivan Mahonin 8cb222
                )
Ivan Mahonin 8cb222
                .addBlock(
Ivan Mahonin 8cb222
                    @"glBlend",
Ivan Mahonin 8cb222
                    @"«Blend Task»",
Ivan Mahonin 8cb222
                    @"for OpenGL",
Ivan Mahonin 8cb222
                    colorGL,
Ivan Mahonin 8cb222
                    new string[] { "cAllLayers" }
Ivan Mahonin 8cb222
                )
Ivan Mahonin 8cb222
                .addBlock(
Ivan Mahonin 8cb222
                    @"swLayer",
Ivan Mahonin 8cb222
                    @"«Render Layer Task»",
Ivan Mahonin 8cb222
                    @"for layers which yet not supports new rendering engine (Software)",
Ivan Mahonin 8cb222
                    colorSW,
Ivan Mahonin 8cb222
                    new string[] { "cAllLayers" }
Ivan Mahonin 8cb222
                )
Ivan Mahonin 8cb222
                .addBlock(
Ivan Mahonin 8cb222
                    @"cThreadSafe",
Ivan Mahonin 8cb222
                    @"Thread-safe rendering",
Ivan Mahonin 8cb222
                    @"",
Ivan Mahonin 8cb222
                    colorCommon,
Ivan Mahonin 8cb222
                    new string[] { "cAllLayers", "swMultithread", "glMultithread" }
Ivan Mahonin 8cb222
                )
Ivan Mahonin 8cb222
                .addBlock(
Ivan Mahonin 8cb222
                    @"cAllLayers",
Ivan Mahonin 8cb222
                    @"New rendering for all layers",
Ivan Mahonin 8cb222
                    @"",
Ivan Mahonin 8cb222
                    colorCommon,
Ivan Mahonin 8cb222
                    new string[] { "cFuture" }
Ivan Mahonin 8cb222
                )
Ivan Mahonin 8cb222
                .addBlock(
Ivan Mahonin 8cb222
                    @"swMultithread",
Ivan Mahonin 8cb222
                    @"Multithreaded software rendering",
Ivan Mahonin 8cb222
                    @"We have dependency tree of rendering tasks, so we can run several tasks at same time.",
Ivan Mahonin 8cb222
                    colorSW,
Ivan Mahonin 8cb222
                    new string[] { "cFuture" }
Ivan Mahonin 8cb222
                )
Ivan Mahonin 8cb222
                .addBlock(
Ivan Mahonin 8cb222
                    @"glMultithread",
Ivan Mahonin 8cb222
                    @"Multithreaded OpenGL rendering (optional)",
Ivan Mahonin 8cb222
                    @"There is some restrictions related to hardware acceleration, and multithreading for it will not so effective. PC usually have only one GPU. In best case we can use up to five GPUs - four PCI-x video cards and one integrated video (very expensive!). Also, GPUs uses own memory, so we must remember about transferring data between them.",
Ivan Mahonin 8cb222
                    colorGL,
Ivan Mahonin 8cb222
                    new string[] { "cFuture" }
Ivan Mahonin 8cb222
                )
Ivan Mahonin 8cb222
                .addBlock(
Ivan Mahonin 8cb222
                    @"cFuture",
Ivan Mahonin 8cb222
                    @"Future",
Ivan Mahonin 8cb222
                    @"Abstraction layer to provide access to rendering tasks for script language (python, lua, etc…), so we can build task-tree for renderer via external script. By this way we can write layers at python, and connect it dynamically without restarting of SynfigStudio.",
Ivan Mahonin 8cb222
                    colorCommon
Ivan Mahonin 8cb222
                );
Ivan Mahonin 8cb222
        }
Ivan Mahonin 8cb222
    }
Ivan Mahonin 8cb222
}
Ivan Mahonin 8cb222