diff --git a/.gitmodules b/.gitmodules
index 21ba53294..1604d9ee9 100644
--- a/.gitmodules
+++ b/.gitmodules
@@ -41,5 +41,5 @@
path = Dependencies/zlib
url = https://github.com/HeliumProject/zlib.git
[submodule "Source/Core"]
- path = Source/Core
+ path = Core
url = https://github.com/HeliumProject/Core.git
diff --git a/.travis.yml b/.travis.yml
index 2f9121338..2a69a6675 100644
--- a/.travis.yml
+++ b/.travis.yml
@@ -1,6 +1,4 @@
language: cpp
-
-#linux globals
dist: trusty
sudo: required
addons:
@@ -10,7 +8,6 @@ addons:
packages:
- gcc-5
- g++-5
-
matrix:
include:
- os: linux
@@ -56,25 +53,20 @@ matrix:
git:
submodules: false
-
before_install:
- git submodule update --init --recursive
-- ./.travis.before_install.$TRAVIS_OS_NAME.sh
-
+- "./.travis.before_install.$TRAVIS_OS_NAME.sh"
script:
- cd Dependencies
-- ../premake.sh --core --wx-config=${WX_CONFIG} gmake
-- cd Build
-- make -j4 config=${CONFIG}_x64
-- cd ../..
-- ./premake.sh --core gmake
-- cd Build
-- make -j4 config=${CONFIG}_x64
-
+- "../premake.sh --core --wx-config=${WX_CONFIG} gmake"
+- make -C Build -j4 config=${CONFIG}
+- cd ..
+- "./premake.sh --core gmake"
+- make -C Build -j4 config=${CONFIG}
notifications:
slack:
- rooms:
- secure: nn6rH9yj4/eJYNkAXrMIk4oVrweT3rznA5ATtuHzFeeG5uMT0qr1c1yQqDsSKsxtPan1RFo2awJ/PZkGQmuRVTcmVuaHs0eLPVrTXgfy2yjjuqwg4aLlK7PBEnv6oxUDyJOo9K9RYMcPIqXu0vcikgo+C4Oc6qL5MiOa7RleVjI=
on_start: never
on_success: always
on_failure: always
+ rooms:
+ secure: JmcTj31DKTd/G3urwJxpOt0MhXhlzJtgCWs3xDRu5cvtrIC0m9oV8Y661WyJ35ooTc6zktwPDdiD/t1NdpjEXpGMRFy8WCjcv8831cO0jX3g4e9Gs+auBEJRHBOjlW+YfX7gJC/JQxXkEtTQOztXJpPrXCgmkzk7e4s9wEBSxtMVyUx51A3ECc0h3Qxs2Gdh3zAAhjFoMixQc6jhCyrMv5p+TtUI/ohqm1JXp43FnINnRzqUU3FJPX58FO0Qq5mAa90zvfGfihURVs9yoIo3Ro0LHIZhuIPLE5cFMuxrnh61nOMTDRm2WgGTi8t7r2g9xaMbICiapHH1LdZubAKr0vVgLib9sH8S1dNd29Hw9uFqm9e7WswU6W1lk/2ZbmZJ6+XEqTxvFzXz5wWUkQj8DtVi+ZczVBE3lk1lhWzorQsbGepwuPEbSyVD2AbCSLDNIhHlRB2COAeLnXOCvOczTvMdpSAVVYxAbC7u5i+5ejCRkNt1z8DTEM8OGoInlyzRM8aOq5tK2PasJOdblICF0AjSwV7NEX0nr9G/7uO6Fo9eseCCzgLceQpqq6t+GDltb9UUB/nwfd13yadJj7WtdhgQrNF/57NpJBfqkfiI9wO/6Bhnot1L5OvVZaNFjV6McZHhXoGQ6oMCGdhk50XSYfxAOU0psXicMkjLkV8whTU=
diff --git a/CODING b/CODING
deleted file mode 100644
index 7f83bd983..000000000
--- a/CODING
+++ /dev/null
@@ -1,355 +0,0 @@
-########################################################################
-Helium Coding Guidelines
-########################################################################
-
-Naming Conventions
-==================
-In general, code should be as self documenting as possible. All names should be
-composed of complete and descriptive words; words should not be shortened or
-abbreviated except in rare and obvious (to the average developer) cases.
-
-Namespaces
-----------
-Namespaces should be used sparingly to logically delineate code. Namespace
-names should start with a capital letter and use camel casing, eg:
-
- namespace ExampleNamespace
- {
- ...
- }
-
-Structs and Classes
--------------------
-Both structs and classes should using camel casing and begin with a capital
-letter, eg:
-
- class ExampleClass
- {
- ...
- }
-
- struct ExampleStruct
- {
- ...
- }
-
-Enums
------
-* Enums should be placed in their own explicit namespace - so as not to contaminate the containing namespace with extraneous symbols
-** namespace name is plural - as the container for all of the enum symbols; the namespace name is used to refer to individual enum values as FileAccessFlags::Append rather than just Append
-* enum – used to declare variables; the name is
-** plural if an enum variable may contain more than one of the enum flags: and cannot share the same name as the encapsulating namespace: FindFileFlags::FindFlags flags
-** singular if the enum values are mutually exclusive, allowing you to declare a variable that is ONE of many enum values: FileAccessFlags::FileMode mode
-* enum member names should be CamelCase, with leading uppercase character; they should NOT be all caps or prefixed with a character indicator like “k_”
-* use a typedef to shorten enum variable declaration – shortening FileAccessFlags::FileModes modes to FileModes modes; enum typedef shares the same name as the enum
-
-Note: When you refer to an enum inside a type, you do not need to specify the name of the enum – which results in the following compiler warning:
- warning C4482: nonstandard extension used: enum 'enum' used in qualified name
-
----------------------------------EXAMPLE--------------------------------
- namespace FileAccessFlags
- {
- enum FileAccessFlag
- {
- Read = 1 << 0,
- Write = 1 << 1,
- Append = 1 << 2,
- Truncate = 1 << 3,
- RandomAccess = 1 << 4,
- SequentialAccess = 1 << 5,
- };
- }
- typedef u32 FileAccessFlag;
-
- ...
-
- void MyFunc( FileAccessFlag flags )
- {
- if ( flags & FileAccessFlags::Append )
- return OPEN_EXISTING;
- }
-
- ...
-
- FileAccessFlag flags = ( FileAccessFlag ) ( FileAccessFlags::Append | FileAccessFlags::Write );
-------------------------------/END EXAMPLE------------------------------
-
----------------------------------EXAMPLE--------------------------------
- namespace BrowserDisplayModes
- {
- enum BrowserDisplayMode
- {
- Details = 0,
- List,
- Thumbnail,
- };
- }
- typedef BrowserDisplayModes::BrowserDisplayMode BrowserDisplayMode;
-
- ...
-
- void MyFunc( BrowserDisplayMode modes )
- {
- if ( modes & BrowserDisplayModes::Append )
- return OPEN_EXISTING;
- }
-
- ...
-
- BrowserDisplayMode modes = ( BrowserDisplayMode ) ( BrowserDisplayModes::Append | BrowserDisplayModes::Write );
-------------------------------/END EXAMPLE------------------------------
-
-Variables
----------
-
- Local Variables
- ---------------
- Local variables and function parameters should be camel case and begin
-with a lower case letter, eg:
-
- int localVariable = 0;
-
- Member Variables
- ----------------
- Member variables should be defined with the "m_" prefix and use camel case,
-beginning with a capital letter following the member prefix, eg:
-
- int m_MemberVariable;
-
- Global Variables
- ----------------
- Global variables, externalized from the source file, should be defined in the
-header files with the "g_" prefix, use camel case and begin with a capital
-letter following their prefix, eg:
-
- extern MODULE_API int g_GlobalVariable;
-
- Static Variables
- ----------------
- Static variables should be defined in the source file with the "s_" prefix,
-use camel case and begin with a capital letter following their prefix, eg:
-
- static const char* s_StaticVariable = "Hello world\n";
-
- Constants
- ---------
-
- External
- --------
- Externalized constants, defined in the header file, should be made using
-either Enums (see above) or the C convention of #define, written in all caps,
-and underscore separated, eg:
-
- #define POUND_DEFINED_CONSTANT 1024
-
- Internal
- --------
- If a constant is never externalized from a source file, the C++ const
-modifier may be used instead, and the constant should be defined as a Static
-variable (see above).
-
-Macros
-------
-
-In general, C-style macros should not be used when it is possible to use a C++
-inline function instead. Where C-style macros are necessary, they should be
-written in all caps with underscores to separate each word. Additionally, to
-denote them as belonging to the Helium project, they should begin with the
-'HELIUM_' prefix, eg:
-
- HELIUM_ASSERT( ... )
-
-Files & Fodlers
----------------
-A file should be named after the class that it contains, and placed under a
-folder related to its functionality or the module it belongs to, eg:
-
- Module/
- Module/Bar.h
- namespace Helium
- {
- class Bar
- {
- public:
- Bar();
- ~Bar();
-
- void Func();
- ...
- }
- }
-
- Module/Bar.cpp
- using namespace Helium;
-
- Bar::Bar()
- {
- }
-
- Bar~Bar()
- {
- }
-
- void Bar::Func()
- {
- }
-
- Module/Subsystem/Blah.h
- namespace Helium
- {
- class Blah
- {
- public:
- Blah();
- ~Blah();
- }
- }
-
- Module/Subsystem/Blah.cpp
- using namespace Helium;
-
- Blah::Blah()
- {
- }
-
- Blah::~Blah();
- {
- }
-
-Status/Error/Warning Message Formatting
-=======================================
-
-It is important that messages to the user (console printing, message box text,
-and exception message bodies) be homogeneous and in good form:
-
- - Use complete sentences, and do not abbreviate words (eg: "vert", "jnt")
- - Use periods. Phrases are bad for code that amend other module's messages.
- - Don't use exclamation points. Errors are raised with color coding so they
- are unnecessary.
- - Don't put code in messages. It only makes the messages harder to understand
- for users.
- - *Under no circumstances* should a message tell the user to go tell a
- particular named programmer about a problem, or to get help directly from
- them. (eg: "Tell Reddy", "Grab Sam")
- - All references to assets and files should be surrounded in single
- quotes (', not `).
- - Do not use newline characters in exception message text.
-
-Eg:
-
- Good
- ----
- throw IG::Exception( "Triangle vertex limit exceeded. The limit is 256 triangles." );
- ERR( "Triangle vertex limit exceeded. The limit is 256 triangles.\n" );
-
- Bad
- ---
- throw IG::Exception( "Tri vert limit too far!!\nIncrease limit in TriPool.cpp (go tell Reddy or Fred)\n" );
- throw IG::Exception( "mTracks[AT_ROTATE_X]->isSampled() && mTracks[AT_ROTATE_Y]->isSampled() && mTracks[AT_ROTATE_Z]->isSampled()\n" );
-
-Spacing, Tabs, Newlines, etc.
-=============================
-
- - Use spaces instead of tab characters.
- - Use 4-space indenting.
- - Place curly braces on their own line.
- - Put spaces after open parentheses and before close parentheses.
- - Put spaces after open brackets and before close brackets.
- - Prefer to add spacing to code to help make it more easily readable.
- - Append reference/pointer qualifier to the data type as opposed to the
- variable name, as it is more descriptive of the type of data that one
- expects to be in the variable as opposed to the variable itself.
- - Do *not* attempt to align variable declarations or function declarations in
- classes using spaces, these tend to rot over time and are more trouble than
- they are worth.
-
-Eg:
-
- void SomeClass::SomeFunction( const OtherClass& otherClass, FooClass* foo )
- {
- HELIUM_ASSERT( otherClass.IsOk() );
-
- if ( !otherClass.IsReady() )
- {
- otherClass.MakeReady();
- }
-
- int buffer[ 1234 ];
- otherClass.DoIt( &buffer, 1234 );
-
- foo->Process( &buffer, 1234 );
- }
-
- Variable Declarations
- ---------------------
-
- Good
- ----
- ...
- int m_SomeInt;
- float m_SomeFloat;
- ...
- void SomeFunction();
- int SomeOtherFunction();
- ...
-
- Bad
- ---
- ...
- // this will rot when someone changes a type, or it will take someone
- // unnecessary time when they add a new variable that changes the spacing
- int m_SomeInt; // note the unnecessary spaces following 'int' here
- float m_SomeFloat;
- ...
- void SomeFunction();
- int SomeOtherFunction(); // again, note the unnecessary spaces
- ...
-
-File Paths
-==========
-
-All internal paths are expected to contain only forward slashes; however, they
-will be displayed to the user with the native platform's slashes. This makes
-it easier for the user to cut/copy/paste the paths into a command prompt.
-
-Internal folder paths should always have a trailing slash.
-
-There are several functions in the File subsystem to help manage paths. The
-Helium::Path object is the preferred way to work with a path (as opposed to
-using a bare string). The Path object has a variety of useful functions and
-static methods for working with (and modifying) paths.
-
-Hints for Writing Clean Class Declarations
-==========================================
-
- - Write the header file to be easy to see what the interface is; write for
- humans reading your code to see how to use it.
- - Try to group similar functions (that work on similar data or support
- related functionality) next to each other.
- - Getter and setter functions should be adjoint.
- - Since we read top-to-bottom, put publicly accessible things at the top.
-
- Eg:
-
- class FOUNDATION_API Example : public Helium::RefCountBase< Example >
- {
- public:
- Example();
- virtual ~Example();
-
- virtual bool IsCool();
- bool ConvertToInts( int* ints );
- void DoTheThing();
-
- protected:
- virtual bool DoSomethingElse();
-
- public:
- std::string m_SomeString;
- int32_t m_SomeInt;
-
- private:
- int32_t m_SomePrivateInt;
-
- void Validate();
- };
diff --git a/CODING.md b/CODING.md
new file mode 100644
index 000000000..92b7ec125
--- /dev/null
+++ b/CODING.md
@@ -0,0 +1,331 @@
+# Coding Guidelines
+
+## Naming Conventions
+
+In general, code should be as self documenting as possible. All names should be composed of complete and descriptive words; words should not be shortened or abbreviated except in rare and obvious (to the average developer) cases.
+
+### Namespaces
+
+Namespaces should be used sparingly to logically delineate code. Namespace names should start with a capital letter and use camel casing, eg:
+
+```cpp
+namespace ExampleNamespace
+{
+}
+```
+
+### Structs and Classes
+
+Both structs and classes should using camel casing and begin with a capital letter, eg:
+
+```cpp
+class ExampleClass
+{
+}
+
+struct ExampleStruct
+{
+}
+```
+
+### Enums
+
+* Enums should be placed in their own explicit namespace - so as not to contaminate the containing namespace with extraneous symbols
+ * namespace name is plural - as the container for all of the enum symbols; the namespace name is used to refer to individual enum values as FileAccessFlags::Append rather than just Append
+* enum – used to declare variables; the name is
+ * plural if an enum variable may contain more than one of the enum flags: and cannot share the same name as the encapsulating namespace: FindFileFlags::FindFlags flags
+ * singular if the enum values are mutually exclusive, allowing you to declare a variable that is ONE of many enum values: FileAccessFlags::FileMode mode
+* enum member names should be CamelCase, with leading uppercase character; they should NOT be all caps or prefixed with a character indicator like “k_”
+* use a typedef to shorten enum variable declaration – shortening FileAccessFlags::FileModes modes to FileModes modes; enum typedef shares the same name as the enum
+
+Note: When you refer to an enum inside a type, you do not need to specify the name of the enum – which results in the following compiler warning:
+
+```
+ warning C4482: nonstandard extension used: enum 'enum' used in qualified name
+```
+
+```cpp
+namespace FileAccessFlags
+{
+ enum FileAccessFlag
+ {
+ Read = 1 << 0,
+ Write = 1 << 1,
+ Append = 1 << 2,
+ Truncate = 1 << 3,
+ RandomAccess = 1 << 4,
+ SequentialAccess = 1 << 5,
+ };
+}
+typedef u32 FileAccessFlag;
+
+void MyFunc( FileAccessFlag flags )
+{
+ if ( flags & FileAccessFlags::Append )
+ {
+ return OPEN_EXISTING;
+ }
+}
+
+FileAccessFlag flags = ( FileAccessFlag ) ( FileAccessFlags::Append | FileAccessFlags::Write );
+```
+
+```cpp
+namespace BrowserDisplayModes
+{
+ enum BrowserDisplayMode
+ {
+ Details = 0,
+ List,
+ Thumbnail,
+ };
+}
+typedef BrowserDisplayModes::BrowserDisplayMode BrowserDisplayMode;
+
+void MyFunc( BrowserDisplayMode modes )
+{
+ if ( modes & BrowserDisplayModes::Append )
+ {
+ return OPEN_EXISTING;
+ }
+}
+
+BrowserDisplayMode modes = ( BrowserDisplayMode ) ( BrowserDisplayModes::Append | BrowserDisplayModes::Write );
+```
+
+### Variables
+
+Local variables and function parameters should be camel case and begin with a lower case letter, eg:
+
+```cpp
+int localVariable = 0;
+```
+
+Member variables should be defined with the "m_" prefix and use camel case, beginning with a capital letter following the member prefix, eg:
+
+```cpp
+int m_MemberVariable;
+```
+
+Global variables, externalized from the source file, should be defined in the header files with the "g_" prefix, use camel case and begin with a capital letter following their prefix, eg:
+
+```cpp
+extern MODULE_API int g_GlobalVariable;
+```
+
+Static variables should be defined in the source file with the "s_" prefix, use camel case and begin with a capital letter following their prefix, eg:
+
+```cpp
+static const char* s_StaticVariable = "Hello world\n";
+```
+
+### Constants
+
+Externalized constants, defined in the header file, should be made using either Enums (see above) or the C convention of #define, written in all caps, and underscore separated, eg:
+
+```cpp
+#define POUND_DEFINED_CONSTANT 1024
+```
+
+If a constant is never externalized from a source file, the C++ const modifier may be used instead, and the constant should be defined as a static variable (see above).
+
+### Macros
+
+In general, C-style macros should not be used when it is possible to use a C++ inline function instead. Where C-style macros are necessary, they should be written in all caps with underscores to separate each word. Additionally, to denote them as belonging to the Helium project, they should begin with the 'HELIUM_' prefix, eg:
+
+```cpp
+HELIUM_ASSERT( ... )
+```
+
+## Files & Fodlers
+
+A file should be named after the class that it contains, and placed under a
+folder related to its functionality or the module it belongs to, eg:
+
+```
+ Module/Bar.h
+```
+
+```cpp
+namespace Helium
+{
+ class Bar
+ {
+ public:
+ Bar();
+ ~Bar();
+
+ void Func();
+ ...
+ }
+}
+```
+
+```
+ Module/Bar.cpp
+```
+
+```cpp
+using namespace Helium;
+
+Bar::Bar()
+{
+}
+
+Bar~Bar()
+{
+}
+
+void Bar::Func()
+{
+}
+```
+
+```
+ Module/Subsystem/Blah.h
+```
+
+```cpp
+namespace Helium
+{
+ class Blah
+ {
+ public:
+ Blah();
+ ~Blah();
+ }
+}
+```
+
+```
+ Module/Subsystem/Blah.cpp
+```
+
+```cpp
+using namespace Helium;
+
+Blah::Blah()
+{
+}
+
+Blah::~Blah();
+{
+}
+```
+
+## Status/Error/Warning Message Formatting
+
+It is important that messages to the user (console printing, message box text, and exception message bodies) be homogeneous and in good form:
+
+- Use complete sentences, and do not abbreviate words (eg: "vert", "jnt")
+- Use periods. Phrases are bad for code that amend other module's messages.
+- Don't use exclamation points. Errors are raised with color coding so they are unnecessary.
+- Don't put code in messages. It only makes the messages harder to understand for users.
+- *Under no circumstances* should a message tell the user to go tell a particular named programmer about a problem, or to get help directly from them. (eg: "Tell Reddy", "Grab Sam")
+- All references to assets and files should be surrounded in single quotes (', not \`).
+- Do not use newline characters in exception message text.
+
+### Good
+
+```cpp
+throw Helium::Exception( "Triangle vertex limit exceeded. The limit is 256 triangles." );
+```
+
+### Bad
+
+```cpp
+throw Helium::Exception( "Tri vert limit too far!!\nIncrease limit in TriPool.cpp (go tell Reddy or Fred)\n" );
+throw Helium::Exception( "mTracks[AT_ROTATE_X]->isSampled() && mTracks[AT_ROTATE_Y]->isSampled() && mTracks[AT_ROTATE_Z]->isSampled()\n" );
+```
+
+## Spacing, Tabs, Newlines, etc.
+
+- Use spaces instead of tab characters.
+- Use 4-space indenting.
+- Place curly braces on their own line.
+- Put spaces after open parentheses and before close parentheses.
+- Put spaces after open brackets and before close brackets.
+- Prefer to add spacing to code to help make it more easily readable.
+- Append reference/pointer qualifier to the data type as opposed to the variable name, as it is more descriptive of the type of data that one expects to be in the variable as opposed to the variable itself.
+- Do *not* attempt to align variable declarations or function declarations in classes using spaces, these tend to rot over time and are more trouble than they are worth.
+
+```cpp
+void SomeClass::SomeFunction( const OtherClass& otherClass, FooClass* foo )
+{
+ HELIUM_ASSERT( otherClass.IsOk() );
+
+ if ( !otherClass.IsReady() )
+ {
+ otherClass.MakeReady();
+ }
+
+ int buffer[ 1234 ];
+ otherClass.DoIt( &buffer, 1234 );
+
+ foo->Process( &buffer, 1234 );
+}
+```
+
+## Variable Declarations
+
+### Good
+
+```cpp
+int m_SomeInt;
+float m_SomeFloat;
+
+void SomeFunction();
+int SomeOtherFunction();
+```
+
+### Bad
+
+```cpp
+// this will rot when someone changes a type, or it will take someone
+// unnecessary time when they add a new variable that changes the spacing
+int m_SomeInt; // note the unnecessary spaces following 'int' here
+float m_SomeFloat;
+
+void SomeFunction();
+int SomeOtherFunction(); // again, note the unnecessary spaces
+```
+
+## File Paths
+
+All internal paths are expected to contain only forward slashes; however, they will be displayed to the user with the native platform's slashes. This makes it easier for the user to cut/copy/paste the paths into a command prompt.
+
+Internal folder paths should always have a trailing slash.
+
+There are several functions in the File subsystem to help manage paths. The Helium::Path object is the preferred way to work with a path (as opposed to using a bare string). The Path object has a variety of useful functions and static methods for working with (and modifying) paths.
+
+## Tips for Writing Clean Class Declarations
+
+ - Write the header file to be easy to see what the interface is; write for humans reading your code to see how to use it.
+ - Try to group similar functions (that work on similar data or support related functionality) next to each other.
+ - Getter and setter functions should be adjoint.
+ - Since we read top-to-bottom, put publicly accessible things at the top.
+
+```cpp
+class FOUNDATION_API Example : public Helium::RefCountBase< Example >
+{
+public:
+ Example();
+ virtual ~Example();
+
+ virtual bool IsCool();
+ bool ConvertToInts( int* ints );
+ void DoTheThing();
+
+protected:
+ virtual bool DoSomethingElse();
+
+public:
+ std::string m_SomeString;
+ int32_t m_SomeInt;
+
+private:
+ int32_t m_SomePrivateInt;
+
+ void Validate();
+};
+```
\ No newline at end of file
diff --git a/Core b/Core
new file mode 160000
index 000000000..b36436729
--- /dev/null
+++ b/Core
@@ -0,0 +1 @@
+Subproject commit b364367293c84b5cf33ba7947773434d035daca8
diff --git a/Core.lua b/Core.lua
deleted file mode 100644
index a5e0e8360..000000000
--- a/Core.lua
+++ /dev/null
@@ -1,227 +0,0 @@
-require "Dependencies/Helium"
-require "Dependencies/fbx"
-
-require "Helium"
-
-project( prefix .. "Platform" )
-
- Helium.DoModuleProjectSettings( "Source/Core", "HELIUM", "Platform", "PLATFORM" )
-
- files
- {
- "Source/Core/Platform/*.cpp",
- "Source/Core/Platform/*.h",
- "Source/Core/Platform/*.inl",
- }
-
- excludes
- {
- "Source/Core/Platform/*Tests.*",
- }
-
- configuration "windows"
- excludes
- {
- "Source/Core/Platform/*Posix.*",
- "Source/Core/Platform/*Mac.*",
- "Source/Core/Platform/*Lin.*",
- }
-
- configuration "macosx"
- excludes
- {
- "Source/Core/Platform/*Win.*",
- "Source/Core/Platform/*Lin.*",
- }
-
- configuration "linux"
- excludes
- {
- "Source/Core/Platform/*Win.*",
- "Source/Core/Platform/*Mac.*",
- }
-
- configuration { "SharedLib", "linux" }
- links
- {
- "pthread",
- "dl",
- }
-
- configuration {}
-
-project( prefix .. "PlatformTests" )
-
- Helium.DoTestsProjectSettings()
-
- files
- {
- "Source/Core/Platform/*Tests.*",
- }
-
- links
- {
- prefix .. "Platform"
- }
-
-project( prefix .. "Foundation" )
-
- Helium.DoModuleProjectSettings( "Source/Core", "HELIUM", "Foundation", "FOUNDATION" )
-
- files
- {
- "Source/Core/Foundation/**",
- }
-
- excludes
- {
- "Source/Core/Foundation/*Tests.*",
- }
-
- configuration "SharedLib"
- links
- {
- prefix .. "Platform",
- }
-
- configuration {}
-
-project( prefix .. "FoundationTests" )
-
- Helium.DoTestsProjectSettings()
-
- files
- {
- "Source/Core/Foundation/*Tests.*",
- }
-
- links
- {
- prefix .. "Platform",
- prefix .. "Foundation"
- }
-
-project( prefix .. "Application" )
-
- Helium.DoModuleProjectSettings( "Source/Core", "HELIUM", "Application", "APPLICATION" )
-
- files
- {
- "Source/Core/Application/**",
- }
-
- configuration "SharedLib"
- links
- {
- prefix .. "Platform",
- prefix .. "Foundation",
- }
-
- configuration {}
-
-project( prefix .. "Reflect" )
-
- Helium.DoModuleProjectSettings( "Source/Core", "HELIUM", "Reflect", "REFLECT" )
-
- files
- {
- "Source/Core/Reflect/**",
- }
-
- configuration "SharedLib"
- links
- {
- prefix .. "Platform",
- prefix .. "Foundation",
- }
-
- configuration {}
-
-project( prefix .. "Persist" )
-
- Helium.DoModuleProjectSettings( "Source/Core", "HELIUM", "Persist", "PERSIST" )
-
- files
- {
- "Source/Core/Persist/**",
- }
-
- configuration "SharedLib"
- links
- {
- prefix .. "Platform",
- prefix .. "Foundation",
- prefix .. "Reflect",
- "mongo-c",
- }
-
- configuration {}
-
-project( prefix .. "Mongo" )
-
- Helium.DoModuleProjectSettings( "Source/Core", "HELIUM", "Mongo", "MONGO" )
-
- files
- {
- "Source/Core/Mongo/**",
- }
-
- configuration "SharedLib"
- links
- {
- prefix .. "Platform",
- prefix .. "Foundation",
- prefix .. "Reflect",
- prefix .. "Persist",
- "mongo-c",
- }
-
- configuration {}
-
-project( prefix .. "Inspect" )
-
- Helium.DoModuleProjectSettings( "Source/Core", "HELIUM", "Inspect", "INSPECT" )
-
- files
- {
- "Source/Core/Inspect/**",
- }
-
- includedirs
- {
- "Source/Core/Inspect",
- }
-
- configuration "SharedLib"
- links
- {
- prefix .. "Platform",
- prefix .. "Foundation",
- prefix .. "Application",
- prefix .. "Reflect",
- prefix .. "Persist",
- prefix .. "Math",
- prefix .. "MathSimd",
- }
-
- configuration {}
-
-project( prefix .. "Math" )
-
- Helium.DoModuleProjectSettings( "Source/Core", "HELIUM", "Math", "MATH" )
-
- files
- {
- "Source/Core/Math/**",
- }
-
- configuration "SharedLib"
- links
- {
- prefix .. "Platform",
- prefix .. "Foundation",
- prefix .. "Reflect",
- prefix .. "Persist",
- }
-
- configuration {}
diff --git a/Data/Editor/System.json b/Data/Editor/System.json
deleted file mode 100644
index ba75d5756..000000000
--- a/Data/Editor/System.json
+++ /dev/null
@@ -1,19 +0,0 @@
-[
- {
- "Helium::SystemDefinition": {
- "m_SystemComponents": [
-
- ],
- "m_ComponentTypeConfigs": [
- {
- "m_ComponentTypeName": "Helium::BulletBodyComponent",
- "m_PoolSize": 64
- },
- {
- "m_ComponentTypeName": "ExampleGame::AvatarControllerComponent",
- "m_PoolSize": 64
- }
- ]
- }
- }
-]
\ No newline at end of file
diff --git a/Data/Meshes/cube.fbx b/Data/Meshes/cube.fbx
deleted file mode 100644
index ffa1cbe86..000000000
--- a/Data/Meshes/cube.fbx
+++ /dev/null
@@ -1,332 +0,0 @@
-; FBX 6.1.0 project file
-; Created by Blender FBX Exporter
-; for support mail: ideasman42@gmail.com
-; ----------------------------------------------------
-
-FBXHeaderExtension: {
- FBXHeaderVersion: 1003
- FBXVersion: 6100
- CreationTimeStamp: {
- Version: 1000
- Year: 2013
- Month: 06
- Day: 20
- Hour: 03
- Minute: 20
- Second: 26
- Millisecond: 0
- }
- Creator: "FBX SDK/FBX Plugins build 20070228"
- OtherFlags: {
- FlagPLE: 0
- }
-}
-CreationTime: "2013-06-20 03:20:26:000"
-Creator: "Blender version 2.67 (sub 0)"
-
-; Object definitions
-;------------------------------------------------------------------
-
-Definitions: {
- Version: 100
- Count: 4
- ObjectType: "Model" {
- Count: 1
- }
- ObjectType: "Geometry" {
- Count: 1
- }
- ObjectType: "Material" {
- Count: 2
- }
- ObjectType: "Pose" {
- Count: 1
- }
- ObjectType: "GlobalSettings" {
- Count: 1
- }
-}
-
-; Object properties
-;------------------------------------------------------------------
-
-Objects: {
- Model: "Model::Cube", "Mesh" {
- Version: 232
- Properties60: {
- Property: "QuaternionInterpolate", "bool", "",0
- Property: "Visibility", "Visibility", "A+",1
- Property: "Lcl Translation", "Lcl Translation", "A+",0.000000000000000,0.000000000000000,0.000000000000000
- Property: "Lcl Rotation", "Lcl Rotation", "A+",-90.000009334538021,0.000000000000000,0.000000000000000
- Property: "Lcl Scaling", "Lcl Scaling", "A+",1.000000000000000,1.000000000000000,1.000000000000000
- Property: "RotationOffset", "Vector3D", "",0,0,0
- Property: "RotationPivot", "Vector3D", "",0,0,0
- Property: "ScalingOffset", "Vector3D", "",0,0,0
- Property: "ScalingPivot", "Vector3D", "",0,0,0
- Property: "TranslationActive", "bool", "",0
- Property: "TranslationMin", "Vector3D", "",0,0,0
- Property: "TranslationMax", "Vector3D", "",0,0,0
- Property: "TranslationMinX", "bool", "",0
- Property: "TranslationMinY", "bool", "",0
- Property: "TranslationMinZ", "bool", "",0
- Property: "TranslationMaxX", "bool", "",0
- Property: "TranslationMaxY", "bool", "",0
- Property: "TranslationMaxZ", "bool", "",0
- Property: "RotationOrder", "enum", "",0
- Property: "RotationSpaceForLimitOnly", "bool", "",0
- Property: "AxisLen", "double", "",10
- Property: "PreRotation", "Vector3D", "",0,0,0
- Property: "PostRotation", "Vector3D", "",0,0,0
- Property: "RotationActive", "bool", "",0
- Property: "RotationMin", "Vector3D", "",0,0,0
- Property: "RotationMax", "Vector3D", "",0,0,0
- Property: "RotationMinX", "bool", "",0
- Property: "RotationMinY", "bool", "",0
- Property: "RotationMinZ", "bool", "",0
- Property: "RotationMaxX", "bool", "",0
- Property: "RotationMaxY", "bool", "",0
- Property: "RotationMaxZ", "bool", "",0
- Property: "RotationStiffnessX", "double", "",0
- Property: "RotationStiffnessY", "double", "",0
- Property: "RotationStiffnessZ", "double", "",0
- Property: "MinDampRangeX", "double", "",0
- Property: "MinDampRangeY", "double", "",0
- Property: "MinDampRangeZ", "double", "",0
- Property: "MaxDampRangeX", "double", "",0
- Property: "MaxDampRangeY", "double", "",0
- Property: "MaxDampRangeZ", "double", "",0
- Property: "MinDampStrengthX", "double", "",0
- Property: "MinDampStrengthY", "double", "",0
- Property: "MinDampStrengthZ", "double", "",0
- Property: "MaxDampStrengthX", "double", "",0
- Property: "MaxDampStrengthY", "double", "",0
- Property: "MaxDampStrengthZ", "double", "",0
- Property: "PreferedAngleX", "double", "",0
- Property: "PreferedAngleY", "double", "",0
- Property: "PreferedAngleZ", "double", "",0
- Property: "InheritType", "enum", "",0
- Property: "ScalingActive", "bool", "",0
- Property: "ScalingMin", "Vector3D", "",1,1,1
- Property: "ScalingMax", "Vector3D", "",1,1,1
- Property: "ScalingMinX", "bool", "",0
- Property: "ScalingMinY", "bool", "",0
- Property: "ScalingMinZ", "bool", "",0
- Property: "ScalingMaxX", "bool", "",0
- Property: "ScalingMaxY", "bool", "",0
- Property: "ScalingMaxZ", "bool", "",0
- Property: "GeometricTranslation", "Vector3D", "",0,0,0
- Property: "GeometricRotation", "Vector3D", "",0,0,0
- Property: "GeometricScaling", "Vector3D", "",1,1,1
- Property: "LookAtProperty", "object", ""
- Property: "UpVectorProperty", "object", ""
- Property: "Show", "bool", "",1
- Property: "NegativePercentShapeSupport", "bool", "",1
- Property: "DefaultAttributeIndex", "int", "",0
- Property: "Color", "Color", "A",0.8,0.8,0.8
- Property: "Size", "double", "",100
- Property: "Look", "enum", "",1
- }
- MultiLayer: 0
- MultiTake: 1
- Shading: Y
- Culling: "CullingOff"
- Vertices: 15.156249,15.156249,-15.156249,15.156249,-15.156249,-15.156249,-15.156251,-15.156248,-15.156249,-15.156244,15.156255,-15.156249,15.156257,15.156241,15.156249,15.156240,-15.156259,15.156249,-15.156255,-15.156244,15.156249
- ,-15.156249,15.156249,15.156249
- PolygonVertexIndex: 0,1,2,-4,4,7,6,-6,0,4,5,-2,1,5,6,-3,2,6,7,-4,4,0,3,-8
- Edges:
- GeometryVersion: 124
- LayerElementNormal: 0 {
- Version: 101
- Name: ""
- MappingInformationType: "ByVertice"
- ReferenceInformationType: "Direct"
- Normals: 0.577349185943604,0.577349185943604,-0.577349185943604,0.577349185943604,-0.577349185943604,-0.577349185943604
- ,-0.577349185943604,-0.577349185943604,-0.577349185943604,-0.577349185943604,0.577349185943604,-0.577349185943604
- ,0.577349185943604,0.577349185943604,0.577349185943604,0.577349185943604,-0.577349185943604,0.577349185943604
- ,-0.577349185943604,-0.577349185943604,0.577349185943604,-0.577349185943604,0.577349185943604,0.577349185943604
- }
- LayerElementSmoothing: 0 {
- Version: 102
- Name: ""
- MappingInformationType: "ByPolygon"
- ReferenceInformationType: "Direct"
- Smoothing: 0,0,0,0,0,0
- }
- LayerElementMaterial: 0 {
- Version: 101
- Name: ""
- MappingInformationType: "AllSame"
- ReferenceInformationType: "IndexToDirect"
- Materials: 0
- }
- Layer: 0 {
- Version: 100
- LayerElement: {
- Type: "LayerElementNormal"
- TypedIndex: 0
- }
- LayerElement: {
- Type: "LayerElementMaterial"
- TypedIndex: 0
- }
- LayerElement: {
- Type: "LayerElementSmoothing"
- TypedIndex: 0
- }
- }
- }
- Material: "Material::Material", "" {
- Version: 102
- ShadingModel: "lambert"
- MultiLayer: 0
- Properties60: {
- Property: "ShadingModel", "KString", "", "Lambert"
- Property: "MultiLayer", "bool", "",0
- Property: "EmissiveColor", "ColorRGB", "",0.8000,0.8000,0.8000
- Property: "EmissiveFactor", "double", "",0.0000
- Property: "AmbientColor", "ColorRGB", "",0.0000,0.0000,0.0000
- Property: "AmbientFactor", "double", "",1.0000
- Property: "DiffuseColor", "ColorRGB", "",0.8000,0.8000,0.8000
- Property: "DiffuseFactor", "double", "",0.8000
- Property: "Bump", "Vector3D", "",0,0,0
- Property: "TransparentColor", "ColorRGB", "",1,1,1
- Property: "TransparencyFactor", "double", "",0.0000
- Property: "SpecularColor", "ColorRGB", "",1.0000,1.0000,1.0000
- Property: "SpecularFactor", "double", "",0.2500
- Property: "ShininessExponent", "double", "",80.0
- Property: "ReflectionColor", "ColorRGB", "",0,0,0
- Property: "ReflectionFactor", "double", "",1
- Property: "Emissive", "ColorRGB", "",0,0,0
- Property: "Ambient", "ColorRGB", "",0.0,0.0,0.0
- Property: "Diffuse", "ColorRGB", "",0.8,0.8,0.8
- Property: "Specular", "ColorRGB", "",1.0,1.0,1.0
- Property: "Shininess", "double", "",9.6
- Property: "Opacity", "double", "",1.0
- Property: "Reflectivity", "double", "",0
- }
- }
- Material: "Material::unnamed", "" {
- Version: 102
- ShadingModel: "phong"
- MultiLayer: 0
- Properties60: {
- Property: "ShadingModel", "KString", "", "Phong"
- Property: "MultiLayer", "bool", "",0
- Property: "EmissiveColor", "ColorRGB", "",0.8000,0.8000,0.8000
- Property: "EmissiveFactor", "double", "",0.0000
- Property: "AmbientColor", "ColorRGB", "",0.0000,0.0000,0.0000
- Property: "AmbientFactor", "double", "",0.5000
- Property: "DiffuseColor", "ColorRGB", "",0.8000,0.8000,0.8000
- Property: "DiffuseFactor", "double", "",1.0000
- Property: "Bump", "Vector3D", "",0,0,0
- Property: "TransparentColor", "ColorRGB", "",1,1,1
- Property: "TransparencyFactor", "double", "",0.0000
- Property: "SpecularColor", "ColorRGB", "",0.8000,0.8000,0.8000
- Property: "SpecularFactor", "double", "",0.2000
- Property: "ShininessExponent", "double", "",80.0
- Property: "ReflectionColor", "ColorRGB", "",0,0,0
- Property: "ReflectionFactor", "double", "",1
- Property: "Emissive", "ColorRGB", "",0,0,0
- Property: "Ambient", "ColorRGB", "",0.0,0.0,0.0
- Property: "Diffuse", "ColorRGB", "",0.8,0.8,0.8
- Property: "Specular", "ColorRGB", "",0.8,0.8,0.8
- Property: "Shininess", "double", "",20.0
- Property: "Opacity", "double", "",1.0
- Property: "Reflectivity", "double", "",0
- }
- }
- Pose: "Pose::BIND_POSES", "BindPose" {
- Type: "BindPose"
- Version: 100
- Properties60: {
- }
- NbPoseNodes: 1
- PoseNode: {
- Node: "Model::Cube"
- Matrix: 0.000000075497901,0.000000000000000,-1.000000000000000,0.000000000000000,-1.000000000000000,0.000000000000000,-0.000000075497901,0.000000000000000,0.000000000000000,1.000000000000000,0.000000000000000,0.000000000000000,0.000000000000000,0.000000000000000,0.000000000000000,1.000000000000000
- }
- }
- GlobalSettings: {
- Version: 1000
- Properties60: {
- Property: "UpAxis", "int", "",1
- Property: "UpAxisSign", "int", "",1
- Property: "FrontAxis", "int", "",2
- Property: "FrontAxisSign", "int", "",1
- Property: "CoordAxis", "int", "",0
- Property: "CoordAxisSign", "int", "",1
- Property: "UnitScaleFactor", "double", "",1
- }
- }
-}
-
-; Object relations
-;------------------------------------------------------------------
-
-Relations: {
- Model: "Model::Cube", "Mesh" {
- }
- Model: "Model::Producer Perspective", "Camera" {
- }
- Model: "Model::Producer Top", "Camera" {
- }
- Model: "Model::Producer Bottom", "Camera" {
- }
- Model: "Model::Producer Front", "Camera" {
- }
- Model: "Model::Producer Back", "Camera" {
- }
- Model: "Model::Producer Right", "Camera" {
- }
- Model: "Model::Producer Left", "Camera" {
- }
- Model: "Model::Camera Switcher", "CameraSwitcher" {
- }
- Material: "Material::Material", "" {
- }
- Material: "Material::unnamed", "" {
- }
-}
-
-; Object connections
-;------------------------------------------------------------------
-
-Connections: {
- Connect: "OO", "Model::Cube", "Model::Scene"
- Connect: "OO", "Material::Material", "Model::Cube"
-}
-;Takes and animation section
-;----------------------------------------------------
-
-Takes: {
- Current: ""
-}
-;Version 5 settings
-;------------------------------------------------------------------
-
-Version5: {
- AmbientRenderSettings: {
- Version: 101
- AmbientLightColor: 0.0,0.0,0.0,0
- }
- FogOptions: {
- FogEnable: 0
- FogMode: 0
- FogDensity: 0.000
- FogStart: 5.000
- FogEnd: 25.000
- FogColor: 0.1,0.1,0.1,1
- }
- Settings: {
- FrameRate: "24"
- TimeFormat: 1
- SnapOnFrames: 0
- ReferenceTimeIndex: -1
- TimeLineStartTime: 0
- TimeLineStopTime: 479181389250
- }
- RendererSetting: {
- DefaultCamera: "Producer Perspective"
- DefaultViewingMode: 0
- }
-}
diff --git a/Data/Meshes/cube.fbx.json b/Data/Meshes/cube.fbx.json
deleted file mode 100644
index 6ffb22f20..000000000
--- a/Data/Meshes/cube.fbx.json
+++ /dev/null
@@ -1,9 +0,0 @@
-[
- {
- "Helium::Mesh": {
- "m_materials": [
- "/Materials:TestBull"
- ]
- }
- }
-]
\ No newline at end of file
diff --git a/Data/Meshes/sphere.fbx b/Data/Meshes/sphere.fbx
deleted file mode 100644
index 7c921d4d3..000000000
--- a/Data/Meshes/sphere.fbx
+++ /dev/null
@@ -1,416 +0,0 @@
-; FBX 6.1.0 project file
-; Created by Blender FBX Exporter
-; for support mail: ideasman42@gmail.com
-; ----------------------------------------------------
-
-FBXHeaderExtension: {
- FBXHeaderVersion: 1003
- FBXVersion: 6100
- CreationTimeStamp: {
- Version: 1000
- Year: 2013
- Month: 06
- Day: 20
- Hour: 03
- Minute: 12
- Second: 12
- Millisecond: 0
- }
- Creator: "FBX SDK/FBX Plugins build 20070228"
- OtherFlags: {
- FlagPLE: 0
- }
-}
-CreationTime: "2013-06-20 03:12:12:000"
-Creator: "Blender version 2.67 (sub 0)"
-
-; Object definitions
-;------------------------------------------------------------------
-
-Definitions: {
- Version: 100
- Count: 3
- ObjectType: "Model" {
- Count: 1
- }
- ObjectType: "Geometry" {
- Count: 1
- }
- ObjectType: "Material" {
- Count: 1
- }
- ObjectType: "Pose" {
- Count: 1
- }
- ObjectType: "GlobalSettings" {
- Count: 1
- }
-}
-
-; Object properties
-;------------------------------------------------------------------
-
-Objects: {
- Model: "Model::Icosphere", "Mesh" {
- Version: 232
- Properties60: {
- Property: "QuaternionInterpolate", "bool", "",0
- Property: "Visibility", "Visibility", "A+",1
- Property: "Lcl Translation", "Lcl Translation", "A+",0.000000000000000,0.000000000000000,0.000000000000000
- Property: "Lcl Rotation", "Lcl Rotation", "A+",-90.000009334538021,0.000000000000000,0.000000000000000
- Property: "Lcl Scaling", "Lcl Scaling", "A+",1.000000000000000,1.000000000000000,1.000000000000000
- Property: "RotationOffset", "Vector3D", "",0,0,0
- Property: "RotationPivot", "Vector3D", "",0,0,0
- Property: "ScalingOffset", "Vector3D", "",0,0,0
- Property: "ScalingPivot", "Vector3D", "",0,0,0
- Property: "TranslationActive", "bool", "",0
- Property: "TranslationMin", "Vector3D", "",0,0,0
- Property: "TranslationMax", "Vector3D", "",0,0,0
- Property: "TranslationMinX", "bool", "",0
- Property: "TranslationMinY", "bool", "",0
- Property: "TranslationMinZ", "bool", "",0
- Property: "TranslationMaxX", "bool", "",0
- Property: "TranslationMaxY", "bool", "",0
- Property: "TranslationMaxZ", "bool", "",0
- Property: "RotationOrder", "enum", "",0
- Property: "RotationSpaceForLimitOnly", "bool", "",0
- Property: "AxisLen", "double", "",10
- Property: "PreRotation", "Vector3D", "",0,0,0
- Property: "PostRotation", "Vector3D", "",0,0,0
- Property: "RotationActive", "bool", "",0
- Property: "RotationMin", "Vector3D", "",0,0,0
- Property: "RotationMax", "Vector3D", "",0,0,0
- Property: "RotationMinX", "bool", "",0
- Property: "RotationMinY", "bool", "",0
- Property: "RotationMinZ", "bool", "",0
- Property: "RotationMaxX", "bool", "",0
- Property: "RotationMaxY", "bool", "",0
- Property: "RotationMaxZ", "bool", "",0
- Property: "RotationStiffnessX", "double", "",0
- Property: "RotationStiffnessY", "double", "",0
- Property: "RotationStiffnessZ", "double", "",0
- Property: "MinDampRangeX", "double", "",0
- Property: "MinDampRangeY", "double", "",0
- Property: "MinDampRangeZ", "double", "",0
- Property: "MaxDampRangeX", "double", "",0
- Property: "MaxDampRangeY", "double", "",0
- Property: "MaxDampRangeZ", "double", "",0
- Property: "MinDampStrengthX", "double", "",0
- Property: "MinDampStrengthY", "double", "",0
- Property: "MinDampStrengthZ", "double", "",0
- Property: "MaxDampStrengthX", "double", "",0
- Property: "MaxDampStrengthY", "double", "",0
- Property: "MaxDampStrengthZ", "double", "",0
- Property: "PreferedAngleX", "double", "",0
- Property: "PreferedAngleY", "double", "",0
- Property: "PreferedAngleZ", "double", "",0
- Property: "InheritType", "enum", "",0
- Property: "ScalingActive", "bool", "",0
- Property: "ScalingMin", "Vector3D", "",1,1,1
- Property: "ScalingMax", "Vector3D", "",1,1,1
- Property: "ScalingMinX", "bool", "",0
- Property: "ScalingMinY", "bool", "",0
- Property: "ScalingMinZ", "bool", "",0
- Property: "ScalingMaxX", "bool", "",0
- Property: "ScalingMaxY", "bool", "",0
- Property: "ScalingMaxZ", "bool", "",0
- Property: "GeometricTranslation", "Vector3D", "",0,0,0
- Property: "GeometricRotation", "Vector3D", "",0,0,0
- Property: "GeometricScaling", "Vector3D", "",1,1,1
- Property: "LookAtProperty", "object", ""
- Property: "UpVectorProperty", "object", ""
- Property: "Show", "bool", "",1
- Property: "NegativePercentShapeSupport", "bool", "",1
- Property: "DefaultAttributeIndex", "int", "",0
- Property: "Color", "Color", "A",0.8,0.8,0.8
- Property: "Size", "double", "",100
- Property: "Look", "enum", "",1
- }
- MultiLayer: 0
- MultiTake: 1
- Shading: Y
- Culling: "CullingOff"
- Vertices: 0.000000,0.000000,-20.000004,14.472150,-10.514508,-8.944392,-5.527761,-17.012989,-8.944399,-17.888529,0.000000,-8.944314,-5.527761,17.012989,-8.944399,14.472150,10.514508,-8.944392,5.527761,-17.012989,8.944399
- ,-14.472150,-10.514508,8.944392,-14.472150,10.514508,8.944392,5.527761,17.012989,8.944399,17.888529,0.000000,8.944314,0.000000,0.000000,20.000004,4.063619,-2.952358,-19.358997,8.506455,-6.180229,-17.013088
- ,12.190936,-8.857130,-13.150380,10.638820,-13.634252,-10.046037,5.257378,-16.180237,-10.514755,-0.592786,-17.283688,-10.046041,-4.656432,-14.331265,-13.150388,-3.249112,-9.999907,-17.013094,-1.552133,-4.777055,-19.358997
- ,4.063619,2.952358,-19.358997,8.506455,6.180229,-17.013088,12.190936,8.857130,-13.150380,16.254589,5.904756,-10.046015,17.012962,0.000000,-10.514721,16.254589,-5.904756,-10.046015,-9.679430,-14.331295,-10.046037
- ,-13.763791,-9.999941,-10.514727,-16.621017,-4.777069,-10.045976,-15.068837,0.000000,-13.150297,-10.514598,0.000000,-17.013039,-5.022941,0.000000,-19.358982,-16.621017,4.777070,-10.045976,-13.763791,9.999941,-10.514727
- ,-9.679430,14.331295,-10.046037,-4.656432,14.331265,-13.150388,-3.249112,9.999907,-17.013094,-1.552133,4.777055,-19.358997,-0.592786,17.283688,-10.046041,5.257378,16.180237,-10.514755,10.638820,13.634252,-10.046037
- ,17.213957,8.857153,-5.023018,19.021160,6.180254,0.000000,19.132519,2.952368,5.022990,19.132519,-2.952368,5.022990,19.021160,-6.180254,-0.000000,17.213957,-8.857153,-5.023018,13.743175,-13.634310,-5.023040
- ,11.755715,-16.180338,0.000000,8.720139,-17.283762,5.023042,3.104303,-19.108446,5.023032,0.000000,-20.000004,-0.000000,-3.104303,-19.108446,-5.023032,-8.720139,-17.283762,-5.023042,-11.755715,-16.180340,0.000000
- ,-13.743174,-13.634310,5.023039,-17.213957,-8.857153,5.023018,-19.021160,-6.180254,-0.000000,-19.132519,-2.952368,-5.022990,-19.132519,2.952368,-5.022990,-19.021160,6.180254,0.000000,-17.213957,8.857153,5.023018
- ,-13.743175,13.634310,5.023040,-11.755715,16.180338,-0.000000,-8.720139,17.283762,-5.023042,-3.104303,19.108446,-5.023032,0.000000,20.000004,0.000000,3.104303,19.108446,5.023032,8.720139,17.283762,5.023042
- ,11.755715,16.180340,-0.000000,13.743174,13.634310,-5.023039,16.621017,-4.777070,10.045976,13.763791,-9.999941,10.514727,9.679430,-14.331295,10.046037,0.592786,-17.283688,10.046041,-5.257378,-16.180237,10.514755
- ,-10.638820,-13.634252,10.046037,-16.254589,-5.904756,10.046015,-17.012962,0.000000,10.514721,-16.254589,5.904756,10.046015,-10.638820,13.634252,10.046037,-5.257378,16.180237,10.514755,0.592786,17.283688,10.046041
- ,9.679430,14.331295,10.046037,13.763791,9.999941,10.514727,16.621017,4.777069,10.045976,15.068837,0.000000,13.150297,10.514598,0.000000,17.013039,5.022941,0.000000,19.358982,1.552133,-4.777056,19.358997
- ,3.249112,-9.999907,17.013094,4.656432,-14.331265,13.150388,-4.063619,-2.952358,19.358997,-8.506455,-6.180229,17.013088,-12.190936,-8.857130,13.150380,-4.063619,2.952358,19.358997,-8.506455,6.180229,17.013088
- ,-12.190936,8.857130,13.150380,1.552133,4.777056,19.358997,3.249112,9.999907,17.013094,4.656432,14.331265,13.150388,1.055807,-13.763710,-14.472239,2.763974,-8.506414,-17.888588,7.236101,-11.755586,-14.472221
- ,13.416344,3.249137,-14.472216,13.416354,-3.249156,-14.472205,8.944221,-0.000015,-17.888575,-12.763895,-5.257275,-14.472188,-7.236029,-5.257288,-17.888573,-8.944212,-10.514575,-14.472213,-8.944214,10.514544,-14.472234
- ,-7.236026,5.257252,-17.888582,-12.763898,5.257258,-14.472193,7.236071,11.755588,-14.472236,2.763937,8.506429,-17.888586,1.055782,13.763728,-14.472221,20.000004,0.000000,0.000000,18.944269,-3.249152,-5.527922
- ,18.944269,3.249152,-5.527922,6.180346,-19.021133,0.000000,2.763983,-19.021103,-5.527952,8.944314,-17.012970,-5.527956,-16.180372,-11.755669,0.000000,-17.236069,-8.506481,-5.527928,-13.416384,-13.763817,-5.527947
- ,-16.180372,11.755669,-0.000000,-13.416384,13.763817,-5.527947,-17.236067,8.506481,-5.527928,6.180346,19.021133,-0.000000,8.944314,17.012972,-5.527956,2.763982,19.021103,-5.527952,13.416411,-13.763799,5.527925
- ,16.180378,-11.755662,-0.000038,17.236086,-8.506466,5.527890,-8.944318,-17.012972,5.527938,-6.180345,-19.021133,-0.000016,-2.763986,-19.021107,5.527937,-18.944269,3.249154,5.527919,-20.000004,-0.000007,0.000012
- ,-18.944263,-3.249158,5.527933,-2.763971,19.021107,5.527943,-6.180331,19.021137,-0.000010,-8.944303,17.012980,5.527946,17.236088,8.506441,5.527925,16.180389,11.755645,0.000000,13.416414,13.763786,5.527949
- ,7.236008,-5.257260,17.888588,8.944186,-10.514565,14.472237,12.763874,-5.257283,14.472205,-2.763947,-8.506392,17.888603,-7.236075,-11.755571,14.472248,-1.055792,-13.763701,14.472251,-8.944200,0.000000,17.888586
- ,-13.416335,3.249141,14.472220,-13.416335,-3.249141,14.472220,-2.763946,8.506392,17.888603,-1.055792,13.763701,14.472251,-7.236075,11.755571,14.472248,7.236008,5.257260,17.888588,12.763874,5.257284,14.472205
- ,8.944185,10.514565,14.472236
- PolygonVertexIndex: 0,12,-21,1,14,-27,0,20,-33,0,32,-39,0,38,-22,1,26,-48,2,17,-54,3,29,-60,4,35,-66,5,41,-72,1,47,-49,2,53,-55,3,59,-61
- ,4,65,-67,5,71,-43,6,74,-93,7,77,-96,8,80,-99,9,83,-102,10,86,-88,18,17,-3,19,102,-19,20,103,-20,18,102,-18,102,16,-18,19,103,-103
- ,103,104,-103,102,104,-17,104,15,-17,20,12,-104,12,13,-104,103,13,-105,13,14,-105,104,14,-16,14,1,-16,24,23,-6,25,105,-25,26,106,-26,24,105,-24
- ,105,22,-24,25,106,-106,106,107,-106,105,107,-23,107,21,-23,26,14,-107,14,13,-107,106,13,-108,13,12,-108,107,12,-22,12,0,-22,30,29,-4,31,108,-31
- ,32,109,-32,30,108,-30,108,28,-30,31,109,-109,109,110,-109,108,110,-29,110,27,-29,32,20,-110,20,19,-110,109,19,-111,19,18,-111,110,18,-28,18,2,-28
- ,36,35,-5,37,111,-37,38,112,-38,36,111,-36,111,34,-36,37,112,-112,112,113,-112,111,113,-35,113,33,-35,38,32,-113,32,31,-113,112,31,-114,31,30,-114
- ,113,30,-34,30,3,-34,23,41,-6,22,114,-24,21,115,-23,23,114,-42,114,40,-42,22,115,-115,115,116,-115,114,116,-41,116,39,-41,21,38,-116,38,37,-116
- ,115,37,-117,37,36,-117,116,36,-40,36,4,-40,45,44,-11,46,117,-46,47,118,-47,45,117,-45,117,43,-45,46,118,-118,118,119,-118,117,119,-44,119,42,-44
- ,47,26,-119,26,25,-119,118,25,-120,25,24,-120,119,24,-43,24,5,-43,51,50,-7,52,120,-52,53,121,-53,51,120,-51,120,49,-51,52,121,-121,121,122,-121
- ,120,122,-50,122,48,-50,53,17,-122,17,16,-122,121,16,-123,16,15,-123,122,15,-49,15,1,-49,57,56,-8,58,123,-58,59,124,-59,57,123,-57,123,55,-57
- ,58,124,-124,124,125,-124,123,125,-56,125,54,-56,59,29,-125,29,28,-125,124,28,-126,28,27,-126,125,27,-55,27,2,-55,63,62,-9,64,126,-64,65,127,-65
- ,63,126,-63,126,61,-63,64,127,-127,127,128,-127,126,128,-62,128,60,-62,65,35,-128,35,34,-128,127,34,-129,34,33,-129,128,33,-61,33,3,-61,69,68,-10
- ,70,129,-70,71,130,-71,69,129,-69,129,67,-69,70,130,-130,130,131,-130,129,131,-68,131,66,-68,71,41,-131,41,40,-131,130,40,-132,40,39,-132,131,39,-67
- ,39,4,-67,50,74,-7,49,132,-51,48,133,-50,50,132,-75,132,73,-75,49,133,-133,133,134,-133,132,134,-74,134,72,-74,48,47,-134,47,46,-134,133,46,-135
- ,46,45,-135,134,45,-73,45,10,-73,56,77,-8,55,135,-57,54,136,-56,56,135,-78,135,76,-78,55,136,-136,136,137,-136,135,137,-77,137,75,-77,54,53,-137
- ,53,52,-137,136,52,-138,52,51,-138,137,51,-76,51,6,-76,62,80,-9,61,138,-63,60,139,-62,62,138,-81,138,79,-81,61,139,-139,139,140,-139,138,140,-80
- ,140,78,-80,60,59,-140,59,58,-140,139,58,-141,58,57,-141,140,57,-79,57,7,-79,68,83,-10,67,141,-69,66,142,-68,68,141,-84,141,82,-84,67,142,-142
- ,142,143,-142,141,143,-83,143,81,-83,66,65,-143,65,64,-143,142,64,-144,64,63,-144,143,63,-82,63,8,-82,44,86,-11,43,144,-45,42,145,-44,44,144,-87
- ,144,85,-87,43,145,-145,145,146,-145,144,146,-86,146,84,-86,42,71,-146,71,70,-146,145,70,-147,70,69,-147,146,69,-85,69,9,-85,90,89,-12,91,147,-91
- ,92,148,-92,90,147,-90,147,88,-90,91,148,-148,148,149,-148,147,149,-89,149,87,-89,92,74,-149,74,73,-149,148,73,-150,73,72,-150,149,72,-88,72,10,-88
- ,93,90,-12,94,150,-94,95,151,-95,93,150,-91,150,91,-91,94,151,-151,151,152,-151,150,152,-92,152,92,-92,95,77,-152,77,76,-152,151,76,-153,76,75,-153
- ,152,75,-93,75,6,-93,96,93,-12,97,153,-97,98,154,-98,96,153,-94,153,94,-94,97,154,-154,154,155,-154,153,155,-95,155,95,-95,98,80,-155,80,79,-155
- ,154,79,-156,79,78,-156,155,78,-96,78,7,-96,99,96,-12,100,156,-100,101,157,-101,99,156,-97,156,97,-97,100,157,-157,157,158,-157,156,158,-98,158,98,-98
- ,101,83,-158,83,82,-158,157,82,-159,82,81,-159,158,81,-99,81,8,-99,89,99,-12,88,159,-90,87,160,-89,89,159,-100,159,100,-100,88,160,-160,160,161,-160
- ,159,161,-101,161,101,-101,87,86,-161,86,85,-161,160,85,-162,85,84,-162,161,84,-102,84,9,-102
- Edges:
- GeometryVersion: 124
- LayerElementNormal: 0 {
- Version: 101
- Name: ""
- MappingInformationType: "ByVertice"
- ReferenceInformationType: "Direct"
- Normals: 0.000000000000000,0.000000000000000,-1.000000000000000,0.723593831062317,-0.525711834430695,-0.447218239307404
- ,-0.276375621557236,-0.850642442703247,-0.447218239307404,-0.894405961036682,0.000000000000000,-0.447187721729279
- ,-0.276375621557236,0.850642442703247,-0.447218239307404,0.723593831062317,0.525711834430695,-0.447218239307404
- ,0.276375621557236,-0.850642442703247,0.447218239307404,-0.723593831062317,-0.525711834430695,0.447218239307404
- ,-0.723593831062317,0.525711834430695,0.447218239307404,0.276375621557236,0.850642442703247,0.447218239307404
- ,0.894405961036682,0.000000000000000,0.447187721729279,0.000000000000000,0.000000000000000,1.000000000000000
- ,0.210943937301636,-0.153263956308365,-0.965391993522644,0.425305962562561,-0.308999896049500,-0.850642442703247
- ,0.604205429553986,-0.438978254795074,-0.664967775344849,0.523636579513550,-0.686971664428711,-0.503799557685852
- ,0.262855917215347,-0.808984637260437,-0.525711834430695,-0.019837031140924,-0.863551735877991,-0.503799557685852
- ,-0.230780974030495,-0.710287809371948,-0.664967775344849,-0.162450030446053,-0.499984741210938,-0.850642442703247
- ,-0.080568864941597,-0.247962892055511,-0.965391993522644,0.210943937301636,0.153263956308365,-0.965391993522644
- ,0.425305962562561,0.308999896049500,-0.850642442703247,0.604205429553986,0.438978254795074,-0.664967775344849
- ,0.815179884433746,0.285714298486710,-0.503799557685852,0.850642442703247,0.000000000000000,-0.525711834430695
- ,0.815179884433746,-0.285714298486710,-0.503799557685852,-0.491531103849411,-0.710287809371948,-0.503799557685852
- ,-0.688161849975586,-0.499984741210938,-0.525711834430695,-0.827448368072510,-0.247962892055511,-0.503799557685852
- ,-0.746848940849304,0.000000000000000,-0.664967775344849,-0.525711834430695,0.000000000000000,-0.850642442703247
- ,-0.260750144720078,0.000000000000000,-0.965391993522644,-0.827448368072510,0.247962892055511,-0.503799557685852
- ,-0.688161849975586,0.499984741210938,-0.525711834430695,-0.491531103849411,0.710287809371948,-0.503799557685852
- ,-0.230780974030495,0.710287809371948,-0.664967775344849,-0.162450030446053,0.499984741210938,-0.850642442703247
- ,-0.080568864941597,0.247962892055511,-0.965391993522644,-0.019837031140924,0.863551735877991,-0.503799557685852
- ,0.262855917215347,0.808984637260437,-0.525711834430695,0.523636579513550,0.686971664428711,-0.503799557685852
- ,0.864986121654510,0.438978254795074,-0.243049412965775,0.951048314571381,0.308999896049500,0.000000000000000
- ,0.957823395729065,0.153263956308365,0.243049412965775,0.957823395729065,-0.153263956308365,0.243049412965775
- ,0.951048314571381,-0.308999896049500,0.000000000000000,0.864986121654510,-0.438978254795074,-0.243049412965775
- ,0.684804856777191,-0.686971664428711,-0.243049412965775,0.587755978107452,-0.809015154838562,0.000000000000000
- ,0.441724896430969,-0.863582253456116,0.243049412965775,0.150212109088898,-0.958281219005585,0.243049412965775
- ,0.000000000000000,-1.000000000000000,0.000000000000000,-0.150212109088898,-0.958281219005585,-0.243049412965775
- ,-0.441724896430969,-0.863582253456116,-0.243049412965775,-0.587755978107452,-0.809015154838562,0.000000000000000
- ,-0.684804856777191,-0.686971664428711,0.243049412965775,-0.864986121654510,-0.438978254795074,0.243049412965775
- ,-0.951048314571381,-0.308999896049500,0.000000000000000,-0.957823395729065,-0.153263956308365,-0.243049412965775
- ,-0.957823395729065,0.153263956308365,-0.243049412965775,-0.951048314571381,0.308999896049500,0.000000000000000
- ,-0.864986121654510,0.438978254795074,0.243049412965775,-0.684804856777191,0.686971664428711,0.243049412965775
- ,-0.587755978107452,0.809015154838562,0.000000000000000,-0.441724896430969,0.863582253456116,-0.243049412965775
- ,-0.150212109088898,0.958281219005585,-0.243049412965775,0.000000000000000,1.000000000000000,0.000000000000000
- ,0.150212109088898,0.958281219005585,0.243049412965775,0.441724896430969,0.863582253456116,0.243049412965775
- ,0.587755978107452,0.809015154838562,0.000000000000000,0.684804856777191,0.686971664428711,-0.243049412965775
- ,0.827448368072510,-0.247962892055511,0.503799557685852,0.688161849975586,-0.499984741210938,0.525711834430695
- ,0.491531103849411,-0.710287809371948,0.503799557685852,0.019837031140924,-0.863551735877991,0.503799557685852
- ,-0.262855917215347,-0.808984637260437,0.525711834430695,-0.523636579513550,-0.686971664428711,0.503799557685852
- ,-0.815179884433746,-0.285714298486710,0.503799557685852,-0.850642442703247,0.000000000000000,0.525711834430695
- ,-0.815179884433746,0.285714298486710,0.503799557685852,-0.523636579513550,0.686971664428711,0.503799557685852
- ,-0.262855917215347,0.808984637260437,0.525711834430695,0.019837031140924,0.863551735877991,0.503799557685852
- ,0.491531103849411,0.710287809371948,0.503799557685852,0.688161849975586,0.499984741210938,0.525711834430695
- ,0.827448368072510,0.247962892055511,0.503799557685852,0.746848940849304,0.000000000000000,0.664967775344849
- ,0.525711834430695,0.000000000000000,0.850642442703247,0.260750144720078,0.000000000000000,0.965391993522644
- ,0.080568864941597,-0.247962892055511,0.965391993522644,0.162450030446053,-0.499984741210938,0.850642442703247
- ,0.230780974030495,-0.710287809371948,0.664967775344849,-0.210943937301636,-0.153263956308365,0.965391993522644
- ,-0.425305962562561,-0.308999896049500,0.850642442703247,-0.604205429553986,-0.438978254795074,0.664967775344849
- ,-0.210943937301636,0.153263956308365,0.965391993522644,-0.425305962562561,0.308999896049500,0.850642442703247
- ,-0.604205429553986,0.438978254795074,0.664967775344849,0.080568864941597,0.247962892055511,0.965391993522644
- ,0.162450030446053,0.499984741210938,0.850642442703247,0.230780974030495,0.710287809371948,0.664967775344849
- ,0.059205908328295,-0.683492541313171,-0.727530717849731,0.140629291534424,-0.432844012975693,-0.890408039093018
- ,0.353831589221954,-0.587755978107452,-0.727530717849731,0.668324828147888,0.154881432652473,-0.727530717849731
- ,0.668324828147888,-0.154881432652473,-0.727530717849731,0.455122530460358,0.000000000000000,-0.890408039093018
- ,-0.631733119487762,-0.267494738101959,-0.727530717849731,-0.368205815553665,-0.267494738101959,-0.890408039093018
- ,-0.449629187583923,-0.518143236637115,-0.727530717849731,-0.449629187583923,0.518143236637115,-0.727530717849731
- ,-0.368205815553665,0.267494738101959,-0.890408039093018,-0.631733119487762,0.267494738101959,-0.727530717849731
- ,0.353831589221954,0.587755978107452,-0.727530717849731,0.140629291534424,0.432844012975693,-0.890408039093018
- ,0.059205908328295,0.683492541313171,-0.727530717849731,0.999938964843750,0.000000000000000,-0.008850367739797
- ,0.949613928794861,-0.154881432652473,-0.272408217191696,0.949613928794861,0.154881432652473,-0.272408217191696
- ,0.308999896049500,-0.951017796993256,-0.008850367739797,0.146122619509697,-0.950987279415131,-0.272408217191696
- ,0.440748304128647,-0.855250716209412,-0.272408217191696,-0.808984637260437,-0.587755978107452,-0.008850367739797
- ,-0.859309673309326,-0.432844012975693,-0.272408217191696,-0.677205741405487,-0.683492541313171,-0.272408217191696
- ,-0.808984637260437,0.587755978107452,-0.008850367739797,-0.677205741405487,0.683492541313171,-0.272408217191696
- ,-0.859309673309326,0.432844012975693,-0.272408217191696,0.308999896049500,0.951017796993256,-0.008850367739797
- ,0.440748304128647,0.855250716209412,-0.272408217191696,0.146122619509697,0.950987279415131,-0.272408217191696
- ,0.677205741405487,-0.683492541313171,0.272408217191696,0.808984637260437,-0.587755978107452,0.008850367739797
- ,0.859309673309326,-0.432844012975693,0.272408217191696,-0.440748304128647,-0.855250716209412,0.272408217191696
- ,-0.308999896049500,-0.951017796993256,0.008850367739797,-0.146122619509697,-0.950987279415131,0.272408217191696
- ,-0.949613928794861,0.154881432652473,0.272408217191696,-0.999938964843750,0.000000000000000,0.008850367739797
- ,-0.949613928794861,-0.154881432652473,0.272408217191696,-0.146122619509697,0.950987279415131,0.272408217191696
- ,-0.308999896049500,0.951017796993256,0.008850367739797,-0.440748304128647,0.855250716209412,0.272408217191696
- ,0.859309673309326,0.432844012975693,0.272408217191696,0.808984637260437,0.587755978107452,0.008850367739797
- ,0.677205741405487,0.683492541313171,0.272408217191696,0.368205815553665,-0.267494738101959,0.890408039093018
- ,0.449629187583923,-0.518143236637115,0.727530717849731,0.631733119487762,-0.267494738101959,0.727530717849731
- ,-0.140629291534424,-0.432844012975693,0.890408039093018,-0.353831589221954,-0.587725460529327,0.727530717849731
- ,-0.059205908328295,-0.683492541313171,0.727530717849731,-0.455122530460358,0.000000000000000,0.890408039093018
- ,-0.668324828147888,0.154881432652473,0.727530717849731,-0.668324828147888,-0.154881432652473,0.727530717849731
- ,-0.140629291534424,0.432844012975693,0.890408039093018,-0.059205908328295,0.683492541313171,0.727530717849731
- ,-0.353831589221954,0.587725460529327,0.727530717849731,0.368205815553665,0.267494738101959,0.890408039093018
- ,0.631733119487762,0.267494738101959,0.727530717849731,0.449629187583923,0.518143236637115,0.727530717849731
- }
- LayerElementSmoothing: 0 {
- Version: 102
- Name: ""
- MappingInformationType: "ByPolygon"
- ReferenceInformationType: "Direct"
- Smoothing: 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
- ,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
- ,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
- ,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
- ,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
- ,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
- }
- Layer: 0 {
- Version: 100
- LayerElement: {
- Type: "LayerElementNormal"
- TypedIndex: 0
- }
- LayerElement: {
- Type: "LayerElementSmoothing"
- TypedIndex: 0
- }
- }
- }
- Material: "Material::unnamed", "" {
- Version: 102
- ShadingModel: "phong"
- MultiLayer: 0
- Properties60: {
- Property: "ShadingModel", "KString", "", "Phong"
- Property: "MultiLayer", "bool", "",0
- Property: "EmissiveColor", "ColorRGB", "",0.8000,0.8000,0.8000
- Property: "EmissiveFactor", "double", "",0.0000
- Property: "AmbientColor", "ColorRGB", "",0.0000,0.0000,0.0000
- Property: "AmbientFactor", "double", "",0.5000
- Property: "DiffuseColor", "ColorRGB", "",0.8000,0.8000,0.8000
- Property: "DiffuseFactor", "double", "",1.0000
- Property: "Bump", "Vector3D", "",0,0,0
- Property: "TransparentColor", "ColorRGB", "",1,1,1
- Property: "TransparencyFactor", "double", "",0.0000
- Property: "SpecularColor", "ColorRGB", "",0.8000,0.8000,0.8000
- Property: "SpecularFactor", "double", "",0.2000
- Property: "ShininessExponent", "double", "",80.0
- Property: "ReflectionColor", "ColorRGB", "",0,0,0
- Property: "ReflectionFactor", "double", "",1
- Property: "Emissive", "ColorRGB", "",0,0,0
- Property: "Ambient", "ColorRGB", "",0.0,0.0,0.0
- Property: "Diffuse", "ColorRGB", "",0.8,0.8,0.8
- Property: "Specular", "ColorRGB", "",0.8,0.8,0.8
- Property: "Shininess", "double", "",20.0
- Property: "Opacity", "double", "",1.0
- Property: "Reflectivity", "double", "",0
- }
- }
- Pose: "Pose::BIND_POSES", "BindPose" {
- Type: "BindPose"
- Version: 100
- Properties60: {
- }
- NbPoseNodes: 1
- PoseNode: {
- Node: "Model::Icosphere"
- Matrix: 0.000000075497901,0.000000000000000,-1.000000000000000,0.000000000000000,-1.000000000000000,0.000000000000000,-0.000000075497901,0.000000000000000,0.000000000000000,1.000000000000000,0.000000000000000,0.000000000000000,0.000000000000000,0.000000000000000,0.000000000000000,1.000000000000000
- }
- }
- GlobalSettings: {
- Version: 1000
- Properties60: {
- Property: "UpAxis", "int", "",1
- Property: "UpAxisSign", "int", "",1
- Property: "FrontAxis", "int", "",2
- Property: "FrontAxisSign", "int", "",1
- Property: "CoordAxis", "int", "",0
- Property: "CoordAxisSign", "int", "",1
- Property: "UnitScaleFactor", "double", "",1
- }
- }
-}
-
-; Object relations
-;------------------------------------------------------------------
-
-Relations: {
- Model: "Model::Icosphere", "Mesh" {
- }
- Model: "Model::Producer Perspective", "Camera" {
- }
- Model: "Model::Producer Top", "Camera" {
- }
- Model: "Model::Producer Bottom", "Camera" {
- }
- Model: "Model::Producer Front", "Camera" {
- }
- Model: "Model::Producer Back", "Camera" {
- }
- Model: "Model::Producer Right", "Camera" {
- }
- Model: "Model::Producer Left", "Camera" {
- }
- Model: "Model::Camera Switcher", "CameraSwitcher" {
- }
- Material: "Material::unnamed", "" {
- }
-}
-
-; Object connections
-;------------------------------------------------------------------
-
-Connections: {
- Connect: "OO", "Model::Icosphere", "Model::Scene"
-}
-;Takes and animation section
-;----------------------------------------------------
-
-Takes: {
- Current: ""
-}
-;Version 5 settings
-;------------------------------------------------------------------
-
-Version5: {
- AmbientRenderSettings: {
- Version: 101
- AmbientLightColor: 0.0,0.0,0.0,0
- }
- FogOptions: {
- FogEnable: 0
- FogMode: 0
- FogDensity: 0.000
- FogStart: 5.000
- FogEnd: 25.000
- FogColor: 0.1,0.1,0.1,1
- }
- Settings: {
- FrameRate: "24"
- TimeFormat: 1
- SnapOnFrames: 0
- ReferenceTimeIndex: -1
- TimeLineStartTime: 0
- TimeLineStopTime: 479181389250
- }
- RendererSetting: {
- DefaultCamera: "Producer Perspective"
- DefaultViewingMode: 0
- }
-}
diff --git a/Data/Meshes/sphere.fbx.json b/Data/Meshes/sphere.fbx.json
deleted file mode 100644
index 6ffb22f20..000000000
--- a/Data/Meshes/sphere.fbx.json
+++ /dev/null
@@ -1,9 +0,0 @@
-[
- {
- "Helium::Mesh": {
- "m_materials": [
- "/Materials:TestBull"
- ]
- }
- }
-]
\ No newline at end of file
diff --git a/Dependencies/Dependencies.lua b/Dependencies/Dependencies.lua
deleted file mode 100644
index 531cbdcdd..000000000
--- a/Dependencies/Dependencies.lua
+++ /dev/null
@@ -1,437 +0,0 @@
-local thisFileLocation = ...
-if thisFileLocation == nil then
- thisFileLocation = '.'
-end
-thisFileLocation = path.getdirectory( thisFileLocation )
-
-require( thisFileLocation .. '/Helium' )
-
-configuration {} -- just in case
-
--- core alphabetical!
-
-project "googletest"
- uuid "1DCBDADD-043A-4853-8118-5D437106309A"
- kind "StaticLib"
- language "C++"
- includedirs
- {
- "googletest/googletest/include",
- "googletest/googletest/include/internal",
- "googletest/googletest",
- }
- files
- {
- "googletest/googletest/include/**.h",
- "googletest/googletest/src/**.cc",
- }
- excludes
- {
- "googletest/googletest/src/gtest-all.cc",
- }
-
-project "mongo-c"
- uuid "2704694D-D087-4703-9D4F-124D56E17F3F"
- kind "StaticLib"
- language "C"
- defines
- {
- "MONGO_HAVE_STDINT=1",
- "MONGO_STATIC_BUILD=1",
- }
- files
- {
- "mongo-c/src/*.h",
- "mongo-c/src/*.c",
- }
-
-if _OPTIONS[ "core" ] then
- return
-end
-
--- non-core alphabetical!
-
-project "bullet"
- uuid "23112391-0616-46AF-B0C2-5325E8530FBC"
- kind "StaticLib"
- language "C++"
- includedirs
- {
- "bullet/src/",
- }
- files
- {
- "bullet/src/btBulletCollisionCommon.h",
- "bullet/src/btBulletDynamicsCommon.h",
- "bullet/src/LinearMath/**.cpp",
- "bullet/src/LinearMath/**.h",
- "bullet/src/BulletCollision/**.h",
- "bullet/src/BulletCollision/**.cpp",
- "bullet/src/BulletDynamics/**.h",
- "bullet/src/BulletDynamics/**.cpp",
- }
-
-project "freetype"
- uuid "53C96BED-38E8-4A1f-81E0-45D09AFD33EB"
- kind "StaticLib"
- language "C"
- defines
- {
- "_LIB",
- "FT2_BUILD_LIBRARY",
- }
- includedirs
- {
- "freetype/include",
- }
- files
- {
- "freetype/src/autofit/autofit.c",
- "freetype/src/bdf/bdf.c",
- "freetype/src/cff/cff.c",
- "freetype/src/base/ftbase.c",
- "freetype/src/base/ftbitmap.c",
- "freetype/src/cache/ftcache.c",
- "freetype/src/base/ftfstype.c",
- "freetype/src/base/ftgasp.c",
- "freetype/src/base/ftglyph.c",
- "freetype/src/gzip/ftgzip.c",
- "freetype/src/base/ftinit.c",
- "freetype/src/lzw/ftlzw.c",
- "freetype/src/base/ftstroke.c",
- "freetype/src/base/ftsystem.c",
- "freetype/src/smooth/smooth.c",
- "freetype/src/base/ftbbox.c",
- "freetype/src/base/ftmm.c",
- "freetype/src/base/ftpfr.c",
- "freetype/src/base/ftsynth.c",
- "freetype/src/base/fttype1.c",
- "freetype/src/base/ftwinfnt.c",
- "freetype/src/base/ftxf86.c",
- "freetype/src/base/ftlcdfil.c",
- "freetype/src/base/ftgxval.c",
- "freetype/src/base/ftotval.c",
- "freetype/src/base/ftpatent.c",
- "freetype/src/pcf/pcf.c",
- "freetype/src/pfr/pfr.c",
- "freetype/src/psaux/psaux.c",
- "freetype/src/pshinter/pshinter.c",
- "freetype/src/psnames/psmodule.c",
- "freetype/src/raster/raster.c",
- "freetype/src/sfnt/sfnt.c",
- "freetype/src/truetype/truetype.c",
- "freetype/src/type1/type1.c",
- "freetype/src/cid/type1cid.c",
- "freetype/src/type42/type42.c",
- "freetype/src/winfonts/winfnt.c",
- "freetype/include/ft2build.h",
- "freetype/include/freetype/config/ftconfig.h",
- "freetype/include/freetype/config/ftheader.h",
- "freetype/include/freetype/config/ftmodule.h",
- "freetype/include/freetype/config/ftoption.h",
- "freetype/include/freetype/config/ftstdlib.h",
- }
- configuration "windows"
- files
- {
- "freetype/builds/win32/ftdebug.c",
- }
-
-project "glfw"
- uuid "57AEB010-23D1-11E3-8224-0800200C9A66"
- kind "SharedLib"
- language "C"
-
- files
- {
- "glfw/include/GLFW/*.h",
- "glfw/src/*.h",
- "glfw/src/*.c",
- "glfw/deps/*.h",
- "glfw/deps/*.c",
- "glfw/deps/GL/*.h",
- }
-
- configuration "linux"
- defines
- {
- "_GLFW_BUILD_DLL=1",
- "_GLFW_X11=1",
- "_GLFW_GLX=1",
- "_GLFW_HAS_GLXGETPROCADDRESS=1",
- "_GLFW_HAS_DLOPEN=1",
- "_GLFW_VERSION_FULL=\"3.0.3\"",
- "_GLFW_USE_OPENGL=1",
- }
- excludes
- {
- "glfw/src/cocoa*",
- "glfw/src/win32*",
- "glfw/src/wgl*",
- "glfw/src/nsgl*",
- "glfw/src/egl*",
- "glfw/deps/GL/wglext.h",
- }
- links
- {
- "GL",
- "X11",
- "Xrandr",
- "Xi",
- }
-
- configuration "macosx"
- defines
- {
- "_GLFW_BUILD_DLL=1",
- "_GLFW_COCOA=1",
- "_GLFW_NSGL=1",
- "_GLFW_VERSION_FULL=\"3.0.3\"",
- "_GLFW_USE_OPENGL=1",
- }
- files
- {
- "glfw/src/*.m"
- }
- excludes
- {
- "glfw/src/win32*",
- "glfw/src/x11*",
- "glfw/src/glx*",
- "glfw/src/egl*",
- "glfw/src/wgl*",
- "glfw/deps/GL/wglext.h",
- }
- linkoptions
- {
- "-Wl,-install_name,@executable_path/libglfw.dylib", -- set the install name to load us from the folder of the loader
- "-framework OpenGL",
- "-framework AGL",
- "-framework IOKit",
- "-framework Cocoa",
- }
-
- -- Premake bug requires us to redefine version number differently on Windows.
- -- Bug: http://sourceforge.net/p/premake/bugs/275/
- configuration "windows"
- defines
- {
- "_GLFW_BUILD_DLL=1",
- "_GLFW_NO_DLOAD_WINMM=1",
- "_GLFW_WIN32=1",
- "_GLFW_WGL=1",
- "_GLFW_VERSION_FULL=\"3.0.3\"",
- "_GLFW_USE_OPENGL=1",
- }
- excludes
- {
- "glfw/src/cocoa*",
- "glfw/src/x11*",
- "glfw/src/glx*",
- "glfw/src/egl*",
- "glfw/src/nsgl*",
- }
- links
- {
- "opengl32",
- "winmm",
- }
-
- if not os.isfile( "glfw/src/config.h" ) then
- os.copyfile( "glfwconfig.h.prebuilt", "glfw/src/config.h" );
- end
-
- local file = io.open("../.git/modules/Dependencies/glfw/info/exclude", "w");
- file:write("src/config.h\n");
- file:close();
-
-project "glew"
- uuid "31858500-702D-11E3-981F-0800200C9A66"
- kind "SharedLib"
- language "C"
-
- includedirs
- {
- "glew/include"
- }
-
- files
- {
- "glew/include/GL/*.h",
- "glew/src/glew.c",
- "glew/src/glewinfo.c",
- }
-
- defines
- {
- "GLEW_BUILD=1",
- }
-
- configuration { "linux" }
- links
- {
- "GL",
- }
- configuration { "macosx" }
- linkoptions
- {
- "-Wl,-install_name,@executable_path/libglew.dylib", -- set the install name to load us from the folder of the loader
- "-framework OpenGL",
- "-framework AGL",
- "-framework Cocoa",
- }
- configuration { "windows" }
- links
- {
- "opengl32",
- }
- configuration{}
-
-project "libpng"
- uuid "46BA228E-C636-4468-9CBD-7CD4F12FBB33"
- kind "StaticLib"
- language "C++"
- includedirs
- {
- "zlib"
- }
- files
- {
- "libpng/*.h",
- "libpng/*.c",
- }
-
- if not os.isfile( "libpng/pnglibconf.h" ) then
- os.copyfile( "libpng/scripts/pnglibconf.h.prebuilt", "libpng/pnglibconf.h" );
- end
-
- local file = io.open("../.git/modules/Dependencies/libpng/info/exclude", "w");
- file:write("pnglibconf.h\n");
- file:close();
-
-project "nvtt"
- uuid "6753B918-F16E-4C13-8DA7-4F9A6DB58B77"
- kind "StaticLib"
- language "C++"
- includedirs
- {
- "nvtt/extern/poshlib",
- "nvtt/src",
- "nvtt/src/nvtt/squish",
- }
- files
- {
- "nvtt/extern/poshlib/*.h",
- "nvtt/extern/poshlib/*.cpp",
- "nvtt/src/nvmath/*.h",
- "nvtt/src/nvmath/*.cpp",
- "nvtt/src/nvcore/*.h",
- "nvtt/src/nvcore/*.cpp",
- "nvtt/src/nvthread/*.h",
- "nvtt/src/nvthread/*.cpp",
- "nvtt/src/nvimage/*.h",
- "nvtt/src/nvimage/*.cpp",
- "nvtt/src/nvtt/*.h",
- "nvtt/src/nvtt/*.cpp",
- "nvtt/src/nvtt/cuda/*.h",
- "nvtt/src/nvtt/cuda/*.cpp",
- "nvtt/src/nvtt/squish/*.h",
- "nvtt/src/nvtt/squish/*.cpp",
- }
- excludes
- {
- "nvtt/src/nvcore/Tokenizer.*",
- "nvtt/src/nvimage/ConeMap.*",
- "nvtt/src/nvimage/KtxFile.*",
- "nvtt/src/nvtt/squish/alpha.*",
- "nvtt/src/nvtt/squish/clusterfit.*",
- "nvtt/src/nvtt/squish/rangefit.*",
- "nvtt/src/nvtt/squish/singlecolourfit.*",
- "nvtt/src/nvtt/squish/singlechannelfit.*",
- "nvtt/src/nvtt/squish/squish.*",
- "nvtt/src/nvtt/CompressorDX11.*",
- }
-
- configuration "linux"
- includedirs
- {
- "nvtt/project/linux",
- }
-
- configuration "macosx"
- includedirs
- {
- "nvtt/project/macosx",
- }
-
- if _ACTION == "vs2008" then
- configuration "windows"
- includedirs
- {
- "nvtt/project/vc9",
- }
- else
- configuration "windows"
- includedirs
- {
- "nvtt/project/vc10",
- }
- end
-
- -- Override inline function expansion and intrinsic function usage settings for Debug builds.
- configuration { "windows", "Debug" }
- buildoptions
- {
- "/Ob2",
- "/Oi",
- }
- editandcontinue "Off"
-
-project "ois"
- uuid "4A37964A-C2F4-4FA7-B744-9C4D292DAA22"
- kind "StaticLib"
- language "C++"
- includedirs
- {
- "ois/includes/",
- }
- files
- {
- "ois/src/*.cpp",
- }
-
- configuration "linux"
- files
- {
- "ois/src/linux/*.cpp"
- }
-
- configuration "macosx"
- files
- {
- "ois/src/mac/*.cpp"
- }
-
- configuration "windows"
- files
- {
- "ois/src/win32/*.cpp",
- }
-
-project "zlib"
- uuid "23112391-0616-46AF-B0C2-5325E8530FBA"
- kind "StaticLib"
- language "C++"
- files
- {
- "zlib/*.h",
- "zlib/*.c",
- }
- excludes
- {
- "zlib/gz*.h",
- "zlib/gz*.c",
- "zlib/minigzip.c",
- }
-
--- alphabetical!
diff --git a/Dependencies/mongo-c b/Dependencies/mongo-c
index 14dc25959..03c40057d 160000
--- a/Dependencies/mongo-c
+++ b/Dependencies/mongo-c
@@ -1 +1 @@
-Subproject commit 14dc259592c1a00d348c15f577ccbaa7a7d1aa40
+Subproject commit 03c40057d03f970786316a4eeb9aec9171a9be0e
diff --git a/Dependencies/fbx.lua b/Dependencies/premake-fbx.lua
similarity index 99%
rename from Dependencies/fbx.lua
rename to Dependencies/premake-fbx.lua
index 6bdcc45cf..3b4dd2269 100644
--- a/Dependencies/fbx.lua
+++ b/Dependencies/premake-fbx.lua
@@ -4,7 +4,7 @@ if thisFileLocation == nil then
end
thisFileLocation = path.getdirectory( thisFileLocation )
-require( thisFileLocation .. '/Helium' )
+require( thisFileLocation .. '/premake' )
Helium.RequiredFbxVersion = '2018.1.1'
diff --git a/Dependencies/wxWidgets.lua b/Dependencies/premake-wx.lua
similarity index 99%
rename from Dependencies/wxWidgets.lua
rename to Dependencies/premake-wx.lua
index 46f708294..65992de0d 100644
--- a/Dependencies/wxWidgets.lua
+++ b/Dependencies/premake-wx.lua
@@ -4,7 +4,7 @@ if thisFileLocation == nil then
end
thisFileLocation = path.getdirectory( thisFileLocation )
-require( thisFileLocation .. '/Helium' )
+require( thisFileLocation .. '/premake' )
wxVersion = "3.1"
wxVersionShort = "310"
diff --git a/Dependencies/Helium.lua b/Dependencies/premake.lua
similarity index 99%
rename from Dependencies/Helium.lua
rename to Dependencies/premake.lua
index a79758758..e52a7a5fd 100644
--- a/Dependencies/Helium.lua
+++ b/Dependencies/premake.lua
@@ -117,6 +117,7 @@ Helium.Publish = function( files )
print( path .. "\n\t-> " .. destination )
os.copyfile( path, destination ) -- linux returns non-zero if the target file is identical (!?)
+ print( path .. " -> " .. destination )
-- the files were copied, complete this entry
files[ i ] = nil
diff --git a/Dependencies/premake5.lua b/Dependencies/premake5.lua
index 8bade949d..c13a6e665 100644
--- a/Dependencies/premake5.lua
+++ b/Dependencies/premake5.lua
@@ -4,9 +4,9 @@ if thisFileLocation == nil then
end
thisFileLocation = path.getdirectory( thisFileLocation )
-require( thisFileLocation .. '/Helium' )
-require( thisFileLocation .. '/fbx' )
-require( thisFileLocation .. '/wxWidgets' )
+require( thisFileLocation .. '/premake' )
+require( thisFileLocation .. '/premake-fbx' )
+require( thisFileLocation .. '/premake-wx' )
function CheckEnvironment()
@@ -183,7 +183,433 @@ if _ACTION then
configuration "Release"
targetdir( "../Bin/Release/" .. Helium.GetBundleExecutablePath() )
- dofile "Dependencies.lua"
+ -- core alphabetical!
+
+ project "googletest"
+ uuid "1DCBDADD-043A-4853-8118-5D437106309A"
+ kind "StaticLib"
+ language "C++"
+ includedirs
+ {
+ "googletest/googletest/include",
+ "googletest/googletest/include/internal",
+ "googletest/googletest",
+ }
+ files
+ {
+ "googletest/googletest/include/**.h",
+ "googletest/googletest/src/**.cc",
+ }
+ excludes
+ {
+ "googletest/googletest/src/gtest-all.cc",
+ }
+
+ project "mongo-c"
+ uuid "2704694D-D087-4703-9D4F-124D56E17F3F"
+ kind "StaticLib"
+ language "C"
+ defines
+ {
+ "MONGO_HAVE_STDINT=1",
+ "MONGO_STATIC_BUILD=1",
+ }
+ files
+ {
+ "mongo-c/src/*.h",
+ "mongo-c/src/*.c",
+ }
+
+ if _OPTIONS[ "core" ] then
+ return
+ end
+
+ -- non-core alphabetical!
+
+ project "bullet"
+ uuid "23112391-0616-46AF-B0C2-5325E8530FBC"
+ kind "StaticLib"
+ language "C++"
+ includedirs
+ {
+ "bullet/src/",
+ }
+ files
+ {
+ "bullet/src/btBulletCollisionCommon.h",
+ "bullet/src/btBulletDynamicsCommon.h",
+ "bullet/src/LinearMath/**.cpp",
+ "bullet/src/LinearMath/**.h",
+ "bullet/src/BulletCollision/**.h",
+ "bullet/src/BulletCollision/**.cpp",
+ "bullet/src/BulletDynamics/**.h",
+ "bullet/src/BulletDynamics/**.cpp",
+ }
+
+ project "freetype"
+ uuid "53C96BED-38E8-4A1f-81E0-45D09AFD33EB"
+ kind "StaticLib"
+ language "C"
+ defines
+ {
+ "_LIB",
+ "FT2_BUILD_LIBRARY",
+ }
+ includedirs
+ {
+ "freetype/include",
+ }
+ files
+ {
+ "freetype/src/autofit/autofit.c",
+ "freetype/src/bdf/bdf.c",
+ "freetype/src/cff/cff.c",
+ "freetype/src/base/ftbase.c",
+ "freetype/src/base/ftbitmap.c",
+ "freetype/src/cache/ftcache.c",
+ "freetype/src/base/ftfstype.c",
+ "freetype/src/base/ftgasp.c",
+ "freetype/src/base/ftglyph.c",
+ "freetype/src/gzip/ftgzip.c",
+ "freetype/src/base/ftinit.c",
+ "freetype/src/lzw/ftlzw.c",
+ "freetype/src/base/ftstroke.c",
+ "freetype/src/base/ftsystem.c",
+ "freetype/src/smooth/smooth.c",
+ "freetype/src/base/ftbbox.c",
+ "freetype/src/base/ftmm.c",
+ "freetype/src/base/ftpfr.c",
+ "freetype/src/base/ftsynth.c",
+ "freetype/src/base/fttype1.c",
+ "freetype/src/base/ftwinfnt.c",
+ "freetype/src/base/ftxf86.c",
+ "freetype/src/base/ftlcdfil.c",
+ "freetype/src/base/ftgxval.c",
+ "freetype/src/base/ftotval.c",
+ "freetype/src/base/ftpatent.c",
+ "freetype/src/pcf/pcf.c",
+ "freetype/src/pfr/pfr.c",
+ "freetype/src/psaux/psaux.c",
+ "freetype/src/pshinter/pshinter.c",
+ "freetype/src/psnames/psmodule.c",
+ "freetype/src/raster/raster.c",
+ "freetype/src/sfnt/sfnt.c",
+ "freetype/src/truetype/truetype.c",
+ "freetype/src/type1/type1.c",
+ "freetype/src/cid/type1cid.c",
+ "freetype/src/type42/type42.c",
+ "freetype/src/winfonts/winfnt.c",
+ "freetype/include/ft2build.h",
+ "freetype/include/freetype/config/ftconfig.h",
+ "freetype/include/freetype/config/ftheader.h",
+ "freetype/include/freetype/config/ftmodule.h",
+ "freetype/include/freetype/config/ftoption.h",
+ "freetype/include/freetype/config/ftstdlib.h",
+ }
+ configuration "windows"
+ files
+ {
+ "freetype/builds/win32/ftdebug.c",
+ }
+
+ project "glfw"
+ uuid "57AEB010-23D1-11E3-8224-0800200C9A66"
+ kind "SharedLib"
+ language "C"
+
+ files
+ {
+ "glfw/include/GLFW/*.h",
+ "glfw/src/*.h",
+ "glfw/src/*.c",
+ "glfw/deps/*.h",
+ "glfw/deps/*.c",
+ "glfw/deps/GL/*.h",
+ }
+
+ configuration "linux"
+ defines
+ {
+ "_GLFW_BUILD_DLL=1",
+ "_GLFW_X11=1",
+ "_GLFW_GLX=1",
+ "_GLFW_HAS_GLXGETPROCADDRESS=1",
+ "_GLFW_HAS_DLOPEN=1",
+ "_GLFW_VERSION_FULL=\"3.0.3\"",
+ "_GLFW_USE_OPENGL=1",
+ }
+ excludes
+ {
+ "glfw/src/cocoa*",
+ "glfw/src/win32*",
+ "glfw/src/wgl*",
+ "glfw/src/nsgl*",
+ "glfw/src/egl*",
+ "glfw/deps/GL/wglext.h",
+ }
+ links
+ {
+ "GL",
+ "X11",
+ "Xrandr",
+ "Xi",
+ }
+
+ configuration "macosx"
+ defines
+ {
+ "_GLFW_BUILD_DLL=1",
+ "_GLFW_COCOA=1",
+ "_GLFW_NSGL=1",
+ "_GLFW_VERSION_FULL=\"3.0.3\"",
+ "_GLFW_USE_OPENGL=1",
+ }
+ files
+ {
+ "glfw/src/*.m"
+ }
+ excludes
+ {
+ "glfw/src/win32*",
+ "glfw/src/x11*",
+ "glfw/src/glx*",
+ "glfw/src/egl*",
+ "glfw/src/wgl*",
+ "glfw/deps/GL/wglext.h",
+ }
+ linkoptions
+ {
+ "-Wl,-install_name,@executable_path/libglfw.dylib", -- set the install name to load us from the folder of the loader
+ "-framework OpenGL",
+ "-framework AGL",
+ "-framework IOKit",
+ "-framework Cocoa",
+ }
+
+ -- Premake bug requires us to redefine version number differently on Windows.
+ -- Bug: http://sourceforge.net/p/premake/bugs/275/
+ configuration "windows"
+ defines
+ {
+ "_GLFW_BUILD_DLL=1",
+ "_GLFW_NO_DLOAD_WINMM=1",
+ "_GLFW_WIN32=1",
+ "_GLFW_WGL=1",
+ "_GLFW_VERSION_FULL=\"3.0.3\"",
+ "_GLFW_USE_OPENGL=1",
+ }
+ excludes
+ {
+ "glfw/src/cocoa*",
+ "glfw/src/x11*",
+ "glfw/src/glx*",
+ "glfw/src/egl*",
+ "glfw/src/nsgl*",
+ }
+ links
+ {
+ "opengl32",
+ "winmm",
+ }
+
+ if not os.isfile( "glfw/src/config.h" ) then
+ os.copyfile( "glfwconfig.h.prebuilt", "glfw/src/config.h" );
+ end
+
+ local file = io.open("../.git/modules/Dependencies/glfw/info/exclude", "w");
+ file:write("src/config.h\n");
+ file:close();
+
+ project "glew"
+ uuid "31858500-702D-11E3-981F-0800200C9A66"
+ kind "SharedLib"
+ language "C"
+
+ includedirs
+ {
+ "glew/include"
+ }
+
+ files
+ {
+ "glew/include/GL/*.h",
+ "glew/src/glew.c",
+ "glew/src/glewinfo.c",
+ }
+
+ defines
+ {
+ "GLEW_BUILD=1",
+ }
+
+ configuration { "linux" }
+ links
+ {
+ "GL",
+ }
+ configuration { "macosx" }
+ linkoptions
+ {
+ "-Wl,-install_name,@executable_path/libglew.dylib", -- set the install name to load us from the folder of the loader
+ "-framework OpenGL",
+ "-framework AGL",
+ "-framework Cocoa",
+ }
+ configuration { "windows" }
+ links
+ {
+ "opengl32",
+ }
+ configuration{}
+
+ project "libpng"
+ uuid "46BA228E-C636-4468-9CBD-7CD4F12FBB33"
+ kind "StaticLib"
+ language "C++"
+ includedirs
+ {
+ "zlib"
+ }
+ files
+ {
+ "libpng/*.h",
+ "libpng/*.c",
+ }
+
+ if not os.isfile( "libpng/pnglibconf.h" ) then
+ os.copyfile( "libpng/scripts/pnglibconf.h.prebuilt", "libpng/pnglibconf.h" );
+ end
+
+ local file = io.open("../.git/modules/Dependencies/libpng/info/exclude", "w");
+ file:write("pnglibconf.h\n");
+ file:close();
+
+ project "nvtt"
+ uuid "6753B918-F16E-4C13-8DA7-4F9A6DB58B77"
+ kind "StaticLib"
+ language "C++"
+ includedirs
+ {
+ "nvtt/extern/poshlib",
+ "nvtt/src",
+ "nvtt/src/nvtt/squish",
+ }
+ files
+ {
+ "nvtt/extern/poshlib/*.h",
+ "nvtt/extern/poshlib/*.cpp",
+ "nvtt/src/nvmath/*.h",
+ "nvtt/src/nvmath/*.cpp",
+ "nvtt/src/nvcore/*.h",
+ "nvtt/src/nvcore/*.cpp",
+ "nvtt/src/nvthread/*.h",
+ "nvtt/src/nvthread/*.cpp",
+ "nvtt/src/nvimage/*.h",
+ "nvtt/src/nvimage/*.cpp",
+ "nvtt/src/nvtt/*.h",
+ "nvtt/src/nvtt/*.cpp",
+ "nvtt/src/nvtt/cuda/*.h",
+ "nvtt/src/nvtt/cuda/*.cpp",
+ "nvtt/src/nvtt/squish/*.h",
+ "nvtt/src/nvtt/squish/*.cpp",
+ }
+ excludes
+ {
+ "nvtt/src/nvcore/Tokenizer.*",
+ "nvtt/src/nvimage/ConeMap.*",
+ "nvtt/src/nvimage/KtxFile.*",
+ "nvtt/src/nvtt/squish/alpha.*",
+ "nvtt/src/nvtt/squish/clusterfit.*",
+ "nvtt/src/nvtt/squish/rangefit.*",
+ "nvtt/src/nvtt/squish/singlecolourfit.*",
+ "nvtt/src/nvtt/squish/singlechannelfit.*",
+ "nvtt/src/nvtt/squish/squish.*",
+ "nvtt/src/nvtt/CompressorDX11.*",
+ }
+
+ configuration "linux"
+ includedirs
+ {
+ "nvtt/project/linux",
+ }
+
+ configuration "macosx"
+ includedirs
+ {
+ "nvtt/project/macosx",
+ }
+
+ if _ACTION == "vs2008" then
+ configuration "windows"
+ includedirs
+ {
+ "nvtt/project/vc9",
+ }
+ else
+ configuration "windows"
+ includedirs
+ {
+ "nvtt/project/vc10",
+ }
+ end
+
+ -- Override inline function expansion and intrinsic function usage settings for Debug builds.
+ configuration { "windows", "Debug" }
+ buildoptions
+ {
+ "/Ob2",
+ "/Oi",
+ }
+ editandcontinue "Off"
+
+ project "ois"
+ uuid "4A37964A-C2F4-4FA7-B744-9C4D292DAA22"
+ kind "StaticLib"
+ language "C++"
+ includedirs
+ {
+ "ois/includes/",
+ }
+ files
+ {
+ "ois/src/*.cpp",
+ }
+
+ configuration "linux"
+ files
+ {
+ "ois/src/linux/*.cpp"
+ }
+
+ configuration "macosx"
+ files
+ {
+ "ois/src/mac/*.cpp"
+ }
+
+ configuration "windows"
+ files
+ {
+ "ois/src/win32/*.cpp",
+ }
+
+ project "zlib"
+ uuid "23112391-0616-46AF-B0C2-5325E8530FBA"
+ kind "StaticLib"
+ language "C++"
+ files
+ {
+ "zlib/*.h",
+ "zlib/*.c",
+ }
+ excludes
+ {
+ "zlib/gz*.h",
+ "zlib/gz*.c",
+ "zlib/minigzip.c",
+ }
+
+ -- alphabetical!
end
--]]
\ No newline at end of file
diff --git a/Documentation/Intro-Architecture.md b/Documentation/Intro-Architecture.md
index befbd66ad..6b5bb291b 100644
--- a/Documentation/Intro-Architecture.md
+++ b/Documentation/Intro-Architecture.md
@@ -1,4 +1,4 @@
-![Helium Game Engine](https://raw.github.com/HeliumProject/Helium/master/Documentation/Helium.png)
+![Helium Game Engine](https://raw.github.com/HeliumProject/Engine/master/Documentation/Helium.png)
# Architecture #
diff --git a/Documentation/Intro-History.md b/Documentation/Intro-History.md
index 8a0628b50..987f51091 100644
--- a/Documentation/Intro-History.md
+++ b/Documentation/Intro-History.md
@@ -1,4 +1,4 @@
-![Helium Game Engine](https://raw.github.com/HeliumProject/Helium/master/Documentation/Helium.png)
+![Helium Game Engine](https://raw.github.com/HeliumProject/Engine/master/Documentation/Helium.png)
# History #
diff --git a/Documentation/Intro-Organization.md b/Documentation/Intro-Organization.md
index 8bb359c4c..0294efe2a 100644
--- a/Documentation/Intro-Organization.md
+++ b/Documentation/Intro-Organization.md
@@ -1,4 +1,4 @@
-![Helium Game Engine](https://raw.github.com/HeliumProject/Helium/master/Documentation/Helium.png)
+![Helium Game Engine](https://raw.github.com/HeliumProject/Engine/master/Documentation/Helium.png)
# Code Organization #
@@ -86,4 +86,4 @@ Editor is a [wxWidgets](http://wxwidgets.org) application that is the user-facin
'''I want to use my own physics/rendering/etc.''' - Create a world-level component for the manager. Create entity-level component(s) as needed for per-game-object things. For example, meshes or physical bodies. The bullet integration is a good example of how to inject your own middleware and is actually not very much code. Remember, use the asset pipeline to your advantage! The data-management tools provided by helium can make existing middleware extremely to fast to work with.
-'''I have a question and it's not on this list''' - Join freenode, channel #helium, and ask away. If you're still stuck and think something is broken, you could also create a github issue. https://github.com/HeliumProject/Helium/issues
+'''I have a question and it's not on this list''' - Join freenode, channel #helium, and ask away. If you're still stuck and think something is broken, you could also create a github issue. https://github.com/HeliumProject/Engine/issues
diff --git a/Documentation/System-AssetLoader.md b/Documentation/System-AssetLoader.md
index f9193ff15..9f3caa997 100644
--- a/Documentation/System-AssetLoader.md
+++ b/Documentation/System-AssetLoader.md
@@ -1,4 +1,4 @@
-![Helium Game Engine](https://raw.github.com/HeliumProject/Helium/master/Documentation/Helium.png)
+![Helium Game Engine](https://raw.github.com/HeliumProject/Engine/master/Documentation/Helium.png)
# WARNING #
diff --git a/Documentation/System-Components.md b/Documentation/System-Components.md
index f01c9987b..53e99db25 100644
--- a/Documentation/System-Components.md
+++ b/Documentation/System-Components.md
@@ -1,4 +1,4 @@
-![Helium Game Engine](https://raw.github.com/HeliumProject/Helium/master/Documentation/Helium.png)
+![Helium Game Engine](https://raw.github.com/HeliumProject/Engine/master/Documentation/Helium.png)
# Component System #
diff --git a/Helium.code-workspace b/Engine.code-workspace
similarity index 100%
rename from Helium.code-workspace
rename to Engine.code-workspace
diff --git a/Helium.sublime-project b/Engine.sublime-project
similarity index 100%
rename from Helium.sublime-project
rename to Engine.sublime-project
diff --git a/Source/Engine/MathSimd/LICENSE.md b/LICENSE.md
similarity index 100%
rename from Source/Engine/MathSimd/LICENSE.md
rename to LICENSE.md
diff --git a/Projects/PhysicsDemo/Source/Main/Main.cpp b/Projects/PhysicsDemo/Source/Main/Main.cpp
index 3cf377973..697f756c8 100644
--- a/Projects/PhysicsDemo/Source/Main/Main.cpp
+++ b/Projects/PhysicsDemo/Source/Main/Main.cpp
@@ -41,6 +41,7 @@ using namespace Helium;
///
/// @return Result code of the application.
#if HELIUM_OS_WIN
+#include "Platform/SystemWin.h"
int APIENTRY WinMain( HINSTANCE hInstance, HINSTANCE /*hPrevInstance*/, LPSTR /*lpCmdLine*/, int nCmdShow )
#else
int main( int argc, const char* argv[] )
@@ -48,7 +49,7 @@ int main( int argc, const char* argv[] )
{
#ifdef HELIUM_DEBUG
HELIUM_TRACE_SET_LEVEL( TraceLevels::Debug );
- Log::EnableStream( Log::Streams::Debug, true );
+ Log::EnableChannel( Log::Channels::Debug, true );
#endif
int32_t result = 0;
diff --git a/Projects/ShapeShooter/Source/Main/Main.cpp b/Projects/ShapeShooter/Source/Main/Main.cpp
index ec1f41fb2..1d3cec7d7 100644
--- a/Projects/ShapeShooter/Source/Main/Main.cpp
+++ b/Projects/ShapeShooter/Source/Main/Main.cpp
@@ -33,6 +33,7 @@ using namespace Helium;
///
/// @return Result code of the application.
#if HELIUM_OS_WIN
+#include "Platform/SystemWin.h"
int APIENTRY WinMain( HINSTANCE hInstance, HINSTANCE /*hPrevInstance*/, LPSTR /*lpCmdLine*/, int nCmdShow )
#else
int main( int argc, const char* argv[] )
@@ -40,7 +41,7 @@ int main( int argc, const char* argv[] )
{
#ifdef HELIUM_DEBUG
HELIUM_TRACE_SET_LEVEL( TraceLevels::Debug );
- Log::EnableStream( Log::Streams::Debug, true );
+ Log::EnableChannel( Log::Channels::Debug, true );
#endif
int32_t result = 0;
diff --git a/Projects/SideScroller/Source/Main/Main.cpp b/Projects/SideScroller/Source/Main/Main.cpp
index 72503bad7..73067a7db 100644
--- a/Projects/SideScroller/Source/Main/Main.cpp
+++ b/Projects/SideScroller/Source/Main/Main.cpp
@@ -33,6 +33,7 @@ using namespace Helium;
///
/// @return Result code of the application.
#if HELIUM_OS_WIN
+#include "Platform/SystemWin.h"
int APIENTRY WinMain( HINSTANCE hInstance, HINSTANCE /*hPrevInstance*/, LPSTR /*lpCmdLine*/, int nCmdShow )
#else
int main( int argc, const char* argv[] )
@@ -40,7 +41,7 @@ int main( int argc, const char* argv[] )
{
#ifdef HELIUM_DEBUG
HELIUM_TRACE_SET_LEVEL( TraceLevels::Debug );
- Log::EnableStream( Log::Streams::Debug, true );
+ Log::EnableChannel( Log::Channels::Debug, true );
#endif
int32_t result = 0;
diff --git a/Data/Animations/TestBull_anim.fbx b/Projects/TestBull/Data/Animations/TestBull_anim.fbx
similarity index 100%
rename from Data/Animations/TestBull_anim.fbx
rename to Projects/TestBull/Data/Animations/TestBull_anim.fbx
diff --git a/Data/Config/DefaultWin/GraphicsConfig.json b/Projects/TestBull/Data/Config/DefaultLin/GraphicsConfig.json
similarity index 77%
rename from Data/Config/DefaultWin/GraphicsConfig.json
rename to Projects/TestBull/Data/Config/DefaultLin/GraphicsConfig.json
index fb86192ec..1a21c6aad 100644
--- a/Data/Config/DefaultWin/GraphicsConfig.json
+++ b/Projects/TestBull/Data/Config/DefaultLin/GraphicsConfig.json
@@ -1,8 +1,7 @@
[
{
- "Helium::ConfigAsset": {
- "m_ConfigObject":
- {
+ "Helium::ConfigAsset": {
+ "m_ConfigObject": {
"Helium::GraphicsConfig": {
"m_Width": 800,
"m_Height": 600,
@@ -10,8 +9,8 @@
"m_MaxAnisotropy": 10,
"m_bFullscreen": false,
"m_ShadowMode": "NONE"
- }
- }
+ }
+ }
}
}
]
diff --git a/Data/Config/DefaultLin/GraphicsConfig.json b/Projects/TestBull/Data/Config/DefaultMac/GraphicsConfig.json
similarity index 77%
rename from Data/Config/DefaultLin/GraphicsConfig.json
rename to Projects/TestBull/Data/Config/DefaultMac/GraphicsConfig.json
index fb86192ec..1a21c6aad 100644
--- a/Data/Config/DefaultLin/GraphicsConfig.json
+++ b/Projects/TestBull/Data/Config/DefaultMac/GraphicsConfig.json
@@ -1,8 +1,7 @@
[
{
- "Helium::ConfigAsset": {
- "m_ConfigObject":
- {
+ "Helium::ConfigAsset": {
+ "m_ConfigObject": {
"Helium::GraphicsConfig": {
"m_Width": 800,
"m_Height": 600,
@@ -10,8 +9,8 @@
"m_MaxAnisotropy": 10,
"m_bFullscreen": false,
"m_ShadowMode": "NONE"
- }
- }
+ }
+ }
}
}
]
diff --git a/Data/Config/DefaultMac/GraphicsConfig.json b/Projects/TestBull/Data/Config/DefaultWin/GraphicsConfig.json
similarity index 77%
rename from Data/Config/DefaultMac/GraphicsConfig.json
rename to Projects/TestBull/Data/Config/DefaultWin/GraphicsConfig.json
index fb86192ec..1a21c6aad 100644
--- a/Data/Config/DefaultMac/GraphicsConfig.json
+++ b/Projects/TestBull/Data/Config/DefaultWin/GraphicsConfig.json
@@ -1,8 +1,7 @@
[
{
- "Helium::ConfigAsset": {
- "m_ConfigObject":
- {
+ "Helium::ConfigAsset": {
+ "m_ConfigObject": {
"Helium::GraphicsConfig": {
"m_Width": 800,
"m_Height": 600,
@@ -10,8 +9,8 @@
"m_MaxAnisotropy": 10,
"m_bFullscreen": false,
"m_ShadowMode": "NONE"
- }
- }
+ }
+ }
}
}
]
diff --git a/Projects/TestBull/Data/Editor/System.json b/Projects/TestBull/Data/Editor/System.json
new file mode 100644
index 000000000..641b08cb5
--- /dev/null
+++ b/Projects/TestBull/Data/Editor/System.json
@@ -0,0 +1,19 @@
+[
+ {
+ "Helium::SystemDefinition": {
+ "m_SystemComponents": [
+
+ ],
+ "m_ComponentTypeConfigs": [
+ {
+ "m_ComponentTypeName": "Helium::BulletBodyComponent",
+ "m_PoolSize": 64
+ },
+ {
+ "m_ComponentTypeName": "GameLibrary::AvatarControllerComponent",
+ "m_PoolSize": 64
+ }
+ ]
+ }
+ }
+]
\ No newline at end of file
diff --git a/Data/Fonts/Bitstream Vera License.txt b/Projects/TestBull/Data/Fonts/Bitstream Vera License.txt
similarity index 100%
rename from Data/Fonts/Bitstream Vera License.txt
rename to Projects/TestBull/Data/Fonts/Bitstream Vera License.txt
diff --git a/Data/Fonts/DebugLarge.json b/Projects/TestBull/Data/Fonts/DebugLarge.json
similarity index 100%
rename from Data/Fonts/DebugLarge.json
rename to Projects/TestBull/Data/Fonts/DebugLarge.json
diff --git a/Data/Fonts/DebugMedium.json b/Projects/TestBull/Data/Fonts/DebugMedium.json
similarity index 100%
rename from Data/Fonts/DebugMedium.json
rename to Projects/TestBull/Data/Fonts/DebugMedium.json
diff --git a/Data/Fonts/DebugSmall.json b/Projects/TestBull/Data/Fonts/DebugSmall.json
similarity index 100%
rename from Data/Fonts/DebugSmall.json
rename to Projects/TestBull/Data/Fonts/DebugSmall.json
diff --git a/Data/Fonts/Vera-Bold-Italic.ttf b/Projects/TestBull/Data/Fonts/Vera-Bold-Italic.ttf
similarity index 100%
rename from Data/Fonts/Vera-Bold-Italic.ttf
rename to Projects/TestBull/Data/Fonts/Vera-Bold-Italic.ttf
diff --git a/Data/Fonts/Vera-Bold.ttf b/Projects/TestBull/Data/Fonts/Vera-Bold.ttf
similarity index 100%
rename from Data/Fonts/Vera-Bold.ttf
rename to Projects/TestBull/Data/Fonts/Vera-Bold.ttf
diff --git a/Data/Fonts/Vera-Italic.ttf b/Projects/TestBull/Data/Fonts/Vera-Italic.ttf
similarity index 100%
rename from Data/Fonts/Vera-Italic.ttf
rename to Projects/TestBull/Data/Fonts/Vera-Italic.ttf
diff --git a/Data/Fonts/Vera.ttf b/Projects/TestBull/Data/Fonts/Vera.ttf
similarity index 100%
rename from Data/Fonts/Vera.ttf
rename to Projects/TestBull/Data/Fonts/Vera.ttf
diff --git a/Projects/TestBull/Data/Materials/Default.json b/Projects/TestBull/Data/Materials/Default.json
new file mode 100644
index 000000000..7b5b029cc
--- /dev/null
+++ b/Projects/TestBull/Data/Materials/Default.json
@@ -0,0 +1,13 @@
+[
+ {
+ "Helium::Material": {
+ "m_spShader": "/Shaders:StandardBase.hlsl",
+ "m_textureParameters": [
+ {
+ "name": "DiffuseMap",
+ "value": "/Textures:Default.png"
+ }
+ ]
+ }
+ }
+]
\ No newline at end of file
diff --git a/Data/Materials/TestBull.json b/Projects/TestBull/Data/Materials/TestBull.json
similarity index 100%
rename from Data/Materials/TestBull.json
rename to Projects/TestBull/Data/Materials/TestBull.json
diff --git a/Data/Meshes/TestBull.fbx b/Projects/TestBull/Data/Meshes/TestBull.fbx
similarity index 100%
rename from Data/Meshes/TestBull.fbx
rename to Projects/TestBull/Data/Meshes/TestBull.fbx
diff --git a/Data/Meshes/TestBull.fbx.json b/Projects/TestBull/Data/Meshes/TestBull.fbx.json
similarity index 100%
rename from Data/Meshes/TestBull.fbx.json
rename to Projects/TestBull/Data/Meshes/TestBull.fbx.json
diff --git a/Projects/TestBull/Data/Scenes/TestScene/Camera.json b/Projects/TestBull/Data/Scenes/TestScene/Camera.json
new file mode 100644
index 000000000..996045dc9
--- /dev/null
+++ b/Projects/TestBull/Data/Scenes/TestScene/Camera.json
@@ -0,0 +1,25 @@
+[
+ {
+ "Helium::EntityDefinition": {
+ "m_Components": ["1", "2"]
+ }
+ },
+ {
+ "GameLibrary::CameraComponentDefinition": {
+ "m_NearClip": 1.0,
+ "m_FarClip": 5000.0,
+ "m_Fov": 90,
+ "m_Name": "DefaultCamera"
+ }
+ },
+ {
+ "Helium::TransformComponentDefinition": {
+ "m_Position": {
+ "m_vectorAsFloatArray": [ 0, 0, -50, 0 ]
+ },
+ "m_Rotation": {
+ "m_quatAsFloatArray": [ 0, 0, 0, 1 ]
+ }
+ }
+ }
+]
\ No newline at end of file
diff --git a/Projects/TestBull/Data/Scenes/TestScene/SceneDefinition.json b/Projects/TestBull/Data/Scenes/TestScene/SceneDefinition.json
new file mode 100644
index 000000000..312711f6c
--- /dev/null
+++ b/Projects/TestBull/Data/Scenes/TestScene/SceneDefinition.json
@@ -0,0 +1,11 @@
+[
+ {
+ "Helium::SceneDefinition": {
+ "m_Entities": [
+ "/Scenes/TestScene:TestBull",
+ "/Scenes/TestScene:Camera"
+ ],
+ "m_WorldDefinition": "/System:WorldDefinition"
+ }
+ }
+]
\ No newline at end of file
diff --git a/Projects/TestBull/Data/Scenes/TestScene/TestBull.json b/Projects/TestBull/Data/Scenes/TestScene/TestBull.json
new file mode 100644
index 000000000..78e39a509
--- /dev/null
+++ b/Projects/TestBull/Data/Scenes/TestScene/TestBull.json
@@ -0,0 +1,17 @@
+[
+ {
+ "Helium::EntityDefinition": {
+ "m_Components": [
+ {
+ "Helium::TransformComponentDefinition": {
+ }
+ },
+ {
+ "Helium::MeshComponentDefinition": {
+ "m_Mesh": "Meshes/TestBull.fbx"
+ }
+ }
+ ]
+ }
+ }
+]
\ No newline at end of file
diff --git a/Data/Shaders/Common.inl b/Projects/TestBull/Data/Shaders/Common.inl
similarity index 100%
rename from Data/Shaders/Common.inl
rename to Projects/TestBull/Data/Shaders/Common.inl
diff --git a/Data/Shaders/PrePass.hlsl b/Projects/TestBull/Data/Shaders/PrePass.hlsl
similarity index 100%
rename from Data/Shaders/PrePass.hlsl
rename to Projects/TestBull/Data/Shaders/PrePass.hlsl
diff --git a/Data/Shaders/ScreenSpaceTexture.hlsl b/Projects/TestBull/Data/Shaders/ScreenSpaceTexture.hlsl
similarity index 100%
rename from Data/Shaders/ScreenSpaceTexture.hlsl
rename to Projects/TestBull/Data/Shaders/ScreenSpaceTexture.hlsl
diff --git a/Data/Shaders/ScreenText.hlsl b/Projects/TestBull/Data/Shaders/ScreenText.hlsl
similarity index 100%
rename from Data/Shaders/ScreenText.hlsl
rename to Projects/TestBull/Data/Shaders/ScreenText.hlsl
diff --git a/Data/Shaders/Simple.hlsl b/Projects/TestBull/Data/Shaders/Simple.hlsl
similarity index 100%
rename from Data/Shaders/Simple.hlsl
rename to Projects/TestBull/Data/Shaders/Simple.hlsl
diff --git a/Data/Shaders/StandardBase.hlsl b/Projects/TestBull/Data/Shaders/StandardBase.hlsl
similarity index 100%
rename from Data/Shaders/StandardBase.hlsl
rename to Projects/TestBull/Data/Shaders/StandardBase.hlsl
diff --git a/Projects/TestBull/Data/System/System.json b/Projects/TestBull/Data/System/System.json
new file mode 100644
index 000000000..7ee46744a
--- /dev/null
+++ b/Projects/TestBull/Data/System/System.json
@@ -0,0 +1,8 @@
+[
+ {
+ "Helium::SystemDefinition": {
+ "m_SystemComponents": [
+ ]
+ }
+ }
+]
diff --git a/Projects/TestBull/Data/System/WorldDefinition.json b/Projects/TestBull/Data/System/WorldDefinition.json
new file mode 100644
index 000000000..0b8f2278e
--- /dev/null
+++ b/Projects/TestBull/Data/System/WorldDefinition.json
@@ -0,0 +1,25 @@
+[
+ {
+ "Helium::WorldDefinition": {
+ "m_Components": [
+ {
+ "GameLibrary::ScreenSpaceTextComponentDefinition": {
+ "m_Text": "Hit 'C' to use debug camera. WASD to move and mouse to look.",
+ "m_Position": {
+ "m_vectorAsFloatArray": [ 0.02, 0.05 ]
+ }
+ }
+ },
+ {
+ "Helium::GraphicsManagerComponentDefinition": {
+ }
+ },
+ {
+ "GameLibrary::CameraManagerComponentDefinition": {
+ "m_DefaultCameraName": "DefaultCamera"
+ }
+ }
+ ]
+ }
+ }
+]
\ No newline at end of file
diff --git a/Projects/TestBull/Data/Textures/Default.png b/Projects/TestBull/Data/Textures/Default.png
new file mode 100644
index 000000000..5624dfb23
Binary files /dev/null and b/Projects/TestBull/Data/Textures/Default.png differ
diff --git a/Data/Textures/TestBull_DM.png b/Projects/TestBull/Data/Textures/TestBull_DM.png
similarity index 100%
rename from Data/Textures/TestBull_DM.png
rename to Projects/TestBull/Data/Textures/TestBull_DM.png
diff --git a/Data/Textures/TestBull_NM.png b/Projects/TestBull/Data/Textures/TestBull_NM.png
similarity index 100%
rename from Data/Textures/TestBull_NM.png
rename to Projects/TestBull/Data/Textures/TestBull_NM.png
diff --git a/Data/Textures/TestBull_SM.png b/Projects/TestBull/Data/Textures/TestBull_SM.png
similarity index 100%
rename from Data/Textures/TestBull_SM.png
rename to Projects/TestBull/Data/Textures/TestBull_SM.png
diff --git a/Projects/TestBull/Source/Main/Icon.ico b/Projects/TestBull/Source/Main/Icon.ico
new file mode 100644
index 000000000..01047c333
Binary files /dev/null and b/Projects/TestBull/Source/Main/Icon.ico differ
diff --git a/Projects/TestBull/Source/Main/Main.cpp b/Projects/TestBull/Source/Main/Main.cpp
new file mode 100644
index 000000000..87942e5f5
--- /dev/null
+++ b/Projects/TestBull/Source/Main/Main.cpp
@@ -0,0 +1,133 @@
+#include "Precompile.h"
+
+#include "Components/Precompile.h"
+#include "EditorSupport/Precompile.h"
+#include "Bullet/Precompile.h"
+
+#include "Ois/OisSystem.h"
+
+#include "Engine/FileLocations.h"
+#include "Framework/SceneDefinition.h"
+#include "Framework/WorldManager.h"
+
+#include "Rendering/Renderer.h"
+#include "Windowing/Window.h"
+
+#include "GameLibrary/Graphics/Sprite.h"
+
+#include "Bullet/BulletEngine.h"
+#include "Bullet/BulletWorld.h"
+#include "Bullet/BulletWorldDefinition.h"
+#include "Bullet/BulletBodyDefinition.h"
+#include "Bullet/BulletShapes.h"
+#include "Bullet/BulletBody.h"
+#include "Bullet/BulletWorldComponent.h"
+
+#include "Persist/ArchiveJson.h"
+#include "Foundation/Log.h"
+
+#include "Framework/ParameterSet.h"
+
+#include "GameLibrary/Graphics/ScreenSpaceText.h"
+
+using namespace Helium;
+
+/// Windows application entry point.
+///
+/// @param[in] hInstance Handle to the current instance of the application.
+/// @param[in] hPrevInstance Handle to the previous instance of the application (always null; ignored).
+/// @param[in] lpCmdLine Command line for the application, excluding the program name.
+/// @param[in] nCmdShow Flags specifying how the application window should be shown.
+///
+/// @return Result code of the application.
+#if HELIUM_OS_WIN
+#include "Platform/SystemWin.h"
+int APIENTRY WinMain( HINSTANCE hInstance, HINSTANCE /*hPrevInstance*/, LPSTR /*lpCmdLine*/, int nCmdShow )
+#else
+int main( int argc, const char* argv[] )
+#endif
+{
+#ifdef HELIUM_DEBUG
+ HELIUM_TRACE_SET_LEVEL( TraceLevels::Debug );
+ Log::EnableChannel( Log::Channels::Debug, true );
+#endif
+
+ int32_t result = 0;
+
+ {
+ // Initialize a GameSystem instance.
+ MemoryHeapPreInitializationImpl memoryHeapPreInitialization;
+ AssetLoaderInitializationImpl assetLoaderInitialization;
+ ConfigInitializationImpl configInitialization;
+#if HELIUM_DIRECT3D
+ WindowManagerInitializationImpl windowManagerInitialization( hInstance, nCmdShow );
+#else
+ WindowManagerInitializationImpl windowManagerInitialization;
+#endif
+ RendererInitializationImpl rendererInitialization;
+ AssetPath systemDefinitionPath( "/System:System" );
+
+ FilePath base ( __FILE__ );
+ base = base.Directory().Parent().Parent();
+ std::string fullPath;
+ Helium::GetFullPath( base.Data(), fullPath );
+ base.Set( fullPath );
+ FileLocations::SetBaseDirectory( base );
+
+ GameSystem::Startup();
+ GameSystem* pGameSystem = GameSystem::GetInstance();
+ HELIUM_ASSERT( pGameSystem );
+ bool bSystemInitSuccess = pGameSystem->Initialize(
+ memoryHeapPreInitialization,
+ assetLoaderInitialization,
+ configInitialization,
+ windowManagerInitialization,
+ rendererInitialization,
+ systemDefinitionPath);
+
+ if( bSystemInitSuccess )
+ {
+ World *pWorld = NULL;
+
+ {
+ AssetLoader *pAssetLoader = AssetLoader::GetInstance();
+ SceneDefinitionPtr spSceneDefinition;
+
+ AssetPath scenePath( "/Scenes/TestScene:SceneDefinition" );
+ pAssetLoader->LoadObject(scenePath, spSceneDefinition );
+
+ HELIUM_ASSERT( !spSceneDefinition->GetAllFlagsSet( Asset::FLAG_BROKEN ) );
+
+ pWorld = pGameSystem->LoadScene(spSceneDefinition.Get());
+ }
+
+ HELIUM_ASSERT( pWorld );
+
+ if ( pWorld )
+ {
+ Window::NativeHandle windowHandle = rendererInitialization.GetMainWindow()->GetNativeHandle();
+ Input::Initialize(windowHandle, false);
+ Input::SetWindowSize(
+ rendererInitialization.GetMainWindow()->GetWidth(),
+ rendererInitialization.GetMainWindow()->GetHeight());
+
+ // Run the application.
+ result = pGameSystem->Run();
+ }
+ }
+
+ // Shut down and destroy the system.
+ pGameSystem->Shutdown();
+ GameSystem::Shutdown();
+ }
+
+ // Perform final cleanup.
+ ThreadLocalStackAllocator::ReleaseMemoryHeap();
+
+#if HELIUM_ENABLE_MEMORY_TRACKING
+ DynamicMemoryHeap::LogMemoryStats();
+ ThreadLocalStackAllocator::ReleaseMemoryHeap();
+#endif
+
+ return result;
+}
diff --git a/Projects/TestBull/Source/Main/Main.rc b/Projects/TestBull/Source/Main/Main.rc
new file mode 100644
index 000000000..765878d18
--- /dev/null
+++ b/Projects/TestBull/Source/Main/Main.rc
@@ -0,0 +1,84 @@
+// Microsoft Visual C++ generated resource script.
+//
+#include "resource.h"
+
+#define APSTUDIO_READONLY_SYMBOLS
+/////////////////////////////////////////////////////////////////////////////
+//
+// Generated from the TEXTINCLUDE 2 resource.
+//
+#include "windows.h"
+
+/////////////////////////////////////////////////////////////////////////////
+#undef APSTUDIO_READONLY_SYMBOLS
+
+/////////////////////////////////////////////////////////////////////////////
+// Chinese (P.R.C.) resources
+
+#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_CHS)
+#ifdef _WIN32
+LANGUAGE LANG_CHINESE, SUBLANG_CHINESE_SIMPLIFIED
+#pragma code_page(936)
+#endif //_WIN32
+
+#ifdef APSTUDIO_INVOKED
+/////////////////////////////////////////////////////////////////////////////
+//
+// TEXTINCLUDE
+//
+
+1 TEXTINCLUDE
+BEGIN
+ "resource.h\0"
+END
+
+2 TEXTINCLUDE
+BEGIN
+ "#include ""afxres.h""\r\n"
+ "\0"
+END
+
+3 TEXTINCLUDE
+BEGIN
+ "\r\n"
+ "\0"
+END
+
+#endif // APSTUDIO_INVOKED
+
+#endif // Chinese (P.R.C.) resources
+/////////////////////////////////////////////////////////////////////////////
+
+
+/////////////////////////////////////////////////////////////////////////////
+// English (U.S.) resources
+
+#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_ENU)
+#ifdef _WIN32
+LANGUAGE LANG_ENGLISH, SUBLANG_ENGLISH_US
+#pragma code_page(1252)
+#endif //_WIN32
+
+/////////////////////////////////////////////////////////////////////////////
+//
+// Icon
+//
+
+// Icon with lowest ID value placed first to ensure application icon
+// remains consistent on all systems.
+IDI_ICON1 ICON "Icon.ico"
+#endif // English (U.S.) resources
+/////////////////////////////////////////////////////////////////////////////
+
+
+
+#ifndef APSTUDIO_INVOKED
+/////////////////////////////////////////////////////////////////////////////
+//
+// Generated from the TEXTINCLUDE 3 resource.
+//
+
+
+/////////////////////////////////////////////////////////////////////////////
+#endif // not APSTUDIO_INVOKED
+
diff --git a/Projects/TestBull/Source/Main/Types.cpp b/Projects/TestBull/Source/Main/Types.cpp
new file mode 100644
index 000000000..4633378c6
--- /dev/null
+++ b/Projects/TestBull/Source/Main/Types.cpp
@@ -0,0 +1,10 @@
+#include "Precompile.h"
+#include "Bullet/BulletEngine.h"
+
+namespace Helium
+{
+ void EnumerateDynamicTypes()
+ {
+ { Helium::BulletSystemComponent i; }
+ }
+}
\ No newline at end of file
diff --git a/Projects/TestBull/Source/Main/resource.h b/Projects/TestBull/Source/Main/resource.h
new file mode 100644
index 000000000..8fd8814b4
--- /dev/null
+++ b/Projects/TestBull/Source/Main/resource.h
@@ -0,0 +1,16 @@
+//{{NO_DEPENDENCIES}}
+// Microsoft Visual C++ generated include file.
+// Used by ExampleMain.rc
+//
+#define IDI_ICON1 101
+
+// Next default values for new objects
+//
+#ifdef APSTUDIO_INVOKED
+#ifndef APSTUDIO_READONLY_SYMBOLS
+#define _APS_NEXT_RESOURCE_VALUE 102
+#define _APS_NEXT_COMMAND_VALUE 40001
+#define _APS_NEXT_CONTROL_VALUE 1001
+#define _APS_NEXT_SYMED_VALUE 101
+#endif
+#endif
diff --git a/Projects/TestBull/Source/Module/Precompile.cpp b/Projects/TestBull/Source/Module/Precompile.cpp
new file mode 100644
index 000000000..077eb3c04
--- /dev/null
+++ b/Projects/TestBull/Source/Module/Precompile.cpp
@@ -0,0 +1,13 @@
+#include "Precompile.h"
+
+#include "Platform/MemoryHeap.h"
+
+#if HELIUM_HEAP
+
+HELIUM_DEFINE_DEFAULT_MODULE_HEAP( Game );
+
+#if HELIUM_DEBUG
+#include "Platform/NewDelete.h"
+#endif
+
+#endif // HELIUM_HEAP
diff --git a/Projects/TestBull/Source/Module/Precompile.h b/Projects/TestBull/Source/Module/Precompile.h
new file mode 100644
index 000000000..c168e9d35
--- /dev/null
+++ b/Projects/TestBull/Source/Module/Precompile.h
@@ -0,0 +1,13 @@
+#pragma once
+
+#include "Platform/Trace.h"
+#include "Framework/GameSystem.h"
+#include "FrameworkImpl/MemoryHeapPreInitializationImpl.h"
+#include "FrameworkImpl/AssetLoaderInitializationImpl.h"
+#include "FrameworkImpl/ConfigInitializationImpl.h"
+#include "FrameworkImpl/WindowManagerInitializationImpl.h"
+#include "FrameworkImpl/RendererInitializationImpl.h"
+#include "Foundation/FilePath.h"
+#include "Engine/FileLocations.h"
+#include "Engine/CacheManager.h"
+#include "GameLibrary/Precompile.h"
diff --git a/README.md b/README.md
index a228fec82..f781fbb7e 100644
--- a/README.md
+++ b/README.md
@@ -1,6 +1,6 @@
-[![Build Status](https://travis-ci.org/HeliumProject/Helium.svg?branch=master)](https://travis-ci.org/HeliumProject/Helium)
+[![Build Status](https://travis-ci.org/HeliumProject/Engine.svg?branch=master)](https://travis-ci.org/HeliumProject/Engine)
-![Helium Game Engine](https://raw.github.com/HeliumProject/Helium/master/Documentation/Helium.png)
+![Helium Game Engine](https://raw.github.com/HeliumProject/Engine/master/Documentation/Helium.png)
Helium aspires to be a fully-featured open-source game engine:
* Permissively licensed (BSD-style)
@@ -22,9 +22,8 @@ Systems
# Resources #
* Website: [http://heliumproject.org](http://heliumproject.org)
-* GitHub: [http://github.com/HeliumProject/Helium](http://github.com/HeliumProject/Helium)
-* Google Groups: [https://groups.google.com/group/heliumproject](https://groups.google.com/group/heliumproject)
-* IRC: #helium @ irc.freenode.net
+* GitHub: [http://github.com/HeliumProject/Engine](http://github.com/HeliumProject/Engine)
+* Slack: [http://heliumproject.slack.com](http://heliumproject.slack.com) (ask @gorlak for an invite)
# Building #
diff --git a/Runtime.lua b/Runtime.lua
deleted file mode 100644
index be3e856c5..000000000
--- a/Runtime.lua
+++ /dev/null
@@ -1,13 +0,0 @@
-require "Dependencies/Helium"
-require "Helium"
-
-prefix = "Helium-Runtime-"
-group "Runtime"
-
-dofile "Core.lua"
-
-if _OPTIONS[ "core" ] then
- return
-end
-
-dofile "Shared.lua"
diff --git a/Source/Core b/Source/Core
deleted file mode 160000
index a4d346418..000000000
--- a/Source/Core
+++ /dev/null
@@ -1 +0,0 @@
-Subproject commit a4d34641889655706c1abfa300dac73883dbb95e
diff --git a/Source/Engine/EditorSupport/FbxSupport.cpp b/Source/Engine/EditorSupport/FbxSupport.cpp
index 0042afe09..8d3f730d6 100644
--- a/Source/Engine/EditorSupport/FbxSupport.cpp
+++ b/Source/Engine/EditorSupport/FbxSupport.cpp
@@ -6,7 +6,7 @@
#include "MathSimd/Vector2.h"
#include "Foundation/StringConverter.h"
-#include "MathSimd/Color.h"
+#include "Math/Color.h"
using namespace Helium;
diff --git a/Source/Engine/EditorSupport/Image.cpp b/Source/Engine/EditorSupport/Image.cpp
index a97e82c33..1279e056c 100644
--- a/Source/Engine/EditorSupport/Image.cpp
+++ b/Source/Engine/EditorSupport/Image.cpp
@@ -4,7 +4,7 @@
#include "EditorSupport/Image.h"
-#include "MathSimd/Color.h"
+#include "Math/Color.h"
using namespace Helium;
diff --git a/Source/Engine/EditorSupport/PngImageLoader.cpp b/Source/Engine/EditorSupport/PngImageLoader.cpp
index 1a3e278d2..6815fbee0 100644
--- a/Source/Engine/EditorSupport/PngImageLoader.cpp
+++ b/Source/Engine/EditorSupport/PngImageLoader.cpp
@@ -6,7 +6,7 @@
#include "Foundation/Stream.h"
#include "Foundation/StringConverter.h"
-#include "MathSimd/Color.h"
+#include "Math/Color.h"
#include "EditorSupport/Image.h"
#define PNG_USER_MEM_SUPPORTED
diff --git a/Source/Engine/EditorSupport/TgaImageLoader.cpp b/Source/Engine/EditorSupport/TgaImageLoader.cpp
index 3e16d0132..70cc4689d 100644
--- a/Source/Engine/EditorSupport/TgaImageLoader.cpp
+++ b/Source/Engine/EditorSupport/TgaImageLoader.cpp
@@ -5,7 +5,7 @@
#include "EditorSupport/TgaImageLoader.h"
#include "Foundation/Stream.h"
-#include "MathSimd/Color.h"
+#include "Math/Color.h"
#include "EditorSupport/Image.h"
using namespace Helium;
diff --git a/Source/Engine/Engine/Config.cpp b/Source/Engine/Engine/Config.cpp
index 2b2f4c88f..457486328 100644
--- a/Source/Engine/Engine/Config.cpp
+++ b/Source/Engine/Engine/Config.cpp
@@ -43,8 +43,7 @@ Helium::FilePath Helium::Config::GetUserConfigObjectFilePath( Name name )
cacheFilePath += m_defaultConfigPackagePath.ToFilePathString();
cacheFilePath += Helium::s_InternalPathSeparator;
cacheFilePath += *name;
- cacheFilePath += ".";
- cacheFilePath += Persist::ArchiveExtensions[ Persist::ArchiveTypes::Json ];
+ cacheFilePath += ".json";
return FilePath( *cacheFilePath );
}
diff --git a/Source/Engine/Framework/GameSystem.cpp b/Source/Engine/Framework/GameSystem.cpp
index b6e5c0bd1..a65890ba1 100644
--- a/Source/Engine/Framework/GameSystem.cpp
+++ b/Source/Engine/Framework/GameSystem.cpp
@@ -6,6 +6,7 @@
#include "Foundation/FilePath.h"
#include "Foundation/DirectoryIterator.h"
#include "Reflect/Registry.h"
+#include "Persist/Archive.h"
#include "Platform/Timer.h"
#include "Platform/Process.h"
#include "Engine/Config.h"
@@ -89,6 +90,7 @@ bool GameSystem::Initialize(
AsyncLoader::Startup();
CacheManager::Startup();
Reflect::Startup();
+ Persist::Startup();
rMemoryHeapPreInitialization.Startup();
rAssetLoaderInitialization.Startup();
@@ -178,6 +180,7 @@ void GameSystem::Cleanup()
m_pAssetLoaderInitialization = NULL;
}
+ Persist::Shutdown();
Reflect::Shutdown();
AssetType::Shutdown();
Asset::Shutdown();
diff --git a/Source/Engine/FrameworkImpl/WindowManagerInitializationImpl.h b/Source/Engine/FrameworkImpl/WindowManagerInitializationImpl.h
index fde52baac..021e24692 100644
--- a/Source/Engine/FrameworkImpl/WindowManagerInitializationImpl.h
+++ b/Source/Engine/FrameworkImpl/WindowManagerInitializationImpl.h
@@ -12,7 +12,7 @@ namespace Helium
/// @name Construction/Destruction
//@{
#if HELIUM_DIRECT3D
- WindowManagerInitializationImpl( HINSTANCE hInstance, int nCmdShow );
+ WindowManagerInitializationImpl( void* hInstance, int nCmdShow );
#else
WindowManagerInitializationImpl();
#endif
@@ -27,7 +27,7 @@ namespace Helium
protected:
#if HELIUM_DIRECT3D
/// Handle to the application instance.
- HINSTANCE m_hInstance;
+ void* m_hInstance;
/// Flags specifying how the application window should be shown.
int m_nCmdShow;
#endif
diff --git a/Source/Engine/FrameworkImpl/WindowManagerInitializationImplWin.cpp b/Source/Engine/FrameworkImpl/WindowManagerInitializationImplWin.cpp
index e8880c897..2bd5fbbf6 100644
--- a/Source/Engine/FrameworkImpl/WindowManagerInitializationImplWin.cpp
+++ b/Source/Engine/FrameworkImpl/WindowManagerInitializationImplWin.cpp
@@ -9,7 +9,7 @@ using namespace Helium;
///
/// @param[in] hInstance Handle to the application instance.
/// @param[in] nCmdShow Flags specifying how the application window should be shown (passed in from WinMain()).
-WindowManagerInitializationImpl::WindowManagerInitializationImpl( HINSTANCE hInstance, int nCmdShow )
+WindowManagerInitializationImpl::WindowManagerInitializationImpl( void* hInstance, int nCmdShow )
: m_hInstance( hInstance )
, m_nCmdShow( nCmdShow )
{
diff --git a/Source/Engine/GraphicsTypes/GraphicsSceneView.h b/Source/Engine/GraphicsTypes/GraphicsSceneView.h
index 3074f64c1..e671cfcc4 100644
--- a/Source/Engine/GraphicsTypes/GraphicsSceneView.h
+++ b/Source/Engine/GraphicsTypes/GraphicsSceneView.h
@@ -6,7 +6,7 @@
#include "MathSimd/Vector2.h"
#include "MathSimd/Vector3.h"
#include "MathSimd/Frustum.h"
-#include "MathSimd/Color.h"
+#include "Math/Color.h"
#include "Rendering/RRenderResource.h"
namespace Helium
diff --git a/Source/Engine/GraphicsTypes/VertexTypes.h b/Source/Engine/GraphicsTypes/VertexTypes.h
index b535fb138..e92b41f1f 100644
--- a/Source/Engine/GraphicsTypes/VertexTypes.h
+++ b/Source/Engine/GraphicsTypes/VertexTypes.h
@@ -5,7 +5,7 @@
#include "Math/Float16.h"
#include "MathSimd/Vector2.h"
#include "MathSimd/Vector3.h"
-#include "MathSimd/Color.h"
+#include "Math/Color.h"
namespace Helium
{
diff --git a/Source/Engine/MathSimd/Color.cpp b/Source/Engine/MathSimd/Color.cpp
deleted file mode 100644
index b991e37c7..000000000
--- a/Source/Engine/MathSimd/Color.cpp
+++ /dev/null
@@ -1,13 +0,0 @@
-#include "Precompile.h"
-
-#include "MathSimd/Color.h"
-#include "Reflect/TranslatorDeduction.h"
-
-using namespace Helium;
-
-HELIUM_DEFINE_BASE_STRUCT( Helium::Color );
-
-void Color::PopulateMetaType( Reflect::MetaStruct& comp )
-{
- comp.AddField( &Color::m_color, "m_color" );
-}
\ No newline at end of file
diff --git a/Source/Engine/MathSimd/Color.h b/Source/Engine/MathSimd/Color.h
deleted file mode 100644
index a08eb8f12..000000000
--- a/Source/Engine/MathSimd/Color.h
+++ /dev/null
@@ -1,88 +0,0 @@
-#pragma once
-
-#include "MathSimd/API.h"
-#include "Foundation/Math.h"
-#include "Reflect/MetaStruct.h"
-
-namespace Helium
-{
- /// 32-bit ARGB color value.
- struct HELIUM_MATH_SIMD_API Color : Reflect::Struct
- {
- public:
- HELIUM_DECLARE_BASE_STRUCT(Color);
- static void PopulateMetaType( Reflect::MetaStruct& comp );
-
- /// @name Construction/Destruction
- //@{
- inline Color();
- inline Color( uint8_t r, uint8_t g, uint8_t b, uint8_t a );
- inline Color( float32_t r, float32_t g, float32_t b, float32_t a );
- inline explicit Color( uint32_t argb );
- //@}
-
- /// @name Data Access
- //@{
- inline uint8_t GetR() const;
- inline uint8_t GetG() const;
- inline uint8_t GetB() const;
- inline uint8_t GetA() const;
- inline uint32_t GetArgb() const;
- inline void SetR( uint8_t r );
- inline void SetG( uint8_t g );
- inline void SetB( uint8_t b );
- inline void SetA( uint8_t a );
- inline void SetArgb( uint32_t argb );
-
- inline float32_t GetFloatR() const;
- inline float32_t GetFloatG() const;
- inline float32_t GetFloatB() const;
- inline float32_t GetFloatA() const;
- inline void SetFloatR( float32_t r );
- inline void SetFloatG( float32_t g );
- inline void SetFloatB( float32_t b );
- inline void SetFloatA( float32_t a );
- //@}
-
- /// @name Overloaded Operators
- //@{
- inline bool operator==( const Color& rOther ) const;
- inline bool operator!=( const Color& rOther ) const;
- //@}
-
- private:
-
- /// Color data.
- union
- {
- /// Packed color value.
- uint32_t m_color;
-
- /// Individual color components.
- struct
- {
-#if HELIUM_ENDIAN_LITTLE
- /// Blue component.
- uint8_t b;
- /// Green component.
- uint8_t g;
- /// Red component.
- uint8_t r;
- /// Alpha component.
- uint8_t a;
-#else
- /// Alpha component.
- uint8_t a;
- /// Red component.
- uint8_t r;
- /// Green component.
- uint8_t g;
- /// Blue component.
- uint8_t b;
-#endif
- } m_components;
- };
- };
-}
-
-#include "MathSimd/Color.inl"
diff --git a/Source/Engine/MathSimd/Color.inl b/Source/Engine/MathSimd/Color.inl
deleted file mode 100644
index 9c2cd3d90..000000000
--- a/Source/Engine/MathSimd/Color.inl
+++ /dev/null
@@ -1,248 +0,0 @@
-/// Constructor.
-///
-/// No elements are initialized by default. Color values will need to be set before use.
-Helium::Color::Color()
-{
-}
-
-/// Constructor.
-///
-/// @param[in] r Red component.
-/// @param[in] g Green component.
-/// @param[in] b Blue component.
-/// @param[in] a Alpha component.
-Helium::Color::Color( uint8_t r, uint8_t g, uint8_t b, uint8_t a )
-{
- m_components.r = r;
- m_components.g = g;
- m_components.b = b;
- m_components.a = a;
-}
-
-/// Constructor.
-///
-/// @param[in] r Red component.
-/// @param[in] g Green component.
-/// @param[in] b Blue component.
-/// @param[in] a Alpha component.
-Helium::Color::Color( float32_t r, float32_t g, float32_t b, float32_t a )
-{
- m_components.r = static_cast< uint8_t >( Clamp( r, 0.0f, 1.0f ) * 255.0f + 0.5f );
- m_components.g = static_cast< uint8_t >( Clamp( g, 0.0f, 1.0f ) * 255.0f + 0.5f );
- m_components.b = static_cast< uint8_t >( Clamp( b, 0.0f, 1.0f ) * 255.0f + 0.5f );
- m_components.a = static_cast< uint8_t >( Clamp( a, 0.0f, 1.0f ) * 255.0f + 0.5f );
-}
-
-/// Constructor.
-///
-/// @param[in] argb Packed color value (alpha stored in the most-significant byte, followed by red, then green, and
-/// finally blue).
-Helium::Color::Color( uint32_t argb )
-{
- m_color = argb;
-}
-
-/// Get the red component value.
-///
-/// @return Red component.
-///
-/// @see GetG(), GetB(), GetA(), GetArgb(), SetR(), SetG(), SetB(), SetA(), SetArgb()
-uint8_t Helium::Color::GetR() const
-{
- return m_components.r;
-}
-
-/// Get the green component value.
-///
-/// @return Green component.
-///
-/// @see GetR(), GetB(), GetA(), GetArgb(), SetR(), SetG(), SetB(), SetA(), SetArgb()
-uint8_t Helium::Color::GetG() const
-{
- return m_components.g;
-}
-
-/// Get the blue component value.
-///
-/// @return Blue component.
-///
-/// @see GetR(), GetG(), GetA(), GetArgb(), SetR(), SetG(), SetB(), SetA(), SetArgb()
-uint8_t Helium::Color::GetB() const
-{
- return m_components.b;
-}
-
-/// Get the alpha component value.
-///
-/// @return Alpha component.
-///
-/// @see GetR(), GetG(), GetB(), GetArgb(), SetR(), SetG(), SetB(), SetA(), SetArgb()
-uint8_t Helium::Color::GetA() const
-{
- return m_components.a;
-}
-
-/// Get the 32-bit packed color value.
-///
-/// @return Packed color value (alpha stored in the most-significant byte, followed by red, then green, and finally
-/// blue).
-/// @see GetR(), GetG(), GetB(), GetA(), SetR(), SetG(), SetB(), SetA(), SetArgb()
-uint32_t Helium::Color::GetArgb() const
-{
- return m_color;
-}
-
-/// Set the red component value.
-///
-/// @param[in] r Red component.
-///
-/// @see SetG(), SetB(), SetA(), SetArgb(), GetR(), GetG(), GetB(), GetA(), GetArgb()
-void Helium::Color::SetR( uint8_t r )
-{
- m_components.r = r;
-}
-
-/// Set the green component value.
-///
-/// @param[in] g Green component.
-///
-/// @see SetR(), SetB(), SetA(), SetArgb(), GetR(), GetG(), GetB(), GetA(), GetArgb()
-void Helium::Color::SetG( uint8_t g )
-{
- m_components.g = g;
-}
-
-/// Set the blue component value.
-///
-/// @param[in] b Blue component.
-///
-/// @see SetR(), SetG(), SetA(), SetArgb(), GetR(), GetG(), GetB(), GetA(), GetArgb()
-void Helium::Color::SetB( uint8_t b )
-{
- m_components.b = b;
-}
-
-/// Set the alpha component value.
-///
-/// @param[in] a Alpha component.
-///
-/// @see SetR(), SetG(), SetB(), SetArgb(), GetR(), GetG(), GetB(), GetA(), GetArgb()
-void Helium::Color::SetA( uint8_t a )
-{
- m_components.a = a;
-}
-
-/// Set the 32-bit packed color value.
-///
-/// @param[in] argb Packed color value (alpha stored in the most-significant byte, followed by red, then green, and
-/// finally blue).
-///
-/// @see SetR(), SetG(), SetB(), SetA(), GetR(), GetG(), GetB(), GetA(), GetArgb()
-void Helium::Color::SetArgb( uint32_t argb )
-{
- m_color = argb;
-}
-
-/// Get the red component as a floating-point value in the range from 0 to 1.
-///
-/// @return Red component.
-///
-/// @see GetFloatG(), GetFloatB(), GetFloatA(), SetFloatR(), SetFloatG(), SetFloatB(), SetFloatA()
-float32_t Helium::Color::GetFloatR() const
-{
- return static_cast< float32_t >( m_components.r ) * ( 1.0f / 255.0f );
-}
-
-/// Get the green component as a floating-point value in the range from 0 to 1.
-///
-/// @return Green component.
-///
-/// @see GetFloatR(), GetFloatB(), GetFloatA(), SetFloatR(), SetFloatG(), SetFloatB(), SetFloatA()
-float32_t Helium::Color::GetFloatG() const
-{
- return static_cast< float32_t >( m_components.g ) * ( 1.0f / 255.0f );
-}
-
-/// Get the blue component as a floating-point value in the range from 0 to 1.
-///
-/// @return Blue component.
-///
-/// @see GetFloatR(), GetFloatG(), GetFloatA(), SetFloatR(), SetFloatG(), SetFloatB(), SetFloatA()
-float32_t Helium::Color::GetFloatB() const
-{
- return static_cast< float32_t >( m_components.b ) * ( 1.0f / 255.0f );
-}
-
-/// Get the alpha component as a floating-point value in the range from 0 to 1.
-///
-/// @return Alpha component.
-///
-/// @see GetFloatR(), GetFloatG(), GetFloatB(), SetFloatR(), SetFloatG(), SetFloatB(), SetFloatA()
-float32_t Helium::Color::GetFloatA() const
-{
- return static_cast< float32_t >( m_components.a ) * ( 1.0f / 255.0f );
-}
-
-/// Set the red component as a floating-point value in the range from 0 to 1.
-///
-/// @param r Red component.
-///
-/// @see SetFloatG(), SetFloatB(), SetFloatA(), GetFloatR(), GetFloatG(), GetFloatB(), GetFloatA()
-void Helium::Color::SetFloatR( float32_t r )
-{
- m_components.r = static_cast< uint8_t >( Clamp( r, 0.0f, 1.0f ) * 255.0f + 0.5f );
-}
-
-/// Set the green component as a floating-point value in the range from 0 to 1.
-///
-/// @param g Green component.
-///
-/// @see SetFloatR(), SetFloatB(), SetFloatA(), GetFloatR(), GetFloatG(), GetFloatB(), GetFloatA()
-void Helium::Color::SetFloatG( float32_t g )
-{
- m_components.g = static_cast< uint8_t >( Clamp( g, 0.0f, 1.0f ) * 255.0f + 0.5f );
-}
-
-/// Set the blue component as a floating-point value in the range from 0 to 1.
-///
-/// @param b Blue component.
-///
-/// @see SetFloatR(), SetFloatG(), SetFloatA(), GetFloatR(), GetFloatG(), GetFloatB(), GetFloatA()
-void Helium::Color::SetFloatB( float32_t b )
-{
- m_components.b = static_cast< uint8_t >( Clamp( b, 0.0f, 1.0f ) * 255.0f + 0.5f );
-}
-
-/// Set the alpha component as a floating-point value in the range from 0 to 1.
-///
-/// @param a Alpha component.
-///
-/// @see SetFloatR(), SetFloatG(), SetFloatB(), GetFloatR(), GetFloatG(), GetFloatB(), GetFloatA()
-void Helium::Color::SetFloatA( float32_t a )
-{
- m_components.a = static_cast< uint8_t >( Clamp( a, 0.0f, 1.0f ) * 255.0f + 0.5f );
-}
-
-/// Equality comparison operator.
-///
-/// @param[in] rOther Color with which to compare.
-///
-/// @return True if this color and the given color are the same, false if not.
-///
-/// @see operator!=()
-bool Helium::Color::operator==( const Color& rOther ) const
-{
- return ( m_color == rOther.m_color );
-}
-
-/// Inequality comparison operator.
-///
-/// @param[in] rOther Color with which to compare.
-///
-/// @return True if this color and the given color are different, false if they are the same.
-///
-/// @see operator==()
-bool Helium::Color::operator!=( const Color& rOther ) const
-{
- return ( m_color != rOther.m_color );
-}
diff --git a/Source/Engine/Ois/OisSystem.cpp b/Source/Engine/Ois/OisSystem.cpp
index 24b78f404..9487a7d72 100644
--- a/Source/Engine/Ois/OisSystem.cpp
+++ b/Source/Engine/Ois/OisSystem.cpp
@@ -1,7 +1,7 @@
#include "Precompile.h"
#include "OisSystem.h"
-#include "ois/includes/OIS.h"
+#include
using namespace Helium;
diff --git a/Source/Engine/PcSupport/LooseAssetFileWatcher.cpp b/Source/Engine/PcSupport/LooseAssetFileWatcher.cpp
index 3a179ff05..8e4f3c00f 100644
--- a/Source/Engine/PcSupport/LooseAssetFileWatcher.cpp
+++ b/Source/Engine/PcSupport/LooseAssetFileWatcher.cpp
@@ -159,7 +159,7 @@ void LooseAssetFileWatcher::TrackEverything()
// Skip directories
continue;
}
- else if ( item.m_Path.Extension() == Persist::ArchiveExtensions[ Persist::ArchiveTypes::Json ] )
+ else if ( item.m_Path.Extension() == "json" )
{
// JSON files get handled special
objectName.Set( item.m_Path.Basename().c_str() );
diff --git a/Source/Engine/PcSupport/LoosePackageLoader.cpp b/Source/Engine/PcSupport/LoosePackageLoader.cpp
index f24b4e71e..57bd17083 100644
--- a/Source/Engine/PcSupport/LoosePackageLoader.cpp
+++ b/Source/Engine/PcSupport/LoosePackageLoader.cpp
@@ -259,7 +259,7 @@ bool LoosePackageLoader::BeginPreload()
}
else
#endif
- if ( item.m_Path.Extension() == Persist::ArchiveExtensions[Persist::ArchiveTypes::Json] )
+ if ( item.m_Path.Extension() == "json" )
{
HELIUM_TRACE( TraceLevels::Info, "- Reading file [%s]\n", item.m_Path.Data() );
@@ -1101,7 +1101,7 @@ bool LoosePackageLoader::TickDeserialize( LoadRequest* pRequest )
AsyncLoader* pAsyncLoader = AsyncLoader::GetInstance();
HELIUM_ASSERT( pAsyncLoader );
- FilePath object_file_path = m_packageDirPath + *rObjectData.objectPath.GetName() + "." + Persist::ArchiveExtensions[Persist::ArchiveTypes::Json];
+ FilePath object_file_path = m_packageDirPath + *rObjectData.objectPath.GetName() + ".json";
bool load_properties_from_file = true;
size_t object_file_size = 0;
diff --git a/Source/Engine/PreprocessingPc/PcPreprocessor.cpp b/Source/Engine/PreprocessingPc/PcPreprocessor.cpp
index d75343e3f..3487b01f5 100644
--- a/Source/Engine/PreprocessingPc/PcPreprocessor.cpp
+++ b/Source/Engine/PreprocessingPc/PcPreprocessor.cpp
@@ -10,6 +10,8 @@
#if HELIUM_DIRECT3D
+#include "Platform/SystemWin.h"
+
#pragma warning( push )
#pragma warning( disable:4005 )
#include
diff --git a/Source/Engine/Rendering/RRenderCommandProxy.h b/Source/Engine/Rendering/RRenderCommandProxy.h
index 32021e92c..3763fa867 100644
--- a/Source/Engine/Rendering/RRenderCommandProxy.h
+++ b/Source/Engine/Rendering/RRenderCommandProxy.h
@@ -2,7 +2,7 @@
#include "Rendering/RRenderResource.h"
-#include "MathSimd/Color.h"
+#include "Math/Color.h"
#include "Rendering/RendererTypes.h"
namespace Helium
diff --git a/Source/Engine/RenderingD3D9/D3D9Renderer.cpp b/Source/Engine/RenderingD3D9/D3D9Renderer.cpp
index b882d18c0..df3c1d9c2 100644
--- a/Source/Engine/RenderingD3D9/D3D9Renderer.cpp
+++ b/Source/Engine/RenderingD3D9/D3D9Renderer.cpp
@@ -24,6 +24,8 @@
#include "RenderingD3D9/D3D9VertexInputLayout.h"
#include "RenderingD3D9/D3D9VertexShader.h"
+#undef Yield
+
namespace Helium
{
HELIUM_DECLARE_RPTR( RFence );
diff --git a/Source/Engine/RenderingD3D9/D3D9Renderer.h b/Source/Engine/RenderingD3D9/D3D9Renderer.h
index 4340563e5..aadfc5663 100644
--- a/Source/Engine/RenderingD3D9/D3D9Renderer.h
+++ b/Source/Engine/RenderingD3D9/D3D9Renderer.h
@@ -6,6 +6,7 @@
#include "Platform/Assert.h"
#include "Foundation/DynamicArray.h"
+#include "Platform/SystemWin.h"
#include
/// @defgroup d3d9error Direct3D 9 Error Handling
diff --git a/Source/Engine/Windowing/Window.h b/Source/Engine/Windowing/Window.h
index 99aa01a20..17f68b74b 100644
--- a/Source/Engine/Windowing/Window.h
+++ b/Source/Engine/Windowing/Window.h
@@ -18,7 +18,7 @@ namespace Helium
#if HELIUM_OPENGL
typedef GLFWwindow* Handle;
#elif HELIUM_DIRECT3D
- typedef HWND Handle;
+ typedef void* Handle;
#endif
#if HELIUM_OS_LINUX
diff --git a/Source/Engine/Windowing/WindowManager.h b/Source/Engine/Windowing/WindowManager.h
index 76bca089f..56bad9ca5 100644
--- a/Source/Engine/Windowing/WindowManager.h
+++ b/Source/Engine/Windowing/WindowManager.h
@@ -12,7 +12,7 @@ namespace Helium
/// @name Initialization
//@{
#if HELIUM_DIRECT3D
- bool Initialize( HINSTANCE hInstance, int nCmdShow );
+ bool Initialize( void* hInstance, int nCmdShow );
#else
bool Initialize();
#endif
@@ -41,11 +41,11 @@ namespace Helium
protected:
#if HELIUM_DIRECT3D
/// Handle to the application instance.
- HINSTANCE m_hInstance;
+ void* m_hInstance;
/// Flags specifying how the application window should be shown.
int m_nCmdShow;
/// Default window class atom.
- ATOM m_windowClassAtom;
+ uint16_t m_windowClassAtom;
#elif HELIUM_OPENGL
/// Flag to indicate successful initialization.
bool m_isInitialized;
@@ -66,7 +66,7 @@ namespace Helium
#if HELIUM_DIRECT3D
/// @name Window Procedure Callback
//@{
- static LRESULT CALLBACK WindowProc( HWND hWnd, UINT msg, WPARAM wParam, LPARAM lParam );
+ static uintptr_t __stdcall WindowProc( void* hWnd, uint32_t msg, uintptr_t wParam, uintptr_t lParam );
//@}
#elif HELIUM_OPENGL
/// @name Window System Callbacks
diff --git a/Source/Engine/Windowing/WindowManagerWin.cpp b/Source/Engine/Windowing/WindowManagerWin.cpp
index 58d50dea0..156bfd96b 100644
--- a/Source/Engine/Windowing/WindowManagerWin.cpp
+++ b/Source/Engine/Windowing/WindowManagerWin.cpp
@@ -1,6 +1,7 @@
#include "Precompile.h"
#include "Windowing/WindowManager.h"
+#include "Platform/SystemWin.h"
#include "Windowing/Window.h"
using namespace Helium;
@@ -26,7 +27,7 @@ WindowManager::~WindowManager()
/// @return True if window manager initialization was successful, false if not.
///
/// @see Shutdown()
-bool WindowManager::Initialize( HINSTANCE hInstance, int nCmdShow )
+bool WindowManager::Initialize( void* hInstance, int nCmdShow )
{
HELIUM_ASSERT( hInstance );
@@ -34,10 +35,10 @@ bool WindowManager::Initialize( HINSTANCE hInstance, int nCmdShow )
WNDCLASSEXW windowClass;
windowClass.cbSize = sizeof( windowClass );
windowClass.style = 0;
- windowClass.lpfnWndProc = WindowProc;
+ windowClass.lpfnWndProc = reinterpret_cast(&WindowProc);
windowClass.cbClsExtra = 0;
windowClass.cbWndExtra = 0;
- windowClass.hInstance = hInstance;
+ windowClass.hInstance = static_cast(hInstance);
windowClass.hIcon = NULL;
windowClass.hCursor = NULL;
windowClass.hbrBackground = NULL;
@@ -69,7 +70,7 @@ void WindowManager::Cleanup()
HELIUM_ASSERT( m_hInstance );
HELIUM_VERIFY( UnregisterClass(
reinterpret_cast< LPCTSTR >( static_cast< uintptr_t >( m_windowClassAtom ) ),
- m_hInstance ) );
+ static_cast(m_hInstance) ) );
m_windowClassAtom = 0;
}
@@ -168,7 +169,7 @@ Window* WindowManager::Create( Window::Parameters& rParameters )
windowRect.bottom - windowRect.top,
NULL,
NULL,
- m_hInstance,
+ static_cast(m_hInstance),
pWindow );
HELIUM_ASSERT( hWnd );
if( !hWnd )
@@ -196,7 +197,7 @@ Window* WindowManager::Create( Window::Parameters& rParameters )
/// @param[in] lParam Additional message information (dependent on the message sent).
///
/// @return Result of the message processing (dependent on the message sent).
-LRESULT CALLBACK WindowManager::WindowProc( HWND hWnd, UINT msg, WPARAM wParam, LPARAM lParam )
+uintptr_t __stdcall WindowManager::WindowProc( void* hWnd, uint32_t msg, uintptr_t wParam, uintptr_t lParam )
{
HELIUM_ASSERT( hWnd );
@@ -213,14 +214,14 @@ LRESULT CALLBACK WindowManager::WindowProc( HWND hWnd, UINT msg, WPARAM wParam,
Window* pWindow = static_cast< Window* >( pCreateStruct->lpCreateParams );
HELIUM_ASSERT( pWindow );
- SetWindowLongPtr( hWnd, GWLP_USERDATA, reinterpret_cast< LONG_PTR >( pWindow ) );
+ SetWindowLongPtr( static_cast(hWnd), GWLP_USERDATA, reinterpret_cast< LONG_PTR >( pWindow ) );
return 0;
}
case WM_CLOSE:
{
- Window* pWindow = reinterpret_cast< Window* >( GetWindowLongPtr( hWnd, GWLP_USERDATA ) );
+ Window* pWindow = reinterpret_cast< Window* >( GetWindowLongPtr( static_cast(hWnd), GWLP_USERDATA ) );
HELIUM_ASSERT( pWindow );
pWindow->Destroy();
@@ -231,9 +232,9 @@ LRESULT CALLBACK WindowManager::WindowProc( HWND hWnd, UINT msg, WPARAM wParam,
case WM_DESTROY:
{
// Window is being destroyed, so clear reference to Window object and destroy it.
- Window* pWindow = reinterpret_cast< Window* >( GetWindowLongPtr( hWnd, GWLP_USERDATA ) );
+ Window* pWindow = reinterpret_cast< Window* >( GetWindowLongPtr( static_cast(hWnd), GWLP_USERDATA ) );
HELIUM_ASSERT( pWindow );
- SetWindowLongPtr( hWnd, GWLP_USERDATA, 0 );
+ SetWindowLongPtr( static_cast(hWnd), GWLP_USERDATA, 0 );
const Delegate& rOnDestroyed = pWindow->GetOnDestroyed();
if( rOnDestroyed.Valid() )
@@ -247,5 +248,5 @@ LRESULT CALLBACK WindowManager::WindowProc( HWND hWnd, UINT msg, WPARAM wParam,
}
}
- return DefWindowProc( hWnd, msg, wParam, lParam );
+ return DefWindowProc( static_cast(hWnd), msg, wParam, lParam );
}
diff --git a/Source/Engine/Windowing/WindowWin.cpp b/Source/Engine/Windowing/WindowWin.cpp
index 4ef0c3fa3..c2ed10ec7 100644
--- a/Source/Engine/Windowing/WindowWin.cpp
+++ b/Source/Engine/Windowing/WindowWin.cpp
@@ -1,6 +1,8 @@
#include "Precompile.h"
#include "Windowing/Window.h"
+#include "Platform/SystemWin.h"
+
using namespace Helium;
/// @fn void Window::Destroy()
@@ -17,5 +19,5 @@ using namespace Helium;
void Window::Destroy()
{
HELIUM_ASSERT( m_pHandle );
- HELIUM_VERIFY( DestroyWindow( m_pHandle ) );
+ HELIUM_VERIFY( DestroyWindow( static_cast( m_pHandle ) ) );
}
diff --git a/Source/Tools/Editor/App.cpp b/Source/Tools/Editor/App.cpp
index ebc81a466..127fc33b2 100644
--- a/Source/Tools/Editor/App.cpp
+++ b/Source/Tools/Editor/App.cpp
@@ -156,6 +156,7 @@ bool App::OnInit()
Editor::PerforceWaitDialog::EnableWaitDialog( true );
Perforce::Startup();
Reflect::Startup();
+ Persist::Startup();
LoadSettings();
@@ -201,6 +202,7 @@ int App::OnExit()
SaveSettings();
+ Persist::Shutdown();
Reflect::Shutdown();
Perforce::Shutdown();
Editor::PerforceWaitDialog::EnableWaitDialog( false );
diff --git a/Source/Tools/Editor/Precompile.h b/Source/Tools/Editor/Precompile.h
index 64cb6cfe1..03c1b1539 100644
--- a/Source/Tools/Editor/Precompile.h
+++ b/Source/Tools/Editor/Precompile.h
@@ -1,6 +1,10 @@
#pragma once
#include "Platform/System.h"
+#ifdef HELIUM_OS_WIN
+# include "Platform/SystemWin.h"
+# undef GetUserName
+#endif
//
// Std Library
diff --git a/Source/Tools/Editor/ProjectViewModel.cpp b/Source/Tools/Editor/ProjectViewModel.cpp
index 2c8cc3ec4..23578a4be 100644
--- a/Source/Tools/Editor/ProjectViewModel.cpp
+++ b/Source/Tools/Editor/ProjectViewModel.cpp
@@ -232,6 +232,7 @@ bool ProjectViewModel::OpenProject( const FilePath& project )
m_InitializerStack.Push( Asset::Shutdown );
m_InitializerStack.Push( AssetType::Shutdown );
m_InitializerStack.Push( Reflect::Startup, Reflect::Shutdown );
+ m_InitializerStack.Push( Persist::Startup, Persist::Shutdown );
m_InitializerStack.Push( LooseAssetLoader::Startup, LooseAssetLoader::Shutdown );
m_InitializerStack.Push( AssetPreprocessor::Startup, AssetPreprocessor::Shutdown );
diff --git a/Source/Tools/EditorScene/Colors.h b/Source/Tools/EditorScene/Colors.h
index 37ab48b1f..07ba1bf04 100644
--- a/Source/Tools/EditorScene/Colors.h
+++ b/Source/Tools/EditorScene/Colors.h
@@ -1,6 +1,6 @@
#pragma once
-#include "MathSimd/Color.h"
+#include "Math/Color.h"
#include "EditorScene/API.h"
diff --git a/Source/Tools/EditorScene/DeviceManager.cpp b/Source/Tools/EditorScene/DeviceManager.cpp
index b90e08520..57a1b2397 100644
--- a/Source/Tools/EditorScene/DeviceManager.cpp
+++ b/Source/Tools/EditorScene/DeviceManager.cpp
@@ -16,11 +16,7 @@ bool DeviceManager::m_Unique = false;
uint32_t DeviceManager::m_InitCount = 0;
DeviceManager* DeviceManager::m_Clients[MAX_DEVICE_COUNT] = {0};
RRenderContextPtr DeviceManager::sm_spMainRenderContext;
-#if HELIUM_OS_WIN
-HWND DeviceManager::sm_hMainRenderContextWnd;
-#else
void* DeviceManager::sm_hMainRenderContextWnd;
-#endif
uint32_t DeviceManager::sm_mainRenderContextWidth;
uint32_t DeviceManager::sm_mainRenderContextHeight;
@@ -82,11 +78,7 @@ void DeviceManager::SetUnique()
}
///////////////////////////////////////////////////////////////////////////////////////////////////
-#if HELIUM_OS_WIN
-bool DeviceManager::Init( HWND hwnd, uint32_t back_buffer_width, uint32_t back_buffer_height, uint32_t /*init_flags*/ )
-#else
bool DeviceManager::Init( void* hwnd, uint32_t back_buffer_width, uint32_t back_buffer_height, uint32_t /*init_flags*/ )
-#endif
{
Helium::Renderer* pRenderer = NULL;
if ( !sm_spMainRenderContext )
diff --git a/Source/Tools/EditorScene/DeviceManager.h b/Source/Tools/EditorScene/DeviceManager.h
index 8cdf30a52..7d0183235 100644
--- a/Source/Tools/EditorScene/DeviceManager.h
+++ b/Source/Tools/EditorScene/DeviceManager.h
@@ -39,11 +39,7 @@ namespace Helium
virtual ~DeviceManager();
static void SetUnique(); // call before init
-#if HELIUM_OS_WIN
- bool Init( HWND hwnd, uint32_t back_buffer_width, uint32_t back_buffer_height, uint32_t init_flags = 0 );
-#else
bool Init( void* hwnd, uint32_t back_buffer_width, uint32_t back_buffer_height, uint32_t init_flags = 0 );
-#endif
private:
bool ResizeSwapChain( uint32_t width, uint32_t height );
@@ -66,11 +62,7 @@ namespace Helium
private:
/// Window to which rendering is performed.
-#if HELIUM_OS_WIN
- HWND m_hWnd;
-#else
void* m_hWnd;
-#endif
/// Render context.
Helium::RRenderContextPtr m_spRenderContext;
@@ -81,11 +73,7 @@ namespace Helium
/// Main render context.
static Helium::RRenderContextPtr sm_spMainRenderContext;
/// Main render context window handle.
-#if HELIUM_OS_WIN
- static HWND sm_hMainRenderContextWnd;
-#else
static void* sm_hMainRenderContextWnd;
-#endif
/// Main render context width.
static uint32_t sm_mainRenderContextWidth;
/// Main render context heigth.
diff --git a/Source/Tools/EditorScene/GridSettings.h b/Source/Tools/EditorScene/GridSettings.h
index a93da0c4d..d4b048b1c 100644
--- a/Source/Tools/EditorScene/GridSettings.h
+++ b/Source/Tools/EditorScene/GridSettings.h
@@ -2,7 +2,7 @@
#include "EditorScene/API.h"
#include "EditorScene/SettingsManager.h"
-#include "MathSimd/Color.h"
+#include "Math/Color.h"
#include "Reflect/TranslatorDeduction.h"
namespace Helium
diff --git a/Source/Tools/EditorScene/PropertiesGenerator.cpp b/Source/Tools/EditorScene/PropertiesGenerator.cpp
index 44ab2759b..2760a8b74 100644
--- a/Source/Tools/EditorScene/PropertiesGenerator.cpp
+++ b/Source/Tools/EditorScene/PropertiesGenerator.cpp
@@ -3,7 +3,7 @@
#include "Foundation/Log.h"
-#include "Inspect/Controls/LabelControl.h"
+#include "Inspect/LabelControl.h"
using namespace Helium;
using namespace Helium::Editor;
diff --git a/Source/Tools/EditorScene/Scene.cpp b/Source/Tools/EditorScene/Scene.cpp
index 61611f2a3..d82bfe9d5 100644
--- a/Source/Tools/EditorScene/Scene.cpp
+++ b/Source/Tools/EditorScene/Scene.cpp
@@ -611,10 +611,9 @@ void Scene::ArchiveStatus( const Persist::ArchiveStatus& info )
case Persist::ArchiveStates::ArchiveStarting:
{
std::string verb = info.m_Archive.GetMode() == Persist::ArchiveModes::Read ? "Opening" : "Saving";
- std::string type = info.m_Archive.GetType() == Persist::ArchiveTypes::Json ? "JSON" : "MessagePack";
std::ostringstream str;
- str << verb << " " << type << " File: " << info.m_Archive.GetPath().Data();
+ str << verb << " File: " << info.m_Archive.GetPath().Data();
e_StatusChanged.Raise( str.str() );
break;
}
diff --git a/Source/Tools/EditorScene/Viewport.cpp b/Source/Tools/EditorScene/Viewport.cpp
index 5a1869211..fae019f1e 100644
--- a/Source/Tools/EditorScene/Viewport.cpp
+++ b/Source/Tools/EditorScene/Viewport.cpp
@@ -35,11 +35,7 @@ const Helium::Color Viewport::s_YellowMaterial = Editor::Colors::YELLOW;
const Helium::Color Viewport::s_GreenMaterial = Editor::Colors::GREEN;
const Helium::Color Viewport::s_BlueMaterial = Editor::Colors::BLUE;
-#if HELIUM_OS_WIN
-Viewport::Viewport( HWND wnd, SettingsManager* settingsManager)
-#else
Viewport::Viewport( void* wnd, SettingsManager* settingsManager)
-#endif
: m_Window( wnd )
, m_SettingsManager( settingsManager )
, m_SceneViewId( Invalid< uint32_t >() )
diff --git a/Source/Tools/EditorScene/Viewport.h b/Source/Tools/EditorScene/Viewport.h
index b6e1cd83d..145c3ab87 100644
--- a/Source/Tools/EditorScene/Viewport.h
+++ b/Source/Tools/EditorScene/Viewport.h
@@ -7,7 +7,7 @@
#include "Reflect/MetaEnum.h"
#include "Application/UndoQueue.h"
-#include "MathSimd/Color.h"
+#include "Math/Color.h"
#include "EditorScene/API.h"
#include "EditorScene/Render.h"
@@ -218,11 +218,7 @@ namespace Helium
static const Helium::Color s_GreenMaterial;
static const Helium::Color s_BlueMaterial;
-#if HELIUM_OS_WIN
- Viewport( HWND wnd, SettingsManager* settingsManager );
-#else
Viewport( void* wnd, SettingsManager* settingsManager );
-#endif
~Viewport();
void BindToWorld( World* newWorld );
@@ -450,11 +446,7 @@ namespace Helium
GraphicsScene *GetGraphicsScene();
private:
-#if HELIUM_OS_WIN
- HWND m_Window;
-#else
void* m_Window;
-#endif
Point m_Size;
bool m_Focused;
diff --git a/premake-core.lua b/premake-core.lua
new file mode 100644
index 000000000..722dd3fab
--- /dev/null
+++ b/premake-core.lua
@@ -0,0 +1,352 @@
+require "Dependencies/premake"
+require "Dependencies/premake-fbx"
+
+require "premake"
+
+project( prefix .. "Platform" )
+
+ Helium.DoModuleProjectSettings( "Core/Source", "HELIUM", "Platform", "PLATFORM" )
+
+ files
+ {
+ "Core/Source/Platform/*.cpp",
+ "Core/Source/Platform/*.h",
+ "Core/Source/Platform/*.inl",
+ }
+
+ excludes
+ {
+ "Core/Source/Platform/*Tests.*",
+ }
+
+ configuration "windows"
+ excludes
+ {
+ "Core/Source/Platform/*Posix.*",
+ "Core/Source/Platform/*Mac.*",
+ "Core/Source/Platform/*Lin.*",
+ }
+
+ configuration "macosx"
+ excludes
+ {
+ "Core/Source/Platform/*Win.*",
+ "Core/Source/Platform/*Lin.*",
+ }
+
+ configuration "linux"
+ excludes
+ {
+ "Core/Source/Platform/*Win.*",
+ "Core/Source/Platform/*Mac.*",
+ }
+
+ configuration { "SharedLib", "linux" }
+ links
+ {
+ "pthread",
+ "dl",
+ }
+
+ configuration {}
+
+project( prefix .. "PlatformTests" )
+
+ Helium.DoTestsProjectSettings()
+
+ files
+ {
+ "Core/Source/Platform/*Tests.*",
+ }
+
+ links
+ {
+ prefix .. "Platform"
+ }
+
+project( prefix .. "Foundation" )
+
+ Helium.DoModuleProjectSettings( "Core/Source", "HELIUM", "Foundation", "FOUNDATION" )
+
+ files
+ {
+ "Core/Source/Foundation/**",
+ }
+
+ excludes
+ {
+ "Core/Source/Foundation/*Tests.*",
+ }
+
+ configuration "SharedLib"
+ links
+ {
+ prefix .. "Platform",
+ }
+
+ configuration {}
+
+project( prefix .. "FoundationTests" )
+
+ Helium.DoTestsProjectSettings()
+
+ files
+ {
+ "Core/Source/Foundation/*Tests.*",
+ }
+
+ links
+ {
+ prefix .. "Foundation",
+ prefix .. "Platform",
+ }
+
+project( prefix .. "Application" )
+
+ Helium.DoModuleProjectSettings( "Core/Source", "HELIUM", "Application", "APPLICATION" )
+
+ files
+ {
+ "Core/Source/Application/**",
+ }
+
+ excludes
+ {
+ "Core/Source/Application/*Tests.*",
+ }
+
+ configuration "SharedLib"
+ links
+ {
+ prefix .. "Foundation",
+ prefix .. "Platform",
+ }
+
+ configuration {}
+
+project( prefix .. "ApplicationTests" )
+
+ Helium.DoTestsProjectSettings()
+
+ files
+ {
+ "Core/Source/Application/*Tests.*",
+ }
+
+ links
+ {
+ prefix .. "Application",
+ prefix .. "Foundation",
+ prefix .. "Platform",
+ }
+
+project( prefix .. "Reflect" )
+
+ Helium.DoModuleProjectSettings( "Core/Source", "HELIUM", "Reflect", "REFLECT" )
+
+ files
+ {
+ "Core/Source/Reflect/**",
+ }
+
+ excludes
+ {
+ "Core/Source/Reflect/*Tests.*",
+ }
+
+ configuration "SharedLib"
+ links
+ {
+ prefix .. "Foundation",
+ prefix .. "Platform",
+ }
+
+ configuration {}
+
+project( prefix .. "ReflectTests" )
+
+ Helium.DoTestsProjectSettings()
+
+ files
+ {
+ "Core/Source/Reflect/*Tests.*",
+ }
+
+ links
+ {
+ prefix .. "Reflect",
+ prefix .. "Foundation",
+ prefix .. "Platform"
+ }
+
+project( prefix .. "Persist" )
+
+ Helium.DoModuleProjectSettings( "Core/Source", "HELIUM", "Persist", "PERSIST" )
+
+ files
+ {
+ "Core/Source/Persist/**",
+ }
+
+ excludes
+ {
+ "Core/Source/Persist/*Tests.*",
+ }
+
+ configuration "SharedLib"
+ links
+ {
+ prefix .. "Platform",
+ prefix .. "Foundation",
+ prefix .. "Reflect",
+ "mongo-c",
+ }
+
+ configuration {}
+
+project( prefix .. "PersistTests" )
+
+ Helium.DoTestsProjectSettings()
+
+ files
+ {
+ "Core/Source/Persist/*Tests.*",
+ }
+
+ links
+ {
+ prefix .. "Persist",
+ prefix .. "Reflect",
+ prefix .. "Foundation",
+ prefix .. "Platform"
+ }
+
+project( prefix .. "Mongo" )
+
+ Helium.DoModuleProjectSettings( "Core/Source", "HELIUM", "Mongo", "MONGO" )
+
+ files
+ {
+ "Core/Source/Mongo/**",
+ }
+
+ excludes
+ {
+ "Core/Source/Mongo/*Tests.*",
+ }
+
+ configuration "SharedLib"
+ links
+ {
+ prefix .. "Platform",
+ prefix .. "Foundation",
+ prefix .. "Reflect",
+ prefix .. "Persist",
+ "mongo-c",
+ }
+
+ configuration {}
+
+project( prefix .. "MongoTests" )
+
+ Helium.DoTestsProjectSettings()
+
+ files
+ {
+ "Core/Source/Mongo/*Tests.*",
+ }
+
+ links
+ {
+ prefix .. "Mongo",
+ prefix .. "Persist",
+ prefix .. "Reflect",
+ prefix .. "Foundation",
+ prefix .. "Platform",
+ "mongo-c",
+ }
+
+project( prefix .. "Inspect" )
+
+ Helium.DoModuleProjectSettings( "Core/Source", "HELIUM", "Inspect", "INSPECT" )
+
+ files
+ {
+ "Core/Source/Inspect/**",
+ }
+
+ excludes
+ {
+ "Core/Source/Inspect/*Tests.*",
+ }
+
+ configuration "SharedLib"
+ links
+ {
+ prefix .. "Platform",
+ prefix .. "Foundation",
+ prefix .. "Application",
+ prefix .. "Reflect",
+ prefix .. "Persist",
+ prefix .. "Math",
+ }
+
+ configuration {}
+
+project( prefix .. "InspectTests" )
+
+ Helium.DoTestsProjectSettings()
+
+ files
+ {
+ "Core/Source/Inspect/*Tests.*",
+ }
+
+ links
+ {
+ prefix .. "Inspect",
+ prefix .. "Reflect",
+ prefix .. "Foundation",
+ prefix .. "Platform"
+ }
+
+project( prefix .. "Math" )
+
+ Helium.DoModuleProjectSettings( "Core/Source", "HELIUM", "Math", "MATH" )
+
+ files
+ {
+ "Core/Source/Math/**",
+ }
+
+ excludes
+ {
+ "Core/Source/Math/*Tests.*",
+ }
+
+ configuration "SharedLib"
+ links
+ {
+ prefix .. "Platform",
+ prefix .. "Foundation",
+ prefix .. "Reflect",
+ prefix .. "Persist",
+ }
+
+ configuration {}
+
+project( prefix .. "MathTests" )
+
+ Helium.DoTestsProjectSettings()
+
+ files
+ {
+ "Core/Source/Math/*Tests.*",
+ }
+
+ links
+ {
+ prefix .. "Reflect",
+ prefix .. "Foundation",
+ prefix .. "Platform"
+ }
diff --git a/premake-runtime.lua b/premake-runtime.lua
new file mode 100644
index 000000000..7e8cb7337
--- /dev/null
+++ b/premake-runtime.lua
@@ -0,0 +1,14 @@
+require "Dependencies/premake"
+require "premake"
+
+tools = false
+prefix = "Helium-Runtime-"
+group "Runtime"
+
+dofile "premake-core.lua"
+
+if _OPTIONS[ "core" ] then
+ return
+end
+
+dofile "premake-shared.lua"
diff --git a/Shared.lua b/premake-shared.lua
similarity index 98%
rename from Shared.lua
rename to premake-shared.lua
index 0cb6095e9..38a930d09 100644
--- a/Shared.lua
+++ b/premake-shared.lua
@@ -1,7 +1,7 @@
-require "Dependencies/Helium"
-require "Dependencies/fbx"
+require "Dependencies/premake"
+require "Dependencies/premake-fbx"
-require "Helium"
+require "premake"
project( prefix .. "MathSimd" )
@@ -15,10 +15,11 @@ project( prefix .. "MathSimd" )
configuration "SharedLib"
links
{
- prefix .. "Platform",
- prefix .. "Foundation",
- prefix .. "Reflect",
+ -- core
prefix .. "Persist",
+ prefix .. "Reflect",
+ prefix .. "Foundation",
+ prefix .. "Platform",
}
configuration {}
@@ -35,13 +36,14 @@ project( prefix .. "Engine" )
configuration "SharedLib"
links
{
+ prefix .. "MathSimd",
+
-- core
- prefix .. "Platform",
- prefix .. "Foundation",
- prefix .. "Reflect",
- prefix .. "Persist",
prefix .. "Math",
- prefix .. "MathSimd",
+ prefix .. "Persist",
+ prefix .. "Reflect",
+ prefix .. "Foundation",
+ prefix .. "Platform",
}
project( prefix .. "EngineJobs" )
@@ -57,14 +59,14 @@ project( prefix .. "EngineJobs" )
links
{
prefix .. "Engine",
+ prefix .. "MathSimd",
-- core
- prefix .. "Platform",
- prefix .. "Foundation",
- prefix .. "Reflect",
- prefix .. "Persist",
prefix .. "Math",
- prefix .. "MathSimd",
+ prefix .. "Persist",
+ prefix .. "Reflect",
+ prefix .. "Foundation",
+ prefix .. "Platform",
}
project( prefix .. "Windowing" )
@@ -108,14 +110,14 @@ project( prefix .. "Windowing" )
prefix .. "Engine",
prefix .. "EngineJobs",
prefix .. "Framework",
+ prefix .. "MathSimd",
-- core
- prefix .. "Platform",
- prefix .. "Foundation",
- prefix .. "Reflect",
- prefix .. "Persist",
prefix .. "Math",
- prefix .. "MathSimd",
+ prefix .. "Persist",
+ prefix .. "Reflect",
+ prefix .. "Foundation",
+ prefix .. "Platform",
}
project( prefix .. "Rendering" )
@@ -133,14 +135,14 @@ project( prefix .. "Rendering" )
{
prefix .. "Engine",
prefix .. "EngineJobs",
+ prefix .. "MathSimd",
-- core
- prefix .. "Platform",
- prefix .. "Foundation",
- prefix .. "Reflect",
- prefix .. "Persist",
prefix .. "Math",
- prefix .. "MathSimd",
+ prefix .. "Persist",
+ prefix .. "Reflect",
+ prefix .. "Foundation",
+ prefix .. "Platform",
}
if _OPTIONS[ "gfxapi" ] == "direct3d" then
@@ -161,14 +163,14 @@ project( prefix .. "RenderingD3D9" )
prefix .. "Engine",
prefix .. "EngineJobs",
prefix .. "Rendering",
+ prefix .. "MathSimd",
-- core
- prefix .. "Platform",
- prefix .. "Foundation",
- prefix .. "Reflect",
- prefix .. "Persist",
prefix .. "Math",
- prefix .. "MathSimd",
+ prefix .. "Persist",
+ prefix .. "Reflect",
+ prefix .. "Foundation",
+ prefix .. "Platform",
}
elseif _OPTIONS[ "gfxapi" ] == "opengl" then
@@ -189,14 +191,14 @@ project( prefix .. "RenderingGL" )
prefix .. "Engine",
prefix .. "EngineJobs",
prefix .. "Rendering",
+ prefix .. "MathSimd",
-- core
- prefix .. "Platform",
- prefix .. "Foundation",
- prefix .. "Reflect",
- prefix .. "Persist",
prefix .. "Math",
- prefix .. "MathSimd",
+ prefix .. "Persist",
+ prefix .. "Reflect",
+ prefix .. "Foundation",
+ prefix .. "Platform",
}
end
@@ -217,14 +219,14 @@ project( prefix .. "GraphicsTypes" )
prefix .. "Engine",
prefix .. "EngineJobs",
prefix .. "Rendering",
+ prefix .. "MathSimd",
-- core
- prefix .. "Platform",
- prefix .. "Foundation",
- prefix .. "Reflect",
- prefix .. "Persist",
prefix .. "Math",
- prefix .. "MathSimd",
+ prefix .. "Persist",
+ prefix .. "Reflect",
+ prefix .. "Foundation",
+ prefix .. "Platform",
}
project( prefix .. "GraphicsJobs" )
@@ -244,14 +246,14 @@ project( prefix .. "GraphicsJobs" )
prefix .. "EngineJobs",
prefix .. "Rendering",
prefix .. "GraphicsTypes",
+ prefix .. "MathSimd",
-- core
- prefix .. "Platform",
- prefix .. "Foundation",
- prefix .. "Reflect",
- prefix .. "Persist",
prefix .. "Math",
- prefix .. "MathSimd",
+ prefix .. "Persist",
+ prefix .. "Reflect",
+ prefix .. "Foundation",
+ prefix .. "Platform",
}
project( prefix .. "Graphics" )
@@ -273,14 +275,14 @@ project( prefix .. "Graphics" )
prefix .. "Rendering",
prefix .. "GraphicsTypes",
prefix .. "GraphicsJobs",
+ prefix .. "MathSimd",
-- core
- prefix .. "Platform",
- prefix .. "Foundation",
- prefix .. "Reflect",
- prefix .. "Persist",
prefix .. "Math",
- prefix .. "MathSimd",
+ prefix .. "Persist",
+ prefix .. "Reflect",
+ prefix .. "Foundation",
+ prefix .. "Platform",
}
project( prefix .. "Components" )
@@ -304,13 +306,13 @@ project( prefix .. "Components" )
prefix .. "GraphicsJobs",
prefix .. "Graphics",
prefix .. "Ois",
+ prefix .. "MathSimd",
-- core
- prefix .. "Platform",
- prefix .. "Foundation",
- prefix .. "Reflect",
prefix .. "Math",
- prefix .. "MathSimd",
+ prefix .. "Reflect",
+ prefix .. "Foundation",
+ prefix .. "Platform",
}
project( prefix .. "Bullet" )
@@ -338,13 +340,13 @@ project( prefix .. "Bullet" )
prefix .. "Rendering", -- (for debug drawing)
prefix .. "GraphicsTypes", -- (for debug drawing)
prefix .. "Graphics", -- (for debug drawing)
+ prefix .. "MathSimd",
-- core
- prefix .. "Platform",
- prefix .. "Foundation",
- prefix .. "Reflect",
prefix .. "Math",
- prefix .. "MathSimd",
+ prefix .. "Reflect",
+ prefix .. "Foundation",
+ prefix .. "Platform",
"bullet",
}
@@ -374,13 +376,13 @@ project( prefix .. "Ois" )
prefix .. "GraphicsTypes",
prefix .. "GraphicsJobs",
prefix .. "Graphics",
+ prefix .. "MathSimd",
-- core
- prefix .. "Platform",
- prefix .. "Foundation",
- prefix .. "Reflect",
prefix .. "Math",
- prefix .. "MathSimd",
+ prefix .. "Reflect",
+ prefix .. "Foundation",
+ prefix .. "Platform",
"ois",
}
@@ -399,14 +401,14 @@ project( prefix .. "Framework" )
{
prefix .. "Engine",
prefix .. "EngineJobs",
+ prefix .. "MathSimd",
-- core
- prefix .. "Platform",
- prefix .. "Foundation",
- prefix .. "Reflect",
- prefix .. "Persist",
prefix .. "Math",
- prefix .. "MathSimd",
+ prefix .. "Persist",
+ prefix .. "Reflect",
+ prefix .. "Foundation",
+ prefix .. "Platform",
}
project( prefix .. "FrameworkImpl" )
@@ -491,14 +493,14 @@ project( prefix .. "FrameworkImpl" )
prefix .. "GraphicsJobs",
prefix .. "Graphics",
prefix .. "Framework",
+ prefix .. "MathSimd",
-- core
- prefix .. "Platform",
- prefix .. "Foundation",
- prefix .. "Reflect",
- prefix .. "Persist",
prefix .. "Math",
- prefix .. "MathSimd",
+ prefix .. "Persist",
+ prefix .. "Reflect",
+ prefix .. "Foundation",
+ prefix .. "Platform",
}
project( prefix .. "GameLibrary" )
@@ -511,6 +513,7 @@ project( prefix .. "GameLibrary" )
"Dependencies/freetype/include",
"Dependencies/bullet/src",
"Projects",
+ "Projects/GameLibrary",
}
files
@@ -518,18 +521,11 @@ project( prefix .. "GameLibrary" )
"Projects/GameLibrary/**",
}
- configuration "windows"
+ if _OPTIONS["pch"] then
pchheader( "Precompile.h" )
pchsource( "Projects/GameLibrary/Precompile.cpp" )
+ end
- configuration "not windows"
- includedirs
- {
- "Projects/GameLibrary",
- }
-
- configuration {}
-
configuration "SharedLib"
if _OPTIONS[ "gfxapi" ] == "direct3d" then
@@ -567,14 +563,14 @@ project( prefix .. "GameLibrary" )
prefix .. "Components",
prefix .. "Bullet",
prefix .. "Ois",
+ prefix .. "MathSimd",
-- core
- prefix .. "Platform",
- prefix .. "Foundation",
- prefix .. "Reflect",
- prefix .. "Persist",
prefix .. "Math",
- prefix .. "MathSimd",
+ prefix .. "Persist",
+ prefix .. "Reflect",
+ prefix .. "Foundation",
+ prefix .. "Platform",
"ois",
"mongo-c",
@@ -583,3 +579,4 @@ project( prefix .. "GameLibrary" )
Helium.DoGameMainProjectSettings( "PhysicsDemo" )
Helium.DoGameMainProjectSettings( "ShapeShooter" )
Helium.DoGameMainProjectSettings( "SideScroller" )
+Helium.DoGameMainProjectSettings( "TestBull" )
diff --git a/Tools.lua b/premake-tools.lua
similarity index 97%
rename from Tools.lua
rename to premake-tools.lua
index 77d5cf9b1..d88bb6bb3 100644
--- a/Tools.lua
+++ b/premake-tools.lua
@@ -1,17 +1,19 @@
-require "Dependencies/Helium"
-require "Dependencies/wxWidgets"
-require "Helium"
+require "Dependencies/premake"
+require "Dependencies/premake-fbx"
+require "Dependencies/premake-wx"
+require "premake"
+tools = true
prefix = "Helium-Tools-"
group "Tools"
-dofile "Core.lua"
+dofile "premake-core.lua"
if _OPTIONS[ "core" ] then
return
end
-dofile "Shared.lua"
+dofile "premake-shared.lua"
project( prefix .. "PcSupport" )
@@ -28,14 +30,14 @@ project( prefix .. "PcSupport" )
prefix .. "Engine",
prefix .. "EngineJobs",
prefix .. "Rendering",
+ prefix .. "MathSimd",
-- core
- prefix .. "Platform",
- prefix .. "Foundation",
- prefix .. "Reflect",
- prefix .. "Persist",
prefix .. "Math",
- prefix .. "MathSimd",
+ prefix .. "Persist",
+ prefix .. "Reflect",
+ prefix .. "Foundation",
+ prefix .. "Platform",
}
project( prefix .. "PreprocessingPc" )
@@ -58,14 +60,14 @@ project( prefix .. "PreprocessingPc" )
prefix .. "GraphicsJobs",
prefix .. "Graphics",
prefix .. "PcSupport",
+ prefix .. "MathSimd",
-- core
- prefix .. "Platform",
- prefix .. "Foundation",
- prefix .. "Reflect",
- prefix .. "Persist",
prefix .. "Math",
- prefix .. "MathSimd",
+ prefix .. "Persist",
+ prefix .. "Reflect",
+ prefix .. "Foundation",
+ prefix .. "Platform",
}
project( prefix .. "EditorSupport" )
@@ -102,14 +104,14 @@ project( prefix .. "EditorSupport" )
prefix .. "Framework",
prefix .. "PcSupport",
prefix .. "PreprocessingPc",
+ prefix .. "MathSimd",
-- core
- prefix .. "Platform",
- prefix .. "Foundation",
- prefix .. "Reflect",
- prefix .. "Persist",
prefix .. "Math",
- prefix .. "MathSimd",
+ prefix .. "Persist",
+ prefix .. "Reflect",
+ prefix .. "Foundation",
+ prefix .. "Platform",
"freetype",
"libpng",
@@ -141,16 +143,16 @@ project( prefix .. "EditorScene" )
prefix .. "PcSupport",
prefix .. "PreprocessingPc",
prefix .. "EditorSupport",
+ prefix .. "MathSimd",
-- core
- prefix .. "Platform",
- prefix .. "Foundation",
- prefix .. "Application",
- prefix .. "Reflect",
- prefix .. "Persist",
prefix .. "Inspect",
prefix .. "Math",
- prefix .. "MathSimd",
+ prefix .. "Persist",
+ prefix .. "Reflect",
+ prefix .. "Application",
+ prefix .. "Foundation",
+ prefix .. "Platform",
}
if _OPTIONS[ "gfxapi" ] == "direct3d" then
@@ -188,6 +190,7 @@ project( prefix .. "Editor" )
defines
{
+ "HELIUM_HEAP=1",
"HELIUM_MODULE=Editor",
"WXUSINGDLL=1",
"wxNO_EXPAT_LIB=1",
@@ -199,6 +202,7 @@ project( prefix .. "Editor" )
includedirs
{
+ "Source/Tools/Editor",
"Dependencies/freetype/include",
"Dependencies/p4api/include",
"Dependencies/wxWidgets/include",
@@ -206,14 +210,9 @@ project( prefix .. "Editor" )
"Example",
}
- if os.host() == "windows" then
+ if _OPTIONS["pch"] then
pchheader( "Precompile.h" )
pchsource( "Source/Tools/Editor/Precompile.cpp" )
- else
- includedirs
- {
- "Source/Tools/Editor",
- }
end
if _OPTIONS[ "gfxapi" ] == "direct3d" then
@@ -246,11 +245,11 @@ project( prefix .. "Editor" )
prefix .. "Windowing",
prefix .. "EngineJobs",
prefix .. "Engine",
+ prefix .. "MathSimd",
-- core
- prefix .. "MathSimd",
- prefix .. "Math",
prefix .. "Inspect",
+ prefix .. "Math",
prefix .. "Persist",
prefix .. "Reflect",
prefix .. "Application",
@@ -590,3 +589,4 @@ project( prefix .. "Editor" )
Helium.DoGameModuleProjectSettings( "PhysicsDemo" )
Helium.DoGameModuleProjectSettings( "ShapeShooter" )
Helium.DoGameModuleProjectSettings( "SideScroller" )
+Helium.DoGameModuleProjectSettings( "TestBull" )
diff --git a/Helium.lua b/premake.lua
similarity index 94%
rename from Helium.lua
rename to premake.lua
index 346fcdfc2..dcc882065 100644
--- a/Helium.lua
+++ b/premake.lua
@@ -1,4 +1,4 @@
-require "Dependencies/Helium"
+require "Dependencies/premake"
Helium.CheckEnvironment = function ()
@@ -94,11 +94,6 @@ Helium.DoBasicProjectSettings = function()
"FatalWarnings",
}
- defines
- {
- "HELIUM_HEAP=1",
- }
-
if _OPTIONS[ "gfxapi" ] == "direct3d" then
defines
{
@@ -134,10 +129,12 @@ Helium.DoBasicProjectSettings = function()
includedirs
{
- "Source/Core",
+ "Core/Source",
"Source/Engine",
"Source/Tools",
- "Dependencies",
+ "Dependencies/rapidjson/include",
+ "Dependencies/mongo-c/src",
+ "Dependencies/ois/includes",
}
configuration { "windows", "SharedLib or *App" }
@@ -182,11 +179,6 @@ Helium.DoTestsProjectSettings = function()
Helium.DoBasicProjectSettings()
- defines
- {
- "HELIUM_MODULE=Tests"
- }
-
includedirs
{
".",
@@ -294,25 +286,25 @@ Helium.DoModuleProjectSettings = function( baseDirectory, tokenPrefix, moduleNam
defines
{
+ "HELIUM_HEAP=1",
"HELIUM_MODULE=" .. moduleName
}
- if os.host() == "windows" then
-
- local header = "Precompile.h"
- if os.host() == "macosx" then
- header = path.join( moduleName, header )
- header = path.join( baseDirectory, header )
- header = path.join( "..", header )
- header = path.join( "..", header )
- end
- pchheader( header )
+ if _OPTIONS["pch"] then
+ pchheader( "Precompile.h" )
local source = "Precompile.cpp"
source = path.join( moduleName, source )
source = path.join( baseDirectory, source )
pchsource( source )
-
+
+ local include = ""
+ source = path.join( moduleName, include )
+ source = path.join( baseDirectory, include )
+ includedirs
+ {
+ include,
+ }
end
Helium.DoBasicProjectSettings()
@@ -357,6 +349,7 @@ Helium.DoGameProjectSettings = function( name )
defines
{
+ "HELIUM_HEAP=1",
"HELIUM_MODULE=Game",
}
@@ -407,9 +400,9 @@ Helium.DoGameProjectSettings = function( name )
prefix .. "Windowing",
prefix .. "EngineJobs",
prefix .. "Engine",
+ prefix .. "MathSimd",
-- core
- prefix .. "MathSimd",
prefix .. "Math",
prefix .. "Persist",
prefix .. "Reflect",
@@ -488,10 +481,14 @@ Helium.DoGameModuleProjectSettings = function( name )
"Projects",
}
- configuration "windows"
+ if _OPTIONS["pch"] then
pchheader( "Precompile.h" )
pchsource( "Projects/" .. name .. "/Source/Module/Precompile.cpp" )
- configuration {}
+ includedirs
+ {
+ "Projects/" .. name .. "/Source/Module",
+ }
+ end
files
{
@@ -532,8 +529,6 @@ Helium.DoGameMainProjectSettings = function( name )
Helium.DoGameProjectSettings()
- entrypoint "WinMainCRTStartup"
-
files
{
"Projects/" .. name .. "/Source/Module/*.cpp",
@@ -542,17 +537,21 @@ Helium.DoGameMainProjectSettings = function( name )
"Projects/" .. name .. "/Source/Main/*.h",
}
+ includedirs
+ {
+ "Projects/" .. name .. "/Source/Module"
+ }
+
+ if _OPTIONS["pch"] then
+ pchheader( "Precompile.h" )
+ pchsource( "Projects/" .. name .. "/Source/Module/Precompile.cpp" )
+ end
+
configuration "windows"
+ entrypoint "WinMainCRTStartup"
files
{
"Projects/" .. name .. "/Source/Main/*.rc",
}
- pchheader( "Precompile.h" )
- pchsource( "Projects/" .. name .. "/Source/Module/Precompile.cpp" )
-
- configuration "not windows"
- includedirs { "Projects/" .. name .. "/Source/Module" }
-
- configuration {}
end
diff --git a/premake5.lua b/premake5.lua
index 2bd6f6b63..51c73a0de 100644
--- a/premake5.lua
+++ b/premake5.lua
@@ -1,4 +1,4 @@
-require "Helium"
+require "./premake"
function PublishBundle( bin )
@@ -8,6 +8,10 @@ function PublishBundle( bin )
os.execute("robocopy /njs /nfl /ndl /nc /ns /np /MIR \"Source\\Tools\\Editor\\Icons\\Helium\" \"Bin\\Profile\\Icons\" *.png")
os.execute("robocopy /njs /nfl /ndl /nc /ns /np /MIR \"Source\\Tools\\Editor\\Icons\\Helium\" \"Bin\\Release\\Icons\" *.png")
elseif os.host() == "macosx" then
+ os.execute("mkdir -p Bin/Debug/" .. Helium.GetBundleResourcePath())
+ os.execute("mkdir -p Bin/Intermediate/" .. Helium.GetBundleResourcePath())
+ os.execute("mkdir -p Bin/Profile/" .. Helium.GetBundleResourcePath())
+ os.execute("mkdir -p Bin/Release/" .. Helium.GetBundleResourcePath())
os.copyfile( "Source/Tools/Editor/Icons/Helium.icns", "Bin/Debug/" .. Helium.GetBundleResourcePath() )
os.copyfile( "Source/Tools/Editor/Icons/Helium.icns", "Bin/Intermediate/" .. Helium.GetBundleResourcePath() )
os.copyfile( "Source/Tools/Editor/Icons/Helium.icns", "Bin/Profile/" .. Helium.GetBundleResourcePath() )
@@ -29,12 +33,26 @@ function PublishBundle( bin )
end
-newoption {
+newoption
+{
trigger = "core",
description = "Core components only",
}
-newoption {
+newoption
+{
+ trigger = "pch",
+ description = "Build with precompiled headers",
+}
+
+if not _OPTIONS[ "pch" ] then
+ if os.host() == "windows" then
+ _OPTIONS[ "pch" ] = true
+ end
+end
+
+newoption
+{
trigger = "gfxapi",
value = "API",
description = "Choose a particular 3D API for rendering",
@@ -60,7 +78,7 @@ if _ACTION then
PublishBundle()
end
- workspace "Helium"
+ workspace "Engine"
startproject "Helium-Tools-Editor"
Helium.DoBasicWorkspaceSettings()
@@ -81,10 +99,7 @@ if _ACTION then
targetdir( "Bin/Release/" .. Helium.GetBundleExecutablePath() )
libdirs { "Bin/Release/" .. Helium.GetBundleExecutablePath() }
- tools = false
- dofile "Runtime.lua"
-
- tools = true
- dofile "Tools.lua"
+ dofile "premake-runtime.lua"
+ dofile "premake-tools.lua"
end
\ No newline at end of file