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,41 +1,40 @@
|
||||
#pragma once
|
||||
|
||||
#include "StartingPointPCH.h"
|
||||
#include "Core/Core.h"
|
||||
#include "StartingPointPCH.h"
|
||||
|
||||
// Entrypoint class for any Phanes game.
|
||||
// Entrypoint class for any Phanes game.
|
||||
|
||||
namespace Phanes::Core::Application
|
||||
{
|
||||
class PhanesProject
|
||||
{
|
||||
|
||||
private:
|
||||
class PhanesProject
|
||||
{
|
||||
|
||||
std::string projectName;
|
||||
private:
|
||||
std::string projectName;
|
||||
|
||||
public:
|
||||
public:
|
||||
PhanesProject(std::string _ProjectName);
|
||||
|
||||
PhanesProject(std::string _ProjectName);
|
||||
virtual ~PhanesProject();
|
||||
virtual ~PhanesProject();
|
||||
|
||||
/**
|
||||
* PhanesEngine main loop.
|
||||
/**
|
||||
* PhanesEngine main loop.
|
||||
*/
|
||||
void Run();
|
||||
|
||||
/**
|
||||
* Getter for project name;
|
||||
*/
|
||||
|
||||
std::string GetName();
|
||||
|
||||
PhanesProject(const PhanesProject&) = delete;
|
||||
PhanesProject& operator=(const PhanesProject&) = delete;
|
||||
};
|
||||
|
||||
/**
|
||||
* Function to be overwriten by client.
|
||||
*/
|
||||
void Run();
|
||||
|
||||
/**
|
||||
* Getter for project name;
|
||||
*/
|
||||
|
||||
std::string GetName();
|
||||
|
||||
};
|
||||
|
||||
|
||||
/**
|
||||
* Function to be overwriten by client.
|
||||
*/
|
||||
|
||||
PhanesProject* CreatePhanesGame();
|
||||
}
|
||||
PhanesProject* CreatePhanesGame();
|
||||
} // namespace Phanes::Core::Application
|
||||
|
@ -6,17 +6,17 @@ extern Phanes::Core::Application::PhanesProject* Phanes::Core::Application::Crea
|
||||
|
||||
int main()
|
||||
{
|
||||
Phanes::Core::Logging::Logger::Init();
|
||||
PENGINE_LOG_INFO("Logger initialized!");
|
||||
PENGINE_LOG_INFO("Welcome to PhanesEngine!");
|
||||
Phanes::Core::Logging::Logger::Init();
|
||||
PENGINE_LOG_INFO("Logger initialized!");
|
||||
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();
|
||||
|
||||
delete phanes_game;
|
||||
delete phanes_game;
|
||||
|
||||
return 0;
|
||||
return 0;
|
||||
}
|
||||
|
||||
#endif
|
||||
#endif
|
||||
|
Loading…
x
Reference in New Issue
Block a user