Add '.clang-format' file, CI integration, and formatting exceptions

Co-authored-by: Vittorio Romeo <vittorio.romeo@outlook.com>
Co-authored-by: Chris Thrasher <chrisjthrasher@gmail.com>
Co-authored-by: kimci86 <kimci86@hotmail.fr>
This commit is contained in:
metaquarx 2022-02-17 19:32:28 +00:00 committed by Lukas Dürrenberger
parent c6f7fcaa2a
commit 88e9f82bee
34 changed files with 375 additions and 4 deletions

167
.clang-format Normal file
View File

@ -0,0 +1,167 @@
---
# Project
Standard: c++17
ColumnLimit: 120
# Indentation
AccessModifierOffset: -4
BitFieldColonSpacing: Both
ContinuationIndentWidth: 4
IndentCaseLabels: true
IndentCaseBlocks: false
IndentExternBlock: Indent
IndentPPDirectives: None
IndentRequires: true
IndentWidth: 4
IndentWrappedFunctionNames: true
TabWidth: 4
UseTab: Never
# Alignment
AlignAfterOpenBracket: Align
AlignConsecutiveAssignments: Consecutive
AlignConsecutiveBitFields: Consecutive
AlignConsecutiveDeclarations: Consecutive
AlignConsecutiveMacros: Consecutive
AlignEscapedNewlines: Left
AlignOperands: Align
AlignTrailingComments: true
# Allow
AllowAllArgumentsOnNextLine: false
AllowAllConstructorInitializersOnNextLine: false
AllowAllParametersOfDeclarationOnNextLine: false
AllowShortBlocksOnASingleLine: Never
AllowShortCaseLabelsOnASingleLine: false
AllowShortEnumsOnASingleLine: false
AllowShortFunctionsOnASingleLine: None
AllowShortIfStatementsOnASingleLine: Never
AllowShortLoopsOnASingleLine: false
AllowShortLambdasOnASingleLine: All
# Break
AlwaysBreakAfterReturnType: None
AlwaysBreakBeforeMultilineStrings: true
AlwaysBreakTemplateDeclarations: Yes
BreakBeforeConceptDeclarations: true
BreakBeforeTernaryOperators: true
BreakConstructorInitializers: AfterColon
BreakBeforeBinaryOperators: None
BreakInheritanceList: AfterColon
BreakStringLiterals: true
# Initializers & arguments
BinPackArguments: false
BinPackParameters: false
ConstructorInitializerAllOnOneLineOrOnePerLine: true
ConstructorInitializerIndentWidth: 0
Cpp11BracedListStyle: true
# Braces
BreakBeforeBraces: Custom
BraceWrapping:
AfterCaseLabel: true
AfterClass: true
AfterControlStatement: Always
AfterEnum: true
AfterFunction: true
AfterNamespace: true
AfterStruct: true
AfterUnion: true
AfterExternBlock: true
BeforeCatch: false
BeforeElse: true
BeforeLambdaBody: true
BeforeWhile: false
IndentBraces: false
SplitEmptyFunction: true
SplitEmptyRecord: true
SplitEmptyNamespace: true
# Namespaces
CompactNamespaces: false
FixNamespaceComments: true
NamespaceIndentation: None
# Derive
DeriveLineEnding: false
DerivePointerAlignment: false
# Empty lines
EmptyLineBeforeAccessModifier: Always
KeepEmptyLinesAtTheStartOfBlocks: true
MaxEmptyLinesToKeep: 2
# Sorting
IncludeBlocks: Regroup
IncludeCategories:
- Priority: 1
Regex: '^<SFML\/Config.hpp>$'
- Priority: 2
Regex: '^<SFML\/(.+)\/Export.hpp>$'
- Priority: 3
Regex: '^<SFML\/'
- Priority: 4
Regex: '^<(glad|gl|X11|jni|android|stb_|GLES2|vorbis|doctest)'
- Priority: 5
Regex: '^<(.+)>$'
SortIncludes: true
SortUsingDeclarations: true
# Penalties
PenaltyBreakAssignment: 1000
PenaltyBreakBeforeFirstCallParameter: 1000
PenaltyBreakComment: 200
PenaltyBreakFirstLessLess: 100
PenaltyBreakString: 1
PenaltyBreakTemplateDeclaration: 0
PenaltyExcessCharacter: 5
PenaltyIndentedWhitespace: 1
PenaltyReturnTypeOnItsOwnLine: 500
# Pointer alignment
PointerAlignment: Left
# Comments
ReflowComments: false
# Spaces
SpaceAfterCStyleCast: false
SpaceAfterLogicalNot: false
SpaceAfterTemplateKeyword: true
SpaceAroundPointerQualifiers: Default
SpaceBeforeAssignmentOperators: true
SpaceBeforeCaseColon: false
SpaceBeforeCpp11BracedList: false
SpaceBeforeCtorInitializerColon: true
SpaceBeforeInheritanceColon: true
SpaceBeforeParens: ControlStatements
SpaceBeforeRangeBasedForLoopColon: true
SpaceBeforeSquareBrackets: false
SpaceInEmptyBlock: false
SpaceInEmptyParentheses: false
SpacesBeforeTrailingComments: 1
SpacesInAngles: false
SpacesInCStyleCastParentheses: false
SpacesInConditionalStatement: false
SpacesInContainerLiterals: false
SpacesInParentheses: false
SpacesInSquareBrackets: false
# Line endings
UseCRLF: false
---
Language: ObjC
IndentWidth: 4
BreakBeforeBraces: Custom
BraceWrapping:
AfterObjCDeclaration: true
ObjCBinPackProtocolList: Never
ObjCBlockIndentWidth: 4
ObjCBreakBeforeNestedBlockParam: true
ObjCSpaceAfterProperty: true
ObjCSpaceBeforeProtocolList: false
...

View File

@ -94,3 +94,30 @@ jobs:
directory: ./build directory: ./build
files: ./build/coverage.out files: ./build/coverage.out
fail_ci_if_error: true fail_ci_if_error: true
format:
name: Formatting on ${{ matrix.platform.name }}
runs-on: ${{ matrix.platform.os }}
strategy:
fail-fast: false
matrix:
platform:
- { name: Windows, os: windows-2022, executable: clang-format }
- { name: Linux, os: ubuntu-latest, executable: clang-format-12 }
- { name: macOS, os: macos-12, executable: clang-format }
steps:
- name: Checkout Code
uses: actions/checkout@v2
- name: Install macOS Dependencies
if: runner.os == 'macOS'
run: brew install clang-format
- name: Format Code
shell: bash
run: cmake -DCLANG_FORMAT_EXECUTABLE=${{ matrix.platform.executable }} -P $GITHUB_WORKSPACE/cmake/Format.cmake
- name: Check Formatting
run: git diff --exit-code

View File

@ -536,3 +536,12 @@ string(REGEX REPLACE "/" "\\\\\\\\" NSIS_IMAGE_PATH ${NSIS_IMAGE_PATH})
set(CPACK_NSIS_INSTALLER_MUI_ICON_CODE "!define MUI_WELCOMEFINISHPAGE_BITMAP \\\"${NSIS_IMAGE_PATH}sidebar.bmp\\\"\n!define MUI_HEADERIMAGE_BITMAP \\\"${NSIS_IMAGE_PATH}header.bmp\\\"\n!define MUI_ICON \\\"${NSIS_IMAGE_PATH}sfml.ico\\\"") set(CPACK_NSIS_INSTALLER_MUI_ICON_CODE "!define MUI_WELCOMEFINISHPAGE_BITMAP \\\"${NSIS_IMAGE_PATH}sidebar.bmp\\\"\n!define MUI_HEADERIMAGE_BITMAP \\\"${NSIS_IMAGE_PATH}header.bmp\\\"\n!define MUI_ICON \\\"${NSIS_IMAGE_PATH}sfml.ico\\\"")
include(CPack) include(CPack)
if(NOT CMAKE_PROJECT_NAME STREQUAL PROJECT_NAME)
return()
endif()
sfml_set_option(CLANG_FORMAT_EXECUTABLE clang-format STRING "Override clang-format executable, requires minimum version 12")
add_custom_target(format
COMMAND ${CMAKE_COMMAND} "-DCLANG_FORMAT_EXECUTABLE=${CLANG_FORMAT_EXECUTABLE}" -P ./cmake/Format.cmake
WORKING_DIRECTORY "${CMAKE_SOURCE_DIR}" VERBATIM)

30
cmake/Format.cmake Normal file
View File

@ -0,0 +1,30 @@
# Check executable exists
if(NOT EXISTS ${CLANG_FORMAT_EXECUTABLE})
find_program(CLANG_FORMAT_EXEC_TEMP ${CLANG_FORMAT_EXECUTABLE})
if(CLANG_FORMAT_EXEC_TEMP)
set(CLANG_FORMAT_EXECUTABLE ${CLANG_FORMAT_EXEC_TEMP})
unset(CLANG_FORMAT_EXEC_TEMP)
else()
message(FATAL_ERROR "Unable to find clang-format executable: \"${CLANG_FORMAT_EXECUTABLE}\"")
endif()
endif()
# Check executable version
execute_process(COMMAND ${CLANG_FORMAT_EXECUTABLE} --version OUTPUT_VARIABLE CLANG_FORMAT_VERSION)
string(REGEX MATCH "clang-format version ([0-9]+)" CLANG_FORMAT_VERSION ${CLANG_FORMAT_VERSION})
unset(CLANG_FORMAT_VERSION)
if(CMAKE_MATCH_1 GREATER_EQUAL 12)
message(STATUS "Using clang-format version ${CMAKE_MATCH_1}")
else()
message(FATAL_ERROR "clang-format version ${CMAKE_MATCH_1} is too low")
endif()
# Run
set(SOURCES "")
foreach(FOLDER IN ITEMS examples include src test tools)
file(GLOB_RECURSE folder_files "${FOLDER}/*.h" "${FOLDER}/*.hpp" "${FOLDER}/*.inl" "${FOLDER}/*.cpp" "${FOLDER}/*.mm")
list(FILTER folder_files EXCLUDE REGEX "gl.h|vulkan.h|stb_perlin.h") # 3rd party code to exclude from formatting
list(APPEND SOURCES ${folder_files})
endforeach()
execute_process(COMMAND ${CLANG_FORMAT_EXECUTABLE} -i ${SOURCES})

View File

@ -94,6 +94,7 @@
glRotatef(elapsedTime * 18.f, 0.f, 0.f, 1.f); glRotatef(elapsedTime * 18.f, 0.f, 0.f, 1.f);
// Define a 3D cube (6 faces made of 2 triangles composed by 3 vertices) // Define a 3D cube (6 faces made of 2 triangles composed by 3 vertices)
// clang-format off
constexpr std::array<GLfloat, 216> cube = constexpr std::array<GLfloat, 216> cube =
{ {
// positions // colors // positions // colors
@ -139,6 +140,7 @@
50, -50, 50, 0, 1, 1, 50, -50, 50, 0, 1, 1,
50, 50, 50, 0, 1, 1 50, 50, 50, 0, 1, 1
}; };
// clang-format on
// Draw the cube // Draw the cube
glVertexPointer(3, GL_FLOAT, 6 * sizeof(GLfloat), cube.data()); glVertexPointer(3, GL_FLOAT, 6 * sizeof(GLfloat), cube.data());

View File

@ -49,7 +49,9 @@ struct SFMLmainWindow;
} }
@property (retain) IBOutlet NSWindow* window; @property (retain) IBOutlet NSWindow* window;
@property (assign) IBOutlet NSView* sfmlView; @property (assign) IBOutlet NSView* sfmlView;
@property (assign) IBOutlet NSTextField* textField; @property (assign) IBOutlet NSTextField* textField;
-(IBAction)colorChanged:(NSPopUpButton*)sender; -(IBAction)colorChanged:(NSPopUpButton*)sender;

View File

@ -125,6 +125,7 @@ int main()
sf::Texture::bind(&texture); sf::Texture::bind(&texture);
// Define a 3D cube (6 faces made of 2 triangles composed by 3 vertices) // Define a 3D cube (6 faces made of 2 triangles composed by 3 vertices)
// clang-format off
constexpr std::array<GLfloat, 180> cube = constexpr std::array<GLfloat, 180> cube =
{ {
// positions // texture coordinates // positions // texture coordinates
@ -170,6 +171,7 @@ int main()
20, -20, 20, 1, 0, 20, -20, 20, 1, 0,
20, 20, 20, 1, 1 20, 20, 20, 1, 1
}; };
// clang-format on
// Enable position and texture coordinates vertex components // Enable position and texture coordinates vertex components
glEnableClientState(GL_VERTEX_ARRAY); glEnableClientState(GL_VERTEX_ARRAY);

View File

@ -43,12 +43,15 @@ namespace
void matrixRotateX(Matrix& result, sf::Angle angle) void matrixRotateX(Matrix& result, sf::Angle angle)
{ {
float rad = angle.asRadians(); float rad = angle.asRadians();
// clang-format off
Matrix matrix = { Matrix matrix = {
{1.f, 0.f, 0.f, 0.f}, {1.f, 0.f, 0.f, 0.f},
{0.f, std::cos(rad), std::sin(rad), 0.f}, {0.f, std::cos(rad), std::sin(rad), 0.f},
{0.f, -std::sin(rad), std::cos(rad), 0.f}, {0.f, -std::sin(rad), std::cos(rad), 0.f},
{0.f, 0.f, 0.f, 1.f} {0.f, 0.f, 0.f, 1.f}
}; };
// clang-format on
matrixMultiply(result, result, matrix); matrixMultiply(result, result, matrix);
} }
@ -57,12 +60,15 @@ namespace
void matrixRotateY(Matrix& result, sf::Angle angle) void matrixRotateY(Matrix& result, sf::Angle angle)
{ {
float rad = angle.asRadians(); float rad = angle.asRadians();
// clang-format off
Matrix matrix = { Matrix matrix = {
{ std::cos(rad), 0.f, std::sin(rad), 0.f}, { std::cos(rad), 0.f, std::sin(rad), 0.f},
{ 0.f, 1.f, 0.f, 0.f}, { 0.f, 1.f, 0.f, 0.f},
{-std::sin(rad), 0.f, std::cos(rad), 0.f}, {-std::sin(rad), 0.f, std::cos(rad), 0.f},
{ 0.f, 0.f, 0.f, 1.f} { 0.f, 0.f, 0.f, 1.f}
}; };
// clang-format on
matrixMultiply(result, result, matrix); matrixMultiply(result, result, matrix);
} }
@ -71,12 +77,15 @@ namespace
void matrixRotateZ(Matrix& result, sf::Angle angle) void matrixRotateZ(Matrix& result, sf::Angle angle)
{ {
float rad = angle.asRadians(); float rad = angle.asRadians();
// clang-format off
Matrix matrix = { Matrix matrix = {
{ std::cos(rad), std::sin(rad), 0.f, 0.f}, { std::cos(rad), std::sin(rad), 0.f, 0.f},
{-std::sin(rad), std::cos(rad), 0.f, 0.f}, {-std::sin(rad), std::cos(rad), 0.f, 0.f},
{ 0.f, 0.f, 1.f, 0.f}, { 0.f, 0.f, 1.f, 0.f},
{ 0.f, 0.f, 0.f, 1.f} { 0.f, 0.f, 0.f, 1.f}
}; };
// clang-format on
matrixMultiply(result, result, matrix); matrixMultiply(result, result, matrix);
} }
@ -85,11 +94,13 @@ namespace
void matrixLookAt(Matrix& result, const Vec3& eye, const Vec3& center, const Vec3& up) void matrixLookAt(Matrix& result, const Vec3& eye, const Vec3& center, const Vec3& up)
{ {
// Forward-looking vector // Forward-looking vector
// clang-format off
Vec3 forward = { Vec3 forward = {
center[0] - eye[0], center[0] - eye[0],
center[1] - eye[1], center[1] - eye[1],
center[2] - eye[2] center[2] - eye[2]
}; };
// clang-format on
// Normalize // Normalize
float factor = 1.0f / std::sqrt(forward[0] * forward[0] + forward[1] * forward[1] + forward[2] * forward[2]); float factor = 1.0f / std::sqrt(forward[0] * forward[0] + forward[1] * forward[1] + forward[2] * forward[2]);
@ -98,11 +109,13 @@ namespace
f *= factor; f *= factor;
// Side vector (Forward cross product Up) // Side vector (Forward cross product Up)
// clang-format off
Vec3 side = { Vec3 side = {
forward[1] * up[2] - forward[2] * up[1], forward[1] * up[2] - forward[2] * up[1],
forward[2] * up[0] - forward[0] * up[2], forward[2] * up[0] - forward[0] * up[2],
forward[0] * up[1] - forward[1] * up[0] forward[0] * up[1] - forward[1] * up[0]
}; };
// clang-format on
// Normalize // Normalize
factor = 1.0f / std::sqrt(side[0] * side[0] + side[1] * side[1] + side[2] * side[2]); factor = 1.0f / std::sqrt(side[0] * side[0] + side[1] * side[1] + side[2] * side[2]);
@ -1371,6 +1384,7 @@ public:
// Create our vertex buffer and upload its data // Create our vertex buffer and upload its data
void setupVertexBuffer() void setupVertexBuffer()
{ {
// clang-format off
constexpr std::array vertexData = { constexpr std::array vertexData = {
// X Y Z R G B A U V // X Y Z R G B A U V
-0.5f, -0.5f, 0.5f, 1.0f, 0.0f, 0.0f, 1.0f, 1.0f, 0.0f, -0.5f, -0.5f, 0.5f, 1.0f, 0.0f, 0.0f, 1.0f, 1.0f, 0.0f,
@ -1403,6 +1417,7 @@ public:
0.5f, 0.5f, 0.5f, 1.0f, 0.0f, 1.0f, 1.0f, 1.0f, 0.0f, 0.5f, 0.5f, 0.5f, 1.0f, 0.0f, 1.0f, 1.0f, 1.0f, 0.0f,
-0.5f, 0.5f, 0.5f, 1.0f, 0.0f, 1.0f, 1.0f, 0.0f, 0.0f -0.5f, 0.5f, 0.5f, 1.0f, 0.0f, 1.0f, 1.0f, 0.0f, 0.0f
}; };
// clang-format on
// Create a staging buffer that is writable by the CPU // Create a staging buffer that is writable by the CPU
VkBuffer stagingBuffer = 0; VkBuffer stagingBuffer = 0;
@ -1465,6 +1480,7 @@ public:
// Create our index buffer and upload its data // Create our index buffer and upload its data
void setupIndexBuffer() void setupIndexBuffer()
{ {
// clang-format off
constexpr std::array<std::uint16_t, 36> indexData = { constexpr std::array<std::uint16_t, 36> indexData = {
0, 1, 2, 0, 1, 2,
2, 3, 0, 2, 3, 0,
@ -1484,6 +1500,7 @@ public:
20, 21, 22, 20, 21, 22,
22, 23, 20 22, 23, 20
}; };
// clang-format on
// Create a staging buffer that is writable by the CPU // Create a staging buffer that is writable by the CPU
VkBuffer stagingBuffer = 0; VkBuffer stagingBuffer = 0;

View File

@ -74,6 +74,7 @@ int main()
#endif #endif
// Define a 3D cube (6 faces made of 2 triangles composed by 3 vertices) // Define a 3D cube (6 faces made of 2 triangles composed by 3 vertices)
// clang-format off
constexpr std::array<GLfloat, 252> cube = constexpr std::array<GLfloat, 252> cube =
{ {
// positions // colors (r, g, b, a) // positions // colors (r, g, b, a)
@ -119,6 +120,7 @@ int main()
50, -50, 50, 1, 1, 0, 1, 50, -50, 50, 1, 1, 0, 1,
50, 50, 50, 1, 1, 0, 1, 50, 50, 50, 1, 1, 0, 1,
}; };
// clang-format on
// Enable position and color vertex components // Enable position and color vertex components
glEnableClientState(GL_VERTEX_ARRAY); glEnableClientState(GL_VERTEX_ARRAY);

View File

@ -24,6 +24,7 @@
//////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////
// clang-format off
constexpr Transform::Transform() constexpr Transform::Transform()
// Identity matrix // Identity matrix
: m_matrix{1.f, 0.f, 0.f, 0.f, : m_matrix{1.f, 0.f, 0.f, 0.f,
@ -32,9 +33,11 @@ constexpr Transform::Transform()
0.f, 0.f, 0.f, 1.f} 0.f, 0.f, 0.f, 1.f}
{ {
} }
// clang-format on
//////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////
// clang-format off
constexpr Transform::Transform(float a00, float a01, float a02, constexpr Transform::Transform(float a00, float a01, float a02,
float a10, float a11, float a12, float a10, float a11, float a12,
float a20, float a21, float a22) float a20, float a21, float a22)
@ -44,6 +47,7 @@ constexpr Transform::Transform(float a00, float a01, float a02,
a02, a12, 0.f, a22} a02, a12, 0.f, a22}
{ {
} }
// clang-format on
//////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////
@ -56,15 +60,18 @@ constexpr const float* Transform::getMatrix() const
//////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////
constexpr Transform Transform::getInverse() const constexpr Transform Transform::getInverse() const
{ {
// clang-format off
// Compute the determinant // Compute the determinant
float det = m_matrix[0] * (m_matrix[15] * m_matrix[5] - m_matrix[7] * m_matrix[13]) - float det = m_matrix[0] * (m_matrix[15] * m_matrix[5] - m_matrix[7] * m_matrix[13]) -
m_matrix[1] * (m_matrix[15] * m_matrix[4] - m_matrix[7] * m_matrix[12]) + m_matrix[1] * (m_matrix[15] * m_matrix[4] - m_matrix[7] * m_matrix[12]) +
m_matrix[3] * (m_matrix[13] * m_matrix[4] - m_matrix[5] * m_matrix[12]); m_matrix[3] * (m_matrix[13] * m_matrix[4] - m_matrix[5] * m_matrix[12]);
// clang-format on
// Compute the inverse if the determinant is not zero // Compute the inverse if the determinant is not zero
// (don't use an epsilon because the determinant may *really* be tiny) // (don't use an epsilon because the determinant may *really* be tiny)
if (det != 0.f) if (det != 0.f)
{ {
// clang-format off
return Transform( (m_matrix[15] * m_matrix[5] - m_matrix[7] * m_matrix[13]) / det, return Transform( (m_matrix[15] * m_matrix[5] - m_matrix[7] * m_matrix[13]) / det,
-(m_matrix[15] * m_matrix[4] - m_matrix[7] * m_matrix[12]) / det, -(m_matrix[15] * m_matrix[4] - m_matrix[7] * m_matrix[12]) / det,
(m_matrix[13] * m_matrix[4] - m_matrix[5] * m_matrix[12]) / det, (m_matrix[13] * m_matrix[4] - m_matrix[5] * m_matrix[12]) / det,
@ -74,6 +81,7 @@ constexpr Transform Transform::getInverse() const
(m_matrix[7] * m_matrix[1] - m_matrix[3] * m_matrix[5]) / det, (m_matrix[7] * m_matrix[1] - m_matrix[3] * m_matrix[5]) / det,
-(m_matrix[7] * m_matrix[0] - m_matrix[3] * m_matrix[4]) / det, -(m_matrix[7] * m_matrix[0] - m_matrix[3] * m_matrix[4]) / det,
(m_matrix[5] * m_matrix[0] - m_matrix[1] * m_matrix[4]) / det); (m_matrix[5] * m_matrix[0] - m_matrix[1] * m_matrix[4]) / det);
// clang-format on
} }
else else
{ {
@ -107,12 +115,16 @@ constexpr FloatRect Transform::transformRect(const FloatRect& rectangle) const
float top = points[0].y; float top = points[0].y;
float right = points[0].x; float right = points[0].x;
float bottom = points[0].y; float bottom = points[0].y;
for (int i = 1; i < 4; ++i) for (int i = 1; i < 4; ++i)
{ {
if (points[i].x < left) left = points[i].x; // clang-format off
else if (points[i].x > right) right = points[i].x; if (points[i].x < left) left = points[i].x;
if (points[i].y < top) top = points[i].y; else if (points[i].x > right) right = points[i].x;
if (points[i].y < top) top = points[i].y;
else if (points[i].y > bottom) bottom = points[i].y; else if (points[i].y > bottom) bottom = points[i].y;
// clang-format on
} }
return FloatRect({left, top}, {right - left, bottom - top}); return FloatRect({left, top}, {right - left, bottom - top});
@ -125,6 +137,7 @@ constexpr Transform& Transform::combine(const Transform& transform)
const float* a = m_matrix; const float* a = m_matrix;
const float* b = transform.m_matrix; const float* b = transform.m_matrix;
// clang-format off
*this = Transform(a[0] * b[0] + a[4] * b[1] + a[12] * b[3], *this = Transform(a[0] * b[0] + a[4] * b[1] + a[12] * b[3],
a[0] * b[4] + a[4] * b[5] + a[12] * b[7], a[0] * b[4] + a[4] * b[5] + a[12] * b[7],
a[0] * b[12] + a[4] * b[13] + a[12] * b[15], a[0] * b[12] + a[4] * b[13] + a[12] * b[15],
@ -134,6 +147,7 @@ constexpr Transform& Transform::combine(const Transform& transform)
a[3] * b[0] + a[7] * b[1] + a[15] * b[3], a[3] * b[0] + a[7] * b[1] + a[15] * b[3],
a[3] * b[4] + a[7] * b[5] + a[15] * b[7], a[3] * b[4] + a[7] * b[5] + a[15] * b[7],
a[3] * b[12] + a[7] * b[13] + a[15] * b[15]); a[3] * b[12] + a[7] * b[13] + a[15] * b[15]);
// clang-format on
return *this; return *this;
} }
@ -142,9 +156,11 @@ constexpr Transform& Transform::combine(const Transform& transform)
//////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////
constexpr Transform& Transform::translate(const Vector2f& offset) constexpr Transform& Transform::translate(const Vector2f& offset)
{ {
// clang-format off
Transform translation(1, 0, offset.x, Transform translation(1, 0, offset.x,
0, 1, offset.y, 0, 1, offset.y,
0, 0, 1); 0, 0, 1);
// clang-format on
return combine(translation); return combine(translation);
} }
@ -153,9 +169,11 @@ constexpr Transform& Transform::translate(const Vector2f& offset)
//////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////
constexpr Transform& Transform::scale(const Vector2f& factors) constexpr Transform& Transform::scale(const Vector2f& factors)
{ {
// clang-format off
Transform scaling(factors.x, 0, 0, Transform scaling(factors.x, 0, 0,
0, factors.y, 0, 0, factors.y, 0,
0, 0, 1); 0, 0, 1);
// clang-format on
return combine(scaling); return combine(scaling);
} }
@ -164,9 +182,11 @@ constexpr Transform& Transform::scale(const Vector2f& factors)
//////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////
constexpr Transform& Transform::scale(const Vector2f& factors, const Vector2f& center) constexpr Transform& Transform::scale(const Vector2f& factors, const Vector2f& center)
{ {
// clang-format off
Transform scaling(factors.x, 0, center.x * (1 - factors.x), Transform scaling(factors.x, 0, center.x * (1 - factors.x),
0, factors.y, center.y * (1 - factors.y), 0, factors.y, center.y * (1 - factors.y),
0, 0, 1); 0, 0, 1);
// clang-format on
return combine(scaling); return combine(scaling);
} }
@ -199,9 +219,11 @@ constexpr bool operator ==(const Transform& left, const Transform& right)
const float* a = left.getMatrix(); const float* a = left.getMatrix();
const float* b = right.getMatrix(); const float* b = right.getMatrix();
// clang-format off
return ((a[0] == b[0]) && (a[1] == b[1]) && (a[3] == b[3]) && return ((a[0] == b[0]) && (a[1] == b[1]) && (a[3] == b[3]) &&
(a[4] == b[4]) && (a[5] == b[5]) && (a[7] == b[7]) && (a[4] == b[4]) && (a[5] == b[5]) && (a[7] == b[7]) &&
(a[12] == b[12]) && (a[13] == b[13]) && (a[15] == b[15])); (a[12] == b[12]) && (a[13] == b[13]) && (a[15] == b[15]));
// clang-format on
} }

View File

@ -47,6 +47,7 @@ OutputIt priv::copy(InputIt first, InputIt last, OutputIt d_first)
template <typename In> template <typename In>
In Utf<8>::decode(In begin, In end, Uint32& output, Uint32 replacement) In Utf<8>::decode(In begin, In end, Uint32& output, Uint32 replacement)
{ {
// clang-format off
// Some useful precomputed data // Some useful precomputed data
static constexpr int trailing[256] = static constexpr int trailing[256] =
{ {
@ -59,16 +60,20 @@ In Utf<8>::decode(In begin, In end, Uint32& output, Uint32 replacement)
1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 3, 3, 3, 3, 3, 3, 3, 3, 4, 4, 4, 4, 5, 5, 5, 5 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 3, 3, 3, 3, 3, 3, 3, 3, 4, 4, 4, 4, 5, 5, 5, 5
}; };
static constexpr Uint32 offsets[6] = static constexpr Uint32 offsets[6] =
{ {
0x00000000, 0x00003080, 0x000E2080, 0x03C82080, 0xFA082080, 0x82082080 0x00000000, 0x00003080, 0x000E2080, 0x03C82080, 0xFA082080, 0x82082080
}; };
// clang-format on
// decode the character // decode the character
int trailingBytes = trailing[static_cast<Uint8>(*begin)]; int trailingBytes = trailing[static_cast<Uint8>(*begin)];
if (begin + trailingBytes < end) if (begin + trailingBytes < end)
{ {
output = 0; output = 0;
// clang-format off
switch (trailingBytes) switch (trailingBytes)
{ {
case 5: output += static_cast<Uint8>(*begin++); output <<= 6; [[fallthrough]]; case 5: output += static_cast<Uint8>(*begin++); output <<= 6; [[fallthrough]];
@ -78,6 +83,8 @@ In Utf<8>::decode(In begin, In end, Uint32& output, Uint32 replacement)
case 1: output += static_cast<Uint8>(*begin++); output <<= 6; [[fallthrough]]; case 1: output += static_cast<Uint8>(*begin++); output <<= 6; [[fallthrough]];
case 0: output += static_cast<Uint8>(*begin++); case 0: output += static_cast<Uint8>(*begin++);
} }
// clang-format on
output -= offsets[trailingBytes]; output -= offsets[trailingBytes];
} }
else else
@ -114,13 +121,18 @@ Out Utf<8>::encode(Uint32 input, Out output, Uint8 replacement)
// Get the number of bytes to write // Get the number of bytes to write
std::size_t bytestoWrite = 1; std::size_t bytestoWrite = 1;
// clang-format off
if (input < 0x80) bytestoWrite = 1; if (input < 0x80) bytestoWrite = 1;
else if (input < 0x800) bytestoWrite = 2; else if (input < 0x800) bytestoWrite = 2;
else if (input < 0x10000) bytestoWrite = 3; else if (input < 0x10000) bytestoWrite = 3;
else if (input <= 0x0010FFFF) bytestoWrite = 4; else if (input <= 0x0010FFFF) bytestoWrite = 4;
// clang-format on
// Extract the bytes to write // Extract the bytes to write
Uint8 bytes[4]; Uint8 bytes[4];
// clang-format off
switch (bytestoWrite) switch (bytestoWrite)
{ {
case 4: bytes[3] = static_cast<Uint8>((input | 0x80) & 0xBF); input >>= 6; [[fallthrough]]; case 4: bytes[3] = static_cast<Uint8>((input | 0x80) & 0xBF); input >>= 6; [[fallthrough]];
@ -128,6 +140,7 @@ Out Utf<8>::encode(Uint32 input, Out output, Uint8 replacement)
case 2: bytes[1] = static_cast<Uint8>((input | 0x80) & 0xBF); input >>= 6; [[fallthrough]]; case 2: bytes[1] = static_cast<Uint8>((input | 0x80) & 0xBF); input >>= 6; [[fallthrough]];
case 1: bytes[0] = static_cast<Uint8> (input | firstBytes[bytestoWrite]); case 1: bytes[0] = static_cast<Uint8> (input | firstBytes[bytestoWrite]);
} }
// clang-format on
// Add them to the output // Add them to the output
output = priv::copy(bytes, bytes + bytestoWrite, output); output = priv::copy(bytes, bytes + bytestoWrite, output);

View File

@ -139,6 +139,8 @@ int AudioDevice::getFormatFromChannelCount(unsigned int channelCount)
// Find the good format according to the number of channels // Find the good format according to the number of channels
int format = 0; int format = 0;
// clang-format off
switch (channelCount) switch (channelCount)
{ {
case 1: format = AL_FORMAT_MONO16; break; case 1: format = AL_FORMAT_MONO16; break;
@ -149,6 +151,7 @@ int AudioDevice::getFormatFromChannelCount(unsigned int channelCount)
case 8: format = alGetEnumValue("AL_FORMAT_71CHN16"); break; case 8: format = alGetEnumValue("AL_FORMAT_71CHN16"); break;
default: format = 0; break; default: format = 0; break;
} }
// clang-format on
// Fixes a bug on OS X // Fixes a bug on OS X
if (format == -1) if (format == -1)

View File

@ -80,6 +80,7 @@ namespace
// Convert an sf::BlendMode::Factor constant to the corresponding OpenGL constant. // Convert an sf::BlendMode::Factor constant to the corresponding OpenGL constant.
sf::Uint32 factorToGlConstant(sf::BlendMode::Factor blendFactor) sf::Uint32 factorToGlConstant(sf::BlendMode::Factor blendFactor)
{ {
// clang-format off
switch (blendFactor) switch (blendFactor)
{ {
case sf::BlendMode::Zero: return GL_ZERO; case sf::BlendMode::Zero: return GL_ZERO;
@ -93,6 +94,7 @@ namespace
case sf::BlendMode::DstAlpha: return GL_DST_ALPHA; case sf::BlendMode::DstAlpha: return GL_DST_ALPHA;
case sf::BlendMode::OneMinusDstAlpha: return GL_ONE_MINUS_DST_ALPHA; case sf::BlendMode::OneMinusDstAlpha: return GL_ONE_MINUS_DST_ALPHA;
} }
// clang-format on
sf::err() << "Invalid value for sf::BlendMode::Factor! Fallback to sf::BlendMode::Zero." << std::endl; sf::err() << "Invalid value for sf::BlendMode::Factor! Fallback to sf::BlendMode::Zero." << std::endl;
assert(false); assert(false);

View File

@ -748,10 +748,12 @@ void Texture::bind(const Texture* texture, CoordinateType coordinateType)
// Check if we need to define a special texture matrix // Check if we need to define a special texture matrix
if ((coordinateType == Pixels) || texture->m_pixelsFlipped) if ((coordinateType == Pixels) || texture->m_pixelsFlipped)
{ {
// clang-format off
GLfloat matrix[16] = {1.f, 0.f, 0.f, 0.f, GLfloat matrix[16] = {1.f, 0.f, 0.f, 0.f,
0.f, 1.f, 0.f, 0.f, 0.f, 1.f, 0.f, 0.f,
0.f, 0.f, 1.f, 0.f, 0.f, 0.f, 1.f, 0.f,
0.f, 0.f, 0.f, 1.f}; 0.f, 0.f, 0.f, 1.f};
// clang-format on
// If non-normalized coordinates (= pixels) are requested, we need to // If non-normalized coordinates (= pixels) are requested, we need to
// setup scale factors that convert the range [0 .. size] to [0 .. 1] // setup scale factors that convert the range [0 .. size] to [0 .. 1]

View File

@ -39,9 +39,11 @@ Transform& Transform::rotate(Angle angle)
float cos = std::cos(rad); float cos = std::cos(rad);
float sin = std::sin(rad); float sin = std::sin(rad);
// clang-format off
Transform rotation(cos, -sin, 0, Transform rotation(cos, -sin, 0,
sin, cos, 0, sin, cos, 0,
0, 0, 1); 0, 0, 1);
// clang-format on
return combine(rotation); return combine(rotation);
} }
@ -54,9 +56,11 @@ Transform& Transform::rotate(Angle angle, const Vector2f& center)
float cos = std::cos(rad); float cos = std::cos(rad);
float sin = std::sin(rad); float sin = std::sin(rad);
// clang-format off
Transform rotation(cos, -sin, center.x * (1 - cos) + center.y * sin, Transform rotation(cos, -sin, center.x * (1 - cos) + center.y * sin,
sin, cos, center.y * (1 - cos) - center.x * sin, sin, cos, center.y * (1 - cos) - center.x * sin,
0, 0, 1); 0, 0, 1);
// clang-format on
return combine(rotation); return combine(rotation);
} }

View File

@ -151,9 +151,11 @@ const Transform& Transformable::getTransform() const
float tx = -m_origin.x * sxc - m_origin.y * sys + m_position.x; float tx = -m_origin.x * sxc - m_origin.y * sys + m_position.x;
float ty = m_origin.x * sxs - m_origin.y * syc + m_position.y; float ty = m_origin.x * sxs - m_origin.y * syc + m_position.y;
// clang-format off
m_transform = Transform( sxc, sys, tx, m_transform = Transform( sxc, sys, tx,
-sxs, syc, ty, -sxs, syc, ty,
0.f, 0.f, 1.f); 0.f, 0.f, 1.f);
// clang-format on
m_transformNeedUpdate = false; m_transformNeedUpdate = false;
} }

View File

@ -188,9 +188,11 @@ const Transform& View::getTransform() const
float d = -b * m_center.y; float d = -b * m_center.y;
// Rebuild the projection matrix // Rebuild the projection matrix
// clang-format off
m_transform = Transform( a * cosine, a * sine, a * tx + c, m_transform = Transform( a * cosine, a * sine, a * tx + c,
-b * sine, b * cosine, b * ty + d, -b * sine, b * cosine, b * ty + d,
0.f, 0.f, 1.f); 0.f, 0.f, 1.f);
// clang-format on
m_transformUpdated = true; m_transformUpdated = true;
} }

View File

@ -222,6 +222,7 @@ Packet& Packet::operator >>(Int64& data)
// to network byte order (big endian) manually // to network byte order (big endian) manually
Uint8 bytes[sizeof(data)]; Uint8 bytes[sizeof(data)];
std::memcpy(bytes, &m_data[m_readPos], sizeof(data)); std::memcpy(bytes, &m_data[m_readPos], sizeof(data));
data = (static_cast<Int64>(bytes[0]) << 56) | data = (static_cast<Int64>(bytes[0]) << 56) |
(static_cast<Int64>(bytes[1]) << 48) | (static_cast<Int64>(bytes[1]) << 48) |
(static_cast<Int64>(bytes[2]) << 40) | (static_cast<Int64>(bytes[2]) << 40) |
@ -230,6 +231,7 @@ Packet& Packet::operator >>(Int64& data)
(static_cast<Int64>(bytes[5]) << 16) | (static_cast<Int64>(bytes[5]) << 16) |
(static_cast<Int64>(bytes[6]) << 8) | (static_cast<Int64>(bytes[6]) << 8) |
(static_cast<Int64>(bytes[7]) ); (static_cast<Int64>(bytes[7]) );
m_readPos += sizeof(data); m_readPos += sizeof(data);
} }
@ -246,6 +248,7 @@ Packet& Packet::operator >>(Uint64& data)
// to network byte order (big endian) manually // to network byte order (big endian) manually
Uint8 bytes[sizeof(data)]; Uint8 bytes[sizeof(data)];
std::memcpy(bytes, &m_data[m_readPos], sizeof(data)); std::memcpy(bytes, &m_data[m_readPos], sizeof(data));
data = (static_cast<Uint64>(bytes[0]) << 56) | data = (static_cast<Uint64>(bytes[0]) << 56) |
(static_cast<Uint64>(bytes[1]) << 48) | (static_cast<Uint64>(bytes[1]) << 48) |
(static_cast<Uint64>(bytes[2]) << 40) | (static_cast<Uint64>(bytes[2]) << 40) |
@ -254,6 +257,7 @@ Packet& Packet::operator >>(Uint64& data)
(static_cast<Uint64>(bytes[5]) << 16) | (static_cast<Uint64>(bytes[5]) << 16) |
(static_cast<Uint64>(bytes[6]) << 8) | (static_cast<Uint64>(bytes[6]) << 8) |
(static_cast<Uint64>(bytes[7]) ); (static_cast<Uint64>(bytes[7]) );
m_readPos += sizeof(data); m_readPos += sizeof(data);
} }
@ -463,6 +467,7 @@ Packet& Packet::operator <<(Int64 data)
{ {
// Since htonll is not available everywhere, we have to convert // Since htonll is not available everywhere, we have to convert
// to network byte order (big endian) manually // to network byte order (big endian) manually
Uint8 toWrite[] = Uint8 toWrite[] =
{ {
static_cast<Uint8>((data >> 56) & 0xFF), static_cast<Uint8>((data >> 56) & 0xFF),
@ -474,6 +479,7 @@ Packet& Packet::operator <<(Int64 data)
static_cast<Uint8>((data >> 8) & 0xFF), static_cast<Uint8>((data >> 8) & 0xFF),
static_cast<Uint8>((data ) & 0xFF) static_cast<Uint8>((data ) & 0xFF)
}; };
append(&toWrite, sizeof(toWrite)); append(&toWrite, sizeof(toWrite));
return *this; return *this;
} }
@ -484,6 +490,7 @@ Packet& Packet::operator <<(Uint64 data)
{ {
// Since htonll is not available everywhere, we have to convert // Since htonll is not available everywhere, we have to convert
// to network byte order (big endian) manually // to network byte order (big endian) manually
Uint8 toWrite[] = Uint8 toWrite[] =
{ {
static_cast<Uint8>((data >> 56) & 0xFF), static_cast<Uint8>((data >> 56) & 0xFF),
@ -495,6 +502,7 @@ Packet& Packet::operator <<(Uint64 data)
static_cast<Uint8>((data >> 8) & 0xFF), static_cast<Uint8>((data >> 8) & 0xFF),
static_cast<Uint8>((data ) & 0xFF) static_cast<Uint8>((data ) & 0xFF)
}; };
append(&toWrite, sizeof(toWrite)); append(&toWrite, sizeof(toWrite));
return *this; return *this;
} }

View File

@ -95,6 +95,7 @@ Socket::Status SocketImpl::getErrorStatus()
if ((errno == EAGAIN) || (errno == EINPROGRESS)) if ((errno == EAGAIN) || (errno == EINPROGRESS))
return Socket::NotReady; return Socket::NotReady;
// clang-format off
switch (errno) switch (errno)
{ {
case EWOULDBLOCK: return Socket::NotReady; case EWOULDBLOCK: return Socket::NotReady;
@ -106,6 +107,7 @@ Socket::Status SocketImpl::getErrorStatus()
case EPIPE: return Socket::Disconnected; case EPIPE: return Socket::Disconnected;
default: return Socket::Error; default: return Socket::Error;
} }
// clang-format on
} }
} // namespace priv } // namespace priv

View File

@ -71,6 +71,7 @@ void SocketImpl::setBlocking(SocketHandle sock, bool block)
//////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////
Socket::Status SocketImpl::getErrorStatus() Socket::Status SocketImpl::getErrorStatus()
{ {
// clang-format off
switch (WSAGetLastError()) switch (WSAGetLastError())
{ {
case WSAEWOULDBLOCK: return Socket::NotReady; case WSAEWOULDBLOCK: return Socket::NotReady;
@ -83,6 +84,7 @@ Socket::Status SocketImpl::getErrorStatus()
case WSAEISCONN: return Socket::Done; // when connecting a non-blocking socket case WSAEISCONN: return Socket::Done; // when connecting a non-blocking socket
default: return Socket::Error; default: return Socket::Error;
} }
// clang-format on
} }

View File

@ -92,7 +92,9 @@ struct ActivityStates
}; };
SFML_SYSTEM_API ActivityStates*& getActivityStatesPtr(); SFML_SYSTEM_API ActivityStates*& getActivityStatesPtr();
SFML_SYSTEM_API void resetActivity(ActivityStates* initializedStates); SFML_SYSTEM_API void resetActivity(ActivityStates* initializedStates);
SFML_SYSTEM_API ActivityStates& getActivity(); SFML_SYSTEM_API ActivityStates& getActivity();
} // namespace priv } // namespace priv

View File

@ -564,6 +564,7 @@ int WindowImplAndroid::processPointerEvent(bool isDown, AInputEvent* _event, Act
//////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////
Keyboard::Key WindowImplAndroid::androidKeyToSF(int32_t key) Keyboard::Key WindowImplAndroid::androidKeyToSF(int32_t key)
{ {
// clang-format off
switch (key) switch (key)
{ {
case AKEYCODE_UNKNOWN: case AKEYCODE_UNKNOWN:
@ -680,6 +681,7 @@ Keyboard::Key WindowImplAndroid::androidKeyToSF(int32_t key)
case AKEYCODE_BUTTON_MODE: case AKEYCODE_BUTTON_MODE:
default: return Keyboard::Unknown; default: return Keyboard::Unknown;
} }
// clang-format on
} }

View File

@ -176,6 +176,7 @@ namespace
{ {
switch (code) switch (code)
{ {
// clang-format off
case KEY_ESC: return sf::Keyboard::Escape; case KEY_ESC: return sf::Keyboard::Escape;
case KEY_1: return sf::Keyboard::Num1; case KEY_1: return sf::Keyboard::Num1;
case KEY_2: return sf::Keyboard::Num2; case KEY_2: return sf::Keyboard::Num2;
@ -286,6 +287,7 @@ namespace
case KEY_SCROLLLOCK: case KEY_SCROLLLOCK:
default: default:
return sf::Keyboard::Unknown; return sf::Keyboard::Unknown;
// clang-format on
} }
} }

View File

@ -93,6 +93,7 @@ bool CursorImpl::loadFromSystem(Cursor::Type type)
AutoreleasePool pool; AutoreleasePool pool;
NSCursor* newCursor = nil; NSCursor* newCursor = nil;
// clang-format off
switch (type) switch (type)
{ {
default: return false; default: return false;
@ -129,6 +130,7 @@ bool CursorImpl::loadFromSystem(Cursor::Type type)
break; break;
#pragma clang diagnostic pop #pragma clang diagnostic pop
} }
// clang-format on
if (newCursor) if (newCursor)
{ {

View File

@ -403,6 +403,7 @@ UInt8 HIDInputManager::usageToVirtualCode(UInt32 usage)
{ {
// Some usage key doesn't have any corresponding virtual // Some usage key doesn't have any corresponding virtual
// code or it was not found (return 0xff). // code or it was not found (return 0xff).
// clang-format off
switch (usage) switch (usage)
{ {
case kHIDUsage_KeyboardErrorRollOver: return 0xff; case kHIDUsage_KeyboardErrorRollOver: return 0xff;
@ -602,12 +603,14 @@ UInt8 HIDInputManager::usageToVirtualCode(UInt32 usage)
case kHIDUsage_Keyboard_Reserved: return 0xff; case kHIDUsage_Keyboard_Reserved: return 0xff;
default: return 0xff; default: return 0xff;
} }
// clang-format on
} }
//////////////////////////////////////////////////////// ////////////////////////////////////////////////////////
Keyboard::Key HIDInputManager::localizedKeys(UniChar ch) Keyboard::Key HIDInputManager::localizedKeys(UniChar ch)
{ {
// clang-format off
switch (ch) switch (ch)
{ {
case 'a': case 'a':
@ -691,6 +694,7 @@ Keyboard::Key HIDInputManager::localizedKeys(UniChar ch)
// The key is not 'localized'. // The key is not 'localized'.
default: return sf::Keyboard::Unknown; default: return sf::Keyboard::Unknown;
} }
// clang-format on
} }
@ -699,6 +703,7 @@ Keyboard::Key HIDInputManager::nonLocalizedKeys(UniChar virtualKeycode)
{ {
// (Some) 0x code based on https://forums.macrumors.com/showthread.php?t=780577 // (Some) 0x code based on https://forums.macrumors.com/showthread.php?t=780577
// Some sf::Keyboard::Key are present twice. // Some sf::Keyboard::Key are present twice.
// clang-format off
switch (virtualKeycode) switch (virtualKeycode)
{ {
// These cases should not be used but anyway... // These cases should not be used but anyway...
@ -864,6 +869,7 @@ Keyboard::Key HIDInputManager::nonLocalizedKeys(UniChar virtualKeycode)
// An unknown key. // An unknown key.
default: return sf::Keyboard::Unknown; default: return sf::Keyboard::Unknown;
} }
// clang-format on
} }

View File

@ -165,6 +165,8 @@ bool CursorImpl::loadFromSystem(Cursor::Type type)
release(); release();
unsigned int shape; unsigned int shape;
// clang-format off
switch (type) switch (type)
{ {
default: return false; default: return false;
@ -188,6 +190,7 @@ bool CursorImpl::loadFromSystem(Cursor::Type type)
case Cursor::Help: shape = XC_question_arrow; break; case Cursor::Help: shape = XC_question_arrow; break;
case Cursor::NotAllowed: shape = XC_X_cursor; break; case Cursor::NotAllowed: shape = XC_X_cursor; break;
} }
// clang-format on
m_cursor = XCreateFontCursor(m_display, shape); m_cursor = XCreateFontCursor(m_display, shape);
return true; return true;

View File

@ -25,7 +25,11 @@
//////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////
// Headers // Headers
//////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////
// clang-format off
#include <SFML/Window/Unix/WindowImplX11.hpp> // important to be included first (conflict with None) #include <SFML/Window/Unix/WindowImplX11.hpp> // important to be included first (conflict with None)
// clang-format on
#include <SFML/Window/Unix/GlxContext.hpp> #include <SFML/Window/Unix/GlxContext.hpp>
#include <SFML/Window/Unix/Display.hpp> #include <SFML/Window/Unix/Display.hpp>
#include <SFML/System/Err.hpp> #include <SFML/System/Err.hpp>

View File

@ -25,7 +25,11 @@
//////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////
// Headers // Headers
//////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////
// clang-format off
#include <SFML/Window/Window.hpp> // important to be included first (conflict with None) #include <SFML/Window/Window.hpp> // important to be included first (conflict with None)
// clang-format on
#include <SFML/Window/Unix/InputImpl.hpp> #include <SFML/Window/Unix/InputImpl.hpp>
#include <SFML/Window/Unix/Display.hpp> #include <SFML/Window/Unix/Display.hpp>
#include <X11/Xlib.h> #include <X11/Xlib.h>
@ -41,6 +45,8 @@ bool InputImpl::isKeyPressed(Keyboard::Key key)
{ {
// Get the corresponding X11 keysym // Get the corresponding X11 keysym
KeySym keysym = 0; KeySym keysym = 0;
// clang-format off
switch (key) switch (key)
{ {
case Keyboard::LShift: keysym = XK_Shift_L; break; case Keyboard::LShift: keysym = XK_Shift_L; break;
@ -146,6 +152,7 @@ bool InputImpl::isKeyPressed(Keyboard::Key key)
case Keyboard::Num9: keysym = XK_9; break; case Keyboard::Num9: keysym = XK_9; break;
default: keysym = 0; break; default: keysym = 0; break;
} }
// clang-format on
// Sanity checks // Sanity checks
if (key < 0 || key >= sf::Keyboard::KeyCount) if (key < 0 || key >= sf::Keyboard::KeyCount)
@ -202,6 +209,7 @@ bool InputImpl::isMouseButtonPressed(Mouse::Button button)
// Close the connection with the X server // Close the connection with the X server
CloseDisplay(display); CloseDisplay(display);
// clang-format off
switch (button) switch (button)
{ {
case Mouse::Left: return buttons & Button1Mask; case Mouse::Left: return buttons & Button1Mask;
@ -211,6 +219,7 @@ bool InputImpl::isMouseButtonPressed(Mouse::Button button)
case Mouse::XButton2: return false; // not supported by X case Mouse::XButton2: return false; // not supported by X
default: return false; default: return false;
} }
// clang-format on
return false; return false;
} }

View File

@ -611,6 +611,7 @@ JoystickCaps JoystickImpl::getCapabilities() const
{ {
switch (m_mapping[i]) switch (m_mapping[i])
{ {
// clang-format off
case ABS_X: caps.axes[Joystick::X] = true; break; case ABS_X: caps.axes[Joystick::X] = true; break;
case ABS_Y: caps.axes[Joystick::Y] = true; break; case ABS_Y: caps.axes[Joystick::Y] = true; break;
case ABS_Z: case ABS_Z:
@ -621,7 +622,8 @@ JoystickCaps JoystickImpl::getCapabilities() const
case ABS_RY: caps.axes[Joystick::V] = true; break; case ABS_RY: caps.axes[Joystick::V] = true; break;
case ABS_HAT0X: caps.axes[Joystick::PovX] = true; break; case ABS_HAT0X: caps.axes[Joystick::PovX] = true; break;
case ABS_HAT0Y: caps.axes[Joystick::PovY] = true; break; case ABS_HAT0Y: caps.axes[Joystick::PovY] = true; break;
default: break; default: break;
// clang-format on
} }
} }

View File

@ -25,7 +25,11 @@
//////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////
// Headers // Headers
//////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////
// clang-format off
#include <SFML/Window/Unix/WindowImplX11.hpp> #include <SFML/Window/Unix/WindowImplX11.hpp>
// clang-format on
#include <SFML/Window/Unix/ClipboardImpl.hpp> #include <SFML/Window/Unix/ClipboardImpl.hpp>
#include <SFML/Window/Unix/Display.hpp> #include <SFML/Window/Unix/Display.hpp>
#include <SFML/Window/Unix/InputImpl.hpp> #include <SFML/Window/Unix/InputImpl.hpp>
@ -386,6 +390,7 @@ namespace
sf::Keyboard::Key keysymToSF(KeySym symbol) sf::Keyboard::Key keysymToSF(KeySym symbol)
{ {
// clang-format off
switch (symbol) switch (symbol)
{ {
case XK_Shift_L: return sf::Keyboard::LShift; case XK_Shift_L: return sf::Keyboard::LShift;
@ -491,6 +496,7 @@ namespace
case XK_8: return sf::Keyboard::Num8; case XK_8: return sf::Keyboard::Num8;
case XK_9: return sf::Keyboard::Num9; case XK_9: return sf::Keyboard::Num9;
} }
// clang-format on
return sf::Keyboard::Unknown; return sf::Keyboard::Unknown;
} }
@ -2015,6 +2021,8 @@ bool WindowImplX11::processEvent(XEvent& windowEvent)
event.type = Event::MouseButtonPressed; event.type = Event::MouseButtonPressed;
event.mouseButton.x = windowEvent.xbutton.x; event.mouseButton.x = windowEvent.xbutton.x;
event.mouseButton.y = windowEvent.xbutton.y; event.mouseButton.y = windowEvent.xbutton.y;
// clang-format off
switch(button) switch(button)
{ {
case Button1: event.mouseButton.button = Mouse::Left; break; case Button1: event.mouseButton.button = Mouse::Left; break;
@ -2023,6 +2031,8 @@ bool WindowImplX11::processEvent(XEvent& windowEvent)
case 8: event.mouseButton.button = Mouse::XButton1; break; case 8: event.mouseButton.button = Mouse::XButton1; break;
case 9: event.mouseButton.button = Mouse::XButton2; break; case 9: event.mouseButton.button = Mouse::XButton2; break;
} }
// clang-format on
pushEvent(event); pushEvent(event);
} }

View File

@ -146,6 +146,8 @@ bool CursorImpl::loadFromSystem(Cursor::Type type)
release(); release();
LPCTSTR shape = nullptr; LPCTSTR shape = nullptr;
// clang-format off
switch (type) switch (type)
{ {
case Cursor::Arrow: shape = IDC_ARROW; break; case Cursor::Arrow: shape = IDC_ARROW; break;
@ -170,6 +172,7 @@ bool CursorImpl::loadFromSystem(Cursor::Type type)
case Cursor::Help: shape = IDC_HELP; break; case Cursor::Help: shape = IDC_HELP; break;
case Cursor::NotAllowed: shape = IDC_NO; break; case Cursor::NotAllowed: shape = IDC_NO; break;
} }
// clang-format on
// Get the shared system cursor and make sure not to destroy it // Get the shared system cursor and make sure not to destroy it
m_cursor = LoadCursor(nullptr, shape); m_cursor = LoadCursor(nullptr, shape);

View File

@ -38,6 +38,8 @@ namespace priv
bool InputImpl::isKeyPressed(Keyboard::Key key) bool InputImpl::isKeyPressed(Keyboard::Key key)
{ {
int vkey = 0; int vkey = 0;
// clang-format off
switch (key) switch (key)
{ {
default: vkey = 0; break; default: vkey = 0; break;
@ -143,6 +145,7 @@ bool InputImpl::isKeyPressed(Keyboard::Key key)
case Keyboard::F15: vkey = VK_F15; break; case Keyboard::F15: vkey = VK_F15; break;
case Keyboard::Pause: vkey = VK_PAUSE; break; case Keyboard::Pause: vkey = VK_PAUSE; break;
} }
// clang-format on
return (GetAsyncKeyState(vkey) & 0x8000) != 0; return (GetAsyncKeyState(vkey) & 0x8000) != 0;
} }

View File

@ -992,6 +992,7 @@ void WindowImplWin32::processEvent(UINT message, WPARAM wParam, LPARAM lParam)
//////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////
Keyboard::Key WindowImplWin32::virtualKeyCodeToSF(WPARAM key, LPARAM flags) Keyboard::Key WindowImplWin32::virtualKeyCodeToSF(WPARAM key, LPARAM flags)
{ {
// clang-format off
switch (key) switch (key)
{ {
// Check the scancode to distinguish between left and right shift // Check the scancode to distinguish between left and right shift
@ -1105,6 +1106,7 @@ Keyboard::Key WindowImplWin32::virtualKeyCodeToSF(WPARAM key, LPARAM flags)
case '8': return Keyboard::Num8; case '8': return Keyboard::Num8;
case '9': return Keyboard::Num9; case '9': return Keyboard::Num9;
} }
// clang-format on
return Keyboard::Unknown; return Keyboard::Unknown;
} }

View File

@ -48,6 +48,7 @@ public:
// Prevent copies. // Prevent copies.
TemporaryFile(const TemporaryFile&) = delete; TemporaryFile(const TemporaryFile&) = delete;
TemporaryFile& operator=(const TemporaryFile&) = delete; TemporaryFile& operator=(const TemporaryFile&) = delete;
// Return the randomly generated path. // Return the randomly generated path.