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