build_indirect.h

cross platform rendering playground

src/passes/dispatch_mdi/build_indirect.h

604 B
#pragma once

#include "passes/fg.h"

struct RenderData;
struct FrameData;
struct Pipelines;

namespace build_indirect {
struct Resources {
    BufferHandle indirect;
    BufferHandle visible;
    BufferHandle draw_count;
};

Resources create(FrameGraph &fg, u32 render_item_count, const char *tag);

void record(
    rhi::Device &device,
    Pipelines &pipelines,
    rhi::ShaderCompiler &sc,
    FrameGraph &fg,
    BufferHandle render_items,
    BufferHandle submeshes,
    Resources &res,
    ImageHandle hiz_image,
    bool enable_culling,
    const char *pass_name
);
} // namespace build_indirect