Compare commits
4 Commits
1e7548a0a2
...
040c6b0e46
Author | SHA1 | Date | |
---|---|---|---|
040c6b0e46 | |||
5cc96939d4 | |||
a9b2d7e6fc | |||
27c6b7bb98 |
130
.clang-format
Normal file
130
.clang-format
Normal file
@ -0,0 +1,130 @@
|
|||||||
|
# Checkout config tool: https://zed0.co.uk/clang-format-configurator/
|
||||||
|
# Or http://cf.monofraps.net/
|
||||||
|
# https://clang.llvm.org/docs/ClangFormatStyleOptions.html
|
||||||
|
# https://github.com/01org/parameter-framework/blob/master/.clang-format
|
||||||
|
|
||||||
|
# Tested on: clang-format version 6.0.1
|
||||||
|
|
||||||
|
|
||||||
|
# Common settings
|
||||||
|
BasedOnStyle: WebKit
|
||||||
|
TabWidth: 4
|
||||||
|
IndentWidth: 4
|
||||||
|
UseTab: Always
|
||||||
|
ColumnLimit: 100
|
||||||
|
|
||||||
|
# Other languages JavaScript, Proto
|
||||||
|
|
||||||
|
---
|
||||||
|
Language: Cpp
|
||||||
|
|
||||||
|
# http://releases.llvm.org/6.0.1/tools/clang/docs/ClangFormatStyleOptions.html#disabling-formatting-on-a-piece-of-code
|
||||||
|
# int formatted_code;
|
||||||
|
# // clang-format off
|
||||||
|
# void unformatted_code ;
|
||||||
|
# // clang-format on
|
||||||
|
# void formatted_code_again;
|
||||||
|
|
||||||
|
DisableFormat: false
|
||||||
|
Standard: Cpp11
|
||||||
|
|
||||||
|
AccessModifierOffset: -4
|
||||||
|
AlignAfterOpenBracket: true
|
||||||
|
AlignConsecutiveAssignments: false
|
||||||
|
AlignConsecutiveDeclarations: false
|
||||||
|
AlignEscapedNewlinesLeft: false
|
||||||
|
AlignOperands: true
|
||||||
|
AlignTrailingComments: false
|
||||||
|
AllowAllParametersOfDeclarationOnNextLine: true
|
||||||
|
AllowShortBlocksOnASingleLine: false
|
||||||
|
AllowShortCaseLabelsOnASingleLine: false
|
||||||
|
AllowShortFunctionsOnASingleLine: Empty
|
||||||
|
AllowShortIfStatementsOnASingleLine: false
|
||||||
|
AllowShortLoopsOnASingleLine: false
|
||||||
|
AlwaysBreakAfterDefinitionReturnType: false
|
||||||
|
AlwaysBreakAfterReturnType: None
|
||||||
|
AlwaysBreakBeforeMultilineStrings: false
|
||||||
|
AlwaysBreakTemplateDeclarations: true
|
||||||
|
BinPackArguments: false
|
||||||
|
BinPackParameters: false
|
||||||
|
|
||||||
|
# Configure each individual brace in BraceWrapping
|
||||||
|
BreakBeforeBraces: Custom
|
||||||
|
# Control of individual brace wrapping cases
|
||||||
|
BraceWrapping: {
|
||||||
|
AfterClass: 'true'
|
||||||
|
AfterControlStatement: 'true'
|
||||||
|
AfterEnum : 'true'
|
||||||
|
AfterFunction : 'true'
|
||||||
|
AfterNamespace : 'true'
|
||||||
|
AfterStruct : 'true'
|
||||||
|
AfterUnion : 'true'
|
||||||
|
BeforeCatch : 'true'
|
||||||
|
BeforeElse : 'true'
|
||||||
|
IndentBraces : 'false'
|
||||||
|
AfterExternBlock : 'true'
|
||||||
|
SplitEmptyFunction : 'false'
|
||||||
|
SplitEmptyRecord : 'false'
|
||||||
|
SplitEmptyNamespace : 'true'
|
||||||
|
}
|
||||||
|
|
||||||
|
BreakAfterJavaFieldAnnotations: true
|
||||||
|
BreakBeforeInheritanceComma: false
|
||||||
|
BreakBeforeBinaryOperators: None
|
||||||
|
BreakBeforeTernaryOperators: true
|
||||||
|
BreakConstructorInitializersBeforeComma: true
|
||||||
|
BreakStringLiterals: true
|
||||||
|
|
||||||
|
CommentPragmas: '^ IWYU pragma:'
|
||||||
|
CompactNamespaces: false
|
||||||
|
ConstructorInitializerAllOnOneLineOrOnePerLine: false
|
||||||
|
ConstructorInitializerIndentWidth: 4
|
||||||
|
ContinuationIndentWidth: 4
|
||||||
|
Cpp11BracedListStyle: true
|
||||||
|
SpaceBeforeCpp11BracedList: false
|
||||||
|
DerivePointerAlignment: false
|
||||||
|
ExperimentalAutoDetectBinPacking: false
|
||||||
|
ForEachMacros: [ foreach, Q_FOREACH, BOOST_FOREACH ]
|
||||||
|
IndentCaseLabels: false
|
||||||
|
FixNamespaceComments: true
|
||||||
|
IndentWrappedFunctionNames: false
|
||||||
|
KeepEmptyLinesAtTheStartOfBlocks: true
|
||||||
|
MacroBlockBegin: ''
|
||||||
|
MacroBlockEnd: ''
|
||||||
|
JavaScriptQuotes: Double
|
||||||
|
MaxEmptyLinesToKeep: 1
|
||||||
|
NamespaceIndentation: All
|
||||||
|
ObjCBlockIndentWidth: 4
|
||||||
|
ObjCSpaceAfterProperty: true
|
||||||
|
ObjCSpaceBeforeProtocolList: true
|
||||||
|
PenaltyBreakBeforeFirstCallParameter: 19
|
||||||
|
PenaltyBreakComment: 300
|
||||||
|
PenaltyBreakFirstLessLess: 120
|
||||||
|
PenaltyBreakString: 1000
|
||||||
|
|
||||||
|
PenaltyExcessCharacter: 1000000
|
||||||
|
PenaltyReturnTypeOnItsOwnLine: 60
|
||||||
|
PointerAlignment: Left
|
||||||
|
SpaceAfterCStyleCast: false
|
||||||
|
SpaceBeforeAssignmentOperators: true
|
||||||
|
SpaceBeforeParens: Never
|
||||||
|
SpaceInEmptyParentheses: false
|
||||||
|
SpacesBeforeTrailingComments: 1
|
||||||
|
SpacesInAngles: false
|
||||||
|
SpacesInContainerLiterals: true
|
||||||
|
SpacesInCStyleCastParentheses: false
|
||||||
|
SpacesInParentheses: false
|
||||||
|
SpacesInSquareBrackets: false
|
||||||
|
SpaceAfterTemplateKeyword: true
|
||||||
|
SpaceBeforeInheritanceColon: true
|
||||||
|
|
||||||
|
SortUsingDeclarations: true
|
||||||
|
SortIncludes: true
|
||||||
|
|
||||||
|
# Comments are for developers, they should arrange them
|
||||||
|
ReflowComments: false
|
||||||
|
|
||||||
|
IncludeBlocks: Preserve
|
||||||
|
IndentPPDirectives: AfterHash
|
||||||
|
---
|
||||||
|
|
47
.clang-tidy
Normal file
47
.clang-tidy
Normal file
@ -0,0 +1,47 @@
|
|||||||
|
Checks: 'cppcoreguidelines-*,
|
||||||
|
performance-*,
|
||||||
|
modernize-*,
|
||||||
|
google-*,
|
||||||
|
misc-*
|
||||||
|
cert-*,
|
||||||
|
readability-*,
|
||||||
|
clang-analyzer-*,
|
||||||
|
-performance-unnecessary-value-param,
|
||||||
|
-modernize-use-trailing-return-type,
|
||||||
|
-google-runtime-references,
|
||||||
|
-misc-non-private-member-variables-in-classes,
|
||||||
|
-readability-braces-around-statements,
|
||||||
|
-google-readability-braces-around-statements,
|
||||||
|
-cppcoreguidelines-avoid-magic-numbers,
|
||||||
|
-readability-magic-numbers,
|
||||||
|
-readability-magic-numbers,
|
||||||
|
-cppcoreguidelines-pro-type-vararg,
|
||||||
|
-cppcoreguidelines-pro-bounds-pointer-arithmetic,
|
||||||
|
-cppcoreguidelines-avoid-c-arrays,
|
||||||
|
-modernize-avoid-c-arrays,
|
||||||
|
-cppcoreguidelines-pro-bounds-array-to-pointer-decay,
|
||||||
|
-readability-named-parameter,
|
||||||
|
-cert-env33-c
|
||||||
|
'
|
||||||
|
|
||||||
|
|
||||||
|
WarningsAsErrors: ''
|
||||||
|
FormatStyle: none
|
||||||
|
|
||||||
|
CheckOptions:
|
||||||
|
- key: google-readability-braces-around-statements.ShortStatementLines
|
||||||
|
value: '1'
|
||||||
|
- key: google-readability-function-size.StatementThreshold
|
||||||
|
value: '800'
|
||||||
|
- key: google-readability-namespace-comments.ShortNamespaceLines
|
||||||
|
value: '10'
|
||||||
|
- key: modernize-loop-convert.MaxCopySize
|
||||||
|
value: '16'
|
||||||
|
- key: modernize-loop-convert.MinConfidence
|
||||||
|
value: reasonable
|
||||||
|
- key: modernize-pass-by-value.IncludeStyle
|
||||||
|
value: llvm
|
||||||
|
- key: modernize-replace-auto-ptr.IncludeStyle
|
||||||
|
value: llvm
|
||||||
|
- key: modernize-use-nullptr.NullMacros
|
||||||
|
value: 'NULL'
|
@ -1,30 +0,0 @@
|
|||||||
#pragma once
|
|
||||||
|
|
||||||
#include "Core/Math/Boilerplate.h"
|
|
||||||
|
|
||||||
|
|
||||||
namespace Phanes::Core::Math::SIMD
|
|
||||||
{
|
|
||||||
|
|
||||||
// Structure to conveniently align arrays.
|
|
||||||
template<typename T, size_t L>
|
|
||||||
struct alignas(sizeof(T) * 4) AlignedVec
|
|
||||||
{
|
|
||||||
public:
|
|
||||||
T data[L];
|
|
||||||
|
|
||||||
AlignedVec(const T* n_aligned_data)
|
|
||||||
{
|
|
||||||
for (size_t i = 0; i < L; ++i)
|
|
||||||
{
|
|
||||||
data[i] = n_aligned_data[i];
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
const T* Get()
|
|
||||||
{
|
|
||||||
return data;
|
|
||||||
}
|
|
||||||
};
|
|
||||||
|
|
||||||
}
|
|
36
Engine/Source/Runtime/Core/Math/SIMD/Alignment.hpp
Normal file
36
Engine/Source/Runtime/Core/Math/SIMD/Alignment.hpp
Normal file
@ -0,0 +1,36 @@
|
|||||||
|
#pragma once
|
||||||
|
|
||||||
|
#include <cstdlib>
|
||||||
|
#include <cstring>
|
||||||
|
#include <type_traits>
|
||||||
|
|
||||||
|
namespace Phanes::Core::Math::SIMD
|
||||||
|
{
|
||||||
|
// Structure to conveniently align arrays.
|
||||||
|
template <typename T, size_t L, size_t Align>
|
||||||
|
struct alignas(Align) AlignedVec
|
||||||
|
{
|
||||||
|
public:
|
||||||
|
static_assert(std::is_trivially_copyable_v<T>,
|
||||||
|
"Alignment.hpp: AlignedVecSSE must be trivially copyable.");
|
||||||
|
static_assert(Align >= alignof(T) && (Align & (Align - 1)) == 0,
|
||||||
|
"Alignment.hpp: Alignment must be a power of two and >= alignof(T).");
|
||||||
|
T data[L];
|
||||||
|
|
||||||
|
explicit AlignedVec(const T* n_aligned_data)
|
||||||
|
{
|
||||||
|
std::memcpy(data, n_aligned_data, sizeof(T) * L);
|
||||||
|
}
|
||||||
|
|
||||||
|
const T* Get() const
|
||||||
|
{
|
||||||
|
return data;
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
template <typename T, size_t L>
|
||||||
|
using AlignedVecSSE = AlignedVec<T, L, 16>;
|
||||||
|
|
||||||
|
template <typename T, size_t L>
|
||||||
|
using AlignedVecAVX = AlignedVec<T, L, 32>;
|
||||||
|
} // namespace Phanes::Core::Math::SIMD
|
@ -1,7 +1,7 @@
|
|||||||
#pragma once
|
#pragma once
|
||||||
|
|
||||||
#include "StartingPointPCH.h"
|
|
||||||
#include "Core/Core.h"
|
#include "Core/Core.h"
|
||||||
|
#include "StartingPointPCH.h"
|
||||||
|
|
||||||
// Entrypoint class for any Phanes game.
|
// Entrypoint class for any Phanes game.
|
||||||
|
|
||||||
@ -11,12 +11,11 @@ namespace Phanes::Core::Application
|
|||||||
{
|
{
|
||||||
|
|
||||||
private:
|
private:
|
||||||
|
|
||||||
std::string projectName;
|
std::string projectName;
|
||||||
|
|
||||||
public:
|
public:
|
||||||
|
|
||||||
PhanesProject(std::string _ProjectName);
|
PhanesProject(std::string _ProjectName);
|
||||||
|
|
||||||
virtual ~PhanesProject();
|
virtual ~PhanesProject();
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -30,12 +29,12 @@ namespace Phanes::Core::Application
|
|||||||
|
|
||||||
std::string GetName();
|
std::string GetName();
|
||||||
|
|
||||||
|
PhanesProject(const PhanesProject&) = delete;
|
||||||
|
PhanesProject& operator=(const PhanesProject&) = delete;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Function to be overwriten by client.
|
* Function to be overwriten by client.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
PhanesProject* CreatePhanesGame();
|
PhanesProject* CreatePhanesGame();
|
||||||
}
|
} // namespace Phanes::Core::Application
|
||||||
|
@ -10,7 +10,7 @@ int main()
|
|||||||
PENGINE_LOG_INFO("Logger initialized!");
|
PENGINE_LOG_INFO("Logger initialized!");
|
||||||
PENGINE_LOG_INFO("Welcome to PhanesEngine!");
|
PENGINE_LOG_INFO("Welcome to PhanesEngine!");
|
||||||
|
|
||||||
auto phanes_game = Phanes::Core::Application::CreatePhanesGame();
|
auto* phanes_game = Phanes::Core::Application::CreatePhanesGame();
|
||||||
|
|
||||||
phanes_game->Run();
|
phanes_game->Run();
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user