Some refactoring.
This commit is contained in:
@@ -30,14 +30,16 @@ function(add_shaders TARGET)
|
|||||||
endfunction()
|
endfunction()
|
||||||
|
|
||||||
add_executable(vk_expe
|
add_executable(vk_expe
|
||||||
|
src/core/math.cpp
|
||||||
|
src/core/utils.cpp
|
||||||
|
src/core/Logger.cpp
|
||||||
|
|
||||||
src/vk/Context.cpp
|
src/vk/Context.cpp
|
||||||
src/vk/Swapchain.cpp
|
src/vk/Swapchain.cpp
|
||||||
src/vk/Memory.cpp
|
src/vk/Memory.cpp
|
||||||
src/vk/Buffer.cpp
|
src/vk/Buffer.cpp
|
||||||
src/main.cpp
|
src/main.cpp
|
||||||
src/utils.cpp
|
|
||||||
src/Simplex.cpp
|
src/Simplex.cpp
|
||||||
src/Logger.cpp
|
|
||||||
src/Planet.cpp
|
src/Planet.cpp
|
||||||
src/VkExpe.cpp
|
src/VkExpe.cpp
|
||||||
src/VulkanTutorial.cpp
|
src/VulkanTutorial.cpp
|
||||||
|
|||||||
@@ -1,6 +1,7 @@
|
|||||||
|
|
||||||
#include <Planet.h>
|
#include <Planet.h>
|
||||||
#include <Logger.h>
|
|
||||||
|
#include <core/Logger.h>
|
||||||
|
|
||||||
#include <cassert>
|
#include <cassert>
|
||||||
#include <vector>
|
#include <vector>
|
||||||
|
|||||||
@@ -1,6 +1,7 @@
|
|||||||
#pragma once
|
#pragma once
|
||||||
|
|
||||||
#include <core.h>
|
#include <core/math.h>
|
||||||
|
#include <core/ArrayView.h>
|
||||||
|
|
||||||
#include <memory>
|
#include <memory>
|
||||||
#include <cassert>
|
#include <cassert>
|
||||||
|
|||||||
@@ -1,6 +1,7 @@
|
|||||||
#pragma once
|
#pragma once
|
||||||
|
|
||||||
#include <core.h>
|
#include <core/math.h>
|
||||||
|
#include <core/ArrayView.h>
|
||||||
|
|
||||||
|
|
||||||
class Simplex {
|
class Simplex {
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
#include <VkExpe.h>
|
#include <VkExpe.h>
|
||||||
|
|
||||||
#include <utils.h>
|
#include <core/utils.h>
|
||||||
#include <Logger.h>
|
#include <core/Logger.h>
|
||||||
|
|
||||||
#include <stdexcept>
|
#include <stdexcept>
|
||||||
#include <iostream>
|
#include <iostream>
|
||||||
|
|||||||
@@ -1,8 +1,9 @@
|
|||||||
#pragma once
|
#pragma once
|
||||||
|
|
||||||
#include <core.h>
|
|
||||||
#include <VulkanTutorial.h>
|
#include <VulkanTutorial.h>
|
||||||
|
|
||||||
|
#include <core/math.h>
|
||||||
|
|
||||||
#include <SDL2/SDL.h>
|
#include <SDL2/SDL.h>
|
||||||
|
|
||||||
#include <memory>
|
#include <memory>
|
||||||
|
|||||||
@@ -1,9 +1,10 @@
|
|||||||
#include <VulkanTutorial.h>
|
#include <VulkanTutorial.h>
|
||||||
|
|
||||||
#include <utils.h>
|
|
||||||
#include <Logger.h>
|
|
||||||
#include <Planet.h>
|
#include <Planet.h>
|
||||||
|
|
||||||
|
#include <core/utils.h>
|
||||||
|
#include <core/Logger.h>
|
||||||
|
|
||||||
#include <SDL2/SDL_vulkan.h>
|
#include <SDL2/SDL_vulkan.h>
|
||||||
|
|
||||||
#include <Eigen/Geometry>
|
#include <Eigen/Geometry>
|
||||||
|
|||||||
@@ -1,14 +1,17 @@
|
|||||||
#pragma once
|
#pragma once
|
||||||
|
|
||||||
#include <core.h>
|
|
||||||
|
|
||||||
#include <vk/Context.h>
|
#include <vk/Context.h>
|
||||||
#include <vk/Swapchain.h>
|
#include <vk/Swapchain.h>
|
||||||
#include <vk/Buffer.h>
|
#include <vk/Buffer.h>
|
||||||
|
|
||||||
|
#include <core/math.h>
|
||||||
|
|
||||||
#include <SDL2/SDL.h>
|
#include <SDL2/SDL.h>
|
||||||
|
|
||||||
#include <vulkan/vulkan.h>
|
#include <vulkan/vulkan.h>
|
||||||
|
|
||||||
#include <Eigen/Dense>
|
#include <Eigen/Dense>
|
||||||
|
|
||||||
#include <vector>
|
#include <vector>
|
||||||
#include <chrono>
|
#include <chrono>
|
||||||
|
|
||||||
|
|||||||
@@ -1,51 +1,7 @@
|
|||||||
#pragma once
|
#pragma once
|
||||||
|
|
||||||
|
|
||||||
#include <Eigen/Dense>
|
#include <core/types.h>
|
||||||
|
|
||||||
#include <type_traits>
|
|
||||||
|
|
||||||
|
|
||||||
using Byte = unsigned char;
|
|
||||||
using Index = uint32_t;
|
|
||||||
|
|
||||||
using Real = float;
|
|
||||||
|
|
||||||
using Vector2 = Eigen::Matrix<Real, 2, 1>;
|
|
||||||
using Vector3 = Eigen::Matrix<Real, 3, 1>;
|
|
||||||
using Vector4 = Eigen::Matrix<Real, 4, 1>;
|
|
||||||
|
|
||||||
using Matrix2 = Eigen::Matrix<Real, 2, 2>;
|
|
||||||
using Matrix3 = Eigen::Matrix<Real, 3, 3>;
|
|
||||||
using Matrix4 = Eigen::Matrix<Real, 4, 4>;
|
|
||||||
|
|
||||||
using Transform = Eigen::Transform<Real, 3, Eigen::Affine>;
|
|
||||||
using AngleAxis = Eigen::AngleAxis<Real>;
|
|
||||||
using Quaternion = Eigen::Quaternion<Real>;
|
|
||||||
|
|
||||||
using Triangle = Eigen::Array<Index, 3, 1>;
|
|
||||||
|
|
||||||
|
|
||||||
template<typename Scalar, typename Derived0, typename Derived1>
|
|
||||||
auto lerp(
|
|
||||||
Scalar factor,
|
|
||||||
const Eigen::MatrixBase<Derived0>& m0,
|
|
||||||
const Eigen::MatrixBase<Derived1>& m1
|
|
||||||
) -> std::enable_if_t<
|
|
||||||
Derived0::RowsAtCompileTime == Derived1::RowsAtCompileTime &&
|
|
||||||
Derived0::ColsAtCompileTime == Derived1::ColsAtCompileTime,
|
|
||||||
Eigen::Matrix<
|
|
||||||
std::common_type_t<
|
|
||||||
Scalar,
|
|
||||||
typename Derived0::Scalar,
|
|
||||||
typename Derived1::Scalar
|
|
||||||
>,
|
|
||||||
Derived0::RowsAtCompileTime,
|
|
||||||
Derived0::ColsAtCompileTime
|
|
||||||
>
|
|
||||||
> {
|
|
||||||
return (Scalar(1) - factor) * m0 + factor * m1;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
template<typename T>
|
template<typename T>
|
||||||
@@ -1,4 +1,4 @@
|
|||||||
#include <Logger.h>
|
#include <core/Logger.h>
|
||||||
|
|
||||||
#include <iostream>
|
#include <iostream>
|
||||||
|
|
||||||
@@ -1,28 +1,5 @@
|
|||||||
#include <utils.h>
|
#include <core/math.h>
|
||||||
|
|
||||||
#include <cstring>
|
|
||||||
#include <fstream>
|
|
||||||
|
|
||||||
|
|
||||||
Uuid make_uuid(uint8_t const* bytes) {
|
|
||||||
Uuid uuid;
|
|
||||||
std::memcpy(uuid.data(), bytes, UUID_SIZE);
|
|
||||||
return uuid;
|
|
||||||
}
|
|
||||||
|
|
||||||
std::vector<char> read_binary_file(const char* path) {
|
|
||||||
std::ifstream istream(path, std::ios_base::ate | std::ios_base::binary);
|
|
||||||
if(!istream.is_open())
|
|
||||||
throw std::runtime_error(cat("failed to open '", path, "'"));
|
|
||||||
|
|
||||||
std::vector<char> buffer(size_t(istream.tellg()));
|
|
||||||
|
|
||||||
istream.seekg(0);
|
|
||||||
istream.read(buffer.data(), buffer.size());
|
|
||||||
istream.close();
|
|
||||||
|
|
||||||
return buffer;
|
|
||||||
}
|
|
||||||
|
|
||||||
Eigen::Matrix4f projection_matrix(float x_min, float x_max, float y_min, float y_max, float z_min, float z_max) {
|
Eigen::Matrix4f projection_matrix(float x_min, float x_max, float y_min, float y_max, float z_min, float z_max) {
|
||||||
auto const cx = x_max + x_min;
|
auto const cx = x_max + x_min;
|
||||||
54
src/core/math.h
Normal file
54
src/core/math.h
Normal file
@@ -0,0 +1,54 @@
|
|||||||
|
#pragma once
|
||||||
|
|
||||||
|
|
||||||
|
#include <core/types.h>
|
||||||
|
|
||||||
|
#include <Eigen/Dense>
|
||||||
|
|
||||||
|
#include <type_traits>
|
||||||
|
|
||||||
|
|
||||||
|
using Real = float;
|
||||||
|
|
||||||
|
using Vector2 = Eigen::Matrix<Real, 2, 1>;
|
||||||
|
using Vector3 = Eigen::Matrix<Real, 3, 1>;
|
||||||
|
using Vector4 = Eigen::Matrix<Real, 4, 1>;
|
||||||
|
|
||||||
|
using Matrix2 = Eigen::Matrix<Real, 2, 2>;
|
||||||
|
using Matrix3 = Eigen::Matrix<Real, 3, 3>;
|
||||||
|
using Matrix4 = Eigen::Matrix<Real, 4, 4>;
|
||||||
|
|
||||||
|
using Transform = Eigen::Transform<Real, 3, Eigen::Affine>;
|
||||||
|
using AngleAxis = Eigen::AngleAxis<Real>;
|
||||||
|
using Quaternion = Eigen::Quaternion<Real>;
|
||||||
|
|
||||||
|
using Triangle = Eigen::Array<Index, 3, 1>;
|
||||||
|
|
||||||
|
|
||||||
|
template<typename Scalar, typename Derived0, typename Derived1>
|
||||||
|
auto lerp(
|
||||||
|
Scalar factor,
|
||||||
|
const Eigen::MatrixBase<Derived0>& m0,
|
||||||
|
const Eigen::MatrixBase<Derived1>& m1
|
||||||
|
) -> std::enable_if_t<
|
||||||
|
Derived0::RowsAtCompileTime == Derived1::RowsAtCompileTime &&
|
||||||
|
Derived0::ColsAtCompileTime == Derived1::ColsAtCompileTime,
|
||||||
|
Eigen::Matrix<
|
||||||
|
std::common_type_t<
|
||||||
|
Scalar,
|
||||||
|
typename Derived0::Scalar,
|
||||||
|
typename Derived1::Scalar
|
||||||
|
>,
|
||||||
|
Derived0::RowsAtCompileTime,
|
||||||
|
Derived0::ColsAtCompileTime
|
||||||
|
>
|
||||||
|
> {
|
||||||
|
return (Scalar(1) - factor) * m0 + factor * m1;
|
||||||
|
}
|
||||||
|
|
||||||
|
Eigen::Matrix4f projection_matrix(float x_min, float x_max, float y_min, float y_max, float z_min, float z_max);
|
||||||
|
Eigen::Matrix4f look_at_matrix(
|
||||||
|
const Eigen::Vector3f& cam_pos,
|
||||||
|
const Eigen::Vector3f& look_at,
|
||||||
|
const Eigen::Vector3f& up
|
||||||
|
);
|
||||||
10
src/core/types.h
Normal file
10
src/core/types.h
Normal file
@@ -0,0 +1,10 @@
|
|||||||
|
#pragma once
|
||||||
|
|
||||||
|
|
||||||
|
#include <Eigen/Dense>
|
||||||
|
|
||||||
|
#include <type_traits>
|
||||||
|
|
||||||
|
|
||||||
|
using Byte = unsigned char;
|
||||||
|
using Index = uint32_t;
|
||||||
26
src/core/utils.cpp
Normal file
26
src/core/utils.cpp
Normal file
@@ -0,0 +1,26 @@
|
|||||||
|
#include <core/utils.h>
|
||||||
|
|
||||||
|
#include <cstring>
|
||||||
|
#include <fstream>
|
||||||
|
|
||||||
|
|
||||||
|
Uuid make_uuid(uint8_t const* bytes) {
|
||||||
|
Uuid uuid;
|
||||||
|
std::memcpy(uuid.data(), bytes, UUID_SIZE);
|
||||||
|
return uuid;
|
||||||
|
}
|
||||||
|
|
||||||
|
std::vector<char> read_binary_file(const char* path) {
|
||||||
|
std::ifstream istream(path, std::ios_base::ate | std::ios_base::binary);
|
||||||
|
if(!istream.is_open())
|
||||||
|
throw std::runtime_error(cat("failed to open '", path, "'"));
|
||||||
|
|
||||||
|
std::vector<char> buffer(size_t(istream.tellg()));
|
||||||
|
|
||||||
|
istream.seekg(0);
|
||||||
|
istream.read(buffer.data(), buffer.size());
|
||||||
|
istream.close();
|
||||||
|
|
||||||
|
return buffer;
|
||||||
|
}
|
||||||
|
|
||||||
@@ -1,7 +1,5 @@
|
|||||||
#pragma once
|
#pragma once
|
||||||
|
|
||||||
#include <Eigen/Dense>
|
|
||||||
|
|
||||||
#include <cassert>
|
#include <cassert>
|
||||||
#include <vector>
|
#include <vector>
|
||||||
#include <string>
|
#include <string>
|
||||||
@@ -33,6 +31,7 @@ Guard<T> make_guard(T&& teardown) {
|
|||||||
return Guard<T>(std::move(teardown));
|
return Guard<T>(std::move(teardown));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
template<typename... Args>
|
template<typename... Args>
|
||||||
std::string cat(Args&&... args) {
|
std::string cat(Args&&... args) {
|
||||||
std::ostringstream ostream;
|
std::ostringstream ostream;
|
||||||
@@ -40,8 +39,10 @@ std::string cat(Args&&... args) {
|
|||||||
return ostream.str();
|
return ostream.str();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
std::vector<char> read_binary_file(const char* path);
|
std::vector<char> read_binary_file(const char* path);
|
||||||
|
|
||||||
|
|
||||||
template<typename T>
|
template<typename T>
|
||||||
class Array {
|
class Array {
|
||||||
public:
|
public:
|
||||||
@@ -76,10 +77,3 @@ private:
|
|||||||
size_t m_size = 0;
|
size_t m_size = 0;
|
||||||
T* m_data = nullptr;
|
T* m_data = nullptr;
|
||||||
};
|
};
|
||||||
|
|
||||||
Eigen::Matrix4f projection_matrix(float x_min, float x_max, float y_min, float y_max, float z_min, float z_max);
|
|
||||||
Eigen::Matrix4f look_at_matrix(
|
|
||||||
const Eigen::Vector3f& cam_pos,
|
|
||||||
const Eigen::Vector3f& look_at,
|
|
||||||
const Eigen::Vector3f& up
|
|
||||||
);
|
|
||||||
@@ -1,6 +1,7 @@
|
|||||||
#include <Logger.h>
|
|
||||||
#include <VkExpe.h>
|
#include <VkExpe.h>
|
||||||
|
|
||||||
|
#include <core/Logger.h>
|
||||||
|
|
||||||
|
|
||||||
int main(int argc, char** argv) {
|
int main(int argc, char** argv) {
|
||||||
VkExpe vk_expe(argc, argv);
|
VkExpe vk_expe(argc, argv);
|
||||||
|
|||||||
@@ -1,6 +1,7 @@
|
|||||||
#include <vk/Buffer.h>
|
#include <vk/Buffer.h>
|
||||||
#include <vk/Context.h>
|
#include <vk/Context.h>
|
||||||
#include <Logger.h>
|
|
||||||
|
#include <core/Logger.h>
|
||||||
|
|
||||||
#include <stdexcept>
|
#include <stdexcept>
|
||||||
#include <algorithm>
|
#include <algorithm>
|
||||||
|
|||||||
@@ -1,10 +1,10 @@
|
|||||||
#pragma once
|
#pragma once
|
||||||
|
|
||||||
#include <utils.h>
|
|
||||||
|
|
||||||
#include <vk/forward.h>
|
#include <vk/forward.h>
|
||||||
#include <vk/Memory.h>
|
#include <vk/Memory.h>
|
||||||
|
|
||||||
|
#include <core/utils.h>
|
||||||
|
|
||||||
#include <vulkan/vulkan.h>
|
#include <vulkan/vulkan.h>
|
||||||
|
|
||||||
#include <memory>
|
#include <memory>
|
||||||
|
|||||||
@@ -1,8 +1,8 @@
|
|||||||
#include <vk/Context.h>
|
#include <vk/Context.h>
|
||||||
#include <vk/Memory.h>
|
#include <vk/Memory.h>
|
||||||
|
|
||||||
#include <utils.h>
|
#include <core/utils.h>
|
||||||
#include <Logger.h>
|
#include <core/Logger.h>
|
||||||
|
|
||||||
#include <SDL2/SDL_vulkan.h>
|
#include <SDL2/SDL_vulkan.h>
|
||||||
|
|
||||||
|
|||||||
@@ -1,10 +1,12 @@
|
|||||||
#pragma once
|
#pragma once
|
||||||
|
|
||||||
#include <utils.h>
|
|
||||||
#include <Logger.h>
|
|
||||||
#include <vk/forward.h>
|
#include <vk/forward.h>
|
||||||
|
|
||||||
|
#include <core/utils.h>
|
||||||
|
#include <core/Logger.h>
|
||||||
|
|
||||||
#include <SDL2/SDL.h>
|
#include <SDL2/SDL.h>
|
||||||
|
|
||||||
#include <vulkan/vulkan.h>
|
#include <vulkan/vulkan.h>
|
||||||
|
|
||||||
#include <optional>
|
#include <optional>
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
#include <vk/Swapchain.h>
|
#include <vk/Swapchain.h>
|
||||||
|
|
||||||
#include <Logger.h>
|
#include <core/Logger.h>
|
||||||
|
|
||||||
#include <SDL2/SDL_vulkan.h>
|
#include <SDL2/SDL_vulkan.h>
|
||||||
|
|
||||||
|
|||||||
@@ -1,9 +1,11 @@
|
|||||||
#pragma once
|
#pragma once
|
||||||
|
|
||||||
#include <vk/Context.h>
|
#include <vk/Context.h>
|
||||||
#include <utils.h>
|
|
||||||
|
#include <core/utils.h>
|
||||||
|
|
||||||
#include <SDL2/SDL.h>
|
#include <SDL2/SDL.h>
|
||||||
|
|
||||||
#include <vulkan/vulkan.h>
|
#include <vulkan/vulkan.h>
|
||||||
|
|
||||||
#include <optional>
|
#include <optional>
|
||||||
|
|||||||
Reference in New Issue
Block a user