Skip to content

Commit c0996ee

Browse files
committed
Merge branch 'DecodedChunk' into dev
2 parents b598151 + 293ad0c commit c0996ee

116 files changed

Lines changed: 14582 additions & 5312 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.

.gitignore

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,4 +22,5 @@ profile_data.csv
2222
global.sz
2323
*.generated.*
2424
*.serialization.cpp
25-
src/**/temp.pgc
25+
src/**/temp.pgc
26+
test/pgcompiler/scripts/*compiled.pgc

.vscode/launch.json

Lines changed: 55 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -40,7 +40,7 @@
4040
"linux": {
4141
"MIMode": "gdb",
4242
"miDebuggerPath": "gdb",
43-
"program": "${workspaceFolder}/release/ColumbaEngineEditor"
43+
"program": "${workspaceFolder}/build/ColumbaEngineEditor"
4444
},
4545
"osx": {
4646
"MIMode": "lldb",
@@ -86,15 +86,15 @@
8686
"name": "Test",
8787
"type": "cppdbg",
8888
"request": "launch",
89-
"args": [],
89+
"args": ["--gtest_filter=Regis*"],
9090
"stopAtEntry": false,
9191
"cwd": "${workspaceFolder}",
9292
"environment": [],
9393
"externalConsole": false,
9494
"linux": {
9595
"MIMode": "gdb",
9696
"miDebuggerPath": "gdb",
97-
"program": "${workspaceFolder}/release/test"
97+
"program": "${workspaceFolder}/build/test_compiler"
9898
},
9999
"osx": {
100100
"MIMode": "lldb",
@@ -106,7 +106,57 @@
106106
"miDebuggerPath": "gdb.exe",
107107
"program": "${workspaceFolder}/release/test.exe"
108108
},
109-
"preLaunchTask": "test"
110-
}
109+
// "preLaunchTask": "test"
110+
},
111+
{
112+
"name": "RenderTest",
113+
"type": "cppdbg",
114+
"request": "launch",
115+
"args": [],
116+
"stopAtEntry": false,
117+
"cwd": "${workspaceFolder}",
118+
"environment": [],
119+
"externalConsole": false,
120+
"linux": {
121+
"MIMode": "gdb",
122+
"miDebuggerPath": "gdb",
123+
"program": "${workspaceFolder}/build/RenderingTest"
124+
},
125+
"osx": {
126+
"MIMode": "lldb",
127+
"miDebuggerPath": "lldb-mi",
128+
"program": "${workspaceFolder}/debug/main"
129+
},
130+
"windows": {
131+
"MIMode": "gdb",
132+
"miDebuggerPath": "gdb.exe",
133+
"program": "${workspaceFolder}/debug/GameOff.exe"
134+
}
135+
},
136+
{
137+
"name": "AsteroidTest",
138+
"type": "cppdbg",
139+
"request": "launch",
140+
"args": [],
141+
"stopAtEntry": false,
142+
"cwd": "${workspaceFolder}",
143+
"environment": [],
144+
"externalConsole": false,
145+
"linux": {
146+
"MIMode": "gdb",
147+
"miDebuggerPath": "gdb",
148+
"program": "${workspaceFolder}/release/Asteroid"
149+
},
150+
"osx": {
151+
"MIMode": "lldb",
152+
"miDebuggerPath": "lldb-mi",
153+
"program": "${workspaceFolder}/debug/main"
154+
},
155+
"windows": {
156+
"MIMode": "gdb",
157+
"miDebuggerPath": "gdb.exe",
158+
"program": "${workspaceFolder}/debug/GameOff.exe"
159+
}
160+
},
111161
]
112162
}

CMakeLists.txt

Lines changed: 55 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -131,8 +131,8 @@ if(CMAKE_BUILD_TYPE MATCHES Debug)
131131
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -O0 -DDEBUG")
132132
else()
133133
# set(CMAKE_CXX_FLAGS_DEBUG "-Wall -Wextra -g -pthread -Wa,-mbig-obj -O0 -ggdb -DDEBUG")
134-
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -g -O0 -DDEBUG")
135-
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -g -O0 -DDEBUG")
134+
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -g -O1 -DDEBUG")
135+
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -g -O1 -DDEBUG")
136136
endif()
137137
elseif(CMAKE_BUILD_TYPE MATCHES Release)
138138
if(${CMAKE_SYSTEM_NAME} MATCHES "Emscripten")
@@ -152,9 +152,13 @@ message("Current c++ release flags used: '${CMAKE_CXX_FLAGS}'")
152152
set(MINIMAL_ENGINESOURCE
153153
# Core compiler/VM files
154154
src/Engine/Compiler/compiler_debug.cpp
155-
src/Engine/Compiler/vm.cpp
155+
src/Engine/Compiler/vm_core.cpp
156+
src/Engine/Compiler/vm_helpers.cpp
157+
src/Engine/Compiler/vm_binary_op.cpp
158+
src/Engine/Compiler/vm_struct_op.cpp
156159
src/Engine/Compiler/vm_profiler.cpp
157160
src/Engine/Compiler/compiler.cpp
161+
src/Engine/Compiler/decoded_chunk.cpp
158162
src/Engine/Compiler/object.cpp
159163
src/Engine/Compiler/cparser.cpp
160164
src/Engine/Compiler/bytecode_pass.cpp
@@ -164,6 +168,7 @@ set(MINIMAL_ENGINESOURCE
164168
src/Engine/Compiler/pass/long_jump_optimization_pass.cpp
165169
src/Engine/Compiler/pass/basic_operator_local_indexing.cpp
166170
src/Engine/Compiler/pass/constant_folding.cpp
171+
src/Engine/Compiler/ecsserialization.cpp
167172
# Minimal interpreter (only lexer and token for parsing)
168173
src/Engine/Interpreter/lexer.cpp
169174
src/Engine/Interpreter/token.cpp
@@ -172,6 +177,7 @@ set(MINIMAL_ENGINESOURCE
172177
src/Engine/ECS/componentregistry.cpp
173178
src/Engine/ECS/entity.cpp
174179
src/Engine/ECS/entitysystem.cpp
180+
src/Engine/ECS/entitysystem_minimal.cpp
175181
src/Engine/ECS/group.cpp
176182
src/Engine/ECS/savemanager.cpp
177183
src/Engine/ECS/sparseset.cpp
@@ -205,9 +211,13 @@ set(ENGINESOURCE
205211
src/Engine/2D/texture.cpp
206212
src/Engine/Audio/audiosystem.cpp
207213
src/Engine/Compiler/compiler_debug.cpp
208-
src/Engine/Compiler/vm.cpp
214+
src/Engine/Compiler/vm_core.cpp
215+
src/Engine/Compiler/vm_helpers.cpp
216+
src/Engine/Compiler/vm_binary_op.cpp
217+
src/Engine/Compiler/vm_struct_op.cpp
209218
src/Engine/Compiler/vm_profiler.cpp
210219
src/Engine/Compiler/compiler.cpp
220+
src/Engine/Compiler/decoded_chunk.cpp
211221
src/Engine/Compiler/ecsserialization.cpp
212222
src/Engine/Compiler/object.cpp
213223
src/Engine/Compiler/cparser.cpp
@@ -222,6 +232,7 @@ set(ENGINESOURCE
222232
src/Engine/ECS/componentregistry.cpp
223233
src/Engine/ECS/entity.cpp
224234
src/Engine/ECS/entitysystem.cpp
235+
src/Engine/ECS/entitysystem_full.cpp
225236
src/Engine/ECS/group.cpp
226237
src/Engine/ECS/savemanager.cpp
227238
src/Engine/ECS/sparseset.cpp
@@ -725,6 +736,22 @@ if(NOT BUILD_STATIC_LIB AND BUILD_EXAMPLES)
725736

726737
###
727738

739+
add_executable(RenderingTest exemples/RenderingTest/main.cpp)
740+
741+
target_include_directories(RenderingTest PUBLIC exemples/RenderingTest)
742+
743+
target_sources(RenderingTest PRIVATE
744+
exemples/RenderingTest/application.cpp
745+
)
746+
747+
target_link_libraries(RenderingTest PRIVATE ColumbaEngine)
748+
749+
set_target_properties(RenderingTest
750+
PROPERTIES SUFFIX ".html"
751+
LINK_FLAGS "-lidbfs.js -s FORCE_FILESYSTEM=1 -sPTHREAD_POOL_SIZE=4 -pthread -s ALLOW_MEMORY_GROWTH=1 -s USE_WEBGL2=1 -s FULL_ES3=1 -s SAFE_HEAP=1 ${USE_FLAGS}")
752+
753+
###
754+
728755
add_executable(Asteroid exemples/Asteroid/main.cpp)
729756

730757
target_include_directories(Asteroid PUBLIC exemples/Asteroid)
@@ -903,6 +930,18 @@ if(NOT BUILD_STATIC_LIB AND BUILD_EXAMPLES)
903930

904931
###
905932

933+
add_executable(RenderingTest exemples/RenderingTest/main.cpp)
934+
935+
target_include_directories(RenderingTest PUBLIC exemples/RenderingTest)
936+
937+
target_sources(RenderingTest PRIVATE
938+
exemples/RenderingTest/application.cpp
939+
)
940+
941+
target_link_libraries(RenderingTest PRIVATE ColumbaEngine)
942+
943+
###
944+
906945
add_executable(Asteroid exemples/Asteroid/main.cpp)
907946

908947
target_include_directories(Asteroid PUBLIC exemples/Asteroid)
@@ -1061,21 +1100,27 @@ if(NOT BUILD_STATIC_LIB AND BUILD_EXAMPLES)
10611100

10621101
target_sources(bench PRIVATE
10631102
benchmark/memorypool.cc
1103+
benchmark/serialization.cc
1104+
benchmark/script_performance.cc
10641105
)
10651106

10661107
target_link_libraries(bench PRIVATE gtest gtest_main ColumbaEngine)
10671108

1109+
add_custom_command(TARGET bench PRE_BUILD
1110+
COMMAND ${CMAKE_COMMAND} -E copy_directory
1111+
${CMAKE_SOURCE_DIR}/test/bench $<TARGET_FILE_DIR:bench>/test/bench)
1112+
10681113
# ===============================================
10691114
# COMPILER TEST TARGET (simple script-based testbench)
10701115
# ===============================================
10711116

1072-
# PgCompiler source files (needed for testing)
1073-
set(PGCOMPILER_SOURCES)
1074-
10751117
# Create the compiler test executable with simple script testbench
10761118
add_executable(test_compiler test/pgcompiler/script_testbench.cc)
10771119

1078-
target_sources(test_compiler PRIVATE ${PGCOMPILER_SOURCES})
1120+
target_sources(test_compiler PRIVATE
1121+
test/pgcompiler/unit/test_vm_memory.cc
1122+
test/pgcompiler/unit/test_register_ops.cc
1123+
)
10791124

10801125
# Include directories for compiler tests
10811126
target_include_directories(test_compiler PRIVATE
@@ -1086,7 +1131,7 @@ if(NOT BUILD_STATIC_LIB AND BUILD_EXAMPLES)
10861131
target_link_libraries(test_compiler PRIVATE
10871132
gtest
10881133
gtest_main
1089-
ColumbaEngine
1134+
ColumbaEngineMinimal
10901135
)
10911136

10921137
# Add DEBUG_CHECK_STACK define for test_compiler target
@@ -1153,4 +1198,4 @@ endif()
11531198

11541199
message(STATUS "CPack generators: ${CPACK_GENERATOR}")
11551200

1156-
include(CPack)
1201+
include(CPack)

0 commit comments

Comments
 (0)