43 handle_ = std::exchange(
other.handle_,
nullptr);
55 if (
info !=
nullptr && !own_strides(*
info))
104 return static_cast<result>(
112 template <
typename T>
113 [[
nodiscard]]
static constexpr bool own_stride(std::uint32_t
stride)
noexcept
125 return own_stride<vgl_draw_item>(
info.draw_item_size) &&
126 own_stride<vgl_draw_layer>(
info.draw_layer_size) &&
127 own_stride<vgl_index_list_data>(
info.index_list_data_size) &&
128 own_stride<vgl_mesh_data>(
info.mesh_data_size) &&
129 own_stride<vgl_texture_data>(
info.texture_data_size);
132 template <
typename T>
135 template <
typename T>
136 [[nodiscard]] std::span<const T> list(getter<T> fetch)
const noexcept
138 const T* data =
nullptr;
139 std::uint32_t count = 0;
144 return {data, count};
vgl_result
Definition base.h:98
@ VGL_RESULT_SUCCESS
Definition base.h:100
Definition context.hpp:106
std::span< const vgl_draw_layer > draw_layers_get() const noexcept
Definition render.hpp:92
std::span< const vgl_draw_item > draw_list_get() const noexcept
Definition render.hpp:88
result resource_handle_set(std::uint64_t resource, std::uint64_t handle) noexcept
Definition render.hpp:97
std::span< const std::uint64_t > destroys_get() const noexcept
Definition render.hpp:72
std::span< const vgl_mesh_data > meshes_get() const noexcept
Definition render.hpp:80
std::span< const vgl_index_list_data > index_lists_get() const noexcept
Definition render.hpp:76
void end() noexcept
Definition render.hpp:109
std::span< const vgl_texture_data > textures_get() const noexcept
Definition render.hpp:84
frame(frame &&other) noexcept
Definition render.hpp:37
result resource_failed(std::uint64_t resource, result reason) noexcept
Definition render.hpp:102
~frame()
Definition render.hpp:47
frame & operator=(frame &&other) noexcept
Definition render.hpp:38
vgl_frame * get() const noexcept
Definition render.hpp:68
frame & operator=(const frame &)=delete
static expected< frame > begin(context &owner, const vgl_frame_begin_info *info=nullptr) noexcept
Definition render.hpp:52
frame(const frame &)=delete
depth_convention
Definition render.hpp:22
result
Definition base.hpp:25
vgl_result vgl_frame_destroys_get(const vgl_frame *frame, const uint64_t **out_resources, uint32_t *out_count)
vgl_result vgl_frame_draw_list_get(const vgl_frame *frame, const vgl_draw_item **out_items, uint32_t *out_count)
vgl_result vgl_frame_end(vgl_frame *frame)
vgl_result vgl_frame_meshes_get(const vgl_frame *frame, const vgl_mesh_data **out_meshes, uint32_t *out_count)
struct vgl_frame vgl_frame
Definition render.h:195
vgl_result vgl_frame_resource_handle_set(vgl_frame *frame, uint64_t resource, uint64_t handle)
vgl_result vgl_frame_index_lists_get(const vgl_frame *frame, const vgl_index_list_data **out_index_lists, uint32_t *out_count)
vgl_result vgl_frame_textures_get(const vgl_frame *frame, const vgl_texture_data **out_textures, uint32_t *out_count)
@ VGL_DEPTH_CONVENTION_LOGARITHMIC
Definition render.h:112
@ VGL_DEPTH_CONVENTION_CONVENTIONAL
Definition render.h:121
@ VGL_DEPTH_CONVENTION_REVERSED_Z
Definition render.h:118
vgl_result vgl_frame_resource_failed(vgl_frame *frame, uint64_t resource, vgl_result reason)
vgl_result vgl_frame_draw_layers_get(const vgl_frame *frame, const vgl_draw_layer **out_layers, uint32_t *out_count)
vgl_result vgl_context_frame_begin(vgl_context *context, const vgl_frame_begin_info *info, vgl_frame **out_frame)