Orange/src/Apps/Tools/CubeTest.cpp

61 lines
1.9 KiB
C++
Raw Normal View History

2022-06-19 04:33:41 +01:00
#include <Orange/Core/Result.h>
#include <Orange/Render/Window.h>
2022-08-04 03:00:54 +01:00
#include <Orange/Render/RenderContext.h>
#include <Orange/Render/Swapchain.h>
2022-08-04 22:18:11 +01:00
#include <vulkan/vulkan_core.h>
2022-06-19 04:33:41 +01:00
using namespace orange;
int main(int argc, char** argv)
{
(void)argc; (void)argv;
2022-08-04 18:23:08 +01:00
auto r_window = Window::Create();
2022-06-19 04:33:41 +01:00
if (!r_window)
return 1;
2022-08-04 18:23:08 +01:00
auto r_renderContext = RenderContext::Create("Cube Test");
2022-08-04 03:00:54 +01:00
if (!r_renderContext)
2022-08-02 22:27:01 +01:00
return 1;
2022-08-04 18:23:08 +01:00
auto r_surface = r_window->CreateSurface(r_renderContext->Instance());
2022-08-04 03:00:54 +01:00
if (!r_surface)
return 1;
2022-08-03 05:33:52 +01:00
2022-08-04 18:23:08 +01:00
auto r_swapchain = Swapchain::Create(*r_renderContext, *r_surface);
2022-08-04 03:00:54 +01:00
if (!r_swapchain)
2022-08-02 22:27:01 +01:00
return 1;
2022-06-19 04:33:41 +01:00
2022-08-04 22:18:11 +01:00
while (r_window->Update())
{
r_renderContext->BeginCommandBuffer(r_swapchain->CommandBuffer());
{
const VkRenderingAttachmentInfoKHR attachmentInfo =
{
.sType = VK_STRUCTURE_TYPE_RENDERING_ATTACHMENT_INFO_KHR,
.imageView = r_swapchain->ImageView(),
.imageLayout = VK_IMAGE_LAYOUT_ATTACHMENT_OPTIMAL_KHR,
.loadOp = VK_ATTACHMENT_LOAD_OP_CLEAR,
.storeOp = VK_ATTACHMENT_STORE_OP_STORE,
.clearValue = { .color = { .float32 = { 1.0f, 0.5f, 0.0f, 1.0f } } },
};
const VkRenderingInfo renderInfo =
{
.sType = VK_STRUCTURE_TYPE_RENDERING_INFO,
.renderArea = { {}, r_swapchain->Extent() },
.layerCount = 1,
.colorAttachmentCount = 1,
.pColorAttachments = &attachmentInfo,
};
vkCmdBeginRendering(r_swapchain->CommandBuffer(), &renderInfo);
vkCmdEndRendering(r_swapchain->CommandBuffer());
}
r_renderContext->EndCommandBuffer(r_swapchain->CommandBuffer());
r_swapchain->Present();
}
2022-06-19 04:33:41 +01:00
return 0;
}