Mill m_runs into this attachment's output.
660{
661 std::span<const Portal::Graphics::DrawRun> runs =
m_runs;
662
663 Portal::Graphics::DrawRun whole {};
664 if (runs.empty()) {
665 const auto layout =
buffer->get_vertex_layout();
668 : (layout.has_value() ? layout->vertex_count : 0
U);
669
671 return 0;
672 }
673
676 .vertex_count =
count };
677 runs = { &whole, 1 };
678 }
679
682 : glm::
vec3(0.0F, 0.0F, 1.0e4F);
683
687 const float determinant = glm::determinant(geometry);
688 if (std::isfinite(determinant) && determinant != 0.0F) {
689 const glm::vec4 local_eye = glm::inverse(geometry) * glm::vec4(eye, 1.0F);
690 if (std::isfinite(local_eye.x) && std::isfinite(local_eye.y)
691 && std::isfinite(local_eye.z) && std::isfinite(local_eye.w)
692 && local_eye.w != 0.0F) {
693 eye = glm::vec3(local_eye) / local_eye.w;
694 }
695 }
696 }
697
698 const Portal::Graphics::MillView view { .eye = eye };
699
700 return mill.mill(
buffer, runs, view);
701}
std::shared_ptr< NetworkGeometryBuffer > buffer
bool m_view_transform_active
std::vector< Portal::Graphics::DrawRun > m_runs
Portal::Graphics::MillSpec m_mill_spec
const Kinesis::RenderTransform & published_render_transform() const
Transform published for this frame by publish_render_transform().
Portal::Graphics::PrimitiveTopology m_primitive_topology
std::function< glm::mat4()> m_geometry_transform_source
std::optional< glm::mat4 > m_geometry_transform
@ WorldFacing
Turned to face the viewpoint, in world space.