mirror of https://github.com/encounter/aurora.git
28 lines
680 B
C++
28 lines
680 B
C++
|
#pragma once
|
||
|
|
||
|
#include "../common.hpp"
|
||
|
#include "../gx.hpp"
|
||
|
|
||
|
namespace aurora::gfx::model {
|
||
|
struct DrawData {
|
||
|
PipelineRef pipeline;
|
||
|
Range vertRange;
|
||
|
Range idxRange;
|
||
|
gx::BindGroupRanges dataRanges;
|
||
|
Range uniformRange;
|
||
|
uint32_t indexCount;
|
||
|
gx::GXBindGroups bindGroups;
|
||
|
u32 dstAlpha;
|
||
|
};
|
||
|
|
||
|
struct PipelineConfig : gx::PipelineConfig {};
|
||
|
|
||
|
struct State {};
|
||
|
|
||
|
State construct_state();
|
||
|
WGPURenderPipeline create_pipeline(const State& state, [[maybe_unused]] const PipelineConfig& config);
|
||
|
void render(const State& state, const DrawData& data, const WGPURenderPassEncoder& pass);
|
||
|
|
||
|
void queue_surface(const u8* dlStart, u32 dlSize) noexcept;
|
||
|
} // namespace aurora::gfx::model
|