~ Current status of the project (basic shader support and shader precompilation steps)
Signed-off-by: Alexis Maiquez <almamu@almamu.com>
1
.idea/.name
Normal file
@ -0,0 +1 @@
|
||||
wallengine
|
29
.idea/codeStyles/Project.xml
Normal file
@ -0,0 +1,29 @@
|
||||
<component name="ProjectCodeStyleConfiguration">
|
||||
<code_scheme name="Project" version="173">
|
||||
<Objective-C-extensions>
|
||||
<file>
|
||||
<option name="com.jetbrains.cidr.lang.util.OCDeclarationKind" value="Import" />
|
||||
<option name="com.jetbrains.cidr.lang.util.OCDeclarationKind" value="Macro" />
|
||||
<option name="com.jetbrains.cidr.lang.util.OCDeclarationKind" value="Typedef" />
|
||||
<option name="com.jetbrains.cidr.lang.util.OCDeclarationKind" value="Enum" />
|
||||
<option name="com.jetbrains.cidr.lang.util.OCDeclarationKind" value="Constant" />
|
||||
<option name="com.jetbrains.cidr.lang.util.OCDeclarationKind" value="Global" />
|
||||
<option name="com.jetbrains.cidr.lang.util.OCDeclarationKind" value="Struct" />
|
||||
<option name="com.jetbrains.cidr.lang.util.OCDeclarationKind" value="FunctionPredecl" />
|
||||
<option name="com.jetbrains.cidr.lang.util.OCDeclarationKind" value="Function" />
|
||||
</file>
|
||||
<class>
|
||||
<option name="com.jetbrains.cidr.lang.util.OCDeclarationKind" value="Property" />
|
||||
<option name="com.jetbrains.cidr.lang.util.OCDeclarationKind" value="Synthesize" />
|
||||
<option name="com.jetbrains.cidr.lang.util.OCDeclarationKind" value="InitMethod" />
|
||||
<option name="com.jetbrains.cidr.lang.util.OCDeclarationKind" value="StaticMethod" />
|
||||
<option name="com.jetbrains.cidr.lang.util.OCDeclarationKind" value="InstanceMethod" />
|
||||
<option name="com.jetbrains.cidr.lang.util.OCDeclarationKind" value="DeallocMethod" />
|
||||
</class>
|
||||
<extensions>
|
||||
<pair source="cpp" header="h" fileNamingConvention="NONE" />
|
||||
<pair source="c" header="h" fileNamingConvention="NONE" />
|
||||
</extensions>
|
||||
</Objective-C-extensions>
|
||||
</code_scheme>
|
||||
</component>
|
7
.idea/misc.xml
Normal file
@ -0,0 +1,7 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<project version="4">
|
||||
<component name="CMakeWorkspace" PROJECT_DIR="$PROJECT_DIR$" />
|
||||
<component name="JavaScriptSettings">
|
||||
<option name="languageLevel" value="ES6" />
|
||||
</component>
|
||||
</project>
|
8
.idea/modules.xml
Normal file
@ -0,0 +1,8 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<project version="4">
|
||||
<component name="ProjectModuleManager">
|
||||
<modules>
|
||||
<module fileurl="file://$PROJECT_DIR$/.idea/temp.iml" filepath="$PROJECT_DIR$/.idea/temp.iml" />
|
||||
</modules>
|
||||
</component>
|
||||
</project>
|
2
.idea/temp.iml
Normal file
@ -0,0 +1,2 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<module classpath="CMake" type="CPP_MODULE" version="4" />
|
760
.idea/workspace.xml
Normal file
@ -0,0 +1,760 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<project version="4">
|
||||
<component name="CMakeRunConfigurationManager" shouldGenerate="true" shouldDeleteObsolete="true" buildAllGenerated="true">
|
||||
<generated>
|
||||
<config projectName="wallengine" targetName="wallengine" />
|
||||
<config projectName="wallengine" targetName="temp" />
|
||||
</generated>
|
||||
</component>
|
||||
<component name="CMakeSettings">
|
||||
<configurations>
|
||||
<configuration PROFILE_NAME="Debug" CONFIG_NAME="Debug" />
|
||||
</configurations>
|
||||
</component>
|
||||
<component name="ChangeListManager">
|
||||
<list default="true" id="18bb2960-e23f-4286-86eb-946e53957973" name="Default" comment="" />
|
||||
<ignored path="$PROJECT_DIR$/cmake-build-debug/" />
|
||||
<option name="EXCLUDED_CONVERTED_TO_IGNORED" value="true" />
|
||||
<option name="TRACKING_ENABLED" value="true" />
|
||||
<option name="SHOW_DIALOG" value="false" />
|
||||
<option name="HIGHLIGHT_CONFLICTS" value="true" />
|
||||
<option name="HIGHLIGHT_NON_ACTIVE_CHANGELIST" value="false" />
|
||||
<option name="LAST_RESOLUTION" value="IGNORE" />
|
||||
</component>
|
||||
<component name="ExecutionTargetManager" SELECTED_TARGET="CMakeBuildProfile:Debug" />
|
||||
<component name="FileEditorManager">
|
||||
<leaf SIDE_TABS_SIZE_LIMIT_KEY="300">
|
||||
<file leaf-file-name="BasicShaderLoader.cpp" pinned="false" current-in-tab="false">
|
||||
<entry file="file://$PROJECT_DIR$/BasicShaderLoader.cpp">
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state relative-caret-position="475">
|
||||
<caret line="115" column="56" lean-forward="false" selection-start-line="115" selection-start-column="56" selection-end-line="115" selection-end-column="56" />
|
||||
<folding>
|
||||
<element signature="e#0#21#0" expanded="true" />
|
||||
</folding>
|
||||
</state>
|
||||
</provider>
|
||||
</entry>
|
||||
</file>
|
||||
<file leaf-file-name="main.cpp" pinned="false" current-in-tab="false">
|
||||
<entry file="file://$PROJECT_DIR$/main.cpp">
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state relative-caret-position="396">
|
||||
<caret line="33" column="46" lean-forward="true" selection-start-line="33" selection-start-column="46" selection-end-line="33" selection-end-column="46" />
|
||||
<folding>
|
||||
<element signature="e#0#19#0" expanded="true" />
|
||||
</folding>
|
||||
</state>
|
||||
</provider>
|
||||
</entry>
|
||||
</file>
|
||||
<file leaf-file-name="CMakeLists.txt" pinned="false" current-in-tab="false">
|
||||
<entry file="file://$PROJECT_DIR$/CMakeLists.txt">
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state relative-caret-position="192">
|
||||
<caret line="16" column="111" lean-forward="false" selection-start-line="16" selection-start-column="111" selection-end-line="16" selection-end-column="111" />
|
||||
<folding />
|
||||
</state>
|
||||
</provider>
|
||||
</entry>
|
||||
</file>
|
||||
<file leaf-file-name="waterripple_opengl.vert" pinned="false" current-in-tab="false">
|
||||
<entry file="file://$PROJECT_DIR$/res/shaders/effects/waterripple_opengl.vert">
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state relative-caret-position="144">
|
||||
<caret line="12" column="22" lean-forward="false" selection-start-line="12" selection-start-column="22" selection-end-line="12" selection-end-column="22" />
|
||||
<folding />
|
||||
</state>
|
||||
</provider>
|
||||
</entry>
|
||||
</file>
|
||||
<file leaf-file-name="common.h" pinned="false" current-in-tab="false">
|
||||
<entry file="file://$PROJECT_DIR$/res/common.h">
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state relative-caret-position="468">
|
||||
<caret line="39" column="1" lean-forward="false" selection-start-line="39" selection-start-column="1" selection-end-line="39" selection-end-column="1" />
|
||||
<folding />
|
||||
</state>
|
||||
</provider>
|
||||
</entry>
|
||||
</file>
|
||||
<file leaf-file-name="nier_test.cpp" pinned="false" current-in-tab="true">
|
||||
<entry file="file://$PROJECT_DIR$/nier_test.cpp">
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state relative-caret-position="528">
|
||||
<caret line="44" column="64" lean-forward="false" selection-start-line="44" selection-start-column="64" selection-end-line="44" selection-end-column="64" />
|
||||
<folding>
|
||||
<element signature="e#0#21#0" expanded="true" />
|
||||
</folding>
|
||||
</state>
|
||||
</provider>
|
||||
</entry>
|
||||
</file>
|
||||
<file leaf-file-name="nier_test.h" pinned="false" current-in-tab="false">
|
||||
<entry file="file://$PROJECT_DIR$/nier_test.h">
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state relative-caret-position="84">
|
||||
<caret line="7" column="42" lean-forward="false" selection-start-line="7" selection-start-column="42" selection-end-line="7" selection-end-column="42" />
|
||||
<folding />
|
||||
</state>
|
||||
</provider>
|
||||
</entry>
|
||||
</file>
|
||||
<file leaf-file-name="BasicShaderLoader.h" pinned="false" current-in-tab="false">
|
||||
<entry file="file://$PROJECT_DIR$/BasicShaderLoader.h">
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state relative-caret-position="288">
|
||||
<caret line="24" column="4" lean-forward="false" selection-start-line="24" selection-start-column="4" selection-end-line="24" selection-end-column="56" />
|
||||
<folding />
|
||||
</state>
|
||||
</provider>
|
||||
</entry>
|
||||
</file>
|
||||
</leaf>
|
||||
</component>
|
||||
<component name="FindInProjectRecents">
|
||||
<findStrings>
|
||||
<find>vo_keepas</find>
|
||||
<find>Error code</find>
|
||||
<find>XMapWindow</find>
|
||||
<find>VOFLAG_W</find>
|
||||
<find>_window3</find>
|
||||
<find>_window</find>
|
||||
<find>WinID</find>
|
||||
<find>video_init</find>
|
||||
<find>mDisplay =</find>
|
||||
<find>GLSL</find>
|
||||
<find>WGL_CONTEXT_MA</find>
|
||||
<find>glui</find>
|
||||
<find>Cannot create</find>
|
||||
<find>glXCreate</find>
|
||||
<find>glXCreateContex</find>
|
||||
<find>Could not bind</find>
|
||||
<find>glXCreateCon</find>
|
||||
<find>context</find>
|
||||
<find>GL_INVA</find>
|
||||
<find>GLSL TEST</find>
|
||||
<find>arb</find>
|
||||
<find>include</find>
|
||||
<find>if</find>
|
||||
<find>version</find>
|
||||
<find>define</find>
|
||||
<find>main</find>
|
||||
<find>#</find>
|
||||
<find>preproces</find>
|
||||
<find>m_token</find>
|
||||
</findStrings>
|
||||
</component>
|
||||
<component name="IdeDocumentHistory">
|
||||
<option name="CHANGED_PATHS">
|
||||
<list>
|
||||
<option value="$PROJECT_DIR$/video.h" />
|
||||
<option value="$PROJECT_DIR$/CMakeModules/FindIrrlicht.cmake" />
|
||||
<option value="$PROJECT_DIR$/video.cpp" />
|
||||
<option value="$PROJECT_DIR$/../lib/irrlicht/source/Irrlicht/COpenGLExtensionHandler.cpp" />
|
||||
<option value="$PROJECT_DIR$/../lib/irrlicht/source/Irrlicht/COpenGLDriver.cpp" />
|
||||
<option value="$PROJECT_DIR$/../lib/irrlicht/source/Irrlicht/CIrrDeviceLinux.cpp" />
|
||||
<option value="$PROJECT_DIR$/res/shaders/effects/waterripple_opengl.frag" />
|
||||
<option value="$PROJECT_DIR$/glsl/ast.h" />
|
||||
<option value="$PROJECT_DIR$/glsl/writer.cpp" />
|
||||
<option value="$PROJECT_DIR$/glsl/writer.h" />
|
||||
<option value="$PROJECT_DIR$/glsl/lexemes.h" />
|
||||
<option value="$PROJECT_DIR$/glsl/lexer.h" />
|
||||
<option value="$PROJECT_DIR$/glsl/lexer.cpp" />
|
||||
<option value="$PROJECT_DIR$/glsl/parser.h" />
|
||||
<option value="$PROJECT_DIR$/glsl/parser.cpp" />
|
||||
<option value="$PROJECT_DIR$/CMakeLists.txt" />
|
||||
<option value="$PROJECT_DIR$/BasicShaderLoader.h" />
|
||||
<option value="$PROJECT_DIR$/nier_test.h" />
|
||||
<option value="$PROJECT_DIR$/common.h" />
|
||||
<option value="$PROJECT_DIR$/main.cpp" />
|
||||
<option value="$PROJECT_DIR$/res/common.h" />
|
||||
<option value="$PROJECT_DIR$/res/shaders/effects/waterripple_opengl.vert" />
|
||||
<option value="$PROJECT_DIR$/BasicShaderLoader.cpp" />
|
||||
<option value="$PROJECT_DIR$/nier_test.cpp" />
|
||||
</list>
|
||||
</option>
|
||||
</component>
|
||||
<component name="JsBuildToolGruntFileManager" detection-done="true" sorting="DEFINITION_ORDER" />
|
||||
<component name="JsBuildToolPackageJson" detection-done="true" sorting="DEFINITION_ORDER" />
|
||||
<component name="JsGulpfileManager">
|
||||
<detection-done>true</detection-done>
|
||||
<sorting>DEFINITION_ORDER</sorting>
|
||||
</component>
|
||||
<component name="NodePackageJsonFileManager">
|
||||
<packageJsonPaths />
|
||||
</component>
|
||||
<component name="OCFindUsagesOptions" text="true" ivars="false" properties="true" derivedClasses="false" />
|
||||
<component name="ProjectFrameBounds">
|
||||
<option name="x" value="1099" />
|
||||
<option name="y" value="469" />
|
||||
<option name="width" value="1882" />
|
||||
<option name="height" value="1032" />
|
||||
</component>
|
||||
<component name="ProjectView">
|
||||
<navigator currentView="ProjectPane" proportions="" version="1">
|
||||
<flattenPackages />
|
||||
<showMembers />
|
||||
<showModules />
|
||||
<showLibraryContents />
|
||||
<hideEmptyPackages />
|
||||
<abbreviatePackageNames />
|
||||
<autoscrollToSource />
|
||||
<autoscrollFromSource />
|
||||
<sortByType />
|
||||
<manualOrder />
|
||||
<foldersAlwaysOnTop value="true" />
|
||||
</navigator>
|
||||
<panes>
|
||||
<pane id="ProjectPane">
|
||||
<subPane>
|
||||
<expand>
|
||||
<path>
|
||||
<item name="wallengine" type="dad4c3:CidrFilesViewHelper$MyProjectTreeStructure$1" />
|
||||
<item name="temp" type="462c0819:PsiDirectoryNode" />
|
||||
</path>
|
||||
<path>
|
||||
<item name="wallengine" type="dad4c3:CidrFilesViewHelper$MyProjectTreeStructure$1" />
|
||||
<item name="temp" type="462c0819:PsiDirectoryNode" />
|
||||
<item name="res" type="462c0819:PsiDirectoryNode" />
|
||||
</path>
|
||||
<path>
|
||||
<item name="wallengine" type="dad4c3:CidrFilesViewHelper$MyProjectTreeStructure$1" />
|
||||
<item name="temp" type="462c0819:PsiDirectoryNode" />
|
||||
<item name="res" type="462c0819:PsiDirectoryNode" />
|
||||
<item name="shaders" type="462c0819:PsiDirectoryNode" />
|
||||
</path>
|
||||
<path>
|
||||
<item name="wallengine" type="dad4c3:CidrFilesViewHelper$MyProjectTreeStructure$1" />
|
||||
<item name="temp" type="462c0819:PsiDirectoryNode" />
|
||||
<item name="res" type="462c0819:PsiDirectoryNode" />
|
||||
<item name="shaders" type="462c0819:PsiDirectoryNode" />
|
||||
<item name="effects" type="462c0819:PsiDirectoryNode" />
|
||||
</path>
|
||||
</expand>
|
||||
<select />
|
||||
</subPane>
|
||||
</pane>
|
||||
</panes>
|
||||
</component>
|
||||
<component name="PropertiesComponent">
|
||||
<property name="WebServerToolWindowFactoryState" value="false" />
|
||||
<property name="nodejs_interpreter_path.stuck_in_default_project" value="undefined stuck path" />
|
||||
<property name="nodejs_npm_path_reset_for_default_project" value="true" />
|
||||
</component>
|
||||
<component name="RecentsManager">
|
||||
<key name="MoveFile.RECENT_KEYS">
|
||||
<recent name="$PROJECT_DIR$/res/shaders/effects" />
|
||||
<recent name="$PROJECT_DIR$/CMakeModules" />
|
||||
<recent name="$PROJECT_DIR$" />
|
||||
</key>
|
||||
<key name="CopyFile.RECENT_KEYS">
|
||||
<recent name="$PROJECT_DIR$" />
|
||||
<recent name="$PROJECT_DIR$/res/materials/effects" />
|
||||
</key>
|
||||
</component>
|
||||
<component name="RunDashboard">
|
||||
<option name="ruleStates">
|
||||
<list>
|
||||
<RuleState>
|
||||
<option name="name" value="ConfigurationTypeDashboardGroupingRule" />
|
||||
</RuleState>
|
||||
<RuleState>
|
||||
<option name="name" value="StatusDashboardGroupingRule" />
|
||||
</RuleState>
|
||||
</list>
|
||||
</option>
|
||||
</component>
|
||||
<component name="RunManager">
|
||||
<configuration name="Build All" type="CMakeRunConfiguration" factoryName="Application" PASS_PARENT_ENVS_2="true" CONFIG_NAME="Debug" RUN_TARGET_PROJECT_NAME="wallengine" RUN_TARGET_NAME="wallengine" EXPLICIT_BUILD_TARGET_NAME="all">
|
||||
<envs />
|
||||
</configuration>
|
||||
</component>
|
||||
<component name="ShelveChangesManager" show_recycled="false">
|
||||
<option name="remove_strategy" value="false" />
|
||||
</component>
|
||||
<component name="SvnConfiguration">
|
||||
<configuration />
|
||||
</component>
|
||||
<component name="TaskManager">
|
||||
<task active="true" id="Default" summary="Default task">
|
||||
<changelist id="18bb2960-e23f-4286-86eb-946e53957973" name="Default" comment="" />
|
||||
<created>1530110193995</created>
|
||||
<option name="number" value="Default" />
|
||||
<option name="presentableId" value="Default" />
|
||||
<updated>1530110193995</updated>
|
||||
<workItem from="1530110195092" duration="9917000" />
|
||||
<workItem from="1530613581741" duration="10035000" />
|
||||
<workItem from="1530722346579" duration="9407000" />
|
||||
<workItem from="1530742969892" duration="462000" />
|
||||
<workItem from="1530736243286" duration="1301000" />
|
||||
<workItem from="1530737554957" duration="12285000" />
|
||||
</task>
|
||||
<servers />
|
||||
</component>
|
||||
<component name="TimeTrackingManager">
|
||||
<option name="totallyTimeSpent" value="43407000" />
|
||||
</component>
|
||||
<component name="ToolWindowManager">
|
||||
<frame x="1099" y="469" width="1882" height="1032" extended-state="0" />
|
||||
<layout>
|
||||
<window_info id="Project" active="false" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="true" show_stripe_button="true" weight="0.20365395" sideWeight="0.5" order="0" side_tool="false" content_ui="combo" />
|
||||
<window_info id="TODO" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="6" side_tool="false" content_ui="tabs" />
|
||||
<window_info id="Messages" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.32752994" sideWeight="0.5" order="7" side_tool="false" content_ui="tabs" />
|
||||
<window_info id="CMake" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.32861805" sideWeight="0.5" order="11" side_tool="false" content_ui="tabs" />
|
||||
<window_info id="Event Log" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="8" side_tool="true" content_ui="tabs" />
|
||||
<window_info id="Find" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.32861805" sideWeight="0.5" order="1" side_tool="false" content_ui="tabs" />
|
||||
<window_info id="Version Control" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="false" weight="0.33" sideWeight="0.5" order="9" side_tool="false" content_ui="tabs" />
|
||||
<window_info id="Run" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33949944" sideWeight="0.5" order="2" side_tool="false" content_ui="tabs" />
|
||||
<window_info id="Structure" active="false" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.25" sideWeight="0.5" order="1" side_tool="true" content_ui="tabs" />
|
||||
<window_info id="Terminal" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.3297062" sideWeight="0.5" order="10" side_tool="false" content_ui="tabs" />
|
||||
<window_info id="Favorites" active="false" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="2" side_tool="true" content_ui="tabs" />
|
||||
<window_info id="Debug" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.24591948" sideWeight="0.5" order="3" side_tool="false" content_ui="tabs" />
|
||||
<window_info id="Cvs" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.25" sideWeight="0.5" order="4" side_tool="false" content_ui="tabs" />
|
||||
<window_info id="Message" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="0" side_tool="false" content_ui="tabs" />
|
||||
<window_info id="Commander" active="false" anchor="right" auto_hide="false" internal_type="SLIDING" type="SLIDING" visible="false" show_stripe_button="true" weight="0.4" sideWeight="0.5" order="0" side_tool="false" content_ui="tabs" />
|
||||
<window_info id="Inspection" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.4" sideWeight="0.5" order="5" side_tool="false" content_ui="tabs" />
|
||||
<window_info id="Hierarchy" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.25" sideWeight="0.5" order="2" side_tool="false" content_ui="combo" />
|
||||
<window_info id="Ant Build" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.25" sideWeight="0.5" order="1" side_tool="false" content_ui="tabs" />
|
||||
</layout>
|
||||
<layout-to-restore>
|
||||
<window_info id="TODO" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="6" side_tool="false" content_ui="tabs" />
|
||||
<window_info id="Cvs" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.25" sideWeight="0.5" order="4" side_tool="false" content_ui="tabs" />
|
||||
<window_info id="Messages" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.32752994" sideWeight="0.5" order="7" side_tool="false" content_ui="tabs" />
|
||||
<window_info id="Message" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="0" side_tool="false" content_ui="tabs" />
|
||||
<window_info id="CMake" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.32861805" sideWeight="0.5" order="11" side_tool="false" content_ui="tabs" />
|
||||
<window_info id="Commander" active="false" anchor="right" auto_hide="false" internal_type="SLIDING" type="SLIDING" visible="false" show_stripe_button="true" weight="0.4" sideWeight="0.5" order="0" side_tool="false" content_ui="tabs" />
|
||||
<window_info id="Event Log" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="8" side_tool="true" content_ui="tabs" />
|
||||
<window_info id="Inspection" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.4" sideWeight="0.5" order="5" side_tool="false" content_ui="tabs" />
|
||||
<window_info id="Version Control" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="false" weight="0.33" sideWeight="0.5" order="9" side_tool="false" content_ui="tabs" />
|
||||
<window_info id="Run" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33949944" sideWeight="0.5" order="2" side_tool="false" content_ui="tabs" />
|
||||
<window_info id="Terminal" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.3297062" sideWeight="0.5" order="10" side_tool="false" content_ui="tabs" />
|
||||
<window_info id="Project" active="false" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="true" show_stripe_button="true" weight="0.40849674" sideWeight="0.5" order="0" side_tool="false" content_ui="combo" />
|
||||
<window_info id="Hierarchy" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.25" sideWeight="0.5" order="2" side_tool="false" content_ui="combo" />
|
||||
<window_info id="Find" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.32908705" sideWeight="0.5" order="1" side_tool="false" content_ui="tabs" />
|
||||
<window_info id="Structure" active="false" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.25" sideWeight="0.5" order="1" side_tool="true" content_ui="tabs" />
|
||||
<window_info id="Ant Build" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.25" sideWeight="0.5" order="1" side_tool="false" content_ui="tabs" />
|
||||
<window_info id="Favorites" active="false" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="2" side_tool="true" content_ui="tabs" />
|
||||
<window_info id="Debug" active="true" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="true" show_stripe_button="true" weight="0.24591948" sideWeight="0.5" order="3" side_tool="false" content_ui="tabs" />
|
||||
</layout-to-restore>
|
||||
</component>
|
||||
<component name="TypeScriptGeneratedFilesManager">
|
||||
<option name="version" value="1" />
|
||||
</component>
|
||||
<component name="VcsContentAnnotationSettings">
|
||||
<option name="myLimit" value="2678400000" />
|
||||
</component>
|
||||
<component name="XDebuggerManager">
|
||||
<breakpoint-manager>
|
||||
<breakpoints>
|
||||
<line-breakpoint enabled="true" type="com.jetbrains.cidr.execution.debugger.OCBreakpointType">
|
||||
<url>file://$PROJECT_DIR$/glsl/parser.cpp</url>
|
||||
<line>310</line>
|
||||
<option name="timeStamp" value="33" />
|
||||
</line-breakpoint>
|
||||
<line-breakpoint enabled="true" type="com.jetbrains.cidr.execution.debugger.OCBreakpointType">
|
||||
<url>file://$PROJECT_DIR$/glsl/parser.cpp</url>
|
||||
<line>317</line>
|
||||
<option name="timeStamp" value="39" />
|
||||
</line-breakpoint>
|
||||
<line-breakpoint enabled="true" type="com.jetbrains.cidr.execution.debugger.OCBreakpointType">
|
||||
<url>file://$PROJECT_DIR$/glsl/parser.cpp</url>
|
||||
<line>641</line>
|
||||
<option name="timeStamp" value="44" />
|
||||
</line-breakpoint>
|
||||
<line-breakpoint enabled="true" type="com.jetbrains.cidr.execution.debugger.OCBreakpointType">
|
||||
<url>file://$PROJECT_DIR$/glsl/parser.cpp</url>
|
||||
<line>309</line>
|
||||
<option name="timeStamp" value="45" />
|
||||
</line-breakpoint>
|
||||
</breakpoints>
|
||||
<option name="time" value="66" />
|
||||
</breakpoint-manager>
|
||||
<watches-manager />
|
||||
</component>
|
||||
<component name="editorHistoryManager">
|
||||
<entry file="file://$PROJECT_DIR$/video.h">
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state relative-caret-position="90">
|
||||
<caret line="6" column="0" lean-forward="false" selection-start-line="6" selection-start-column="0" selection-end-line="6" selection-end-column="0" />
|
||||
</state>
|
||||
</provider>
|
||||
</entry>
|
||||
<entry file="file://$PROJECT_DIR$/video.cpp">
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state relative-caret-position="12915">
|
||||
<caret line="861" column="4" lean-forward="false" selection-start-line="861" selection-start-column="4" selection-end-line="861" selection-end-column="4" />
|
||||
</state>
|
||||
</provider>
|
||||
</entry>
|
||||
<entry file="file://$PROJECT_DIR$/video.h">
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state relative-caret-position="90">
|
||||
<caret line="6" column="0" lean-forward="false" selection-start-line="6" selection-start-column="0" selection-end-line="6" selection-end-column="0" />
|
||||
</state>
|
||||
</provider>
|
||||
</entry>
|
||||
<entry file="file:///usr/include/irrlicht/SIrrCreationParameters.h" />
|
||||
<entry file="file://$PROJECT_DIR$/video.cpp">
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state relative-caret-position="11448">
|
||||
<caret line="954" column="4" lean-forward="false" selection-start-line="954" selection-start-column="4" selection-end-line="954" selection-end-column="4" />
|
||||
</state>
|
||||
</provider>
|
||||
</entry>
|
||||
<entry file="file://$PROJECT_DIR$/CMakeModules/FindIrrlicht.cmake">
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state relative-caret-position="288">
|
||||
<caret line="24" column="55" lean-forward="false" selection-start-line="24" selection-start-column="55" selection-end-line="24" selection-end-column="55" />
|
||||
</state>
|
||||
</provider>
|
||||
</entry>
|
||||
<entry file="file:///usr/include/GL/gl.h">
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state relative-caret-position="-2136">
|
||||
<caret line="659" column="8" lean-forward="false" selection-start-line="659" selection-start-column="8" selection-end-line="659" selection-end-column="8" />
|
||||
</state>
|
||||
</provider>
|
||||
</entry>
|
||||
<entry file="file://$PROJECT_DIR$/../lib/irrlicht/source/Irrlicht/COpenGLExtensionHandler.cpp">
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state relative-caret-position="300">
|
||||
<caret line="335" column="8" lean-forward="false" selection-start-line="335" selection-start-column="8" selection-end-line="335" selection-end-column="8" />
|
||||
</state>
|
||||
</provider>
|
||||
</entry>
|
||||
<entry file="file://$PROJECT_DIR$/../lib/irrlicht/source/Irrlicht/COpenGLSLMaterialRenderer.cpp">
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state relative-caret-position="-3733">
|
||||
<caret line="345" column="36" lean-forward="false" selection-start-line="345" selection-start-column="36" selection-end-line="345" selection-end-column="36" />
|
||||
</state>
|
||||
</provider>
|
||||
</entry>
|
||||
<entry file="file://$PROJECT_DIR$/../lib/irrlicht/source/Irrlicht/glext.h">
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state relative-caret-position="213">
|
||||
<caret line="1372" column="21" lean-forward="false" selection-start-line="1372" selection-start-column="21" selection-end-line="1372" selection-end-column="21" />
|
||||
</state>
|
||||
</provider>
|
||||
</entry>
|
||||
<entry file="file://$PROJECT_DIR$/../lib/irrlicht/source/Irrlicht/glxext.h">
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state relative-caret-position="186">
|
||||
<caret line="595" column="56" lean-forward="false" selection-start-line="595" selection-start-column="23" selection-end-line="595" selection-end-column="56" />
|
||||
</state>
|
||||
</provider>
|
||||
</entry>
|
||||
<entry file="file:///usr/include/irrlicht/irrlicht.h" />
|
||||
<entry file="file://$PROJECT_DIR$/../lib/irrlicht/include/IrrCompileConfig.h">
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state relative-caret-position="1248">
|
||||
<caret line="104" column="8" lean-forward="false" selection-start-line="104" selection-start-column="8" selection-end-line="104" selection-end-column="8" />
|
||||
</state>
|
||||
</provider>
|
||||
</entry>
|
||||
<entry file="file://$PROJECT_DIR$/../lib/irrlicht/source/Irrlicht/COpenGLTexture.cpp">
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state relative-caret-position="3840">
|
||||
<caret line="320" column="40" lean-forward="false" selection-start-line="320" selection-start-column="26" selection-end-line="320" selection-end-column="40" />
|
||||
</state>
|
||||
</provider>
|
||||
</entry>
|
||||
<entry file="file:///usr/include/GL/glx.h">
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state relative-caret-position="142">
|
||||
<caret line="271" column="18" lean-forward="false" selection-start-line="271" selection-start-column="18" selection-end-line="271" selection-end-column="18" />
|
||||
</state>
|
||||
</provider>
|
||||
</entry>
|
||||
<entry file="file://$PROJECT_DIR$/../lib/irrlicht/source/Irrlicht/COpenGLDriver.h">
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state relative-caret-position="1716">
|
||||
<caret line="143" column="50" lean-forward="false" selection-start-line="143" selection-start-column="50" selection-end-line="143" selection-end-column="50" />
|
||||
</state>
|
||||
</provider>
|
||||
</entry>
|
||||
<entry file="file://$PROJECT_DIR$/../lib/irrlicht/source/Irrlicht/COpenGLExtensionHandler.h">
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state relative-caret-position="15096">
|
||||
<caret line="1258" column="13" lean-forward="false" selection-start-line="1258" selection-start-column="10" selection-end-line="1258" selection-end-column="13" />
|
||||
</state>
|
||||
</provider>
|
||||
</entry>
|
||||
<entry file="file://$PROJECT_DIR$/../lib/irrlicht/source/Irrlicht/COpenGLDriver.cpp">
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state relative-caret-position="9048">
|
||||
<caret line="754" column="16" lean-forward="false" selection-start-line="754" selection-start-column="16" selection-end-line="754" selection-end-column="16" />
|
||||
</state>
|
||||
</provider>
|
||||
</entry>
|
||||
<entry file="file://$PROJECT_DIR$/../lib/irrlicht/source/Irrlicht/CIrrDeviceLinux.cpp">
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state relative-caret-position="8712">
|
||||
<caret line="726" column="33" lean-forward="false" selection-start-line="726" selection-start-column="33" selection-end-line="726" selection-end-column="33" />
|
||||
</state>
|
||||
</provider>
|
||||
</entry>
|
||||
<entry file="file://$PROJECT_DIR$/res/shaders/effects/waterripple_opengl.frag">
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state relative-caret-position="0">
|
||||
<caret line="0" column="0" lean-forward="false" selection-start-line="0" selection-start-column="0" selection-end-line="0" selection-end-column="0" />
|
||||
<folding />
|
||||
</state>
|
||||
</provider>
|
||||
</entry>
|
||||
<entry file="file://$PROJECT_DIR$/../lib/glsl-parser/lexemes.h">
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state relative-caret-position="233">
|
||||
<caret line="275" column="12" lean-forward="false" selection-start-line="275" selection-start-column="12" selection-end-line="275" selection-end-column="12" />
|
||||
<folding />
|
||||
</state>
|
||||
</provider>
|
||||
</entry>
|
||||
<entry file="file://$PROJECT_DIR$/../lib/glsl-parser/lexer.h">
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state relative-caret-position="0">
|
||||
<caret line="0" column="0" lean-forward="false" selection-start-line="0" selection-start-column="0" selection-end-line="0" selection-end-column="0" />
|
||||
<folding />
|
||||
</state>
|
||||
</provider>
|
||||
</entry>
|
||||
<entry file="file://$PROJECT_DIR$/../lib/glsl-parser/Makefile">
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state relative-caret-position="276">
|
||||
<caret line="23" column="27" lean-forward="false" selection-start-line="23" selection-start-column="27" selection-end-line="23" selection-end-column="27" />
|
||||
<folding />
|
||||
</state>
|
||||
</provider>
|
||||
</entry>
|
||||
<entry file="file://$PROJECT_DIR$/../lib/glsl-parser/main.cpp">
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state relative-caret-position="-7044">
|
||||
<caret line="31" column="47" lean-forward="false" selection-start-line="31" selection-start-column="47" selection-end-line="31" selection-end-column="47" />
|
||||
<folding />
|
||||
</state>
|
||||
</provider>
|
||||
</entry>
|
||||
<entry file="file://$PROJECT_DIR$/glsl/util.cpp">
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state relative-caret-position="0">
|
||||
<caret line="0" column="0" lean-forward="false" selection-start-line="0" selection-start-column="0" selection-end-line="0" selection-end-column="0" />
|
||||
<folding />
|
||||
</state>
|
||||
</provider>
|
||||
</entry>
|
||||
<entry file="file://$PROJECT_DIR$/glsl/ast.cpp">
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state relative-caret-position="-36">
|
||||
<caret line="0" column="0" lean-forward="false" selection-start-line="0" selection-start-column="0" selection-end-line="0" selection-end-column="0" />
|
||||
<folding />
|
||||
</state>
|
||||
</provider>
|
||||
</entry>
|
||||
<entry file="file://$PROJECT_DIR$/../lib/glsl-parser-master/main.cpp">
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state relative-caret-position="0">
|
||||
<caret line="0" column="0" lean-forward="false" selection-start-line="0" selection-start-column="0" selection-end-line="587" selection-end-column="1" />
|
||||
<folding />
|
||||
</state>
|
||||
</provider>
|
||||
</entry>
|
||||
<entry file="file://$PROJECT_DIR$/glsl/ast.h">
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state relative-caret-position="174">
|
||||
<caret line="34" column="2" lean-forward="false" selection-start-line="34" selection-start-column="2" selection-end-line="34" selection-end-column="2" />
|
||||
<folding />
|
||||
</state>
|
||||
</provider>
|
||||
</entry>
|
||||
<entry file="file://$PROJECT_DIR$/glsl/writer.h">
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state relative-caret-position="60">
|
||||
<caret line="5" column="28" lean-forward="false" selection-start-line="5" selection-start-column="28" selection-end-line="5" selection-end-column="28" />
|
||||
<folding />
|
||||
</state>
|
||||
</provider>
|
||||
</entry>
|
||||
<entry file="file://$PROJECT_DIR$/glsl/lexemes.h">
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state relative-caret-position="168">
|
||||
<caret line="14" column="18" lean-forward="false" selection-start-line="14" selection-start-column="18" selection-end-line="14" selection-end-column="18" />
|
||||
<folding />
|
||||
</state>
|
||||
</provider>
|
||||
</entry>
|
||||
<entry file="file://$PROJECT_DIR$/glsl/writer.cpp">
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state relative-caret-position="489">
|
||||
<caret line="582" column="4" lean-forward="false" selection-start-line="582" selection-start-column="4" selection-end-line="582" selection-end-column="27" />
|
||||
<folding />
|
||||
</state>
|
||||
</provider>
|
||||
</entry>
|
||||
<entry file="file:///usr/include/c++/8.1.1/bits/alloc_traits.h">
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state relative-caret-position="223">
|
||||
<caret line="474" column="0" lean-forward="false" selection-start-line="474" selection-start-column="0" selection-end-line="474" selection-end-column="0" />
|
||||
<folding />
|
||||
</state>
|
||||
</provider>
|
||||
</entry>
|
||||
<entry file="file://$PROJECT_DIR$/glsl/util.h">
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state relative-caret-position="261">
|
||||
<caret line="24" column="0" lean-forward="false" selection-start-line="24" selection-start-column="0" selection-end-line="24" selection-end-column="0" />
|
||||
<folding />
|
||||
</state>
|
||||
</provider>
|
||||
</entry>
|
||||
<entry file="file:///usr/include/c++/8.1.1/ext/new_allocator.h">
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state relative-caret-position="223">
|
||||
<caret line="78" column="0" lean-forward="false" selection-start-line="78" selection-start-column="0" selection-end-line="78" selection-end-column="0" />
|
||||
<folding />
|
||||
</state>
|
||||
</provider>
|
||||
</entry>
|
||||
<entry file="file:///usr/include/c++/8.1.1/bits/allocator.h">
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state relative-caret-position="223">
|
||||
<caret line="130" column="0" lean-forward="false" selection-start-line="130" selection-start-column="0" selection-end-line="130" selection-end-column="0" />
|
||||
<folding />
|
||||
</state>
|
||||
</provider>
|
||||
</entry>
|
||||
<entry file="file:///usr/include/c++/8.1.1/bits/stl_vector.h">
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state relative-caret-position="223">
|
||||
<caret line="394" column="0" lean-forward="false" selection-start-line="394" selection-start-column="0" selection-end-line="394" selection-end-column="0" />
|
||||
<folding />
|
||||
</state>
|
||||
</provider>
|
||||
</entry>
|
||||
<entry file="file://$PROJECT_DIR$/glsl/lexer.h">
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state relative-caret-position="525">
|
||||
<caret line="101" column="30" lean-forward="false" selection-start-line="101" selection-start-column="26" selection-end-line="101" selection-end-column="30" />
|
||||
<folding />
|
||||
</state>
|
||||
</provider>
|
||||
</entry>
|
||||
<entry file="file:///usr/include/c++/8.1.1/bits/vector.tcc">
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state relative-caret-position="1327">
|
||||
<caret line="472" column="0" lean-forward="false" selection-start-line="472" selection-start-column="0" selection-end-line="472" selection-end-column="0" />
|
||||
<folding />
|
||||
</state>
|
||||
</provider>
|
||||
</entry>
|
||||
<entry file="file://$PROJECT_DIR$/glsl/parser.h">
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state relative-caret-position="331">
|
||||
<caret line="78" column="4" lean-forward="false" selection-start-line="78" selection-start-column="4" selection-end-line="78" selection-end-column="58" />
|
||||
<folding />
|
||||
</state>
|
||||
</provider>
|
||||
</entry>
|
||||
<entry file="file://$PROJECT_DIR$/glsl/lexer.cpp">
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state relative-caret-position="-3">
|
||||
<caret line="484" column="9" lean-forward="false" selection-start-line="484" selection-start-column="9" selection-end-line="484" selection-end-column="9" />
|
||||
<folding />
|
||||
</state>
|
||||
</provider>
|
||||
</entry>
|
||||
<entry file="file://$PROJECT_DIR$/glsl/parser.cpp">
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state relative-caret-position="1855">
|
||||
<caret line="753" column="22" lean-forward="true" selection-start-line="753" selection-start-column="22" selection-end-line="753" selection-end-column="22" />
|
||||
<folding />
|
||||
</state>
|
||||
</provider>
|
||||
</entry>
|
||||
<entry file="file://$PROJECT_DIR$/CMakeLists.txt">
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state relative-caret-position="192">
|
||||
<caret line="16" column="111" lean-forward="false" selection-start-line="16" selection-start-column="111" selection-end-line="16" selection-end-column="111" />
|
||||
<folding />
|
||||
</state>
|
||||
</provider>
|
||||
</entry>
|
||||
<entry file="file:///usr/include/c++/8.1.1/bits/basic_string.tcc">
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state relative-caret-position="223">
|
||||
<caret line="218" column="0" lean-forward="false" selection-start-line="218" selection-start-column="0" selection-end-line="218" selection-end-column="0" />
|
||||
<folding />
|
||||
</state>
|
||||
</provider>
|
||||
</entry>
|
||||
<entry file="file://$PROJECT_DIR$/BasicShaderLoader.h">
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state relative-caret-position="288">
|
||||
<caret line="24" column="4" lean-forward="false" selection-start-line="24" selection-start-column="4" selection-end-line="24" selection-end-column="56" />
|
||||
<folding />
|
||||
</state>
|
||||
</provider>
|
||||
</entry>
|
||||
<entry file="file://$PROJECT_DIR$/nier_test.h">
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state relative-caret-position="84">
|
||||
<caret line="7" column="42" lean-forward="false" selection-start-line="7" selection-start-column="42" selection-end-line="7" selection-end-column="42" />
|
||||
<folding />
|
||||
</state>
|
||||
</provider>
|
||||
</entry>
|
||||
<entry file="file://$PROJECT_DIR$/common.h">
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state relative-caret-position="96">
|
||||
<caret line="8" column="0" lean-forward="false" selection-start-line="8" selection-start-column="0" selection-end-line="8" selection-end-column="0" />
|
||||
<folding />
|
||||
</state>
|
||||
</provider>
|
||||
</entry>
|
||||
<entry file="file://$PROJECT_DIR$/res/common.h">
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state relative-caret-position="468">
|
||||
<caret line="39" column="1" lean-forward="false" selection-start-line="39" selection-start-column="1" selection-end-line="39" selection-end-column="1" />
|
||||
<folding />
|
||||
</state>
|
||||
</provider>
|
||||
</entry>
|
||||
<entry file="file://$PROJECT_DIR$/main.cpp">
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state relative-caret-position="396">
|
||||
<caret line="33" column="46" lean-forward="true" selection-start-line="33" selection-start-column="46" selection-end-line="33" selection-end-column="46" />
|
||||
<folding>
|
||||
<element signature="e#0#19#0" expanded="true" />
|
||||
</folding>
|
||||
</state>
|
||||
</provider>
|
||||
</entry>
|
||||
<entry file="file://$PROJECT_DIR$/BasicShaderLoader.cpp">
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state relative-caret-position="475">
|
||||
<caret line="115" column="56" lean-forward="false" selection-start-line="115" selection-start-column="56" selection-end-line="115" selection-end-column="56" />
|
||||
<folding>
|
||||
<element signature="e#0#21#0" expanded="true" />
|
||||
</folding>
|
||||
</state>
|
||||
</provider>
|
||||
</entry>
|
||||
<entry file="file://$PROJECT_DIR$/res/shaders/effects/waterripple_opengl.vert">
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state relative-caret-position="144">
|
||||
<caret line="12" column="22" lean-forward="false" selection-start-line="12" selection-start-column="22" selection-end-line="12" selection-end-column="22" />
|
||||
<folding />
|
||||
</state>
|
||||
</provider>
|
||||
</entry>
|
||||
<entry file="file://$PROJECT_DIR$/nier_test.cpp">
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state relative-caret-position="528">
|
||||
<caret line="44" column="64" lean-forward="false" selection-start-line="44" selection-start-column="64" selection-end-line="44" selection-end-column="64" />
|
||||
<folding>
|
||||
<element signature="e#0#21#0" expanded="true" />
|
||||
</folding>
|
||||
</state>
|
||||
</provider>
|
||||
</entry>
|
||||
</component>
|
||||
</project>
|
147
BasicShaderLoader.cpp
Normal file
@ -0,0 +1,147 @@
|
||||
#include <irrlicht.h>
|
||||
#include <iostream>
|
||||
#include <fstream>
|
||||
#include <string>
|
||||
#include "BasicShaderLoader.h"
|
||||
#include "nier_test.h"
|
||||
#include "common.h"
|
||||
|
||||
BasicShaderLoader::BasicShaderLoader (irr::io::path file, Type type)
|
||||
{
|
||||
this->m_content = "#version 120\n"
|
||||
"#define texSample2D texture2D\n"
|
||||
"#define frac fract\n";
|
||||
|
||||
std::ifstream _in (file.c_str ());
|
||||
this->m_content.append (std::istreambuf_iterator<char> (_in), std::istreambuf_iterator<char> ());
|
||||
this->m_type = type;
|
||||
}
|
||||
|
||||
bool BasicShaderLoader::peekString(std::string str, std::string::const_iterator& it)
|
||||
{
|
||||
std::string::const_iterator check = str.begin();
|
||||
std::string::const_iterator cur = it + 1;
|
||||
|
||||
while (cur != this->m_content.end () && check != str.end ())
|
||||
{
|
||||
if (*cur != *check) return false;
|
||||
|
||||
cur ++; check ++;
|
||||
}
|
||||
|
||||
if (check != str.end ())
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
||||
it = cur;
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
void BasicShaderLoader::ignoreSpaces(std::string::const_iterator &it)
|
||||
{
|
||||
while (it != this->m_content.end() && (*it == ' ' || *it == '\t')) it ++;
|
||||
}
|
||||
|
||||
std::string BasicShaderLoader::extractQuotedValue(std::string::const_iterator& it)
|
||||
{
|
||||
std::string::const_iterator cur = it;
|
||||
|
||||
if (*cur != '"')
|
||||
{
|
||||
m_error = true;
|
||||
m_errorInfo = "Expected opening \" but got " + (*cur);
|
||||
return "";
|
||||
}
|
||||
|
||||
cur ++;
|
||||
|
||||
while (cur != this->m_content.end () && *cur != '\n' && *cur != '"') cur ++;
|
||||
|
||||
if (cur == this->m_content.end ())
|
||||
{
|
||||
m_error = true;
|
||||
m_errorInfo = "Expected closing \" not found";
|
||||
it = cur;
|
||||
return "";
|
||||
}
|
||||
|
||||
std::string filename = std::string (++it, cur);
|
||||
|
||||
it = cur;
|
||||
return filename;
|
||||
}
|
||||
|
||||
std::string BasicShaderLoader::lookupShaderFile (std::string filename)
|
||||
{
|
||||
irr::io::path shaderTest = _example_base_folder; shaderTest += "/"; shaderTest += filename.c_str ();
|
||||
irr::io::IFileSystem *fs = device->getFileSystem ();
|
||||
|
||||
// by default try to load from current folder
|
||||
// we might want, in the future, to load things from different folders
|
||||
// to provide standard functionality
|
||||
if (fs->existFile (shaderTest) == false)
|
||||
{
|
||||
this->m_error = true;
|
||||
this->m_errorInfo = "Cannot find file " + filename + " to include";
|
||||
return "";
|
||||
}
|
||||
|
||||
// open the file, read content and close it
|
||||
irr::io::IReadFile* readFile = fs->createAndOpenFile (shaderTest);
|
||||
char* buffer = (char*) malloc (readFile->getSize () + 1);
|
||||
memset (buffer, 0, readFile->getSize() + 1);
|
||||
|
||||
readFile->read (buffer, readFile->getSize ());
|
||||
readFile->drop ();
|
||||
|
||||
std::string output = buffer;
|
||||
|
||||
free (buffer);
|
||||
|
||||
return output;
|
||||
}
|
||||
|
||||
std::string* BasicShaderLoader::precompile ()
|
||||
{
|
||||
// parse the shader and find #includes and such things and translate them to the correct name
|
||||
// also remove any #version definition to prevent errors
|
||||
std::string::const_iterator it = this->m_content.begin ();
|
||||
|
||||
// search preprocessor macros and parse them
|
||||
while (it != this->m_content.end () && this->m_error == false)
|
||||
{
|
||||
// TODO: on precompilation steps search for attributes and replace them
|
||||
// TODO: with the correct opengl shader variable
|
||||
if (*it == '#')
|
||||
{
|
||||
if (this->peekString ("include", it) == true)
|
||||
{
|
||||
std::string filename = "";
|
||||
|
||||
// ignore whitespaces
|
||||
this->ignoreSpaces(it);
|
||||
// extract value between quotes
|
||||
filename = this->extractQuotedValue(it);
|
||||
|
||||
// try to find the file first
|
||||
this->m_compiledContent += "// begin of included from file " + filename + "\r\n";
|
||||
this->m_compiledContent += this->lookupShaderFile (filename);
|
||||
this->m_compiledContent += "\r\n// end of included from file " + filename + "\r\n";
|
||||
}
|
||||
else
|
||||
{
|
||||
this->m_compiledContent += '#';
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
this->m_compiledContent += *it;
|
||||
}
|
||||
|
||||
it ++;
|
||||
}
|
||||
|
||||
return &this->m_compiledContent;
|
||||
}
|
34
BasicShaderLoader.h
Normal file
@ -0,0 +1,34 @@
|
||||
#ifndef __BASIC_SHADER_LOADER_H__
|
||||
#define __BASIC_SHADER_LOADER_H__
|
||||
|
||||
#include <iostream>
|
||||
|
||||
/**
|
||||
* A basic shader loader that adds basic function definitions to every loaded shader
|
||||
*/
|
||||
class BasicShaderLoader
|
||||
{
|
||||
public:
|
||||
enum Type
|
||||
{
|
||||
Type_Vertex = 0,
|
||||
Type_Pixel = 1,
|
||||
};
|
||||
|
||||
BasicShaderLoader (irr::io::path file, Type type);
|
||||
std::string* precompile ();
|
||||
|
||||
private:
|
||||
bool peekString (std::string str, std::string::const_iterator& it);
|
||||
void ignoreSpaces (std::string::const_iterator& it);
|
||||
std::string extractQuotedValue (std::string::const_iterator& it);
|
||||
std::string lookupShaderFile (std::string filename);
|
||||
|
||||
std::string m_content;
|
||||
std::string m_compiledContent;
|
||||
bool m_error;
|
||||
std::string m_errorInfo;
|
||||
Type m_type;
|
||||
};
|
||||
|
||||
#endif /* !__BASIC_SHADER_LOADER_H__ */
|
19
CMakeLists.txt
Normal file
@ -0,0 +1,19 @@
|
||||
cmake_minimum_required(VERSION 3.0)
|
||||
project(wallengine)
|
||||
|
||||
set(CMAKE_CXX_STANDARD 11)
|
||||
set(CMAKE_CXX_FLAGS "-fpermissive")
|
||||
|
||||
find_package(X11 REQUIRED)
|
||||
find_package(OpenGL REQUIRED)
|
||||
find_package(GLUT REQUIRED)
|
||||
find_package(ZLIB REQUIRED)
|
||||
|
||||
add_library(irrlicht STATIC IMPORTED)
|
||||
set_property(TARGET irrlicht PROPERTY IMPORTED_LOCATION ../../lib/irrlicht/lib/Linux/libIrrlicht.a)
|
||||
|
||||
include_directories(${X11_INCLUDE_DIR} "../lib/irrlicht/include")
|
||||
|
||||
add_executable(wallengine main.cpp common.h nier_test.cpp BasicShaderLoader.h BasicShaderLoader.cpp nier_test.h)
|
||||
|
||||
target_link_libraries(wallengine ${X11_LIBRARIES} ${X11_Xxf86vm_LIB} ${OPENGL_LIBRARIES} ${GLUT_LIBRARIES} ${ZLIB_LIBRARIES} irrlicht)
|
25
CMakeModules/FindIrrlicht.cmake
Normal file
@ -0,0 +1,25 @@
|
||||
FIND_PATH(IRRLICHT_INCLUDE_DIR irrlicht/irrlicht.h
|
||||
PATHS $ENV{IRRDIR}/include
|
||||
PATH_SUFFIXES irrlicht
|
||||
)
|
||||
|
||||
MESSAGE(STATUS "IRRLICHT_INCLUDE_DIR = ${IRRLICHT_INCLUDE_DIR}")
|
||||
|
||||
FIND_LIBRARY(IRRLICHT_LIBRARY NAMES Irrlicht
|
||||
PATHS $ENV{IRRDIR}/lib
|
||||
)
|
||||
|
||||
MESSAGE(STATUS "IRRLICHT_LIBRARY = ${IRRLICHT_LIBRARY}")
|
||||
|
||||
# handle the QUIETLY and REQUIRED arguments and set IRRLICHT_FOUND to TRUE if
|
||||
# all listed variables are TRUE
|
||||
INCLUDE(FindPackageHandleStandardArgs)
|
||||
FIND_PACKAGE_HANDLE_STANDARD_ARGS(IRRLICHT DEFAULT_MSG IRRLICHT_LIBRARY IRRLICHT_INCLUDE_DIR)
|
||||
|
||||
IF(IRRLICHT_FOUND)
|
||||
SET(IRRLICHT_LIBRARIES ${IRRLICHT_LIBRARY})
|
||||
ELSE(IRRLICHT_FOUND)
|
||||
SET(IRRLICHT_LIBRARIES)
|
||||
ENDIF(IRRLICHT_FOUND)
|
||||
|
||||
MARK_AS_ADVANCED(IRRLICHT_LIBRARY IRRLICHT_INCLUDE_DIR)
|
12
common.h
Normal file
@ -0,0 +1,12 @@
|
||||
//
|
||||
// Created by almamu on 27/06/18.
|
||||
//
|
||||
|
||||
#ifndef TEMP_COMMON_H
|
||||
#define TEMP_COMMON_H
|
||||
|
||||
extern int WinID;
|
||||
extern irr::video::IVideoDriver* driver;
|
||||
extern irr::IrrlichtDevice* device;
|
||||
|
||||
#endif //TEMP_COMMON_H
|
72
main.cpp
Normal file
@ -0,0 +1,72 @@
|
||||
#include <iostream>
|
||||
#include <irrlicht.h>
|
||||
#include <sstream>
|
||||
#include "nier_test.h"
|
||||
|
||||
int WinID = 0;
|
||||
|
||||
int game_test_main();
|
||||
|
||||
int main(int argc, char* argv[])
|
||||
{
|
||||
// parse the integer if it exists
|
||||
if (argc >= 1)
|
||||
{
|
||||
std::stringstream ss;
|
||||
ss << std::hex << argv[1];
|
||||
ss >> WinID;
|
||||
}
|
||||
|
||||
printf("Initializing X11 to %d\n", WinID);
|
||||
|
||||
return game_test_main ();
|
||||
}
|
||||
|
||||
irr::IrrlichtDevice* device = nullptr;
|
||||
irr::video::IVideoDriver* driver = nullptr;
|
||||
irr::SIrrlichtCreationParameters _irr_params;
|
||||
|
||||
int init_driver ()
|
||||
{
|
||||
// prepare basic configuration for irrlicht
|
||||
_irr_params.AntiAlias = 8;
|
||||
_irr_params.Bits = 16;
|
||||
// _irr_params.DeviceType = irr::EIDT_X11;
|
||||
_irr_params.DriverType = irr::video::EDT_OPENGL;
|
||||
_irr_params.Doublebuffer = true;
|
||||
_irr_params.EventReceiver = nullptr;
|
||||
_irr_params.Fullscreen = false;
|
||||
_irr_params.HandleSRGB = false;
|
||||
_irr_params.IgnoreInput = true;
|
||||
_irr_params.Stencilbuffer = true;
|
||||
_irr_params.UsePerformanceTimer = false;
|
||||
_irr_params.Vsync = false;
|
||||
_irr_params.WithAlphaChannel = false;
|
||||
_irr_params.ZBufferBits = 24;
|
||||
_irr_params.LoggingLevel = irr::ELL_DEBUG;
|
||||
_irr_params.WindowId = reinterpret_cast<void*> (WinID);
|
||||
|
||||
device = irr::createDeviceEx (_irr_params);
|
||||
|
||||
if (device == nullptr)
|
||||
{
|
||||
return 1;
|
||||
}
|
||||
|
||||
device->setWindowCaption (L"Test game");
|
||||
driver = device->getVideoDriver();
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
int game_test_main ()
|
||||
{
|
||||
if (init_driver())
|
||||
{
|
||||
return 1;
|
||||
}
|
||||
|
||||
nier_test ();
|
||||
|
||||
return 0;
|
||||
}
|
242
nier_test.cpp
Normal file
@ -0,0 +1,242 @@
|
||||
#include <irrlicht.h>
|
||||
#include <cstdint>
|
||||
#include <iostream>
|
||||
|
||||
#include "common.h"
|
||||
#include "BasicShaderLoader.h"
|
||||
|
||||
irr::io::path _example_base_folder = "../res/";
|
||||
irr::f32 g_AnimationSpeed = 0.1f;
|
||||
irr::f32 g_Scale = 2.5f;
|
||||
irr::f32 g_ScrollSpeed = 0.0f;
|
||||
irr::f32 g_Direction = 0.0f;
|
||||
irr::f32 g_Strength = 0.07f;
|
||||
irr::f32 g_SpecularPower = 1.0f;
|
||||
irr::f32 g_SpecularStrength = 1.0f;
|
||||
irr::f32 g_SpecularColor [3] = {1.0f, 1.0f, 1.0f};
|
||||
irr::f32 g_Texture1Resolution [4] = {1.0f, 1.0f, 1.0f, 1.0f};
|
||||
irr::f32 g_Texture0 = 0;
|
||||
irr::f32 g_Texture1 = 1;
|
||||
irr::f32 g_Texture2 = 2;
|
||||
irr::f32 g_Time = 0;
|
||||
irr::core::vector3df _map_size = irr::core::vector3df (21, 11.5f, 16);
|
||||
|
||||
class MyShaderCallback : public irr::video::IShaderConstantSetCallBack
|
||||
{
|
||||
virtual void OnSetConstants (irr::video::IMaterialRendererServices* services, int32_t userData)
|
||||
{
|
||||
irr::video::IVideoDriver* driver = services->getVideoDriver ();
|
||||
|
||||
irr::core::matrix4 worldViewProj;
|
||||
worldViewProj = driver->getTransform(irr::video::ETS_PROJECTION);
|
||||
worldViewProj *= driver->getTransform(irr::video::ETS_VIEW);
|
||||
worldViewProj *= driver->getTransform(irr::video::ETS_WORLD);
|
||||
|
||||
services->setVertexShaderConstant ("g_AnimationSpeed", &g_AnimationSpeed, 1);
|
||||
services->setVertexShaderConstant ("g_Scale", &g_Scale, 1);
|
||||
services->setVertexShaderConstant ("g_ScrollSpeed", &g_ScrollSpeed, 1);
|
||||
services->setVertexShaderConstant ("g_Direction", &g_Direction, 1);
|
||||
services->setVertexShaderConstant ("g_Time", &g_Time, 1);
|
||||
services->setVertexShaderConstant ("g_ModelViewProjectionMatrix", worldViewProj.pointer(), 16);
|
||||
services->setVertexShaderConstant ("g_Texture0Resolution", g_Texture1Resolution, 4);
|
||||
services->setVertexShaderConstant ("g_Texture1Resolution", g_Texture1Resolution, 4);
|
||||
services->setVertexShaderConstant ("g_Texture2Resolution", g_Texture1Resolution, 4);
|
||||
|
||||
// TODO: Support up to 7 materials (as wallpaper engine)
|
||||
services->setPixelShaderConstant ("g_Strength", &g_Strength, 1);
|
||||
services->setPixelShaderConstant ("g_SpecularPower", &g_SpecularPower, 1);
|
||||
services->setPixelShaderConstant ("g_SpecularStrength", &g_SpecularStrength, 1);
|
||||
services->setPixelShaderConstant ("g_SpecularColor", g_SpecularColor, 3);
|
||||
services->setPixelShaderConstant ("g_Texture0", &g_Texture0, 1);
|
||||
services->setPixelShaderConstant ("g_Texture1", &g_Texture1, 1);
|
||||
services->setPixelShaderConstant ("g_Texture2", &g_Texture2, 1);
|
||||
}
|
||||
};
|
||||
|
||||
class QuadSceneNode : public irr::scene::ISceneNode
|
||||
{
|
||||
irr::core::aabbox3d <irr::f32> m_box;
|
||||
irr::video::S3DVertex m_vertices [4];
|
||||
irr::video::SMaterial m_material;
|
||||
|
||||
public:
|
||||
QuadSceneNode (irr::scene::ISceneNode* parent, irr::scene::ISceneManager* sceneManager, int32_t id)
|
||||
: irr::scene::ISceneNode (parent, sceneManager, id)
|
||||
{
|
||||
m_material.Wireframe = false;
|
||||
m_material.Lighting = false;
|
||||
|
||||
m_vertices[0].Pos = irr::core::vector3df ( _map_size.X, _map_size.Y, 0.0f); // bottom right
|
||||
m_vertices[1].Pos = irr::core::vector3df ( _map_size.X, -_map_size.Y, 0.0f); // top right
|
||||
m_vertices[2].Pos = irr::core::vector3df (-_map_size.X, -_map_size.Y, 0.0f); // top left
|
||||
m_vertices[3].Pos = irr::core::vector3df (-_map_size.X, _map_size.Y, 0.0f); // bottom left
|
||||
|
||||
m_vertices[0].TCoords = irr::core::vector2df (1.0f, 0.0f);
|
||||
m_vertices[1].TCoords = irr::core::vector2df (1.0f, 1.0f);
|
||||
m_vertices[2].TCoords = irr::core::vector2df (0.0f, 1.0f);
|
||||
m_vertices[3].TCoords = irr::core::vector2df (0.0f, 0.0f);
|
||||
|
||||
m_vertices[0].Color = irr::video::SColor (255, 255, 255, 255);
|
||||
m_vertices[1].Color = irr::video::SColor (255, 255, 255, 255);
|
||||
m_vertices[2].Color = irr::video::SColor (255, 255, 255, 255);
|
||||
m_vertices[3].Color = irr::video::SColor (255, 255, 255, 255);
|
||||
|
||||
m_box.reset (m_vertices[0].Pos);
|
||||
for (int32_t i = 1; i < 4; i ++)
|
||||
{
|
||||
m_box.addInternalPoint (m_vertices [i].Pos);
|
||||
}
|
||||
}
|
||||
|
||||
virtual void OnRegisterSceneNode ()
|
||||
{
|
||||
if (IsVisible)
|
||||
SceneManager->registerNodeForRendering (this);
|
||||
|
||||
ISceneNode::OnRegisterSceneNode ();
|
||||
}
|
||||
|
||||
virtual void render ()
|
||||
{
|
||||
uint16_t indices[] = {
|
||||
0, 1, 2, 3
|
||||
};
|
||||
|
||||
irr::video::IVideoDriver* driver = SceneManager->getVideoDriver ();
|
||||
|
||||
driver->setMaterial (m_material);
|
||||
driver->drawVertexPrimitiveList (m_vertices, 4, indices, 1, irr::video::EVT_STANDARD, irr::scene::EPT_QUADS, irr::video::EIT_16BIT);
|
||||
}
|
||||
|
||||
virtual const irr::core::aabbox3d <irr::f32>& getBoundingBox () const
|
||||
{
|
||||
return m_box;
|
||||
}
|
||||
|
||||
virtual uint32_t getMaterialCount () const
|
||||
{
|
||||
return 1;
|
||||
}
|
||||
|
||||
virtual irr::video::SMaterial& getMaterial (uint32_t i)
|
||||
{
|
||||
return m_material;
|
||||
}
|
||||
};
|
||||
|
||||
int nier_test ()
|
||||
{
|
||||
irr::io::path _water_example = _example_base_folder; _water_example += "materials/water-intact.png";
|
||||
irr::io::path _mud_example = _example_base_folder; _mud_example += "materials/plant-on-water.png";
|
||||
irr::io::path _background_example = _example_base_folder; _background_example += "materials/top-part.png";
|
||||
irr::io::path _waterripple_normal = _example_base_folder; _waterripple_normal += "materials/effects/waterripplenormal.png";
|
||||
irr::io::path _waterripple_frag_shader = _example_base_folder; _waterripple_frag_shader += "shaders/effects/waterripple_opengl.frag";
|
||||
irr::io::path _waterripple_vert_shader = _example_base_folder; _waterripple_vert_shader += "shaders/effects/waterripple_opengl.vert";
|
||||
irr::io::path _white = _example_base_folder; _white += "materials/white.png";
|
||||
|
||||
/*irr::video::E_DRIVER_TYPE driverType = irr::video::E_DRIVER_TYPE::EDT_OPENGL;
|
||||
device = irr::createDevice (driverType, irr::core::dimension2d<uint32_t>(1280, 720));
|
||||
|
||||
device->setWindowCaption (L"Wallpaper engine simulation v0.1");
|
||||
driver = device->getVideoDriver ();*/
|
||||
|
||||
// check for ps and vs support
|
||||
if (driver->queryFeature (irr::video::EVDF_PIXEL_SHADER_1_1) == false && driver->queryFeature (irr::video::EVDF_ARB_FRAGMENT_PROGRAM_1) == false)
|
||||
{
|
||||
device->getLogger ()->log ("WARNING: Pixel shaders disabled because of missing driver/hardware support");
|
||||
_waterripple_frag_shader = "";
|
||||
}
|
||||
|
||||
if (driver->queryFeature (irr::video::EVDF_VERTEX_SHADER_1_1) == false && driver->queryFeature (irr::video::EVDF_ARB_VERTEX_PROGRAM_1) == false)
|
||||
{
|
||||
device->getLogger ()->log ("WARNING: Vertex shaders disabled because of missing driver/hardware support");
|
||||
_waterripple_vert_shader = "";
|
||||
}
|
||||
|
||||
irr::video::IGPUProgrammingServices* gpuProgrammingServices = driver->getGPUProgrammingServices ();
|
||||
|
||||
int32_t materialType1 = 0;
|
||||
|
||||
if (gpuProgrammingServices)
|
||||
{
|
||||
MyShaderCallback* shader = new MyShaderCallback ();
|
||||
|
||||
BasicShaderLoader _vert(_waterripple_vert_shader, BasicShaderLoader::Type::Type_Vertex);
|
||||
BasicShaderLoader _frag(_waterripple_frag_shader, BasicShaderLoader::Type::Type_Pixel);
|
||||
|
||||
materialType1 = gpuProgrammingServices->addHighLevelShaderMaterial(
|
||||
_vert.precompile ()->c_str (), "vertexMain", irr::video::EVST_VS_2_0,
|
||||
_frag.precompile ()->c_str (), "pixelMain", irr::video::EPST_PS_2_0,
|
||||
shader, irr::video::EMT_TRANSPARENT_ALPHA_CHANNEL, 0, irr::video::EGSL_DEFAULT
|
||||
);
|
||||
|
||||
shader->drop ();
|
||||
}
|
||||
|
||||
// load some basic textures
|
||||
irr::video::ITexture* waterTexture = driver->getTexture (_water_example.c_str ());
|
||||
irr::video::ITexture* mudTexture = driver->getTexture (_mud_example.c_str ());
|
||||
irr::video::ITexture* backgroundExample = driver->getTexture (_background_example.c_str ());
|
||||
irr::video::ITexture* waterRippleNormalTexture = driver->getTexture (_waterripple_normal.c_str ());
|
||||
irr::video::ITexture* whiteTexture = driver->getTexture (_white.c_str ());
|
||||
|
||||
// get scene manager
|
||||
irr::scene::ISceneManager* sceneManager = device->getSceneManager ();
|
||||
|
||||
sceneManager->addCameraSceneNode (0, irr::core::vector3df (0.0f, 0.0f, -_map_size.Z), irr::core::vector3df (0.0f, 0.0f, _map_size.Z));
|
||||
|
||||
QuadSceneNode* backgroundNode = new QuadSceneNode (sceneManager->getRootSceneNode (), sceneManager, 666);
|
||||
QuadSceneNode* waterNode = new QuadSceneNode (sceneManager->getRootSceneNode (), sceneManager, 667);
|
||||
QuadSceneNode* mudNode = new QuadSceneNode (sceneManager->getRootSceneNode (), sceneManager, 668);
|
||||
|
||||
backgroundNode->getMaterial (0).setTexture (0, backgroundExample);
|
||||
backgroundNode->setMaterialType (irr::video::EMT_TRANSPARENT_ALPHA_CHANNEL);
|
||||
|
||||
mudNode->getMaterial (0).setTexture (0, mudTexture);
|
||||
mudNode->setMaterialType (irr::video::EMT_TRANSPARENT_ALPHA_CHANNEL);
|
||||
|
||||
waterNode->setMaterialFlag(irr::video::EMF_LIGHTING, false);
|
||||
waterNode->setMaterialFlag(irr::video::EMF_BLEND_OPERATION, true);
|
||||
|
||||
waterNode->getMaterial (0).setTexture (0, waterTexture);
|
||||
waterNode->getMaterial (0).setTexture (1, waterRippleNormalTexture);
|
||||
waterNode->getMaterial (0).setTexture (2, whiteTexture);
|
||||
waterNode->setMaterialType ( (irr::video::E_MATERIAL_TYPE) materialType1);
|
||||
|
||||
irr::core::matrix4 identity; identity.makeIdentity ();
|
||||
irr::core::matrix4 orthoProjection; orthoProjection.buildProjectionMatrixOrthoLH (1.0f, 1.0f, 0.0f, 1.0f);
|
||||
|
||||
driver->setTransform (irr::video::ETS_PROJECTION, orthoProjection);
|
||||
driver->setTransform (irr::video::ETS_VIEW, identity);
|
||||
driver->setTransform (irr::video::ETS_WORLD, identity);
|
||||
|
||||
int32_t lastTime = 0;
|
||||
int32_t minimumTime = 1000 / 90;
|
||||
int32_t currentTime = 0;
|
||||
|
||||
while (device->run () && driver)
|
||||
{
|
||||
// if (device->isWindowActive ())
|
||||
{
|
||||
currentTime = device->getTimer ()->getTime ();
|
||||
g_Time = currentTime / 1000.0f;
|
||||
|
||||
if (currentTime - lastTime > minimumTime)
|
||||
{
|
||||
driver->beginScene (true, true, irr::video::SColor(0, 0, 0, 0));
|
||||
sceneManager->drawAll ();
|
||||
driver->endScene ();
|
||||
|
||||
lastTime = currentTime;
|
||||
}
|
||||
else
|
||||
{
|
||||
device->sleep (1, false);
|
||||
}
|
||||
|
||||
// printf ("FPS: %d\n", driver->getFPS ());
|
||||
}
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
12
nier_test.h
Normal file
@ -0,0 +1,12 @@
|
||||
//
|
||||
// Created by almamu on 4/07/18.
|
||||
//
|
||||
|
||||
#ifndef WALLENGINE_NIER_TEST_H
|
||||
#define WALLENGINE_NIER_TEST_H
|
||||
|
||||
extern irr::io::path _example_base_folder;
|
||||
|
||||
int nier_test ();
|
||||
|
||||
#endif //WALLENGINE_NIER_TEST_H
|
BIN
res/2b.png
Normal file
After Width: | Height: | Size: 49 KiB |
40
res/common.h
Normal file
@ -0,0 +1,40 @@
|
||||
#define M_PI 3.14159265359
|
||||
#define M_PI_HALF 1.57079632679
|
||||
#define M_PI_2 6.28318530718
|
||||
|
||||
#define SQRT_2 1.41421356237
|
||||
#define SQRT_3 1.73205080756
|
||||
|
||||
///////////////////////////////////////////
|
||||
// Color conversion
|
||||
///////////////////////////////////////////
|
||||
vec3 hsv2rgb(vec3 c)
|
||||
{
|
||||
vec4 K = vec4(1.0, 2.0 / 3.0, 1.0 / 3.0, 3.0);
|
||||
vec3 p = abs(frac(c.xxx + K.xyz) * 6.0 - K.www);
|
||||
return c.z * mix(K.xxx, clamp(p - K.xxx, 0.0, 1.0), c.y);
|
||||
}
|
||||
|
||||
vec3 rgb2hsv(vec3 RGB)
|
||||
{
|
||||
vec4 P = (RGB.g < RGB.b) ? vec4(RGB.bg, -1.0, 2.0/3.0) : vec4(RGB.gb, 0.0, -1.0/3.0);
|
||||
vec4 Q = (RGB.r < P.x) ? vec4(P.xyw, RGB.r) : vec4(RGB.r, P.yzx);
|
||||
float C = Q.x - min(Q.w, Q.y);
|
||||
float H = abs((Q.w - Q.y) / (6 * C + 1e-10) + Q.z);
|
||||
|
||||
vec3 HCV = vec3(H, C, Q.x);
|
||||
float S = HCV.y / (HCV.z + 1e-10);
|
||||
return vec3(HCV.x, S, HCV.z);
|
||||
}
|
||||
|
||||
vec2 rotateVec2(vec2 v, float r)
|
||||
{
|
||||
vec2 cs = vec2(cos(r), sin(r));
|
||||
return vec2(v.x * cs.x - v.y * cs.y,
|
||||
v.x * cs.y + v.y * cs.x);
|
||||
}
|
||||
|
||||
float greyscale(vec3 color)
|
||||
{
|
||||
return dot(color, vec3(0.11, 0.59, 0.3));
|
||||
}
|
BIN
res/materials/bIW3uM3.jpg
Normal file
After Width: | Height: | Size: 1.2 MiB |
BIN
res/materials/effects/waterripplenormal.png
Normal file
After Width: | Height: | Size: 145 KiB |
BIN
res/materials/plant-on-water.png
Normal file
After Width: | Height: | Size: 330 KiB |
BIN
res/materials/top-part.png
Normal file
After Width: | Height: | Size: 2.9 MiB |
BIN
res/materials/water-intact.png
Normal file
After Width: | Height: | Size: 652 KiB |
BIN
res/materials/white.png
Normal file
After Width: | Height: | Size: 168 B |
39
res/shaders/effects/waterripple_opengl.frag
Normal file
@ -0,0 +1,39 @@
|
||||
|
||||
// [COMBO_OFF] {"material":"ui_editor_properties_specular","combo":"SPECULAR","type":"options","default":0}
|
||||
|
||||
varying vec4 v_TexCoord;
|
||||
varying vec2 v_Scroll;
|
||||
|
||||
uniform sampler2D g_Texture0; // {"material":"ui_editor_properties_framebuffer","hidden":true}
|
||||
uniform sampler2D g_Texture1; // {"material":"ui_editor_properties_water_normal"}
|
||||
uniform sampler2D g_Texture2; // {"material":"ui_editor_properties_opacity_mask","mode":"opacitymask","default":"util/white"}
|
||||
|
||||
uniform float g_Strength; // {"material":"ui_editor_properties_ripple_strength","default":0.1,"range":[0,1]}
|
||||
uniform float g_SpecularPower; // {"material":"ui_editor_properties_ripple_specular_power","default":1.0,"range":[0,100]}
|
||||
uniform float g_SpecularStrength; // {"material":"ui_editor_properties_ripple_specular_strength","default":1.0,"range":[0,10]}
|
||||
uniform vec3 g_SpecularColor; // {"material":"ui_editor_properties_ripple_specular_color","default":"1 1 1","type":"color"}
|
||||
|
||||
varying vec4 v_TexCoordRipple;
|
||||
|
||||
void main() {
|
||||
vec2 texCoord = v_TexCoord.xy;
|
||||
|
||||
float mask = texSample2D(g_Texture2, v_TexCoord.zw).r;
|
||||
|
||||
vec3 n1 = texSample2D(g_Texture1, v_TexCoordRipple.xy).xyz * 2 - 1;
|
||||
vec3 n2 = texSample2D(g_Texture1, v_TexCoordRipple.zw).xyz * 2 - 1;
|
||||
vec3 normal = normalize(vec3(n1.xy + n2.xy, n1.z));
|
||||
|
||||
texCoord.xy += normal.xy * g_Strength * g_Strength * mask;
|
||||
|
||||
gl_FragColor = texSample2D(g_Texture0, texCoord);
|
||||
|
||||
#if SPECULAR == 1
|
||||
vec2 direction = vec2(0.5, 0.0) - v_TexCoord.xy;
|
||||
direction = normalize(direction);
|
||||
float specular = max(0.0, dot(normal.xy, direction)) * max(0.0, dot(direction, vec2(0.0, -1.0)));
|
||||
|
||||
specular = pow(specular, g_SpecularPower) * g_SpecularStrength;
|
||||
gl_FragColor.rgb += specular * g_SpecularColor * gl_FragColor.a;
|
||||
#endif
|
||||
}
|
42
res/shaders/effects/waterripple_opengl.vert
Normal file
@ -0,0 +1,42 @@
|
||||
#include "common.h"
|
||||
|
||||
uniform mat4 g_ModelViewProjectionMatrix;
|
||||
uniform float g_Time;
|
||||
uniform vec4 g_Texture0Resolution;
|
||||
uniform vec4 g_Texture2Resolution;
|
||||
|
||||
uniform float g_AnimationSpeed; // {"material":"ui_editor_properties_animation_speed","default":0.15,"range":[0,0.5]}
|
||||
uniform float g_Scale; // {"material":"ui_editor_properties_ripple_scale","default":1,"range":[0,10]}
|
||||
uniform float g_ScrollSpeed; // {"material":"ui_editor_properties_scroll_speed","default":0,"range":[0,0.5]}
|
||||
uniform float g_Direction; // {"material":"ui_editor_properties_scroll_direction","default":0,"range":[0,6.28]}
|
||||
|
||||
// attribute vec3 a_Position; // replaced by gl_Vertex
|
||||
// attribute vec2 a_TexCoord; // replaced by gl_MultiTexCoord0
|
||||
|
||||
varying vec4 v_TexCoord;
|
||||
varying vec4 v_TexCoordRipple;
|
||||
|
||||
void main() {
|
||||
// gl_Position = mul(vec4(a_Position, 1.0), g_ModelViewProjectionMatrix);
|
||||
gl_Position = g_ModelViewProjectionMatrix * gl_Vertex;
|
||||
v_TexCoord.xy = gl_MultiTexCoord0.xy;
|
||||
// v_TexCoord.xy = a_TexCoord;
|
||||
|
||||
float piFrac = 0.78539816339744830961566084581988 * 0.5;
|
||||
float pi = 3.141;
|
||||
|
||||
vec2 coordsRotated = v_TexCoord.xy;
|
||||
vec2 coordsRotated2 = v_TexCoord.xy * 1.333;
|
||||
|
||||
vec2 scroll = rotateVec2(vec2(0, -1), g_Direction) * g_ScrollSpeed * g_ScrollSpeed * g_Time;
|
||||
|
||||
v_TexCoordRipple.xy = coordsRotated + g_Time * g_AnimationSpeed * g_AnimationSpeed + scroll;
|
||||
v_TexCoordRipple.zw = coordsRotated2 - g_Time * g_AnimationSpeed * g_AnimationSpeed + scroll;
|
||||
v_TexCoordRipple *= g_Scale;
|
||||
|
||||
float rippleTextureAdjustment = (g_Texture0Resolution.x / g_Texture0Resolution.y);
|
||||
v_TexCoordRipple.xz *= rippleTextureAdjustment;
|
||||
|
||||
v_TexCoord.zw = vec2(v_TexCoord.x * g_Texture2Resolution.z / g_Texture2Resolution.x,
|
||||
v_TexCoord.y * g_Texture2Resolution.w / g_Texture2Resolution.y);
|
||||
}
|