Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

feat: added a basic scene graph #39

Merged
merged 31 commits into from
Oct 16, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
31 commits
Select commit Hold shift + click to select a range
05d2553
refactor: added a basic scene graph
tomezpl Jan 4, 2024
f9fdeb4
chore: wip
tomezpl Feb 12, 2024
fef4cc1
fix: fixed failing build due to C5262 in MSVC headers
tomezpl Feb 12, 2024
5fe5ebd
fix: fixed scenegraph dtor not terminating after deleting root
tomezpl Feb 12, 2024
a9e138c
feat: added basic model translation matrix
tomezpl Mar 18, 2024
48cfdcc
chore: got z rotation working
tomezpl Oct 6, 2024
4f88206
feat: added XYZ rotation to model matrix
tomezpl Oct 6, 2024
094890e
feat: added scaling to the model matrix
tomezpl Oct 7, 2024
f5efd1e
refactor: split SceneGraph::Node into separate SceneNode class
tomezpl Oct 8, 2024
50b7388
feat(gfx/SceneGraph): added world transforms for child nodes
tomezpl Oct 12, 2024
54c874e
test(gfx/SceneGraph): fixed test compile error
tomezpl Oct 12, 2024
85bd8bb
tweak(gfx/SceneGraph): updated demo app
tomezpl Oct 12, 2024
b69f552
chore: added clang-format
tomezpl Oct 12, 2024
0b81e40
docs: updated README
tomezpl Oct 12, 2024
18a223f
fix(gfx/scenegraph): fixed transform not being updated, resolved PR c…
tomezpl Oct 13, 2024
d04e013
fix(gfx/scenegraph): fixed segfault in SceneGraph destructor
tomezpl Oct 13, 2024
5aa37ca
fix(gfx/scenegraph): fixed more complex scene trees not applying rela…
tomezpl Oct 13, 2024
e807ac4
test(gfx/scenegraph): added test for converting relative transforms i…
tomezpl Oct 13, 2024
6d2b04a
refactor(gfx/GraphicsEngine): changed dynamic_cast to static_cast in …
tomezpl Oct 13, 2024
1ae00dc
ci: try fix linux glew build error
tomezpl Oct 13, 2024
63b820d
ci: try fix linux glew build error
tomezpl Oct 13, 2024
f0c63a0
ci: try fix linux glew build error
tomezpl Oct 13, 2024
52f3a8f
ci: try fix linux glew build error
tomezpl Oct 13, 2024
1a7e06c
ci: try fix linux glew build error
tomezpl Oct 13, 2024
98257ba
ci: try fix linux glew build error
tomezpl Oct 13, 2024
d458b6d
fix(gfx/scenegraph): fixed scaling bug
tomezpl Oct 14, 2024
5cc821e
test(gfx/scenegraph): corrected expected values in world coords test …
tomezpl Oct 14, 2024
18b37cd
test(gfx/scenegraph): replaced hard-coded values in world coords test
tomezpl Oct 15, 2024
830b63a
test(gfx/scenegraph): commented the test and made float error uniform
tomezpl Oct 15, 2024
9e0382e
fix(types/Quaternion): removed the weird angle flip that was causing …
tomezpl Oct 16, 2024
2da67c9
refactor(gfx/Transformable): cleaned up GetWorldMatrix()
tomezpl Oct 16, 2024
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
15 changes: 15 additions & 0 deletions .clang-format
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
AllowShortFunctionsOnASingleLine: InlineOnly
BreakBeforeBraces: Allman
Language: Cpp
SpaceAroundPointerQualifiers: Default
PointerAlignment: Left
NamespaceIndentation: All
IndentWidth: 4
AccessModifierOffset: 0
ColumnLimit: 0
UseTab: ForIndentation
AllowShortBlocksOnASingleLine: Always
BreakInheritanceList: AfterComma
BreakBeforeInheritanceComma: false
BreakConstructorInitializersBeforeComma: false
SortIncludes: Never
143 changes: 58 additions & 85 deletions CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -8,32 +8,32 @@
### Be sure to define your system's triplet to ensure correct target architecture (32/64-bit). https://vcpkg.readthedocs.io/en/latest/users/triplets/#additional-remarks

# min. required CMake version
cmake_minimum_required (VERSION 3.26)
cmake_minimum_required(VERSION 3.26)
include(FindOpenGL)
include(CMakePrintHelpers)

set(VCPKG_FEATURE_FLAGS "manifests,registries,versions")

# VCPKG directory
if(DEFINED ENV{VCPKG_ROOT} AND NOT DEFINED CMAKE_TOOLCHAIN_FILE)
set(CMAKE_TOOLCHAIN_FILE "$ENV{VCPKG_ROOT}/scripts/buildsystems/vcpkg.cmake"
CACHE STRING "")
endif()
if (DEFINED ENV{VCPKG_ROOT} AND NOT DEFINED CMAKE_TOOLCHAIN_FILE)
set(CMAKE_TOOLCHAIN_FILE "$ENV{VCPKG_ROOT}/scripts/buildsystems/vcpkg.cmake"
CACHE STRING "")
endif ()

# VCPKG triplet to use (architecture, e.g. x86-windows)
if(DEFINED ENV{VCPKG_DEFAULT_TRIPLET} AND NOT DEFINED VCPKG_TARGET_TRIPLET)
set(VCPKG_TARGET_TRIPLET "$ENV{VCPKG_DEFAULT_TRIPLET}" CACHE STRING "")
endif()
if (DEFINED ENV{VCPKG_DEFAULT_TRIPLET} AND NOT DEFINED VCPKG_TARGET_TRIPLET)
set(VCPKG_TARGET_TRIPLET "$ENV{VCPKG_DEFAULT_TRIPLET}" CACHE STRING "")
endif ()

# C++ standard
set(CMAKE_CXX_STANDARD 17)

# Ensure correct library bitness if running Windows
if(${CMAKE_HOST_WIN32})
if(ENV{VCPKG_DEFAULT_TRIPLET} STREQUAL "x64-windows")
set(CMAKE_SIZEOF_VOID_P 8)
endif()
endif()
if (${CMAKE_HOST_WIN32})
if (ENV{VCPKG_DEFAULT_TRIPLET} STREQUAL "x64-windows")
set(CMAKE_SIZEOF_VOID_P 8)
endif ()
endif ()

project(Lepus)

Expand All @@ -56,7 +56,6 @@ set(LEPUS_SRC_DIR ${CMAKE_SOURCE_DIR}/src/lepus)
# Engine-wide include directories
include_directories(${CMAKE_SOURCE_DIR}/include src ${CMAKE_SOURCE_DIR}/3rdparty)
include_directories(${VCPKG_INCLUDE_PATH})
include_directories(${VCPKG_INCLUDE_PATH}/bullet)

link_directories(${VCPKG_LIB_PATH})

Expand Down Expand Up @@ -109,57 +108,28 @@ add_dependencies(LepusDemo LepusGfx)
# Dependency libraries
## LepusGfx: GL3W (core profile loading)
add_library(GL3W
3rdparty/gl3w/src/gl3w.c
3rdparty/gl3w/src/gl3w.c
)
include_directories(3rdparty/gl3w/include)
## LepusGfx: GLFW libraries
find_package(glfw3 CONFIG REQUIRED)

## LepusGfx: GLEW includes
include_directories(LepusGfx ${GLEW_INCLUDES})

## LepusGfx: GLFW includes
include_directories(LepusGfx ${GLFW_INCLUDES})

# LepusEngine sources
## LepusEngine: PhysX includes
set(PHYSX_INCLUDES ${VCPKG_DEPS_PATH}/include/physx)
include_directories(${PHYSX_INCLUDES})

## LepusEngine: Bullet3 libraries

#find_library(BULLET_COMMON_LIB Bullet3Common ${VCPKG_LIBS_REL_PATH} NO_DEFAULT_PATH NO_PACKAGE_ROOT_PATH NO_CMAKE_PATH NO_CMAKE_ENVIRONMENT_PATH NO_SYSTEM_ENVIRONMENT_PATH NO_CMAKE_SYSTEM_PATH)
set(BULLET_COMMON_LIB ${Bullet3Common})
#find_library(BULLET_COLLISION_LIB BulletCollision ${VCPKG_LIBS_REL_PATH} NO_DEFAULT_PATH NO_PACKAGE_ROOT_PATH NO_CMAKE_PATH NO_CMAKE_ENVIRONMENT_PATH NO_SYSTEM_ENVIRONMENT_PATH NO_CMAKE_SYSTEM_PATH)
set(BULLET_COLLISION_LIB ${BulletCollision})
#find_library(BULLET_DYNAMICS_LIB BulletDynamics ${VCPKG_LIBS_REL_PATH} NO_DEFAULT_PATH NO_PACKAGE_ROOT_PATH NO_CMAKE_PATH NO_CMAKE_ENVIRONMENT_PATH NO_SYSTEM_ENVIRONMENT_PATH NO_CMAKE_SYSTEM_PATH)
set(BULLET_DYNAMICS_LIB ${BulletDynamics})
#find_library(BULLET_LINMATH_LIB LinearMath ${VCPKG_LIBS_REL_PATH} NO_DEFAULT_PATH NO_PACKAGE_ROOT_PATH NO_CMAKE_PATH NO_CMAKE_ENVIRONMENT_PATH NO_SYSTEM_ENVIRONMENT_PATH NO_CMAKE_SYSTEM_PATH)
set(BULLET_LINMATH_LIB ${LinearMath})

#find_library(BULLET_COMMON_LIB_DBG Bullet3Common_Debug ${VCPKG_LIBS_DBG_PATH} NO_DEFAULT_PATH NO_PACKAGE_ROOT_PATH NO_CMAKE_PATH NO_CMAKE_ENVIRONMENT_PATH NO_SYSTEM_ENVIRONMENT_PATH NO_CMAKE_SYSTEM_PATH)
#find_library(BULLET_COLLISION_LIB_DBG BulletCollision_Debug ${VCPKG_LIBS_DBG_PATH} NO_DEFAULT_PATH NO_PACKAGE_ROOT_PATH NO_CMAKE_PATH NO_CMAKE_ENVIRONMENT_PATH NO_SYSTEM_ENVIRONMENT_PATH NO_CMAKE_SYSTEM_PATH)
#find_library(BULLET_DYNAMICS_LIB_DBG BulletDynamics_Debug ${VCPKG_LIBS_DBG_PATH} NO_DEFAULT_PATH NO_PACKAGE_ROOT_PATH NO_CMAKE_PATH NO_CMAKE_ENVIRONMENT_PATH NO_SYSTEM_ENVIRONMENT_PATH NO_CMAKE_SYSTEM_PATH)
#find_library(BULLET_LINMATH_LIB_DBG LinearMath_Debug ${VCPKG_LIBS_DBG_PATH} NO_DEFAULT_PATH NO_PACKAGE_ROOT_PATH NO_CMAKE_PATH NO_CMAKE_ENVIRONMENT_PATH NO_SYSTEM_ENVIRONMENT_PATH NO_CMAKE_SYSTEM_PATH)

# Link Bullet for debug and release targets
target_link_libraries(LepusEngine PRIVATE LinearMath Bullet3Common BulletDynamics BulletCollision)

#target_link_libraries(LepusEngine debug Bullet3Common_Debug optimized Bullet3Common)
#target_link_libraries(LepusEngine debug BulletDynamics_Debug optimized BulletDynamics)
#target_link_libraries(LepusEngine debug BulletCollision_Debug optimized BulletCollision)

file(MAKE_DIRECTORY ${EXECUTABLE_OUTPUT_PATH}/Release)
file(MAKE_DIRECTORY ${EXECUTABLE_OUTPUT_PATH}/Debug)

# Set working directory for debugger
set_property(TARGET LepusDemo PROPERTY VS_DEBUGGER_WORKING_DIRECTORY "${EXECUTABLE_OUTPUT_PATH}/Debug")

if(OpenGL::GL)
set(GL_LIBRARY OpenGL::GL)
elseif(OpenGL::OpenGL)
set(GL_LIBRARY OpenGL::OpenGL)
endif(OpenGL::GL)
if (OpenGL::GL)
set(GL_LIBRARY OpenGL::GL)
elseif (OpenGL::OpenGL)
set(GL_LIBRARY OpenGL::OpenGL)
endif (OpenGL::GL)
target_link_libraries(LepusGfx PRIVATE GL3W glfw ${GL_LIBRARY} DearImgui LepusEngine LepusUtility LepusSystem)
target_link_libraries(LepusDemo PRIVATE DearImgui LepusGfx LepusUtility LepusEngine)

Expand All @@ -170,9 +140,9 @@ add_custom_command(TARGET LepusDemo POST_BUILD COMMAND ${CMAKE_COMMAND} -E copy_
# Unit testing framework
include(FetchContent)
FetchContent_Declare(
googletest
GIT_REPOSITORY https://github.com/google/googletest.git
GIT_TAG release-1.12.1
googletest
GIT_REPOSITORY https://github.com/google/googletest.git
GIT_TAG release-1.12.1
)
# For Windows: Prevent overriding the parent project's compiler/linker settings
set(gtest_force_shared_crt ON CACHE BOOL "" FORCE)
Expand All @@ -182,21 +152,23 @@ enable_testing()

# Unit test projects for each library
add_executable(LepusGfx_Tests
tests/L3D/GraphicsEngine/GraphicsApiTests.h
tests/L3D/GraphicsEngine/GraphicsApiTests.cpp
tests/L3D/GraphicsEngine/GraphicsApiOptionsTests.h
tests/L3D/GraphicsEngine/GraphicsApiOptionsTests.cpp
tests/L3D/GraphicsEngine/GraphicsApiTests.h
tests/L3D/GraphicsEngine/GraphicsApiTests.cpp
tests/L3D/GraphicsEngine/GraphicsApiOptionsTests.h
tests/L3D/GraphicsEngine/GraphicsApiOptionsTests.cpp
tests/L3D/SceneGraph/SceneGraphTests.h
tests/L3D/SceneGraph/SceneGraphTests.cpp
)

add_executable(LepusSystem_Tests
tests/LSystem/IO/FileSystemTests.h
tests/LSystem/IO/FileSystemTests.cpp
tests/LSystem/IO/FileSystemTests.h
tests/LSystem/IO/FileSystemTests.cpp
)

add_executable(LepusUtility_Tests
tests/LUtility/MathTests/MatrixTests.cpp
tests/LUtility/MathTests/VectorTests.cpp
tests/LUtility/MathTests/TransformTests.cpp
tests/LUtility/MathTests/MatrixTests.cpp
tests/LUtility/MathTests/VectorTests.cpp
tests/LUtility/MathTests/TransformTests.cpp
)

add_custom_command(TARGET LepusSystem_Tests POST_BUILD COMMAND ${CMAKE_COMMAND} -E copy_directory "${CMAKE_SOURCE_DIR}/tests/Content" ${CMAKE_BINARY_DIR}/tests/Content)
Expand All @@ -212,27 +184,28 @@ gtest_discover_tests(LepusUtility_Tests)

# Warnings
set(LepusTargets LepusEngine LepusSystem LepusGfx LepusSystem_Tests LepusGfx_Tests LepusUtility_Tests)
if(MSVC)
# Ignore warnings:
# 4100: unreferenced param,
# 4514: unreferenced inline function removed,
# 4464: parent relative include,
# 4820: struct padding,
# 4263: member not overriding base class virtual
# 4265-5027: copy ctor, move ctor, assignment, move assignment implicitly deleted (this messes up gtest projects)
# 5045: "compiler will insert Spectre mitigation for memory load"
set(MSVCDisabledWarnings 4100 4514 4464 4820 4263 4625 5026 4626 5027 5045)

set(MSVCDisabledWarningsFormatted "")
foreach(Warning IN LISTS MSVCDisabledWarnings)
set(MSVCDisabledWarningsFormatted ${MSVCDisabledWarningsFormatted} /wd${Warning})
endforeach()

foreach(Target IN LISTS LepusTargets)
target_compile_options(${Target} PRIVATE /Wall ${MSVCDisabledWarningsFormatted} /WX /external:W3)
endforeach()
else()
foreach(Target IN LISTS LepusTargets)
target_compile_options(${Target} PRIVATE -Wall -Wextra -Wpedantic)
endforeach()
endif()
if (MSVC)
# Ignore warnings:
# 4100: unreferenced param,
# 4514: unreferenced inline function removed,
# 4464: parent relative include,
# 4820: struct padding,
# 4263: member not overriding base class virtual
# 4265-5027: copy ctor, move ctor, assignment, move assignment implicitly deleted (this messes up gtest projects)
# 5045: "compiler will insert Spectre mitigation for memory load"
# 5262: implicit switch fallback
set(MSVCDisabledWarnings 4100 4514 4464 4820 4263 4625 5026 4626 5027 5045 5262)

set(MSVCDisabledWarningsFormatted "")
foreach (Warning IN LISTS MSVCDisabledWarnings)
set(MSVCDisabledWarningsFormatted ${MSVCDisabledWarningsFormatted} /wd${Warning})
endforeach ()

foreach (Target IN LISTS LepusTargets)
target_compile_options(${Target} PRIVATE /Wall ${MSVCDisabledWarningsFormatted} /WX /external:W3)
endforeach ()
else ()
foreach (Target IN LISTS LepusTargets)
target_compile_options(${Target} PRIVATE -Wall -Wextra -Wpedantic)
endforeach ()
endif ()
3 changes: 2 additions & 1 deletion Content/GLSL/Unlit/RGBVertex.vert
Original file line number Diff line number Diff line change
Expand Up @@ -4,12 +4,13 @@ layout (location = 0) in vec3 position;

uniform mat4 PROJ;
uniform mat4 VIEW;
uniform mat4 MODEL;

out vec3 vertColor;

void main()
{
gl_Position = PROJ * VIEW * vec4(position, 1.0);
gl_Position = PROJ * VIEW * MODEL * vec4(position, 1.0);

float normalisedIndex = mod(float(gl_VertexID), 3.0f);
float r = step(normalisedIndex, 0.0f);
Expand Down
88 changes: 16 additions & 72 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -3,88 +3,32 @@
### About
LepusEngine is a game engine developed in C++ and modern OpenGL (versions >= 3.3).

The renderer uses a programmable pipeline and as a result comes with a bundled set of GLSL shaders.

### Building
The engine now uses CMake (tested version 3.15.2). Download and install it if you don't have it already.

General use of CMake comes down to running `cmake configure` and `cmake generate` (please look up KitWare's documentation to learn more).

Currently the engine only builds on Windows during to its reliance on PhysX. On Windows, you can also use CMake-gui.

#### Dependencies
Download binaries for these libraries and place them in `<lepus_root>/build/deps`:

* GLFW (*build/deps/glfw-x.x.x.bin.WIN64*)
* The root directory of a 64-bit pre-compiled binary GLFW package for MSVC++ (folder name usually *glfw-x.x.x.bin.WIN64*).
* For example, *build/deps/glfw-x.x.x.bin.WIN64/lib-vc2015/* should contain your 64-bit *glfw3.lib* files
* GLFW32 (*build/deps/glfw-x.x.x.bin.WIN32*)
* The root directory of a 32-bit pre-compiled binary GLFW package for MSVC++ (folder name usually *glfw-x.x.x.bin.WIN32*).
* For example, *build/deps/glfw-x.x.x.bin.WIN32/lib-vc2015/* should contain your 32-bit *glfw3.lib* files
* GLEW (*build/deps/glew-x.x.x-win32*)
* The root directory of a GLEW package for Win32 (folder name usually *glew-x.x.x-win32/glew-x.x.x*).
* For example, *build/deps/glew-x.x.x-win32/glew-x.x.x/lib/* should contain the *glew.lib* files
* PHYSX (*build/deps/PhysX-x.x/physx/install/vcxxwin64*)
* The root directory of the *compiled binaries* for PhysX for 64-bit Visual C++ (folder name usually *PhysX-x.x/physx/install/vcxxwin64*).
* For example, *build/deps/PhysX-x.x/physx/install/vcxxwin64/PhysX/include/* should contain the *PxPhysXConfig.h* header file.
* You can find info regarding building PhysX SDK from source on [NVIDIA's official PhysX repository](https://github.com/NVIDIAGameWorks/PhysX).
* PHYSX32 (*build/deps/PhysX-x.x/physx/install/vcxxwin32*)
* The root directory of the *compiled binaries* for PhysX for 32-bit Visual C++ (folder name usually *PhysX-x.x/physx/install/vcxxwin32*).
* For example, *build/deps/PhysX-x.x/physx/install/vcxxwin32/PhysX/include/* should contain the *PxPhysXConfig.h* header file.
* You can find info regarding building PhysX SDK from source on [NVIDIA's official PhysX repository](https://github.com/NVIDIAGameWorks/PhysX).

### Usage
The __RenderEngine__ class (from the _LepusEngine_::_Lepus3D_ namespace) is responsible for drawing pretty much anything to your screen.

__RenderEngine__ also creates and updates a GL context and window.

An example app using the engine would look like this:

```c++
#include <L3D/RenderEngine.h>
The engine uses CMake (>= 3.26) to generate build files. [Download and install it](https://cmake.org/download/) if you don't have it already.

using namespace LepusEngine;
using namespace Lepus3D;
Dependencies for the project are resolved and installed using [vcpkg](https://vcpkg.io/). See [Dependencies](#dependencies) for more info.

int main()
{
Lepus3D::RenderEngine engine("LepusDemo", 800, 600);
General use of CMake comes down to running `cmake configure` and `cmake generate` (please look up [KitWare's documentation](https://cmake.org/documentation/) to learn more).

Lepus3D::Material testMat("Test material", "PerVertexUnlit");
Lepus3D::BoxMesh testMesh;
Some IDEs such as Visual Studio, Visual Studio Code, and CLion come with CMake support or offer "CMake Tools" extensions that allow you to generate the build files from your IDE.
On Windows, you can also use CMake-gui.

// Be sure to get your own images, these are not provided with the Git repository
Lepus3D::Texture2D firstTx("container.jpg"); // Loads from Solution/Content/
testMat.SetAttributeTex("_Texture1", firstTx);
The project is primarily built with Visual C++ 2022 during development and [GCC 11.4.0 on GitHub Actions](https://github.com/tomezpl/LepusEngine/actions),
and as such those are the "officially supported" compilers at this time.

Lepus3D::Transform transform;

sf::Clock timer;
#### Dependencies
This project uses [vcpkg](https://vcpkg.io/) to locate and install dependencies, such as code libraries, while keeping the need for platform-specific configuration down to a minimum (or none).

bool running = true;
while (running)
{
float timeSeconds = timer.getElapsedTime().asSeconds();
testMat.SetAttributeF("_Time", timeSeconds);
transform.SetRotation(Vector3(timeSeconds * 25.f, timeSeconds * 50.f, 0.f));
transform.SetScale(sin(timeSeconds));
engine.Update(); // Update window events etc.
engine.StartScene(); // Start drawing (clear buffers etc.)
engine.DrawMesh(testMesh, testMat, transform);
engine.EndScene(); // Finish drawing (display in window)
running = engine.Update();
}
engine.Shutdown();
return 0;
}
```
vcpkg integrates with CMake via a CMake toolchain file. Provided you have a `VCPKG_ROOT` environment variable pointing at your **bootstrapped vcpkg** path,
the CMakeLists script for LepusEngine should automatically pick up the toolchain file and install the dependencies as needed.
See [Microsoft's vcpkg documentation](https://learn.microsoft.com/en-gb/vcpkg/get_started/get-started?pivots=shell-powershell) for more details.

Check the header files to see how things work. [RenderEngine.h](https://github.com/tomezpl/LepusEngine/blob/master/Lepus3D/Source/RenderEngine.h) is usually a good place to start.
Additionally, some open-source cross-platform dependencies, such as gl3w and imgui are included in the `3rdparty` directory.
For imgui, you'll need to run `git submodule update` in order to fetch code from the imgui repository before building LepusEngine.

### Contributing
I myself am focused on creating the renderer. However, I plan on making this a full game engine, and any help would be appreciated.
### Usage
See the ["demo" example program](https://github.com/tomezpl/LepusEngine/tree/master/src/examples/demo) for an example of how to use the engine's API.

If you have any questions you can contact me at **[email protected]**. If there are any pull requests I'll try to merge them into **master** (assuming they work).

### Licensing
LepusEngine is licensed under the MIT license. This means you are free to use LepusEngine in any way you want, but you must include the copyright notice and the permission notice.
Expand Down
2 changes: 1 addition & 1 deletion scripts/install-ubuntu.sh
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@ sudo apt install git

# OpenGL
echo "Installing OpenGL and Xorg dependencies"
sudo apt install libopengl-dev libgl-dev libgl1-mesa-dev libgl1-mesa-glx libxinerama-dev libxcursor-dev xorg-dev libglu1-mesa-dev
sudo apt install libopengl-dev libgl-dev libgl1-mesa-dev libxinerama-dev libxcursor-dev xorg-dev libglu1-mesa-dev libwayland-dev libxkbcommon-dev pkg-config

# VCPKG
echo "Installing vcpkg"
Expand Down
Loading
Loading