13 ossia::mesh_list geom;
15 using pip = QRhiGraphicsPipeline;
16 pip::Topology topology = pip::Topology::TriangleStrip;
17 pip::CullMode cullMode = pip::CullMode::None;
18 pip::FrontFace frontFace = pip::FrontFace::CW;
20 ossia::small_vector<QRhiVertexInputBinding, 2> vertexBindings;
21 ossia::small_vector<QRhiVertexInputAttribute, 2> vertexAttributes;
23 ossia::small_vector<QRhiBuffer*, 2> buffers;
28 const ossia::mesh_list& g,
const ossia::geometry_filter_list_ptr& f);
31 QRhiBuffer* init_vbo(
const ossia::geometry::cpu_buffer& buf, QRhi& rhi)
const noexcept;
34 QRhiBuffer* init_vbo(
const ossia::geometry::gpu_buffer& buf, QRhi& rhi)
const noexcept;
37 init_index(
const ossia::geometry::cpu_buffer& buf, QRhi& rhi)
const noexcept;
41 init_index(
const ossia::geometry::gpu_buffer& buf, QRhi& rhi)
const noexcept;
43 [[nodiscard]]
MeshBuffers init(QRhi& rhi)
const noexcept override;
46 int buffer_index,
const ossia::geometry::cpu_buffer& vtx_buf,
MeshBuffers& meshbuf,
47 QRhiResourceUpdateBatch& rb)
const noexcept;
50 int buffer_index,
const ossia::geometry::gpu_buffer& vtx_buf,
MeshBuffers& meshbuf,
51 QRhiResourceUpdateBatch& rb)
const noexcept;
54 int buffer_index,
const ossia::geometry::cpu_buffer& idx_buf,
MeshBuffers& meshbuf,
55 QRhiResourceUpdateBatch& rb)
const noexcept;
58 int buffer_index,
const ossia::geometry::gpu_buffer& idx_buf,
MeshBuffers& meshbuf,
59 QRhiResourceUpdateBatch& rb)
const noexcept;
60 void update(QRhi& rhi,
MeshBuffers& output_meshbuf, QRhiResourceUpdateBatch& rb)
61 const noexcept override;
62 Flags flags()
const noexcept override;
66 void preparePipeline(QRhiGraphicsPipeline& pip)
const noexcept override;
68 void reload(
const ossia::mesh_list& ml,
const ossia::geometry_filter_list_ptr& f);
70 void draw(
const MeshBuffers& bufs, QRhiCommandBuffer& cb)
const noexcept override;