Skip to content

Commit

Permalink
refactoring
Browse files Browse the repository at this point in the history
  • Loading branch information
WinteryFox committed Nov 10, 2023
1 parent 6fd787e commit c89503a
Show file tree
Hide file tree
Showing 4 changed files with 118 additions and 76 deletions.
68 changes: 53 additions & 15 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -1,3 +1,9 @@
### QML template
### QML ###
# Cached binary representations of QML and JS files
*.qmlc
*.jsc

### C++ template
# Prerequisites
*.d
Expand Down Expand Up @@ -66,7 +72,6 @@ Makefile*
*build-*
*.qm
*.prl
QtSettings.qml

# Qt unit tests
target_wrapper.*
Expand All @@ -89,20 +94,7 @@ compile_commands.json

*_qmlcache.qrc

### CMake template
CMakeLists.txt.user
CMakeCache.txt
CMakeFiles
CMakeScripts
Testing
Makefile
cmake_install.cmake
install_manifest.txt
compile_commands.json
CTestTestfile.cmake
_deps

### CLion+all template
### JetBrains template
# Covers JetBrains IDEs: IntelliJ, RubyMine, PhpStorm, AppCode, PyCharm, CLion, Android Studio, WebStorm and Rider
# Reference: https://intellij-support.jetbrains.com/hc/en-us/articles/206544839

Expand Down Expand Up @@ -181,3 +173,49 @@ fabric.properties
# Android studio 3.1+ serialized cache file
.idea/caches/build_file_checksums.ser

### QtCreator template
# gitignore for Qt Creator like IDE for pure C/C++ project without Qt
#
# Reference: http://doc.qt.io/qtcreator/creator-project-generic.html



# Qt Creator autogenerated files


# A listing of all the files included in the project
*.files

# Include directories
*.includes

# Project configuration settings like predefined Macros
*.config

# Qt Creator settings
*.creator

# User project settings
*.creator.user*

# Qt Creator backups
*.autosave

# Flags for Clang Code Model
*.cxxflags
*.cflags


### CMake template
CMakeLists.txt.user
CMakeCache.txt
CMakeFiles
CMakeScripts
Testing
Makefile
cmake_install.cmake
install_manifest.txt
compile_commands.json
CTestTestfile.cmake
_deps

7 changes: 6 additions & 1 deletion .idea/Vixen.iml

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

11 changes: 4 additions & 7 deletions .idea/qmlSettings.xml

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

108 changes: 55 additions & 53 deletions src/engine/vk/test/main.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -19,79 +19,82 @@ int main() {
#ifdef _WIN32
system(("chcp " + std::to_string(CP_UTF8)).c_str());
#endif

#ifdef DEBUG
spdlog::set_level(spdlog::level::trace);
#endif

auto vixen = Vixen::Vk::VkVixen("Vixen Vulkan Test", {1, 0, 0});

auto vertex = Vixen::Vk::VkShaderModule::Builder()
.setStage(Vixen::ShaderModule::Stage::VERTEX)
.addBinding({
.binding = 0,
.stride = sizeof(Vertex),
.rate = Vixen::Vk::VkShaderModule::Rate::VERTEX,
})
.addInput({
.binding = 0,
.location = 0,
.offset = offsetof(Vertex, position),
})
.addInput({
.binding = 0,
.location = 1,
.offset = offsetof(Vertex, color),
})
.compileFromFile(vixen.device, "../../src/editor/shaders/triangle.vert");
auto fragment = Vixen::Vk::VkShaderModule::Builder()
.setStage(Vixen::ShaderModule::Stage::FRAGMENT)
.compileFromFile(vixen.device, "../../src/editor/shaders/triangle.frag");
auto program = Vixen::Vk::VkShaderProgram(vertex, fragment);
const auto vertex = Vixen::Vk::VkShaderModule::Builder()
.setStage(Vixen::ShaderModule::Stage::VERTEX)
.addBinding({
.binding = 0,
.stride = sizeof(Vertex),
.rate = Vixen::Vk::VkShaderModule::Rate::VERTEX,
})
.addInput({
.binding = 0,
.location = 0,
.offset = offsetof(Vertex, position),
})
.addInput({
.binding = 0,
.location = 1,
.offset = offsetof(Vertex, color),
})
.compileFromFile(vixen.device, "../../src/editor/shaders/triangle.vert");
const auto fragment = Vixen::Vk::VkShaderModule::Builder()
.setStage(Vixen::ShaderModule::Stage::FRAGMENT)
.compileFromFile(vixen.device, "../../src/editor/shaders/triangle.frag");
const auto program = Vixen::Vk::VkShaderProgram(vertex, fragment);

int width;
int height;
vixen.window.getFramebufferSize(width, height);

auto pipeline = Vixen::Vk::VkPipeline::Builder()
.setWidth(width)
.setHeight(height)
.build(vixen.device, vixen.swapchain, program);
.setWidth(width)
.setHeight(height)
.build(vixen.device, vixen.swapchain, program);

auto renderer = std::make_unique<Vixen::Vk::VkRenderer>(vixen.device, vixen.swapchain, pipeline);

std::vector<Vertex> vertices{
{{-0.5f, -0.5f, 0.0f}, {1.0f, 0.0f, 0.0f}},
{{0.5f, -0.5f, 0.0f}, {0.0f, 1.0f, 0.0f}},
{{0.5f, 0.5f, 0.0f}, {0.0f, 0.0f, 1.0f}},
{{-0.5f, 0.5f, 0.0f}, {1.0f, 1.0f, 1.0f}}
{{-0.5f, -0.5f, 0.0f}, {1.0f, 0.0f, 0.0f}},
{{0.5f, -0.5f, 0.0f}, {0.0f, 1.0f, 0.0f}},
{{0.5f, 0.5f, 0.0f}, {0.0f, 0.0f, 1.0f}},
{{-0.5f, 0.5f, 0.0f}, {1.0f, 1.0f, 1.0f}}
};

std::vector<uint32_t> indices{
0, 1, 2,
2, 3, 0
0, 1, 2,
2, 3, 0
};

auto buffer = Vixen::Vk::VkBuffer::stage(
vixen.device,
Vixen::Buffer::Usage::VERTEX |
Vixen::Buffer::Usage::INDEX,
vertices.size() * sizeof(Vertex) +
indices.size() * sizeof(uint32_t),
[&vertices, &indices](auto data) {
memcpy(
data,
vertices.data(),
sizeof(Vertex) * vertices.size()
);

memcpy(
static_cast<Vertex *>(data) + vertices.size(),
indices.data(),
sizeof(uint32_t) * indices.size()
);
}
const auto buffer = Vixen::Vk::VkBuffer::stage(
vixen.device,
Vixen::Buffer::Usage::VERTEX |
Vixen::Buffer::Usage::INDEX,
vertices.size() * sizeof(Vertex) +
indices.size() * sizeof(uint32_t),
[&vertices, &indices](auto data) {
memcpy(
data,
vertices.data(),
sizeof(Vertex) * vertices.size()
);

memcpy(
static_cast<Vertex*>(data) + vertices.size(),
indices.data(),
sizeof(uint32_t) * indices.size()
);
}
);

double old = glfwGetTime();
uint32_t fps;
uint32_t fps = 0;
while (!vixen.window.shouldClose()) {
if (vixen.window.update()) {
vixen.swapchain.invalidate();
Expand All @@ -102,8 +105,7 @@ int main() {
renderer->render(buffer, vertices.size(), indices.size());

fps++;
double now = glfwGetTime();
if (now - old >= 1) {
if (const double& now = glfwGetTime(); now - old >= 1) {
spdlog::info("FPS: {}", fps);
old = now;
fps = 0;
Expand Down

0 comments on commit c89503a

Please sign in to comment.