40 std::variant<std::monostate, gpu::Batch *, gpu::VertBuf *>
pos_buf;
48 if (std::holds_alternative<gpu::VertBuf *>(this->pos_buf)) {
49 return std::get<gpu::VertBuf *>(this->pos_buf);
51 if (std::holds_alternative<gpu::Batch *>(this->pos_buf)) {
52 gpu::VertBuf *buf = std::get<gpu::Batch *>(this->pos_buf)->verts_(1);
65 if (std::holds_alternative<gpu::VertBuf *>(this->pos_buf)) {
68 if (std::holds_alternative<gpu::Batch *>(this->pos_buf)) {
181 bool object_has_velocity(
const Object *ob);
182 bool object_is_deform(
const Object *ob);
A running instance of the engine.
float step_time_delta_get(eVelocityStep start, eVelocityStep end) const
Map< ObjectKey, VelocityObjectData > velocity_map
void bind_resources(PassType &pass)
std::array< CameraDataBuf *, 3 > camera_steps
bool step_object_sync(ObjectKey &object_key, const ObjectRef &object_ref, int recalc, ResourceHandle resource_handle, ModifierData *modifier_data=nullptr, ParticleSystem *particle_sys=nullptr)
bool camera_changed_projection() const
std::array< VelocityObjectBuf *, 3 > object_steps
void geometry_steps_fill()
VelocityIndexBuf indirection_buf
bool camera_has_motion() const
std::array< VelocityGeometryBuf *, 3 > geometry_steps
VelocityModule(Instance &inst)
void step_sync(eVelocityStep step, float time)
Map< uint64_t, VelocityGeometryData > geometry_map
#define VELOCITY_INDIRECTION_BUF_SLOT
#define VELOCITY_CAMERA_NEXT_BUF
#define VELOCITY_CAMERA_PREV_BUF
#define VELOCITY_OBJ_PREV_BUF_SLOT
#define VELOCITY_GEO_PREV_BUF_SLOT
#define VELOCITY_GEO_NEXT_BUF_SLOT
#define VELOCITY_CAMERA_CURR_BUF
#define VELOCITY_OBJ_NEXT_BUF_SLOT
VecBase< float, D > step(VecOp< float, D >, VecOp< float, D >) RET
draw::StorageArrayBuffer< float4, 16, true > VelocityGeometryBuf
draw::StorageArrayBuffer< float4x4, 16 > VelocityObjectBuf
draw::UniformBuffer< CameraData > CameraDataBuf
VecBase< int32_t, 3 > int3
unsigned __int64 uint64_t
gpu::VertBuf * pos_buf_get() const
std::variant< std::monostate, gpu::Batch *, gpu::VertBuf * > pos_buf