mirror of
https://github.com/bailwillharr/engine.git
synced 2024-09-21 04:51:18 +00:00
Fix text file reading
This commit is contained in:
parent
97cd86e87b
commit
28a017e5e7
@ -31,6 +31,7 @@ set(SRC_FILES
|
|||||||
"src/resources/font.cpp"
|
"src/resources/font.cpp"
|
||||||
|
|
||||||
"src/util/model_loader.cpp"
|
"src/util/model_loader.cpp"
|
||||||
|
"src/util/files.cpp"
|
||||||
|
|
||||||
"src/resource_manager.cpp"
|
"src/resource_manager.cpp"
|
||||||
|
|
||||||
@ -73,6 +74,7 @@ set(INCLUDE_FILES
|
|||||||
"include/resources/font.hpp"
|
"include/resources/font.hpp"
|
||||||
|
|
||||||
"include/util/model_loader.hpp"
|
"include/util/model_loader.hpp"
|
||||||
|
"include/util/files.hpp"
|
||||||
|
|
||||||
"include/resource_manager.hpp"
|
"include/resource_manager.hpp"
|
||||||
|
|
||||||
@ -202,15 +204,15 @@ target_link_libraries(${PROJECT_NAME} PUBLIC spdlog)
|
|||||||
target_include_directories(${PROJECT_NAME} PUBLIC dependencies/spdlog/include)
|
target_include_directories(${PROJECT_NAME} PUBLIC dependencies/spdlog/include)
|
||||||
|
|
||||||
# freetype
|
# freetype
|
||||||
set(FT_DISABLE_ZLIB TRUE CACHE INTERNAL "" FORCE)
|
#set(FT_DISABLE_ZLIB TRUE CACHE INTERNAL "" FORCE)
|
||||||
set(FT_DISABLE_BZIP2 TRUE CACHE INTERNAL "" FORCE)
|
#set(FT_DISABLE_BZIP2 TRUE CACHE INTERNAL "" FORCE)
|
||||||
set(FT_DISABLE_PNG TRUE CACHE INTERNAL "" FORCE)
|
#set(FT_DISABLE_PNG TRUE CACHE INTERNAL "" FORCE)
|
||||||
set(FT_DISABLE_HARFBUZZ TRUE CACHE INTERNAL "" FORCE)
|
#set(FT_DISABLE_HARFBUZZ TRUE CACHE INTERNAL "" FORCE)
|
||||||
set(FT_DISABLE_BROTLI TRUE CACHE INTERNAL "" FORCE)
|
#set(FT_DISABLE_BROTLI TRUE CACHE INTERNAL "" FORCE)
|
||||||
set(BUILD_SHARED_LIBS OFF CACHE INTERNAL "" FORCE)
|
#set(BUILD_SHARED_LIBS OFF CACHE INTERNAL "" FORCE)
|
||||||
add_subdirectory(dependencies/freetype)
|
#add_subdirectory(dependencies/freetype)
|
||||||
target_link_libraries(${PROJECT_NAME} PRIVATE freetype)
|
#target_link_libraries(${PROJECT_NAME} PRIVATE freetype)
|
||||||
target_include_directories(${PROJECT_NAME} PRIVATE dependencies/freetype/include)
|
#target_include_directories(${PROJECT_NAME} PRIVATE dependencies/freetype/include)
|
||||||
|
|
||||||
# stb
|
# stb
|
||||||
target_include_directories(${PROJECT_NAME} PRIVATE dependencies/stb)
|
target_include_directories(${PROJECT_NAME} PRIVATE dependencies/stb)
|
||||||
@ -218,8 +220,9 @@ target_include_directories(${PROJECT_NAME} PRIVATE dependencies/stb)
|
|||||||
# assimp
|
# assimp
|
||||||
set(BUILD_SHARED_LIBS OFF CACHE INTERNAL "" FORCE)
|
set(BUILD_SHARED_LIBS OFF CACHE INTERNAL "" FORCE)
|
||||||
set(ASSIMP_BUILD_TESTS OFF CACHE INTERNAL "" FORCE)
|
set(ASSIMP_BUILD_TESTS OFF CACHE INTERNAL "" FORCE)
|
||||||
|
set(ASSIMP_BUILD_ZLIB ON CACHE INTERNAL "" FORCE)
|
||||||
set(ASSIMP_NO_EXPORT OFF CACHE INTERNAL "" FORCE)
|
set(ASSIMP_NO_EXPORT OFF CACHE INTERNAL "" FORCE)
|
||||||
set(ASSIMP_INSTALL OFF CACHE INTERNAL "" FORCE)
|
set(ASSIMP_INSTALL OFF CACHE INTERNAL "" FORCE)
|
||||||
add_subdirectory(dependencies/assimp)
|
add_subdirectory(dependencies/assimp)
|
||||||
target_include_directories(${PROJECT_NAME} PRIVATE dependencies/assimp/include)
|
target_include_directories(${PROJECT_NAME} PRIVATE dependencies/assimp/include)
|
||||||
target_link_libraries(${PROJECT_NAME} PRIVATE assimp)
|
target_link_libraries(${PROJECT_NAME} PRIVATE assimp)
|
||||||
|
11
include/util/files.hpp
Normal file
11
include/util/files.hpp
Normal file
@ -0,0 +1,11 @@
|
|||||||
|
#pragma once
|
||||||
|
|
||||||
|
#include <memory>
|
||||||
|
#include <vector>
|
||||||
|
#include <string>
|
||||||
|
|
||||||
|
namespace engine::util {
|
||||||
|
|
||||||
|
std::unique_ptr<std::vector<char>> readTextFile(const std::string& path);
|
||||||
|
|
||||||
|
}
|
@ -8,6 +8,7 @@
|
|||||||
#include "util.hpp"
|
#include "util.hpp"
|
||||||
#include "config.h"
|
#include "config.h"
|
||||||
#include "log.hpp"
|
#include "log.hpp"
|
||||||
|
#include "util/files.hpp"
|
||||||
|
|
||||||
#define VOLK_IMPLEMENTATION
|
#define VOLK_IMPLEMENTATION
|
||||||
#include <volk.h>
|
#include <volk.h>
|
||||||
@ -224,20 +225,6 @@ namespace engine {
|
|||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
static std::vector<char> readTextFile(const std::string& filename)
|
|
||||||
{
|
|
||||||
std::ifstream file(filename, std::ios::ate);
|
|
||||||
if (file.is_open() == false) {
|
|
||||||
throw std::runtime_error("Unable to open file " + filename);
|
|
||||||
}
|
|
||||||
std::vector<char> buffer(file.tellg());
|
|
||||||
file.seekg(0);
|
|
||||||
file.read(buffer.data(), buffer.size());
|
|
||||||
file.close();
|
|
||||||
|
|
||||||
return buffer;
|
|
||||||
}
|
|
||||||
|
|
||||||
static std::vector<const char*> getRequiredVulkanExtensions(SDL_Window* window)
|
static std::vector<const char*> getRequiredVulkanExtensions(SDL_Window* window)
|
||||||
{
|
{
|
||||||
SDL_bool res;
|
SDL_bool res;
|
||||||
@ -1686,12 +1673,12 @@ namespace engine {
|
|||||||
|
|
||||||
gfx::Pipeline* pipeline = new gfx::Pipeline;
|
gfx::Pipeline* pipeline = new gfx::Pipeline;
|
||||||
|
|
||||||
auto vertShaderCode = readTextFile(vertShaderPath);
|
auto vertShaderCode = util::readTextFile(vertShaderPath);
|
||||||
auto fragShaderCode = readTextFile(fragShaderPath);
|
auto fragShaderCode = util::readTextFile(fragShaderPath);
|
||||||
INFO("Opened shader: {}", std::filesystem::path(vertShaderPath).filename().string());
|
INFO("Opened shader: {}", std::filesystem::path(vertShaderPath).filename().string());
|
||||||
|
|
||||||
VkShaderModule vertShaderModule = compileShader(pimpl->device, shaderc_vertex_shader, vertShaderCode.data(), vertShaderPath);
|
VkShaderModule vertShaderModule = compileShader(pimpl->device, shaderc_vertex_shader, vertShaderCode->data(), vertShaderPath);
|
||||||
VkShaderModule fragShaderModule = compileShader(pimpl->device, shaderc_fragment_shader, fragShaderCode.data(), fragShaderPath);
|
VkShaderModule fragShaderModule = compileShader(pimpl->device, shaderc_fragment_shader, fragShaderCode->data(), fragShaderPath);
|
||||||
|
|
||||||
// create uniform buffers
|
// create uniform buffers
|
||||||
pipeline->uniformBuffers.resize(FRAMES_IN_FLIGHT);
|
pipeline->uniformBuffers.resize(FRAMES_IN_FLIGHT);
|
||||||
|
33
src/util/files.cpp
Normal file
33
src/util/files.cpp
Normal file
@ -0,0 +1,33 @@
|
|||||||
|
#include "util/files.hpp"
|
||||||
|
|
||||||
|
#include <fstream>
|
||||||
|
|
||||||
|
namespace engine::util {
|
||||||
|
|
||||||
|
std::unique_ptr<std::vector<char>> readTextFile(const std::string& path)
|
||||||
|
{
|
||||||
|
auto buffer = std::make_unique<std::vector<char>>();
|
||||||
|
|
||||||
|
std::ifstream file(path, std::ios::ate);
|
||||||
|
|
||||||
|
if (file.is_open() == false) {
|
||||||
|
throw std::runtime_error("Unable to open file " + path);
|
||||||
|
}
|
||||||
|
|
||||||
|
// reserve enough space for the text file, but leave the size at 0
|
||||||
|
buffer->reserve(file.tellg());
|
||||||
|
|
||||||
|
file.seekg(0);
|
||||||
|
|
||||||
|
while (!file.eof()) {
|
||||||
|
char c{};
|
||||||
|
file.read(&c, 1);
|
||||||
|
buffer->push_back(c);
|
||||||
|
}
|
||||||
|
|
||||||
|
file.close();
|
||||||
|
|
||||||
|
return buffer;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
BIN
test/res/models/astronaut/astronaut.dae
(Stored with Git LFS)
BIN
test/res/models/astronaut/astronaut.dae
(Stored with Git LFS)
File diff suppressed because one or more lines are too long
BIN
test/res/models/plane/plane.dae
(Stored with Git LFS)
BIN
test/res/models/plane/plane.dae
(Stored with Git LFS)
File diff suppressed because one or more lines are too long
BIN
test/res/models/pyramid/pyramid.dae
(Stored with Git LFS)
BIN
test/res/models/pyramid/pyramid.dae
(Stored with Git LFS)
File diff suppressed because one or more lines are too long
BIN
test/res/models/room/room.dae
(Stored with Git LFS)
BIN
test/res/models/room/room.dae
(Stored with Git LFS)
File diff suppressed because one or more lines are too long
@ -26,4 +26,3 @@ void main() {
|
|||||||
vec3 lightPos = vec3(-5.0, 20.0, 5.0);
|
vec3 lightPos = vec3(-5.0, 20.0, 5.0);
|
||||||
fragLightPos = vec3(constants.view * vec4(lightPos, 1.0));
|
fragLightPos = vec3(constants.view * vec4(lightPos, 1.0));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user