Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
39 commits
Select commit Hold shift + click to select a range
2307ae3
Project barebones
Cybertwip Mar 26, 2021
98d3d50
Add bgfx reference
Cybertwip Mar 26, 2021
f9da307
Proper cmake initialization
Cybertwip Mar 26, 2021
5d0f20e
Proper cmake initialization
Cybertwip Mar 26, 2021
5662b96
Proper cmake initialization
Cybertwip Mar 26, 2021
8b74100
Resolve conflicts
Cybertwip May 29, 2021
92249d4
Resolve conflicts
Cybertwip May 29, 2021
e082108
Update submodules
Cybertwip Mar 27, 2021
cd12983
Resolve conflicts
Cybertwip May 29, 2021
48b3ab7
Update submodules, add runtime shader compilation
Cybertwip Mar 27, 2021
6d651c8
Resolve conflicts
Cybertwip May 29, 2021
04b58c3
Resolve conflicts
Cybertwip May 29, 2021
f1ff28e
Resolve conflicts
Cybertwip May 29, 2021
b2dfa4d
Revert gitignore changes
np-c0mp1ete Mar 27, 2021
2db734b
Resolve conflicts
Cybertwip May 29, 2021
a592e4d
add glm
Cybertwip Mar 30, 2021
b341813
Resolve conflicts
Cybertwip May 29, 2021
dc28e54
Resolve conflicts
Cybertwip May 29, 2021
404951d
Resolve conflicts
Cybertwip May 29, 2021
f62dcf5
Add glm
Cybertwip Mar 31, 2021
d1d2da6
Update submodules
Cybertwip Mar 31, 2021
65489b2
Add addons file
Cybertwip Mar 31, 2021
70d18f0
fix build - disable building bgfx tools
q4a Mar 31, 2021
80b8fb5
fix build v2 - disable building bgfx examples
q4a Mar 31, 2021
b7cb4f6
Resolve conflicts
Cybertwip May 29, 2021
26ef70e
Blit render target to dx11 texture, sorted sprites
Cybertwip Apr 1, 2021
48c3a15
Proper project generation
Cybertwip May 2, 2021
929b2a2
Resolve conflicts
Cybertwip May 29, 2021
9827ce9
fix build v3 - dirty clang fix
q4a Mar 31, 2021
20cc485
Add temporal perspective drawing
Cybertwip May 2, 2021
749f086
Better transformations
Cybertwip May 3, 2021
771f11f
fix DirectX 12 crash, implement more xi2_picture, xi_border, xi_butto…
Cybertwip May 4, 2021
539230f
BGRA texture decoding
Cybertwip May 4, 2021
a7d56c0
Fix merging error
Cybertwip May 29, 2021
743dc3b
Rebase with SDL
Cybertwip Jul 21, 2021
b46b27b
Cached memory rendering, VSYNC off
Cybertwip Jul 24, 2021
0cdcfc8
Render to back buffer
Cybertwip Jul 25, 2021
d7a8fbe
Port xinterface to use bgfx
Cybertwip Aug 11, 2021
1f9d903
Temporal fix to short-circuit
Cybertwip Aug 11, 2021
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
17 changes: 17 additions & 0 deletions .gitmodules
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
[submodule "extern/rendering"]
path = extern/rendering
url = https://github.com/greentwip/bgfx.cmake

[submodule "extern/math/glm"]
path = extern/math/glm
url = https://github.com/g-truc/glm

[submodule "extern/rendering/bgfx"]
path = extern/rendering/bgfx
url = https://github.com/greentwip/bgfx
[submodule "extern/rendering/bimg"]
path = extern/rendering/bimg
url = https://github.com/bkaradzic/bimg
[submodule "extern/rendering/bx"]
path = extern/rendering/bx
url = https://github.com/bkaradzic/bx
54 changes: 54 additions & 0 deletions CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -25,10 +25,64 @@ include(AutoSetup)

option(STORM_ENABLE_STEAM "Enable Steam integration" OFF)

set(BGFX_BUILD_EXAMPLES OFF)
set(BGFX_INSTALL_EXAMPLES OFF)

set(BGFX_BUILD_TOOLS OFF)

set(STORM_RESOURCE_DIR "${CMAKE_CURRENT_SOURCE_DIR}/res")
set(STORM_SOURCE_DIR "${CMAKE_CURRENT_SOURCE_DIR}/src")
set(STORM_EXTERN_DIR "${CMAKE_CURRENT_SOURCE_DIR}/extern")
set(STORM_EXTERN_RENDERING_DIR "${CMAKE_CURRENT_SOURCE_DIR}/extern/rendering")
set(STORM_EXTERN_MATH_DIR "${CMAKE_CURRENT_SOURCE_DIR}/extern/math")

set(CMAKE_RUNTIME_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}/bin")

include_directories(${STORM_EXTERN_RENDERING_DIR}/bgfx/examples/common
${STORM_EXTERN_RENDERING_DIR}/bgfx/3rdparty
${STORM_EXTERN_RENDERING_DIR}/bgfx/3rdparty/dxsdk/include
${STORM_EXTERN_RENDERING_DIR}/bgfx/3rdparty/khronos
$<BUILD_INTERFACE:${STORM_EXTERN_RENDERING_DIR}/bgfx/include>
$<BUILD_INTERFACE:${STORM_EXTERN_RENDERING_DIR}/bgfx/examples/common>
$<BUILD_INTERFACE:${STORM_EXTERN_RENDERING_DIR}/bgfx/tools/brtshaderc>
$<BUILD_INTERFACE:${STORM_EXTERN_RENDERING_DIR}/bimg/include>
$<BUILD_INTERFACE:${STORM_EXTERN_RENDERING_DIR}/bx/include>
$<BUILD_INTERFACE:${STORM_EXTERN_RENDERING_DIR}/bx/3rdparty>
${STORM_EXTERN_MATH_DIR}/glm/glm
${GLSL-OPTIMIZER_INCLUDES}
${GLSLLANG_INCLUDES}
${SPIRV_CROSS_INCLUDES}
${SPIRV_TOOLS_INCLUDES}
${WEBGPU_INCLUDES})

# Build system specific configurations
if( MSVC )
include_directories($<BUILD_INTERFACE:${BX_DIR}/include/compat/msvc>
$<INSTALL_INTERFACE:${CMAKE_INSTALL_INCLUDEDIR}/compat/msvc>)
elseif( MINGW )
include_directories($<BUILD_INTERFACE:${BX_DIR}/include/compat/mingw>
$<INSTALL_INTERFACE:${CMAKE_INSTALL_INCLUDEDIR}/compat/mingw> )
elseif( APPLE )
include_directories($<BUILD_INTERFACE:${BX_DIR}/include/compat/osx>
$<INSTALL_INTERFACE:${CMAKE_INSTALL_INCLUDEDIR}/compat/osx> )
endif()

include_directories()



add_definitions("-D_CRT_SECURE_NO_WARNINGS" "-D__STDC_FORMAT_MACROS")


add_subdirectory(src)

target_link_libraries(engine PRIVATE bgfx dear-imgui meshoptimizer brtshaderc fcpp bx bimg bgfx-vertexlayout bgfx-shader-spirv fcpp glsl-optimizer glslang spirv-cross spirv-tools webgpu example-common)


add_subdirectory(${STORM_EXTERN_RENDERING_DIR})

add_subdirectory(${STORM_EXTERN_MATH_DIR}/glm)




10 changes: 5 additions & 5 deletions CMakeSettings.json
Original file line number Diff line number Diff line change
Expand Up @@ -8,8 +8,9 @@
"buildRoot": "${projectDir}\\build\\${name}",
"cmakeCommandArgs": "-DCMAKE_C_COMPILER=cl -DCMAKE_CXX_COMPILER=cl",
"buildCommandArgs": "",
"enableClangTidyCodeAnalysis": true,
"variables": []
"addressSanitizerEnabled": true,
"addressSanitizerRuntimeFlags": "windows_hook_legacy_allocators=true:halt_on_error=0",
"enableClangTidyCodeAnalysis": true
},
{
"name": "msvc-release",
Expand All @@ -19,8 +20,7 @@
"buildRoot": "${projectDir}\\build\\${name}",
"cmakeCommandArgs": "-DCMAKE_C_COMPILER=cl -DCMAKE_CXX_COMPILER=cl",
"buildCommandArgs": "",
"enableClangTidyCodeAnalysis": true,
"variables": []
"enableClangTidyCodeAnalysis": true
}
]
}
}
1 change: 1 addition & 0 deletions extern/math/glm
Submodule glm added at 761a84
15 changes: 15 additions & 0 deletions extern/rendering/.gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
[Bb]uild/
*.swp
CMakeCache.txt
CMakeFiles/
Debug/
Release/
*.vcxproj
*.vcxproj.filters
*.dir/
*.sln
install/
install_manifest.txt
generated/*
!generated/*.in
cmake_install.cmake
164 changes: 164 additions & 0 deletions extern/rendering/.travis.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,164 @@
language: cpp

addons:
apt_packages:
- libgl1-mesa-dev
homebrew:
packages:
- cmake
update: true

matrix:
include:

- name: "Linux gcc"
os: linux
dist: xenial
compiler: gcc
env:
- AMALGAMATED=OFF

- name: "Linux gcc Amalgamated"
os: linux
dist: xenial
compiler: gcc
env:
- AMALGAMATED=ON

- name: "Linux clang"
os: linux
dist: xenial
compiler: clang
env:
- AMALGAMATED=OFF

- name: "Linux clang Amalgamated"
os: linux
dist: xenial
compiler: clang
env:
- AMALGAMATED=ON

- name: "macOS Xcode 10"
os: osx
osx_image: xcode10
env:
- CMAKE_FLAGS="-GXcode"
- AMALGAMATED=OFF

- name: "macOS Xcode 10 Amalgamated"
os: osx
osx_image: xcode10
env:
- CMAKE_FLAGS="-GXcode"
- AMALGAMATED=ON

- name: "macOS Xcode 10 (Makefiles)"
os: osx
osx_image: xcode10
env:
- AMALGAMATED=OFF

- name: "macOS Xcode 10 Amalgamated (Makefiles)"
os: osx
osx_image: xcode10
env:
- AMALGAMATED=ON

#- name: "iOS Xcode 10"
# os: osx
# osx_image: xcode10
# env:
# - CMAKE_FLAGS="-GXcode -DCMAKE_SYSTEM_NAME=iOS -DBGFX_BUILD_TOOLS=OFF -DCMAKE_OSX_SYSROOT=iphonesimulator"
# - AMALGAMATED=OFF

#- name: "iOS Xcode 10 Amalgamated"
# os: osx
# osx_image: xcode10
# env:
# - CMAKE_FLAGS="-GXcode -DCMAKE_SYSTEM_NAME=iOS -DBGFX_BUILD_TOOLS=OFF -DCMAKE_OSX_SYSROOT=iphonesimulator"
# - AMALGAMATED=ON

- name: "Visual studio 15 2017"
os: windows
env:
- AMALGAMATED=OFF


- name: "Visual studio 15 2017 Amalgamated"
os: windows
env:
- AMALGAMATED=ON

- name: "Emscripten"
os: linux
dist: xenial
language: node_js
services:
- docker
before_script:
- docker run -dit --name emscripten -v $(pwd):/src trzeci/emscripten:sdk-incoming-64bit bash
script:
- docker exec -it emscripten emconfigure cmake . -DBGFX_BUILD_TOOLS=OFF -DBGFX_AMALGAMATED=$AMALGAMATED -DBX_AMALGAMATED=$AMALGAMATED
- docker exec -it emscripten emmake make
env:
- AMALGAMATED=OFF

- name: "Emscripten Amalgamated"
os: linux
dist: xenial
language: node_js
services:
- docker
before_script:
- docker run -dit --name emscripten -v $(pwd):/src trzeci/emscripten:sdk-incoming-64bit bash
script:
- docker exec -it emscripten emconfigure cmake . -DBGFX_BUILD_TOOLS=OFF -DBGFX_AMALGAMATED=$AMALGAMATED -DBX_AMALGAMATED=$AMALGAMATED
- docker exec -it emscripten emmake make
env:
- AMALGAMATED=OFF

- name: "Android armeabi-v7a"
language: android
android: &androidComponents
components:
- tools
- platform-tools
- build-tools-26.0.1
env:
- CMAKE_FLAGS="-DCMAKE_SYSTEM_NAME=Android -DBGFX_BUILD_TOOLS=OFF -DBGFX_BUILD_EXAMPLES=OFF -DCMAKE_ANDROID_NDK=$TRAVIS_BUILD_DIR/android-ndk-r18b -DCMAKE_ANDROID_ARCH_ABI=armeabi-v7a -DCMAKE_ANDROID_NDK_TOOLCHAIN_VERSION=clang -DCMAKE_ANDROID_STL_TYPE=c++_shared -DCMAKE_ANDROID_API=26"
- AMALGAMATED=OFF
install: &androidInstall
- echo y | sdkmanager "cmake;3.10.2.4988404"
- sudo ln -sf /usr/local/android-sdk/cmake/3.10.2.4988404/bin/cmake /usr/bin/cmake
- wget https://dl.google.com/android/repository/android-ndk-r18b-linux-x86_64.zip
- unzip -qq android-ndk-r18b-linux-x86_64.zip

- name: "Android armeabi-v7a Amalgamated"
language: android
android: *androidComponents
env:
- CMAKE_FLAGS="-DCMAKE_SYSTEM_NAME=Android -DBGFX_BUILD_TOOLS=OFF -DBGFX_BUILD_EXAMPLES=OFF -DCMAKE_ANDROID_NDK=$TRAVIS_BUILD_DIR/android-ndk-r18b -DCMAKE_ANDROID_ARCH_ABI=armeabi-v7a -DCMAKE_ANDROID_NDK_TOOLCHAIN_VERSION=clang -DCMAKE_ANDROID_STL_TYPE=c++_shared -DCMAKE_ANDROID_API=26"
- AMALGAMATED=ON
install: *androidInstall

- name: "Android x86"
language: android
android: *androidComponents
env:
- CMAKE_FLAGS="-DCMAKE_SYSTEM_NAME=Android -DBGFX_BUILD_TOOLS=OFF -DBGFX_BUILD_EXAMPLES=OFF -DCMAKE_ANDROID_NDK=$TRAVIS_BUILD_DIR/android-ndk-r18b -DCMAKE_ANDROID_ARCH_ABI=x86 -DCMAKE_ANDROID_NDK_TOOLCHAIN_VERSION=clang -DCMAKE_ANDROID_STL_TYPE=c++_shared -DCMAKE_ANDROID_API=26"
- AMALGAMATED=OFF
install: *androidInstall

- name: "Android x86 Amalgamated"
language: android
android: *androidComponents
env:
- CMAKE_FLAGS="-DCMAKE_SYSTEM_NAME=Android -DBGFX_BUILD_TOOLS=OFF -DBGFX_BUILD_EXAMPLES=OFF -DCMAKE_ANDROID_NDK=$TRAVIS_BUILD_DIR/android-ndk-r18b -DCMAKE_ANDROID_ARCH_ABI=x86 -DCMAKE_ANDROID_NDK_TOOLCHAIN_VERSION=clang -DCMAKE_ANDROID_STL_TYPE=c++_shared -DCMAKE_ANDROID_API=26"
- AMALGAMATED=ON
install: *androidInstall

script:
- mkdir build && cd build
- cmake $CMAKE_FLAGS -DBGFX_INSTALL_EXAMPLES=ON -DBGFX_AMALGAMATED=$AMALGAMATED -DBX_AMALGAMATED=$AMALGAMATED ..
- cmake --build .
Loading