9#ifndef AVARA3D_RENDER_DRAWPACKET_H
10#define AVARA3D_RENDER_DRAWPACKET_H
15#include "a3d/mesh/Line.h"
16#include "a3d/render/PipelineDesc.h"
17#include "a3d/visual/Ground.h"
27 struct BackgroundPass {
28 PipelineId pipelineId = INVALID_PIPELINE_ID;
29 PipelineDesc desc = {};
30 std::shared_ptr<Material> material =
nullptr;
31 math::quat orientation = math::quat(1.0f);
35 PipelineId pipelineId = INVALID_PIPELINE_ID;
36 PipelineDesc desc = {};
37 std::optional<Ground> ground = {};
41 PipelineId pipelineId = INVALID_PIPELINE_ID;
42 PipelineDesc desc = {};
43 math::mat4 model = math::mat4(1.0f);
44 std::vector<Line> lines = {};
48 PassKind pass = PassKind::MainOpaque;
49 PipelineId pipelineId = INVALID_PIPELINE_ID;
50 PipelineDesc desc = {};
51 uint32_t elementIndex = 0;
52 MeshElement* element =
nullptr;
53 Material* material =
nullptr;
54 math::vec4 tint = math::vec4(0.0f);
55 math::mat4 model = math::mat4(1.0);
58 uint64_t batchKey = 0;
59 uint32_t sequence = 0;
60 bool transparent =
false;
64 BackgroundPass backgroundPass = {};
65 GroundPass groundPass = {};
66 std::vector<DrawItem> mainPassItems = {};
70 std::vector<DrawItem> wireframePassItems = {};
71 LinesPass linesPass = {};
72 std::vector<Node*> lightNodes = {};