|
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 |
|