diff --git a/Assets/Fonts/LICENSE.txt b/Assets/Fonts/LICENSE.txt
deleted file mode 100644
index 39e18e3..0000000
--- a/Assets/Fonts/LICENSE.txt
+++ /dev/null
@@ -1,165 +0,0 @@
-Fonticons, Inc. (https://fontawesome.com)
-
---------------------------------------------------------------------------------
-
-Font Awesome Free License
-
-Font Awesome Free is free, open source, and GPL friendly. You can use it for
-commercial projects, open source projects, or really almost whatever you want.
-Full Font Awesome Free license: https://fontawesome.com/license/free.
-
---------------------------------------------------------------------------------
-
-# Icons: CC BY 4.0 License (https://creativecommons.org/licenses/by/4.0/)
-
-The Font Awesome Free download is licensed under a Creative Commons
-Attribution 4.0 International License and applies to all icons packaged
-as SVG and JS file types.
-
---------------------------------------------------------------------------------
-
-# Fonts: SIL OFL 1.1 License
-
-In the Font Awesome Free download, the SIL OFL license applies to all icons
-packaged as web and desktop font files.
-
-Copyright (c) 2023 Fonticons, Inc. (https://fontawesome.com)
-with Reserved Font Name: "Font Awesome".
-
-This Font Software is licensed under the SIL Open Font License, Version 1.1.
-This license is copied below, and is also available with a FAQ at:
-http://scripts.sil.org/OFL
-
-SIL OPEN FONT LICENSE
-Version 1.1 - 26 February 2007
-
-PREAMBLE
-The goals of the Open Font License (OFL) are to stimulate worldwide
-development of collaborative font projects, to support the font creation
-efforts of academic and linguistic communities, and to provide a free and
-open framework in which fonts may be shared and improved in partnership
-with others.
-
-The OFL allows the licensed fonts to be used, studied, modified and
-redistributed freely as long as they are not sold by themselves. The
-fonts, including any derivative works, can be bundled, embedded,
-redistributed and/or sold with any software provided that any reserved
-names are not used by derivative works. The fonts and derivatives,
-however, cannot be released under any other type of license. The
-requirement for fonts to remain under this license does not apply
-to any document created using the fonts or their derivatives.
-
-DEFINITIONS
-"Font Software" refers to the set of files released by the Copyright
-Holder(s) under this license and clearly marked as such. This may
-include source files, build scripts and documentation.
-
-"Reserved Font Name" refers to any names specified as such after the
-copyright statement(s).
-
-"Original Version" refers to the collection of Font Software components as
-distributed by the Copyright Holder(s).
-
-"Modified Version" refers to any derivative made by adding to, deleting,
-or substituting — in part or in whole — any of the components of the
-Original Version, by changing formats or by porting the Font Software to a
-new environment.
-
-"Author" refers to any designer, engineer, programmer, technical
-writer or other person who contributed to the Font Software.
-
-PERMISSION & CONDITIONS
-Permission is hereby granted, free of charge, to any person obtaining
-a copy of the Font Software, to use, study, copy, merge, embed, modify,
-redistribute, and sell modified and unmodified copies of the Font
-Software, subject to the following conditions:
-
-1) Neither the Font Software nor any of its individual components,
-in Original or Modified Versions, may be sold by itself.
-
-2) Original or Modified Versions of the Font Software may be bundled,
-redistributed and/or sold with any software, provided that each copy
-contains the above copyright notice and this license. These can be
-included either as stand-alone text files, human-readable headers or
-in the appropriate machine-readable metadata fields within text or
-binary files as long as those fields can be easily viewed by the user.
-
-3) No Modified Version of the Font Software may use the Reserved Font
-Name(s) unless explicit written permission is granted by the corresponding
-Copyright Holder. This restriction only applies to the primary font name as
-presented to the users.
-
-4) The name(s) of the Copyright Holder(s) or the Author(s) of the Font
-Software shall not be used to promote, endorse or advertise any
-Modified Version, except to acknowledge the contribution(s) of the
-Copyright Holder(s) and the Author(s) or with their explicit written
-permission.
-
-5) The Font Software, modified or unmodified, in part or in whole,
-must be distributed entirely under this license, and must not be
-distributed under any other license. The requirement for fonts to
-remain under this license does not apply to any document created
-using the Font Software.
-
-TERMINATION
-This license becomes null and void if any of the above conditions are
-not met.
-
-DISCLAIMER
-THE FONT SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
-EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OF
-MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT
-OF COPYRIGHT, PATENT, TRADEMARK, OR OTHER RIGHT. IN NO EVENT SHALL THE
-COPYRIGHT HOLDER BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
-INCLUDING ANY GENERAL, SPECIAL, INDIRECT, INCIDENTAL, OR CONSEQUENTIAL
-DAMAGES, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
-FROM, OUT OF THE USE OR INABILITY TO USE THE FONT SOFTWARE OR FROM
-OTHER DEALINGS IN THE FONT SOFTWARE.
-
---------------------------------------------------------------------------------
-
-# Code: MIT License (https://opensource.org/licenses/MIT)
-
-In the Font Awesome Free download, the MIT license applies to all non-font and
-non-icon files.
-
-Copyright 2023 Fonticons, Inc.
-
-Permission is hereby granted, free of charge, to any person obtaining a copy of
-this software and associated documentation files (the "Software"), to deal in the
-Software without restriction, including without limitation the rights to use, copy,
-modify, merge, publish, distribute, sublicense, and/or sell copies of the Software,
-and to permit persons to whom the Software is furnished to do so, subject to the
-following conditions:
-
-The above copyright notice and this permission notice shall be included in all
-copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED,
-INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A
-PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
-HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
-OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
-SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-
---------------------------------------------------------------------------------
-
-# Attribution
-
-Attribution is required by MIT, SIL OFL, and CC BY licenses. Downloaded Font
-Awesome Free files already contain embedded comments with sufficient
-attribution, so you shouldn't need to do anything additional when using these
-files normally.
-
-We've kept attribution comments terse, so we ask that you do not actively work
-to remove them from files, especially code. They're a great way for folks to
-learn about Font Awesome.
-
---------------------------------------------------------------------------------
-
-# Brand Icons
-
-All brand icons are trademarks of their respective owners. The use of these
-trademarks does not indicate endorsement of the trademark holder by Font
-Awesome, nor vice versa. **Please do not use brand logos for any purpose except
-to represent the company, product, or service to which they refer.**
diff --git a/CMakeLists.txt b/CMakeLists.txt
index 934a140..d31e73d 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -73,19 +73,24 @@ add_executable(OpenShaderDesigner
Source/FileSystem/FileManager.cpp Include/FileSystem/FileManager.h
# Assets
- Source/Project/Project.cpp Include/Project/Project.h
+ Source/Project/Project.cpp Include/Project/Project.h
+ Source/Renderer/Assets/Texture.cpp Include/Renderer/Assets/Texture.h
# Graph
Source/Graph/ShaderGraph.cpp Include/Graph/ShaderGraph.h
# Nodes
- Source/Graph/Nodes/Maths.cpp Include/Graph/Nodes/Maths.h
- Source/Graph/Nodes/Shaders.cpp Include/Graph/Nodes/Shaders.h
+ Source/Graph/Nodes/Shaders.cpp Include/Graph/Nodes/Shaders.h
+ Source/Graph/Nodes/Math/Constants.cpp Include/Graph/Nodes/Math/Constants.h
+ Source/Graph/Nodes/Math/Functions.cpp Include/Graph/Nodes/Math/Functions.h
+ Source/Graph/Nodes/Math/Comparison.cpp Include/Graph/Nodes/Math/Comparison.h
+ Source/Graph/Nodes/Math/Trigonometry.cpp Include/Graph/Nodes/Math/Trigonometry.h
+ Source/Graph/Nodes/Math/Vector.cpp Include/Graph/Nodes/Math/Vector.h
# Utilities
Include/Utility/Timer.h
- Include/Renderer/Assets/Texture.h
- Source/Renderer/Assets/Texture.cpp
+ Include/Graph/Nodes/Math/Common.h
+ Source/Graph/Nodes/Math/Common.cpp
)
# Preprocessor Definitions
diff --git a/Documentation/html/_comparison_8h_source.html b/Documentation/html/_comparison_8h_source.html
new file mode 100644
index 0000000..80f47ed
--- /dev/null
+++ b/Documentation/html/_comparison_8h_source.html
@@ -0,0 +1,109 @@
+
+
+
+
+
+
+
+OpenShaderDesigner: Include/Graph/Nodes/Math/Comparison.h Source File
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ OpenShaderDesigner 0.0.1
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+
+
+
+
+
+
diff --git a/Documentation/html/_console_8h_source.html b/Documentation/html/_console_8h_source.html
index 6142354..e022b20 100644
--- a/Documentation/html/_console_8h_source.html
+++ b/Documentation/html/_console_8h_source.html
@@ -92,177 +92,183 @@ $(function(){ initResizable(false); });
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
20 #include <imgui-docking/imgui.h>
-
-
-
-
-
-
-
-
28 namespace OpenShaderDesigner
-
-
-
-
-
-
-
-
-
-
39 SHOW_TIMESTAMP = 0b00000001
-
40 , SHOW_THREAD = 0b00000010
-
41 , SHOW_SEVERITY = 0b00000100
-
42 , SHOW_FILE_INFO = 0b00001000
-
43 , WRAP_TEXT = 0b00010000
-
-
-
46 , DEFAULT_SETTINGS = ALL_SETTINGS ^ WRAP_TEXT
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
22 #include <imgui-docking/imgui.h>
+
+
+
+
+
+
+
+
+
31 namespace OpenShaderDesigner
+
+
+
+
+
+
+
+
+
+
+
43 Settings_ShowTimeStamp = 0b00000001
+
44 , Settings_ShowThread = 0b00000010
+
45 , Settings_Severity = 0b00000100
+
46 , Settings_ShowFileInfo = 0b00001000
+
47 , Settings_WrapText = 0b00010000
-
-
-
-
54 "Timestamps" ,
"Thread IDs" ,
"Severity" ,
"File Info" ,
"Wrapping"
-
+
+
50 , Settings_Default = Settings_ALL ^ Settings_WrapText
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
58 "Timestamps" ,
"Thread IDs" ,
"Severity" ,
"File Info" ,
"Wrapping"
+
-
-
-
-
-
78 "Message" ,
"Warning" ,
"Error" ,
"Fatal" ,
"Alert" ,
"Command"
-
+
+
-
-
-
86 inline static constexpr ImVec4
ImGuiColor (
unsigned int RGB)
-
-
-
89 static_cast< float > ((RGB >> 24) & 255) / 255.0f,
static_cast< float > ((RGB >> 16) & 255) / 255.0f,
-
90 static_cast< float > ((RGB >> 8) & 255) / 255.0f,
static_cast< float > ((RGB >> 0) & 255) / 255.0f
-
-
+
+
+
+
+
82 "Message" ,
"Warning" ,
"Error" ,
"Fatal" ,
"Alert" ,
"Command"
+
-
-
-
-
-
-
+
+
+
90 inline static constexpr ImVec4
ImGuiColor (
unsigned int RGB)
+
+
+
93 static_cast< float > ((RGB >> 24) & 255) / 255.0f,
static_cast< float > ((RGB >> 16) & 255) / 255.0f,
+
94 static_cast< float > ((RGB >> 8) & 255) / 255.0f,
static_cast< float > ((RGB >> 0) & 255) / 255.0f
+
+
-
-
102 static std::string ThreadID()
-
-
104 std::stringstream ss;
-
105 ss << std::this_thread::get_id();
-
-
-
-
118 template <
typename ... Args>
-
119 static void Log(
const std::string& file
-
-
121 ,
Severity severity = Severity::DEFAULT
-
122 ,
const std::format_string<Args...>& message =
""
-
-
-
125 static void DrawMenu();
-
126 static void DrawWindow();
-
-
128 static inline bool Open =
true ;
-
-
-
-
-
133 const std::string Message;
-
134 const Severity Severity;
-
135 const std::string File, Timestamp, Thread;
-
-
-
-
144 static std::string Format(
const LogEntry& entry,
Setting settings);
-
-
150 static void ProcessCommand(
const std::string& command);
-
-
152 inline static std::list<LogEntry> EntryLog;
-
153 inline static std::mutex Lock;
-
154 inline static int Filter =
static_cast< int > (0xFFFFFFFF);
-
155 inline static Setting Settings = DEFAULT_SETTINGS;
-
156 inline static std::string Command;
-
+
+
-
-
159 template <
typename ... Args>
-
-
-
161 const std::string& file
-
-
-
164 ,
const std::format_string<Args...>& fmt
-
-
-
167 auto t = std::time(
nullptr );
-
-
169 #pragma warning(disable:4996)
-
-
171 auto tm = *std::localtime(&t);
-
-
173 std::lock_guard guard(Lock);
-
-
175 std::vformat(fmt.get(), std::make_format_args(vargs...)), severity, file, std::format(
-
176 "{:0>2}:{:0>2}:{:0>2}" , tm.tm_hour, tm.tm_min, tm.tm_sec),
-
-
-
179 EntryLog.push_back(entry);
-
180 std::cout << Format(entry, ALL_SETTINGS) << std::endl;
-
+
+
106 static std::string ThreadID()
+
+
108 std::stringstream ss;
+
109 ss << std::this_thread::get_id();
+
+
+
+
122 template <
typename ... Args>
+
123 static void Log(
const std::string& file
+
+
125 ,
Severity severity = Severity::DEFAULT
+
126 ,
const std::format_string<Args...>& message =
""
+
+
+
129 static void DrawMenu();
+
130 static void DrawWindow();
+
+
132 static inline bool Open =
true ;
+
+
+
+
+
137 const std::string Message;
+
138 const Severity Severity;
+
139 const std::string File, Timestamp, Thread;
+
+
+
+
148 static std::string Format(
const LogEntry& entry, uint8_t settings);
+
+
154 static void ProcessCommand(
const std::string& command);
+
+
156 inline static std::list<LogEntry> EntryLog_;
+
157 inline static std::mutex Lock_;
+
158 inline static int Filter_ =
static_cast< int > (0xFFFFFFFF);
+
159 inline static uint8_t Settings_ = Settings_Default;
+
160 inline static std::string CommandBuffer_;
+
-
-
-
184 #define Log(...) Log(__FILE__, __LINE__, __VA_ARGS__)
-
-
-
-
static const ImVec4 SeverityColors[]
Color for rendering each Severity level text in editor.
Definition Console.h:97
-
static void Log(const std::string &file, const int line, Severity severity=Severity::DEFAULT, const std::format_string< Args... > &message="", Args &&... vargs)
Thread-Safe Log function for debugging.
Definition Console.h:160
-
Setting
Setting for displaying log entries.
Definition Console.h:38
-
static const std::string SettingNames[]
String representations of the settings.
Definition Console.h:52
-
Severity
Severity levels for log entries.
Definition Console.h:62
-
static const std::string Severities[]
String representations of the Severity levels.
Definition Console.h:76
-
static constexpr ImVec4 ImGuiColor(unsigned int RGB)
Integer to floating point color. (ImGui APIVersion)
Definition Console.h:86
+
+
163 template <
typename ... Args>
+
+
+
165 const std::string& file
+
+
+
168 ,
const std::format_string<Args...>& fmt
+
+
+
171 auto t = std::time(
nullptr );
+
+
173 #pragma warning(disable:4996)
+
+
175 auto tm = *std::localtime(&t);
+
176 const auto rel = std::filesystem::relative(file, PROJECT_DIR).string();
+
+
178 std::lock_guard guard(Lock_);
+
+
180 std::vformat(fmt.get(), std::make_format_args(vargs...)), severity, rel, std::format(
+
181 "{:0>2}:{:0>2}:{:0>2}" , tm.tm_hour, tm.tm_min, tm.tm_sec),
+
+
+
184 EntryLog_.push_back(entry);
+
185 std::cout << Format(entry, Settings_ALL) << std::endl;
+
+
+
+
+
+
190 #define Log(...) Log(__FILE__, __LINE__, __VA_ARGS__)
+
+
+
+
static const ImVec4 SeverityColors[]
Color for rendering each Severity level text in editor.
Definition Console.h:101
+
static void Log(const std::string &file, const int line, Severity severity=Severity::DEFAULT, const std::format_string< Args... > &message="", Args &&... vargs)
Thread-Safe Log function for debugging.
Definition Console.h:164
+
static const std::string SettingNames[]
String representations of the settings.
Definition Console.h:56
+
Severity
Severity levels for log entries.
Definition Console.h:66
+
static const std::string Severities[]
String representations of the Severity levels.
Definition Console.h:80
+
static constexpr ImVec4 ImGuiColor(unsigned int RGB)
Integer to floating point color. (ImGui APIVersion)
Definition Console.h:90
+
Settings
Setting for displaying log entries.
Definition Console.h:42
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
16 #ifndef CONSOLEWINDOW_H
-
17 #define CONSOLEWINDOW_H
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
19 #include <Editor/EditorSystem.h>
-
-
21 namespace OpenShaderDesigner
-
+
19 #ifndef CONSOLEWINDOW_H
+
20 #define CONSOLEWINDOW_H
+
+
22 #include <Editor/EditorSystem.h>
-
-
-
-
-
-
-
-
+
24 namespace OpenShaderDesigner
+
+
+
+
+
-
-
-
-
Definition ConsoleWindow.h:25
-
void DrawMenu() override
DrawMenu function for when the EditorWindow Menu is being drawn.
Definition ConsoleWindow.cpp:26
-
void DrawWindow() override
DrawWindow function for when the EditorWindow is being drawn.
Definition ConsoleWindow.cpp:31
-
EditorWindow class for wrapping ImGui window functionality.
Definition EditorWindow.h:28
+
+
+
+
+
+
+
+
Definition ConsoleWindow.h:28
+
void DrawMenu() override
DrawMenu function for when the EditorWindow Menu is being drawn.
Definition ConsoleWindow.cpp:29
+
void DrawWindow() override
DrawWindow function for when the EditorWindow is being drawn.
Definition ConsoleWindow.cpp:34
+
EditorWindow class for wrapping ImGui window functionality.
Definition EditorWindow.h:32
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
19 #include <SDL_events.h>
-
20 #include <open-cpp-utils/unique_id.h>
-
21 #include <unordered_map>
-
-
23 #include <Editor/EditorWindow.h>
-
-
25 #define MAX_EDITORS 256
-
-
27 namespace OpenShaderDesigner
-
-
-
-
-
-
32 using WindowID = uint64_t;
+
+
+
+
22 #include <SDL_events.h>
+
23 #include <open-cpp-utils/unique_id.h>
+
24 #include <unordered_map>
+
+
26 #include <Editor/EditorWindow.h>
+
27 #include <Editor/MainMenuBar.h>
+
+
29 #define MAX_EDITORS 256
+
+
31 namespace OpenShaderDesigner
+
-
-
35 static WindowID ID() {
return open_cpp_utils::unique_id<WindowID, T>(); }
-
-
-
38 static T* Open() { T* window; (window = Get<T>())->Open();
return window; }
-
-
-
41 static T* Close() { T* window; (window = Get<T>())->Close();
return window; }
-
-
-
-
-
46 T* window =
reinterpret_cast< T*
> (Windows[ID<T>()]);
-
47 if (window ==
nullptr ) Windows[ID<T>()] = window =
new T();
-
-
-
-
51 static void Initialize();
-
-
53 static void Shutdown();
-
54 static void HandleEvents(SDL_Event* event);
+
+
+
+
+
37 using WindowID = uint64_t;
+
+
+
40 static WindowID ID() {
return open_cpp_utils::unique_id<WindowID, T>(); }
+
+
+
43 static T* Open() { T* window; (window = Get<T>())->Open();
return window; }
+
+
+
46 static T* Close() { T* window; (window = Get<T>())->Close();
return window; }
+
+
+
+
+
51 T* window =
reinterpret_cast< T*
> (Windows_[ID<T>()]);
+
52 if (window ==
nullptr ) Windows_[ID<T>()] = window =
new T();
+
+
-
-
57 inline static EditorWindow * Windows[MAX_EDITORS] {
nullptr };
-
-
-
-
+
+
57 static T* SetMainMenuBar() {
delete MainMenuBar_; T* bar =
new T(); MainMenuBar_ = bar;
return bar; }
+
+
+
60 static T* GetMainMenuBar() {
return static_cast< T*
> (MainMenuBar_); }
-
-
-
Definition EditorSystem.h:30
-
EditorWindow class for wrapping ImGui window functionality.
Definition EditorWindow.h:28
+
62 static void Initialize();
+
+
64 static void Shutdown();
+
65 static void HandleEvents(SDL_Event* event);
+
+
+
68 inline static EditorWindow * Windows_[MAX_EDITORS] {
nullptr };
+
+
+
+
+
+
+
+
+
+
Definition EditorSystem.h:35
+
EditorWindow class for wrapping ImGui window functionality.
Definition EditorWindow.h:32
+
Definition MainMenuBar.h:14
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
-
20 #include <imgui-docking/imgui.h>
+
+
-
22 namespace OpenShaderDesigner
-
-
-
-
-
-
-
-
-
-
-
-
49 [[nodiscard]]
bool IsOpen ()
const {
return bOpen; }
-
-
-
-
53 void SetFlags(ImGuiWindowFlags flags) { Flags |= flags; }
-
54 void ClearFlags(ImGuiWindowFlags flags) { Flags &= ~flags; }
-
55 void ToggleFlags(ImGuiWindowFlags flags) { Flags ^= flags; }
-
56 [[nodiscard]]
bool CheckFlag(ImGuiWindowFlags flag)
const {
return Flags & flag; }
-
-
58 [[nodiscard]]
bool HasMenuBar()
const {
return CheckFlag(ImGuiWindowFlags_MenuBar); }
-
-
-
61 ~EditorWindow() =
default ;
-
62 EditorWindow(
const std::string& title
-
63 , ImGuiWindowFlags flags);
-
-
-
-
-
+
+
23 #include <imgui-docking/imgui.h>
+
+
25 namespace OpenShaderDesigner
+
+
+
+
+
+
+
+
+
+
+
+
+
53 [[nodiscard]]
bool IsOpen ()
const {
return bOpen_; }
+
+
+
+
57 void SetFlags(ImGuiWindowFlags flags) { Flags_ |= flags; }
+
58 void ClearFlags(ImGuiWindowFlags flags) { Flags_ &= ~flags; }
+
59 void ToggleFlags(ImGuiWindowFlags flags) { Flags_ ^= flags; }
+
60 [[nodiscard]]
bool CheckFlag(ImGuiWindowFlags flag)
const {
return Flags_ & flag; }
+
+
62 [[nodiscard]]
bool HasMenuBar()
const {
return CheckFlag(ImGuiWindowFlags_MenuBar); }
+
+
+
65 ~EditorWindow() =
default ;
+
66 EditorWindow(
const std::string& title
+
67 , ImGuiWindowFlags flags);
+
+
-
-
-
-
-
+
+
-
-
-
-
-
+
+
-
-
-
-
-
+
+
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
-
-
-
Definition EditorSystem.h:30
-
EditorWindow class for wrapping ImGui window functionality.
Definition EditorWindow.h:28
-
virtual void DrawWindow()
DrawWindow function for when the EditorWindow is being drawn.
Definition EditorWindow.h:75
-
const std::string Title
Title for the EditorWindow.
Definition EditorWindow.h:51
-
virtual void OnOpen()
OnOpen callback for when the EditorWindow is opened.
Definition EditorWindow.h:68
-
void Draw()
Draw the EditorWindow.
Definition EditorWindow.cpp:27
-
void Close()
Close the EditorWindow.
Definition EditorWindow.cpp:52
-
virtual void DrawMenu()
DrawMenu function for when the EditorWindow Menu is being drawn.
Definition EditorWindow.h:82
-
virtual void OnClose()
OnClose callback for when the EditorWindow is closed.
Definition EditorWindow.h:89
-
void Open()
Open the EditorWindow.
Definition EditorWindow.cpp:20
-
bool IsOpen() const
Check if the EditorWindow is open.
Definition EditorWindow.h:49
+
+
+
+
+
+
+
+
+
Definition EditorSystem.h:35
+
EditorWindow class for wrapping ImGui window functionality.
Definition EditorWindow.h:32
+
virtual void DrawWindow()
DrawWindow function for when the EditorWindow is being drawn.
Definition EditorWindow.h:79
+
const std::string Title
Title for the EditorWindow.
Definition EditorWindow.h:55
+
virtual void OnOpen()
OnOpen callback for when the EditorWindow is opened.
Definition EditorWindow.h:72
+
void Draw()
Draw the EditorWindow.
Definition EditorWindow.cpp:30
+
void Close()
Close the EditorWindow.
Definition EditorWindow.cpp:55
+
virtual void DrawMenu()
DrawMenu function for when the EditorWindow Menu is being drawn.
Definition EditorWindow.h:86
+
virtual void OnClose()
OnClose callback for when the EditorWindow is closed.
Definition EditorWindow.h:93
+
void Open()
Open the EditorWindow.
Definition EditorWindow.cpp:23
+
bool IsOpen() const
Check if the EditorWindow is open.
Definition EditorWindow.h:53
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
20 #include <Core/Window.h>
-
21 #include <Utility/Timer.h>
+
+
-
23 namespace OpenShaderDesigner
-
-
-
-
-
-
-
-
-
31 static Window & GetMainWindow() {
return *MainWindow; }
-
-
33 static void Initialize();
-
34 static void Shutdown();
-
-
-
37 inline static Timer Frame;
-
38 inline static double _Delta;
-
39 inline static Window * MainWindow;
-
-
-
42 inline static const double & Delta = _Delta;
-
-
-
-
+
23 #include <Core/Window.h>
+
24 #include <Utility/Timer.h>
+
+
26 namespace OpenShaderDesigner
+
+
+
+
+
+
+
+
+
+
35 static inline const char * VersionString() {
return PROJECT_VERSION; }
+
36 static inline int VersionMajor() {
return PROJECT_VERSION_MAJOR; }
+
37 static inline int VersionMinor() {
return PROJECT_VERSION_MINOR; }
+
38 static inline int VersionPatch() {
return PROJECT_VERSION_PATCH; }
+
+
40 static Window & GetMainWindow() {
return *MainWindow; }
+
+
+
43 static void Initialize();
+
44 static void Shutdown();
+
-
-
-
-
-
-
+
47 inline static Timer Time;
+
48 inline static Timer Frame;
+
49 inline static double _Delta;
+
50 inline static double _Runtime;
+
51 inline static Window * MainWindow;
+
+
+
54 inline static const double & Delta = _Delta;
+
55 inline static const double & Runtime = _Runtime;
+
+
+
+
+
+
+
+
+
+
+
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
16 #ifndef ENGINE_EVENTSYSTEM_H
-
17 #define ENGINE_EVENTSYSTEM_H
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
19 #include <open-cpp-utils/unique_id.h>
-
-
-
-
-
-
-
26 #define MAX_EVENT_TYPES 256
+
19 #ifndef ENGINE_EVENTSYSTEM_H
+
20 #define ENGINE_EVENTSYSTEM_H
+
+
22 #include <open-cpp-utils/unique_id.h>
+
+
+
+
-
28 namespace ocu = open_cpp_utils;
-
-
30 namespace OpenShaderDesigner
-
-
-
-
-
-
38 static uint8_t TypeOf() {
return static_cast< uint8_t
> (ocu::unique_id<uint8_t, T>()); }
-
-
44 virtual inline uint8_t
GetID ()
const = 0;
-
+
+
29 #define MAX_EVENT_TYPES 256
+
+
31 namespace ocu = open_cpp_utils;
+
+
33 namespace OpenShaderDesigner
+
+
+
+
+
+
+
42 static uint8_t TypeOf() {
return static_cast< uint8_t
> (ocu::unique_id<uint8_t, T>()); }
+
+
48 virtual inline uint8_t
GetID ()
const = 0;
+
-
-
-
-
-
-
53 virtual bool _HandleEvent(
const Event * event) = 0;
-
-
-
+
+
+
+
+
+
57 virtual bool _HandleEvent(
const Event * event) = 0;
+
+
+
-
-
62 template <
typename EventType>
-
-
-
-
-
-
-
-
-
-
79 bool _HandleEvent(
const Event * event)
override ;
-
+
+
66 template <
typename EventType>
+
+
+
+
+
+
+
+
+
+
83 bool _HandleEvent(
const Event * event)
override ;
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
108 inline static std::list<_ImplEventHandler*> HandlerMap[MAX_EVENT_TYPES];
-
109 inline static std::mutex Lock;
+
+
+
+
+
+
+
+
+
+
+
+
-
-
-
-
+
+
112 inline static std::list<_ImplEventHandler*> HandlerMap_[MAX_EVENT_TYPES];
+
113 inline static std::mutex Lock_;
-
-
-
-
-
-
119 std::lock_guard guard(Lock);
-
120 const uint8_t index = T::ID;
-
-
+
+
+
-
-
-
-
-
-
-
128 std::lock_guard guard(Lock);
-
129 const uint8_t index = T::ID;
-
-
+
+
+
+
+
+
+
123 std::lock_guard guard(Lock_);
+
124 const uint8_t index = T::ID;
+
+
-
-
133 template <
typename EventType>
-
-
-
136 if (EventType::ID != event->
GetID ())
return false ;
-
137 return HandleEvent(
reinterpret_cast< const EventType*
> (event));
-
-
-
-
141 #define BeginEvent(EVENT) struct EVENT : OpenShaderDesigner::Event \
-
-
143 static inline const uint8_t ID = Event::TypeOf<EVENT>(); \
-
144 inline uint8_t GetID() const override { return ID; }
+
+
+
+
+
+
+
132 std::lock_guard guard(Lock_);
+
133 const uint8_t index = T::ID;
+
+
+
+
+
137 template <
typename EventType>
+
+
+
140 if (EventType::ID != event->
GetID ())
return false ;
+
141 return HandleEvent(
reinterpret_cast< const EventType*
> (event));
+
+
+
-
-
-
-
Base EventHandler for abstraction.
Definition EventSystem.h:52
-
EventHandler interface for creating custom EventHandlers.
Definition EventSystem.h:64
+
146 #define BeginEvent(EVENT) struct EVENT : OpenShaderDesigner::Event \
+
+
148 static inline const uint8_t ID = Event::TypeOf<EVENT>(); \
+
149 inline uint8_t GetID() const override { return ID; }
+
+
+
+
+
Base EventHandler for abstraction.
Definition EventSystem.h:56
+
EventHandler interface for creating custom EventHandlers.
Definition EventSystem.h:68
virtual bool HandleEvent(const HandledType *event)=0
Virtual function for custom EventHandler implementations.
-
EventType HandledType
The type handled by the EventHandler.
Definition EventSystem.h:66
-
EventSystem for posting Events to be handled.
Definition EventSystem.h:86
-
static void UnregisterHandler(EventHandler< T > *)
Unregister an EventHandler with the EventSystem.
Definition EventSystem.h:116
-
static void PostEvent(const Event *)
Post an Event to be Handled.
Definition EventSystem.cpp:23
-
static void RegisterHandler(EventHandler< T > *)
Register an EventHandler with the EventSystem.
Definition EventSystem.h:125
-
Base Event class for sending events to the Engine.
Definition EventSystem.h:36
+
EventType HandledType
The type handled by the EventHandler.
Definition EventSystem.h:70
+
EventSystem for posting Events to be handled.
Definition EventSystem.h:90
+
static void UnregisterHandler(EventHandler< T > *)
Unregister an EventHandler with the EventSystem.
Definition EventSystem.h:120
+
static void PostEvent(const Event *)
Post an Event to be Handled.
Definition EventSystem.cpp:26
+
static void RegisterHandler(EventHandler< T > *)
Register an EventHandler with the EventSystem.
Definition EventSystem.h:129
+
Base Event class for sending events to the Engine.
Definition EventSystem.h:40
virtual uint8_t GetID() const =0
Get the Event's type ID.
diff --git a/Documentation/html/_file_manager_8h_source.html b/Documentation/html/_file_manager_8h_source.html
new file mode 100644
index 0000000..3712a6a
--- /dev/null
+++ b/Documentation/html/_file_manager_8h_source.html
@@ -0,0 +1,265 @@
+
+
+
+
+
+
+
+
OpenShaderDesigner: Include/FileSystem/FileManager.h Source File
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ OpenShaderDesigner 0.0.1
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
22 #include <Editor/EditorWindow.h>
+
+
24 #include <open-cpp-utils/filesystem.h>
+
25 #include <open-cpp-utils/map.h>
+
26 #include <open-cpp-utils/startup.h>
+
+
28 #define RegisterAsset(Name, Type, ...) \
+
29 STARTUP(_Register##Type) { FileManager::Register(Name, { __VA_ARGS__ }, ##Type::Create, ##Type::Load, ##Type::Import); }
+
+
31 namespace ocu = open_cpp_utils;
+
+
33 namespace OpenShaderDesigner
+
+
+
+
+
+
+
+
40 using FileSystem = ocu::filesystem<Asset, FileManager>;
+
41 using File = FileSystem::file;
+
42 using Path = std::filesystem::path;
+
43 using FileID = FileSystem::file_id;
+
44 using CreateFunc =
Asset * (*)(
const Path&);
+
45 using LoadFunc =
Asset * (*)(
const Path&);
+
46 using ImportFunc =
Asset * (*)(
const Path&,
const Path&);
+
+
+
+
+
+
+
53 std::vector<std::string> Extensions;
+
+
+
+
+
58 AssetDetail() : Create(
nullptr ), Load(
nullptr ), Import(
nullptr ) { }
+
59 AssetDetail(
const std::string& name) : Name(name), Create(
nullptr ), Load(
nullptr ), Import(
nullptr ) {}
+
+
+
62 AssetDetail(
const std::string& name,
const std::vector<std::string>& exts,
+
63 const CreateFunc create,
const LoadFunc load,
const ImportFunc
import )
+
64 : Name(name), Extensions(exts), Create(create), Load(load), Import(
import ) {}
+
+
+
67 using AssetMenuHierarchy = ocu::directed_tree<AssetDetail>;
+
68 using AssetType = AssetMenuHierarchy::node;
+
69 using ExtensionMapping = ocu::map<std::string, AssetType>;
+
+
71 static AssetMenuHierarchy& AssetMenu() {
static AssetMenuHierarchy Menu;
return Menu; }
+
72 static ExtensionMapping& ExtensionMap() {
static ExtensionMapping Map;
return Map; }
+
+
+
+
+
+
+
+
79 Asset (
const Path& path) : Dirty_(
false ) { }
+
80 virtual ~Asset () =
default ;
+
+
82 bool Dirty()
const {
return Dirty_; }
+
+
84 virtual void Open() { };
+
85 virtual void Save(
const Path& path) { Dirty_ =
false ; }
+
+
87 File& GetFile() {
return Manager_->Get(File_); }
+
88 FileID GetID()
const {
return File_; }
+
+
+
91 void MakeDirty() { Dirty_ =
true ; }
+
+
+
+
+
+
+
+
+
+
+
+
+
+
103 Folder (
const std::filesystem::path& p) :
Asset (p) { };
+
+
+
106 void Open()
override { Manager_->CurrentDirectory_ = GetID(); }
+
+
+
+
+
110 static Asset * load(
const Path& file, FileID
id );
+
111 static Asset *
import (
const Path& src,
const Path& dst, FileID id);
+
112 static Asset * create(
const Path& file, FileID
id );
+
+
+
+
+
+
+
+
+
121 FileID CurrentDirectory()
const {
return CurrentDirectory_; }
+
122 void CurrentDirectory(FileID
id ) { CurrentDirectory_ = id; }
+
+
124 FileID Create(
const std::string& name) {
return Filesystem_.create(name, CurrentDirectory_); }
+
125 FileID Import(
const Path& path) {
return Filesystem_.import(path, CurrentDirectory_); }
+
126 FileID LoadDirectory(
const Path& path) {
return Filesystem_.load_directory(path); }
+
127 void CloseDirectory(FileID dir) { Filesystem_.close_directory(dir); }
+
+
129 FileID Get(
const Path& path)
const {
return Filesystem_.find(path); }
+
130 File& Get(FileID
id ) {
return Filesystem_[id]; }
+
131 const File& Get(FileID
id )
const {
return Filesystem_[id]; }
+
+
133 FileID Parent(FileID
id )
const {
return Filesystem_.parent(
id ); }
+
+
+
+
+
138 static Path GetHomeDirectory();
+
139 static void Register(
const std::filesystem::path& path,
+
140 const std::vector<std::string>& extension,
+
141 CreateFunc create, LoadFunc load, ImportFunc
import );
+
+
143 FileSystem Filesystem_;
+
144 FileID CurrentDirectory_, Selected_;
+
145 bool Rename_, FocusRename_;
+
146 std::string RenameBuffer_;
+
+
+
+
+
+
+
+
EditorWindow class for wrapping ImGui window functionality.
Definition EditorWindow.h:32
+
Definition FileManager.h:77
+
Definition FileManager.h:37
+
void DrawMenu() override
DrawMenu function for when the EditorWindow Menu is being drawn.
Definition FileManager.cpp:104
+
void DrawWindow() override
DrawWindow function for when the EditorWindow is being drawn.
Definition FileManager.cpp:175
+
Definition FileManager.h:102
+
+
+
+
+
+
diff --git a/Documentation/html/_functions_8h_source.html b/Documentation/html/_functions_8h_source.html
new file mode 100644
index 0000000..f0f442b
--- /dev/null
+++ b/Documentation/html/_functions_8h_source.html
@@ -0,0 +1,312 @@
+
+
+
+
+
+
+
+
OpenShaderDesigner: Include/Graph/Nodes/Math/Functions.h Source File
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ OpenShaderDesigner 0.0.1
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
22 #include <glm/vec4.hpp>
+
23 #include <Graph/ShaderGraph.h>
+
+
25 namespace ocu = open_cpp_utils;
+
+
27 namespace OpenShaderDesigner::Nodes::Math
+
+
+
+
+
32 inline static constexpr ImColor HeaderColor = ImColor(0xA7, 0x62, 0x53);
+
33 inline static constexpr ImColor HeaderHoveredColor = ImColor(0xC5, 0x79, 0x67);
+
34 inline static constexpr ImColor HeaderActiveColor = ImColor(0x82, 0x4C, 0x40);
+
+
36 inline static const std::string HeaderMarker =
"\uF3B9 " ;
+
+
+
+
+
+
+
+
+
+
+
+
+
+
49 enum MathOpFlags_ : glw::enum_t
+
+
+
52 , MathOpFlags_AllowMultipleInputTypes = 0x0000'0001
+
+
+
+
+
+
58 virtual bool CheckConnection(
Pin *,
Pin *)
override ;
+
59 virtual void ValidateConnections()
override ;
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
73 ~Add ()
override =
default ;
+
+
+
76 void Inspect()
override ;
+
+
78 std::string GetCode()
const override ;
+
+
+
+
+
+
+
+
+
+
+
+
+
+
90 void Inspect()
override ;
+
+
92 std::string GetCode()
const override ;
+
+
+
+
+
+
+
+
+
+
+
+
+
103 void Inspect()
override ;
+
+
105 std::string GetCode()
const override ;
+
+
+
+
+
+
+
+
+
+
+
+
+
+
117 void Inspect()
override ;
+
+
119 std::string GetCode()
const override ;
+
+
+
+
+
+
+
+
+
+
+
+
+
+
131 void Inspect()
override ;
+
+
133 std::string GetCode()
const override ;
+
+
+
+
+
+
+
+
+
+
+
+
+
+
145 void Inspect()
override ;
+
+
147 std::string GetCode()
const override ;
+
+
+
+
+
+
+
+
+
+
+
156 ~Power ()
override =
default ;
+
+
+
159 void Inspect()
override ;
+
+
161 std::string GetCode()
const override ;
+
+
+
+
+
+
+
+
+
+
+
+
+
+
173 void Inspect()
override ;
+
+
175 std::string GetCode()
const override ;
+
+
+
+
+
+
+
+
Definition ShaderGraph.h:246
+
Definition ShaderGraph.h:142
+
Definition Functions.h:126
+
Definition Functions.h:71
+
Definition Functions.h:112
+
Definition Functions.h:168
+
Definition Functions.h:48
+
Definition Functions.h:98
+
Definition Functions.h:154
+
Definition Functions.h:140
+
Definition Functions.h:85
+
Definition ShaderGraph.h:83
+
+
+
+
+
+
diff --git a/Documentation/html/_main_menu_bar_8h_source.html b/Documentation/html/_main_menu_bar_8h_source.html
new file mode 100644
index 0000000..4de5933
--- /dev/null
+++ b/Documentation/html/_main_menu_bar_8h_source.html
@@ -0,0 +1,131 @@
+
+
+
+
+
+
+
+
OpenShaderDesigner: Include/Editor/MainMenuBar.h Source File
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ OpenShaderDesigner 0.0.1
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
8 #include <imgui-docking/imgui.h>
+
+
10 namespace OpenShaderDesigner
+
+
+
+
+
+
+
16 virtual void DrawMenuBar() = 0;
+
+
+
+
+
21 void Draw() { ImGui::BeginMainMenuBar(); DrawMenuBar(); ImGui::EndMainMenuBar(); }
+
+
+
+
+
+
+
Definition EditorSystem.h:35
+
Definition MainMenuBar.h:14
+
+
+
+
+
+
diff --git a/Documentation/html/_profiler_8h_source.html b/Documentation/html/_profiler_8h_source.html
index 3be9f8f..0cb925a 100644
--- a/Documentation/html/_profiler_8h_source.html
+++ b/Documentation/html/_profiler_8h_source.html
@@ -92,75 +92,78 @@ $(function(){ initResizable(false); });
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
19 #include <Core/EventSystem.h>
-
20 #include <Core/Window.h>
-
21 #include <Editor/EditorWindow.h>
-
22 #include <Utility/Timer.h>
-
-
24 namespace OpenShaderDesigner
-
+
+
+
+
22 #include <Core/EventSystem.h>
+
23 #include <Core/Window.h>
+
24 #include <Editor/EditorWindow.h>
+
25 #include <Utility/Timer.h>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
27 namespace OpenShaderDesigner
+
+
+
+
+
+
+
+
+
+
+
+
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
57 double Deltas_[COUNT];
+
+
-
-
-
-
-
-
EditorWindow class for wrapping ImGui window functionality.
Definition EditorWindow.h:28
-
EventHandler interface for creating custom EventHandlers.
Definition EventSystem.h:64
-
EventType HandledType
The type handled by the EventHandler.
Definition EventSystem.h:66
-
-
void DrawWindow() override
DrawWindow function for when the EditorWindow is being drawn.
Definition Profiler.cpp:35
-
+
+
+
+
+
+
EditorWindow class for wrapping ImGui window functionality.
Definition EditorWindow.h:32
+
EventHandler interface for creating custom EventHandlers.
Definition EventSystem.h:68
+
EventType HandledType
The type handled by the EventHandler.
Definition EventSystem.h:70
+
+
void DrawWindow() override
DrawWindow function for when the EditorWindow is being drawn.
Definition Profiler.cpp:38
+
@@ -92,40 +92,77 @@ $(function(){ initResizable(false); });
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
-
-
22 namespace OpenShaderDesigner
-
-
-
-
+
+
+
+
23 #include <Editor/EditorWindow.h>
+
24 #include <Graph/ShaderGraph.h>
+
+
26 #include "glw/shader.h"
+
+
28 namespace OpenShaderDesigner
+
-
-
-
+
+
+
+
+
34 enum mode : glw::enum_t
+
+
+
+
+
+
+
+
+
+
+
+
+
47 void OpenTexture(
Texture * texture);
+
+
+
+
+
+
+
+
+
56 HDRTexture::HandleType* RenderTarget_;
+
+
+
+
+
+
+
+
+
+
EditorWindow class for wrapping ImGui window functionality.
Definition EditorWindow.h:32
+
+
void DrawWindow() override
DrawWindow function for when the EditorWindow is being drawn.
Definition Renderer.cpp:44
+
void DrawMenu() override
DrawMenu function for when the EditorWindow Menu is being drawn.
Definition Renderer.cpp:39
+
Definition ShaderGraph.h:214
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
19 #include <Editor/EditorWindow.h>
-
-
-
22 #include <unordered_map>
-
-
24 #include <unordered_set>
-
-
-
27 #include <open-cpp-utils/startup.h>
-
28 #include <open-cpp-utils/directed_tree.h>
-
29 #include <open-cpp-utils/optional.h>
-
-
31 namespace ocu = open_cpp_utils;
-
-
33 #define RegisterNode(Name, Type) \
-
34 Node* Create##Type(ShaderGraph& graph, ImVec2 pos) { return new Type(graph, pos); } \
-
35 STARTUP(_Register##Type) { ShaderGraph::Register(Name, Create##Type); }
+
19 #ifndef OSD_SHADERGRAPH_H
+
20 #define OSD_SHADERGRAPH_H
+
+
22 #include <Editor/EditorWindow.h>
+
+
+
+
26 #include <unordered_set>
+
+
+
+
30 #include <glw/common.h>
+
+
32 #include <open-cpp-utils/startup.h>
+
33 #include <open-cpp-utils/directed_tree.h>
+
34 #include <open-cpp-utils/any.h>
+
35 #include <open-cpp-utils/object_pool.h>
-
37 namespace OpenShaderDesigner
-
-
-
40 using PinId = uint16_t;
-
41 using NodeId = uint32_t;
+
37 #include <imnode-graph/imnode_graph.h>
+
+
39 #include "FileSystem/FileManager.h"
+
40 #include <Renderer/Assets/Texture.h>
+
-
-
-
-
-
-
-
47 size_t operator()(
const PinPtr & p)
const
-
-
-
-
-
+
43 namespace ocu = open_cpp_utils;
+
+
45 #define RegisterNode(Name, Type) \
+
46 inline Node* Create##Type(ShaderGraph& graph, ImVec2 pos) { return new Type(graph, pos); } \
+
47 STARTUP(_Register##Type) { ShaderGraph::Register(Name, Create##Type); }
+
+
49 namespace OpenShaderDesigner
+
+
-
-
-
-
-
57 size_t hash()
const {
return (Input ? 0 : 0x8000000) | static_cast<size_t>(
Node ) << 32 | static_cast<size_t>(
Pin & 0x7FFFFFFF); }
-
-
59 bool operator<(
const PinPtr & o)
const {
return hash() < o.hash(); }
-
60 bool operator==(
const PinPtr& o)
const {
return hash() == o.hash(); }
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
65 using FlagT =
unsigned int;
+
+
+
+
69 , PinFlags_NoCollapse = 1 << 0
+
70 , PinFlags_AlwaysCollapse = 1 << 1
+
71 , PinFlags_NoPadding = 1 << 2
+
72 , PinFlags_Ambiguous = 1 << 3
+
+
+
75 enum InterpolationType_ : glw::enum_t
+
+
77 InterpolationType_Flat = 0
+
78 , InterpolationType_Screen
+
79 , InterpolationType_Smooth
+
-
82 inline const static ImColor Colors[COUNT] = {
-
83 ImColor(0xB9, 0xF5, 0x94)
-
84 , ImColor(0x8C, 0xC0, 0x8C)
-
85 , ImColor(0x37, 0x95, 0x85)
-
86 , ImColor(0xE3, 0x7D, 0xDC)
-
-
88 , ImColor(0xD2, 0xD5, 0xD3)
-
-
-
91 inline const static std::string TypeNames[COUNT] = {
-
-
-
-
-
-
-
-
-
100 PinDirection Direction;
-
-
-
-
-
-
-
-
106 ImVec2 Position = { 0, 0 };
+
+
+
+
84 inline const static ImColor Colors[PinType_COUNT] = {
+
85 ImColor(0x7A, 0x9F, 0x82)
+
86 , ImColor(0x64, 0x94, 0xAA)
+
87 , ImColor(0xA6, 0x3D, 0x40)
+
88 , ImColor(0xE9, 0xB8, 0x72)
+
89 , ImColor(0xFF, 0xFF, 0xFF)
+
+
+
92 inline static constexpr const char * TypeNames[PinType_COUNT] = {
+
+
+
+
+
+
+
+
100 inline const static std::string TypeKeywords[PinType_COUNT] = {
+
+
+
+
+
+
-
-
-
110 std::string Title =
"Node" ;
-
111 ImColor Color = Pin::Colors[Pin::VECTOR];
-
-
-
-
-
-
117 std::vector<Pin> Inputs, Outputs;
-
118 bool DynamicInputs =
false ;
-
-
-
-
-
-
-
-
-
-
-
129 ,
const std::string& title, ImColor color
-
130 ,
const std::vector<Pin>& inputs,
bool dyn_inputs
-
131 ,
const std::vector<Pin>& outputs
-
132 ,
bool constant =
false );
-
-
-
-
136 virtual void Inspect() = 0;
-
+
108 inline const static int TypeWidths[PinType_COUNT] = {
+
+
+
+
+
+
+
+
116 using Ambiguous = ocu::any<glm::int32, glm::uint32, glm::float32, glm::vec3>;
+
+
+
+
+
+
+
+
124 Pin (
const std::string& name, PinType type, FlagT flags = PinFlags_None)
+
+
+
+
+
+
130 std::string GetVarName()
const {
return std::format(
"{}_{}" , Name, Ptr.Node); }
+
-
-
-
-
-
-
-
-
-
145 using Connection = std::pair<const PinPtr, PinPtr>;
-
146 using ConnectionMap = std::unordered_multimap<PinPtr, PinPtr, PinPtr::Hash>;
-
-
-
-
-
-
+
+
+
+
+
136 , NodeFlags_Const = 0x0000'0001
+
137 , NodeFlags_DynamicInputs = 0x0000'0002
+
138 , NodeFlags_DynamicOutputs = 0x0000'0004
+
+
+
+
+
+
+
+
145 ImVec2 Position = { 0, 0 };
+
+
+
+
+
150 ImColor Color, HoveredColor, ActiveColor;
+
+
-
-
155 struct ContextMenuItem
-
-
-
158 ConstructorPtr Constructor;
-
-
-
-
-
-
164 std::vector<Node*> Nodes;
-
165 std::unordered_set<PinId> Erased;
-
166 ConnectionMap Connections;
+
+
+
156 std::vector<Pin> Inputs, Outputs;
+
+
+
+
+
+
+
+
+
+
166 virtual ~Node () =
default ;
-
-
169 GraphState(
const GraphState& other);
-
-
-
172 GraphState& operator=(
const GraphState& other);
-
-
-
175 using ContextMenuHierarchy = ocu::directed_tree<ContextMenuItem>;
-
176 using ContextID = ContextMenuHierarchy::node;
-
177 inline static ContextMenuHierarchy ContextMenu;
-
-
-
180 float CalculateWidth(
Node & node);
-
181 float CalculateHeight(
Node & node);
-
-
-
-
-
186 void DrawNode(
Node & node, NodeId
id );
-
187 void DrawPin(NodeId node_id,
Pin & pin, PinId pin_id, ImVec2 location,
bool input);
-
188 void DrawContextMenu();
+
168 void DrawPin(
int id ,
Pin & pin, ImPinDirection direction);
+
169 void Draw(ImGuiID
id );
+
+
171 inline virtual bool CheckConnection(
Pin *,
Pin *) {
return true ; }
+
172 virtual void ValidateConnections() { }
+
+
+
175 virtual void Inspect() = 0;
+
176 virtual std::string GetCode()
const = 0;
+
+
+
+
179 using NodeList = ocu::object_list<Node*>;
+
180 using NodeId = NodeList::uuid_type;
+
+
+
+
+
+
+
186 glw::enum_t Interpolation;
+
+
+
-
-
191 void DrawConnections();
-
-
193 auto StartConnection(
const PinPtr & ptr) -> void;
-
194 void StopConnection();
-
195 void CreateConnection(
const PinPtr & a,
const PinPtr & b);
-
-
197 void EraseConnections(
const PinPtr & a);
-
-
199 NodeId AddNode(
Node * node);
-
200 void RemoveNode(NodeId
id );
-
-
-
203 void ClearClipboard();
-
-
205 void Paste(
const ImVec2& location);
-
206 void EraseSelection();
-
-
-
-
-
-
-
213 float BezierOffset(
const ImVec2& out,
const ImVec2& in);
-
214 bool AABB(
const ImVec2& a0,
const ImVec2& a1,
const ImVec2& b0,
const ImVec2& b1);
-
-
216 ImVec2 GridToScreen(
const ImVec2& position);
-
217 ImVec2 ScreenToGrid(
const ImVec2& position);
-
218 ImVec2 SnapToGrid(
const ImVec2& position);
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
207 NodeId AddNode(
Node * node) {
return Nodes.insert(node); }
+
208 void RemoveNode(NodeId node) {
if (Nodes[node]->Info.Flags & NodeFlags_Const)
return ; Nodes.erase(node); }
+
+
+
+
+
+
+
+
+
+
216 inline static const std::string VersionString =
"#version 430 core" ;
+
+
+
+
+
+
+
223 void PushState() { History_.push(State_); }
+
224 void PopState() { State_ = History_.top(); History_.pop();}
+
+
+
227 const GraphState & GetState()
const {
return State_; }
-
229 static void Register(
const std::filesystem::path& path, ConstructorPtr constructor);
-
-
-
-
233 std::stack<GraphState> History;
+
+
230 const ShaderGraph & GetGraph()
const {
return State_.Parent; }
+
+
232 virtual void Compile() = 0;
+
233 virtual void View(HDRTexture::HandleType* Target) = 0;
-
-
-
-
-
239 ImColor BackgroundColor;
-
-
-
-
-
-
-
-
-
-
-
-
251 Line Border, SelectedBorder;
-
-
-
-
-
-
-
258 float BorderThickness;
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
241 std::stack<GraphState> History_;
+
+
+
+
+
+
+
+
+
+
+
+
251 struct ContextMenuItem
+
+
+
254 ConstructorPtr Constructor;
+
+
+
257 using ContextMenuHierarchy = ocu::directed_tree<ContextMenuItem>;
+
258 using ContextID = ContextMenuHierarchy::node;
+
+
260 static ContextMenuHierarchy& ContextMenu() {
static ContextMenuHierarchy Menu {{
"" ,
nullptr }};
return Menu; }
+
+
+
+
+
+
+
+
+
-
-
-
-
-
-
-
-
-
-
280 float Rate, Smoothing;
-
-
-
-
-
-
-
287 ImVec2 Location, ScreenLocation, Delta;
-
-
289 bool ClickedSomething;
-
-
291 ocu::optional<NodeId> FocusedNode;
-
292 std::unordered_map<NodeId, ImVec2> Locks;
-
293 std::unordered_set<NodeId> DragSelect;
-
294 bool LocksDragged, NodeHovered;
-
295 ocu::optional<PinPtr> NewConnection;
-
296 std::unordered_set<NodeId> Selected;
-
-
-
-
-
-
-
-
-
-
-
307 std::vector<Node*> Nodes;
-
308 ConnectionMap Connections;
-
-
-
-
312 ImVec2 ContextMenuPosition;
-
-
-
+
271 void DrawContextMenu();
+
+
+
+
275 void Paste(ImVec2 pos);
+
+
+
278 Node * FindNode(ImPinPtr ptr);
+
279 Node * FindNode(ImGuiID
id );
+
280 Pin & FindPin(ImPinPtr ptr);
+
+
282 std::string GetValue(ImPinPtr ptr);
+
+
284 void OpenShader(
ShaderAsset * asset) { Shader_ = asset; }
+
+
286 static void Register(
const std::filesystem::path& path, ConstructorPtr constructor);
+
+
+
+
+
+
292 ImVec2 ContextMenuPosition_;
+
293 ocu::optional<NodeId> Selected_;
+
+
+
+
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
-
-
-
EditorWindow class for wrapping ImGui window functionality.
Definition EditorWindow.h:28
-
Definition ShaderGraph.h:319
-
void DrawWindow() override
DrawWindow function for when the EditorWindow is being drawn.
Definition ShaderGraph.cpp:1166
-
Definition ShaderGraph.h:141
-
void OnOpen() override
OnOpen callback for when the EditorWindow is opened.
Definition ShaderGraph.cpp:219
-
void DrawWindow() override
DrawWindow function for when the EditorWindow is being drawn.
Definition ShaderGraph.cpp:227
-
Definition ShaderGraph.h:104
-
Definition ShaderGraph.h:64
-
Definition ShaderGraph.h:46
-
Definition ShaderGraph.h:44
+
+
+
+
EditorWindow class for wrapping ImGui window functionality.
Definition EditorWindow.h:32
+
Definition FileManager.h:77
+
Definition ShaderGraph.h:302
+
void DrawWindow() override
DrawWindow function for when the EditorWindow is being drawn.
Definition ShaderGraph.cpp:514
+
Definition ShaderGraph.h:214
+
Definition ShaderGraph.h:246
+
void OnOpen() override
OnOpen callback for when the EditorWindow is opened.
Definition ShaderGraph.cpp:222
+
void DrawMenu() override
DrawMenu function for when the EditorWindow Menu is being drawn.
Definition ShaderGraph.cpp:229
+
void DrawWindow() override
DrawWindow function for when the EditorWindow is being drawn.
Definition ShaderGraph.cpp:242
+
Definition ShaderGraph.h:183
+
Definition ShaderGraph.h:198
+
Definition ShaderGraph.h:142
+
Definition ShaderGraph.h:191
+
Definition ShaderGraph.h:83
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
-
-
21 namespace OpenShaderDesigner
-
-
-
-
-
-
26 Timer () : Start(std::chrono::high_resolution_clock::now()) { }
-
-
28 void Reset() { Start = std::chrono::high_resolution_clock::now(); }
-
-
30 [[nodiscard]]
double Poll()
const
-
31 {
return std::chrono::duration<double>(std::chrono::high_resolution_clock::now() - Start).count(); }
-
-
33 std::chrono::high_resolution_clock::time_point Start;
-
+
+
+
+
+
+
24 namespace OpenShaderDesigner
+
+
+
+
+
+
+
30 Timer () : Start(std::chrono::high_resolution_clock::now()) { }
+
+
32 void Reset() { Start = std::chrono::high_resolution_clock::now(); }
+
+
34 [[nodiscard]]
double Poll()
const
+
35 {
return std::chrono::duration<double>(std::chrono::high_resolution_clock::now() - Start).count(); }
+
+
37 std::chrono::high_resolution_clock::time_point Start;
+
-
-
-
-
+
+
+
+
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
-
-
-
22 #include <Core/EventSystem.h>
-
-
24 namespace OpenShaderDesigner
-
-
-
27 const SDL_Event sdl_event;
+
+
+
+
+
+
+
25 #include <Core/EventSystem.h>
+
+
27 #include "open-cpp-utils/optional.h"
-
29 SDLEvent() : sdl_event() {}
+
29 namespace ocu = open_cpp_utils;
-
31 explicit SDLEvent(
const SDL_Event &event) : sdl_event(event) {}
-
+
31 namespace OpenShaderDesigner
+
-
-
35 BeginEvent(BeginFrame)
-
-
-
38 BeginEvent(SDLEventsDone)
-
-
-
-
-
-
-
-
-
-
-
48 enum class VSyncMode :
int
-
-
-
-
-
-
-
-
56 enum class FullscreenMode :
int
-
-
-
59 FULLSCREEN = SDL_WINDOW_FULLSCREEN,
-
60 FULLSCREEN_WINDOW = SDL_WINDOW_FULLSCREEN_DESKTOP,
-
-
-
-
-
-
-
-
-
-
-
-
-
72 FullscreenMode Fullscreen;
-
73 glm::ivec2 Resolution;
-
-
-
+
+
35 const SDL_Event sdl_event;
+
+
37 SDLEvent() : sdl_event() {}
+
+
39 explicit SDLEvent(
const SDL_Event &event) : sdl_event(event) {}
+
+
+
+
+
+
+
46 BeginEvent(SDLEventsDone)
+
+
+
+
+
+
+
+
+
+
+
56 enum class VSyncMode :
int
+
+
+
+
+
+
+
+
64 enum class FullscreenMode :
int
+
+
+
67 FULLSCREEN = SDL_WINDOW_FULLSCREEN,
+
68 FULLSCREEN_WINDOW = SDL_WINDOW_FULLSCREEN_DESKTOP,
+
+
+
+
+
+
+
+
+
-
-
79 : Application {
"App" }
-
80 , Video { FullscreenMode::WINDOWED, glm::ivec2(1280, 720), VSyncMode::DISABLED,
false }
-
-
+
+
+
80 FullscreenMode Fullscreen;
+
81 glm::ivec2 Resolution;
+
+
+
84 ocu::optional<int> Multisamples;
+
+
+
+
88 : Application {
"App" }
+
89 , Video { FullscreenMode::WINDOWED, glm::ivec2(1280, 720), VSyncMode::DISABLED,
false }
+
+
-
-
-
-
-
-
-
-
-
-
93 void Close() { Open =
false ; }
-
94 [[nodiscard]]
bool IsOpen()
const {
return Open; }
-
-
96 SDL_Window* GetHandle() {
return Handle; }
-
97 [[nodiscard]]
const SDL_Window* GetHandle()
const {
return Handle; }
-
-
99 SDL_GLContext GetContext() {
return Context; }
-
100 [[nodiscard]]
const SDL_GLContext GetContext()
const {
return Context; }
+
+
+
+
+
+
+
+
-
102 [[nodiscard]] glm::ivec2 Size()
const {
return Config.Video.Resolution; }
-
-
104 Configuration Config;
-
-
106 SDL_GLContext Context;
-
-
-
-
+
102 void Close() { Open_ =
false ; }
+
103 [[nodiscard]]
bool IsOpen()
const {
return Open_; }
+
+
105 SDL_Window* GetHandle() {
return Handle_; }
+
106 [[nodiscard]]
const SDL_Window* GetHandle()
const {
return Handle_; }
+
+
108 SDL_GLContext GetContext() {
return Context_; }
+
109 [[nodiscard]]
const SDL_GLContext GetContext()
const {
return Context_; }
-
-
-
-
-
-
+
111 [[nodiscard]] glm::ivec2 Size()
const {
return Config_.Video.Resolution; }
+
+
113 Configuration Config_;
+
+
115 SDL_GLContext Context_;
+
+
+
+
+
+
+
+
+
+
+
+
Initial value: =
-
{
-
"Timestamps" , "Thread IDs" , "Severity" , "File Info" , "Wrapping"
-
}
+
{
+
"Timestamps" , "Thread IDs" , "Severity" , "File Info" , "Wrapping"
+
}
String representations of the settings.
@@ -309,9 +309,9 @@ template<typename... Args>
Initial value: =
-
{
-
"Message" , "Warning" , "Error" , "Fatal" , "Alert" , "Command"
-
}
+
{
+
"Message" , "Warning" , "Error" , "Fatal" , "Alert" , "Command"
+
}
String representations of the Severity levels.
@@ -337,10 +337,10 @@ template<typename... Args>
diff --git a/Documentation/html/class_open_shader_designer_1_1_editor_system.html b/Documentation/html/class_open_shader_designer_1_1_editor_system.html
index 22b7eb3..605af7a 100644
--- a/Documentation/html/class_open_shader_designer_1_1_editor_system.html
+++ b/Documentation/html/class_open_shader_designer_1_1_editor_system.html
@@ -120,6 +120,14 @@ template<typename T >
template<typename T >
static T * Get ()
+
+template<typename T >
+
static T * SetMainMenuBar ()
+
+
+template<typename T >
+
static T * GetMainMenuBar ()
+
static void Initialize ()
diff --git a/Documentation/html/class_open_shader_designer_1_1_editor_window.html b/Documentation/html/class_open_shader_designer_1_1_editor_window.html
index b695ca8..4d3f004 100644
--- a/Documentation/html/class_open_shader_designer_1_1_editor_window.html
+++ b/Documentation/html/class_open_shader_designer_1_1_editor_window.html
@@ -109,9 +109,11 @@ Inheritance diagram for OpenShaderDesigner::EditorWindow:
-
-
-
+
+
+
+
+
@@ -208,7 +210,7 @@ class EditorSystem DrawMenu function for when the EditorWindow Menu is being drawn.
-Reimplemented in OpenShaderDesigner::ConsoleWindow .
+Reimplemented in OpenShaderDesigner::ConsoleWindow , OpenShaderDesigner::FileManager , OpenShaderDesigner::Renderer , and OpenShaderDesigner::ShaderGraph .
@@ -237,7 +239,7 @@ class EditorSystem DrawWindow function for when the EditorWindow is being drawn.
-Reimplemented in OpenShaderDesigner::ConsoleWindow , OpenShaderDesigner::Inspector , OpenShaderDesigner::Profiler , and OpenShaderDesigner::ShaderGraph .
+Reimplemented in OpenShaderDesigner::ConsoleWindow , OpenShaderDesigner::FileManager , OpenShaderDesigner::Inspector , OpenShaderDesigner::Profiler , OpenShaderDesigner::Renderer , and OpenShaderDesigner::ShaderGraph .
diff --git a/Documentation/html/class_open_shader_designer_1_1_editor_window.png b/Documentation/html/class_open_shader_designer_1_1_editor_window.png
index 3427e8f..6014ccd 100644
Binary files a/Documentation/html/class_open_shader_designer_1_1_editor_window.png and b/Documentation/html/class_open_shader_designer_1_1_editor_window.png differ
diff --git a/Documentation/html/class_open_shader_designer_1_1_engine-members.html b/Documentation/html/class_open_shader_designer_1_1_engine-members.html
index 626480a..527ce54 100644
--- a/Documentation/html/class_open_shader_designer_1_1_engine-members.html
+++ b/Documentation/html/class_open_shader_designer_1_1_engine-members.html
@@ -96,8 +96,13 @@ $(function(){ initResizable(false); });
-
The documentation for this class was generated from the following file:
-Include/Core/Renderer.h
+
+
+
+
+
+
+
+
+
+
+ enum mode : glw::enum_t { none = 0
+, view_texture
+, shader
+ }
+
+
+
+void DrawMenu () override
+ DrawMenu function for when the EditorWindow Menu is being drawn.
+
+void DrawWindow () override
+ DrawWindow function for when the EditorWindow is being drawn.
+
+
+void OpenTexture (Texture *texture)
+
+
+void OpenShader (ShaderAsset *shader)
+
+
+
+void Open ()
+ Open the EditorWindow .
+
+
+void Draw ()
+ Draw the EditorWindow .
+
+
+void Close ()
+ Close the EditorWindow .
+
+bool IsOpen () const
+ Check if the EditorWindow is open.
+
+
+void SetFlags (ImGuiWindowFlags flags)
+
+
+void ClearFlags (ImGuiWindowFlags flags)
+
+
+void ToggleFlags (ImGuiWindowFlags flags)
+
+
+bool CheckFlag (ImGuiWindowFlags flag) const
+
+
+bool HasMenuBar () const
+
+
+
+
+
+const std::string Title
+ Title for the EditorWindow .
+
+
+
+ EditorWindow (const std::string &title, ImGuiWindowFlags flags)
+
+virtual void OnOpen ()
+ OnOpen callback for when the EditorWindow is opened.
+
+
+virtual void OnClose ()
+ OnClose callback for when the EditorWindow is closed.
+
+
+
+
+◆ DrawMenu()
+
+
+
+
+
+
+
+
+ void Renderer::DrawMenu
+ (
+ )
+
+
+
+
+
+override virtual
+
+
+
+
+
+◆ DrawWindow()
+
+
+
+
+
+
+
+
+ void Renderer::DrawWindow
+ (
+ )
+
+
+
+
+
+override virtual
+
+
+
+
+ The documentation for this class was generated from the following files:
+Include/Renderer/Renderer.h
+Source/Renderer/Renderer.cpp
diff --git a/Documentation/html/class_open_shader_designer_1_1_renderer.png b/Documentation/html/class_open_shader_designer_1_1_renderer.png
new file mode 100644
index 0000000..8dde6b6
Binary files /dev/null and b/Documentation/html/class_open_shader_designer_1_1_renderer.png differ
diff --git a/Documentation/html/class_open_shader_designer_1_1_shader_asset-members.html b/Documentation/html/class_open_shader_designer_1_1_shader_asset-members.html
new file mode 100644
index 0000000..f156c20
--- /dev/null
+++ b/Documentation/html/class_open_shader_designer_1_1_shader_asset-members.html
@@ -0,0 +1,124 @@
+
+
+
+
+
+
+
+
OpenShaderDesigner: Member List
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ OpenShaderDesigner 0.0.1
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+
+
+
+
+
+
+
+
This is the complete list of members for OpenShaderDesigner::ShaderAsset , including all inherited members.
+
+
+
+
+
+
diff --git a/Documentation/html/class_open_shader_designer_1_1_shader_asset.html b/Documentation/html/class_open_shader_designer_1_1_shader_asset.html
new file mode 100644
index 0000000..4264ef4
--- /dev/null
+++ b/Documentation/html/class_open_shader_designer_1_1_shader_asset.html
@@ -0,0 +1,191 @@
+
+
+
+
+
+
+
+
OpenShaderDesigner: OpenShaderDesigner::ShaderAsset Class Reference
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ OpenShaderDesigner 0.0.1
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ ShaderAsset (const FileManager::Path &path, ShaderGraph &graph)
+
+
+void PushState ()
+
+
+void PopState ()
+
+
+GraphState & GetState ()
+
+
+const GraphState & GetState () const
+
+
+ShaderGraph & GetGraph ()
+
+
+const ShaderGraph & GetGraph () const
+
+
+virtual void Compile ()=0
+
+
+virtual void View (HDRTexture::HandleType *Target)=0
+
+
+
+ Asset (const Path &path)
+
+
+bool Dirty () const
+
+
+virtual void Open ()
+
+
+virtual void Save (const Path &path)
+
+
+File & GetFile ()
+
+
+FileID GetID () const
+
+
+
+
+static const std::string VersionString = "#version 430 core"
+
+
+
+
+std::string Code
+
+
+
+
+
+void MakeDirty ()
+
+
+FileManager * Parent () const
+
+
+
The documentation for this class was generated from the following file:
+
+
+
+
+
+
diff --git a/Documentation/html/class_open_shader_designer_1_1_shader_asset.png b/Documentation/html/class_open_shader_designer_1_1_shader_asset.png
new file mode 100644
index 0000000..c062dbd
Binary files /dev/null and b/Documentation/html/class_open_shader_designer_1_1_shader_asset.png differ
diff --git a/Documentation/html/class_open_shader_designer_1_1_shader_graph-members.html b/Documentation/html/class_open_shader_designer_1_1_shader_graph-members.html
index 1cb6766..5ac32b4 100644
--- a/Documentation/html/class_open_shader_designer_1_1_shader_graph-members.html
+++ b/Documentation/html/class_open_shader_designer_1_1_shader_graph-members.html
@@ -94,63 +94,36 @@ $(function(){ initResizable(false); });
This is the complete list of members for OpenShaderDesigner::ShaderGraph , including all inherited members.
-
+
A
-Add (OpenShaderDesigner::Nodes::Math)
+
AbsoluteValue (OpenShaderDesigner::Nodes::Math)Add (OpenShaderDesigner::Nodes::Math)ArcCosine (OpenShaderDesigner::Nodes::Math)ArcSine (OpenShaderDesigner::Nodes::Math)ArcTangent (OpenShaderDesigner::Nodes::Math)FileManager::Asset (OpenShaderDesigner)Attribute (OpenShaderDesigner)
B
-BufferObject (GLW)
+
BreakVector (OpenShaderDesigner::Nodes::VectorMath)
C
-Window::Configuration (OpenShaderDesigner)Console (OpenShaderDesigner)ConsoleWindow (OpenShaderDesigner)Constant (OpenShaderDesigner::Nodes::Math)
+
Window::Configuration (OpenShaderDesigner)Console (OpenShaderDesigner)ConsoleWindow (OpenShaderDesigner)Cosine (OpenShaderDesigner::Nodes::Math)
-E
-EditorSystem (OpenShaderDesigner)EditorWindow (OpenShaderDesigner)Engine (OpenShaderDesigner)Event (OpenShaderDesigner)EventHandler (OpenShaderDesigner)EventSystem (OpenShaderDesigner)
+
D
+
Divide (OpenShaderDesigner::Nodes::Math)
-H
-PinPtr::Hash (OpenShaderDesigner)
+
E
+
EditorSystem (OpenShaderDesigner)EditorWindow (OpenShaderDesigner)Engine (OpenShaderDesigner)Event (OpenShaderDesigner)EventHandler (OpenShaderDesigner)EventSystem (OpenShaderDesigner)Exponential (OpenShaderDesigner::Nodes::Math)
+F
+FileManager (OpenShaderDesigner)FileManager::Folder (OpenShaderDesigner)Function (OpenShaderDesigner::Nodes::Shaders)FunctionInputs (OpenShaderDesigner::Nodes::Shaders)
+
+G
+GraphState (OpenShaderDesigner)
+
+H
+HDRTexture (OpenShaderDesigner)
+
I
-Inspector (OpenShaderDesigner)
+
Inspector (OpenShaderDesigner)Integer (OpenShaderDesigner::Nodes::Math)
+
+M
+MainMenuBar (OpenShaderDesigner)MakeVector (OpenShaderDesigner::Nodes::VectorMath)MathOp (OpenShaderDesigner::Nodes::Math)Multiply (OpenShaderDesigner::Nodes::Math)
N
Node (OpenShaderDesigner)
P
-Pin (OpenShaderDesigner)PinPtr (OpenShaderDesigner)Profiler (OpenShaderDesigner)
+
Parameter (OpenShaderDesigner)Pin (OpenShaderDesigner)Power (OpenShaderDesigner::Nodes::Math)Profiler (OpenShaderDesigner)Project (OpenShaderDesigner)
R
Renderer (OpenShaderDesigner)
S
-ShaderGraph (OpenShaderDesigner)
+
Scalar (OpenShaderDesigner::Nodes::Math)ShaderAsset (OpenShaderDesigner)ShaderGraph (OpenShaderDesigner)Sine (OpenShaderDesigner::Nodes::Math)SquareRoot (OpenShaderDesigner::Nodes::Math)Subtract (OpenShaderDesigner::Nodes::Math)
T
-Timer (OpenShaderDesigner)
+
Tangent (OpenShaderDesigner::Nodes::Math)Texture (OpenShaderDesigner)Timer (OpenShaderDesigner)
+
+U
+UnsignedInteger (OpenShaderDesigner::Nodes::Math)
+
+V
+Vector (OpenShaderDesigner::Nodes::Math)
W
Window (OpenShaderDesigner)
diff --git a/Documentation/html/dir_0599d141b1a2e9e9007ecef8e4a97773.html b/Documentation/html/dir_0599d141b1a2e9e9007ecef8e4a97773.html
index c2cab11..385c921 100644
--- a/Documentation/html/dir_0599d141b1a2e9e9007ecef8e4a97773.html
+++ b/Documentation/html/dir_0599d141b1a2e9e9007ecef8e4a97773.html
@@ -100,8 +100,6 @@ Files
EventSystem.h
-
Renderer.h
-
Window.h
diff --git a/Documentation/html/dir_08dd7d0fd337692449c330c571a53413.html b/Documentation/html/dir_08dd7d0fd337692449c330c571a53413.html
new file mode 100644
index 0000000..ebab549
--- /dev/null
+++ b/Documentation/html/dir_08dd7d0fd337692449c330c571a53413.html
@@ -0,0 +1,107 @@
+
+
+
+
+
+
+
+
OpenShaderDesigner: Include/FileSystem Directory Reference
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ OpenShaderDesigner 0.0.1
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+
+
+
+
+
+
diff --git a/Documentation/html/dir_1a20f8ff3fbddf7bc217a3297d51ed1e.html b/Documentation/html/dir_1a20f8ff3fbddf7bc217a3297d51ed1e.html
new file mode 100644
index 0000000..8d0eeaa
--- /dev/null
+++ b/Documentation/html/dir_1a20f8ff3fbddf7bc217a3297d51ed1e.html
@@ -0,0 +1,107 @@
+
+
+
+
+
+
+
+
OpenShaderDesigner: Include/Renderer/Assets Directory Reference
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ OpenShaderDesigner 0.0.1
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+
+
+
+
+
+
diff --git a/Documentation/html/dir_25b63e6afd687aa8fb185987323f066b.html b/Documentation/html/dir_25b63e6afd687aa8fb185987323f066b.html
new file mode 100644
index 0000000..b7de429
--- /dev/null
+++ b/Documentation/html/dir_25b63e6afd687aa8fb185987323f066b.html
@@ -0,0 +1,101 @@
+
+
+
+
+
+
+
+
OpenShaderDesigner: Source/FileSystem Directory Reference
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ OpenShaderDesigner 0.0.1
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+
+
+
+
+
+
diff --git a/Documentation/html/dir_3ff3a0eae8df66d3ab7adcdbc5f88e78.html b/Documentation/html/dir_3ff3a0eae8df66d3ab7adcdbc5f88e78.html
new file mode 100644
index 0000000..c09b15e
--- /dev/null
+++ b/Documentation/html/dir_3ff3a0eae8df66d3ab7adcdbc5f88e78.html
@@ -0,0 +1,101 @@
+
+
+
+
+
+
+
+
OpenShaderDesigner: Source/Project Directory Reference
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ OpenShaderDesigner 0.0.1
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+
+
+
+
+
+
diff --git a/Documentation/html/dir_4efb1cddb47a1770ad011373796c1afc.html b/Documentation/html/dir_4efb1cddb47a1770ad011373796c1afc.html
new file mode 100644
index 0000000..a2995d3
--- /dev/null
+++ b/Documentation/html/dir_4efb1cddb47a1770ad011373796c1afc.html
@@ -0,0 +1,107 @@
+
+
+
+
+
+
+
+
OpenShaderDesigner: Source/Renderer Directory Reference
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ OpenShaderDesigner 0.0.1
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+
+
+
+
+
+
diff --git a/Documentation/html/dir_5b2485f711efe5ec78073fbbbdb4a57f.html b/Documentation/html/dir_5b2485f711efe5ec78073fbbbdb4a57f.html
index 68fe59f..c3d67a5 100644
--- a/Documentation/html/dir_5b2485f711efe5ec78073fbbbdb4a57f.html
+++ b/Documentation/html/dir_5b2485f711efe5ec78073fbbbdb4a57f.html
@@ -91,6 +91,12 @@ $(function(){ initResizable(false); });
diff --git a/Documentation/html/dir_856524284ebe840938865dc061f982fb.html b/Documentation/html/dir_856524284ebe840938865dc061f982fb.html
index 5fd4ee8..74c8d2b 100644
--- a/Documentation/html/dir_856524284ebe840938865dc061f982fb.html
+++ b/Documentation/html/dir_856524284ebe840938865dc061f982fb.html
@@ -98,9 +98,13 @@ Directories
Editor
+
FileSystem
+
Graph
-
OpenGL
+
Project
+
+
Renderer
Utility
diff --git a/Documentation/html/dir_9e2c3e70546af5dd938ae24359c3ecb9.html b/Documentation/html/dir_9e2c3e70546af5dd938ae24359c3ecb9.html
new file mode 100644
index 0000000..0aaa2cb
--- /dev/null
+++ b/Documentation/html/dir_9e2c3e70546af5dd938ae24359c3ecb9.html
@@ -0,0 +1,112 @@
+
+
+
+
+
+
+
+
OpenShaderDesigner: Include/Renderer Directory Reference
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ OpenShaderDesigner 0.0.1
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+
+
+
+
+
+
diff --git a/Documentation/html/dir_b003b7b39d48cc101290b08641b93afd.html b/Documentation/html/dir_b003b7b39d48cc101290b08641b93afd.html
new file mode 100644
index 0000000..83391b4
--- /dev/null
+++ b/Documentation/html/dir_b003b7b39d48cc101290b08641b93afd.html
@@ -0,0 +1,101 @@
+
+
+
+
+
+
+
+
OpenShaderDesigner: Source/Graph/Nodes/Math Directory Reference
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ OpenShaderDesigner 0.0.1
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+
+
+
+
+
+
diff --git a/Documentation/html/dir_b1484cafd1943b26cdd73949309ca481.html b/Documentation/html/dir_b1484cafd1943b26cdd73949309ca481.html
new file mode 100644
index 0000000..6b88c88
--- /dev/null
+++ b/Documentation/html/dir_b1484cafd1943b26cdd73949309ca481.html
@@ -0,0 +1,101 @@
+
+
+
+
+
+
+
+
OpenShaderDesigner: Source/Renderer/Assets Directory Reference
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ OpenShaderDesigner 0.0.1
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+
+
+
+
+
+
diff --git a/Documentation/html/dir_bd45b750fe5d9d69196d2087bb9244ca.html b/Documentation/html/dir_bd45b750fe5d9d69196d2087bb9244ca.html
index 854e399..26ce83d 100644
--- a/Documentation/html/dir_bd45b750fe5d9d69196d2087bb9244ca.html
+++ b/Documentation/html/dir_bd45b750fe5d9d69196d2087bb9244ca.html
@@ -100,6 +100,8 @@ Files
EditorWindow.h
+
MainMenuBar.h
+
Profiler.h
diff --git a/Documentation/html/dir_c4fdeaf00d8f0a3f0e6e3e16a5c7d0d7.html b/Documentation/html/dir_c4fdeaf00d8f0a3f0e6e3e16a5c7d0d7.html
index 13aa63a..05324a7 100644
--- a/Documentation/html/dir_c4fdeaf00d8f0a3f0e6e3e16a5c7d0d7.html
+++ b/Documentation/html/dir_c4fdeaf00d8f0a3f0e6e3e16a5c7d0d7.html
@@ -92,9 +92,14 @@ $(function(){ initResizable(false); });
diff --git a/Documentation/html/dir_e200a78f5265774985e72a4e4b11933d.html b/Documentation/html/dir_e200a78f5265774985e72a4e4b11933d.html
new file mode 100644
index 0000000..24e4049
--- /dev/null
+++ b/Documentation/html/dir_e200a78f5265774985e72a4e4b11933d.html
@@ -0,0 +1,115 @@
+
+
+
+
+
+
+
+
OpenShaderDesigner: Include/Graph/Nodes/Math Directory Reference
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ OpenShaderDesigner 0.0.1
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+
+
+
+
+
+
+
+
+ Comparison.h
+
+ Constants.h
+
+ Functions.h
+
+ Trigonometry.h
+
+ Vector.h
+
+
+
+
+
+
+
+
diff --git a/Documentation/html/dir_f1ec29027cfe74ff880a8d622778594e.html b/Documentation/html/dir_f1ec29027cfe74ff880a8d622778594e.html
new file mode 100644
index 0000000..ae953c5
--- /dev/null
+++ b/Documentation/html/dir_f1ec29027cfe74ff880a8d622778594e.html
@@ -0,0 +1,107 @@
+
+
+
+
+
+
+
+
OpenShaderDesigner: Include/Project Directory Reference
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ OpenShaderDesigner 0.0.1
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+
+
+
+
+
+
diff --git a/Documentation/html/doxygen_crawl.html b/Documentation/html/doxygen_crawl.html
index 33a16f6..28d249d 100644
--- a/Documentation/html/doxygen_crawl.html
+++ b/Documentation/html/doxygen_crawl.html
@@ -11,23 +11,29 @@
-
+
-
+
+
+
+
+
+
+
-
-
-
+
+
+
-
-
+
+
@@ -44,41 +50,109 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
-
-
-
+
+
+
+
+
+
+
+
+
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
+
+
+
+
@@ -99,10 +173,6 @@
-
-
-
-
@@ -118,54 +188,52 @@
-
+
+
-
-
+
+
+
+
+
+
-
+
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
@@ -188,24 +256,42 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
+
+
+
+
+
@@ -214,14 +300,35 @@
+
+
+
+
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
-