#ifndef EMULATOR_SRC_GRAPHICS_HOST_GPU_RENDERER_RENDERDRAW_H_ #define EMULATOR_SRC_GRAPHICS_HOST_GPU_RENDERER_RENDERDRAW_H_ #include "graphics/host_gpu/renderer/renderTarget.h" #include #include namespace Libs::Graphics { struct RenderColorInfo; struct ShaderVertexInputInfo; #pragma pack(push, 1) struct PipelineDynamicParameters { bool stencil_test_enable = false; bool depth_bias_enable = false; float viewport_scale[3] = {}; float viewport_offset[3] = {}; int scissor_ltrb[4] = {0}; float line_width = 1.0f; float depth_bias_constant_factor = 0.0f; float depth_bias_clamp = 0.0f; float depth_bias_slope_factor = 0.0f; uint32_t color_write_count = 1; bool color_write_enable[RENDER_COLOR_ATTACHMENTS_MAX] = {true, true}; PipelineStencilDynamicState stencil_front; PipelineStencilDynamicState stencil_back; }; #pragma pack(pop) static_assert(std::is_trivially_copyable_v); static_assert(std::is_standard_layout_v); static_assert(alignof(PipelineDynamicParameters) == 1); [[nodiscard]] int32_t ResolveVertexOffset(uint32_t index_offset, const ShaderVertexInputInfo& vs_input_info); } // namespace Libs::Graphics #endif // EMULATOR_SRC_GRAPHICS_HOST_GPU_RENDERER_RENDERDRAW_H_