Files
nova-engine/engine/include/nova/render/render_params.h

45 lines
1.0 KiB
C++

/**
* Copyright (c) 2025, Jayden Grubb <contact@jaydengrubb.com>
*
* SPDX-License-Identifier: BSD-3-Clause
*/
#pragma once
#include <nova/render/render_fwd.h>
#include <nova/types.h>
#include <unordered_map>
namespace Nova {
struct GraphicsPipelineParams {
std::unordered_map<ShaderStage, ShaderID> shaders;
// TODO: Vertex input state
PrimitiveTopology topology = PrimitiveTopology::TRIANGLE_LIST;
// TODO: Tessellation state
bool enable_depth_clamp = false;
bool discard_primitives = false;
bool wireframe = false;
CullMode cull_mode = CullMode::NONE;
FrontFace front_face = FrontFace::COUNTER_CLOCKWISE;
bool enable_depth_bias = false;
float depth_bias_constant = 0.0f;
float depth_bias_clamp = 0.0f;
float depth_bias_slope = 0.0f;
float line_width = 1.0f;
// TODO: Multisample state
// TODO: Depth stencil state
// TODO: Color blend state
// TODO: Dynamic state
RenderPassID render_pass = nullptr;
u32 subpass = 0;
};
struct ComputePipelineParams {};
} // namespace Nova