Skip to content

Commit 722c621

Browse files
committed
Merge branch 'main' into feature/json_serialization
2 parents ce736e4 + a9f2809 commit 722c621

1,504 files changed

Lines changed: 220493 additions & 8007 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.
Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,24 +1,24 @@
11
---
22
name: Bug report
3-
about: Create a report to help us improve
3+
about: Report a bug you encountered
44
title: ''
5-
labels: Bug
5+
type: bug
66
assignees: ''
77

88
---
99

10-
**Description**
10+
## Description
1111
A clear and concise description of what the bug is.
1212

13-
**To Reproduce**
13+
## To Reproduce
1414
Steps to reproduce the behavior:
1515
1. Go to '...'
1616
2. Click on '....'
1717
3. Scroll down to '....'
1818
4. See error
1919

20-
**Expected behavior**
20+
## Expected behavior
2121
A clear and concise description of what you expected to happen.
2222

23-
**Screenshots**
23+
## Screenshots
2424
If applicable, add screenshots to help explain your problem.

.github/ISSUE_TEMPLATE/feature_request.md

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -2,13 +2,13 @@
22
name: Feature request
33
about: Suggest an idea for this project
44
title: ''
5-
labels: Feature
5+
type: feature
66
assignees: ''
77

88
---
99

10-
**Problem this feature should fix**
10+
## Problem this feature should fix
1111
A clear and concise description of what the problem is. Ex. I'm always frustrated when [...]
1212

13-
**Expected solution**
13+
## Expected solution
1414
A clear and concise description of what you want to happen.

.github/pull_request_template.md

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
## Description
2+
<!-- Provide a clear and concise description of what this PR accomplishes -->
3+
Write here.
4+
5+
## Related Issue(s)
6+
<!-- Link to the issue that this PR addresses (if applicable) -->
7+
Fixes #(issue number)
8+
9+
## Review Guidance
10+
<!-- Provide any additional information that would help reviewing your work -->
11+
Write here.
12+
13+
## Screenshots/GIFs
14+
<!-- If applicable, add screenshots or GIFs demonstrating the changes -->
15+
Write here.
16+
17+
## Checklist
18+
<!-- Mark items with 'x' (no spaces around x) -->
19+
- [ ] My code follows the project's code style guidelines
20+
- [ ] I have commented my code, particularly in hard-to-understand areas
21+
- [ ] I have updated the documentation accordingly
22+
- [ ] My changes don't generate new warnings or errors

.github/workflows/linux.yml

Lines changed: 38 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,38 @@
1+
name: Linux
2+
3+
on:
4+
workflow_dispatch:
5+
pull_request:
6+
push:
7+
branches:
8+
- main
9+
10+
env:
11+
# Path to the solution file relative to the root of the project.
12+
SOLUTION_FILE_PATH: ./
13+
14+
jobs:
15+
build:
16+
name: Clang ${{ matrix.configuration }} x64
17+
runs-on: ubuntu-latest
18+
if: github.event.pull_request.draft == false
19+
20+
strategy:
21+
matrix:
22+
configuration: [Debug, Release]
23+
24+
steps:
25+
- uses: actions/checkout@v5
26+
27+
- name: Install Dependencies
28+
run: sudo apt-get update && sudo apt-get install -y libgl1-mesa-dev libx11-dev libxcursor-dev libxrandr-dev libxinerama-dev libxi-dev
29+
30+
- name: Generate premake5 solution
31+
working-directory: ${{env.SOLUTION_FILE_PATH}}
32+
run: ./gen_proj.sh
33+
34+
- name: Build
35+
working-directory: ${{env.GITHUB_WORKSPACE}}
36+
run: |
37+
CONFIG_LOWER=$(echo "${{ matrix.configuration }}" | tr '[:upper:]' '[:lower:]')
38+
make -j$(nproc) config=${CONFIG_LOWER}_x64
Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,32 @@
1+
name: Linux Release
2+
3+
on:
4+
workflow_dispatch:
5+
push:
6+
tags:
7+
- 'v*'
8+
9+
jobs:
10+
build:
11+
name: Generate Linux x64 Release Artifact
12+
runs-on: ubuntu-latest
13+
14+
steps:
15+
- uses: actions/checkout@v5
16+
17+
- name: Install Dependencies
18+
run: sudo apt-get update && sudo apt-get install -y libgl1-mesa-dev libx11-dev libxcursor-dev libxrandr-dev libxinerama-dev libxi-dev
19+
20+
- name: Make Release Build
21+
run: bash Scripts/Linux/MakeReleaseBuild.sh --no-open
22+
23+
- name: Get Version
24+
id: version
25+
run: echo "VERSION=$(cat VERSION.txt)" >> $GITHUB_OUTPUT
26+
27+
- name: Upload Release Artifact
28+
uses: actions/upload-artifact@v4
29+
with:
30+
name: Overload-${{ steps.version.outputs.VERSION }}-linux_x64
31+
path: Releases/Overload-${{ steps.version.outputs.VERSION }}-linux_x64.tar.gz
32+
retention-days: 90

.github/workflows/msbuild.yml

Lines changed: 0 additions & 37 deletions
This file was deleted.

.github/workflows/windows.yml

Lines changed: 36 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,36 @@
1+
name: Windows
2+
3+
on:
4+
workflow_dispatch:
5+
pull_request:
6+
push:
7+
branches:
8+
- main
9+
10+
env:
11+
# Path to the solution file relative to the root of the project.
12+
SOLUTION_FILE_PATH: .\
13+
14+
jobs:
15+
build:
16+
name: MSVC ${{ matrix.configuration }} x64
17+
runs-on: windows-latest
18+
if: github.event.pull_request.draft == false
19+
20+
strategy:
21+
matrix:
22+
configuration: [Debug, Release]
23+
24+
steps:
25+
- uses: actions/checkout@v5
26+
27+
- name: Add MSBuild to PATH
28+
uses: microsoft/setup-msbuild@v2
29+
30+
- name: Generate premake5 solution
31+
working-directory: ${{env.SOLUTION_FILE_PATH}}
32+
run: .\gen_proj.bat
33+
34+
- name: Build
35+
working-directory: ${{env.GITHUB_WORKSPACE}}
36+
run: msbuild /m /p:Configuration=${{ matrix.configuration }} ${{env.SOLUTION_FILE_PATH}} /p:Platform=x64
Lines changed: 34 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,34 @@
1+
name: Windows Release
2+
3+
on:
4+
workflow_dispatch:
5+
push:
6+
tags:
7+
- 'v*'
8+
9+
jobs:
10+
build:
11+
name: Generate Windows x64 Release Artifact
12+
runs-on: windows-latest
13+
14+
steps:
15+
- uses: actions/checkout@v5
16+
17+
- name: Add MSBuild to PATH
18+
uses: microsoft/setup-msbuild@v2
19+
20+
- name: Make Release Build
21+
run: .\Scripts\Windows\MakeReleaseBuild.bat --no-open
22+
23+
- name: Get Version
24+
id: version
25+
run: |
26+
$version = Get-Content VERSION.txt
27+
echo "VERSION=$version" >> $env:GITHUB_OUTPUT
28+
29+
- name: Upload Release Artifact
30+
uses: actions/upload-artifact@v4
31+
with:
32+
name: Overload-${{ steps.version.outputs.VERSION }}-windows_x64
33+
path: Releases/Overload-${{ steps.version.outputs.VERSION }}-windows_x64.zip
34+
retention-days: 90

.gitignore

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,4 +8,5 @@ imgui.ini
88
*.vcxproj*
99
*.sln
1010
*.vcxitems*
11-
/Releases/
11+
/Releases/
12+
Makefile

CONTRIBUTING.md

Lines changed: 69 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -25,25 +25,74 @@ In short, when you submit code changes, your contributions are understood to be
2525
We use GitHub issues to track bugs. Report a bug by opening a new issue, it's that easy!
2626

2727
## Coding Conventions
28-
* Interfaces starts with `I`.
29-
* Abstracts starts with `A`.
30-
* Class names: `UpperCamelCase`.
31-
* Public member variables: `lowerCamelCase`.
32-
* Private member variables: `m_lowerCamelCase`.
33-
* Public static variables: `UpperCamelCase`.
34-
* Private static variables: `s_lowerCamelCase`.
35-
* Function/Method arguments: `p_lowerCamelCase`.
36-
* Function/Method names: `UpperCamelCase`.
37-
* Constants: `kUpperCamelCase`.
38-
* Class member variables are located at the bottom of the file.
39-
* Avoid using macros to define constants; prefer using `constexpr` instead.
40-
* Tabs are preferred over spaces.
41-
* Always end your files with an empty line.
42-
* Avoid aligning variable names and values using tabulations.
43-
* Scope blocks should start on a new line.
44-
* Comment your functions, enums, classes, methods ([Javadoc style](https://en.wikipedia.org/wiki/Javadoc))
45-
46-
**Some coding conventions may have been overlooked during the writing of this document, so always refer to the existing codebase.**
28+
### File Header
29+
Every file must include the following header:
30+
```cpp
31+
/**
32+
* @project: Overload
33+
* @author: Overload Tech.
34+
* @licence: MIT
35+
*/
36+
```
37+
38+
### Naming
39+
| | |
40+
|-|-|
41+
| N.1 | Custom Types (*structs*, *classes*, *enums*, *typedefs*) use the `UpperCamelCase` notation. |
42+
| N.2 | Functions & methods use the `UpperCamelCase` notation. |
43+
| N.3 | Variables use the `lowerCamelCase` notation (unless specified otherwise, see below). |
44+
| N.4 | Private member variables are prefixed with `m_` (e.g. `m_elapsedTime`). |
45+
| N.5 | Function parameters are prefixed with `p_` (e.g. `p_enabled` ). |
46+
| N.6 | Compile-time constants are prefixed with `k` followed by `UpperCamelCase` (e.g. `kPi`). |
47+
| N.7 | Do not use abbreviations. |
48+
| N.8 | Interfaces are prefixed with `I`, abstract classes with `A`, and enum types with `E`. |
49+
| N.9 | Enum values are in `SHOUT_CASE`. |
50+
51+
### Formatting
52+
| | |
53+
|-|-|
54+
| F.1 | Curly braces must be placed on their own lines, except for the opening brace of lambdas. |
55+
| F.2 | Code must be indented using tabs. |
56+
| F.3 | Keep a low indentation level (use early returns, split functionalities, reduce complexity). |
57+
| F.4 | Always use braces for scopes (*if*, *for*, *while*, etc.). |
58+
| F.5 | Avoid single line `if` statements (e.g. `if (condition) return 0;`). |
59+
| F.6 | Always end your files with an empty line. |
60+
| F.7 | Avoid aligning variable names and values using tabulations. |
61+
62+
### Classes
63+
| | |
64+
|-|-|
65+
| C.1 | Members are ordered by access level (`public`, `protected`, `private`). |
66+
| C.2 | Methods always come first, followed by member variables. |
67+
68+
### Includes
69+
| | |
70+
|-|-|
71+
| I.1 | Includes are in lexicographic order with lowercase precedence (e.g. `aa`, `aA`, `Aa`, `AA`). |
72+
| I.2 | Included file paths are fully specialized (`Project/Namespace/File.h`). |
73+
| I.3 | Include statements use brackets (`<>`) over quotation marks (`""`). |
74+
75+
### Documentation
76+
| | |
77+
|-|-|
78+
| D.1 | Document public types, methods, and functions using the [Javadoc style](https://en.wikipedia.org/wiki/Javadoc). |
79+
80+
### General
81+
| | |
82+
|-|-|
83+
| G.1 | Almost always avoid *macros*. Use `constexpr` whenever possible. |
84+
| G.2 | Always use forward slashes when it comes to paths. |
85+
| G.3 | Prefer anonymous functions over private methods when possible. |
86+
| G.4 | Avoid declaring multiple classes in a single header file. |
87+
| G.5 | Prefer stack allocations over heap allocations. |
88+
| G.6 | Almost always avoid manual heap allocations (`malloc`, `new`, `delete`). |
89+
| G.7 | Avoid raw pointers (use smart pointers when required). |
90+
| G.8 | Use `std::array` over dynamic collections (e.g. `std::vector`) when the size is fixed. |
91+
| G.9 | Use `std::string_view`, `std::span`, and *const references* whenever possible. |
92+
| G.10| Prefer composition over inheritance. |
93+
| G.11| Use assertions to validate inputs when type checks aren't sufficient. |
94+
95+
*Note: Some coding conventions may have been overlooked during the writing of this document, so always refer to the existing codebase.*
4796

4897
## Thanks!
49-
Thanks for being a part of the Overload Tech. team!
98+
Thanks for being a part of the [Overload Technologies](https://github.com/Overload-Technologies) team!

0 commit comments

Comments
 (0)