Started implementing Pipeline system for RenderDriver

This commit is contained in:
2025-04-22 13:04:14 +10:00
parent 8ac7a46f53
commit 8d398b9c00
5 changed files with 255 additions and 6 deletions

View File

@@ -7,15 +7,27 @@
#pragma once
namespace Nova {
enum class CullMode { NONE, FRONT, BACK };
enum class FrontFace { CLOCKWISE, COUNTER_CLOCKWISE };
enum class PipelineType { GRAPHICS, COMPUTE };
enum class PrimitiveTopology { POINT_LIST, LINE_LIST, LINE_STRIP, TRIANGLE_LIST, TRIANGLE_STRIP };
enum class RenderAPI { DX12, VULKAN };
enum class ShaderStage { VERTEX, FRAGMENT, GEOMETRY, TESS_CONTROL, TESS_EVAL, COMPUTE, MESH, TASK };
class RenderDriver;
struct RenderDevice;
struct GraphicsPipelineParams;
struct ComputePipelineParams;
struct Pipeline;
struct RenderPass;
struct Shader;
struct Surface;
struct Swapchain;
using PipelineID = Pipeline*;
using RenderPassID = RenderPass*;
using ShaderID = Shader*;
using SurfaceID = Surface*;
using SwapchainID = Swapchain*;