Create the render nodes of this frame and its descendants (once; for
viewer, a window's viewer handle, which some contents need while they
are built (not kept); null: headless).
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(ReferenceFrame), | intent(inout) | :: | self | |||
| type(c_ptr), | intent(in) | :: | viewer |
a window's viewer handle (null: headless) |
recursive subroutine realize(self, viewer) class(ReferenceFrame), intent(inout) :: self type(c_ptr), intent(in) :: viewer !! a window's viewer handle (null: headless) integer :: k if (self%realized) return self%realized = .true. self%shown_ = c_associated(viewer) self%node_ = vkf_transform_create() self%synced = .false. self%contents_node = vkf_switch_create() call check_status(vkf_node_add_child(self%node_, self%contents_node)) call self%build_contents(viewer, self%contents_node) call build_decorations(self) if (self%light_source) call build_light(self) if (.not. self%contents) call check_status(vkf_switch_set(self%contents_node, 0_c_int)) call self%sync() do k = 1, self%n_children call self%children(k)%p%realize(viewer) call check_status(vkf_node_add_child(self%node_, self%children(k)%p%node_)) end do end subroutine realize