Update
parent
e468330e1b
commit
93e0212441
|
@ -46,9 +46,10 @@ add_executable(FinalProject ${CPP_FILES})
|
|||
target_link_libraries(FinalProject PRIVATE BLT)
|
||||
target_link_libraries(FinalProject PRIVATE freetype)
|
||||
|
||||
file(COPY ${CMAKE_CURRENT_SOURCE_DIR}/assets DESTINATION ${CMAKE_CURRENT_BINARY_DIR}/)
|
||||
|
||||
if (USE_EXTRAS)
|
||||
#set_target_properties(FinalProject PROPERTIES LINK_FLAGS "-s DEMANGLE_SUPPORT=1 --preload-file ${CMAKE_SOURCE_DIR}/assets --bind")
|
||||
file(COPY ${CMAKE_CURRENT_SOURCE_DIR}/assets DESTINATION ${CMAKE_CURRENT_BINARY_DIR}/)
|
||||
#set_target_properties(FinalProject PROPERTIES LINK_FLAGS "-s DEMANGLE_SUPPORT=1 --preload-file 'assets' --bind")
|
||||
set_target_properties(FinalProject PROPERTIES LINK_FLAGS "-sMAX_WEBGL_VERSION=2 -s ASSERTIONS=1 -sUSE_GLFW=3 --preload-file 'assets'")
|
||||
# these flags will be set by cmake automatically based on build type
|
||||
|
|
|
@ -9,7 +9,7 @@
|
|||
19 685 1675834610617266094 libraries/glfw-3.3.8/src/CMakeFiles/glfw.dir/vulkan.c.o 7ac098ea2e755b71
|
||||
2 377 1675835240591243670 libraries/glfw-3.3.8/src/CMakeFiles/glfw.dir/window.c.o a716fdf6afcb3ac2
|
||||
19 807 1675834610745269744 libraries/glfw-3.3.8/src/CMakeFiles/glfw.dir/x11_init.c.o 7a310a4749a2e05
|
||||
0 98 1676437177184652742 build.ninja 190f84590f6ee728
|
||||
0 98 1676522405299431511 build.ninja 190f84590f6ee728
|
||||
2 434 1675915441258513581 libraries/BLT/CMakeFiles/BLT.dir/src/blt/std/format.cpp.o 342a5daa6ca9681d
|
||||
18 706 1675834610629266436 libraries/glfw-3.3.8/src/CMakeFiles/glfw.dir/init.c.o 6051295f860fb367
|
||||
909 1200 1676342906918621193 libraries/BLT/libBLT.a 163b10f2e7f6635
|
||||
|
|
|
@ -1,3 +1,3 @@
|
|||
Start testing: Feb 13 21:49 EST
|
||||
Start testing: Feb 15 10:00 EST
|
||||
----------------------------------------------------------
|
||||
End testing: Feb 13 21:49 EST
|
||||
End testing: Feb 15 10:00 EST
|
||||
|
|
|
@ -70,6 +70,13 @@ build CMakeFiles/FinalProject.dir/src/render/gl.cpp.o: CXX_COMPILER__FinalProjec
|
|||
OBJECT_DIR = CMakeFiles/FinalProject.dir
|
||||
OBJECT_FILE_DIR = CMakeFiles/FinalProject.dir/src/render
|
||||
|
||||
build CMakeFiles/FinalProject.dir/src/render/ui/debug.cpp.o: CXX_COMPILER__FinalProject_Debug /home/brett/Documents/Brock/CS$ 3P98/Final$ Project/src/render/ui/debug.cpp || cmake_object_order_depends_target_FinalProject
|
||||
DEP_FILE = CMakeFiles/FinalProject.dir/src/render/ui/debug.cpp.o.d
|
||||
FLAGS = -fsanitize=address -g -g -fdiagnostics-color=always -fsanitize=address -std=gnu++17
|
||||
INCLUDES = -I"/home/brett/Documents/Brock/CS 3P98/Final Project/include" -I"/home/brett/Documents/Brock/CS 3P98/Final Project/libraries/BLT/include" -I"/home/brett/Documents/Brock/CS 3P98/Final Project/cmake-build-debug/libraries/BLT/config" -I"/home/brett/Documents/Brock/CS 3P98/Final Project/cmake-build-debug/libraries/freetype-2.13.0/include" -I"/home/brett/Documents/Brock/CS 3P98/Final Project/libraries/freetype-2.13.0/include" -I"/home/brett/Documents/Brock/CS 3P98/Final Project/libraries/glfw-3.3.8/include"
|
||||
OBJECT_DIR = CMakeFiles/FinalProject.dir
|
||||
OBJECT_FILE_DIR = CMakeFiles/FinalProject.dir/src/render/ui
|
||||
|
||||
build CMakeFiles/FinalProject.dir/src/render/ui/text.cpp.o: CXX_COMPILER__FinalProject_Debug /home/brett/Documents/Brock/CS$ 3P98/Final$ Project/src/render/ui/text.cpp || cmake_object_order_depends_target_FinalProject
|
||||
DEP_FILE = CMakeFiles/FinalProject.dir/src/render/ui/text.cpp.o.d
|
||||
FLAGS = -fsanitize=address -g -g -fdiagnostics-color=always -fsanitize=address -std=gnu++17
|
||||
|
@ -113,7 +120,7 @@ build CMakeFiles/FinalProject.dir/src/world/registry.cpp.o: CXX_COMPILER__FinalP
|
|||
#############################################
|
||||
# Link the executable FinalProject
|
||||
|
||||
build FinalProject: CXX_EXECUTABLE_LINKER__FinalProject_Debug CMakeFiles/FinalProject.dir/src/main.cpp.o CMakeFiles/FinalProject.dir/src/render/camera.cpp.o CMakeFiles/FinalProject.dir/src/render/gl.cpp.o CMakeFiles/FinalProject.dir/src/render/ui/text.cpp.o CMakeFiles/FinalProject.dir/src/render/window.cpp.o CMakeFiles/FinalProject.dir/src/world/chunk/storage.cpp.o CMakeFiles/FinalProject.dir/src/world/chunk/world.cpp.o CMakeFiles/FinalProject.dir/src/world/registry.cpp.o | libraries/BLT/libBLT.a libraries/freetype-2.13.0/libfreetyped.a libraries/glfw-3.3.8/src/libglfw3.a /usr/lib/x86_64-linux-gnu/libz.so /usr/lib/x86_64-linux-gnu/libz.so /usr/lib/x86_64-linux-gnu/libpng.so /usr/lib/x86_64-linux-gnu/libz.so /usr/lib/x86_64-linux-gnu/libpng.so /usr/lib/x86_64-linux-gnu/libharfbuzz.so /usr/lib/x86_64-linux-gnu/libbrotlidec.so /usr/lib/x86_64-linux-gnu/librt.a /usr/lib/x86_64-linux-gnu/libm.so /usr/lib/x86_64-linux-gnu/libX11.so || libraries/BLT/libBLT.a libraries/freetype-2.13.0/libfreetyped.a libraries/glfw-3.3.8/src/libglfw3.a
|
||||
build FinalProject: CXX_EXECUTABLE_LINKER__FinalProject_Debug CMakeFiles/FinalProject.dir/src/main.cpp.o CMakeFiles/FinalProject.dir/src/render/camera.cpp.o CMakeFiles/FinalProject.dir/src/render/gl.cpp.o CMakeFiles/FinalProject.dir/src/render/ui/debug.cpp.o CMakeFiles/FinalProject.dir/src/render/ui/text.cpp.o CMakeFiles/FinalProject.dir/src/render/window.cpp.o CMakeFiles/FinalProject.dir/src/world/chunk/storage.cpp.o CMakeFiles/FinalProject.dir/src/world/chunk/world.cpp.o CMakeFiles/FinalProject.dir/src/world/registry.cpp.o | libraries/BLT/libBLT.a libraries/freetype-2.13.0/libfreetyped.a libraries/glfw-3.3.8/src/libglfw3.a /usr/lib/x86_64-linux-gnu/libz.so /usr/lib/x86_64-linux-gnu/libz.so /usr/lib/x86_64-linux-gnu/libpng.so /usr/lib/x86_64-linux-gnu/libz.so /usr/lib/x86_64-linux-gnu/libpng.so /usr/lib/x86_64-linux-gnu/libharfbuzz.so /usr/lib/x86_64-linux-gnu/libbrotlidec.so /usr/lib/x86_64-linux-gnu/librt.a /usr/lib/x86_64-linux-gnu/libm.so /usr/lib/x86_64-linux-gnu/libX11.so || libraries/BLT/libBLT.a libraries/freetype-2.13.0/libfreetyped.a libraries/glfw-3.3.8/src/libglfw3.a
|
||||
FLAGS = -fsanitize=address -g -g
|
||||
LINK_FLAGS = -rdynamic -fsanitize=address
|
||||
LINK_LIBRARIES = libraries/BLT/libBLT.a libraries/freetype-2.13.0/libfreetyped.a libraries/glfw-3.3.8/src/libglfw3.a /usr/lib/x86_64-linux-gnu/libz.so -lz -lpng -lz -lpng -lharfbuzz -lbrotlidec -Wl,-Bstatic -lrt -Wl,-Bdynamic -lm -ldl -lX11
|
||||
|
|
|
@ -1,30 +1,30 @@
|
|||
The target system is: Emscripten - 1 - x86
|
||||
The host system is: Linux - 6.1.0-3-amd64 - x86_64
|
||||
Determining if the include file unistd.h exists passed with the following output:
|
||||
Change Dir: /home/brett/Documents/Brock/CS 3P98/Final Project/cmake-build-emrelease/CMakeFiles/CMakeScratch/TryCompile-l1ISEg
|
||||
Change Dir: /home/brett/Documents/Brock/CS 3P98/Final Project/cmake-build-emrelease/CMakeFiles/CMakeScratch/TryCompile-YoGmv6
|
||||
|
||||
Run Build Command(s):/usr/bin/gmake -f Makefile cmTC_8d1a4/fast && /usr/bin/gmake -f CMakeFiles/cmTC_8d1a4.dir/build.make CMakeFiles/cmTC_8d1a4.dir/build
|
||||
gmake[1]: Entering directory '/home/brett/Documents/Brock/CS 3P98/Final Project/cmake-build-emrelease/CMakeFiles/CMakeScratch/TryCompile-l1ISEg'
|
||||
Building C object CMakeFiles/cmTC_8d1a4.dir/CheckIncludeFile.c.o
|
||||
/usr/bin/emcc -MD -MT CMakeFiles/cmTC_8d1a4.dir/CheckIncludeFile.c.o -MF CMakeFiles/cmTC_8d1a4.dir/CheckIncludeFile.c.o.d -o CMakeFiles/cmTC_8d1a4.dir/CheckIncludeFile.c.o -c "/home/brett/Documents/Brock/CS 3P98/Final Project/cmake-build-emrelease/CMakeFiles/CMakeScratch/TryCompile-l1ISEg/CheckIncludeFile.c"
|
||||
Linking C executable cmTC_8d1a4.js
|
||||
/usr/bin/cmake -E cmake_link_script CMakeFiles/cmTC_8d1a4.dir/link.txt --verbose=1
|
||||
/usr/bin/emcc @CMakeFiles/cmTC_8d1a4.dir/objects1 -o cmTC_8d1a4.js
|
||||
gmake[1]: Leaving directory '/home/brett/Documents/Brock/CS 3P98/Final Project/cmake-build-emrelease/CMakeFiles/CMakeScratch/TryCompile-l1ISEg'
|
||||
Run Build Command(s):/usr/bin/gmake -f Makefile cmTC_20850/fast && /usr/bin/gmake -f CMakeFiles/cmTC_20850.dir/build.make CMakeFiles/cmTC_20850.dir/build
|
||||
gmake[1]: Entering directory '/home/brett/Documents/Brock/CS 3P98/Final Project/cmake-build-emrelease/CMakeFiles/CMakeScratch/TryCompile-YoGmv6'
|
||||
Building C object CMakeFiles/cmTC_20850.dir/CheckIncludeFile.c.o
|
||||
/usr/bin/emcc -MD -MT CMakeFiles/cmTC_20850.dir/CheckIncludeFile.c.o -MF CMakeFiles/cmTC_20850.dir/CheckIncludeFile.c.o.d -o CMakeFiles/cmTC_20850.dir/CheckIncludeFile.c.o -c "/home/brett/Documents/Brock/CS 3P98/Final Project/cmake-build-emrelease/CMakeFiles/CMakeScratch/TryCompile-YoGmv6/CheckIncludeFile.c"
|
||||
Linking C executable cmTC_20850.js
|
||||
/usr/bin/cmake -E cmake_link_script CMakeFiles/cmTC_20850.dir/link.txt --verbose=1
|
||||
/usr/bin/emcc @CMakeFiles/cmTC_20850.dir/objects1 -o cmTC_20850.js
|
||||
gmake[1]: Leaving directory '/home/brett/Documents/Brock/CS 3P98/Final Project/cmake-build-emrelease/CMakeFiles/CMakeScratch/TryCompile-YoGmv6'
|
||||
|
||||
|
||||
|
||||
Determining if the include file fcntl.h exists passed with the following output:
|
||||
Change Dir: /home/brett/Documents/Brock/CS 3P98/Final Project/cmake-build-emrelease/CMakeFiles/CMakeScratch/TryCompile-fFQ9Kn
|
||||
Change Dir: /home/brett/Documents/Brock/CS 3P98/Final Project/cmake-build-emrelease/CMakeFiles/CMakeScratch/TryCompile-xPVPFz
|
||||
|
||||
Run Build Command(s):/usr/bin/gmake -f Makefile cmTC_a1663/fast && /usr/bin/gmake -f CMakeFiles/cmTC_a1663.dir/build.make CMakeFiles/cmTC_a1663.dir/build
|
||||
gmake[1]: Entering directory '/home/brett/Documents/Brock/CS 3P98/Final Project/cmake-build-emrelease/CMakeFiles/CMakeScratch/TryCompile-fFQ9Kn'
|
||||
Building C object CMakeFiles/cmTC_a1663.dir/CheckIncludeFile.c.o
|
||||
/usr/bin/emcc -MD -MT CMakeFiles/cmTC_a1663.dir/CheckIncludeFile.c.o -MF CMakeFiles/cmTC_a1663.dir/CheckIncludeFile.c.o.d -o CMakeFiles/cmTC_a1663.dir/CheckIncludeFile.c.o -c "/home/brett/Documents/Brock/CS 3P98/Final Project/cmake-build-emrelease/CMakeFiles/CMakeScratch/TryCompile-fFQ9Kn/CheckIncludeFile.c"
|
||||
Linking C executable cmTC_a1663.js
|
||||
/usr/bin/cmake -E cmake_link_script CMakeFiles/cmTC_a1663.dir/link.txt --verbose=1
|
||||
/usr/bin/emcc @CMakeFiles/cmTC_a1663.dir/objects1 -o cmTC_a1663.js
|
||||
gmake[1]: Leaving directory '/home/brett/Documents/Brock/CS 3P98/Final Project/cmake-build-emrelease/CMakeFiles/CMakeScratch/TryCompile-fFQ9Kn'
|
||||
Run Build Command(s):/usr/bin/gmake -f Makefile cmTC_ed00e/fast && /usr/bin/gmake -f CMakeFiles/cmTC_ed00e.dir/build.make CMakeFiles/cmTC_ed00e.dir/build
|
||||
gmake[1]: Entering directory '/home/brett/Documents/Brock/CS 3P98/Final Project/cmake-build-emrelease/CMakeFiles/CMakeScratch/TryCompile-xPVPFz'
|
||||
Building C object CMakeFiles/cmTC_ed00e.dir/CheckIncludeFile.c.o
|
||||
/usr/bin/emcc -MD -MT CMakeFiles/cmTC_ed00e.dir/CheckIncludeFile.c.o -MF CMakeFiles/cmTC_ed00e.dir/CheckIncludeFile.c.o.d -o CMakeFiles/cmTC_ed00e.dir/CheckIncludeFile.c.o -c "/home/brett/Documents/Brock/CS 3P98/Final Project/cmake-build-emrelease/CMakeFiles/CMakeScratch/TryCompile-xPVPFz/CheckIncludeFile.c"
|
||||
Linking C executable cmTC_ed00e.js
|
||||
/usr/bin/cmake -E cmake_link_script CMakeFiles/cmTC_ed00e.dir/link.txt --verbose=1
|
||||
/usr/bin/emcc @CMakeFiles/cmTC_ed00e.dir/objects1 -o cmTC_ed00e.js
|
||||
gmake[1]: Leaving directory '/home/brett/Documents/Brock/CS 3P98/Final Project/cmake-build-emrelease/CMakeFiles/CMakeScratch/TryCompile-xPVPFz'
|
||||
|
||||
|
||||
|
||||
|
|
|
@ -324,6 +324,7 @@ CMakeFiles/FinalProject.dir/src/main.cpp.o: \
|
|||
/usr/share/emscripten/cache/sysroot/include/c++/v1/streambuf \
|
||||
/usr/share/emscripten/cache/sysroot/include/c++/v1/__bsd_locale_fallbacks.h \
|
||||
/usr/share/emscripten/cache/sysroot/include/c++/v1/sstream \
|
||||
/home/brett/Documents/Brock/CS\ 3P98/Final\ Project/include/render/ui/text.h \
|
||||
/home/brett/Documents/Brock/CS\ 3P98/Final\ Project/include/shaders/chunk.frag \
|
||||
/home/brett/Documents/Brock/CS\ 3P98/Final\ Project/include/shaders/chunk.vert \
|
||||
/home/brett/Documents/Brock/CS\ 3P98/Final\ Project/include/render/camera.h \
|
||||
|
|
Binary file not shown.
Binary file not shown.
|
@ -116,8 +116,8 @@ libraries/freetype-2.13.0/clean: libraries/freetype-2.13.0/CMakeFiles/freetype.d
|
|||
# Target rules for target CMakeFiles/FinalProject.dir
|
||||
|
||||
# All Build rule for target.
|
||||
CMakeFiles/FinalProject.dir/all: libraries/freetype-2.13.0/CMakeFiles/freetype.dir/all
|
||||
CMakeFiles/FinalProject.dir/all: libraries/BLT/CMakeFiles/BLT.dir/all
|
||||
CMakeFiles/FinalProject.dir/all: libraries/freetype-2.13.0/CMakeFiles/freetype.dir/all
|
||||
$(MAKE) $(MAKESILENT) -f CMakeFiles/FinalProject.dir/build.make CMakeFiles/FinalProject.dir/depend
|
||||
$(MAKE) $(MAKESILENT) -f CMakeFiles/FinalProject.dir/build.make CMakeFiles/FinalProject.dir/build
|
||||
@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --progress-dir="/home/brett/Documents/Brock/CS 3P98/Final Project/cmake-build-emrelease/CMakeFiles" --progress-num=10,11,12,13,14,15,16,17,18 "Built target FinalProject"
|
||||
|
|
Binary file not shown.
Binary file not shown.
|
@ -70,6 +70,13 @@ build CMakeFiles/FinalProject.dir/src/render/gl.cpp.o: CXX_COMPILER__FinalProjec
|
|||
OBJECT_DIR = CMakeFiles/FinalProject.dir
|
||||
OBJECT_FILE_DIR = CMakeFiles/FinalProject.dir/src/render
|
||||
|
||||
build CMakeFiles/FinalProject.dir/src/render/ui/debug.cpp.o: CXX_COMPILER__FinalProject_Release /home/brett/Documents/Brock/CS$ 3P98/Final$ Project/src/render/ui/debug.cpp || cmake_object_order_depends_target_FinalProject
|
||||
DEP_FILE = CMakeFiles/FinalProject.dir/src/render/ui/debug.cpp.o.d
|
||||
FLAGS = -O3 -DNDEBUG -fdiagnostics-color=always -std=gnu++17
|
||||
INCLUDES = -I"/home/brett/Documents/Brock/CS 3P98/Final Project/include" -I"/home/brett/Documents/Brock/CS 3P98/Final Project/libraries/BLT/include" -I"/home/brett/Documents/Brock/CS 3P98/Final Project/cmake-build-release/libraries/BLT/config" -I"/home/brett/Documents/Brock/CS 3P98/Final Project/cmake-build-release/libraries/freetype-2.13.0/include" -I"/home/brett/Documents/Brock/CS 3P98/Final Project/libraries/freetype-2.13.0/include" -I"/home/brett/Documents/Brock/CS 3P98/Final Project/libraries/glfw-3.3.8/include"
|
||||
OBJECT_DIR = CMakeFiles/FinalProject.dir
|
||||
OBJECT_FILE_DIR = CMakeFiles/FinalProject.dir/src/render/ui
|
||||
|
||||
build CMakeFiles/FinalProject.dir/src/render/ui/text.cpp.o: CXX_COMPILER__FinalProject_Release /home/brett/Documents/Brock/CS$ 3P98/Final$ Project/src/render/ui/text.cpp || cmake_object_order_depends_target_FinalProject
|
||||
DEP_FILE = CMakeFiles/FinalProject.dir/src/render/ui/text.cpp.o.d
|
||||
FLAGS = -O3 -DNDEBUG -fdiagnostics-color=always -std=gnu++17
|
||||
|
@ -113,7 +120,7 @@ build CMakeFiles/FinalProject.dir/src/world/registry.cpp.o: CXX_COMPILER__FinalP
|
|||
#############################################
|
||||
# Link the executable FinalProject
|
||||
|
||||
build FinalProject: CXX_EXECUTABLE_LINKER__FinalProject_Release CMakeFiles/FinalProject.dir/src/main.cpp.o CMakeFiles/FinalProject.dir/src/render/camera.cpp.o CMakeFiles/FinalProject.dir/src/render/gl.cpp.o CMakeFiles/FinalProject.dir/src/render/ui/text.cpp.o CMakeFiles/FinalProject.dir/src/render/window.cpp.o CMakeFiles/FinalProject.dir/src/world/chunk/storage.cpp.o CMakeFiles/FinalProject.dir/src/world/chunk/world.cpp.o CMakeFiles/FinalProject.dir/src/world/registry.cpp.o | libraries/BLT/libBLT.a libraries/freetype-2.13.0/libfreetype.a libraries/glfw-3.3.8/src/libglfw3.a /usr/lib/x86_64-linux-gnu/libz.so /usr/lib/x86_64-linux-gnu/libz.so /usr/lib/x86_64-linux-gnu/libpng.so /usr/lib/x86_64-linux-gnu/libz.so /usr/lib/x86_64-linux-gnu/libpng.so /usr/lib/x86_64-linux-gnu/libharfbuzz.so /usr/lib/x86_64-linux-gnu/libbrotlidec.so /usr/lib/x86_64-linux-gnu/librt.a /usr/lib/x86_64-linux-gnu/libm.so /usr/lib/x86_64-linux-gnu/libX11.so || libraries/BLT/libBLT.a libraries/freetype-2.13.0/libfreetype.a libraries/glfw-3.3.8/src/libglfw3.a
|
||||
build FinalProject: CXX_EXECUTABLE_LINKER__FinalProject_Release CMakeFiles/FinalProject.dir/src/main.cpp.o CMakeFiles/FinalProject.dir/src/render/camera.cpp.o CMakeFiles/FinalProject.dir/src/render/gl.cpp.o CMakeFiles/FinalProject.dir/src/render/ui/debug.cpp.o CMakeFiles/FinalProject.dir/src/render/ui/text.cpp.o CMakeFiles/FinalProject.dir/src/render/window.cpp.o CMakeFiles/FinalProject.dir/src/world/chunk/storage.cpp.o CMakeFiles/FinalProject.dir/src/world/chunk/world.cpp.o CMakeFiles/FinalProject.dir/src/world/registry.cpp.o | libraries/BLT/libBLT.a libraries/freetype-2.13.0/libfreetype.a libraries/glfw-3.3.8/src/libglfw3.a /usr/lib/x86_64-linux-gnu/libz.so /usr/lib/x86_64-linux-gnu/libz.so /usr/lib/x86_64-linux-gnu/libpng.so /usr/lib/x86_64-linux-gnu/libz.so /usr/lib/x86_64-linux-gnu/libpng.so /usr/lib/x86_64-linux-gnu/libharfbuzz.so /usr/lib/x86_64-linux-gnu/libbrotlidec.so /usr/lib/x86_64-linux-gnu/librt.a /usr/lib/x86_64-linux-gnu/libm.so /usr/lib/x86_64-linux-gnu/libX11.so || libraries/BLT/libBLT.a libraries/freetype-2.13.0/libfreetype.a libraries/glfw-3.3.8/src/libglfw3.a
|
||||
FLAGS = -O3 -DNDEBUG
|
||||
LINK_FLAGS = -rdynamic
|
||||
LINK_LIBRARIES = libraries/BLT/libBLT.a libraries/freetype-2.13.0/libfreetype.a libraries/glfw-3.3.8/src/libglfw3.a /usr/lib/x86_64-linux-gnu/libz.so -lz -lpng -lz -lpng -lharfbuzz -lbrotlidec -Wl,-Bstatic -lrt -Wl,-Bdynamic -lm -ldl -lX11
|
||||
|
|
Binary file not shown.
|
@ -4,15 +4,15 @@
|
|||
1834 1911 1676433233204236237 libraries/freetype-2.13.0/CMakeFiles/freetype.dir/builds/unix/ftsystem.c.o 827aa9e59ce2e7a7
|
||||
2 359 1676433231652193119 CMakeFiles/FinalProject.dir/src/world/registry.cpp.o d042df377c55f1ff
|
||||
1492 1561 1676433232856226570 libraries/freetype-2.13.0/CMakeFiles/freetype.dir/src/svg/svg.c.o dc9fa4644e4bfeff
|
||||
2 989 1676433540724753637 CMakeFiles/FinalProject.dir/src/world/chunk/world.cpp.o 7a550f9a4e0bfc9c
|
||||
43 1314 1676471929044065252 CMakeFiles/FinalProject.dir/src/world/chunk/world.cpp.o 7a550f9a4e0bfc9c
|
||||
415 481 1676433231772196453 libraries/freetype-2.13.0/CMakeFiles/freetype.dir/src/base/ftsynth.c.o c94e1df207dca05f
|
||||
1 268 1675879686057895775 libraries/glfw-3.3.8/src/CMakeFiles/glfw.dir/monitor.c.o 3306a3caed247cee
|
||||
2 617 1676232113376748890 libraries/BLT/CMakeFiles/BLT.dir/src/blt/std/system.cpp.o 9999b1f01228dc1e
|
||||
43 863 1676471928592052838 libraries/BLT/CMakeFiles/BLT.dir/src/blt/std/system.cpp.o 9999b1f01228dc1e
|
||||
284 371 1676433231664193453 libraries/freetype-2.13.0/CMakeFiles/freetype.dir/src/base/ftinit.c.o c79de44174f27a42
|
||||
146 200 1676433231492188675 libraries/freetype-2.13.0/CMakeFiles/freetype.dir/src/base/ftfstype.c.o c1571efbcaa8f933
|
||||
2 2058 1676432317102307132 libraries/BLT/CMakeFiles/BLT.dir/src/blt/profiling/profiler.cpp.o 3879c77c4691aa0a
|
||||
3 2002 1676473110932638542 libraries/BLT/CMakeFiles/BLT.dir/src/blt/profiling/profiler.cpp.o 3879c77c4691aa0a
|
||||
3 90 1676433231384185673 libraries/freetype-2.13.0/CMakeFiles/freetype.dir/src/base/ftbdf.c.o d55aaa7d5cd3d5c
|
||||
2 1069 1676433232360212789 CMakeFiles/FinalProject.dir/src/render/window.cpp.o d3ff816bc92bb4a6
|
||||
2 714 1676473109648603093 CMakeFiles/FinalProject.dir/src/render/window.cpp.o d3ff816bc92bb4a6
|
||||
1713 2505 1676433233796252686 libraries/freetype-2.13.0/CMakeFiles/freetype.dir/src/type1/type1.c.o e9ac3fb73828fd6d
|
||||
1 184 1675879685973893394 libraries/glfw-3.3.8/src/CMakeFiles/glfw.dir/vulkan.c.o 726a0ce9066c22d2
|
||||
200 408 1676433231700194452 libraries/freetype-2.13.0/CMakeFiles/freetype.dir/src/base/ftglyph.c.o 287c587d2b62e728
|
||||
|
@ -27,8 +27,8 @@
|
|||
2 2203 1676433233496244349 libraries/freetype-2.13.0/CMakeFiles/freetype.dir/src/base/ftbase.c.o 4be5f2832180d492
|
||||
1254 1793 1676433233084232903 libraries/freetype-2.13.0/CMakeFiles/freetype.dir/src/raster/raster.c.o f81177488ebd3ad
|
||||
1 213 1675879686001894187 libraries/glfw-3.3.8/src/CMakeFiles/glfw.dir/init.c.o 7363bcb2dba2054a
|
||||
2058 2137 1676432317174309089 libraries/BLT/libBLT.a 163b10f2e7f6635
|
||||
989 1079 1676433540812756066 FinalProject be31c396fadad6c6
|
||||
2002 2085 1676473111008640638 libraries/BLT/libBLT.a 163b10f2e7f6635
|
||||
656 779 1676473248976449540 FinalProject 279a08a1cf71c6a8
|
||||
408 468 1676433231760196120 libraries/freetype-2.13.0/CMakeFiles/freetype.dir/src/base/ftpfr.c.o 565b64bbd1fc7af5
|
||||
518 559 1676433231852198676 libraries/freetype-2.13.0/CMakeFiles/freetype.dir/src/bzip2/ftbzip2.c.o 7d125f3d19646cd0
|
||||
240 342 1675879686133897930 libraries/glfw-3.3.8/src/CMakeFiles/glfw.dir/posix_thread.c.o ed8a69d447bea26a
|
||||
|
@ -37,16 +37,16 @@
|
|||
1182 2070 1676433233364240685 libraries/freetype-2.13.0/CMakeFiles/freetype.dir/src/pshinter/pshinter.c.o d1c695600d3a7dfd
|
||||
185 272 1675879686061895889 libraries/glfw-3.3.8/src/CMakeFiles/glfw.dir/xkb_unicode.c.o b26e96d6509cc15d
|
||||
1009 1182 1676433232476216011 libraries/freetype-2.13.0/CMakeFiles/freetype.dir/src/lzw/ftlzw.c.o d04e126e5d735f8b
|
||||
1 1024 1676433232316211567 CMakeFiles/FinalProject.dir/src/render/camera.cpp.o 5776e342ea508518
|
||||
2 591 1676472003274104855 CMakeFiles/FinalProject.dir/src/render/camera.cpp.o 5776e342ea508518
|
||||
3 816 1675879686605911309 libraries/glfw-3.3.8/src/CMakeFiles/glfw.dir/x11_window.c.o 3c77d54154e66152
|
||||
2 1148 1676094325714020716 libraries/BLT/CMakeFiles/BLT.dir/src/blt/std/loader.cpp.o dba8b361d1594e59
|
||||
1150 2917 1676433234208264129 libraries/freetype-2.13.0/CMakeFiles/freetype.dir/src/psaux/psaux.c.o 2a71d88eed8a5228
|
||||
816 896 1675879686681913464 libraries/glfw-3.3.8/src/libglfw3.a 4545fd6d0d1d5667
|
||||
223 284 1676433231576191007 libraries/freetype-2.13.0/CMakeFiles/freetype.dir/src/base/ftgxval.c.o d760f2ca9797735d
|
||||
1 1254 1676433232544217904 CMakeFiles/FinalProject.dir/src/main.cpp.o 1ae001c7e5feebcb
|
||||
2 870 1676473109804607402 CMakeFiles/FinalProject.dir/src/main.cpp.o 1ae001c7e5feebcb
|
||||
1 489 1675879686277902012 libraries/glfw-3.3.8/src/CMakeFiles/glfw.dir/input.c.o b9b0555d1bde647a
|
||||
490 862 1675879686649912557 libraries/BLT/CMakeFiles/BLT.dir/src/blt/nbt/nbt_block.cpp.o 2100792179af25a6
|
||||
3840 3940 1676433235220292244 libraries/freetype-2.13.0/libfreetype.a f550ecbb3936aaae
|
||||
43 530 1676471928244043279 libraries/freetype-2.13.0/libfreetype.a f550ecbb3936aaae
|
||||
153 223 1676433231516189341 libraries/freetype-2.13.0/CMakeFiles/freetype.dir/src/base/ftgasp.c.o 6eb2c5578119b9c8
|
||||
1 240 1675879686029894982 libraries/glfw-3.3.8/src/CMakeFiles/glfw.dir/context.c.o 66a0481f161ec0b0
|
||||
1382 3837 1676433235128289688 libraries/freetype-2.13.0/CMakeFiles/freetype.dir/src/sfnt/sfnt.c.o f8f71756e461ba89
|
||||
|
@ -60,7 +60,7 @@
|
|||
831 1286 1676433232580218901 libraries/freetype-2.13.0/CMakeFiles/freetype.dir/src/cid/type1cid.c.o 23bf561e9b90dd0
|
||||
1286 2036 1676433233328239682 libraries/freetype-2.13.0/CMakeFiles/freetype.dir/src/sdf/sdf.c.o 807c8e056b31c5d0
|
||||
299 456 1676433231748195786 libraries/freetype-2.13.0/CMakeFiles/freetype.dir/src/base/ftmm.c.o 7b1dd129e6fb4981
|
||||
2 831 1676433232120206122 CMakeFiles/FinalProject.dir/src/world/chunk/storage.cpp.o aba7285d6d94217e
|
||||
43 1040 1676471928768057669 CMakeFiles/FinalProject.dir/src/world/chunk/storage.cpp.o aba7285d6d94217e
|
||||
299 466 1675879686253901332 libraries/glfw-3.3.8/src/CMakeFiles/glfw.dir/osmesa_context.c.o a913dd02c9ac6f97
|
||||
2 609 1676232422337127593 CMakeFiles/FinalProject.dir/src/world/chunk/chunk.cpp.o 901d26561b8e342a
|
||||
468 518 1676433231812197567 libraries/freetype-2.13.0/CMakeFiles/freetype.dir/src/base/ftwinfnt.c.o 9fabacfc2ff8811a
|
||||
|
@ -68,8 +68,9 @@
|
|||
1249 1492 1676433232784224571 libraries/freetype-2.13.0/CMakeFiles/freetype.dir/src/psnames/psnames.c.o 9d8ecfaa201fc592
|
||||
2 409 1676094324978000454 libraries/BLT/CMakeFiles/BLT.dir/src/blt/std/filesystem.cpp.o 49e1226ae352c85c
|
||||
359 407 1676433231700194452 libraries/freetype-2.13.0/CMakeFiles/freetype.dir/src/base/ftotval.c.o 1775fdea3e52c802
|
||||
1 1835 1676433233124234017 CMakeFiles/FinalProject.dir/src/render/gl.cpp.o 2660a3bd1778e5e3
|
||||
43 1542 1676471929272071515 CMakeFiles/FinalProject.dir/src/render/gl.cpp.o 2660a3bd1778e5e3
|
||||
1793 1990 1676433233284238460 libraries/freetype-2.13.0/CMakeFiles/freetype.dir/src/winfonts/winfnt.c.o e43948e4a6dbf2e9
|
||||
2 656 1676473248856446226 CMakeFiles/FinalProject.dir/src/render/ui/text.cpp.o 4bc61f357ca60822
|
||||
408 882 1676433232176207678 libraries/freetype-2.13.0/CMakeFiles/freetype.dir/src/base/ftstroke.c.o d23f15afb5e42f5b
|
||||
3 146 1676433231440187230 libraries/freetype-2.13.0/CMakeFiles/freetype.dir/src/base/ftbbox.c.o 33ee4db3f35b92d3
|
||||
2 1986 1676433233276238237 libraries/freetype-2.13.0/CMakeFiles/freetype.dir/src/autofit/autofit.c.o be86846738c7b3be
|
||||
|
@ -77,3 +78,25 @@
|
|||
524 1150 1676433232440215012 libraries/freetype-2.13.0/CMakeFiles/freetype.dir/src/cache/ftcache.c.o 6a50d2c3764a714
|
||||
559 1833 1676433233124234017 libraries/freetype-2.13.0/CMakeFiles/freetype.dir/src/cff/cff.c.o 47495ad83245b5e7
|
||||
311 524 1675879686313903031 libraries/glfw-3.3.8/src/CMakeFiles/glfw.dir/linux_joystick.c.o 3df40cb71360060f
|
||||
3 528 1676524281243560604 CMakeFiles/FinalProject.dir/src/render/ui/debug.cpp.o 67c82fe66fca827
|
||||
4 550 1676524281267561272 libraries/BLT/CMakeFiles/BLT.dir/src/blt/std/system.cpp.o 9999b1f01228dc1e
|
||||
550 665 1676524281363563949 libraries/BLT/libBLT.a 163b10f2e7f6635
|
||||
4 812 1676524281527568519 CMakeFiles/FinalProject.dir/src/world/chunk/storage.cpp.o aba7285d6d94217e
|
||||
3 940 1676524281655572087 CMakeFiles/FinalProject.dir/src/render/camera.cpp.o 5776e342ea508518
|
||||
3 1014 1676524281727574095 CMakeFiles/FinalProject.dir/src/render/window.cpp.o d3ff816bc92bb4a6
|
||||
2 1162 1676524281875578220 CMakeFiles/FinalProject.dir/src/main.cpp.o 1ae001c7e5feebcb
|
||||
4 1312 1676524282027582456 CMakeFiles/FinalProject.dir/src/world/chunk/world.cpp.o 7a550f9a4e0bfc9c
|
||||
3 1473 1676524282187586917 CMakeFiles/FinalProject.dir/src/render/ui/text.cpp.o 4bc61f357ca60822
|
||||
3 1518 1676524282231588143 CMakeFiles/FinalProject.dir/src/render/gl.cpp.o 2660a3bd1778e5e3
|
||||
1518 1712 1676524282423593494 FinalProject 1a926718972bddbe
|
||||
2 374 1676524424431551785 CMakeFiles/FinalProject.dir/src/render/ui/debug.cpp.o 67c82fe66fca827
|
||||
3 594 1676524424651557917 libraries/BLT/CMakeFiles/BLT.dir/src/blt/std/system.cpp.o 9999b1f01228dc1e
|
||||
3 613 1676524424671558477 CMakeFiles/FinalProject.dir/src/world/chunk/storage.cpp.o aba7285d6d94217e
|
||||
594 658 1676524424711559591 libraries/BLT/libBLT.a 163b10f2e7f6635
|
||||
2 785 1676524424839563159 CMakeFiles/FinalProject.dir/src/render/window.cpp.o d3ff816bc92bb4a6
|
||||
2 840 1676524424895564721 CMakeFiles/FinalProject.dir/src/render/camera.cpp.o 5776e342ea508518
|
||||
2 976 1676524425031568511 CMakeFiles/FinalProject.dir/src/main.cpp.o 1ae001c7e5feebcb
|
||||
3 1107 1676524425163572190 CMakeFiles/FinalProject.dir/src/world/chunk/world.cpp.o 7a550f9a4e0bfc9c
|
||||
2 1352 1676524425407578992 CMakeFiles/FinalProject.dir/src/render/ui/text.cpp.o 4bc61f357ca60822
|
||||
2 1482 1676524425539582673 CMakeFiles/FinalProject.dir/src/render/gl.cpp.o 2660a3bd1778e5e3
|
||||
1482 1608 1676524425663586129 FinalProject 1a926718972bddbe
|
||||
|
|
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
|
@ -1,3 +1,3 @@
|
|||
Start testing: Feb 14 23:59 EST
|
||||
Start testing: Feb 16 00:13 EST
|
||||
----------------------------------------------------------
|
||||
End testing: Feb 14 23:59 EST
|
||||
End testing: Feb 16 00:13 EST
|
||||
|
|
|
@ -70,6 +70,13 @@ build CMakeFiles/FinalProject.dir/src/render/gl.cpp.o: CXX_COMPILER__FinalProjec
|
|||
OBJECT_DIR = CMakeFiles/FinalProject.dir
|
||||
OBJECT_FILE_DIR = CMakeFiles/FinalProject.dir/src/render
|
||||
|
||||
build CMakeFiles/FinalProject.dir/src/render/ui/debug.cpp.o: CXX_COMPILER__FinalProject_RelWithDebInfo /home/brett/Documents/Brock/CS$ 3P98/Final$ Project/src/render/ui/debug.cpp || cmake_object_order_depends_target_FinalProject
|
||||
DEP_FILE = CMakeFiles/FinalProject.dir/src/render/ui/debug.cpp.o.d
|
||||
FLAGS = -O2 -g -DNDEBUG -fdiagnostics-color=always -std=gnu++17
|
||||
INCLUDES = -I"/home/brett/Documents/Brock/CS 3P98/Final Project/include" -I"/home/brett/Documents/Brock/CS 3P98/Final Project/libraries/BLT/include" -I"/home/brett/Documents/Brock/CS 3P98/Final Project/cmake-build-relwithdebinfo/libraries/BLT/config" -I"/home/brett/Documents/Brock/CS 3P98/Final Project/cmake-build-relwithdebinfo/libraries/freetype-2.13.0/include" -I"/home/brett/Documents/Brock/CS 3P98/Final Project/libraries/freetype-2.13.0/include" -I"/home/brett/Documents/Brock/CS 3P98/Final Project/libraries/glfw-3.3.8/include"
|
||||
OBJECT_DIR = CMakeFiles/FinalProject.dir
|
||||
OBJECT_FILE_DIR = CMakeFiles/FinalProject.dir/src/render/ui
|
||||
|
||||
build CMakeFiles/FinalProject.dir/src/render/ui/text.cpp.o: CXX_COMPILER__FinalProject_RelWithDebInfo /home/brett/Documents/Brock/CS$ 3P98/Final$ Project/src/render/ui/text.cpp || cmake_object_order_depends_target_FinalProject
|
||||
DEP_FILE = CMakeFiles/FinalProject.dir/src/render/ui/text.cpp.o.d
|
||||
FLAGS = -O2 -g -DNDEBUG -fdiagnostics-color=always -std=gnu++17
|
||||
|
@ -113,7 +120,7 @@ build CMakeFiles/FinalProject.dir/src/world/registry.cpp.o: CXX_COMPILER__FinalP
|
|||
#############################################
|
||||
# Link the executable FinalProject
|
||||
|
||||
build FinalProject: CXX_EXECUTABLE_LINKER__FinalProject_RelWithDebInfo CMakeFiles/FinalProject.dir/src/main.cpp.o CMakeFiles/FinalProject.dir/src/render/camera.cpp.o CMakeFiles/FinalProject.dir/src/render/gl.cpp.o CMakeFiles/FinalProject.dir/src/render/ui/text.cpp.o CMakeFiles/FinalProject.dir/src/render/window.cpp.o CMakeFiles/FinalProject.dir/src/world/chunk/storage.cpp.o CMakeFiles/FinalProject.dir/src/world/chunk/world.cpp.o CMakeFiles/FinalProject.dir/src/world/registry.cpp.o | libraries/BLT/libBLT.a libraries/freetype-2.13.0/libfreetype.a libraries/glfw-3.3.8/src/libglfw3.a /usr/lib/x86_64-linux-gnu/libz.so /usr/lib/x86_64-linux-gnu/libz.so /usr/lib/x86_64-linux-gnu/libpng.so /usr/lib/x86_64-linux-gnu/libz.so /usr/lib/x86_64-linux-gnu/libpng.so /usr/lib/x86_64-linux-gnu/libharfbuzz.so /usr/lib/x86_64-linux-gnu/libbrotlidec.so /usr/lib/x86_64-linux-gnu/librt.a /usr/lib/x86_64-linux-gnu/libm.so /usr/lib/x86_64-linux-gnu/libX11.so || libraries/BLT/libBLT.a libraries/freetype-2.13.0/libfreetype.a libraries/glfw-3.3.8/src/libglfw3.a
|
||||
build FinalProject: CXX_EXECUTABLE_LINKER__FinalProject_RelWithDebInfo CMakeFiles/FinalProject.dir/src/main.cpp.o CMakeFiles/FinalProject.dir/src/render/camera.cpp.o CMakeFiles/FinalProject.dir/src/render/gl.cpp.o CMakeFiles/FinalProject.dir/src/render/ui/debug.cpp.o CMakeFiles/FinalProject.dir/src/render/ui/text.cpp.o CMakeFiles/FinalProject.dir/src/render/window.cpp.o CMakeFiles/FinalProject.dir/src/world/chunk/storage.cpp.o CMakeFiles/FinalProject.dir/src/world/chunk/world.cpp.o CMakeFiles/FinalProject.dir/src/world/registry.cpp.o | libraries/BLT/libBLT.a libraries/freetype-2.13.0/libfreetype.a libraries/glfw-3.3.8/src/libglfw3.a /usr/lib/x86_64-linux-gnu/libz.so /usr/lib/x86_64-linux-gnu/libz.so /usr/lib/x86_64-linux-gnu/libpng.so /usr/lib/x86_64-linux-gnu/libz.so /usr/lib/x86_64-linux-gnu/libpng.so /usr/lib/x86_64-linux-gnu/libharfbuzz.so /usr/lib/x86_64-linux-gnu/libbrotlidec.so /usr/lib/x86_64-linux-gnu/librt.a /usr/lib/x86_64-linux-gnu/libm.so /usr/lib/x86_64-linux-gnu/libX11.so || libraries/BLT/libBLT.a libraries/freetype-2.13.0/libfreetype.a libraries/glfw-3.3.8/src/libglfw3.a
|
||||
FLAGS = -O2 -g -DNDEBUG
|
||||
LINK_FLAGS = -rdynamic
|
||||
LINK_LIBRARIES = libraries/BLT/libBLT.a libraries/freetype-2.13.0/libfreetype.a libraries/glfw-3.3.8/src/libglfw3.a /usr/lib/x86_64-linux-gnu/libz.so -lz -lpng -lz -lpng -lharfbuzz -lbrotlidec -Wl,-Bstatic -lrt -Wl,-Bdynamic -lm -ldl -lX11
|
||||
|
|
Binary file not shown.
Binary file not shown.
Binary file not shown.
|
@ -0,0 +1,17 @@
|
|||
/*
|
||||
* Created by Brett on 15/02/23.
|
||||
* Licensed under GNU General Public License V3.0
|
||||
* See LICENSE file for license detail
|
||||
*/
|
||||
|
||||
#ifndef FINALPROJECT_DEBUG_H
|
||||
#define FINALPROJECT_DEBUG_H
|
||||
|
||||
namespace fp::debug {
|
||||
void enable();
|
||||
void disable();
|
||||
void toggle();
|
||||
void render();
|
||||
}
|
||||
|
||||
#endif //FINALPROJECT_DEBUG_H
|
|
@ -7,20 +7,37 @@
|
|||
#ifndef FINALPROJECT_TEXT_H
|
||||
#define FINALPROJECT_TEXT_H
|
||||
|
||||
#include <blt/std/math.h>
|
||||
#include <string>
|
||||
|
||||
namespace fp::text {
|
||||
struct int_vec2 {
|
||||
int x, y;
|
||||
|
||||
struct text_size {
|
||||
int w,h;
|
||||
};
|
||||
|
||||
// https://freetype.org/freetype2/docs/glyphs/glyph-metrics-3.svg
|
||||
struct gl_character {
|
||||
unsigned int textureID; // OpenGL texture ID that holds the character
|
||||
int_vec2 size; // size of the character glyph
|
||||
int_vec2 bearing; // offset to the top left of the glyph from the current cursor pos
|
||||
unsigned int advance; // distance to the next glyph
|
||||
enum font_size {
|
||||
FONT_11 = 11,
|
||||
FONT_12 = 12,
|
||||
FONT_14 = 14,
|
||||
FONT_18 = 18,
|
||||
FONT_22 = 22,
|
||||
FONT_36 = 36,
|
||||
FONT_48 = 48,
|
||||
FONT_72 = 72
|
||||
};
|
||||
|
||||
void init();
|
||||
|
||||
void render();
|
||||
|
||||
void drawText(
|
||||
const std::string& text, float x, float y, font_size size, const blt::vec4& color = {1.0, 1.0, 1.0, 1.0},
|
||||
const blt::vec4& backgroundColor = {0.0, 0.0, 0.0, 0.0}, float scale = 1
|
||||
);
|
||||
|
||||
text_size getTextSize(const std::string& text, font_size size, float scale = 1.0);
|
||||
|
||||
void destroy();
|
||||
}
|
||||
|
||||
|
|
|
@ -9,10 +9,12 @@ in vec2 texture_coords;
|
|||
out vec4 FragColor;
|
||||
|
||||
uniform sampler2D character;
|
||||
uniform vec3 text_color;
|
||||
uniform vec4 text_color;
|
||||
uniform vec4 background_color;
|
||||
|
||||
void main() {
|
||||
FragColor = vec4(text_color, 1.0f) * vec4(1.0, 1.0, 1.0, texture(text, TexCoords).r);
|
||||
FragColor = text_color * vec4(1.0, 1.0, 1.0, texture(character, texture_coords).r);
|
||||
//FragColor = vec4(0.0, 1.0, 0.0, 1.0) * vec4(1.0, 1.0, 1.0, texture(character, texture_coords).r);
|
||||
}
|
||||
|
||||
")";
|
||||
|
|
|
@ -8,6 +8,8 @@ layout (location = 0) in vec4 vertex;
|
|||
|
||||
out vec2 texture_coords;
|
||||
|
||||
uniform mat4 translation;
|
||||
|
||||
layout (std140) uniform StandardMatrices
|
||||
{
|
||||
mat4 projection;
|
||||
|
@ -19,8 +21,8 @@ layout (std140) uniform StandardMatrices
|
|||
};
|
||||
|
||||
void main() {
|
||||
gl_Position = orthographic * vec4(vertex.xy, 0.0, 1.0);
|
||||
texture_coords = vertex.wz;
|
||||
gl_Position = orthographic * translation * vec4(vertex.xy, 0.0, 1.0);
|
||||
texture_coords = vertex.zw;
|
||||
}
|
||||
|
||||
")";
|
||||
|
|
|
@ -1 +1 @@
|
|||
Subproject commit 596c75dc6fd134e136fcef48f4b800f1c80ad7e4
|
||||
Subproject commit c1f3f7f2b8f9252b4d6c2dc9c94300c86f591510
|
|
@ -2,6 +2,8 @@
|
|||
#include <blt/profiling/profiler.h>
|
||||
#include <render/window.h>
|
||||
#include <render/gl.h>
|
||||
#include <render/ui/text.h>
|
||||
#include <render/ui/debug.h>
|
||||
#include <memory>
|
||||
|
||||
#include <shaders/chunk.frag>
|
||||
|
@ -27,6 +29,8 @@ void loop(){
|
|||
world->render(*chunk_shader);
|
||||
|
||||
fp::camera::update();
|
||||
fp::debug::render();
|
||||
fp::text::render();
|
||||
fp::window::update();
|
||||
}
|
||||
|
||||
|
@ -41,6 +45,7 @@ int main() {
|
|||
blt::logging::init(logging_properties);
|
||||
|
||||
fp::window::init();
|
||||
fp::text::init();
|
||||
fp::registry::registerDefaultBlocks();
|
||||
|
||||
chunk_shader = new fp::shader(shader_chunk_vert, shader_chunk_frag);
|
||||
|
@ -77,6 +82,7 @@ int main() {
|
|||
delete(chunk_shader);
|
||||
delete(world);
|
||||
|
||||
fp::text::destroy();
|
||||
fp::window::close();
|
||||
|
||||
return 0;
|
||||
|
|
|
@ -7,7 +7,6 @@
|
|||
#include <render/gl.h>
|
||||
#include <blt/std/math.h>
|
||||
#include <cmath>
|
||||
#include <blt/std/loader.h>
|
||||
#include "util/math.h"
|
||||
|
||||
blt::vec3 position;
|
||||
|
|
|
@ -0,0 +1,58 @@
|
|||
/*
|
||||
* Created by Brett on 15/02/23.
|
||||
* Licensed under GNU General Public License V3.0
|
||||
* See LICENSE file for license detail
|
||||
*/
|
||||
#include <render/ui/debug.h>
|
||||
#include <render/ui/text.h>
|
||||
#include <render/window.h>
|
||||
#include <blt/std/math.h>
|
||||
|
||||
namespace fp::debug {
|
||||
const float spacing = 5;
|
||||
|
||||
bool enabled = false;
|
||||
|
||||
// Yes. I made this only for this.
|
||||
blt::averagizer_o_matic<double, 256> fps_average{60.0};
|
||||
|
||||
void drawAndIncrement(const std::string& text, float x, float& pos, text::font_size size = fp::text::FONT_14) {
|
||||
auto text_size = fp::text::getTextSize(text, size);
|
||||
fp::text::drawText(text, x, pos, size, {0.0, 0.0, 0.0, 1.0});
|
||||
pos += spacing + (float) text_size.h;
|
||||
}
|
||||
|
||||
void enable() {
|
||||
enabled = true;
|
||||
}
|
||||
|
||||
void disable() {
|
||||
enabled = false;
|
||||
}
|
||||
|
||||
void toggle() {
|
||||
enabled = !enabled;
|
||||
}
|
||||
|
||||
void render() {
|
||||
if (fp::window::isKeyPressed(GLFW_KEY_F3) && fp::window::keyState())
|
||||
toggle();
|
||||
if (!enabled)
|
||||
return;
|
||||
|
||||
float left_y_pos = 10;
|
||||
float right_y_pos = 10;
|
||||
|
||||
float x_offset = 10;
|
||||
|
||||
drawAndIncrement("Untitled Application", x_offset, left_y_pos, fp::text::FONT_22);
|
||||
fps_average.insert(1.0 / fp::window::getFrameDelta());
|
||||
|
||||
std::string fps = "FPS: ";
|
||||
fps += std::to_string(fps_average.average());
|
||||
fps += " (";
|
||||
fps += std::to_string((double) fp::window::getFrameDeltaRaw() / 1000000.0);
|
||||
fps += "ms)";
|
||||
drawAndIncrement(fps, x_offset * 2, left_y_pos);
|
||||
}
|
||||
}
|
|
@ -5,17 +5,105 @@
|
|||
*/
|
||||
#include <render/ui/text.h>
|
||||
#include <blt/std/logging.h>
|
||||
#include <queue>
|
||||
#include <render/gl.h>
|
||||
#include <ft2build.h>
|
||||
#include FT_FREETYPE_H
|
||||
|
||||
#include <unordered_map>
|
||||
#include <shaders/text.vert>
|
||||
#include <shaders/text.frag>
|
||||
#include <cmath>
|
||||
|
||||
std::unordered_map<char, fp::text::gl_character> character_conversion_map;
|
||||
struct int_vec2 {
|
||||
int x, y;
|
||||
};
|
||||
|
||||
// https://freetype.org/freetype2/docs/glyphs/glyph-metrics-3.svg
|
||||
struct gl_character {
|
||||
unsigned int textureID; // OpenGL texture ID that holds the character
|
||||
int_vec2 size; // size of the character glyph
|
||||
int_vec2 bearing; // offset to the top left of the glyph from the current cursor pos
|
||||
unsigned int advance; // distance to the next glyph
|
||||
};
|
||||
|
||||
struct text_render_object {
|
||||
std::string text;
|
||||
float x = 0;
|
||||
float y = 0;
|
||||
fp::text::font_size size;
|
||||
blt::vec4 color;
|
||||
// currently does nothing
|
||||
blt::vec4 backgroundColor;
|
||||
// DO NOT USE SCALE UNLESS NECESSARY. Will distort font!
|
||||
float scale = 0;
|
||||
|
||||
text_render_object() = default;
|
||||
|
||||
text_render_object(
|
||||
std::string text, float x, float y, fp::text::font_size size, const blt::vec4& color,
|
||||
const blt::vec4& backgroundColor, float scale = 1.0
|
||||
):
|
||||
text(std::move(text)), x(x), y(y), color(color), backgroundColor(backgroundColor), scale(scale), size(size) {
|
||||
}
|
||||
};
|
||||
|
||||
std::unordered_map<fp::text::font_size, std::unordered_map<char, gl_character>> character_conversion_map;
|
||||
std::queue<text_render_object> text_render_queue;
|
||||
|
||||
FT_Library ft;
|
||||
FT_Face monospaced_face;
|
||||
|
||||
fp::shader* text_shader;
|
||||
fp::VAO* quad_vao;
|
||||
|
||||
void generateCharacters(fp::text::font_size size) {
|
||||
|
||||
FT_Set_Pixel_Sizes(monospaced_face, 0, size);
|
||||
|
||||
// TODO: merge into a 2d texture array
|
||||
unsigned int textures[128];
|
||||
glGenTextures(128, textures);
|
||||
|
||||
// we only care about ascii characters [0, 128). I won't be rendering with anything other than them.
|
||||
for (int i = 0; i < 128; i++) {
|
||||
// tell freetype to render the character to a monochrome texture
|
||||
FT_Error error;
|
||||
if ((error = FT_Load_Char(monospaced_face, i, FT_LOAD_RENDER))) {
|
||||
BLT_WARN("Unable to load character '%c' using the default monospaced font! (Error: %d)", i, error);
|
||||
glDeleteTextures(1, &textures[i]);
|
||||
continue;
|
||||
}
|
||||
auto glyph = monospaced_face->glyph;
|
||||
auto bitmap = glyph->bitmap;
|
||||
|
||||
glBindTexture(GL_TEXTURE_2D, textures[i]);
|
||||
// GL_RED isn't valid for webgl
|
||||
#ifdef __EMSCRIPTEN__
|
||||
constexpr GLint internal_format = GL_R8;
|
||||
#else
|
||||
constexpr GLint internal_format = GL_RED;
|
||||
#endif
|
||||
// since the rendered texture is monochrome, there is no reason to allocate memory for more than one channel.
|
||||
glTexImage2D(GL_TEXTURE_2D, 0, internal_format, (int) bitmap.width, (int) bitmap.rows, 0, GL_RED, GL_UNSIGNED_BYTE, bitmap.buffer);
|
||||
// set standard texture options. GL_CLAMP_TO_BORDER would be preferable but isn't in standard webgl
|
||||
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_CLAMP_TO_EDGE);
|
||||
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_CLAMP_TO_EDGE);
|
||||
// linear because we want nice smoothing if our font is resized
|
||||
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR);
|
||||
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR);
|
||||
|
||||
character_conversion_map[size].insert(
|
||||
{(char) i, gl_character{
|
||||
textures[i],
|
||||
{(int) bitmap.width, (int) bitmap.rows},
|
||||
{glyph->bitmap_left, glyph->bitmap_top},
|
||||
(unsigned int) glyph->advance.x
|
||||
}}
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
void fp::text::init() {
|
||||
if (FT_Init_FreeType(&ft)) {
|
||||
BLT_FATAL("Unable to init freetype library!");
|
||||
|
@ -25,50 +113,128 @@ void fp::text::init() {
|
|||
BLT_ERROR("Unable to load default monospaced (JetBrains Mono) font!");
|
||||
std::abort();
|
||||
}
|
||||
FT_Set_Pixel_Sizes(monospaced_face, 0, 48);
|
||||
|
||||
// disable alignment restrictions. This might cause issues with WebGL! FIXME: if it does
|
||||
// gl requires an alignment of 4. Since we are going to only use a single character of any width/height the alignment must be changed.
|
||||
glPixelStorei(GL_UNPACK_ALIGNMENT, 1);
|
||||
|
||||
// TODO: merge into a 2d texture array
|
||||
unsigned int textures[128];
|
||||
glGenTextures(128, textures);
|
||||
generateCharacters(FONT_11);
|
||||
generateCharacters(FONT_12);
|
||||
generateCharacters(FONT_14);
|
||||
generateCharacters(FONT_18);
|
||||
generateCharacters(FONT_22);
|
||||
generateCharacters(FONT_36);
|
||||
generateCharacters(FONT_48);
|
||||
generateCharacters(FONT_72);
|
||||
|
||||
// we only care about ascii characters [0, 128). I won't be rendering with anything other than them.
|
||||
for (int i = 0; i < 128; i++){
|
||||
// tell freetype to render the character to a monochrome texture
|
||||
FT_Error error;
|
||||
if ((error = FT_Load_Char(monospaced_face, i, FT_LOAD_RENDER))) {
|
||||
BLT_ERROR("Unable to load character '%c' using the default monospaced font! (Error: %d)", i, error);
|
||||
glDeleteTextures(1, &textures[i]);
|
||||
continue;
|
||||
}
|
||||
auto glyph = monospaced_face->glyph;
|
||||
auto bitmap = glyph->bitmap;
|
||||
|
||||
glBindTexture(GL_TEXTURE_2D, textures[i]);
|
||||
// since the rendered texture is monochrome, there is no reason to allocate memory for more than one channel.
|
||||
glTexImage2D(GL_TEXTURE_2D, 0, GL_RED, (int)bitmap.width, (int)bitmap.rows, 0, GL_RED, GL_UNSIGNED_BYTE, bitmap.buffer);
|
||||
// set standard texture options.
|
||||
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_CLAMP_TO_EDGE);
|
||||
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_CLAMP_TO_EDGE);
|
||||
// linear because we want nice smoothing on our font
|
||||
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR);
|
||||
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR);
|
||||
character_conversion_map.insert({i, gl_character{
|
||||
textures[i],
|
||||
{(int)bitmap.width, (int)bitmap.rows},
|
||||
{glyph->bitmap_left, glyph->bitmap_top},
|
||||
(unsigned int) glyph->advance.x
|
||||
}});
|
||||
}
|
||||
glPixelStorei(GL_UNPACK_ALIGNMENT, 4);
|
||||
|
||||
FT_Done_Face(monospaced_face);
|
||||
FT_Done_FreeType(ft);
|
||||
|
||||
// create the GL objects required to render texts
|
||||
text_shader = new shader(shader_text_vert, shader_text_frag);
|
||||
quad_vao = new VAO();
|
||||
|
||||
float vertices[6 * 4] = {
|
||||
// vertices uvs
|
||||
// triangle 1
|
||||
1.0, 0, 1.0f, 0.0f,
|
||||
0, 0, 0.0f, 0.0f,
|
||||
0, 1.0, 0.0f, 1.0f,
|
||||
// triangle 2
|
||||
1.0, 1.0, 1.0f, 1.0f,
|
||||
1.0, 0, 1.0f, 0.0f,
|
||||
0, 1.0, 0.0f, 1.0f,
|
||||
};
|
||||
|
||||
|
||||
quad_vao->bindVBO(new VBO(ARRAY_BUFFER, vertices, sizeof(float) * 6 * 4), 0, 4);
|
||||
}
|
||||
|
||||
void fp::text::destroy() {
|
||||
for (const auto& c : character_conversion_map)
|
||||
glDeleteTextures(1, &c.second.textureID);
|
||||
for (const auto& t : c.second)
|
||||
glDeleteTextures(1, &t.second.textureID);
|
||||
delete (text_shader);
|
||||
delete (quad_vao);
|
||||
}
|
||||
|
||||
void fp::text::render() {
|
||||
glEnable(GL_BLEND);
|
||||
//glDisable(GL_CULL_FACE);
|
||||
glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);
|
||||
|
||||
text_shader->use();
|
||||
quad_vao->bind();
|
||||
glEnableVertexAttribArray(0);
|
||||
|
||||
while (!text_render_queue.empty()) {
|
||||
const auto& text_object = text_render_queue.front();
|
||||
|
||||
text_shader->setVec4("text_color", text_object.color);
|
||||
glActiveTexture(GL_TEXTURE0);
|
||||
|
||||
// will be incremented by advance
|
||||
float cursor_x = text_object.x;
|
||||
// we need to offset the y coord freetype / opengl is expecting to draw from the bottom left, but because of how I have the ortho matrix
|
||||
// the renderer draws from the top left (which I think is a little more intuitive). The easiest way to fix this is the offset.
|
||||
int max_height = 0;
|
||||
|
||||
// but the offset must be the max height of the characters in the text otherwise the position of smaller chars like 'o' and 'e' will be off
|
||||
for (const char c : text_object.text) {
|
||||
const gl_character gl_char = character_conversion_map[text_object.size][c];
|
||||
max_height = std::max(gl_char.size.y, max_height);
|
||||
}
|
||||
|
||||
// TODO: use instancing to reduce number of draw calls (use signed distance fields when you make the switch)
|
||||
// valve paper on the subject (signed distance fields):
|
||||
// https://steamcdn-a.akamaihd.net/apps/valve/2007/SIGGRAPH2007_AlphaTestedMagnification.pdf
|
||||
for (const char c : text_object.text) {
|
||||
const gl_character gl_char = character_conversion_map[text_object.size][c];
|
||||
|
||||
blt::mat4x4 translation_matrix{};
|
||||
|
||||
auto w = (float) gl_char.size.x * text_object.scale;
|
||||
auto h = (float) gl_char.size.y * text_object.scale;
|
||||
|
||||
// move the glyph based on https://freetype.org/freetype2/docs/glyphs/glyph-metrics-3.svg
|
||||
auto x = cursor_x + (float) gl_char.bearing.x * text_object.scale;
|
||||
auto y = (float) max_height + text_object.y + (float) (-gl_char.bearing.y) * text_object.scale;
|
||||
|
||||
translation_matrix.translate(x, y, 0);
|
||||
translation_matrix.scale(w, h, 0);
|
||||
|
||||
text_shader->setMatrix("translation", translation_matrix);
|
||||
|
||||
glBindTexture(GL_TEXTURE_2D, gl_char.textureID);
|
||||
glDrawArrays(GL_TRIANGLES, 0, 6);
|
||||
// advance is loaded in as 1/64th pixels
|
||||
cursor_x += (float) (gl_char.advance / 64.0) * text_object.scale;
|
||||
}
|
||||
|
||||
text_render_queue.pop();
|
||||
}
|
||||
|
||||
glDisableVertexAttribArray(0);
|
||||
|
||||
glDisable(GL_BLEND);
|
||||
}
|
||||
|
||||
void fp::text::drawText(const std::string& text, float x, float y, fp::text::font_size size, const blt::vec4& color, const blt::vec4& backgroundColor, float scale) {
|
||||
text_render_queue.emplace(text, x, y, size, color, backgroundColor, scale);
|
||||
}
|
||||
|
||||
fp::text::text_size fp::text::getTextSize(const std::string& text, fp::text::font_size size, float scale) {
|
||||
int w = 0, h = 0;
|
||||
for (const char& c : text) {
|
||||
const gl_character gl_char = character_conversion_map[size][c];
|
||||
|
||||
auto local_w = (int)((float)gl_char.size.x * scale);
|
||||
auto local_h = (int)((float)gl_char.size.y * scale);
|
||||
|
||||
w = std::max(w, local_w);
|
||||
h = std::max(h, local_h);
|
||||
}
|
||||
return {w, h};
|
||||
}
|
||||
|
|
|
@ -91,6 +91,7 @@ inline void createWindow(int width, int height) {
|
|||
inline void updateWindowViewport(int width, int height){
|
||||
// TODO: remake the matrix implementation. The values are transposed due to a flawed implementation.
|
||||
perspectiveMatrix = blt::perspective(fov, (float)width / (float)height, FP_NEAR_PLANE, FP_FAR_PLANE);
|
||||
orthographicMatrix = blt::ortho(0, (float)width, 0, (float)height, -5, 5);
|
||||
glViewport(0, 0, width, height);
|
||||
// make sure we update the global perspective matrix otherwise our rendering is going to look off!
|
||||
fp::shader::updateProjectionMatrix(perspectiveMatrix);
|
||||
|
|
Loading…
Reference in New Issue