diff --git a/.nojekyll b/.nojekyll new file mode 100644 index 0000000000..e69de29bb2 diff --git a/adapter_8hpp_source.html b/adapter_8hpp_source.html new file mode 100644 index 0000000000..7a736004d6 --- /dev/null +++ b/adapter_8hpp_source.html @@ -0,0 +1,154 @@ + + + + + + + +Topaz: src/tz/core/memory/allocators/adapter.hpp Source File + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.1.0.1 +
+
C++20 Graphics Engine
+
+
+ + + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+
adapter.hpp
+
+
+
1#ifndef TOPAZ_CORE_ALLOCATORS_ADAPTER_HPP
+
2#define TOPAZ_CORE_ALLOCATORS_ADAPTER_HPP
+
3#include "tz/core/memory/memblk.hpp"
+
4#include "tz/core/types.hpp"
+
5#include "tz/core/debug.hpp"
+
6
+
7namespace tz
+
8{
+
16 template<typename T, tz::allocator A>
+
+
17 class allocator_adapter : private A
+
18 {
+
19 public:
+
20 using value_type = T;
+
21 using size_type = std::size_t;
+
22 using difference_type = std::ptrdiff_t;
+
23 using propagate_on_container_move_assignment = std::true_type;
+
24
+
25 allocator_adapter() = default;
+
26 allocator_adapter(const A& a):
+
27 A(a){}
+
28
+
29 template<class U>
+ +
31
+
32 T* allocate(std::size_t n)
+
33 {
+
34 tz::memblk blk = A::allocate(n * sizeof(T));
+
35 tz::assert(blk != nullblk, "allocator_adapter -- The underlying tz allocator returned a null-block. Memory allocation failed. The standard library allocator is going to crash.");
+
36 return reinterpret_cast<T*>(blk.ptr);
+
37 }
+
38
+
39 void deallocate(T* p, std::size_t n)
+
40 {
+
41 A::deallocate({.ptr = p, .size = n});
+
42 }
+
43 };
+
+
44}
+
45
+
46#endif // TOPAZ_CORE_ALLOCATORS_ADAPTER_HPP
+
A meta-allocator which allows a tz allocator to be used as if it were a std::allocator.
Definition adapter.hpp:18
+
void assert(bool condition, detail::format_string fmt="<No message>", Args &&... args)
Assert on a condition.
Definition debug.inl:33
+
A non-owning, contiguous block of memory.
Definition memblk.hpp:12
+
void * ptr
Start address of the block.
Definition memblk.hpp:14
+
+ + + + diff --git a/android-chrome-192x192.png b/android-chrome-192x192.png new file mode 100644 index 0000000000..2cfa4114b2 Binary files /dev/null and b/android-chrome-192x192.png differ diff --git a/android-chrome-256x256.png b/android-chrome-256x256.png new file mode 100644 index 0000000000..79803dfe5e Binary files /dev/null and b/android-chrome-256x256.png differ diff --git a/anim_8hpp_source.html b/anim_8hpp_source.html new file mode 100644 index 0000000000..193310b18f --- /dev/null +++ b/anim_8hpp_source.html @@ -0,0 +1,342 @@ + + + + + + + +Topaz: src/tz/ren/anim.hpp Source File + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.1.0.1 +
+
C++20 Graphics Engine
+
+
+ + + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+
anim.hpp
+
+
+
1#ifndef TOPAZ_REN_MESH_HPP
+
2#define TOPAZ_REN_MESH_HPP
+
3#include "tz/gl/renderer.hpp"
+
4#include "tz/core/data/vector.hpp"
+
5#include "tz/core/matrix.hpp"
+
6#include "tz/io/gltf.hpp"
+
7#include <cstdint>
+
8#include <array>
+
9
+
10namespace tz::ren
+
11{
+
12 template<unsigned int max_tex_count = 8, unsigned int max_joint4_count = 1>
+
+
13 struct vertex
+
14 {
+
15 tz::vec3 position = tz::vec3::zero();
+
16 float pad;
+
17 std::array<tz::vec4, max_tex_count> texcoordn = {};
+
18 tz::vec3 normal = tz::vec3::zero();
+
19 float pad0;
+
20 tz::vec3 tangent = tz::vec3::zero();
+
21 float pad1;
+
22 std::array<tz::vec4ui32, max_joint4_count> joint_indices = {};
+
23 std::array<tz::vec4, max_joint4_count> joint_weights = {};
+
24 };
+
+
25
+
26 using index = std::uint32_t;
+
27
+
28 template<unsigned int max_tex_count = 8>
+
+
29 struct mesh
+
30 {
+
31 std::vector<vertex<max_tex_count>> vertices = {};
+
32 std::vector<index> indices = {};
+
33 };
+
+
34
+
35 // describes the location and dimensions of a mesh within the giant vertex and index buffers.
+
+ +
37 {
+
38 // how far into the vertex buffer does this mesh's vertices live?
+
39 std::uint32_t vertex_offset = 0;
+
40 // how many vertices does this mesh have?
+
41 std::uint32_t vertex_count = 0;
+
42 // how far into the index buffer does this mesh's indices live?
+
43 std::uint32_t index_offset = 0;
+
44 // how many indices does this mesh have?
+
45 std::uint32_t index_count = 0;
+
46 // X, where all indices of this mesh are between 0 and X.
+
47 std::uint32_t max_index_value = 0;
+
48 bool operator==(const mesh_locator& rhs) const = default;
+
49 };
+
+
50
+
51 namespace detail
+
52 {
+
53 struct texture_tag_t{};
+
54 using texture_handle = tz::handle<detail::texture_tag_t>;
+
55 }
+
56
+
57
+
58 // represents one of the textures bound to an object (drawable)
+
+ +
60 {
+
61 bool is_null() const{return this->texture == tz::nullhand;}
+
62 // colour multiplier on the sampled texel
+
63 tz::vec3 colour_tint = tz::vec3::filled(1.0f);
+
64 // id within the overarching texture resource array to be sampled.
+
65 detail::texture_handle texture = tz::nullhand;
+
66 };
+
+
67
+
68 constexpr unsigned int anim_renderer_max_tex_count = 2;
+
69 constexpr unsigned int anim_renderer_max_joint4_count = 1;
+
70
+
71 // represents the data of an object (drawable).
+
72
+
+ +
74 {
+
75 tz::mat4 model = tz::mat4::identity();
+
76 tz::mat4 anim_transform = tz::mat4::identity();
+
77 };
+
+
+ +
79 {
+
80 // represents the transform of the drawable, in world space.
+
81 tz::mat4 inverse_bind_matrix = tz::mat4::identity();
+
82 tz::mat4 global_transform = tz::mat4::identity();
+
83 // array of bound textures. they all do not have to be used. no indication on whether they are colour, normal map, etc...
+
84 std::array<texture_locator, anim_renderer_max_tex_count> bound_textures = {};
+
85 std::uint32_t parent = static_cast<std::uint32_t>(-1);
+
86 float pad0[3] = {};
+
87 };
+
+
88
+
+ +
95 {
+
96 struct object_tag_t{};
+
97 public:
+
98 anim_renderer(unsigned int total_textures = 128);
+ + +
101 using mesh_handle = tz::handle<mesh_t>;
+
102 using object_handle = tz::handle<object_tag_t>;
+
103 using texture_handle = detail::texture_handle;
+
104
+
+ +
106 {
+
107 std::vector<mesh_handle> meshes = {};
+
108 std::vector<texture_handle> textures = {};
+
109 std::vector<object_handle> objects = {};
+
110 };
+
+
111
+
112 std::size_t mesh_count() const;
+
113 std::size_t draw_count() const;
+
114 void clear();
+
115 void clear_draws();
+
116 mesh_handle add_mesh(mesh_t m);
+
117 object_handle add_object(mesh_handle m, object_data data = {}, object_impl_data impl = {});
+
118 texture_handle add_texture(tz::vec2ui dimensions, std::span<const std::byte> image_data);
+
119 stored_assets add_gltf(const tz::io::gltf& gltf);
+
120 void append_to_render_graph();
+
121 void update(float dt);
+
122 void dbgui();
+
123 private:
+
124 struct compute_pass_t
+
125 {
+
126 compute_pass_t();
+
127 std::span<const mesh_locator> get_draw_list_meshes() const;
+
128 std::span<mesh_locator> get_draw_list_meshes();
+
129 std::uint32_t get_draw_count() const;
+
130 void set_draw_count(std::uint32_t new_draw_count);
+
131 void dbgui();
+
132 void increase_draw_list_capacity(std::size_t count);
+
133
+
134 tz::gl::resource_handle draw_indirect_buffer = tz::nullhand;
+
135 tz::gl::resource_handle draw_list_buffer = tz::nullhand;
+
136 tz::gl::renderer_handle handle = tz::nullhand;
+
137 };
+
138 struct render_pass_t
+
139 {
+
140 render_pass_t(tz::gl::renderer_handle compute_pass, tz::gl::resource_handle compute_draw_indirect_buffer, unsigned int total_textures = 128);
+
141 void dbgui();
+
142 std::span<const object_data> get_object_datas() const;
+
143 std::span<object_data> get_object_datas();
+
144 std::span<std::uint32_t> get_joint_id_to_node_ids();
+
145 std::span<std::uint32_t> get_index_to_object_ids();
+
146 std::size_t object_list_capacity() const;
+
147 void increase_object_list_capacity(std::size_t count);
+
148
+
149 tz::gl::resource_handle index_buffer = tz::nullhand;
+
150 tz::gl::resource_handle vertex_buffer = tz::nullhand;
+
151 tz::gl::resource_handle object_buffer = tz::nullhand;
+
152 tz::gl::resource_handle camera_buffer = tz::nullhand;
+
153 tz::gl::resource_handle joint_id_to_node_index = tz::nullhand;
+
154 tz::gl::resource_handle index_to_object_id_buffer = tz::nullhand;
+
155 tz::gl::resource_handle draw_indirect_buffer_ref = tz::nullhand;
+
156 std::vector<tz::gl::resource_handle> textures = {};
+
157 tz::gl::renderer_handle handle = tz::nullhand;
+
158
+
159 // not to be confused with the draw-list (part of the compute pass), which only contains the mesh locators that are gonna be drawn. this contains every mesh ever added.
+
160 std::vector<mesh_locator> meshes = {};
+
161 std::size_t cumulative_vertex_count = 0;
+
162 std::size_t texture_cursor = 0;
+
163 };
+
164
+
165 struct gltf_meta
+
166 {
+
167 std::size_t node_count = 0;
+
168 };
+
169
+
170 struct gltf_animation_data
+
171 {
+
172 std::vector<tz::io::gltf> gltfs = {};
+
173 std::size_t gltf_cursor = 0; // todo: change to support animation from multiple gltfs.
+
174 std::size_t animation_cursor = 0;
+
175 float time = 0.0f;
+
176 float speed = 1.0f;
+
177
+
178 using keyframe_iterator = std::set<tz::io::gltf_animation::keyframe_data_element>::iterator;
+
179 std::pair<std::size_t, std::size_t> get_keyframe_indices_at(keyframe_iterator front, keyframe_iterator back) const;
+
180 };
+
181
+
182 void expand_object_capacity(std::size_t extra_count);
+
183 std::optional<std::uint32_t> try_find_index_section(std::size_t index_count) const;
+
184 std::optional<std::uint32_t> try_find_vertex_section(std::size_t vertex_count) const;
+
185 mesh_locator add_mesh_impl(const anim_renderer::mesh_t& m);
+
186 void dbgui_impl();
+
187 stored_assets add_gltf_impl(const tz::io::gltf& gltf);
+
188 void impl_expand_gltf_node(const tz::io::gltf& gltf, const tz::io::gltf_node& node, stored_assets& assets, std::span<std::size_t> mesh_submesh_indices, std::span<std::optional<tz::io::gltf_material>> submesh_textures, std::uint32_t parent = static_cast<std::uint32_t>(-1));
+
189 tz::mat4 compute_global_transform(std::uint32_t obj_id, std::vector<std::uint32_t>& visited_node_ids) const;
+
190 void compute_global_transforms();
+
191 void process_skins();
+
192 std::size_t get_gltf_node_offset() const;
+
193 std::size_t get_gltf_node_offset(std::size_t gltf_cursor) const;
+
194 void update_animated_nodes(float dt);
+
195 void dbgui_anim();
+
196
+
197 compute_pass_t compute_pass = {};
+
198 render_pass_t render_pass;
+
199 std::vector<tz::io::gltf_skin> skins_to_process = {};
+
200 std::vector<object_impl_data> object_impls = {};
+
201 std::vector<gltf_meta> gltf_metas = {};
+
202 gltf_animation_data animation = {};
+
203 };
+
+
204}
+
205
+
206#endif // TOPAZ_REN_MESH_HPP
+
Definition handle.hpp:17
+
Definition gltf.hpp:291
+
todo: document a two-pass (compute gpu command generation => render) mesh renderer.
Definition anim.hpp:95
+
matrix< float, 4, 4 > mat4
Definition matrix.hpp:208
+
vector< float, 3 > vec3
A vector of three floats.
Definition vector.hpp:217
+
tz::handle< detail::renderer_tag > renderer_handle
Represents a handle for a renderer owned by an existing device.
Definition renderer.hpp:27
+
Definition anim.compute.tzsl:14
+
Definition gltf.hpp:54
+ +
Definition anim.hpp:53
+
Definition anim.hpp:37
+
Definition anim.hpp:30
+
Definition anim.hpp:79
+
Definition anim.hpp:74
+
Definition anim.hpp:60
+
Definition anim.hpp:14
+
+ + + + diff --git a/animation_8hpp_source.html b/animation_8hpp_source.html new file mode 100644 index 0000000000..c966368f08 --- /dev/null +++ b/animation_8hpp_source.html @@ -0,0 +1,267 @@ + + + + + + + +Topaz: src/tz/ren/animation.hpp Source File + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.1.0.1 +
+
C++20 Graphics Engine
+
+
+ + + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+
animation.hpp
+
+
+
1#ifndef TZ_REN_ANIMATION_HPP
+
2#define TZ_REN_ANIMATION_HPP
+
3#include "tz/ren/mesh.hpp"
+
4#include "tz/io/gltf.hpp"
+
5#include <queue>
+
6
+
7namespace tz::ren
+
8{
+
+ +
10 {
+
11 public:
+
12 using gltf_handle = tz::handle<tz::io::gltf>;
+
13 using mesh_handle = mesh_renderer::mesh_handle;
+
14 using texture_handle = mesh_renderer::texture_handle;
+
15 using object_handle = mesh_renderer::object_handle;
+ +
+ +
18 {
+
19 gltf_handle gltfh = tz::nullhand;
+
20 std::vector<mesh_handle> meshes = {};
+
21 std::vector<texture_handle> textures = {};
+
22 std::vector<object_handle> objects = {};
+
23 };
+
+
24
+
25 enum class override_flag
+
26 {
+
27 mesh,
+
28 texture
+
29 };
+
30 using override_flags = tz::enum_field<override_flag>;
+
31
+
+ +
33 {
+ +
35 override_flags overrides = {};
+
36 };
+
+
37
+
38 animation_renderer(unsigned int total_textures = 128, tz::gl::renderer_options options = {});
+
39
+
40 using mesh_renderer::append_to_render_graph;
+
41 using mesh_renderer::update;
+
42 using mesh_renderer::get_camera_transform;
+
43 using mesh_renderer::set_camera_transform;
+
44 using mesh_renderer::get_object;
+
45
+
46 virtual void dbgui() override;
+
47 void update(float delta);
+
48 virtual object_handle add_object(object_init_data init) override;
+
49 std::string_view get_object_name(object_handle h) const;
+
50 std::vector<object_handle> find_objects_by_name(const char* name) const;
+
51 tz::trs get_object_base_transform(object_handle h) const;
+
52 void set_object_base_transform(object_handle h, tz::trs local_transform);
+
53 tz::trs get_object_global_transform(object_handle h) const;
+
54 tz::trs global_to_local_transform(object_handle h, tz::trs global) const;
+
55
+
56 asset_package add_gltf(tz::io::gltf gltf);
+
57 asset_package add_gltf(tz::io::gltf gltf, override_package opkg);
+
58 asset_package add_gltf(tz::io::gltf gltf, object_handle parent);
+
59 asset_package add_gltf(tz::io::gltf gltf, object_handle parent, override_package opkg);
+
60
+
61 std::size_t get_animation_count(const asset_package& pkg) const;
+
62 std::optional<std::size_t> get_playing_animation(const asset_package& pkg) const;
+
63 std::string_view get_animation_name(const asset_package& pkg, std::size_t animation_id) const;
+
64 void play_animation(const asset_package& pkg, std::size_t animation_id, bool loop = false);
+
65 void queue_animation(const asset_package& pkg, std::size_t animation_id, bool loop = false);
+
66 void skip_animation(const asset_package& pkg);
+
67 void halt_animation(const asset_package& pkg);
+
68 float get_animation_speed(const asset_package& pkg) const;
+
69 void set_animation_speed(const asset_package& pkg, float speed);
+
70 private:
+
71 struct gltf_info
+
72 {
+
73 tz::io::gltf data;
+
74 // represents the number of objects that exist before the first object corresponding to this gltf.
+
75 unsigned int object_offset;
+
76 // maps each node id of this gltf to an object handle within the scene.
+
77 std::map<std::size_t, object_handle> node_object_map = {};
+
78 // stores each asset that was brought in by this gltf.
+
79 asset_package assets = {};
+
+ +
81 {
+
82 bool has_skins = false;
+
83 std::vector<std::size_t> mesh_submesh_indices = {};
+
84 std::vector<std::optional<tz::io::gltf_material>> submesh_materials = {};
+
85 std::map<std::size_t, std::size_t> joint_node_map = {};
+
86 } metadata = {};
+
+
87
+
+ +
89 {
+
+ +
91 {
+
92 std::size_t id;
+
93 bool loop = false;
+
94 };
+
+
95 std::optional<std::size_t> playing_animation_id = std::nullopt;
+
96 bool loop = false;
+
97 std::queue<queued_anim> queued_animations = {};
+
98 float time = 0.0f;
+
99 float time_warp = 1.0f;
+
100 } playback = {};
+
+
101
+
102 using keyframe_iterator = std::set<tz::io::gltf_animation::keyframe_data_element>::iterator;
+
103 std::pair<std::size_t, std::size_t> interpolate_animation_keyframes(keyframe_iterator begin, keyframe_iterator end) const;
+
104 };
+
105
+
106 struct object_extra_info
+
107 {
+
108 tz::trs base_transform = {};
+
109 tz::trs animation_trs_offset = {};
+
110 std::string name = "Unnamed Object";
+
111 std::size_t submesh_count = 0;
+
112 bool is_animated = false;
+
113 };
+
114
+
115 virtual void update() override;
+
116 void expand_current_gltf_node(gltf_info& info, std::size_t node_id, std::optional<std::size_t> parent_node_id = std::nullopt, object_handle parent_override = tz::nullhand);
+
117 void node_handle_skins(gltf_info& gltf_info);
+
118 tz::vec2ui32 write_skin_object_data(gltf_info& gltf_info);
+
119 void write_inverse_bind_matrices(gltf_info& gltf_info);
+
120 void resource_write_joint_indices(gltf_info& gltf_info);
+
121 void animation_advance(float delta);
+
122 void shallow_patch_meshes(gltf_info& gltf_info);
+
123 std::vector<mesh_handle> node_handle_meshes(gltf_info& gltf_info);
+
124 std::vector<texture_handle> node_handle_materials(gltf_info& gltf_info);
+
125 void dbgui_tab_animation();
+
126
+
127 std::vector<gltf_info> gltfs = {};
+
128 std::vector<object_extra_info> object_extras = {};
+
129 };
+
+
130}
+
131
+
132#endif // TZ_REN_ANIMATION_HPP
+
Container for enum values, useful for vintage bitfield types.
Definition enum_field.hpp:16
+
Definition handle.hpp:17
+
Definition gltf.hpp:291
+
Definition animation.hpp:10
+
todo: document a two-pass (compute gpu command generation => render) mesh renderer.
Definition mesh.hpp:89
+
vector< std::uint32_t, 2 > vec2ui32
A vector of two 32-bit unsigned ints.
Definition vector.hpp:258
+ + + + + + +
Definition anim.hpp:30
+
Definition trs.hpp:8
+
+ + + + diff --git a/api_2component_8hpp_source.html b/api_2component_8hpp_source.html new file mode 100644 index 0000000000..2cec3d0c0f --- /dev/null +++ b/api_2component_8hpp_source.html @@ -0,0 +1,157 @@ + + + + + + + +Topaz: src/tz/gl/api/component.hpp Source File + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.1.0.1 +
+
C++20 Graphics Engine
+
+
+ + + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+
component.hpp
+
+
+
1#ifndef TOPAZ_GL2_API_COMPONENT_HPP
+
2#define TOPAZ_GL2_API_COMPONENT_HPP
+
3#include "tz/core/data/vector.hpp"
+
4#include "tz/gl/api/resource.hpp"
+
5#include "tz/gl/declare/image_format.hpp"
+
6
+
7namespace tz::gl
+
8{
+
+ +
10 {
+
11 public:
+
12 icomponent() = default;
+
13 virtual ~icomponent() = default;
+
14 virtual const iresource* get_resource() const = 0;
+
15 virtual iresource* get_resource() = 0;
+
16 };
+
+
17
+
18 template<typename T>
+
+
19 concept buffer_component_type = requires(T t, std::size_t sz)
+
20 {
+
21 requires std::derived_from<T, icomponent>;
+
22 {t.size()} -> std::convertible_to<std::size_t>;
+
23 {t.resize(sz)} -> std::same_as<void>;
+
24 };
+
+
25
+
26 template<typename T>
+
+
27 concept image_component_type = requires(T t, tz::vec2ui dims)
+
28 {
+
29 requires std::derived_from<T, icomponent>;
+
30 {t.get_dimensions()[0]} -> std::convertible_to<unsigned int>;
+
31 {t.get_dimensions()[1]} -> std::convertible_to<unsigned int>;
+
32 {t.get_format()} -> std::convertible_to<image_format>;
+
33 {t.resize(dims)} -> std::same_as<void>;
+
34 };
+
+
35}
+
36
+
37#endif // TOPAZ_GL2_API_COMPONENT_HPP
+
Definition component.hpp:10
+
Interface for a renderer or Processor resource.
Definition resource.hpp:80
+
Definition component.hpp:19
+
Definition component.hpp:27
+
vector< unsigned int, 2 > vec2ui
A vector of two unsigned ints.
Definition vector.hpp:244
+
+ + + + diff --git a/api_2device_8hpp_source.html b/api_2device_8hpp_source.html new file mode 100644 index 0000000000..be6cd3715a --- /dev/null +++ b/api_2device_8hpp_source.html @@ -0,0 +1,201 @@ + + + + + + + +Topaz: src/tz/gl/api/device.hpp Source File + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.1.0.1 +
+
C++20 Graphics Engine
+
+
+ + + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+
device.hpp
+
+
+
1#ifndef TOPAZ_GL_2_API_DEVICE_HPP
+
2#define TOPAZ_GL_2_API_DEVICE_HPP
+
3#include "tz/gl/declare/image_format.hpp"
+
4#include "tz/gl/api/renderer.hpp"
+
5#include "tz/gl/api/schedule.hpp"
+
6#include <functional>
+
7#include <type_traits>
+
8
+
9namespace tz::gl
+
10{
+
20 template<typename T, typename R>
+
+
21 concept device_type = requires(T t, R& rinfo, renderer_handle h)
+
22 {
+
23 requires std::is_default_constructible_v<std::decay_t<T>>;
+
24 {t.create_renderer(rinfo)} -> std::same_as<renderer_handle>;
+
25 {t.destroy_renderer(h)} -> std::same_as<void>;
+
26 {t.renderer_count()} -> std::convertible_to<std::size_t>;
+
27 {t.get_renderer(h)} -> renderer_type;
+
28 {t.get_window_format()} -> std::same_as<image_format>;
+
29 {t.dbgui()} -> std::same_as<void>;
+
30 {t.begin_frame()} -> std::same_as<void>;
+
31 {t.end_frame()} -> std::same_as<void>;
+
32 {t.full_wait()} -> std::same_as<void>;
+
33 {t.frame_wait()} -> std::same_as<void>;
+
34 };
+
+
35
+
36 template<renderer_type R>
+
+ +
38 {
+
39 public:
+
40 device_common() = default;
+
41 const R& get_renderer(tz::gl::renderer_handle handle) const;
+
42 R& get_renderer(tz::gl::renderer_handle handle);
+
43 void destroy_renderer(tz::gl::renderer_handle handle);
+
44 std::size_t renderer_count() const;
+
45 const tz::gl::schedule& render_graph() const;
+
46 tz::gl::schedule& render_graph();
+
47 void render();
+
48 // Derived needs to define create_renderer still. They can use emplace_renderer as a helper function.
+
49 protected:
+
50 tz::gl::renderer_handle emplace_renderer(const tz::gl::renderer_info& rinfo);
+
51 void internal_clear();
+
52 void post_add_renderer(std::size_t rid, const tz::gl::renderer_info& rinfo);
+
53 private:
+
54 std::vector<R> renderers;
+
55 std::vector<std::size_t> free_list = {};
+
56 tz::gl::schedule render_schedule = {};
+
57 };
+
+
58
+
59 template<tz::gl::device_type<tz::gl::renderer_info> T>
+
60 void common_device_dbgui(T& device);
+
61
+
62 #if TZ_VULKAN && TZ_OGL
+
63 // Documentation only.
+
+
68 class device
+
69 {
+
70 public:
+ +
83 void destroy_renderer(tz::gl::renderer_handle rh);
+
89 std::size_t renderer_count();
+
96 const tz::gl::renderer& get_renderer(tz::gl::renderer_handle rh) const;
+
103 tz::gl::renderer& get_renderer(tz::gl::renderer_handle rh);
+
104
+ +
110 };
+
+
111 #endif
+
112}
+
113
+
114#include "tz/gl/api/device.inl"
+
115#endif // TOPAZ_GL_2_API_DEVICE_HPP
+
Definition device.hpp:38
+
Implements tz::gl::device_type.
Definition device.hpp:69
+
const tz::gl::renderer & get_renderer(tz::gl::renderer_handle rh) const
Retrieve a reference to the renderer associated with the given handle.
+
void destroy_renderer(tz::gl::renderer_handle rh)
Destroy an existing renderer.
+
tz::gl::renderer_handle create_renderer(tz::gl::renderer_info &rinfo)
Create a new tz::gl::renderer.
+
std::size_t renderer_count()
Retrieve the number of existing renderers.
+
tz::gl::renderer & get_renderer(tz::gl::renderer_handle rh)
Retrieve a reference to the renderer associated with the given handle.
+
tz::gl::image_format get_window_format() const
Retrieve the image format that is being used by the window surface.
+
Helper struct which the user can use to specify which inputs, resources they want and where they want...
Definition renderer.hpp:112
+
Implements tz::gl::renderer_type.
Definition renderer.hpp:398
+
Definition handle.hpp:17
+
Named Requirement: device Implemented by tz_gl2_device.
Definition device.hpp:21
+
Named requirement for a renderer.
Definition renderer.hpp:341
+
tz::handle< detail::renderer_tag > renderer_handle
Represents a handle for a renderer owned by an existing device.
Definition renderer.hpp:27
+
image_format
Various image formats are supported in Topaz.
Definition image_format.hpp:33
+
Definition schedule.hpp:31
+
+ + + + diff --git a/api_2job_8hpp_source.html b/api_2job_8hpp_source.html new file mode 100644 index 0000000000..cd69839851 --- /dev/null +++ b/api_2job_8hpp_source.html @@ -0,0 +1,167 @@ + + + + + + + +Topaz: src/tz/core/job/api/job.hpp Source File + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.1.0.1 +
+
C++20 Graphics Engine
+
+
+ + + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+
job.hpp
+
+
+
1#ifndef TZ_JOB_API_JOB_HPP
+
2#define TZ_JOB_API_JOB_HPP
+
3#include <functional>
+
4#include <optional>
+
5#include "tz/core/data/handle.hpp"
+
6
+
7namespace tz
+
8{
+
9 namespace detail
+
10 {
+ +
12 }
+ +
+ +
19 {
+ +
21 bool owned = false;
+
22 };
+
+
23
+
28 using job_t = std::function<void()>;
+
29
+
30 using worker_id_t = std::size_t;
+
31
+
+ +
38 {
+
40 std::optional<worker_id_t> maybe_worker_affinity = std::nullopt;
+
41 };
+
+
42
+
+ +
44 {
+
45 public:
+
46 virtual ~i_job_system() = default;
+
47 virtual job_handle execute(job_t job, execution_info einfo = {}) = 0;
+
48 virtual void block(job_handle jh) const = 0;
+
49 virtual void block_all() const = 0;
+
50 virtual bool complete(job_handle jh) const = 0;
+
51 virtual std::size_t size() const = 0;
+
52 virtual std::size_t worker_count() const = 0;
+
53 virtual std::vector<worker_id_t> get_worker_ids() const = 0;
+
54 virtual bool any_work_remaining() const = 0;
+
55 };
+
+
56}
+
57
+
58#endif // TZ_JOB_API_JOB_HPP
+
Definition handle.hpp:17
+
Definition job.hpp:44
+
std::function< void()> job_t
Represents a job.
Definition job.hpp:28
+
tz::handle< detail::job_handle_tag > job_handle_data
Represents a job that has begun execution within a job_system_type.
Definition job.hpp:17
+
Definition job.hpp:11
+
Additional optional data about how a job is to be executed.
Definition job.hpp:38
+
std::optional< worker_id_t > maybe_worker_affinity
Assign an affinity to the job execution, meaning that only the worker with the thread id matching the...
Definition job.hpp:40
+
Definition job.hpp:19
+
+ + + + diff --git a/api_2keyboard_8hpp_source.html b/api_2keyboard_8hpp_source.html new file mode 100644 index 0000000000..2f440eed15 --- /dev/null +++ b/api_2keyboard_8hpp_source.html @@ -0,0 +1,144 @@ + + + + + + + +Topaz: src/tz/wsi/api/keyboard.hpp Source File + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.1.0.1 +
+
C++20 Graphics Engine
+
+
+ + + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+
keyboard.hpp
+
+
+
1#ifndef TZ_WSI_API_KEYBOARD_HPP
+
2#define TZ_WSI_API_KEYBOARD_HPP
+
3#include <array>
+
4
+
5namespace tz::wsi
+
6{
+
7 constexpr unsigned int max_simultaneous_key_presses = 64u;
+
+
12 enum class key
+
13 {
+
14 esc,
+
15 f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12, del,
+
16 page_up, page_down, print_screen, scroll_lock, pause, insert,
+
17 one, two, three, four, five, six, seven, eight, nine, zero, minus, equals, backspace, tab, q, w, e, r, t, y, u, i, o, p, left_bracket, right_bracket, enter, caps_lock, a, s, d, f, g, h, j, k, l, semi_colon, apostrophe, hash, left_shift, backslash, z, x, c, v, b, n, m, comma, period, forward_slash, right_shift, left_ctrl, win_key, alt, space, alt_gr, right_ctrl,
+
18 unknown
+
19 };
+
+
20
+
+ +
26 {
+
28 std::array<key, max_simultaneous_key_presses> keys_down;
+
30 mutable key last_key = key::unknown;
+
31
+
35 key pop_last_key() const{key k = this->last_key; this->last_key = key::unknown; return k;}
+
36 };
+
+
37}
+
38
+
39#endif // TZ_WSI_API_KEYBOARD_HPP
+
key
Contains all possible keyboard inputs that Topaz supports.
Definition keyboard.hpp:13
+
Represents the total state of the keyboard and key-presses for a single window.
Definition keyboard.hpp:26
+
key last_key
The last key pressed, or tz::wsi::key::unknown if none.
Definition keyboard.hpp:30
+
std::array< key, max_simultaneous_key_presses > keys_down
List of keys currently pressed. There is an implementation-defined maximum number of keys that can be...
Definition keyboard.hpp:28
+
key pop_last_key() const
Retrieve the last pressed key, and reset that state to key::unknown.
Definition keyboard.hpp:35
+
+ + + + diff --git a/api_2monitor_8hpp_source.html b/api_2monitor_8hpp_source.html new file mode 100644 index 0000000000..5ae9203581 --- /dev/null +++ b/api_2monitor_8hpp_source.html @@ -0,0 +1,130 @@ + + + + + + + +Topaz: src/tz/wsi/api/monitor.hpp Source File + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.1.0.1 +
+
C++20 Graphics Engine
+
+
+ + + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+
monitor.hpp
+
+
+
1#ifndef TZ_WSI_API_MONITOR_HPP
+
2#define TZ_WSI_API_MONITOR_HPP
+
3#include <string>
+
4#include "tz/core/data/vector.hpp"
+
5
+
6namespace tz::wsi
+
7{
+
+
12 struct monitor
+
13 {
+
15 std::string name;
+ +
18 };
+
+
19}
+
20
+
21#endif // TZ_WSI_API_MONITOR_HPP
+
vector< unsigned int, 2 > vec2ui
A vector of two unsigned ints.
Definition vector.hpp:244
+
Represents information about a monitor.
Definition monitor.hpp:13
+
tz::vec2ui dimensions
Dimensions of the monitor, in pixels.
Definition monitor.hpp:17
+
std::string name
Implementation-defined name. Not guaranteed to be unique.
Definition monitor.hpp:15
+
+ + + + diff --git a/api_2mouse_8hpp_source.html b/api_2mouse_8hpp_source.html new file mode 100644 index 0000000000..24aad9e87a --- /dev/null +++ b/api_2mouse_8hpp_source.html @@ -0,0 +1,159 @@ + + + + + + + +Topaz: src/tz/wsi/api/mouse.hpp Source File + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.1.0.1 +
+
C++20 Graphics Engine
+
+
+ + + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+
mouse.hpp
+
+
+
1#ifndef TZ_WSI_API_MOUSE_HPP
+
2#define TZ_WSI_API_MOUSE_HPP
+
3#include "tz/core/data/vector.hpp"
+
4#include <array>
+
5
+
6namespace tz::wsi
+
7{
+
+
12 enum class mouse_button
+
13 {
+
15 left,
+
17 right,
+
19 middle,
+
20 _count
+
21 };
+
+
22
+
+ +
28 {
+
30 clicked,
+ + +
35 };
+
+
36
+
+ +
42 {
+
44 std::array<mouse_button_state, static_cast<int>(mouse_button::_count)> button_state;
+ + +
49 };
+
+
50}
+
51
+
52#endif // TZ_WSI_API_MOUSE_HPP
+
vector< unsigned int, 2 > vec2ui
A vector of two unsigned ints.
Definition vector.hpp:244
+
mouse_button_state
Represents the current state of a mouse_button.
Definition mouse.hpp:28
+
mouse_button
Represents all supported mouse buttons.
Definition mouse.hpp:13
+
@ clicked
Mouse button has been clicked.
+
@ noclicked
Mouse button is not pressed.
+
@ double_clicked
Mouse button has been double-clicked.
+
@ middle
Middle mouse button.
+
@ right
Right mouse button.
+
@ left
Left mouse button.
+
Represents the total state of the mouse for a single window.
Definition mouse.hpp:42
+
tz::vec2ui mouse_position
Current position of the mouse cursor within the window.
Definition mouse.hpp:46
+
std::array< mouse_button_state, static_cast< int >(mouse_button::_count)> button_state
Array of mouse button states against their booleans. Access via button_state[(int)mouse_button::left]...
Definition mouse.hpp:44
+
int wheel_position
Current elevation of the mouse wheel. Increments per scroll-up, decrements per scroll-down.
Definition mouse.hpp:48
+
+ + + + diff --git a/api_2output_8hpp_source.html b/api_2output_8hpp_source.html new file mode 100644 index 0000000000..2aab3f7b84 --- /dev/null +++ b/api_2output_8hpp_source.html @@ -0,0 +1,174 @@ + + + + + + + +Topaz: src/tz/gl/api/output.hpp Source File + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.1.0.1 +
+
C++20 Graphics Engine
+
+
+ + + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+
output.hpp
+
+
+
1#ifndef TOPAZ_GL2_API_OUTPUT_HPP
+
2#define TOPAZ_GL2_API_OUTPUT_HPP
+
3#include "tz/core/memory/clone.hpp"
+
4#include "tz/core/data/vector.hpp"
+
5#include <concepts>
+
6#include <limits>
+
7
+
8namespace tz::gl
+
9{
+
10 enum class output_target
+
11 {
+
12 window,
+
13 offscreen_image
+
14 };
+
15
+
+ +
17 {
+
18 tz::vec2ui offset;
+
19 tz::vec2ui extent;
+
20
+
21 static viewport_region null()
+
22 {
+
23 return {.offset = {0u, 0u}, .extent = {std::numeric_limits<unsigned int>::max(), std::numeric_limits<unsigned int>::max()}};
+
24 }
+
25
+
26 bool operator==(const viewport_region& rhs) const = default;
+
27 };
+
+
28
+
+ +
30 {
+
31 tz::vec2ui offset;
+
32 tz::vec2ui extent;
+
33
+
34 static scissor_region null()
+
35 {
+
36 return {.offset = {0u, 0u}, .extent = {std::numeric_limits<unsigned int>::max(), std::numeric_limits<unsigned int>::max()}};
+
37 }
+
38
+
39 bool operator==(const scissor_region& rhs) const = default;
+
40 };
+
+
41
+
+
42 class ioutput : public tz::unique_cloneable<ioutput>
+
43 {
+
44 public:
+
45 constexpr virtual output_target get_target() const = 0;
+
46 virtual ~ioutput() = default;
+
47
+
48 viewport_region viewport = viewport_region::null();
+
49 scissor_region scissor = scissor_region::null();
+
50 };
+
+
51}
+
52
+
53#endif // TOPAZ_GL2_API_OUTPUT_HPP
+
Definition output.hpp:43
+
Definition clone.hpp:11
+
tz::wsi::window & window()
Retrieve the application window.
Definition tz.cpp:125
+
vector< unsigned int, 2 > vec2ui
A vector of two unsigned ints.
Definition vector.hpp:244
+
Definition output.hpp:30
+
Definition output.hpp:17
+
+ + + + diff --git a/api_2renderer_8hpp_source.html b/api_2renderer_8hpp_source.html new file mode 100644 index 0000000000..1fc9aa1738 --- /dev/null +++ b/api_2renderer_8hpp_source.html @@ -0,0 +1,447 @@ + + + + + + + +Topaz: src/tz/gl/api/renderer.hpp Source File + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.1.0.1 +
+
C++20 Graphics Engine
+
+
+ + + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+
renderer.hpp
+
+
+
1#ifndef TOPAZ_GL2_API_RENDERER_HPP
+
2#define TOPAZ_GL2_API_RENDERER_HPP
+
3
+
4#include "tz/core/data/handle.hpp"
+
5#include "tz/gl/api/output.hpp"
+
6#include "tz/gl/api/resource.hpp"
+
7#include "tz/gl/api/component.hpp"
+
8#include "tz/gl/api/shader.hpp"
+
9#include "tz/core/data/basic_list.hpp"
+
10#include "tz/core/data/enum_field.hpp"
+
11#include "tz/core/data/vector.hpp"
+
12#include <concepts>
+
13#include <variant>
+
14#include <optional>
+
15
+
16namespace tz::gl
+
17{
+
18 namespace detail
+
19 {
+
20 struct renderer_tag{};
+
21 }
+
22
+ +
28
+
+
33 enum class renderer_option
+
34 {
+ + + + + + +
47 // Final debug ui renderer. Do not use.
+
48 _internal_final_dbgui_renderer,
+
49 // Internal renderer. Has no effect aside from hiding it from the dbgui.
+
50 _internal,
+
51 Count
+
52 };
+
+
53 namespace detail
+
54 {
+
55 constexpr std::array<const char*, static_cast<int>(tz::gl::renderer_option::Count)> renderer_option_strings =
+
56 {
+
57 "No Depth Testing",
+
58 "Alpha Blending",
+
59 "Render Wait",
+
60 "No Clear Output",
+
61 "No Present",
+
62 "Final Debug UI renderer (Internal)",
+
63 "Hidden (Internal)",
+
64 };
+
65 }
+
66
+
+ +
72 {
+
+
73 struct Graphics
+
74 {
+
76 resource_handle index_buffer = tz::nullhand;
+
78 resource_handle draw_buffer = tz::nullhand;
+
80 tz::vec4 clear_colour = tz::vec4::zero();
+
82 std::size_t tri_count = 0;
+
84 bool wireframe_mode = false;
+
85 bool operator==(const Graphics& rhs) const = default;
+
86 };
+
+
+
87 struct Compute
+
88 {
+
90 tz::vec3ui kernel = {1u, 1u, 1u};
+
91 bool operator==(const Compute& rhs) const = default;
+
92 };
+
+ + +
97
+
98 bool operator==(const render_state& rhs) const = default;
+
99 };
+
+
100
+ +
106
+
+ +
112 {
+
113 public:
+ +
115 // Satisfies renderer_info_type.
+
119 unsigned int resource_count() const;
+
125 const iresource* get_resource(resource_handle handle);
+
129 std::vector<const iresource*> get_resources() const;
+
130 std::span<const renderer_handle> get_dependencies() const;
+
131 std::span<const icomponent* const> get_components() const;
+
138 resource_handle add_resource(const iresource& resource);
+
142 resource_handle ref_resource(icomponent* component);
+
148 resource_handle ref_resource(renderer_handle ren, resource_handle res);
+
152 void set_output(const ioutput& output);
+
156 const ioutput* get_output() const;
+
160 const renderer_options& get_options() const;
+
164 void set_options(renderer_options options);
+
170 void add_dependency(renderer_handle dependency);
+ +
178 const render_state& state() const;
+ +
186 const shader_info& shader() const;
+
191 void debug_name(std::string debug_name);
+
195 std::string debug_get_name() const;
+
196 private:
+
197 std::size_t real_resource_count() const;
+
199 std::vector<std::unique_ptr<iresource>> resources = {};
+
201 std::vector<icomponent*> components = {};
+
203 std::unique_ptr<ioutput> output = nullptr;
+
205 renderer_options options = {};
+
207 render_state renderer_state = {};
+
209 std::vector<renderer_handle> dependencies = {};
+
211 shader_info sinfo;
+
213 tz::vec4 clear_colour = {0.0f, 0.0f, 0.0f, 1.0f};
+
215 tz::vec3ui compute_kernel = {1u, 1u, 1u};
+
216 std::string dbg_name = "";
+
217 };
+
+
218
+
+ +
220 {
+
+ +
225 {
+
227 resource_handle buffer_handle;
+
229 std::size_t size;
+
230 };
+
+
231
+
+ +
236 {
+
238 resource_handle image_handle;
+ +
241 };
+
+
242
+
+ +
244 {
+
245 resource_handle resource;
+
246 std::span<const std::byte> data = {};
+
247 std::size_t offset = 0;
+
248 };
+
+
249
+
+ +
251 {
+
252 resource_handle resource;
+
253 icomponent* component;
+
254 };
+
+
255
+
+ +
260 {
+ +
263 };
+
+
264
+
+ +
269 {
+
271 std::optional<bool> wireframe_mode = std::nullopt;
+
272 std::optional<tz::vec4> clear_colour = std::nullopt;
+
273 std::optional<std::size_t> tri_count = std::nullopt;
+
274 };
+
+
275
+
+
276 struct scissor
+
277 {
+
278 tz::vec2ui offset = tz::vec2ui::zero();
+
279 tz::vec2ui extent;
+
280 };
+
+
281
+
+ +
283 {
+
284 bool work_commands = true;
+
285 bool buffers = true;
+
286 bool rewrite_statics = true;
+
287 };
+
+
288
+
289 using variant = std::variant<buffer_resize, image_resize, resource_write, resource_reference, compute_config, render_config, scissor, mark_dirty>;
+
290 };
+
+
291
+
298 using renderer_edit_request = std::vector<renderer_edit::variant>;
+
299
+ +
335
+
340 template<typename T>
+
+
341 concept renderer_type = requires(T t, resource_handle r, std::size_t tri_count, const renderer_edit_request& edit_request, const tz::gl::renderer_info& rinfo)
+
342 {
+
343 requires tz::nullable<T>;
+
348 {t.resource_count()} -> std::convertible_to<unsigned int>;
+
354 {t.get_resource(r)} -> std::convertible_to<const iresource*>;
+
360 {t.get_component(r)} -> std::convertible_to<const icomponent*>;
+
366 {t.get_output()} -> std::convertible_to<const ioutput*>;
+
371 {t.get_options()} -> std::convertible_to<renderer_options>;
+
372 {t.get_state()} -> std::convertible_to<render_state>;
+
376 {t.render()} -> std::same_as<void>;
+
383 {t.edit(edit_request)} -> std::same_as<void>;
+
387 {t.dbgui()} -> std::same_as<void>;
+
388 {t.debug_get_name()} -> std::convertible_to<std::string_view>;
+
389 };
+
+
390
+
391 #if TZ_VULKAN && TZ_OGL
+
392 // Documentation only.
+
+ +
398 {
+
399 public:
+
403 unsigned int resource_count() const;
+
410 const iresource* get_resource(tz::gl::resource_handle rh) const;
+
417 iresource* get_resource(tz::gl::resource_handle rh);
+
418
+
423 const ioutput* get_output() const;
+ +
429
+ + +
449 void render();
+
463 void render(std::size_t tri_count);
+
464 };
+
+
465 #endif
+
466}
+
467
+
468#endif // TOPAZ_GL2_API_RENDERER_HPP
+
Container for enum values, useful for vintage bitfield types.
Definition enum_field.hpp:16
+
Helper class which can be used to generate a renderer_edit_request.
Definition renderer.hpp:305
+
RendererEditBuilder & buffer_resize(renderer_edit::buffer_resize req)
Make amendments to an existing buffer resource.
Definition renderer.cpp:26
+
RendererEditBuilder & compute(renderer_edit::compute_config req)
Make amendments to the compute configuration of the renderer.
Definition renderer.cpp:8
+
renderer_edit_request build() const
Retrieve a renderer_edit_request corresponding to all edits specified within the builder so far.
Definition renderer.cpp:56
+
RendererEditBuilder & image_resize(renderer_edit::image_resize req)
Make amendments to an existing image resource.
Definition renderer.cpp:20
+
Definition component.hpp:10
+
Definition output.hpp:43
+
Interface for a renderer or Processor resource.
Definition resource.hpp:80
+
Helper struct which the user can use to specify which inputs, resources they want and where they want...
Definition renderer.hpp:112
+
const renderer_options & get_options() const
Retrieve the currently specified options which will be used by the renderer.
Definition renderer.cpp:134
+
unsigned int resource_count() const
Retrieve the number of resources.
Definition renderer.cpp:69
+
void add_dependency(renderer_handle dependency)
Set the pending renderer to be dependent on the specified renderer.
Definition renderer.cpp:150
+
resource_handle add_resource(const iresource &resource)
Add a new resource, which will be used by a renderer which is created from this helper struct.
Definition renderer.cpp:99
+
void debug_name(std::string debug_name)
Set the debug name of the spawned renderer.
Definition renderer.cpp:175
+
const ioutput * get_output() const
Retrieve the current render output (read-only).
Definition renderer.cpp:129
+
std::string debug_get_name() const
Retrieve the debug name which will be used for the spawned renderer.
Definition renderer.cpp:180
+
std::vector< const iresource * > get_resources() const
Retrieve a span containing all of the specified resources.
Definition renderer.cpp:79
+
void set_output(const ioutput &output)
Renderers always render into something.
Definition renderer.cpp:124
+
resource_handle ref_resource(icomponent *component)
Deprecated.
Definition renderer.cpp:112
+
void set_options(renderer_options options)
Set the currently specified options which will be used by the renderer.
Definition renderer.cpp:139
+
const iresource * get_resource(resource_handle handle)
Retrieve the resource corresponding to the given handle.
Definition renderer.cpp:74
+
render_state & state()
Read/write information about the state of the renderer when it is created.
Definition renderer.cpp:155
+
shader_info & shader()
Read/write information about the shader that will be built for the renderer.
Definition renderer.cpp:165
+
Implements tz::gl::renderer_type.
Definition renderer.hpp:398
+
const iresource * get_resource(tz::gl::resource_handle rh) const
Retrieves a pointer to the resource via its associated handle.
+
void render()
Submit the renderer's work to the GPU.
+
void render(std::size_t tri_count)
Submit the renderer's work to the GPU.
+
tz::gl::renderer_options get_options() const
Retrieve the set of enabled tz::gl::renderer_option flags used by this renderer.
+
const tz::gl::render_state & get_state() const
Retrieve the current render state.
+
unsigned int resource_count() const
Retrieves the number of resources used by the renderer.
+
const ioutput * get_output() const
Retrieve the output that this renderer draws to.
+
ioutput * get_output()
Retrieve the output that this renderer draws to.
+
iresource * get_resource(tz::gl::resource_handle rh)
Retrieves a pointer to the resource via its associated handle.
+
Definition resource.hpp:13
+
Definition shader.hpp:26
+
Definition handle.hpp:17
+
Named requirement for a renderer.
Definition renderer.hpp:341
+
Definition types.hpp:59
+
vector< unsigned int, 3 > vec3ui
A vector of three unsigned ints.
Definition vector.hpp:246
+
vector< float, 4 > vec4
A vector of four floats.
Definition vector.hpp:219
+
vector< unsigned int, 2 > vec2ui
A vector of two unsigned ints.
Definition vector.hpp:244
+
tz::enum_field< renderer_option > renderer_options
Represents a collection of renderer options.
Definition renderer.hpp:105
+
renderer_option
Specifies options to enable extra functionality within Renderers.
Definition renderer.hpp:34
+
tz::handle< detail::renderer_tag > renderer_handle
Represents a handle for a renderer owned by an existing device.
Definition renderer.hpp:27
+
std::vector< renderer_edit::variant > renderer_edit_request
Represents an edit to an existing renderer.
Definition renderer.hpp:298
+ + + + + + +
Definition renderer.hpp:20
+
Definition renderer.hpp:88
+
tz::vec3ui kernel
Represents the compute kernel, which contains the number of workgroups to be launched in the X,...
Definition renderer.hpp:90
+
Definition renderer.hpp:74
+
std::size_t tri_count
number of triangles to be rendered in the next draw call. note@ if a draw_buffer has been specified,...
Definition renderer.hpp:82
+
resource_handle draw_buffer
If a draw-indirect buffer is used, this refers to the buffer resource. It must have resource_flag::dr...
Definition renderer.hpp:78
+
bool wireframe_mode
whether wireframe mode is enabled or not.
Definition renderer.hpp:84
+
resource_handle index_buffer
If an index buffer is used, this refers to the buffer resource. It must have resource_flag::index_buf...
Definition renderer.hpp:76
+
tz::vec4 clear_colour
Normalised RGBA floating point colour.
Definition renderer.hpp:80
+
Stores renderer-specific state, which drives the behaviour of the rendering.
Definition renderer.hpp:72
+
Compute compute
Compute state.
Definition renderer.hpp:96
+
Graphics graphics
Graphics state.
Definition renderer.hpp:94
+
Represents a resize operation for an existing buffer component.
Definition renderer.hpp:225
+
std::size_t size
New size of the buffer, in bytes.
Definition renderer.hpp:229
+
resource_handle buffer_handle
Handle corresponding to the buffer to edit.
Definition renderer.hpp:227
+
Represents an edit, setting a new value for the compute kernel for a renderer.
Definition renderer.hpp:260
+
tz::vec3ui kernel
New compute kernel workgroup dimensions.
Definition renderer.hpp:262
+
Represents a resize operation for an existing image component.
Definition renderer.hpp:236
+
tz::vec2ui dimensions
New dimensions of the image, in pixels.
Definition renderer.hpp:240
+
resource_handle image_handle
Handle corresponding to the image to edit.
Definition renderer.hpp:238
+
Definition renderer.hpp:283
+
Represents an edit to the fixed-function renderer state.
Definition renderer.hpp:269
+
std::optional< bool > wireframe_mode
Whether triangles should only have their outlines drawn, instead of filled.
Definition renderer.hpp:271
+ +
Definition renderer.hpp:244
+
Definition renderer.hpp:277
+
Definition renderer.hpp:220
+
+ + + + diff --git a/api_2resource_8hpp_source.html b/api_2resource_8hpp_source.html new file mode 100644 index 0000000000..7a5f863661 --- /dev/null +++ b/api_2resource_8hpp_source.html @@ -0,0 +1,225 @@ + + + + + + + +Topaz: src/tz/gl/api/resource.hpp Source File + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.1.0.1 +
+
C++20 Graphics Engine
+
+
+ + + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+
resource.hpp
+
+
+
1#ifndef TOPAZ_GL2_API_RESOURCE_HPP
+
2#define TOPAZ_GL2_API_RESOURCE_HPP
+
3#include "tz/core/memory/clone.hpp"
+
4#include "tz/core/data/handle.hpp"
+
5#include "tz/core/data/enum_field.hpp"
+
6#include <span>
+
7#include <memory>
+
8
+
9namespace tz::gl
+
10{
+
11
+
+
16 enum class resource_type
+
17 {
+
19 buffer,
+
21 image
+
22 };
+
+
23
+ +
53
+
54 using resource_flags = tz::enum_field<resource_flag>;
+
55
+
+
60 enum class resource_access
+
61 {
+ + +
66 Count
+
67 };
+
+
68
+
+
79 class iresource : public tz::unique_cloneable<iresource>
+
80 {
+
81 public:
+
82 iresource() = default;
+
83 virtual ~iresource() = default;
+
87 virtual resource_type get_type() const = 0;
+
92 virtual resource_access get_access() const = 0;
+
96 virtual std::span<const std::byte> data() const = 0;
+
101 virtual std::span<std::byte> data() = 0;
+
102
+
+
107 template<typename T> std::span<const T> data_as() const
+
108 {
+
109 const std::byte* byte_data = this->data().data();
+
110 return {reinterpret_cast<const T*>(byte_data), this->data().size_bytes() / sizeof(T)};
+
111 }
+
+
112
+
+
117 template<typename T> std::span<T> data_as()
+
118 {
+
119 std::byte* byte_data = this->data().data();
+
120 return {reinterpret_cast<T*>(byte_data), this->data().size_bytes() / sizeof(T)};
+
121 }
+
+
122
+
123 virtual void set_mapped_data(std::span<std::byte> resource_data) = 0;
+
124
+
128 virtual const resource_flags& get_flags() const = 0;
+
129
+
133 virtual void dbgui() = 0;
+
134 };
+
+
135
+
137 using resource_handle = tz::handle<iresource>;
+
138}
+
139
+
140#endif // TOPAZ_GL2_API_RESOURCE_HPP
+
Container for enum values, useful for vintage bitfield types.
Definition enum_field.hpp:16
+
Interface for a renderer or Processor resource.
Definition resource.hpp:80
+
virtual resource_access get_access() const =0
Retrieve access information about this resource when used in a renderer or Processor.
+
std::span< const T > data_as() const
Retrieve a read+write view into the resource data, interpreted as an array of some type.
Definition resource.hpp:107
+
virtual resource_type get_type() const =0
Retrieve the type of the resource.
+
virtual std::span< std::byte > data()=0
Retrieve a read+write view into the resource data.
+
virtual void dbgui()=0
Display debug information about the resource.
+
virtual const resource_flags & get_flags() const =0
Retrieve a field containing all flags applied to this resource.
+
virtual std::span< const std::byte > data() const =0
Retrieve a read-only view into the resource data.
+
std::span< T > data_as()
Retrieve a read+write view into the resource data, interpreted as an array of some type.
Definition resource.hpp:117
+
Definition handle.hpp:17
+
Definition clone.hpp:11
+
resource_type
Specifies the type of the resource; which is how a renderer or Processor will interpret the usage of ...
Definition resource.hpp:17
+
resource_flag
Specifies optional flags which affect the behaviour of a resource in some way.
Definition resource.hpp:29
+
resource_access
Describes the manner in which a resource can be read or written to, when owned by a renderer or Proce...
Definition resource.hpp:61
+ + + + + + + + + + + + + + +
+ + + + diff --git a/api_2shader_8hpp_source.html b/api_2shader_8hpp_source.html new file mode 100644 index 0000000000..1b8bebfb69 --- /dev/null +++ b/api_2shader_8hpp_source.html @@ -0,0 +1,157 @@ + + + + + + + +Topaz: src/tz/gl/api/shader.hpp Source File + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.1.0.1 +
+
C++20 Graphics Engine
+
+
+ + + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+
shader.hpp
+
+
+
1#ifndef TOPAZ_GL2_API_SHADER_HPP
+
2#define TOPAZ_GL2_API_SHADER_HPP
+
3#include <string>
+
4#include <string_view>
+
5#include <array>
+
6
+
7namespace tz::gl
+
8{
+
9 enum class shader_stage
+
10 {
+
11 vertex,
+
12 fragment,
+
13 compute,
+
14 tessellation_control,
+
15 tessellation_evaluation,
+
16
+
17 _count
+
18 };
+
19
+
+ +
21 {
+
22
+
23 };
+
+
24
+
+ +
26 {
+
27 public:
+ +
29
+
30 void set_shader(shader_stage stage, std::string_view source);
+
31 std::string_view get_shader(shader_stage stage) const;
+
32 bool has_shader(shader_stage stage) const;
+
33
+
34 void set_meta(shader_stage stage, shader_meta meta);
+
35 const shader_meta& get_meta(shader_stage stage) const;
+
36 private:
+
37 std::array<std::string, static_cast<int>(shader_stage::_count)> source_data;
+
38 std::array<shader_meta, static_cast<int>(shader_stage::_count)> meta_data;
+
39 };
+
+
40}
+
41
+
42#endif // TOPAZ_GL2_API_SHADER_HPP
+
Definition shader.hpp:26
+
Definition shader.hpp:21
+
+ + + + diff --git a/api_2window_8hpp_source.html b/api_2window_8hpp_source.html new file mode 100644 index 0000000000..0f20ebaf56 --- /dev/null +++ b/api_2window_8hpp_source.html @@ -0,0 +1,190 @@ + + + + + + + +Topaz: src/tz/wsi/api/window.hpp Source File + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.1.0.1 +
+
C++20 Graphics Engine
+
+
+ + + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+
window.hpp
+
+
+
1#ifndef TZ_WSI_API_WINDOW_HPP
+
2#define TZ_WSI_API_WINDOW_HPP
+
3#include "tz/wsi/api/keyboard.hpp"
+
4#include "tz/wsi/api/mouse.hpp"
+
5#include "tz/core/data/vector.hpp"
+
6#if TZ_VULKAN
+
7#ifdef _WIN32
+
8#define VK_USE_PLATFORM_WIN32_KHR
+
9#elif defined(__linux__)
+
10#define VK_USE_PLATFORM_XLIB_KHR
+
11#else
+
12static_assert("Platform not supported for a vulkan build.");
+
13#endif
+
14#include <vulkan/vulkan.h>
+
15#endif // TZ_VULKAN
+
16
+
17namespace tz::wsi
+
18{
+
+
23 namespace window_flag
+
24 {
+
25 using flag_bit = int;
+
26 static constexpr flag_bit
+
28 none = 0x00,
+
30 opengl = 0x01 << 0,
+
32 transparent = 0x01 << 1,
+
34 undecorated = 0x01 << 2,
+
36 bare = 0x01 << 3,
+
38 noresize = 0x01 << 4,
+
40 nomaximise = 0x01 << 5,
+
42 nominimise = 0x01 << 6,
+
44 invisible = 0x01 << 7;
+
45 }
+
+
46
+
+ +
52 {
+
54 const char* title = "Untitled";
+
56 tz::vec2ui dimensions = {800u, 600u};
+
58 window_flag::flag_bit window_flags = window_flag::none;
+
59 };
+
+
60
+
65 template<typename T>
+
+
66 concept window_api = requires(T t, tz::vec2ui dims, void* addr, std::string str
+
67 #if TZ_VULKAN
+
68 , VkInstance vkinst
+
69 #endif
+
70 )
+
71 {
+
72 typename T::native;
+
73 {t.get_native()} -> std::convertible_to<typename T::native>;
+
74 {t.request_close()} -> std::same_as<void>;
+
75 {t.is_close_requested()} -> std::same_as<bool>;
+
76 {t.get_dimensions()} -> std::same_as<tz::vec2ui>;
+
77 {t.set_dimensions(dims)} -> std::same_as<void>;
+
78 {t.get_title()} -> std::convertible_to<std::string>;
+
79 {t.set_title(str)} -> std::same_as<void>;
+
80 {t.get_flags()} -> std::convertible_to<window_flag::flag_bit>;
+
81 {t.update()} -> std::same_as<void>;
+
82 {t.make_opengl_context_current()} -> std::same_as<bool>;
+
83 #if TZ_VULKAN
+
84 {t.make_vulkan_surface(vkinst)} -> std::convertible_to<VkSurfaceKHR>;
+
85 #endif // TZ_VULKAN
+
86 {t.get_keyboard_state()} -> std::convertible_to<keyboard_state>;
+
87 {t.get_mouse_state()} -> std::convertible_to<mouse_state>;
+
88 {t.get_user_data()} -> std::convertible_to<void*>;
+
89 {t.set_user_data(addr)} -> std::same_as<void>;
+
90 };
+
+
91}
+
92
+
93#endif // TZ_WSI_API_WINDOW_HPP
+
Represents an API for a window.
Definition window.hpp:66
+
vector< unsigned int, 2 > vec2ui
A vector of two unsigned ints.
Definition vector.hpp:244
+
Specifies creation flags for a wsi::window.
Definition window.hpp:52
+
const char * title
Title of the window. Default is "Untitled".
Definition window.hpp:54
+
window_flag::flag_bit window_flags
Extra behaviour for the window. Default is none.
Definition window.hpp:58
+
tz::vec2ui dimensions
Dimensions of the window, in pixels. Default is 800x600.
Definition window.hpp:56
+
+ + + + diff --git a/api_8hpp_source.html b/api_8hpp_source.html new file mode 100644 index 0000000000..1e1b16af5d --- /dev/null +++ b/api_8hpp_source.html @@ -0,0 +1,139 @@ + + + + + + + +Topaz: src/tz/lua/api.hpp Source File + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.1.0.1 +
+
C++20 Graphics Engine
+
+
+ + + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+
api.hpp
+
+
+
1#ifndef TZ_LUA_API_HPP
+
2#define TZ_LUA_API_HPP
+
3#include "tz/lua/state.hpp"
+
4#include "tz/core/debug.hpp"
+
5
+
6
+
7// `s` == underlying lua_State*. `state` == tz::lua::state
+
8#define LUA_BEGIN(name) int luafn_##name(void* s){tz::lua::state state{s};
+
9
+
10#define LUA_END }
+
11#define LUA_REGISTER_ALL(name) tz::lua::for_all_states([](tz::lua::state& s){s.assign_func(#name, luafn_##name);});
+
12#define LUA_REGISTER_ONE(name, state) s.assign_func(#name, luafn_##name)
+
13#define LUA_FN_NAME(name) luafn_##name
+
14
+
15namespace tz::lua
+
16{
+
17 void api_initialise(state& s);
+
18}
+
19
+
20// example: define in a TU
+
21//LUA_BEGIN(test_me_please)
+
22// tz::report("test successful!");
+
23// return 0;
+
24//LUA_END
+
25
+
26// usage: somewhere during runtime, invoke:
+
27// LUA_REGISTER_ALL(test_me_please)
+
28// which makes the function resident to all lua states on both the main thread and the job system worker threads.
+
29
+
30#endif // TZ_LUA_API_HPP
+
+ + + + diff --git a/apple-touch-icon.png b/apple-touch-icon.png new file mode 100644 index 0000000000..15b2e08ca3 Binary files /dev/null and b/apple-touch-icon.png differ diff --git a/basic__list_8hpp_source.html b/basic__list_8hpp_source.html new file mode 100644 index 0000000000..39a6ad9c7b --- /dev/null +++ b/basic__list_8hpp_source.html @@ -0,0 +1,351 @@ + + + + + + + +Topaz: src/tz/core/data/basic_list.hpp Source File + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.1.0.1 +
+
C++20 Graphics Engine
+
+
+ + + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+
basic_list.hpp
+
+
+
1#ifndef TOPAZ_GL_VK_COMMON_BASIC_LIST_HPP
+
2#define TOPAZ_GL_VK_COMMON_BASIC_LIST_HPP
+
3#include "tz/core/debug.hpp"
+
4#include <initializer_list>
+
5#include <vector>
+
6#include <algorithm>
+
7#include <span>
+
8
+
9namespace tz
+
10{
+
19 template<typename T, typename Allocator = std::allocator<T>>
+
+ +
21 {
+
22 private:
+
23 using UnderlyingList = std::vector<T, Allocator>;
+
24 UnderlyingList elements;
+
25 public:
+
26 using Iterator = typename UnderlyingList::iterator;
+
27 using ConstIterator = typename UnderlyingList::const_iterator;
+
28
+
+
32 basic_list(std::initializer_list<T> elements):
+
33 elements(elements){}
+
+
37 basic_list() = default;
+
38
+
+
43 operator std::span<const T>() const
+
44 {
+
45 return static_cast<std::span<const T>>(this->elements);
+
46 }
+
+
47
+
+
52 T& front()
+
53 {
+
54 return this->elements.front();
+
55 }
+
+
56
+
+
61 const T& front() const
+
62 {
+
63 return this->elements.front();
+
64 }
+
+
65
+
66
+
+
71 T& back()
+
72 {
+
73 return this->elements.back();
+
74 }
+
+
75
+
+
80 const T& back() const
+
81 {
+
82 return this->elements.back();
+
83 }
+
+
84
+
+
88 void add(const T& element)
+
89 {
+
90 this->elements.push_back(element);
+
91 }
+
+
92
+
+
96 void add(T&& element)
+
97 {
+
98 this->elements.push_back(std::forward<T>(element));
+
99 }
+
+
100
+
106 template<typename... Args>
+
+
107 T& emplace(Args&&... args)
+
108 {
+
109 return this->elements.emplace_back(std::forward<Args>(args)...);
+
110 }
+
+
111
+
+
116 void append(const basic_list<T>& other)
+
117 {
+
118 this->elements.insert(this->elements.end(), other.elements.begin(), other.elements.end());
+
119 }
+
+
120
+
125 template<typename InputIt>
+
+
126 Iterator append_range(InputIt first, InputIt last)
+
127 {
+
128 return this->elements.insert(this->elements.end(), first, last);
+
129 }
+
+
130
+
+
135 bool contains(T element) const
+
136 {
+
137 return std::find(this->elements.begin(), this->elements.end(), element) != this->elements.end();
+
138 }
+
+
139
+
+
143 Iterator begin()
+
144 {
+
145 return this->elements.begin();
+
146 }
+
+
147
+
+
151 Iterator end()
+
152 {
+
153 return this->elements.end();
+
154 }
+
+
155
+
+
159 ConstIterator begin() const
+
160 {
+
161 return this->elements.begin();
+
162 }
+
+
163
+
+
167 ConstIterator end() const
+
168 {
+
169 return this->elements.end();
+
170 }
+
+
171
+
+
175 auto length() const
+
176 {
+
177 return this->elements.size();
+
178 }
+
+
179
+
+
184 bool empty() const
+
185 {
+
186 return this->elements.empty();
+
187 }
+
+
188
+
+
192 const T* data() const
+
193 {
+
194 return this->elements.data();
+
195 }
+
+
196
+
+
200 T* data()
+
201 {
+
202 return this->elements.data();
+
203 }
+
+
204
+
+
211 const T& operator[](std::size_t index) const
+
212 {
+
213 tz::assert(this->length() > index, "tz::basic_list<T>::operator[%zu]: Out of range (length = %zu)", index, this->length());
+
214 return this->elements[index];
+
215 }
+
+
216
+
+
223 T& operator[](std::size_t index)
+
224 {
+
225 tz::assert(this->length() > index, "tz::basic_list<T>::operator[%zu]: Out of range (length = %zu)", index, this->length());
+
226 return this->elements[index];
+
227 }
+
+
228
+
229 auto operator<=>(const tz::basic_list<T, Allocator>& rhs) const = default;
+
230
+
+
236 Iterator erase(Iterator position)
+
237 {
+
238 return this->elements.erase(position);
+
239 }
+
+
240
+
+
247 Iterator erase(Iterator first, Iterator last)
+
248 {
+
249 return this->elements.erase(first, last);
+
250 }
+
+
251
+
+
255 void clear()
+
256 {
+
257 this->elements.clear();
+
258 }
+
+
259
+
+
263 void resize(std::size_t num_elements)
+
264 {
+
265 this->elements.resize(num_elements);
+
266 }
+
+
267 };
+
+
268
+
272}
+
273
+
274#endif // TOPAZ_GL_VK_COMMON_BASIC_LIST_HPP
+
Custom list, feature subset of std::vector.
Definition basic_list.hpp:21
+
void resize(std::size_t num_elements)
Resize the list, matches the behaviour of std::vector<T>::erase(num_elements).
Definition basic_list.hpp:263
+
const T & operator[](std::size_t index) const
Retrieve the element at a given index.
Definition basic_list.hpp:211
+
bool contains(T element) const
Query as to whether the list contains a given element.
Definition basic_list.hpp:135
+
void append(const basic_list< T > &other)
Copy the elements of another list to the end of this list.
Definition basic_list.hpp:116
+
Iterator end()
Retrieve an iterator to the end of the list.
Definition basic_list.hpp:151
+
const T * data() const
Retrieve a pointer to the first element of the list.
Definition basic_list.hpp:192
+
void add(T &&element)
Add the provided value to the back of the list.
Definition basic_list.hpp:96
+
void add(const T &element)
Add a copy of the provided value to the back of the list.
Definition basic_list.hpp:88
+
void clear()
Erase the entire list, making it empty again and destroying everything inside.
Definition basic_list.hpp:255
+
ConstIterator end() const
Retrieve an iterator to the end of the list.
Definition basic_list.hpp:167
+
Iterator erase(Iterator first, Iterator last)
Erase the range of elements bounded within the provided iterator range.
Definition basic_list.hpp:247
+
const T & back() const
Retrieve the last element of the list.
Definition basic_list.hpp:80
+
bool empty() const
Query as to whether the list is empty or not.
Definition basic_list.hpp:184
+
basic_list(std::initializer_list< T > elements)
Construct a basic_list using existing elements via copy.
Definition basic_list.hpp:32
+
const T & front() const
Retrieve the first elements of the list.
Definition basic_list.hpp:61
+
basic_list()=default
Construct an empty basic_list.
+
ConstIterator begin() const
Retrieve an iterator to the beginning of the list.
Definition basic_list.hpp:159
+
T & front()
Retrieve the first elements of the list.
Definition basic_list.hpp:52
+
Iterator begin()
Retrieve an iterator to the beginning of the list.
Definition basic_list.hpp:143
+
auto length() const
Retrive the number of elements in the list.
Definition basic_list.hpp:175
+
T & back()
Retrieve the last element of the list.
Definition basic_list.hpp:71
+
T & operator[](std::size_t index)
Retrieve the element at a given index.
Definition basic_list.hpp:223
+
Iterator append_range(InputIt first, InputIt last)
Copy the range of elements to the end of this list.
Definition basic_list.hpp:126
+
T & emplace(Args &&... args)
Create a new value in-place at the end of the list.
Definition basic_list.hpp:107
+
Iterator erase(Iterator position)
Erase the element at the given position.
Definition basic_list.hpp:236
+
T * data()
Retrieve a pointer to the first element of the list.
Definition basic_list.hpp:200
+
void assert(bool condition, detail::format_string fmt="<No message>", Args &&... args)
Assert on a condition.
Definition debug.inl:33
+
+ + + + diff --git a/bc_s.png b/bc_s.png new file mode 100644 index 0000000000..224b29aa98 Binary files /dev/null and b/bc_s.png differ diff --git a/bc_sd.png b/bc_sd.png new file mode 100644 index 0000000000..31ca888dc7 Binary files /dev/null and b/bc_sd.png differ diff --git a/browserconfig.xml b/browserconfig.xml new file mode 100644 index 0000000000..b3930d0f04 --- /dev/null +++ b/browserconfig.xml @@ -0,0 +1,9 @@ + + + + + + #da532c + + + diff --git a/callback_8hpp_source.html b/callback_8hpp_source.html new file mode 100644 index 0000000000..6fc814eb86 --- /dev/null +++ b/callback_8hpp_source.html @@ -0,0 +1,177 @@ + + + + + + + +Topaz: src/tz/core/callback.hpp Source File + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.1.0.1 +
+
C++20 Graphics Engine
+
+
+ + + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+
callback.hpp
+
+
+
1#ifndef TOPAZ_CORE_CALLBACK_HPP
+
2#define TOPAZ_CORE_CALLBACK_HPP
+
3#include "tz/core/data/handle.hpp"
+
4#include "tz/core/types.hpp"
+
5#include <vector>
+
6#include <functional>
+
7
+
8namespace tz
+
9{
+
10 namespace detail
+
11 {
+
12 struct callback_type{};
+
13 }
+ +
19
+
29 template<typename... Args>
+
+ +
31 {
+
32 public:
+
36 callback() = default;
+
+ +
43 {
+
44 this->callback_storage.push_back(callback_function);
+
45 return static_cast<tz::hanval>(this->callback_storage.size() - 1);
+
46 }
+
+
+ +
53 {
+
54 std::size_t handle_value = static_cast<std::size_t>(static_cast<tz::hanval>(handle));
+
55 this->callback_storage[handle_value] = nullptr;
+
56 }
+
+
+
61 void operator()(Args... args) const
+
62 {
+
63 for(const auto& callback_func : this->callback_storage)
+
64 {
+
65 if(callback_func != nullptr)
+
66 {
+
67 callback_func(std::forward<Args>(args)...);
+
68 }
+
69 }
+
70 }
+
+
71
+
72 bool empty() const
+
73 {
+
74 return this->callback_storage.empty();
+
75 }
+
76 private:
+
77 std::vector<std::function<void(Args...)>> callback_storage = {};
+
78 };
+
+
79}
+
80
+
81#endif // TOPAZ_CORE_CALLBACK_HPP
+
Represents a centralised storage/management of callback functions of a common signature void(Args....
Definition callback.hpp:31
+
callback()=default
Create an empty callback object with no registered callables.
+
callback_handle add_callback(tz::action< Args... > auto &&callback_function)
Register a new callable with this callback object.
Definition callback.hpp:42
+
void operator()(Args... args) const
Invoke the callback object, calling all registered callbacks with the provided aerguments.
Definition callback.hpp:61
+
void remove_callback(callback_handle handle)
Deregister a callable that was registered by this callback object at some point in the past.
Definition callback.hpp:52
+
Definition handle.hpp:17
+
Just like a tz::function, except will never return anything.
Definition types.hpp:47
+
tz::handle< detail::callback_type > callback_handle
Opaque handle representing a reference to an existing tz::callback function.
Definition callback.hpp:18
+
Definition callback.hpp:12
+
+ + + + diff --git a/classtz_1_1_interface_iterator.html b/classtz_1_1_interface_iterator.html new file mode 100644 index 0000000000..1d0b21b3e1 --- /dev/null +++ b/classtz_1_1_interface_iterator.html @@ -0,0 +1,104 @@ + + + + + + + +Topaz: tz::InterfaceIterator< T > Class Template Reference + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.1.0.1 +
+
C++20 Graphics Engine
+
+
+ + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+
tz::InterfaceIterator< T > Class Template Reference
+
+
+
+ + + + diff --git a/classtz_1_1_polymorphic_list.html b/classtz_1_1_polymorphic_list.html new file mode 100644 index 0000000000..bf53743e09 --- /dev/null +++ b/classtz_1_1_polymorphic_list.html @@ -0,0 +1,263 @@ + + + + + + + +Topaz: tz::PolymorphicList< T, Allocator > Class Template Reference + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.1.0.1 +
+
C++20 Graphics Engine
+
+
+ + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+
+Public Member Functions
+
tz::PolymorphicList< T, Allocator > Class Template Reference
+
+
+ +

#include <polymorphic_list.hpp>

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Public Member Functions

PolymorphicList ()=default
 Create an empty list.
 
template<typename Derived , typename... Args>
Reference emplace (Args &&... args)
 Add a new element to the back of the list.
 
+Iterator begin ()
 Retrieve the begin interator.
 
+Iterator end ()
 Retrieve the end interator.
 
+Iterator begin () const
 Retrieve the begin interator.
 
+Iterator end () const
 Retrieve the begin interator.
 
std::size_t size () const
 Retrieve the number of elements.
 
+void clear ()
 Remove all elements from the list.
 
const T & operator[] (std::size_t idx) const
 Retrieve a base-class reference to the element at the given index.
 
T & operator[] (std::size_t idx)
 Retrieve a base-class reference to the element at the given index.
 
+

Detailed Description

+
template<typename T, typename Allocator = std::allocator<std::unique_ptr<T>>>
+class tz::PolymorphicList< T, Allocator >
Template Parameters
+ + +
TCommon base type. List of elements, where all elements inherit from a common type but may be different types within themselves.
+
+
+

Member Function Documentation

+ +

◆ emplace()

+ +
+
+
+template<typename T , typename Allocator >
+
+template<typename Derived , typename... Args>
+ + + + + + + + +
PolymorphicList< T, Allocator >::Reference tz::PolymorphicList< T, Allocator >::emplace (Args &&... args)
+
+ +

Add a new element to the back of the list.

+
Template Parameters
+ + + +
DerivedType of the element to construct. It must be a subtype of T.
ArgsTypes used to construct the new Derived element.
+
+
+
Parameters
+ + +
argsArgument values for construction.
+
+
+ +
+
+ +

◆ operator[]() [1/2]

+ +
+
+
+template<typename T , typename Allocator >
+ + + + + + + + +
T & tz::PolymorphicList< T, Allocator >::operator[] (std::size_t idx)
+
+ +

Retrieve a base-class reference to the element at the given index.

+
Precondition
idx < this->size(), otherwise the behaviour is undefined.
+ +
+
+ +

◆ operator[]() [2/2]

+ +
+
+
+template<typename T , typename Allocator >
+ + + + + + + + +
const T & tz::PolymorphicList< T, Allocator >::operator[] (std::size_t idx) const
+
+ +

Retrieve a base-class reference to the element at the given index.

+

Read-only.

Precondition
idx < this->size(), otherwise the behaviour is undefined.
+ +
+
+ +

◆ size()

+ +
+
+
+template<typename T , typename Allocator >
+ + + + + + + +
std::size_t tz::PolymorphicList< T, Allocator >::size () const
+
+ +

Retrieve the number of elements.

+
Returns
number of elements within the list.
+ +
+
+
+ + + + diff --git a/classtz_1_1allocator__adapter.html b/classtz_1_1allocator__adapter.html new file mode 100644 index 0000000000..232e8523bc --- /dev/null +++ b/classtz_1_1allocator__adapter.html @@ -0,0 +1,120 @@ + + + + + + + +Topaz: tz::allocator_adapter< T, A > Class Template Reference + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.1.0.1 +
+
C++20 Graphics Engine
+
+
+ + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+
tz::allocator_adapter< T, A > Class Template Reference
+
+
+ +

A meta-allocator which allows a tz allocator to be used as if it were a std::allocator. + More...

+ +

#include <adapter.hpp>

+
+Inheritance diagram for tz::allocator_adapter< T, A >:
+
+
+ +
+

Detailed Description

+
template<typename T, tz::allocator A>
+class tz::allocator_adapter< T, A >

A meta-allocator which allows a tz allocator to be used as if it were a std::allocator.

+

This means it can be used for standard-library containers.

+

For instance: std::vector<int, std::allocator<int>> is functionally equivalent to std::vector<int, tz::allocator_adapter<int, tz::Mallocator>>

+
+ + + + diff --git a/classtz_1_1allocator__adapter.png b/classtz_1_1allocator__adapter.png new file mode 100644 index 0000000000..fce2d9b509 Binary files /dev/null and b/classtz_1_1allocator__adapter.png differ diff --git a/classtz_1_1basic__list.html b/classtz_1_1basic__list.html new file mode 100644 index 0000000000..8e58f997f3 --- /dev/null +++ b/classtz_1_1basic__list.html @@ -0,0 +1,741 @@ + + + + + + + +Topaz: tz::basic_list< T, Allocator > Class Template Reference + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.1.0.1 +
+
C++20 Graphics Engine
+
+
+ + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+
+Public Member Functions
+
tz::basic_list< T, Allocator > Class Template Reference
+
+
+ +

Custom list, feature subset of std::vector. + More...

+ +

#include <basic_list.hpp>

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Public Member Functions

basic_list (std::initializer_list< T > elements)
 Construct a basic_list using existing elements via copy.
 
basic_list ()=default
 Construct an empty basic_list.
 
 operator std::span< const T > () const
 Retrieve a span over the entire list.
 
T & front ()
 Retrieve the first elements of the list.
 
const T & front () const
 Retrieve the first elements of the list.
 
T & back ()
 Retrieve the last element of the list.
 
const T & back () const
 Retrieve the last element of the list.
 
+void add (const T &element)
 Add a copy of the provided value to the back of the list.
 
+void add (T &&element)
 Add the provided value to the back of the list.
 
template<typename... Args>
T & emplace (Args &&... args)
 Create a new value in-place at the end of the list.
 
void append (const basic_list< T > &other)
 Copy the elements of another list to the end of this list.
 
template<typename InputIt >
Iterator append_range (InputIt first, InputIt last)
 Copy the range of elements to the end of this list.
 
bool contains (T element) const
 Query as to whether the list contains a given element.
 
+Iterator begin ()
 Retrieve an iterator to the beginning of the list.
 
+Iterator end ()
 Retrieve an iterator to the end of the list.
 
+ConstIterator begin () const
 Retrieve an iterator to the beginning of the list.
 
+ConstIterator end () const
 Retrieve an iterator to the end of the list.
 
+auto length () const
 Retrive the number of elements in the list.
 
bool empty () const
 Query as to whether the list is empty or not.
 
const T * data () const
 Retrieve a pointer to the first element of the list.
 
+T * data ()
 Retrieve a pointer to the first element of the list.
 
const T & operator[] (std::size_t index) const
 Retrieve the element at a given index.
 
T & operator[] (std::size_t index)
 Retrieve the element at a given index.
 
Iterator erase (Iterator position)
 Erase the element at the given position.
 
Iterator erase (Iterator first, Iterator last)
 Erase the range of elements bounded within the provided iterator range.
 
+void clear ()
 Erase the entire list, making it empty again and destroying everything inside.
 
+void resize (std::size_t num_elements)
 Resize the list, matches the behaviour of std::vector<T>::erase(num_elements).
 
+

Detailed Description

+
template<typename T, typename Allocator = std::allocator<T>>
+class tz::basic_list< T, Allocator >

Custom list, feature subset of std::vector.

+

Should be used when a list of contiguous elements is required to be exposed via an API. We never want to expose standard library containers (aside from span).

Template Parameters
+ + + +
TElement type.
AllocatorAllocator type.
+
+
+

Member Function Documentation

+ +

◆ append()

+ +
+
+
+template<typename T , typename Allocator = std::allocator<T>>
+ + + + + +
+ + + + + + + + +
void tz::basic_list< T, Allocator >::append (const basic_list< T > & other)
+
+inline
+
+ +

Copy the elements of another list to the end of this list.

+
Parameters
+ + +
otherSecond list whose elements should be appended to the end of this list.
+
+
+ +
+
+ +

◆ append_range()

+ +
+
+
+template<typename T , typename Allocator = std::allocator<T>>
+
+template<typename InputIt >
+ + + + + +
+ + + + + + + + + + + + + + + + + + +
Iterator tz::basic_list< T, Allocator >::append_range (InputIt first,
InputIt last 
)
+
+inline
+
+ +

Copy the range of elements to the end of this list.

+
Returns
Iterator pointing to the first element inserted, or the end of the list if the range was empty.
+ +
+
+ +

◆ back() [1/2]

+ +
+
+
+template<typename T , typename Allocator = std::allocator<T>>
+ + + + + +
+ + + + + + + +
T & tz::basic_list< T, Allocator >::back ()
+
+inline
+
+ +

Retrieve the last element of the list.

+
Precondition
List must not be empty, otherwise the behaviour is undefined.
+ +
+
+ +

◆ back() [2/2]

+ +
+
+
+template<typename T , typename Allocator = std::allocator<T>>
+ + + + + +
+ + + + + + + +
const T & tz::basic_list< T, Allocator >::back () const
+
+inline
+
+ +

Retrieve the last element of the list.

+

Read-only.

Precondition
List must not be empty, otherwise the behaviour is undefined.
+ +
+
+ +

◆ contains()

+ +
+
+
+template<typename T , typename Allocator = std::allocator<T>>
+ + + + + +
+ + + + + + + + +
bool tz::basic_list< T, Allocator >::contains (element) const
+
+inline
+
+ +

Query as to whether the list contains a given element.

+
Returns
True if the element is within the list (equality comparison), otherwise false.
+ +
+
+ +

◆ data()

+ +
+
+
+template<typename T , typename Allocator = std::allocator<T>>
+ + + + + +
+ + + + + + + +
const T * tz::basic_list< T, Allocator >::data () const
+
+inline
+
+ +

Retrieve a pointer to the first element of the list.

+

Read-only.

+ +
+
+ +

◆ emplace()

+ +
+
+
+template<typename T , typename Allocator = std::allocator<T>>
+
+template<typename... Args>
+ + + + + +
+ + + + + + + + +
T & tz::basic_list< T, Allocator >::emplace (Args &&... args)
+
+inline
+
+ +

Create a new value in-place at the end of the list.

+
Template Parameters
+ + +
ArgsRepresents the types used to invoke the element class constructor.
+
+
+
Returns
Reference to the constructed value.
+ +
+
+ +

◆ empty()

+ +
+
+
+template<typename T , typename Allocator = std::allocator<T>>
+ + + + + +
+ + + + + + + +
bool tz::basic_list< T, Allocator >::empty () const
+
+inline
+
+ +

Query as to whether the list is empty or not.

+
Returns
True if length() == 0, otherwise false.
+ +
+
+ +

◆ erase() [1/2]

+ +
+
+
+template<typename T , typename Allocator = std::allocator<T>>
+ + + + + +
+ + + + + + + + + + + + + + + + + + +
Iterator tz::basic_list< T, Allocator >::erase (Iterator first,
Iterator last 
)
+
+inline
+
+ +

Erase the range of elements bounded within the provided iterator range.

+
Parameters
+ + + +
firstIterator indicating the beginning of the range to delete.
lastIterator indicating the end of the range fo delete.
+
+
+
Returns
Iterator following the last erased element.
+ +
+
+ +

◆ erase() [2/2]

+ +
+
+
+template<typename T , typename Allocator = std::allocator<T>>
+ + + + + +
+ + + + + + + + +
Iterator tz::basic_list< T, Allocator >::erase (Iterator position)
+
+inline
+
+ +

Erase the element at the given position.

+
Parameters
+ + +
positionIterator locating the element which should be erased. Invalidates iterators and references.
+
+
+
Returns
Iterator following the erased element.
+ +
+
+ +

◆ front() [1/2]

+ +
+
+
+template<typename T , typename Allocator = std::allocator<T>>
+ + + + + +
+ + + + + + + +
T & tz::basic_list< T, Allocator >::front ()
+
+inline
+
+ +

Retrieve the first elements of the list.

+
Precondition
List must not be empty, otherwise the behaviour is undefined.
+ +
+
+ +

◆ front() [2/2]

+ +
+
+
+template<typename T , typename Allocator = std::allocator<T>>
+ + + + + +
+ + + + + + + +
const T & tz::basic_list< T, Allocator >::front () const
+
+inline
+
+ +

Retrieve the first elements of the list.

+

Read-only.

Precondition
List must not be empty, otherwise the behaviour is undefined.
+ +
+
+ +

◆ operator std::span< const T >()

+ +
+
+
+template<typename T , typename Allocator = std::allocator<T>>
+ + + + + +
+ + + + + + + +
tz::basic_list< T, Allocator >::operator std::span< const T > () const
+
+inline
+
+ +

Retrieve a span over the entire list.

+
Returns
Read-only span over the list.
+ +
+
+ +

◆ operator[]() [1/2]

+ +
+
+
+template<typename T , typename Allocator = std::allocator<T>>
+ + + + + +
+ + + + + + + + +
T & tz::basic_list< T, Allocator >::operator[] (std::size_t index)
+
+inline
+
+ +

Retrieve the element at a given index.

+
Precondition
index < this->length(), otherwise the behaviour is undefined.
+
Parameters
+ + +
indexIndex whose element should be retrieved. Must be in-range (see preconditions).
+
+
+
Returns
Reference to the element at the provided index.
+ +
+
+ +

◆ operator[]() [2/2]

+ +
+
+
+template<typename T , typename Allocator = std::allocator<T>>
+ + + + + +
+ + + + + + + + +
const T & tz::basic_list< T, Allocator >::operator[] (std::size_t index) const
+
+inline
+
+ +

Retrieve the element at a given index.

+

Read-only.

Precondition
index < this->length(), otherwise the behaviour is undefined.
+
Parameters
+ + +
indexIndex whose element should be retrieved. Must be in-range (see preconditions).
+
+
+
Returns
Reference to the element at the provided index.
+ +
+
+
+ + + + diff --git a/classtz_1_1callback.html b/classtz_1_1callback.html new file mode 100644 index 0000000000..bea9554bec --- /dev/null +++ b/classtz_1_1callback.html @@ -0,0 +1,244 @@ + + + + + + + +Topaz: tz::callback< Args > Class Template Reference + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.1.0.1 +
+
C++20 Graphics Engine
+
+
+ + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+
+Public Member Functions
+
tz::callback< Args > Class Template Reference
+
+
+ +

Represents a centralised storage/management of callback functions of a common signature void(Args...). + More...

+ +

#include <callback.hpp>

+ + + + + + + + + + + + + + +

+Public Member Functions

callback ()=default
 Create an empty callback object with no registered callables.
 
callback_handle add_callback (tz::action< Args... > auto &&callback_function)
 Register a new callable with this callback object.
 
void remove_callback (callback_handle handle)
 Deregister a callable that was registered by this callback object at some point in the past.
 
void operator() (Args... args) const
 Invoke the callback object, calling all registered callbacks with the provided aerguments.
 
+

Detailed Description

+
template<typename... Args>
+class tz::callback< Args >

Represents a centralised storage/management of callback functions of a common signature void(Args...).

+

Callables matching the above signature can be registered by this object. When registered the caller is provided a reference handle. The token can be used to unregister the callback later.

+

If a callback object is invoked with some arguments, each registered callable is also invoked with the same arguments. It is only recommended to use callbacks very sparingly – Most often usage of callbacks are wrong. The engine itself uses callbacks extremely rarely. If you would like a cross-module messaging system for example, do not use these callbacks; create your own functionality for this.

+

Member Function Documentation

+ +

◆ add_callback()

+ +
+
+
+template<typename... Args>
+ + + + + +
+ + + + + + + + +
callback_handle tz::callback< Args >::add_callback (tz::action< Args... > auto && callback_function)
+
+inline
+
+ +

Register a new callable with this callback object.

+

The callable is assumed to remain valid until either the destruction of this callback object, or until it is manually deregistered.

Parameters
+ + +
callback_functionCallable matching the given signature.
+
+
+
Returns
callback_handle corresponding to the registered callback. Cache this handle and use it to deregister the callable via remove_callback once the lifetime of the provided callable reaches its end or the functionality is no longer required.
+ +
+
+ +

◆ operator()()

+ +
+
+
+template<typename... Args>
+ + + + + +
+ + + + + + + + +
void tz::callback< Args >::operator() (Args... args) const
+
+inline
+
+ +

Invoke the callback object, calling all registered callbacks with the provided aerguments.

+
Parameters
+ + +
argsArgument values to pass to each registered callable.
+
+
+ +
+
+ +

◆ remove_callback()

+ +
+
+
+template<typename... Args>
+ + + + + +
+ + + + + + + + +
void tz::callback< Args >::remove_callback (callback_handle handle)
+
+inline
+
+ +

Deregister a callable that was registered by this callback object at some point in the past.

+

The corresponding callable will no longer be invoked when the callback object is invoked.

+
Parameters
+ + +
handlecallback_handle corresponding to the result of a previous add_callback invocation.
+
+
+ +
+
+
+ + + + diff --git a/classtz_1_1delay.html b/classtz_1_1delay.html new file mode 100644 index 0000000000..558616b685 --- /dev/null +++ b/classtz_1_1delay.html @@ -0,0 +1,198 @@ + + + + + + + +Topaz: tz::delay Class Reference + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.1.0.1 +
+
C++20 Graphics Engine
+
+
+ + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+
+Public Member Functions
+
tz::delay Class Reference
+
+
+ +

An object which is falsy until a certain amount of time has passed since construction. + More...

+ +

#include <time.hpp>

+ + + + + + + + + + + + + + +

+Public Member Functions

 delay (duration delay_length)
 Create a new delay object.
 
+bool done () const
 Query as to whether the delay length has passed since construction of the delay object.
 
duration elapsed () const
 Retrieve how much time has passed since the delay began.
 
void reset ()
 Reset the delay object.
 
+

Detailed Description

+

An object which is falsy until a certain amount of time has passed since construction.

+

Constructor & Destructor Documentation

+ +

◆ delay()

+ +
+
+ + + + + + + + +
tz::delay::delay (duration delay_length)
+
+ +

Create a new delay object.

+

The current system time is used.

Parameters
+ + +
delay_lengthduration of the delay which should pass after construction before becoming truthy.
+
+
+ +
+
+

Member Function Documentation

+ +

◆ elapsed()

+ +
+
+ + + + + + + +
duration tz::delay::elapsed () const
+
+ +

Retrieve how much time has passed since the delay began.

+

If the elapsed time is longer than or equal to the delay length, the delay is done().

+ +
+
+ +

◆ reset()

+ +
+
+ + + + + + + +
void tz::delay::reset ()
+
+ +

Reset the delay object.

+

The instant a delay object is reset, 0 seconds have elapsed since the "construction" of the object. You can use this to check for the same delay again in the future.

+ +
+
+
+ + + + diff --git a/classtz_1_1duration.html b/classtz_1_1duration.html new file mode 100644 index 0000000000..68415819ef --- /dev/null +++ b/classtz_1_1duration.html @@ -0,0 +1,356 @@ + + + + + + + +Topaz: tz::duration Class Reference + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.1.0.1 +
+
C++20 Graphics Engine
+
+
+ + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+
+Public Member Functions
+
tz::duration Class Reference
+
+
+ +

Represents some duration, expressable as a quantity of most time metrics. + More...

+ +

#include <time.hpp>

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Public Member Functions

template<tz::number N>
constexpr N nanos () const
 Express the duration as some number of nanoseconds.
 
template<tz::number N>
constexpr N micros () const
 Express the duration as some number of microseconds.
 
template<tz::number N>
constexpr N millis () const
 Express the duration as some number of milliseconds.
 
template<tz::number N>
constexpr N seconds () const
 Express the duration as some number of seconds.
 
template<tz::number N>
constexpr N minutes () const
 Express the duration as some number of minutes.
 
template<tz::number N>
constexpr N hours () const
 Express the duration as some number of hours.
 
template<tz::number N>
constexpr N days () const
 Express the duration as some number of days.
 
+

Detailed Description

+

Represents some duration, expressable as a quantity of most time metrics.

+

Member Function Documentation

+ +

◆ days()

+ +
+
+
+template<tz::number N>
+ + + + + +
+ + + + + + + +
constexpr N tz::duration::days () const
+
+inlineconstexpr
+
+ +

Express the duration as some number of days.

+

Please be aware of possible precision issues if you're using floating point types.

Returns
number of days that this duration emcompasses.
+ +
+
+ +

◆ hours()

+ +
+
+
+template<tz::number N>
+ + + + + +
+ + + + + + + +
constexpr N tz::duration::hours () const
+
+inlineconstexpr
+
+ +

Express the duration as some number of hours.

+

Please be aware of possible precision issues if you're using floating point types.

Returns
number of hours that this duration emcompasses.
+ +
+
+ +

◆ micros()

+ +
+
+
+template<tz::number N>
+ + + + + +
+ + + + + + + +
constexpr N tz::duration::micros () const
+
+inlineconstexpr
+
+ +

Express the duration as some number of microseconds.

+

Please be aware of possible precision issues if you're using floating point types.

Returns
number of microseconds that this duration emcompasses.
+ +
+
+ +

◆ millis()

+ +
+
+
+template<tz::number N>
+ + + + + +
+ + + + + + + +
constexpr N tz::duration::millis () const
+
+inlineconstexpr
+
+ +

Express the duration as some number of milliseconds.

+

Please be aware of possible precision issues if you're using floating point types.

Returns
number of milliseconds that this duration emcompasses.
+ +
+
+ +

◆ minutes()

+ +
+
+
+template<tz::number N>
+ + + + + +
+ + + + + + + +
constexpr N tz::duration::minutes () const
+
+inlineconstexpr
+
+ +

Express the duration as some number of minutes.

+

Please be aware of possible precision issues if you're using floating point types.

Returns
number of minutes that this duration emcompasses.
+ +
+
+ +

◆ nanos()

+ +
+
+
+template<tz::number N>
+ + + + + +
+ + + + + + + +
constexpr N tz::duration::nanos () const
+
+inlineconstexpr
+
+ +

Express the duration as some number of nanoseconds.

+

Please be aware of possible precision issues if you're using floating point types.

Returns
number of nanoseconds that this duration emcompasses.
+ +
+
+ +

◆ seconds()

+ +
+
+
+template<tz::number N>
+ + + + + +
+ + + + + + + +
constexpr N tz::duration::seconds () const
+
+inlineconstexpr
+
+ +

Express the duration as some number of seconds.

+

Please be aware of possible precision issues if you're using floating point types.

Returns
number of seconds that this duration emcompasses.
+ +
+
+
+ + + + diff --git a/classtz_1_1enum__field.html b/classtz_1_1enum__field.html new file mode 100644 index 0000000000..c815badd66 --- /dev/null +++ b/classtz_1_1enum__field.html @@ -0,0 +1,440 @@ + + + + + + + +Topaz: tz::enum_field< E > Class Template Reference + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.1.0.1 +
+
C++20 Graphics Engine
+
+
+ + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+
+Public Member Functions
+
tz::enum_field< E > Class Template Reference
+
+
+ +

Container for enum values, useful for vintage bitfield types. + More...

+ +

#include <enum_field.hpp>

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Public Member Functions

+constexpr enum_field ()=default
 Create an empty field.
 
+constexpr enum_field (std::initializer_list< E > types)
 Create a field from the provided values.
 
+constexpr enum_field (E type)
 Create a field from a single value.
 
bool contains (E type) const
 Query as to whether the field contains the given value.
 
bool contains (const enum_field< E > &field) const
 Query as to whether the field contains each element within another field.
 
std::size_t count () const
 Retrieve the number of elements within the field.
 
bool empty () const
 Query as to whether the field is empty or not.
 
enum_field< E > & operator|= (E type)
 Add the element to the field.
 
enum_field< E > & operator|= (const enum_field< E > &field)
 Add a field to another field.
 
enum_field< E > operator| (E type) const
 Create a copy of this field, but with the parameter element added.
 
+void remove (E type)
 Remove the enum value from the field, if it exists.
 
+auto begin () const
 Retrieve an iterator to the beginning of the elements.
 
+auto begin ()
 Retrieve an iterator to the beginning of the elements.
 
+auto end () const
 Retrieve an iterator to the end of the elements.
 
+auto end ()
 Retrieve an iterator to the end of the elements.
 
const E & front () const
 Retrieve the first value within the field.
 
const E & back () const
 Retrieve the last value within the field.
 
bool operator== (const enum_field< E > &rhs) const =default
 Query as to whether the elements of the field exactly match that of another field.
 
operator E () const
 Retrieve the cumulative value of the field.
 
+

Detailed Description

+
template<tz::enum_class E>
+class tz::enum_field< E >

Container for enum values, useful for vintage bitfield types.

+
Template Parameters
+ + +
EEnum class type.
+
+
+

Member Function Documentation

+ +

◆ back()

+ +
+
+
+template<tz::enum_class E>
+ + + + + + + +
const E & tz::enum_field< E >::back () const
+
+ +

Retrieve the last value within the field.

+
Precondition
Field must not be empty, otherwise the behaviour is undefined.
+
Returns
Last element of the field.
+ +
+
+ +

◆ contains() [1/2]

+ +
+
+
+template<tz::enum_class E>
+ + + + + + + + +
bool tz::enum_field< E >::contains (const enum_field< E > & field) const
+
+ +

Query as to whether the field contains each element within another field.

+
Returns
True if for each element x in the parameter field, this->contains(x), otherwise false.
+ +
+
+ +

◆ contains() [2/2]

+ +
+
+
+template<tz::enum_class E>
+ + + + + + + + +
bool tz::enum_field< E >::contains (type) const
+
+ +

Query as to whether the field contains the given value.

+
Note
The value is only contained if the exact value was inserted into the field, not if the field contains elements forming a bitwise equivalent.
+

Example: A = {0x01, 0x10}, B = {0x00, 0x11} A.contains(0x11) == false, B.contains(0x11) == true.

Returns
True if value is within the field, false otherwise.
+ +
+
+ +

◆ count()

+ +
+
+
+template<tz::enum_class E>
+ + + + + + + +
std::size_t tz::enum_field< E >::count () const
+
+ +

Retrieve the number of elements within the field.

+
Returns
number of elements within the field.
+ +
+
+ +

◆ empty()

+ +
+
+
+template<tz::enum_class E>
+ + + + + + + +
bool tz::enum_field< E >::empty () const
+
+ +

Query as to whether the field is empty or not.

+
Returns
True if count() == 0, otherwise false.
+ +
+
+ +

◆ front()

+ +
+
+
+template<tz::enum_class E>
+ + + + + + + +
const E & tz::enum_field< E >::front () const
+
+ +

Retrieve the first value within the field.

+
Precondition
Field must not be empty, otherwise the behaviour is undefined.
+
Returns
First element of the field.
+ +
+
+ +

◆ operator==()

+ +
+
+
+template<tz::enum_class E>
+ + + + + +
+ + + + + + + + +
bool tz::enum_field< E >::operator== (const enum_field< E > & rhs) const
+
+default
+
+ +

Query as to whether the elements of the field exactly match that of another field.

+

This may return false even if the cumulative values are equivalent.

Returns
True if fields contain same elements, otherwise false.
+ +
+
+ +

◆ operator|()

+ +
+
+
+template<tz::enum_class E>
+ + + + + + + + +
enum_field< E > tz::enum_field< E >::operator| (type) const
+
+ +

Create a copy of this field, but with the parameter element added.

+

The cumulative value C of the field becomes C | E.

Parameters
+ + +
typeElement to add to the new field.
+
+
+
Returns
A copy of this.
+ +
+
+ +

◆ operator|=() [1/2]

+ +
+
+
+template<tz::enum_class E>
+ + + + + + + + +
enum_field< E > & tz::enum_field< E >::operator|= (const enum_field< E > & field)
+
+ +

Add a field to another field.

+

If this field contains 'C' and other field is comprised of 'A | B', this field will become 'C | A | B'.

+ +
+
+ +

◆ operator|=() [2/2]

+ +
+
+
+template<tz::enum_class E>
+ + + + + + + + +
enum_field< E > & tz::enum_field< E >::operator|= (type)
+
+ +

Add the element to the field.

+

The cumulative value C of the field becomes C | E.

Parameters
+ + +
typeElement to add to the field.
+
+
+
Returns
This.
+ +
+
+
+ + + + diff --git a/classtz_1_1fallback__allocator.html b/classtz_1_1fallback__allocator.html new file mode 100644 index 0000000000..c3ca5337bf --- /dev/null +++ b/classtz_1_1fallback__allocator.html @@ -0,0 +1,126 @@ + + + + + + + +Topaz: tz::fallback_allocator< P, S > Class Template Reference + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.1.0.1 +
+
C++20 Graphics Engine
+
+
+ + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+
tz::fallback_allocator< P, S > Class Template Reference
+
+
+ +

Implements tz::allocator. + More...

+ +

#include <fallback.hpp>

+
+Inheritance diagram for tz::fallback_allocator< P, S >:
+
+
+ +
+

Detailed Description

+
template<tz::allocator P, tz::allocator S>
+class tz::fallback_allocator< P, S >

Implements tz::allocator.

+

A meta-allocator which will use a primary allocator, but fall-back to a secondary allocator upon failure. fallback_allocators can be chained together.

+

Often, tz::Mallocator and tz::Nullallocator are useful secondary allocators.

Template Parameters
+ + + +
PPrimary allocator type. This will always be used first.
SSecondary allocator type. This will only be used if the primary allocator fails (such as returning a nullblk on allocate(...))
+
+
+
+ + + + diff --git a/classtz_1_1fallback__allocator.png b/classtz_1_1fallback__allocator.png new file mode 100644 index 0000000000..5a86d8ff9e Binary files /dev/null and b/classtz_1_1fallback__allocator.png differ diff --git a/classtz_1_1gl_1_1_asset_storage_common.html b/classtz_1_1gl_1_1_asset_storage_common.html new file mode 100644 index 0000000000..4d87155568 --- /dev/null +++ b/classtz_1_1gl_1_1_asset_storage_common.html @@ -0,0 +1,119 @@ + + + + + + + +Topaz: tz::gl::AssetStorageCommon< Asset > Class Template Reference + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.1.0.1 +
+
C++20 Graphics Engine
+
+
+ + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+
tz::gl::AssetStorageCommon< Asset > Class Template Reference
+
+
+
+Inheritance diagram for tz::gl::AssetStorageCommon< Asset >:
+
+
+ + +tz::gl::ResourceStorage +tz::gl::renderer_resource_manager +tz::gl::renderer_descriptor_manager +tz::gl::renderer_output_manager +tz::gl::renderer_pipeline +tz::gl::renderer_command_processor +tz::gl::renderer_vulkan2 + +
+
+ + + + diff --git a/classtz_1_1gl_1_1_asset_storage_common.png b/classtz_1_1gl_1_1_asset_storage_common.png new file mode 100644 index 0000000000..f39d657b98 Binary files /dev/null and b/classtz_1_1gl_1_1_asset_storage_common.png differ diff --git a/classtz_1_1gl_1_1_output_manager.html b/classtz_1_1gl_1_1_output_manager.html new file mode 100644 index 0000000000..86330ea7c7 --- /dev/null +++ b/classtz_1_1gl_1_1_output_manager.html @@ -0,0 +1,125 @@ + + + + + + + +Topaz: tz::gl::OutputManager Class Reference + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.1.0.1 +
+
C++20 Graphics Engine
+
+
+ + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+
+Public Member Functions
+
+
+
+ +

Stores information about the output target, and a framebuffer which either points to an offscreen image for render-to-texture (not yet implemented), or the main window framebuffer via ogl2::framebuffer::null(). + More...

+ +

#include <renderer.hpp>

+ + + + + + + + +

+Public Member Functions

OutputManager (const ioutput *output, tz::gl::renderer_options options)
 Create the output target based upon the renderer information.
 
+void set_render_target () const
 Set this as the render target, causing subsequent draw calls to render into whatever the output is.
 
+

Detailed Description

+

Stores information about the output target, and a framebuffer which either points to an offscreen image for render-to-texture (not yet implemented), or the main window framebuffer via ogl2::framebuffer::null().

+
+ + + + diff --git a/classtz_1_1gl_1_1_renderer_edit_builder.html b/classtz_1_1gl_1_1_renderer_edit_builder.html new file mode 100644 index 0000000000..dad7147880 --- /dev/null +++ b/classtz_1_1gl_1_1_renderer_edit_builder.html @@ -0,0 +1,218 @@ + + + + + + + +Topaz: tz::gl::RendererEditBuilder Class Reference + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.1.0.1 +
+
C++20 Graphics Engine
+
+
+ + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+
+Public Member Functions
+
tz::gl::RendererEditBuilder Class Reference
+
+
+ +

Helper class which can be used to generate a renderer_edit_request. + More...

+ +

#include <renderer.hpp>

+ + + + + + + + + + + + + + + + + +

+Public Member Functions

RendererEditBuildercompute (renderer_edit::compute_config req)
 Make amendments to the compute configuration of the renderer.
 
RendererEditBuilderrender_state (renderer_edit::render_config req)
 Make amendments to the current render state.
 
RendererEditBuilderimage_resize (renderer_edit::image_resize req)
 Make amendments to an existing image resource.
 
RendererEditBuilderbuffer_resize (renderer_edit::buffer_resize req)
 Make amendments to an existing buffer resource.
 
+renderer_edit_request build () const
 Retrieve a renderer_edit_request corresponding to all edits specified within the builder so far.
 
+

Detailed Description

+

Helper class which can be used to generate a renderer_edit_request.

+

Member Function Documentation

+ +

◆ buffer_resize()

+ +
+
+ + + + + + + + +
RendererEditBuilder & tz::gl::RendererEditBuilder::buffer_resize (renderer_edit::buffer_resize req)
+
+ +

Make amendments to an existing buffer resource.

+

See RendererBufferComponentResizeRequest for details.

+ +
+
+ +

◆ compute()

+ +
+
+ + + + + + + + +
RendererEditBuilder & tz::gl::RendererEditBuilder::compute (renderer_edit::compute_config req)
+
+ +

Make amendments to the compute configuration of the renderer.

+

See RendererComputeEditRequest for details.

+ +
+
+ +

◆ image_resize()

+ +
+
+ + + + + + + + +
RendererEditBuilder & tz::gl::RendererEditBuilder::image_resize (renderer_edit::image_resize req)
+
+ +

Make amendments to an existing image resource.

+

See RendererImageComponentResizeRequest for details.

+ +
+
+ +

◆ render_state()

+ +
+
+ + + + + + + + +
RendererEditBuilder & tz::gl::RendererEditBuilder::render_state (renderer_edit::render_config req)
+
+ +

Make amendments to the current render state.

+

See RenderStateEditRequest for details.

+ +
+
+
+ + + + diff --git a/classtz_1_1gl_1_1_resource_storage.html b/classtz_1_1gl_1_1_resource_storage.html new file mode 100644 index 0000000000..ccee4f9d59 --- /dev/null +++ b/classtz_1_1gl_1_1_resource_storage.html @@ -0,0 +1,295 @@ + + + + + + + +Topaz: tz::gl::ResourceStorage Class Reference + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.1.0.1 +
+
C++20 Graphics Engine
+
+
+ + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+
+Public Member Functions
+
+
+
+ +

Copies all resource data from upon creation and handles resource and component lifetimes. + More...

+ +

#include <renderer.hpp>

+
+Inheritance diagram for tz::gl::ResourceStorage:
+
+
+ + +tz::gl::AssetStorageCommon< Asset > + +
+ + + + + + + + + + + + + + + + + + + + +

+Public Member Functions

 ResourceStorage (std::span< const iresource *const > resources, std::span< const icomponent *const > components)
 Create storage for a set of existing resources.
 
const icomponentget_component (resource_handle handle) const
 Retrieve the component (read-only) which stores the corresponding opengl backend objects for the resource corresponding to the handle.
 
icomponentget_component (resource_handle handle)
 Retrieve the component which stores the corresponding opengl backend objects for the resource corresponding to the handle.
 
unsigned int resource_count_of (resource_type type) const
 Retrieve the number of resources stored of the given type.
 
+void bind_buffers (const render_state &state)
 Bind all buffer resources to their expected resource ids.
 
void bind_image_buffer (bool has_index_buffer, bool has_draw_buffer)
 images are converted into bindless texture handles which are then all stored within a secret bespoke SSBO (this does not count as a buffer resource however).
 
+

Detailed Description

+

Copies all resource data from upon creation and handles resource and component lifetimes.

+

Also exposes said copied resources and components to the renderer.

+

Constructor & Destructor Documentation

+ +

◆ ResourceStorage()

+ +
+
+ + + + + + + + + + + + + + + + + + +
tz::gl::ResourceStorage::ResourceStorage (std::span< const iresource *const > resources,
std::span< const icomponent *const > components 
)
+
+ +

Create storage for a set of existing resources.

+

All existing ResourceHandles referencing any of the provided resources will continue to be valid when passed to the renderer_ogl. However, it will reference the copy of said resource which is created during construction of this object. This means users are able to and encouraged to cache their ResourceHandles when populating renderer_info.

+
Parameters
+ + +
resourcesA view into an array of existing resources. All of these will be copies into a separate storage, meaning the elements of the span are allowed to reach the end of their lifetime after the storage has been constructed, because they will have been cloned.
+
+
+ +
+
+

Member Function Documentation

+ +

◆ bind_image_buffer()

+ +
+
+ + + + + + + + + + + + + + + + + + +
void tz::gl::ResourceStorage::bind_image_buffer (bool has_index_buffer,
bool has_draw_buffer 
)
+
+ +

images are converted into bindless texture handles which are then all stored within a secret bespoke SSBO (this does not count as a buffer resource however).

+

This binds that SSBO to the resource id equal to the list of images (this will be equal to the total number of buffer resources).

+ +
+
+ +

◆ get_component() [1/2]

+ +
+
+ + + + + + + + +
icomponent * tz::gl::ResourceStorage::get_component (resource_handle handle)
+
+ +

Retrieve the component which stores the corresponding opengl backend objects for the resource corresponding to the handle.

+
Parameters
+ + +
handleHandle whose resource's component needs to be retrieved. The handle must have referred to one of the initial resources passed to the constructor, otherwise the behaviour is undefined.
+
+
+ +
+
+ +

◆ get_component() [2/2]

+ +
+
+ + + + + + + + +
const icomponent * tz::gl::ResourceStorage::get_component (resource_handle handle) const
+
+ +

Retrieve the component (read-only) which stores the corresponding opengl backend objects for the resource corresponding to the handle.

+
Parameters
+ + +
handleHandle whose resource's component needs to be retrieved. The handle must have referred to one of the initial resources passed to the constructor, otherwise the behaviour is undefined.
+
+
+ +
+
+ +

◆ resource_count_of()

+ +
+
+ + + + + + + + +
unsigned int tz::gl::ResourceStorage::resource_count_of (resource_type type) const
+
+ +

Retrieve the number of resources stored of the given type.

+
Parameters
+ + +
typeType whose quantity should be retrieved.
+
+
+
Returns
number of resources matching the provided type.
+ +
+
+
+ + + + diff --git a/classtz_1_1gl_1_1_resource_storage.png b/classtz_1_1gl_1_1_resource_storage.png new file mode 100644 index 0000000000..2e2667d8b7 Binary files /dev/null and b/classtz_1_1gl_1_1_resource_storage.png differ diff --git a/classtz_1_1gl_1_1_shader_manager.html b/classtz_1_1gl_1_1_shader_manager.html new file mode 100644 index 0000000000..0666943f80 --- /dev/null +++ b/classtz_1_1gl_1_1_shader_manager.html @@ -0,0 +1,149 @@ + + + + + + + +Topaz: tz::gl::ShaderManager Class Reference + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.1.0.1 +
+
C++20 Graphics Engine
+
+
+ + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+
+Public Member Functions
+
+
+
+ +

Stores the shader program and allows the renderer to use it before emitting a draw call. + More...

+ +

#include <renderer.hpp>

+ + + + + + + + + + + +

+Public Member Functions

ShaderManager (const shader_info &sinfo)
 Construct the shader program from the information provided.
 
 ShaderManager ()
 Construct a null shader manager.
 
+void use ()
 Use the shader program, meaning it will be used in the next draw call.
 
+

Detailed Description

+

Stores the shader program and allows the renderer to use it before emitting a draw call.

+

Constructor & Destructor Documentation

+ +

◆ ShaderManager()

+ +
+
+ + + + + + + +
tz::gl::ShaderManager::ShaderManager ()
+
+ +

Construct a null shader manager.

+

It is an error to do any render/compute work with a null shader manager.

+ +
+
+
+ + + + diff --git a/classtz_1_1gl_1_1buffer__component__ogl.html b/classtz_1_1gl_1_1buffer__component__ogl.html new file mode 100644 index 0000000000..fcff3c4706 --- /dev/null +++ b/classtz_1_1gl_1_1buffer__component__ogl.html @@ -0,0 +1,113 @@ + + + + + + + +Topaz: tz::gl::buffer_component_ogl Class Reference + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.1.0.1 +
+
C++20 Graphics Engine
+
+
+ + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+
tz::gl::buffer_component_ogl Class Reference
+
+
+
+Inheritance diagram for tz::gl::buffer_component_ogl:
+
+
+ + +tz::gl::icomponent + +
+
+ + + + diff --git a/classtz_1_1gl_1_1buffer__component__ogl.png b/classtz_1_1gl_1_1buffer__component__ogl.png new file mode 100644 index 0000000000..78a2890388 Binary files /dev/null and b/classtz_1_1gl_1_1buffer__component__ogl.png differ diff --git a/classtz_1_1gl_1_1buffer__component__vulkan.html b/classtz_1_1gl_1_1buffer__component__vulkan.html new file mode 100644 index 0000000000..285d3f296b --- /dev/null +++ b/classtz_1_1gl_1_1buffer__component__vulkan.html @@ -0,0 +1,113 @@ + + + + + + + +Topaz: tz::gl::buffer_component_vulkan Class Reference + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.1.0.1 +
+
C++20 Graphics Engine
+
+
+ + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+
tz::gl::buffer_component_vulkan Class Reference
+
+
+
+Inheritance diagram for tz::gl::buffer_component_vulkan:
+
+
+ + +tz::gl::icomponent + +
+
+ + + + diff --git a/classtz_1_1gl_1_1buffer__component__vulkan.png b/classtz_1_1gl_1_1buffer__component__vulkan.png new file mode 100644 index 0000000000..1039715a7f Binary files /dev/null and b/classtz_1_1gl_1_1buffer__component__vulkan.png differ diff --git a/classtz_1_1gl_1_1buffer__resource.html b/classtz_1_1gl_1_1buffer__resource.html new file mode 100644 index 0000000000..58da819966 --- /dev/null +++ b/classtz_1_1gl_1_1buffer__resource.html @@ -0,0 +1,313 @@ + + + + + + + +Topaz: tz::gl::buffer_resource Class Reference + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.1.0.1 +
+
C++20 Graphics Engine
+
+
+ + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+
+Public Member Functions | +Static Public Member Functions
+
tz::gl::buffer_resource Class Reference
+
+
+ +

Represents a fixed-size, static Buffer to be used by a renderer or Processor. + More...

+ +

#include <resource.hpp>

+
+Inheritance diagram for tz::gl::buffer_resource:
+
+
+ + +tz::gl::resource +tz::gl::iresource +tz::unique_cloneable< T > + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Public Member Functions

+virtual void dbgui () final
 Display debug information about the resource.
 
- Public Member Functions inherited from tz::gl::resource
+virtual resource_type get_type () const final
 Retrieve the type of the resource.
 
virtual resource_access get_access () const final
 Retrieve access information about this resource when used in a renderer or Processor.
 
virtual const resource_flags & get_flags () const final
 Retrieve a field containing all flags applied to this resource.
 
+virtual std::span< const std::byte > data () const final
 Retrieve a read-only view into the resource data.
 
virtual std::span< std::byte > data () final
 Retrieve a read+write view into the resource data.
 
- Public Member Functions inherited from tz::gl::iresource
template<typename T >
std::span< const T > data_as () const
 Retrieve a read+write view into the resource data, interpreted as an array of some type.
 
template<typename T >
std::span< T > data_as ()
 Retrieve a read+write view into the resource data, interpreted as an array of some type.
 
+ + + + + + + + + + + + +

+Static Public Member Functions

template<tz::trivially_copyable T>
static buffer_resource from_one (const T &data, buffer_info info={})
 Create a buffer_resource where the underlying data is a single object.
 
template<std::ranges::contiguous_range R>
static buffer_resource from_many (R &&data, buffer_info info={})
 Create a buffer_resource where the underlying data is an array of objects.
 
static buffer_resource null ()
 Create a null buffer_resource.
 
+

Detailed Description

+

Represents a fixed-size, static Buffer to be used by a renderer or Processor.

+

Member Function Documentation

+ +

◆ from_many()

+ +
+
+
+template<std::ranges::contiguous_range R>
+ + + + + +
+ + + + + + + + + + + + + + + + + + +
buffer_resource tz::gl::buffer_resource::from_many (R && data,
buffer_info info = {} 
)
+
+static
+
+ +

Create a buffer_resource where the underlying data is an array of objects.

+
Template Parameters
+ + +
RType satisfying std::contiguous_range.
+
+
+
Parameters
+ + + +
dataA range of elements of some type.
infoBuffer info. See buffer_info for details.
+
+
+
Returns
buffer_resource containing a copy of the provided array.
+ +
+
+ +

◆ from_one()

+ +
+
+
+template<tz::trivially_copyable T>
+ + + + + +
+ + + + + + + + + + + + + + + + + + +
buffer_resource tz::gl::buffer_resource::from_one (const T & data,
buffer_info info = {} 
)
+
+static
+
+ +

Create a buffer_resource where the underlying data is a single object.

+
Note
You should be able to optionally pass in braced-initializer-list expressions in for the data, so long as the types of the elements are easily deduceable.
+
Template Parameters
+ + +
TObject type. It must be trivially_copyable.
+
+
+
Parameters
+ + + +
dataObject value to store within the underlying data.
infoBuffer info, see buffer_info for details.
+
+
+
Returns
buffer_resource containing a copy of the provided object.
+ +
+
+ +

◆ null()

+ +
+
+ + + + + +
+ + + + + + + +
static buffer_resource tz::gl::buffer_resource::null ()
+
+inlinestatic
+
+ +

Create a null buffer_resource.

+

It is not practically useful, aside from as a placeholder.

+

Null BufferResources are guaranteed to have size() == 1, not zero, but its contents and size are implementation-defined. It is also guaranteed to be static_fixed and have no flags.

+ +
+
+
+ + + + diff --git a/classtz_1_1gl_1_1buffer__resource.png b/classtz_1_1gl_1_1buffer__resource.png new file mode 100644 index 0000000000..9ed6f89e2c Binary files /dev/null and b/classtz_1_1gl_1_1buffer__resource.png differ diff --git a/classtz_1_1gl_1_1device.html b/classtz_1_1gl_1_1device.html new file mode 100644 index 0000000000..6422cea4e9 --- /dev/null +++ b/classtz_1_1gl_1_1device.html @@ -0,0 +1,288 @@ + + + + + + + +Topaz: tz::gl::device Class Reference + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.1.0.1 +
+
C++20 Graphics Engine
+
+
+ + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+
+Public Member Functions
+
tz::gl::device Class Reference
+
+
+ +

Implements tz::gl::device_type. + More...

+ +

#include <device.hpp>

+ + + + + + + + + + + + + + + + + + + + +

+Public Member Functions

tz::gl::renderer_handle create_renderer (tz::gl::renderer_info &rinfo)
 Create a new tz::gl::renderer.
 
void destroy_renderer (tz::gl::renderer_handle rh)
 Destroy an existing renderer.
 
std::size_t renderer_count ()
 Retrieve the number of existing renderers.
 
const tz::gl::rendererget_renderer (tz::gl::renderer_handle rh) const
 Retrieve a reference to the renderer associated with the given handle.
 
tz::gl::rendererget_renderer (tz::gl::renderer_handle rh)
 Retrieve a reference to the renderer associated with the given handle.
 
tz::gl::image_format get_window_format () const
 Retrieve the image format that is being used by the window surface.
 
+

Detailed Description

+

Implements tz::gl::device_type.

+

Member Function Documentation

+ +

◆ create_renderer()

+ +
+
+ + + + + + + + +
tz::gl::renderer_handle tz::gl::device::create_renderer (tz::gl::renderer_inforinfo)
+
+ +

Create a new tz::gl::renderer.

+
Parameters
+ + +
rinfoDescribes the intended behaviour of the renderer.
+
+
+
Returns
Opaque handle associated with the newly-created renderer.
+ +
+
+ +

◆ destroy_renderer()

+ +
+
+ + + + + + + + +
void tz::gl::device::destroy_renderer (tz::gl::renderer_handle rh)
+
+ +

Destroy an existing renderer.

+

The renderer will no longer exist.

Precondition
The handle rh must have been the return value of a prior invocation of create_renderer().
+
Postcondition
The renderer associated with the handle rh must no longer be accessed. Any existing references to that renderer are invalidated, and the behaviour is undefined if it is attempted to be used.
+
Parameters
+ + +
rhOpaque handle associated with an existing renderer.
+
+
+ +
+
+ +

◆ get_renderer() [1/2]

+ +
+
+ + + + + + + + +
tz::gl::renderer & tz::gl::device::get_renderer (tz::gl::renderer_handle rh)
+
+ +

Retrieve a reference to the renderer associated with the given handle.

+
Precondition
The renderer associated with the handle rh must still be existing. This means that it has been created by create_renderer() but has not yet been destroyed via destroy_renderer().
+
Parameters
+ + +
rhOpaque handle associated with an existing renderer.
+
+
+
Returns
Reference to the associated renderer.
+ +
+
+ +

◆ get_renderer() [2/2]

+ +
+
+ + + + + + + + +
const tz::gl::renderer & tz::gl::device::get_renderer (tz::gl::renderer_handle rh) const
+
+ +

Retrieve a reference to the renderer associated with the given handle.

+
Precondition
The renderer associated with the handle rh must still be existing. This means that it has been created by create_renderer() but has not yet been destroyed via destroy_renderer().
+
Parameters
+ + +
rhOpaque handle associated with an existing renderer.
+
+
+
Returns
Reference to the associated renderer.
+ +
+
+ +

◆ get_window_format()

+ +
+
+ + + + + + + +
tz::gl::image_format tz::gl::device::get_window_format () const
+
+ +

Retrieve the image format that is being used by the window surface.

+
Returns
Image format matching the internal window surface.
+ +
+
+ +

◆ renderer_count()

+ +
+
+ + + + + + + +
std::size_t tz::gl::device::renderer_count ()
+
+ +

Retrieve the number of existing renderers.

+
Note
This includes internal renderers. Because of this, this may return a value greater than the number of renderers you have created, however it will never be lower.
+
Returns
Number of existing renderers.
+ +
+
+
+ + + + diff --git a/classtz_1_1gl_1_1device__command__pool.html b/classtz_1_1gl_1_1device__command__pool.html new file mode 100644 index 0000000000..5737512b68 --- /dev/null +++ b/classtz_1_1gl_1_1device__command__pool.html @@ -0,0 +1,168 @@ + + + + + + + +Topaz: tz::gl::device_command_pool Class Reference + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.1.0.1 +
+
C++20 Graphics Engine
+
+
+ + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+
+Data Structures | +Public Member Functions
+
tz::gl::device_command_pool Class Reference
+
+
+
+Inheritance diagram for tz::gl::device_command_pool:
+
+
+ + +tz::gl::device_descriptor_pool +tz::gl::device_render_sync +tz::gl::device_window +tz::gl::device_vulkan_base +tz::gl::device_vulkan2 + +
+ + + + +

+Data Structures

struct  fingerprint_info_t
 
+ + + + + + + + +

+Public Member Functions

vk2::hardware::Queue::PresentResult present_image (unsigned int fingerprint, const tz::basic_list< const vk2::BinarySemaphore * > &wait_semaphores)
 present the acquired image.
 
- Public Member Functions inherited from tz::gl::device_window
const vk2::BinarySemaphoreacquire_image (const vk2::Fence *signal_fence)
 acquire an image from the underlying presentation engine.
 
+

Member Function Documentation

+ +

◆ present_image()

+ +
+
+ + + + + + + + + + + + + + + + + + +
vk2::hardware::Queue::PresentResult tz::gl::device_command_pool::present_image (unsigned int fingerprint,
const tz::basic_list< const vk2::BinarySemaphore * > & wait_semaphores 
)
+
+ +

present the acquired image.

+
Precondition
acquire_image() should have been invoked earlier, in such a way that the acquisition will have been completed by the time the present command is ran GPU-side
+ +
+
+
+ + + + diff --git a/classtz_1_1gl_1_1device__command__pool.png b/classtz_1_1gl_1_1device__command__pool.png new file mode 100644 index 0000000000..df2f60aece Binary files /dev/null and b/classtz_1_1gl_1_1device__command__pool.png differ diff --git a/classtz_1_1gl_1_1device__common.html b/classtz_1_1gl_1_1device__common.html new file mode 100644 index 0000000000..bd7b80d68b --- /dev/null +++ b/classtz_1_1gl_1_1device__common.html @@ -0,0 +1,114 @@ + + + + + + + +Topaz: tz::gl::device_common< R > Class Template Reference + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.1.0.1 +
+
C++20 Graphics Engine
+
+
+ + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+
tz::gl::device_common< R > Class Template Reference
+
+
+
+Inheritance diagram for tz::gl::device_common< R >:
+
+
+ + +tz::gl::device_ogl +tz::gl::device_vulkan2 + +
+
+ + + + diff --git a/classtz_1_1gl_1_1device__common.png b/classtz_1_1gl_1_1device__common.png new file mode 100644 index 0000000000..358633b03e Binary files /dev/null and b/classtz_1_1gl_1_1device__common.png differ diff --git a/classtz_1_1gl_1_1device__descriptor__pool.html b/classtz_1_1gl_1_1device__descriptor__pool.html new file mode 100644 index 0000000000..9d51a62868 --- /dev/null +++ b/classtz_1_1gl_1_1device__descriptor__pool.html @@ -0,0 +1,125 @@ + + + + + + + +Topaz: tz::gl::device_descriptor_pool Class Reference + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.1.0.1 +
+
C++20 Graphics Engine
+
+
+ + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+
tz::gl::device_descriptor_pool Class Reference
+
+
+
+Inheritance diagram for tz::gl::device_descriptor_pool:
+
+
+ + +tz::gl::device_render_sync +tz::gl::device_window +tz::gl::device_vulkan_base +tz::gl::device_command_pool +tz::gl::device_vulkan2 + +
+ + + + + + +

+Additional Inherited Members

- Public Member Functions inherited from tz::gl::device_window
const vk2::BinarySemaphoreacquire_image (const vk2::Fence *signal_fence)
 acquire an image from the underlying presentation engine.
 
+
+ + + + diff --git a/classtz_1_1gl_1_1device__descriptor__pool.png b/classtz_1_1gl_1_1device__descriptor__pool.png new file mode 100644 index 0000000000..1a5059e626 Binary files /dev/null and b/classtz_1_1gl_1_1device__descriptor__pool.png differ diff --git a/classtz_1_1gl_1_1device__ogl.html b/classtz_1_1gl_1_1device__ogl.html new file mode 100644 index 0000000000..ccc09e1e00 --- /dev/null +++ b/classtz_1_1gl_1_1device__ogl.html @@ -0,0 +1,114 @@ + + + + + + + +Topaz: tz::gl::device_ogl Class Reference + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.1.0.1 +
+
C++20 Graphics Engine
+
+
+ + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+
tz::gl::device_ogl Class Reference
+
+
+
+Inheritance diagram for tz::gl::device_ogl:
+
+
+ + +tz::gl::device_render_scheduler_ogl +tz::gl::device_common< R > + +
+
+ + + + diff --git a/classtz_1_1gl_1_1device__ogl.png b/classtz_1_1gl_1_1device__ogl.png new file mode 100644 index 0000000000..8c5978c51f Binary files /dev/null and b/classtz_1_1gl_1_1device__ogl.png differ diff --git a/classtz_1_1gl_1_1device__render__scheduler__ogl.html b/classtz_1_1gl_1_1device__render__scheduler__ogl.html new file mode 100644 index 0000000000..e616a1638e --- /dev/null +++ b/classtz_1_1gl_1_1device__render__scheduler__ogl.html @@ -0,0 +1,113 @@ + + + + + + + +Topaz: tz::gl::device_render_scheduler_ogl Class Reference + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.1.0.1 +
+
C++20 Graphics Engine
+
+
+ + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+
tz::gl::device_render_scheduler_ogl Class Reference
+
+
+
+Inheritance diagram for tz::gl::device_render_scheduler_ogl:
+
+
+ + +tz::gl::device_ogl + +
+
+ + + + diff --git a/classtz_1_1gl_1_1device__render__scheduler__ogl.png b/classtz_1_1gl_1_1device__render__scheduler__ogl.png new file mode 100644 index 0000000000..36811a1608 Binary files /dev/null and b/classtz_1_1gl_1_1device__render__scheduler__ogl.png differ diff --git a/classtz_1_1gl_1_1device__render__sync.html b/classtz_1_1gl_1_1device__render__sync.html new file mode 100644 index 0000000000..927dfa7944 --- /dev/null +++ b/classtz_1_1gl_1_1device__render__sync.html @@ -0,0 +1,125 @@ + + + + + + + +Topaz: tz::gl::device_render_sync Class Reference + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.1.0.1 +
+
C++20 Graphics Engine
+
+
+ + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+
tz::gl::device_render_sync Class Reference
+
+
+
+Inheritance diagram for tz::gl::device_render_sync:
+
+
+ + +tz::gl::device_window +tz::gl::device_vulkan_base +tz::gl::device_descriptor_pool +tz::gl::device_command_pool +tz::gl::device_vulkan2 + +
+ + + + + + +

+Additional Inherited Members

- Public Member Functions inherited from tz::gl::device_window
const vk2::BinarySemaphoreacquire_image (const vk2::Fence *signal_fence)
 acquire an image from the underlying presentation engine.
 
+
+ + + + diff --git a/classtz_1_1gl_1_1device__render__sync.png b/classtz_1_1gl_1_1device__render__sync.png new file mode 100644 index 0000000000..cdd8569c0b Binary files /dev/null and b/classtz_1_1gl_1_1device__render__sync.png differ diff --git a/classtz_1_1gl_1_1device__vulkan2.html b/classtz_1_1gl_1_1device__vulkan2.html new file mode 100644 index 0000000000..c7fe8d9bf0 --- /dev/null +++ b/classtz_1_1gl_1_1device__vulkan2.html @@ -0,0 +1,130 @@ + + + + + + + +Topaz: tz::gl::device_vulkan2 Class Reference + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.1.0.1 +
+
C++20 Graphics Engine
+
+
+ + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+
tz::gl::device_vulkan2 Class Reference
+
+
+
+Inheritance diagram for tz::gl::device_vulkan2:
+
+
+ + +tz::gl::device_common< R > +tz::gl::device_command_pool +tz::gl::device_descriptor_pool +tz::gl::device_render_sync +tz::gl::device_window +tz::gl::device_vulkan_base + +
+ + + + + + + + + + +

+Additional Inherited Members

- Public Member Functions inherited from tz::gl::device_command_pool
vk2::hardware::Queue::PresentResult present_image (unsigned int fingerprint, const tz::basic_list< const vk2::BinarySemaphore * > &wait_semaphores)
 present the acquired image.
 
- Public Member Functions inherited from tz::gl::device_window
const vk2::BinarySemaphoreacquire_image (const vk2::Fence *signal_fence)
 acquire an image from the underlying presentation engine.
 
+
+ + + + diff --git a/classtz_1_1gl_1_1device__vulkan2.png b/classtz_1_1gl_1_1device__vulkan2.png new file mode 100644 index 0000000000..900cc1e7bb Binary files /dev/null and b/classtz_1_1gl_1_1device__vulkan2.png differ diff --git a/classtz_1_1gl_1_1device__vulkan__base.html b/classtz_1_1gl_1_1device__vulkan__base.html new file mode 100644 index 0000000000..8b0a43dce4 --- /dev/null +++ b/classtz_1_1gl_1_1device__vulkan__base.html @@ -0,0 +1,117 @@ + + + + + + + +Topaz: tz::gl::device_vulkan_base Class Reference + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.1.0.1 +
+
C++20 Graphics Engine
+
+
+ + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+
tz::gl::device_vulkan_base Class Reference
+
+
+
+Inheritance diagram for tz::gl::device_vulkan_base:
+
+
+ + +tz::gl::device_window +tz::gl::device_render_sync +tz::gl::device_descriptor_pool +tz::gl::device_command_pool +tz::gl::device_vulkan2 + +
+
+ + + + diff --git a/classtz_1_1gl_1_1device__vulkan__base.png b/classtz_1_1gl_1_1device__vulkan__base.png new file mode 100644 index 0000000000..27a95aa529 Binary files /dev/null and b/classtz_1_1gl_1_1device__vulkan__base.png differ diff --git a/classtz_1_1gl_1_1device__window.html b/classtz_1_1gl_1_1device__window.html new file mode 100644 index 0000000000..a4bfde2496 --- /dev/null +++ b/classtz_1_1gl_1_1device__window.html @@ -0,0 +1,150 @@ + + + + + + + +Topaz: tz::gl::device_window Class Reference + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.1.0.1 +
+
C++20 Graphics Engine
+
+
+ + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+
+Public Member Functions
+
tz::gl::device_window Class Reference
+
+
+
+Inheritance diagram for tz::gl::device_window:
+
+
+ + +tz::gl::device_vulkan_base +tz::gl::device_render_sync +tz::gl::device_descriptor_pool +tz::gl::device_command_pool +tz::gl::device_vulkan2 + +
+ + + + + +

+Public Member Functions

const vk2::BinarySemaphoreacquire_image (const vk2::Fence *signal_fence)
 acquire an image from the underlying presentation engine.
 
+

Member Function Documentation

+ +

◆ acquire_image()

+ +
+
+ + + + + + + + +
const vk2::BinarySemaphore & tz::gl::device_window::acquire_image (const vk2::Fencesignal_fence)
+
+ +

acquire an image from the underlying presentation engine.

+

if you want to render something to the window, you will need to acquire an image here and render into it. if you acquired an image earlier but didn't present to it, this will give you the same image.

+

this method returns instantly. to schedule work to occur after the acquisition completes, fill in the acquire parameter which has a fence and/or semaphore you can wait on after.

+
Returns
swapchain index image that will be retrieved.
+ +
+
+
+ + + + diff --git a/classtz_1_1gl_1_1device__window.png b/classtz_1_1gl_1_1device__window.png new file mode 100644 index 0000000000..1145adc414 Binary files /dev/null and b/classtz_1_1gl_1_1device__window.png differ diff --git a/classtz_1_1gl_1_1icomponent.html b/classtz_1_1gl_1_1icomponent.html new file mode 100644 index 0000000000..4fc82a2668 --- /dev/null +++ b/classtz_1_1gl_1_1icomponent.html @@ -0,0 +1,116 @@ + + + + + + + +Topaz: tz::gl::icomponent Class Reference + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.1.0.1 +
+
C++20 Graphics Engine
+
+
+ + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+
tz::gl::icomponent Class Referenceabstract
+
+
+
+Inheritance diagram for tz::gl::icomponent:
+
+
+ + +tz::gl::buffer_component_ogl +tz::gl::buffer_component_vulkan +tz::gl::image_component_ogl +tz::gl::image_component_vulkan + +
+
+ + + + diff --git a/classtz_1_1gl_1_1icomponent.png b/classtz_1_1gl_1_1icomponent.png new file mode 100644 index 0000000000..9c05ed6897 Binary files /dev/null and b/classtz_1_1gl_1_1icomponent.png differ diff --git a/classtz_1_1gl_1_1image__component__ogl.html b/classtz_1_1gl_1_1image__component__ogl.html new file mode 100644 index 0000000000..43c5968dce --- /dev/null +++ b/classtz_1_1gl_1_1image__component__ogl.html @@ -0,0 +1,113 @@ + + + + + + + +Topaz: tz::gl::image_component_ogl Class Reference + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.1.0.1 +
+
C++20 Graphics Engine
+
+
+ + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+
tz::gl::image_component_ogl Class Reference
+
+
+
+Inheritance diagram for tz::gl::image_component_ogl:
+
+
+ + +tz::gl::icomponent + +
+
+ + + + diff --git a/classtz_1_1gl_1_1image__component__ogl.png b/classtz_1_1gl_1_1image__component__ogl.png new file mode 100644 index 0000000000..e2f3cee16e Binary files /dev/null and b/classtz_1_1gl_1_1image__component__ogl.png differ diff --git a/classtz_1_1gl_1_1image__component__vulkan.html b/classtz_1_1gl_1_1image__component__vulkan.html new file mode 100644 index 0000000000..60529585de --- /dev/null +++ b/classtz_1_1gl_1_1image__component__vulkan.html @@ -0,0 +1,113 @@ + + + + + + + +Topaz: tz::gl::image_component_vulkan Class Reference + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.1.0.1 +
+
C++20 Graphics Engine
+
+
+ + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+
tz::gl::image_component_vulkan Class Reference
+
+
+
+Inheritance diagram for tz::gl::image_component_vulkan:
+
+
+ + +tz::gl::icomponent + +
+
+ + + + diff --git a/classtz_1_1gl_1_1image__component__vulkan.png b/classtz_1_1gl_1_1image__component__vulkan.png new file mode 100644 index 0000000000..916eb1b8e5 Binary files /dev/null and b/classtz_1_1gl_1_1image__component__vulkan.png differ diff --git a/classtz_1_1gl_1_1image__output.html b/classtz_1_1gl_1_1image__output.html new file mode 100644 index 0000000000..56c4d6fa97 --- /dev/null +++ b/classtz_1_1gl_1_1image__output.html @@ -0,0 +1,114 @@ + + + + + + + +Topaz: tz::gl::image_output Class Reference + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.1.0.1 +
+
C++20 Graphics Engine
+
+
+ + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+
tz::gl::image_output Class Referencefinal
+
+
+
+Inheritance diagram for tz::gl::image_output:
+
+
+ + +tz::gl::ioutput +tz::unique_cloneable< T > + +
+
+ + + + diff --git a/classtz_1_1gl_1_1image__output.png b/classtz_1_1gl_1_1image__output.png new file mode 100644 index 0000000000..1579d68d0b Binary files /dev/null and b/classtz_1_1gl_1_1image__output.png differ diff --git a/classtz_1_1gl_1_1image__resource.html b/classtz_1_1gl_1_1image__resource.html new file mode 100644 index 0000000000..49ee090060 --- /dev/null +++ b/classtz_1_1gl_1_1image__resource.html @@ -0,0 +1,275 @@ + + + + + + + +Topaz: tz::gl::image_resource Class Reference + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.1.0.1 +
+
C++20 Graphics Engine
+
+
+ + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+
+Public Member Functions | +Static Public Member Functions
+
tz::gl::image_resource Class Reference
+
+
+ +

Represents a fixed-size, static Image to be used by a renderer or Processor. + More...

+ +

#include <resource.hpp>

+
+Inheritance diagram for tz::gl::image_resource:
+
+
+ + +tz::gl::resource +tz::gl::iresource +tz::unique_cloneable< T > + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Public Member Functions

+virtual void dbgui () final
 Display debug information about the resource.
 
- Public Member Functions inherited from tz::gl::resource
+virtual resource_type get_type () const final
 Retrieve the type of the resource.
 
virtual resource_access get_access () const final
 Retrieve access information about this resource when used in a renderer or Processor.
 
virtual const resource_flags & get_flags () const final
 Retrieve a field containing all flags applied to this resource.
 
+virtual std::span< const std::byte > data () const final
 Retrieve a read-only view into the resource data.
 
virtual std::span< std::byte > data () final
 Retrieve a read+write view into the resource data.
 
- Public Member Functions inherited from tz::gl::iresource
template<typename T >
std::span< const T > data_as () const
 Retrieve a read+write view into the resource data, interpreted as an array of some type.
 
template<typename T >
std::span< T > data_as ()
 Retrieve a read+write view into the resource data, interpreted as an array of some type.
 
+ + + + + + + + + + +

+Static Public Member Functions

static image_resource from_uninitialised (image_info info={})
 Create an image_resource where the image-data is uninitialised.
 
static image_resource from_memory (std::ranges::contiguous_range auto data, image_info info={})
 Create an image_resource using values existing in memory.
 
static image_resource null ()
 Create a null image_resource.
 
+

Detailed Description

+

Represents a fixed-size, static Image to be used by a renderer or Processor.

+

Member Function Documentation

+ +

◆ from_memory()

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + +
image_resource tz::gl::image_resource::from_memory (std::ranges::contiguous_range auto data,
image_info info = {} 
)
+
+static
+
+ +

Create an image_resource using values existing in memory.

+
Note
You should be able to optionally pass in braced-initializer-list expressions in for the data, so long as the types of the elements are easily deduceable.
+
Parameters
+ + +
dataRange containing a block of memory representing the image data. The length of the block should exactly match that of the image's size in bytes, or the behaviour is undefined.
+
+
+ +
+
+ +

◆ from_uninitialised()

+ +
+
+ + + + + +
+ + + + + + + + +
image_resource tz::gl::image_resource::from_uninitialised (image_info info = {})
+
+static
+
+ +

Create an image_resource where the image-data is uninitialised.

+

See image_info for details.

Returns
image_resource containing uninitialised image-data.
+ +
+
+ +

◆ null()

+ +
+
+ + + + + +
+ + + + + + + +
static image_resource tz::gl::image_resource::null ()
+
+inlinestatic
+
+ +

Create a null image_resource.

+

The format, dimensions and image values are all implementation-defined, but the access is guaranteed to be static_fixed.

+ +
+
+
+ + + + diff --git a/classtz_1_1gl_1_1image__resource.png b/classtz_1_1gl_1_1image__resource.png new file mode 100644 index 0000000000..51f86922ba Binary files /dev/null and b/classtz_1_1gl_1_1image__resource.png differ diff --git a/classtz_1_1gl_1_1ioutput.html b/classtz_1_1gl_1_1ioutput.html new file mode 100644 index 0000000000..54b4f90fc7 --- /dev/null +++ b/classtz_1_1gl_1_1ioutput.html @@ -0,0 +1,115 @@ + + + + + + + +Topaz: tz::gl::ioutput Class Reference + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.1.0.1 +
+
C++20 Graphics Engine
+
+
+ + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+
tz::gl::ioutput Class Referenceabstract
+
+
+
+Inheritance diagram for tz::gl::ioutput:
+
+
+ + +tz::unique_cloneable< T > +tz::gl::image_output +tz::gl::window_output + +
+
+ + + + diff --git a/classtz_1_1gl_1_1ioutput.png b/classtz_1_1gl_1_1ioutput.png new file mode 100644 index 0000000000..aa0fc52342 Binary files /dev/null and b/classtz_1_1gl_1_1ioutput.png differ diff --git a/classtz_1_1gl_1_1iresource.html b/classtz_1_1gl_1_1iresource.html new file mode 100644 index 0000000000..194f880b6d --- /dev/null +++ b/classtz_1_1gl_1_1iresource.html @@ -0,0 +1,324 @@ + + + + + + + +Topaz: tz::gl::iresource Class Reference + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.1.0.1 +
+
C++20 Graphics Engine
+
+
+ + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+
+Public Member Functions
+
tz::gl::iresource Class Referenceabstract
+
+
+ +

Interface for a renderer or Processor resource. + More...

+ +

#include <resource.hpp>

+
+Inheritance diagram for tz::gl::iresource:
+
+
+ + +tz::unique_cloneable< T > +tz::gl::resource +tz::gl::buffer_resource +tz::gl::image_resource + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Public Member Functions

+virtual resource_type get_type () const =0
 Retrieve the type of the resource.
 
virtual resource_access get_access () const =0
 Retrieve access information about this resource when used in a renderer or Processor.
 
+virtual std::span< const std::byte > data () const =0
 Retrieve a read-only view into the resource data.
 
virtual std::span< std::byte > data ()=0
 Retrieve a read+write view into the resource data.
 
template<typename T >
std::span< const T > data_as () const
 Retrieve a read+write view into the resource data, interpreted as an array of some type.
 
template<typename T >
std::span< T > data_as ()
 Retrieve a read+write view into the resource data, interpreted as an array of some type.
 
virtual const resource_flags & get_flags () const =0
 Retrieve a field containing all flags applied to this resource.
 
+virtual void dbgui ()=0
 Display debug information about the resource.
 
+

Detailed Description

+

Interface for a renderer or Processor resource.

+

Resources are subsidiary blocks of either buffer or image data which are used as assets within a shader. Shaders are used by either Renderers or Preprocessors.

+

Two concrete implementations of resources exist at present by default. These are:

+

Member Function Documentation

+ +

◆ data()

+ +
+
+ + + + + +
+ + + + + + + +
virtual std::span< std::byte > tz::gl::iresource::data ()
+
+pure virtual
+
+ +

Retrieve a read+write view into the resource data.

+
Precondition
If this resource is owned by a renderer or Processor, get_access() must return any of the dynamic values. Otherwise, the behaviour of a write is undefined.
+ +

Implemented in tz::gl::resource.

+ +
+
+ +

◆ data_as() [1/2]

+ +
+
+
+template<typename T >
+ + + + + +
+ + + + + + + +
std::span< T > tz::gl::iresource::data_as ()
+
+inline
+
+ +

Retrieve a read+write view into the resource data, interpreted as an array of some type.

+
Template Parameters
+ + +
TType to interpret. The resource data is expressed as an array of this type.
+
+
+ +
+
+ +

◆ data_as() [2/2]

+ +
+
+
+template<typename T >
+ + + + + +
+ + + + + + + +
std::span< const T > tz::gl::iresource::data_as () const
+
+inline
+
+ +

Retrieve a read+write view into the resource data, interpreted as an array of some type.

+
Template Parameters
+ + +
TType to interpret. The resource data is expressed as an array of this type.
+
+
+ +
+
+ +

◆ get_access()

+ +
+
+ + + + + +
+ + + + + + + +
virtual resource_access tz::gl::iresource::get_access () const
+
+pure virtual
+
+ +

Retrieve access information about this resource when used in a renderer or Processor.

+
Returns
resource_access corresponding to usage in a renderer or Processor.
+ +

Implemented in tz::gl::resource.

+ +
+
+ +

◆ get_flags()

+ +
+
+ + + + + +
+ + + + + + + +
virtual const resource_flags & tz::gl::iresource::get_flags () const
+
+pure virtual
+
+ +

Retrieve a field containing all flags applied to this resource.

+

If you didn't specify any flags for this resource, it will be empty.

+ +

Implemented in tz::gl::resource.

+ +
+
+
+ + + + diff --git a/classtz_1_1gl_1_1iresource.png b/classtz_1_1gl_1_1iresource.png new file mode 100644 index 0000000000..84f4058dcb Binary files /dev/null and b/classtz_1_1gl_1_1iresource.png differ diff --git a/classtz_1_1gl_1_1ogl2_1_1buffer.html b/classtz_1_1gl_1_1ogl2_1_1buffer.html new file mode 100644 index 0000000000..5ab79f58db --- /dev/null +++ b/classtz_1_1gl_1_1ogl2_1_1buffer.html @@ -0,0 +1,417 @@ + + + + + + + +Topaz: tz::gl::ogl2::buffer Class Reference + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.1.0.1 +
+
C++20 Graphics Engine
+
+
+ + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+
+Public Member Functions | +Static Public Member Functions
+
tz::gl::ogl2::buffer Class Reference
+
+
+ +

Documentation for OpenGL buffers. + More...

+ +

#include <buffer.hpp>

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Public Member Functions

 buffer (buffer_info info)
 Create a new buffer.
 
buffer_target get_target () const
 Retrieves the target to which the buffer is bound.
 
buffer_residency get_residency () const
 Retrieves the residency of the buffer.
 
+std::size_t size () const
 Retrieve the size of the buffer's data-store, in bytes.
 
void * map ()
 Map the buffer, receiving a CPU-visible pointer.
 
const void * map () const
 Map the buffer, receiving a CPU-visible pointer.
 
void unmap ()
 Unmap the buffer.
 
template<typename T >
std::span< T > map_as ()
 Map the buffer as an array of some type.
 
template<tz::const_type T>
std::span< T > map_as () const
 Map the buffer as an array of some type.
 
+void basic_bind () const
 Bind without a resource id (i.e you are an Index buffer).
 
+void bind_to_resource_id (unsigned int shader_resource_id) const
 Bind the buffer to a shader resource id.
 
bool is_null () const
 Query as to whether the buffer is a null buffer.
 
+ + + + +

+Static Public Member Functions

static buffer null ()
 Create a buffer which acts as a null buffer, that is, no operations are valid on it.
 
+

Detailed Description

+

Documentation for OpenGL buffers.

+

Constructor & Destructor Documentation

+ +

◆ buffer()

+ +
+
+ + + + + + + + +
tz::gl::ogl2::buffer::buffer (buffer_info info)
+
+ +

Create a new buffer.

+
Parameters
+ + +
infoSpecifies creation flags for the buffer.
+
+
+ +
+
+

Member Function Documentation

+ +

◆ get_residency()

+ +
+
+ + + + + + + +
buffer_residency tz::gl::ogl2::buffer::get_residency () const
+
+ +

Retrieves the residency of the buffer.

+
Returns
buffer residency.
+ +
+
+ +

◆ get_target()

+ +
+
+ + + + + + + +
buffer_target tz::gl::ogl2::buffer::get_target () const
+
+ +

Retrieves the target to which the buffer is bound.

+
Returns
buffer bind target.
+ +
+
+ +

◆ is_null()

+ +
+
+ + + + + + + +
bool tz::gl::ogl2::buffer::is_null () const
+
+ +

Query as to whether the buffer is a null buffer.

+

A null buffer is equivalent to buffer::null().

+ +
+
+ +

◆ map() [1/2]

+ +
+
+ + + + + + + +
void * tz::gl::ogl2::buffer::map ()
+
+ +

Map the buffer, receiving a CPU-visible pointer.

+
Precondition
The buffer must have been created with a dynamic residency. See buffer_residency::Dynamic. Otherwise, the behaviour is undefined.
+
Returns
Pointer to a block of memory of size this->size() bytes.
+ +
+
+ +

◆ map() [2/2]

+ +
+
+ + + + + + + +
const void * tz::gl::ogl2::buffer::map () const
+
+ +

Map the buffer, receiving a CPU-visible pointer.

+

Read-only.

Precondition
The buffer must have been created with a dynamic residency. See buffer_residency::Dynamic. Otherwise, the behaviour is undefined.
+
Returns
Pointer to a block of memory of size this->size() bytes.
+ +
+
+ +

◆ map_as() [1/2]

+ +
+
+
+template<typename T >
+ + + + + +
+ + + + + + + +
std::span< T > tz::gl::ogl2::buffer::map_as ()
+
+inline
+
+ +

Map the buffer as an array of some type.

+
Precondition
The buffer must have been created with a dynamic residency. See buffer_residency::Dynamic. Otherwise, the behaviour is undefined.
+
Template Parameters
+ + +
TType of which to retrieve an array of.
+
+
+
Returns
Span representing a view into an array of the provided type.
+ +
+
+ +

◆ map_as() [2/2]

+ +
+
+
+template<tz::const_type T>
+ + + + + +
+ + + + + + + +
std::span< T > tz::gl::ogl2::buffer::map_as () const
+
+inline
+
+ +

Map the buffer as an array of some type.

+

Read-only.

Precondition
The buffer must have been created with a dynamic residency. See buffer_residency::Dynamic. Otherwise, the behaviour is undefined.
+
Template Parameters
+ + +
TType of which to retrieve an array of.
+
+
+
Returns
Span representing a view into an array of the provided type.
+ +
+
+ +

◆ null()

+ +
+
+ + + + + +
+ + + + + + + +
buffer tz::gl::ogl2::buffer::null ()
+
+static
+
+ +

Create a buffer which acts as a null buffer, that is, no operations are valid on it.

+
Returns
Null buffer.
+ +
+
+ +

◆ unmap()

+ +
+
+ + + + + + + +
void tz::gl::ogl2::buffer::unmap ()
+
+ +

Unmap the buffer.

+
Precondition
The buffer must have previously been mapped via map() or equivalent. Otherwise, the behaviour is undefined.
+ +
+
+
+ + + + diff --git a/classtz_1_1gl_1_1ogl2_1_1framebuffer.html b/classtz_1_1gl_1_1ogl2_1_1framebuffer.html new file mode 100644 index 0000000000..704379e943 --- /dev/null +++ b/classtz_1_1gl_1_1ogl2_1_1framebuffer.html @@ -0,0 +1,283 @@ + + + + + + + +Topaz: tz::gl::ogl2::framebuffer Class Reference + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.1.0.1 +
+
C++20 Graphics Engine
+
+
+ + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+
+Public Member Functions | +Static Public Member Functions
+
tz::gl::ogl2::framebuffer Class Reference
+
+
+ +

Represents an OpenGL framebuffer object. + More...

+ +

#include <framebuffer.hpp>

+ + + + + + + + + + + + + + + + + + + + + + + +

+Public Member Functions

 framebuffer (framebuffer_info info)
 Create a new framebuffer.
 
bool has_depth_attachment () const
 Query as to whether the framebuffer has a depth attachment.
 
unsigned int colour_attachment_count () const
 Retrieve the number of colour attachments associated with the framebuffer.
 
tz::vec2ui get_dimensions () const
 Retrieve the dimensions {width, height}, in pixels, of every framebuffer attachment.
 
+void bind () const
 Bind the framebuffer, causing subsequent draw calls to render into the framebuffer instead of its previous target.
 
+void clear () const
 Clear the framebuffer attachments, setting them to known values.
 
bool is_null () const
 Query as to whether this is the null framebuffer.
 
+ + + + +

+Static Public Member Functions

static framebuffer null ()
 Retrieve the null framebuffer.
 
+

Detailed Description

+

Represents an OpenGL framebuffer object.

+

Constructor & Destructor Documentation

+ +

◆ framebuffer()

+ +
+
+ + + + + + + + +
tz::gl::ogl2::framebuffer::framebuffer (framebuffer_info info)
+
+ +

Create a new framebuffer.

+
Parameters
+ + +
infoCreation flags for the framebuffer.
+
+
+ +
+
+

Member Function Documentation

+ +

◆ colour_attachment_count()

+ +
+
+ + + + + + + +
unsigned int tz::gl::ogl2::framebuffer::colour_attachment_count () const
+
+ +

Retrieve the number of colour attachments associated with the framebuffer.

+
Returns
number of colour attachments.
+ +
+
+ +

◆ get_dimensions()

+ +
+
+ + + + + + + +
tz::vec2ui tz::gl::ogl2::framebuffer::get_dimensions () const
+
+ +

Retrieve the dimensions {width, height}, in pixels, of every framebuffer attachment.

+
Note
Every attachment must have size matching this.
+ +
+
+ +

◆ has_depth_attachment()

+ +
+
+ + + + + + + +
bool tz::gl::ogl2::framebuffer::has_depth_attachment () const
+
+ +

Query as to whether the framebuffer has a depth attachment.

+

If the framebuffer is a null framebuffer, then this will return whether we have enabled depth testing or not.

Returns
True if depth attachment exists, false otherwise.
+ +
+
+ +

◆ is_null()

+ +
+
+ + + + + + + +
bool tz::gl::ogl2::framebuffer::is_null () const
+
+ +

Query as to whether this is the null framebuffer.

+
Returns
True if this is the null framebuffer, otherwise false.
+ +
+
+ +

◆ null()

+ +
+
+ + + + + +
+ + + + + + + +
framebuffer tz::gl::ogl2::framebuffer::null ()
+
+static
+
+ +

Retrieve the null framebuffer.

+

The null framebuffer represents the window (note that Topaz applications can only have a single window).

Returns
Null framebuffer.
+ +
+
+
+ + + + diff --git a/classtz_1_1gl_1_1ogl2_1_1image.html b/classtz_1_1gl_1_1ogl2_1_1image.html new file mode 100644 index 0000000000..4f69335b70 --- /dev/null +++ b/classtz_1_1gl_1_1ogl2_1_1image.html @@ -0,0 +1,357 @@ + + + + + + + +Topaz: tz::gl::ogl2::image Class Reference + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.1.0.1 +
+
C++20 Graphics Engine
+
+
+ + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+
+Public Types | +Public Member Functions | +Static Public Member Functions
+
+
+
+ +

Documentation for OpenGL images. + More...

+ +

#include <image.hpp>

+ + + + + +

+Public Types

+using bindless_handle = GLuint64
 Opaque handle for a bindless texture.
 
+ + + + + + + + + + + + + + + + + + + + + + + + + + +

+Public Member Functions

 image (image_info info)
 Create a new image.
 
image_format get_format () const
 
tz::vec2ui get_dimensions () const
 
+const samplerget_sampler () const
 Retrieves the state specifying how the image is sampled in a shader.
 
void set_data (std::span< const std::byte > texture_data)
 Set the image data.
 
void make_bindless ()
 Make the image bindless, allowing for an alternate way to reference the image as a shader resource, via a bindless handle.
 
bool is_bindless () const
 Query as to whether this image is bindless.
 
bindless_handle get_bindless_handle () const
 Retrieves the bindless texture handle for this bindless image.
 
bool is_null () const
 Query as to whether the image is a null image.
 
+ + + + +

+Static Public Member Functions

static image null ()
 Create an image which acts as a null image, that is, no operations are valid on it.
 
+

Detailed Description

+

Documentation for OpenGL images.

+

Constructor & Destructor Documentation

+ +

◆ image()

+ +
+
+ + + + + + + + +
tz::gl::ogl2::image::image (image_info info)
+
+ +

Create a new image.

+
Parameters
+ + +
infoSpecifies creation flags for the image.
+
+
+ +
+
+

Member Function Documentation

+ +

◆ get_bindless_handle()

+ +
+
+ + + + + + + +
image::bindless_handle tz::gl::ogl2::image::get_bindless_handle () const
+
+ +

Retrieves the bindless texture handle for this bindless image.

+
Precondition
image must be bindless, otherwise the behaviour is undefined.
+
Returns
Bindless image handle.
+ +
+
+ +

◆ get_dimensions()

+ +
+
+ + + + + + + +
tz::vec2ui tz::gl::ogl2::image::get_dimensions () const
+
+
Returns
{width, height} of the image, in pixels.
+ +
+
+ +

◆ get_format()

+ +
+
+ + + + + + + +
image_format tz::gl::ogl2::image::get_format () const
+
+
Returns
image_format of the image's data.
+ +
+
+ +

◆ is_bindless()

+ +
+
+ + + + + + + +
bool tz::gl::ogl2::image::is_bindless () const
+
+ +

Query as to whether this image is bindless.

+
Returns
True if the image is bindless, otherwise false.
+ +
+
+ +

◆ is_null()

+ +
+
+ + + + + + + +
bool tz::gl::ogl2::image::is_null () const
+
+ +

Query as to whether the image is a null image.

+

A null image is equivalent to image::null().

+ +
+
+ +

◆ make_bindless()

+ +
+
+ + + + + + + +
void tz::gl::ogl2::image::make_bindless ()
+
+ +

Make the image bindless, allowing for an alternate way to reference the image as a shader resource, via a bindless handle.

+

See image::get_bindless_handle() for usage. Once the image is made bindless, the action cannot be undone.

Precondition
image cannot already be bindless, otherwise the behaviour is undefined (this is also a major hazard and may cause a GPU crash).
+ +
+
+ +

◆ null()

+ +
+
+ + + + + +
+ + + + + + + +
image tz::gl::ogl2::image::null ()
+
+static
+
+ +

Create an image which acts as a null image, that is, no operations are valid on it.

+
Returns
Null image.
+ +
+
+ +

◆ set_data()

+ +
+
+ + + + + + + + +
void tz::gl::ogl2::image::set_data (std::span< const std::byte > texture_data)
+
+ +

Set the image data.

+
Parameters
+ + +
texture_dataView into bytes representing the data. Should match the format and dimensions of this texture, as an array of rows of pixel data.
+
+
+ +
+
+
+ + + + diff --git a/classtz_1_1gl_1_1ogl2_1_1render__buffer.html b/classtz_1_1gl_1_1ogl2_1_1render__buffer.html new file mode 100644 index 0000000000..63a4d23af7 --- /dev/null +++ b/classtz_1_1gl_1_1ogl2_1_1render__buffer.html @@ -0,0 +1,104 @@ + + + + + + + +Topaz: tz::gl::ogl2::render_buffer Class Reference + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.1.0.1 +
+
C++20 Graphics Engine
+
+
+ + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+
tz::gl::ogl2::render_buffer Class Reference
+
+
+
+ + + + diff --git a/classtz_1_1gl_1_1ogl2_1_1shader.html b/classtz_1_1gl_1_1ogl2_1_1shader.html new file mode 100644 index 0000000000..8f99a0b141 --- /dev/null +++ b/classtz_1_1gl_1_1ogl2_1_1shader.html @@ -0,0 +1,240 @@ + + + + + + + +Topaz: tz::gl::ogl2::shader Class Reference + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.1.0.1 +
+
C++20 Graphics Engine
+
+
+ + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+
+Data Structures | +Public Member Functions | +Static Public Member Functions
+
tz::gl::ogl2::shader Class Reference
+
+
+ +

Represents an OpenGL shader program. + More...

+ +

#include <shader.hpp>

+ + + + + +

+Data Structures

struct  link_result
 State of a shader module compilation attempt. More...
 
+ + + + + + + + + + + + + +

+Public Member Functions

 shader (shader_info info)
 Create a new shader program.
 
link_result link ()
 Attempt to link and validate the shader program.
 
+void use () const
 Set the program as in-use, causing subsequent gl commands to use it as the shader program.
 
bool is_null () const
 Query as to whether this is a null shader.
 
+ + + + +

+Static Public Member Functions

static shader null ()
 Create the null shader.
 
+

Detailed Description

+

Represents an OpenGL shader program.

+

Constructor & Destructor Documentation

+ +

◆ shader()

+ +
+
+ + + + + + + + +
tz::gl::ogl2::shader::shader (shader_info info)
+
+ +

Create a new shader program.

+
Parameters
+ + +
infoInformation about modules contained within the shader program.
+
+
+ +
+
+

Member Function Documentation

+ +

◆ is_null()

+ +
+
+ + + + + + + +
bool tz::gl::ogl2::shader::is_null () const
+
+ +

Query as to whether this is a null shader.

+

See Shader::null().

+ +
+
+ +

◆ link()

+ +
+
+ + + + + + + +
shader::link_result tz::gl::ogl2::shader::link ()
+
+ +

Attempt to link and validate the shader program.

+

This could fail.

Returns
Result state describing the success of the link + validate attempts.
+ +
+
+ +

◆ null()

+ +
+
+ + + + + +
+ + + + + + + +
shader tz::gl::ogl2::shader::null ()
+
+static
+
+ +

Create the null shader.

+

Operations are invalid on the null shader.

+ +
+
+
+ + + + diff --git a/classtz_1_1gl_1_1ogl2_1_1shader__module.html b/classtz_1_1gl_1_1ogl2_1_1shader__module.html new file mode 100644 index 0000000000..b49f921ce8 --- /dev/null +++ b/classtz_1_1gl_1_1ogl2_1_1shader__module.html @@ -0,0 +1,173 @@ + + + + + + + +Topaz: tz::gl::ogl2::shader_module Class Reference + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.1.0.1 +
+
C++20 Graphics Engine
+
+
+ + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+
+Data Structures | +Public Member Functions
+
tz::gl::ogl2::shader_module Class Reference
+
+
+ +

Represents an OpenGL shader. + More...

+ +

#include <shader.hpp>

+ + + + + +

+Data Structures

struct  compile_result
 State of a shader module compilation attempt. More...
 
+ + + + + + + +

+Public Member Functions

 shader_module (shader_module_info info)
 Create a new shader module.
 
compile_result compile ()
 Attempt to compile the shader source.
 
+

Detailed Description

+

Represents an OpenGL shader.

+

Constructor & Destructor Documentation

+ +

◆ shader_module()

+ +
+
+ + + + + + + + +
tz::gl::ogl2::shader_module::shader_module (shader_module_info info)
+
+ +

Create a new shader module.

+

You should not need to invoke this directly - The shader program is responsible for constructing all of its modules.

+ +
+
+

Member Function Documentation

+ +

◆ compile()

+ +
+
+ + + + + + + +
shader_module::compile_result tz::gl::ogl2::shader_module::compile ()
+
+ +

Attempt to compile the shader source.

+

This could fail.

Returns
Result state describing the success of the compilation attempt.
+ +
+
+
+ + + + diff --git a/classtz_1_1gl_1_1ogl2_1_1vertex__array.html b/classtz_1_1gl_1_1ogl2_1_1vertex__array.html new file mode 100644 index 0000000000..d75efb9f62 --- /dev/null +++ b/classtz_1_1gl_1_1ogl2_1_1vertex__array.html @@ -0,0 +1,249 @@ + + + + + + + +Topaz: tz::gl::ogl2::vertex_array Class Reference + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.1.0.1 +
+
C++20 Graphics Engine
+
+
+ + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+
+Public Member Functions | +Static Public Member Functions
+
tz::gl::ogl2::vertex_array Class Reference
+
+
+ +

Wrapper for an OpenGL VAO. + More...

+ +

#include <vertex_array.hpp>

+ + + + + + + + + + + + + + + + + +

+Public Member Functions

vertex_array ()
 Create a new VAO.
 
+void bind ()
 Bind the VAO, causing subsequent GL commands using VAO state to use this.
 
void draw (unsigned int triangle_count, bool tessellation=false)
 Emit a single draw call, drawing a set number of triangles.
 
void draw_indexed (unsigned int triangle_count, const buffer &index_buffer, bool tessellation=false)
 Emit a single draw call, drawing a set number of triangles, assuming an index buffer has already been bound.
 
+bool is_null () const
 Query as to whether this is a null vertex array, which is equivalent to vertex_array::null().
 
+ + + + +

+Static Public Member Functions

static vertex_array null ()
 Retrieve the Null vertex_array.
 
+

Detailed Description

+

Wrapper for an OpenGL VAO.

+

Member Function Documentation

+ +

◆ draw()

+ +
+
+ + + + + + + + + + + + + + + + + + +
void tz::gl::ogl2::vertex_array::draw (unsigned int triangle_count,
bool tessellation = false 
)
+
+ +

Emit a single draw call, drawing a set number of triangles.

+

Remember that vertex attributes are not supported in this backend, so you will source input data from either hard-coded shader values or from UBO/SSBO shader resources.

Parameters
+ + +
triangle_countnumber of triangles to draw.
+
+
+ +
+
+ +

◆ draw_indexed()

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
void tz::gl::ogl2::vertex_array::draw_indexed (unsigned int triangle_count,
const bufferindex_buffer,
bool tessellation = false 
)
+
+ +

Emit a single draw call, drawing a set number of triangles, assuming an index buffer has already been bound.

+

Remember that vertex attributes are not supported in this backend, so you will source input data from either hard-coded shader values or from UBO/SSBO shader resources.

Parameters
+ + +
triangle_countnumber of triangles to draw.
+
+
+ +
+
+ +

◆ null()

+ +
+
+ + + + + +
+ + + + + + + +
vertex_array tz::gl::ogl2::vertex_array::null ()
+
+static
+
+ +

Retrieve the Null vertex_array.

+

Binding the null vertex array is equivalent to unbinding a vertex array. It is invalid to attempt to perform draws or computes using the null vertex array.

+ +
+
+
+ + + + diff --git a/classtz_1_1gl_1_1renderer.html b/classtz_1_1gl_1_1renderer.html new file mode 100644 index 0000000000..51a9beeea7 --- /dev/null +++ b/classtz_1_1gl_1_1renderer.html @@ -0,0 +1,341 @@ + + + + + + + +Topaz: tz::gl::renderer Class Reference + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.1.0.1 +
+
C++20 Graphics Engine
+
+
+ + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+
+Public Member Functions
+
tz::gl::renderer Class Reference
+
+
+ +

Implements tz::gl::renderer_type. + More...

+ +

#include <renderer.hpp>

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Public Member Functions

+unsigned int resource_count () const
 Retrieves the number of resources used by the renderer.
 
const iresourceget_resource (tz::gl::resource_handle rh) const
 Retrieves a pointer to the resource via its associated handle.
 
iresourceget_resource (tz::gl::resource_handle rh)
 Retrieves a pointer to the resource via its associated handle.
 
const ioutputget_output () const
 Retrieve the output that this renderer draws to.
 
ioutputget_output ()
 Retrieve the output that this renderer draws to.
 
tz::gl::renderer_options get_options () const
 Retrieve the set of enabled tz::gl::renderer_option flags used by this renderer.
 
const tz::gl::render_stateget_state () const
 Retrieve the current render state.
 
void render ()
 Submit the renderer's work to the GPU.
 
void render (std::size_t tri_count)
 Submit the renderer's work to the GPU.
 
+

Detailed Description

+

Implements tz::gl::renderer_type.

+

Member Function Documentation

+ +

◆ get_options()

+ +
+
+ + + + + + + +
tz::gl::renderer_options tz::gl::renderer::get_options () const
+
+ +

Retrieve the set of enabled tz::gl::renderer_option flags used by this renderer.

+
Returns
Set of options used by the renderer.
+ +
+
+ +

◆ get_output() [1/2]

+ +
+
+ + + + + + + +
ioutput * tz::gl::renderer::get_output ()
+
+ +

Retrieve the output that this renderer draws to.

+
Returns
Pointer to the output, or nullptr if there is no output (Meaning the renderer draws directly to the window).
+ +
+
+ +

◆ get_output() [2/2]

+ +
+
+ + + + + + + +
const ioutput * tz::gl::renderer::get_output () const
+
+ +

Retrieve the output that this renderer draws to.

+
Returns
Pointer to the output, or nullptr if there is no output (Meaning the renderer draws directly to the window).
+ +
+
+ +

◆ get_resource() [1/2]

+ +
+
+ + + + + + + + +
iresource * tz::gl::renderer::get_resource (tz::gl::resource_handle rh)
+
+ +

Retrieves a pointer to the resource via its associated handle.

+
Precondition
The handle rh must have been retrieved from a prior call to tz::gl::renderer_info::add_resource() or tz::gl::renderer_info::ref_resource(), where the tz::gl::renderer_info was later used by tz::gl::device::create_renderer() to create the current renderer object. Otherwise, the behaviour is undefined.
+
Parameters
+ + +
rhHandle corresponding to the resource.
+
+
+
Returns
Pointer to the associated resource, or nullptr if no such resource exists.
+ +
+
+ +

◆ get_resource() [2/2]

+ +
+
+ + + + + + + + +
const iresource * tz::gl::renderer::get_resource (tz::gl::resource_handle rh) const
+
+ +

Retrieves a pointer to the resource via its associated handle.

+
Precondition
The handle rh must have been retrieved from a prior call to tz::gl::renderer_info::add_resource() or tz::gl::renderer_info::ref_resource(), where the tz::gl::renderer_info was later used by tz::gl::device::create_renderer() to create the current renderer object. Otherwise, the behaviour is undefined.
+
Parameters
+ + +
rhHandle corresponding to the resource.
+
+
+
Returns
Pointer to the associated resource, or nullptr if no such resource exists.
+ +
+
+ +

◆ get_state()

+ +
+
+ + + + + + + +
const tz::gl::render_state & tz::gl::renderer::get_state () const
+
+ +

Retrieve the current render state.

+
Returns
Information about the renderer's current state.
+ +
+
+ +

◆ render() [1/2]

+ +
+
+ + + + + + + +
void tz::gl::renderer::render ()
+
+ +

Submit the renderer's work to the GPU.

+

This function returns instantly.

    +
  • To have this function block the current thread until the work is complete, see tz::gl::renderer_option::render_wait.
  • +
  • There is no way to query whether the GPU work is complete after-the-fact. However, you may be interested in renderer_dependencies (WIP).
  • +
+

If this is a graphics renderer, the number of triangles submitted in the draw call will be equal to the most recently provided triangle count in a previous invocation to tz::gl::renderer::render(std::size_t). If this method was never invoked on this renderer object, a triangle count of 0 will be used.

+ +
+
+ +

◆ render() [2/2]

+ +
+
+ + + + + + + + +
void tz::gl::renderer::render (std::size_t tri_count)
+
+ +

Submit the renderer's work to the GPU.

+

This function returns instantly.

    +
  • To have this function block the current thread until the work is complete, see tz::gl::renderer_option::render_wait.
  • +
  • There is no way to query whether the GPU work is complete after-the-fact. However, you may be interested in renderer_dependencies (WIP).
  • +
+
Parameters
+ + +
tri_countThe number of triangles that will be drawn by the renderer.
+
+
+
    +
  • If the renderer has an index buffer, tri_count refers instead to the number of indices that will be drawn by the renderer.
  • +
  • If the renderer has a draw-indirect buffer, tri_count is ignored.
  • +
  • If the renderer is a compute renderer, tri_count is ignored.
  • +
+ +
+
+
+ + + + diff --git a/classtz_1_1gl_1_1renderer__command__processor.html b/classtz_1_1gl_1_1renderer__command__processor.html new file mode 100644 index 0000000000..1a93300b21 --- /dev/null +++ b/classtz_1_1gl_1_1renderer__command__processor.html @@ -0,0 +1,119 @@ + + + + + + + +Topaz: tz::gl::renderer_command_processor Class Reference + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.1.0.1 +
+
C++20 Graphics Engine
+
+
+ + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+
tz::gl::renderer_command_processor Class Reference
+
+
+
+Inheritance diagram for tz::gl::renderer_command_processor:
+
+
+ + +tz::gl::renderer_pipeline +tz::gl::renderer_output_manager +tz::gl::renderer_descriptor_manager +tz::gl::renderer_resource_manager +tz::gl::AssetStorageCommon< Asset > +tz::gl::renderer_vulkan_base +tz::gl::renderer_vulkan2 + +
+
+ + + + diff --git a/classtz_1_1gl_1_1renderer__command__processor.png b/classtz_1_1gl_1_1renderer__command__processor.png new file mode 100644 index 0000000000..85d68fef31 Binary files /dev/null and b/classtz_1_1gl_1_1renderer__command__processor.png differ diff --git a/classtz_1_1gl_1_1renderer__descriptor__manager.html b/classtz_1_1gl_1_1renderer__descriptor__manager.html new file mode 100644 index 0000000000..8f47fdd9b8 --- /dev/null +++ b/classtz_1_1gl_1_1renderer__descriptor__manager.html @@ -0,0 +1,119 @@ + + + + + + + +Topaz: tz::gl::renderer_descriptor_manager Class Reference + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.1.0.1 +
+
C++20 Graphics Engine
+
+
+ + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+
tz::gl::renderer_descriptor_manager Class Reference
+
+
+
+Inheritance diagram for tz::gl::renderer_descriptor_manager:
+
+
+ + +tz::gl::renderer_resource_manager +tz::gl::AssetStorageCommon< Asset > +tz::gl::renderer_vulkan_base +tz::gl::renderer_output_manager +tz::gl::renderer_pipeline +tz::gl::renderer_command_processor +tz::gl::renderer_vulkan2 + +
+
+ + + + diff --git a/classtz_1_1gl_1_1renderer__descriptor__manager.png b/classtz_1_1gl_1_1renderer__descriptor__manager.png new file mode 100644 index 0000000000..82f1b2d721 Binary files /dev/null and b/classtz_1_1gl_1_1renderer__descriptor__manager.png differ diff --git a/classtz_1_1gl_1_1renderer__info.html b/classtz_1_1gl_1_1renderer__info.html new file mode 100644 index 0000000000..5d072219ca --- /dev/null +++ b/classtz_1_1gl_1_1renderer__info.html @@ -0,0 +1,393 @@ + + + + + + + +Topaz: tz::gl::renderer_info Class Reference + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.1.0.1 +
+
C++20 Graphics Engine
+
+
+ + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+
+Public Member Functions
+
tz::gl::renderer_info Class Reference
+
+
+ +

Helper struct which the user can use to specify which inputs, resources they want and where they want a renderer to render to. + More...

+ +

#include <renderer.hpp>

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Public Member Functions

+unsigned int resource_count () const
 Retrieve the number of resources.
 
const iresourceget_resource (resource_handle handle)
 Retrieve the resource corresponding to the given handle.
 
std::vector< const iresource * > get_resources () const
 Retrieve a span containing all of the specified resources.
 
resource_handle add_resource (const iresource &resource)
 Add a new resource, which will be used by a renderer which is created from this helper struct.
 
resource_handle ref_resource (icomponent *component)
 Deprecated.
 
resource_handle ref_resource (renderer_handle ren, resource_handle res)
 Adds a resource to this renderer which already exists and is owned by another renderer.
 
void set_output (const ioutput &output)
 Renderers always render into something.
 
const ioutputget_output () const
 Retrieve the current render output (read-only).
 
+const renderer_optionsget_options () const
 Retrieve the currently specified options which will be used by the renderer.
 
+void set_options (renderer_options options)
 Set the currently specified options which will be used by the renderer.
 
void add_dependency (renderer_handle dependency)
 Set the pending renderer to be dependent on the specified renderer.
 
+render_statestate ()
 Read/write information about the state of the renderer when it is created.
 
+const render_statestate () const
 Read-only information about the state of the renderer when it is created.
 
+shader_infoshader ()
 Read/write information about the shader that will be built for the renderer.
 
+const shader_infoshader () const
 Read-only information about the shader that will be built for the renderer.
 
void debug_name (std::string debug_name)
 Set the debug name of the spawned renderer.
 
+std::string debug_get_name () const
 Retrieve the debug name which will be used for the spawned renderer.
 
+

Detailed Description

+

Helper struct which the user can use to specify which inputs, resources they want and where they want a renderer to render to.

+

This is likely going to be refactored at some point because it doesn't do any Vulkan-specific magic.

+

Member Function Documentation

+ +

◆ add_dependency()

+ +
+
+ + + + + + + + +
void tz::gl::renderer_info::add_dependency (renderer_handle dependency)
+
+ +

Set the pending renderer to be dependent on the specified renderer.

+

This means that when render() is invoked, the GPU will wait on completion of render-work of the specified renderer before the render work of this renderer begins. This also means that the specified renderer must run each time this is ran, ahead-of-time.

+ +
+
+ +

◆ add_resource()

+ +
+
+ + + + + + + + +
resource_handle tz::gl::renderer_info::add_resource (const iresourceresource)
+
+ +

Add a new resource, which will be used by a renderer which is created from this helper struct.

+
Parameters
+ + +
resourceresource which will be owned by a renderer.
+
+
+
Returns
Handle corresponding to the resource. If you want to retrieve the resource later, you should keep ahold of this handle.
+ +
+
+ +

◆ debug_name()

+ +
+
+ + + + + + + + +
void tz::gl::renderer_info::debug_name (std::string debug_name)
+
+ +

Set the debug name of the spawned renderer.

+

By default, the debug name is a compact description of the renderer.

Note
This only has an affect on debug builds.
+ +
+
+ +

◆ get_output()

+ +
+
+ + + + + + + +
const ioutput * tz::gl::renderer_info::get_output () const
+
+ +

Retrieve the current render output (read-only).

+

This may return nullptr, meaning that the main window will be rendered into.

+ +
+
+ +

◆ get_resource()

+ +
+
+ + + + + + + + +
const iresource * tz::gl::renderer_info::get_resource (resource_handle handle)
+
+ +

Retrieve the resource corresponding to the given handle.

+
Parameters
+ + +
Handlehandle returned from a previous call to add_resource. If this handle came from a different renderer_info, the behaviour is undefined.
+
+
+
Returns
Pointer to the resource.
+ +
+
+ +

◆ get_resources()

+ +
+
+ + + + + + + +
std::vector< const iresource * > tz::gl::renderer_info::get_resources () const
+
+ +

Retrieve a span containing all of the specified resources.

+

Size of the span is guaranteed to be equal to resource_count()

+ +
+
+ +

◆ ref_resource() [1/2]

+ +
+
+ + + + + + + + +
resource_handle tz::gl::renderer_info::ref_resource (icomponentcomponent)
+
+ +

Deprecated.

+

See ref_resource(renderer_handle, resource_handle)

+ +
+
+ +

◆ ref_resource() [2/2]

+ +
+
+ + + + + + + + + + + + + + + + + + +
resource_handle tz::gl::renderer_info::ref_resource (renderer_handle ren,
resource_handle res 
)
+
+ +

Adds a resource to this renderer which already exists and is owned by another renderer.

+
Parameters
+ + + +
renHandle associated with the existing renderer that owns the resource.
resHandle associated with the resource that should be referenced.
+
+
+ +
+
+ +

◆ set_output()

+ +
+
+ + + + + + + + +
void tz::gl::renderer_info::set_output (const ioutputoutput)
+
+ +

Renderers always render into something.

+

By default, it renders to the window (only one window is supported so no confusion there). You can however set it to render into something else, such as a TextureOutput if you want to render into the resource of another renderer.

+ +
+
+
+ + + + diff --git a/classtz_1_1gl_1_1renderer__ogl.html b/classtz_1_1gl_1_1renderer__ogl.html new file mode 100644 index 0000000000..04ce16e469 --- /dev/null +++ b/classtz_1_1gl_1_1renderer__ogl.html @@ -0,0 +1,341 @@ + + + + + + + +Topaz: tz::gl::renderer_ogl Class Reference + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.1.0.1 +
+
C++20 Graphics Engine
+
+
+ + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+
+Public Member Functions
+
+
+
+ +

renderer implementation which heavily calls into the backend at OpenGL Backend. + More...

+ +

#include <renderer.hpp>

+
+Inheritance diagram for tz::gl::renderer_ogl:
+
+
+ + +tz::gl::renderer_ogl_base + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Public Member Functions

 renderer_ogl (const renderer_info &info)
 Create a new renderer.
 
+unsigned int resource_count () const
 Retrieve the number of resources.
 
const iresourceget_resource (resource_handle handle) const
 Retrieve the resource (read-only) corresponding to the given handle.
 
iresourceget_resource (resource_handle handle)
 Retrieve the resource corresponding to the given handle.
 
const icomponentget_component (resource_handle handle) const
 Retrieve the component sourcing the resource (read-only) corresponding to the given handle.
 
icomponentget_component (resource_handle handle)
 Retrieve the component sourcing the resource corresponding to the given handle.
 
+const renderer_optionsget_options () const
 Retrieve options denoting extra features used by the renderer.
 
+const render_stateget_state () const
 Retrieve current state of the renderer.
 
void render ()
 Invoke the renderer, emitting a single draw call of a set number of triangles.
 
void edit (const renderer_edit_request &edit_request)
 Confirm changes to a renderer.
 
+

Detailed Description

+

renderer implementation which heavily calls into the backend at OpenGL Backend.

+

Constructor & Destructor Documentation

+ +

◆ renderer_ogl()

+ +
+
+ + + + + + + + +
tz::gl::renderer_ogl::renderer_ogl (const renderer_infoinfo)
+
+ +

Create a new renderer.

+
Parameters
+ + +
infoUser-exposed class which describes how many resources etc. we have and a high-level description of where we expect to render into.
+
+
+ +
+
+

Member Function Documentation

+ +

◆ edit()

+ +
+
+ + + + + + + + +
void tz::gl::renderer_ogl::edit (const renderer_edit_requestedit_request)
+
+ +

Confirm changes to a renderer.

+

Editing renderers is expensive, so it should only be done if absolutely necessary. If you are editing renderers on a per-frame basis, consider creating multiple different renderers upfront for each hot-path and switching between them as necessary instead.

Parameters
+ + +
edit_requestStructure specifying which edits to make.
+
+
+ +
+
+ +

◆ get_component() [1/2]

+ +
+
+ + + + + + + + +
icomponent * tz::gl::renderer_ogl::get_component (resource_handle handle)
+
+ +

Retrieve the component sourcing the resource corresponding to the given handle.

+
Parameters
+ + +
Handlehandle returned from a call to a renderer_info's add_resource. If this handle came from a renderer_info different to the one we were provided, the behaviour is undefined.
+
+
+
Returns
Pointer to the resource's underlying component.
+ +
+
+ +

◆ get_component() [2/2]

+ +
+
+ + + + + + + + +
const icomponent * tz::gl::renderer_ogl::get_component (resource_handle handle) const
+
+ +

Retrieve the component sourcing the resource (read-only) corresponding to the given handle.

+
Parameters
+ + +
Handlehandle returned from a call to a renderer_info's add_resource. If this handle came from a renderer_info different to the one we were provided, the behaviour is undefined.
+
+
+
Returns
Pointer to the resource's underlying component.
+ +
+
+ +

◆ get_resource() [1/2]

+ +
+
+ + + + + + + + +
iresource * tz::gl::renderer_ogl::get_resource (resource_handle handle)
+
+ +

Retrieve the resource corresponding to the given handle.

+
Parameters
+ + +
Handlehandle returned from a call to a renderer_info's add_resource. If this handle came from a renderer_info different to the one we were provided, the behaviour is undefined.
+
+
+
Returns
Pointer to the resource.
+ +
+
+ +

◆ get_resource() [2/2]

+ +
+
+ + + + + + + + +
const iresource * tz::gl::renderer_ogl::get_resource (resource_handle handle) const
+
+ +

Retrieve the resource (read-only) corresponding to the given handle.

+
Parameters
+ + +
Handlehandle returned from a call to a renderer_info's add_resource. If this handle came from a renderer_info different to the one we were provided, the behaviour is undefined.
+
+
+
Returns
Pointer to the resource.
+ +
+
+ +

◆ render()

+ +
+
+ + + + + + + +
void tz::gl::renderer_ogl::render ()
+
+ +

Invoke the renderer, emitting a single draw call of a set number of triangles.

+

The number of triangles rendered is equal to the number of triangles rendered in the previous draw-call. If this is the first draw, zero triangles are rendered.

+ +
+
+
+ + + + diff --git a/classtz_1_1gl_1_1renderer__ogl.png b/classtz_1_1gl_1_1renderer__ogl.png new file mode 100644 index 0000000000..3391f3c0eb Binary files /dev/null and b/classtz_1_1gl_1_1renderer__ogl.png differ diff --git a/classtz_1_1gl_1_1renderer__output__manager.html b/classtz_1_1gl_1_1renderer__output__manager.html new file mode 100644 index 0000000000..3c6a294b34 --- /dev/null +++ b/classtz_1_1gl_1_1renderer__output__manager.html @@ -0,0 +1,127 @@ + + + + + + + +Topaz: tz::gl::renderer_output_manager Class Reference + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.1.0.1 +
+
C++20 Graphics Engine
+
+
+ + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+
+Data Structures
+
tz::gl::renderer_output_manager Class Reference
+
+
+
+Inheritance diagram for tz::gl::renderer_output_manager:
+
+
+ + +tz::gl::renderer_descriptor_manager +tz::gl::renderer_resource_manager +tz::gl::AssetStorageCommon< Asset > +tz::gl::renderer_vulkan_base +tz::gl::renderer_pipeline +tz::gl::renderer_command_processor +tz::gl::renderer_vulkan2 + +
+ + + + +

+Data Structures

struct  render_target_t
 
+
+ + + + diff --git a/classtz_1_1gl_1_1renderer__output__manager.png b/classtz_1_1gl_1_1renderer__output__manager.png new file mode 100644 index 0000000000..7915887b32 Binary files /dev/null and b/classtz_1_1gl_1_1renderer__output__manager.png differ diff --git a/classtz_1_1gl_1_1renderer__pipeline.html b/classtz_1_1gl_1_1renderer__pipeline.html new file mode 100644 index 0000000000..994fd5464d --- /dev/null +++ b/classtz_1_1gl_1_1renderer__pipeline.html @@ -0,0 +1,121 @@ + + + + + + + +Topaz: tz::gl::renderer_pipeline Class Reference + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.1.0.1 +
+
C++20 Graphics Engine
+
+
+ + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+
+Data Structures
+
tz::gl::renderer_pipeline Class Reference
+
+
+
+Inheritance diagram for tz::gl::renderer_pipeline:
+
+
+ + +tz::gl::renderer_output_manager +tz::gl::renderer_descriptor_manager +tz::gl::renderer_resource_manager +tz::gl::AssetStorageCommon< Asset > +tz::gl::renderer_vulkan_base +tz::gl::renderer_command_processor +tz::gl::renderer_vulkan2 + +
+
+ + + + diff --git a/classtz_1_1gl_1_1renderer__pipeline.png b/classtz_1_1gl_1_1renderer__pipeline.png new file mode 100644 index 0000000000..d0c2e9b9da Binary files /dev/null and b/classtz_1_1gl_1_1renderer__pipeline.png differ diff --git a/classtz_1_1gl_1_1renderer__resource__manager.html b/classtz_1_1gl_1_1renderer__resource__manager.html new file mode 100644 index 0000000000..897b2d52b7 --- /dev/null +++ b/classtz_1_1gl_1_1renderer__resource__manager.html @@ -0,0 +1,119 @@ + + + + + + + +Topaz: tz::gl::renderer_resource_manager Class Reference + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.1.0.1 +
+
C++20 Graphics Engine
+
+
+ + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+
tz::gl::renderer_resource_manager Class Reference
+
+
+
+Inheritance diagram for tz::gl::renderer_resource_manager:
+
+
+ + +tz::gl::AssetStorageCommon< Asset > +tz::gl::renderer_vulkan_base +tz::gl::renderer_descriptor_manager +tz::gl::renderer_output_manager +tz::gl::renderer_pipeline +tz::gl::renderer_command_processor +tz::gl::renderer_vulkan2 + +
+
+ + + + diff --git a/classtz_1_1gl_1_1renderer__resource__manager.png b/classtz_1_1gl_1_1renderer__resource__manager.png new file mode 100644 index 0000000000..55dd8f412e Binary files /dev/null and b/classtz_1_1gl_1_1renderer__resource__manager.png differ diff --git a/classtz_1_1gl_1_1renderer__vulkan2.html b/classtz_1_1gl_1_1renderer__vulkan2.html new file mode 100644 index 0000000000..cafa6ef302 --- /dev/null +++ b/classtz_1_1gl_1_1renderer__vulkan2.html @@ -0,0 +1,119 @@ + + + + + + + +Topaz: tz::gl::renderer_vulkan2 Class Reference + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.1.0.1 +
+
C++20 Graphics Engine
+
+
+ + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+
tz::gl::renderer_vulkan2 Class Reference
+
+
+
+Inheritance diagram for tz::gl::renderer_vulkan2:
+
+
+ + +tz::gl::renderer_command_processor +tz::gl::renderer_pipeline +tz::gl::renderer_output_manager +tz::gl::renderer_descriptor_manager +tz::gl::renderer_resource_manager +tz::gl::AssetStorageCommon< Asset > +tz::gl::renderer_vulkan_base + +
+
+ + + + diff --git a/classtz_1_1gl_1_1renderer__vulkan2.png b/classtz_1_1gl_1_1renderer__vulkan2.png new file mode 100644 index 0000000000..3be1054cef Binary files /dev/null and b/classtz_1_1gl_1_1renderer__vulkan2.png differ diff --git a/classtz_1_1gl_1_1resource.html b/classtz_1_1gl_1_1resource.html new file mode 100644 index 0000000000..ab6a1d22c5 --- /dev/null +++ b/classtz_1_1gl_1_1resource.html @@ -0,0 +1,243 @@ + + + + + + + +Topaz: tz::gl::resource Class Reference + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.1.0.1 +
+
C++20 Graphics Engine
+
+
+ + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+
+Public Member Functions
+
tz::gl::resource Class Reference
+
+
+
+Inheritance diagram for tz::gl::resource:
+
+
+ + +tz::gl::iresource +tz::unique_cloneable< T > +tz::gl::buffer_resource +tz::gl::image_resource + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Public Member Functions

+virtual resource_type get_type () const final
 Retrieve the type of the resource.
 
virtual resource_access get_access () const final
 Retrieve access information about this resource when used in a renderer or Processor.
 
virtual const resource_flags & get_flags () const final
 Retrieve a field containing all flags applied to this resource.
 
+virtual std::span< const std::byte > data () const final
 Retrieve a read-only view into the resource data.
 
virtual std::span< std::byte > data () final
 Retrieve a read+write view into the resource data.
 
+virtual void dbgui () override
 Display debug information about the resource.
 
- Public Member Functions inherited from tz::gl::iresource
template<typename T >
std::span< const T > data_as () const
 Retrieve a read+write view into the resource data, interpreted as an array of some type.
 
template<typename T >
std::span< T > data_as ()
 Retrieve a read+write view into the resource data, interpreted as an array of some type.
 
+

Member Function Documentation

+ +

◆ data()

+ +
+
+ + + + + +
+ + + + + + + +
std::span< std::byte > tz::gl::resource::data ()
+
+finalvirtual
+
+ +

Retrieve a read+write view into the resource data.

+
Precondition
If this resource is owned by a renderer or Processor, get_access() must return any of the dynamic values. Otherwise, the behaviour of a write is undefined.
+ +

Implements tz::gl::iresource.

+ +
+
+ +

◆ get_access()

+ +
+
+ + + + + +
+ + + + + + + +
resource_access tz::gl::resource::get_access () const
+
+finalvirtual
+
+ +

Retrieve access information about this resource when used in a renderer or Processor.

+
Returns
resource_access corresponding to usage in a renderer or Processor.
+ +

Implements tz::gl::iresource.

+ +
+
+ +

◆ get_flags()

+ +
+
+ + + + + +
+ + + + + + + +
const resource_flags & tz::gl::resource::get_flags () const
+
+finalvirtual
+
+ +

Retrieve a field containing all flags applied to this resource.

+

If you didn't specify any flags for this resource, it will be empty.

+ +

Implements tz::gl::iresource.

+ +
+
+
+ + + + diff --git a/classtz_1_1gl_1_1resource.png b/classtz_1_1gl_1_1resource.png new file mode 100644 index 0000000000..8f618db389 Binary files /dev/null and b/classtz_1_1gl_1_1resource.png differ diff --git a/classtz_1_1gl_1_1shader__info.html b/classtz_1_1gl_1_1shader__info.html new file mode 100644 index 0000000000..60ffe5fbd0 --- /dev/null +++ b/classtz_1_1gl_1_1shader__info.html @@ -0,0 +1,104 @@ + + + + + + + +Topaz: tz::gl::shader_info Class Reference + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.1.0.1 +
+
C++20 Graphics Engine
+
+
+ + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+
tz::gl::shader_info Class Reference
+
+
+
+ + + + diff --git a/classtz_1_1gl_1_1vk2_1_1_binary_semaphore.html b/classtz_1_1gl_1_1vk2_1_1_binary_semaphore.html new file mode 100644 index 0000000000..3423a4e9f8 --- /dev/null +++ b/classtz_1_1gl_1_1vk2_1_1_binary_semaphore.html @@ -0,0 +1,125 @@ + + + + + + + +Topaz: tz::gl::vk2::BinarySemaphore Class Reference + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.1.0.1 +
+
C++20 Graphics Engine
+
+
+ + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+
tz::gl::vk2::BinarySemaphore Class Reference
+
+
+ +

Synchronisation primitive which is not interactable on the host and which has two states: + More...

+ +

#include <semaphore.hpp>

+
+Inheritance diagram for tz::gl::vk2::BinarySemaphore:
+
+
+ + +tz::gl::vk2::DebugNameable< T > +tz::gl::vk2::TimelineSemaphore + +
+

Detailed Description

+

Synchronisation primitive which is not interactable on the host and which has two states:

+ +
+ + + + diff --git a/classtz_1_1gl_1_1vk2_1_1_binary_semaphore.png b/classtz_1_1gl_1_1vk2_1_1_binary_semaphore.png new file mode 100644 index 0000000000..80eade9ee7 Binary files /dev/null and b/classtz_1_1gl_1_1vk2_1_1_binary_semaphore.png differ diff --git a/classtz_1_1gl_1_1vk2_1_1_buffer.html b/classtz_1_1gl_1_1vk2_1_1_buffer.html new file mode 100644 index 0000000000..24610283d5 --- /dev/null +++ b/classtz_1_1gl_1_1vk2_1_1_buffer.html @@ -0,0 +1,230 @@ + + + + + + + +Topaz: tz::gl::vk2::Buffer Class Reference + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.1.0.1 +
+
C++20 Graphics Engine
+
+
+ + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+
+Public Member Functions
+
tz::gl::vk2::Buffer Class Reference
+
+
+ +

Represents a linear array of data which can be used for various purposes. + More...

+ +

#include <buffer.hpp>

+
+Inheritance diagram for tz::gl::vk2::Buffer:
+
+
+ + +tz::gl::vk2::DebugNameable< T > + +
+ + + + + + + + + + + + + + + + + + + + + + + + +

+Public Member Functions

+const LogicalDeviceget_device () const
 Retrieve the LogicalDevice used to create the buffer.
 
+BufferUsageField get_usage () const
 Retrieve all usages of this buffer.
 
+MemoryResidency get_residency () const
 Retrieve the residency of the buffer's memory.
 
void * map ()
 If possible, map the memory to a CPU-size pointer.
 
template<typename T >
std::span< T > map_as ()
 Map the memory to a span of a given type.
 
+void unmap ()
 Unmap the buffer, causing any pointers created from Buffer::map to be invalidated.
 
std::size_t size () const
 Retrieve the size, in bytes, of the buffer.
 
+

Detailed Description

+

Represents a linear array of data which can be used for various purposes.

+

See BufferUsage for some examples of usages.

+

Member Function Documentation

+ +

◆ map()

+ +
+
+ + + + + + + +
void * tz::gl::vk2::Buffer::map ()
+
+ +

If possible, map the memory to a CPU-size pointer.

+
Returns
Pointer to mapped memory, or nullptr if something went wrong.
+ +
+
+ +

◆ map_as()

+ +
+
+
+template<typename T >
+ + + + + +
+ + + + + + + +
std::span< T > tz::gl::vk2::Buffer::map_as ()
+
+inline
+
+ +

Map the memory to a span of a given type.

+
Template Parameters
+ + +
TType to map to. Must be trivially_copyable.
+
+
+
Returns
Span of size Buffer::size on success. The mapping can fail, in which case an invalid span of size 0 is returned.
+ +
+
+ +

◆ size()

+ +
+
+ + + + + + + +
std::size_t tz::gl::vk2::Buffer::size () const
+
+ +

Retrieve the size, in bytes, of the buffer.

+
Returns
Size in bytes.
+ +
+
+
+ + + + diff --git a/classtz_1_1gl_1_1vk2_1_1_buffer.png b/classtz_1_1gl_1_1vk2_1_1_buffer.png new file mode 100644 index 0000000000..4652f625c8 Binary files /dev/null and b/classtz_1_1gl_1_1vk2_1_1_buffer.png differ diff --git a/classtz_1_1gl_1_1vk2_1_1_command_buffer.html b/classtz_1_1gl_1_1vk2_1_1_command_buffer.html new file mode 100644 index 0000000000..374e65e1d4 --- /dev/null +++ b/classtz_1_1gl_1_1vk2_1_1_command_buffer.html @@ -0,0 +1,196 @@ + + + + + + + +Topaz: tz::gl::vk2::CommandBuffer Class Reference + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.1.0.1 +
+
C++20 Graphics Engine
+
+
+ + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+
+Public Member Functions
+
+
+
+ +

Represents storage for vulkan commands, such as draw calls, binds, transfers etc... + More...

+ +

#include <command.hpp>

+ + + + + + + + + + + + + + + + + +

+Public Member Functions

const LogicalDeviceget_device () const
 CommandBuffers are allocated from a CommandPool.
 
CommandBufferRecording record ()
 Begin recording the CommandBuffer.
 
+bool is_recording () const
 Query as to whether this CommandBuffer is currently recording.
 
+bool has_ever_recorded () const
 Query as to whether this CommandBuffer is either recording, or ever has been recorded in the past, even if it doesn't contain any commands.
 
std::size_t command_count () const
 Retrieve the number of commands recorded into the buffer.
 
+

Detailed Description

+

Represents storage for vulkan commands, such as draw calls, binds, transfers etc...

+

Member Function Documentation

+ +

◆ command_count()

+ +
+
+ + + + + + + +
std::size_t tz::gl::vk2::CommandBuffer::command_count () const
+
+ +

Retrieve the number of commands recorded into the buffer.

+
Returns
number of commands within the buffer.
+ +
+
+ +

◆ get_device()

+ +
+
+ + + + + + + +
const LogicalDevice & tz::gl::vk2::CommandBuffer::get_device () const
+
+ +

CommandBuffers are allocated from a CommandPool.

+

Each pool was spawned from a LogicalDevice. Retrieve a reference to the LogicalDevice which spawned the pool which owns this buffer.

+ +
+
+ +

◆ record()

+ +
+
+ + + + + + + +
CommandBufferRecording tz::gl::vk2::CommandBuffer::record ()
+
+ +

Begin recording the CommandBuffer.

+
Precondition
The CommandBuffer is not currently being recorded. See CommandBuffer::is_recording
+
Returns
An object which can be used to invoke vulkan commands. The duration of the recording matches that of the returned object.
+ +
+
+
+ + + + diff --git a/classtz_1_1gl_1_1vk2_1_1_command_buffer_recording.html b/classtz_1_1gl_1_1vk2_1_1_command_buffer_recording.html new file mode 100644 index 0000000000..6a034543fd --- /dev/null +++ b/classtz_1_1gl_1_1vk2_1_1_command_buffer_recording.html @@ -0,0 +1,414 @@ + + + + + + + +Topaz: tz::gl::vk2::CommandBufferRecording Class Reference + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.1.0.1 +
+
C++20 Graphics Engine
+
+
+ + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+
+Data Structures | +Public Member Functions
+
tz::gl::vk2::CommandBufferRecording Class Reference
+
+
+ +

Represents the full duration of the recording process of an existing CommandBuffer. + More...

+ +

#include <command.hpp>

+ + + + + + + +

+Data Structures

class  DynamicRenderingRun
 
class  RenderPassRun
 Represents the full duration of an invocation of a RenderPass during a CommandBufferRecording. More...
 
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Public Member Functions

void bind_pipeline (VulkanCommand::BindPipeline command)
 Bind an existing GraphicsPipeline to some context.
 
void dispatch (VulkanCommand::Dispatch dispatch)
 Dispatch some compute work.
 
void draw (VulkanCommand::Draw draw)
 Perform a non-instanced draw.
 
void draw_indexed (VulkanCommand::DrawIndexed draw)
 Perform an indexed draw.
 
void draw_indirect (VulkanCommand::DrawIndirect draw)
 Perform some indirect, non-indexed draws.
 
void draw_indexed_indirect (VulkanCommand::DrawIndexedIndirect draw)
 Perform some indirect, indexed draws.
 
void bind_descriptor_sets (VulkanCommand::BindDescriptorSets command)
 Bind a list of DescriptorSet.
 
void buffer_copy_buffer (VulkanCommand::BufferCopyBuffer command)
 Copy data from one Buffer to another.
 
void buffer_copy_image (VulkanCommand::BufferCopyImage command)
 Copy data from one Buffer to an Image.
 
void image_copy_image (VulkanCommand::ImageCopyImage command)
 Copy data from one Image to another.
 
void bind_buffer (VulkanCommand::BindBuffer command)
 Bind a Buffer.
 
const CommandBufferget_command_buffer () const
 Retrieve the CommandBuffer that is currently being recorded.
 
+

Detailed Description

+

Represents the full duration of the recording process of an existing CommandBuffer.

+

Member Function Documentation

+ +

◆ bind_buffer()

+ +
+
+ + + + + + + + +
void tz::gl::vk2::CommandBufferRecording::bind_buffer (VulkanCommand::BindBuffer command)
+
+ +

Bind a Buffer.

+

See VulkanCommand::BindBuffer for details.

+ +
+
+ +

◆ bind_descriptor_sets()

+ +
+
+ + + + + + + + +
void tz::gl::vk2::CommandBufferRecording::bind_descriptor_sets (VulkanCommand::BindDescriptorSets command)
+
+ +

Bind a list of DescriptorSet.

+

See VulkanCommand::BindDescriptorSets for details.

+ +
+
+ +

◆ bind_pipeline()

+ +
+
+ + + + + + + + +
void tz::gl::vk2::CommandBufferRecording::bind_pipeline (VulkanCommand::BindPipeline command)
+
+ +

Bind an existing GraphicsPipeline to some context.

+

See VulkanCommand::BindPipeline for details.

+ +
+
+ +

◆ buffer_copy_buffer()

+ +
+
+ + + + + + + + +
void tz::gl::vk2::CommandBufferRecording::buffer_copy_buffer (VulkanCommand::BufferCopyBuffer command)
+
+ +

Copy data from one Buffer to another.

+

See VulkanCommand::BufferCopyBuffer for details.

+ +
+
+ +

◆ buffer_copy_image()

+ +
+
+ + + + + + + + +
void tz::gl::vk2::CommandBufferRecording::buffer_copy_image (VulkanCommand::BufferCopyImage command)
+
+ +

Copy data from one Buffer to an Image.

+

See VulkanCommand::BufferCopyImage for details.

+ +
+
+ +

◆ dispatch()

+ +
+
+ + + + + + + + +
void tz::gl::vk2::CommandBufferRecording::dispatch (VulkanCommand::Dispatch dispatch)
+
+ +

Dispatch some compute work.

+

See VulkanCommand::Dispatch for details.

+ +
+
+ +

◆ draw()

+ +
+
+ + + + + + + + +
void tz::gl::vk2::CommandBufferRecording::draw (VulkanCommand::Draw draw)
+
+ +

Perform a non-instanced draw.

+

See VulkanCommand::Draw for details.

+ +
+
+ +

◆ draw_indexed()

+ +
+
+ + + + + + + + +
void tz::gl::vk2::CommandBufferRecording::draw_indexed (VulkanCommand::DrawIndexed draw)
+
+ +

Perform an indexed draw.

+

See VulkanCommand::Draw for details.

+ +
+
+ +

◆ draw_indexed_indirect()

+ +
+
+ + + + + + + + +
void tz::gl::vk2::CommandBufferRecording::draw_indexed_indirect (VulkanCommand::DrawIndexedIndirect draw)
+
+ +

Perform some indirect, indexed draws.

+

See VulkanCommand::DrawIndexedIndirect for details.

+ +
+
+ +

◆ draw_indirect()

+ +
+
+ + + + + + + + +
void tz::gl::vk2::CommandBufferRecording::draw_indirect (VulkanCommand::DrawIndirect draw)
+
+ +

Perform some indirect, non-indexed draws.

+

See VulkanCommand::DrawIndirect for details.

+ +
+
+ +

◆ get_command_buffer()

+ +
+
+ + + + + + + +
const CommandBuffer & tz::gl::vk2::CommandBufferRecording::get_command_buffer () const
+
+ +

Retrieve the CommandBuffer that is currently being recorded.

+
Returns
CommandBuffer that this recording corresponds to.
+ +
+
+ +

◆ image_copy_image()

+ +
+
+ + + + + + + + +
void tz::gl::vk2::CommandBufferRecording::image_copy_image (VulkanCommand::ImageCopyImage command)
+
+ +

Copy data from one Image to another.

+

See VulkanCommand::ImageCopyImage for details.

+ +
+
+
+ + + + diff --git a/classtz_1_1gl_1_1vk2_1_1_command_buffer_recording_1_1_dynamic_rendering_run.html b/classtz_1_1gl_1_1vk2_1_1_command_buffer_recording_1_1_dynamic_rendering_run.html new file mode 100644 index 0000000000..a01090e01f --- /dev/null +++ b/classtz_1_1gl_1_1vk2_1_1_command_buffer_recording_1_1_dynamic_rendering_run.html @@ -0,0 +1,104 @@ + + + + + + + +Topaz: tz::gl::vk2::CommandBufferRecording::DynamicRenderingRun Class Reference + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.1.0.1 +
+
C++20 Graphics Engine
+
+
+ + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+
tz::gl::vk2::CommandBufferRecording::DynamicRenderingRun Class Reference
+
+
+
+ + + + diff --git a/classtz_1_1gl_1_1vk2_1_1_command_buffer_recording_1_1_render_pass_run.html b/classtz_1_1gl_1_1vk2_1_1_command_buffer_recording_1_1_render_pass_run.html new file mode 100644 index 0000000000..7b97caa244 --- /dev/null +++ b/classtz_1_1gl_1_1vk2_1_1_command_buffer_recording_1_1_render_pass_run.html @@ -0,0 +1,166 @@ + + + + + + + +Topaz: tz::gl::vk2::CommandBufferRecording::RenderPassRun Class Reference + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.1.0.1 +
+
C++20 Graphics Engine
+
+
+ + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+
+Public Member Functions
+
tz::gl::vk2::CommandBufferRecording::RenderPassRun Class Reference
+
+
+ +

Represents the full duration of an invocation of a RenderPass during a CommandBufferRecording. + More...

+ +

#include <command.hpp>

+ + + + + +

+Public Member Functions

 RenderPassRun (Framebuffer &framebuffer, CommandBufferRecording &recording, tz::vec4 clear_colour={0.0f, 0.0f, 0.0f, 1.0f})
 Record the beginning of the RenderPass sourcing the provided Framebuffer.
 
+

Detailed Description

+

Represents the full duration of an invocation of a RenderPass during a CommandBufferRecording.

+
Note
Any vulkan recording commands invoked during the lifetime of this object can apply to the corresponding RenderPass.
+

Constructor & Destructor Documentation

+ +

◆ RenderPassRun()

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
tz::gl::vk2::CommandBufferRecording::RenderPassRun::RenderPassRun (Framebufferframebuffer,
CommandBufferRecordingrecording,
tz::vec4 clear_colour = {0.0f, 0.0f, 0.0f, 1.0f} 
)
+
+ +

Record the beginning of the RenderPass sourcing the provided Framebuffer.

+
Parameters
+ + + +
framebufferFramebuffer whose RenderPass should begin within the CommandBuffer.
recordingExisting recording of a CommandBuffer which shall record the beginning/ending of the render pass.
+
+
+
Note
The construction of this object begins the render pass, and the destruction ends the render pass. This means all commands recorded during the lifetime of this object will apply to the render pass.
+ +
+
+
+ + + + diff --git a/classtz_1_1gl_1_1vk2_1_1_command_pool.html b/classtz_1_1gl_1_1vk2_1_1_command_pool.html new file mode 100644 index 0000000000..f36b34f897 --- /dev/null +++ b/classtz_1_1gl_1_1vk2_1_1_command_pool.html @@ -0,0 +1,152 @@ + + + + + + + +Topaz: tz::gl::vk2::CommandPool Class Reference + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.1.0.1 +
+
C++20 Graphics Engine
+
+
+ + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+
+Data Structures | +Public Member Functions
+
+
+
+ +

Represents storage for CommandBuffers. + More...

+ +

#include <command.hpp>

+ + + + + + + + +

+Data Structures

struct  Allocation
 Specifies information about an allocation of a CommandBuffer or many. More...
 
struct  AllocationResult
 Contains information about the result of a pool allocation. More...
 
+ + + + +

+Public Member Functions

AllocationResult allocate_buffers (const Allocation &alloc)
 Allocate some CommandBuffers.
 
+

Detailed Description

+

Represents storage for CommandBuffers.

+

Member Function Documentation

+ +

◆ allocate_buffers()

+ +
+
+ + + + + + + + +
CommandPool::AllocationResult tz::gl::vk2::CommandPool::allocate_buffers (const Allocationalloc)
+
+ +

Allocate some CommandBuffers.

+

See Allocation for more info.

Returns
Structure with the resultant information, including newly-allocated CommandBuffers.
+ +
+
+
+ + + + diff --git a/classtz_1_1gl_1_1vk2_1_1_compute_pipeline.html b/classtz_1_1gl_1_1vk2_1_1_compute_pipeline.html new file mode 100644 index 0000000000..b4257f6ce8 --- /dev/null +++ b/classtz_1_1gl_1_1vk2_1_1_compute_pipeline.html @@ -0,0 +1,104 @@ + + + + + + + +Topaz: tz::gl::vk2::ComputePipeline Class Reference + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.1.0.1 +
+
C++20 Graphics Engine
+
+
+ + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+
tz::gl::vk2::ComputePipeline Class Reference
+
+
+
+ + + + diff --git a/classtz_1_1gl_1_1vk2_1_1_debug_nameable.html b/classtz_1_1gl_1_1vk2_1_1_debug_nameable.html new file mode 100644 index 0000000000..43baea3c05 --- /dev/null +++ b/classtz_1_1gl_1_1vk2_1_1_debug_nameable.html @@ -0,0 +1,118 @@ + + + + + + + +Topaz: tz::gl::vk2::DebugNameable< T > Class Template Reference + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.1.0.1 +
+
C++20 Graphics Engine
+
+
+ + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+
tz::gl::vk2::DebugNameable< T > Class Template Reference
+
+
+
+Inheritance diagram for tz::gl::vk2::DebugNameable< T >:
+
+
+ + +tz::gl::vk2::BinarySemaphore +tz::gl::vk2::Buffer +tz::gl::vk2::Fence +tz::gl::vk2::Image +tz::gl::vk2::ImageView +tz::gl::vk2::TimelineSemaphore + +
+
+ + + + diff --git a/classtz_1_1gl_1_1vk2_1_1_debug_nameable.png b/classtz_1_1gl_1_1vk2_1_1_debug_nameable.png new file mode 100644 index 0000000000..7d159bee4b Binary files /dev/null and b/classtz_1_1gl_1_1vk2_1_1_debug_nameable.png differ diff --git a/classtz_1_1gl_1_1vk2_1_1_descriptor_layout.html b/classtz_1_1gl_1_1vk2_1_1_descriptor_layout.html new file mode 100644 index 0000000000..b6599f6ff7 --- /dev/null +++ b/classtz_1_1gl_1_1vk2_1_1_descriptor_layout.html @@ -0,0 +1,221 @@ + + + + + + + +Topaz: tz::gl::vk2::DescriptorLayout Class Reference + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.1.0.1 +
+
C++20 Graphics Engine
+
+
+ + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+
+Public Member Functions
+
tz::gl::vk2::DescriptorLayout Class Reference
+
+
+ +

Specifies the types of resources that will be accessed by a graphics or compute pipeline via a Shader. + More...

+ +

#include <descriptors.hpp>

+ + + + + + + + + + + + + + + + + +

+Public Member Functions

DescriptorLayout (DescriptorLayoutInfo info)
 Construct a DescriptorLayout.
 
std::size_t binding_count () const
 Retrieve the number of bindings within the layout.
 
std::size_t descriptor_count () const
 Retrieve the total number of descriptors in all of the bindings.
 
std::size_t descriptor_count_of (DescriptorType type) const
 Retrieve the total number of descriptors of the given type in all of the bindings.
 
std::span< const DescriptorLayoutInfo::BindingInfoget_bindings () const
 Retrieve a read-only view into the bindings data for the layout.
 
+

Detailed Description

+

Specifies the types of resources that will be accessed by a graphics or compute pipeline via a Shader.

+

Member Function Documentation

+ +

◆ binding_count()

+ +
+
+ + + + + + + +
std::size_t tz::gl::vk2::DescriptorLayout::binding_count () const
+
+ +

Retrieve the number of bindings within the layout.

+
Returns
number of bindings.
+ +
+
+ +

◆ descriptor_count()

+ +
+
+ + + + + + + +
std::size_t tz::gl::vk2::DescriptorLayout::descriptor_count () const
+
+ +

Retrieve the total number of descriptors in all of the bindings.

+
Returns
Sum of all descriptor counts within the bindings.
+ +
+
+ +

◆ descriptor_count_of()

+ +
+
+ + + + + + + + +
std::size_t tz::gl::vk2::DescriptorLayout::descriptor_count_of (DescriptorType type) const
+
+ +

Retrieve the total number of descriptors of the given type in all of the bindings.

+
Parameters
+ + +
typeDescriptor type to retrieve the count of.
+
+
+
Returns
Sum of all descriptor counts within the bindings matching type.
+ +
+
+ +

◆ get_bindings()

+ +
+
+ + + + + + + +
std::span< const DescriptorLayoutInfo::BindingInfo > tz::gl::vk2::DescriptorLayout::get_bindings () const
+
+ +

Retrieve a read-only view into the bindings data for the layout.

+
Returns
Span of structures containing information for each respective binding. The i'th element of the span is the binding with the binding-index i.
+ +
+
+
+ + + + diff --git a/classtz_1_1gl_1_1vk2_1_1_descriptor_layout_builder.html b/classtz_1_1gl_1_1vk2_1_1_descriptor_layout_builder.html new file mode 100644 index 0000000000..79dd801e4c --- /dev/null +++ b/classtz_1_1gl_1_1vk2_1_1_descriptor_layout_builder.html @@ -0,0 +1,252 @@ + + + + + + + +Topaz: tz::gl::vk2::DescriptorLayoutBuilder Class Reference + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.1.0.1 +
+
C++20 Graphics Engine
+
+
+ + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+
+Public Member Functions
+
tz::gl::vk2::DescriptorLayoutBuilder Class Reference
+
+
+ +

Helper class to populate a DescriptorLayoutInfo. + More...

+ +

#include <descriptors.hpp>

+ + + + + + + + + + + + + + + + + + + + + + + + + + +

+Public Member Functions

DescriptorLayoutBuilder ()=default
 Create a builder starting with no bindings.
 
DescriptorLayoutBuilder (DescriptorLayoutInfo existing_info)
 Create a builder based upon an existing layout.
 
DescriptorLayoutBuilderwith_binding (DescriptorLayoutInfo::BindingInfo binding)
 Add a new binding.
 
const LogicalDeviceget_device () const
 Retrieve the LogicalDevice which will be used to construct the resultant layout.
 
void set_device (const LogicalDevice &device)
 Set which LogicalDevice will be used to construct the resultant layout.
 
const DescriptorLayoutInfoget_info () const
 Retrieve the info structure corresponding to this builder.
 
DescriptorLayout build () const
 Create a new DescriptorLayout based upon this builder.
 
+void clear ()
 Undo all information, including bindings and device info back to default settings.
 
+

Detailed Description

+

Helper class to populate a DescriptorLayoutInfo.

+

Member Function Documentation

+ +

◆ build()

+ +
+
+ + + + + + + +
DescriptorLayout tz::gl::vk2::DescriptorLayoutBuilder::build () const
+
+ +

Create a new DescriptorLayout based upon this builder.

+
Returns
New DescriptorLayout.
+ +
+
+ +

◆ get_device()

+ +
+
+ + + + + + + +
const LogicalDevice * tz::gl::vk2::DescriptorLayoutBuilder::get_device () const
+
+ +

Retrieve the LogicalDevice which will be used to construct the resultant layout.

+
Returns
Pointer to LogicalDevice. This is initially nullptr.
+ +
+
+ +

◆ get_info()

+ +
+
+ + + + + + + +
const DescriptorLayoutInfo & tz::gl::vk2::DescriptorLayoutBuilder::get_info () const
+
+ +

Retrieve the info structure corresponding to this builder.

+

This can be used to construct the DescriptorLayout.

Returns
Layout info structure.
+ +
+
+ +

◆ set_device()

+ +
+
+ + + + + + + + +
void tz::gl::vk2::DescriptorLayoutBuilder::set_device (const LogicalDevicedevice)
+
+ +

Set which LogicalDevice will be used to construct the resultant layout.

+

Note that it is an error not to provide a valid LogicalDevice when creating the DescriptorLayout.

Parameters
+ + +
deviceLogicalDevice which will own the layout.
+
+
+ +
+
+ +

◆ with_binding()

+ +
+
+ + + + + + + + +
DescriptorLayoutBuilder & tz::gl::vk2::DescriptorLayoutBuilder::with_binding (DescriptorLayoutInfo::BindingInfo binding)
+
+ +

Add a new binding.

+

See DescriptorLayoutInfo::BindingInfo for more information.

+ +
+
+
+ + + + diff --git a/classtz_1_1gl_1_1vk2_1_1_descriptor_pool.html b/classtz_1_1gl_1_1vk2_1_1_descriptor_pool.html new file mode 100644 index 0000000000..f544239278 --- /dev/null +++ b/classtz_1_1gl_1_1vk2_1_1_descriptor_pool.html @@ -0,0 +1,282 @@ + + + + + + + +Topaz: tz::gl::vk2::DescriptorPool Class Reference + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.1.0.1 +
+
C++20 Graphics Engine
+
+
+ + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+
+Data Structures | +Public Member Functions
+
+
+
+ +

Represents storage for DescriptorSets. + More...

+ +

#include <descriptors.hpp>

+ + + + + + + + + + + +

+Data Structures

struct  Allocation
 Specifies information about a DescriptorPool allocation. More...
 
struct  AllocationResult
 Specifies information about the resultant of an invocation to DescriptorPool::allocate_sets. More...
 
class  UpdateRequest
 Specifies a requests to update zero or more DescriptorSets owned by an existing DescriptorPool. More...
 
+ + + + + + + + + + + + + + + + + + + + + + +

+Public Member Functions

bool contains (const DescriptorSet &set) const
 Query as to whether an existing DescriptorSet was allocated from this pool.
 
+const LogicalDeviceget_device () const
 Retrieve the LogicalDevice which was used to create the pool.
 
AllocationResult allocate_sets (const Allocation &alloc)
 Allocate some DescriptorSets.
 
UpdateRequest make_update_request ()
 Retrieve an empty update request for this pool.
 
void update_sets (UpdateRequest update_request)
 Issue an update request to any DescriptorSets owned by this pool.
 
void update_sets (const DescriptorSet::WriteList &writes)
 Update some existing DescriptorSets.
 
void clear ()
 Purge all DescriptorSets.
 
+

Detailed Description

+

Represents storage for DescriptorSets.

+

Member Function Documentation

+ +

◆ allocate_sets()

+ +
+
+ + + + + + + + +
DescriptorPool::AllocationResult tz::gl::vk2::DescriptorPool::allocate_sets (const Allocationalloc)
+
+ +

Allocate some DescriptorSets.

+

See Allocation for more info.

Returns
Structure with resultant information, including newly-allocated DescriptorSets.
+ +
+
+ +

◆ clear()

+ +
+
+ + + + + + + +
void tz::gl::vk2::DescriptorPool::clear ()
+
+ +

Purge all DescriptorSets.

+

The pool reclaims all memory from previously allocated DescriptorSets. This also means that all DescriptorSets allocated from this pool are now invalid.

+ +
+
+ +

◆ contains()

+ +
+
+ + + + + + + + +
bool tz::gl::vk2::DescriptorPool::contains (const DescriptorSetset) const
+
+ +

Query as to whether an existing DescriptorSet was allocated from this pool.

+
Returns
True if set belongs to this pool and is still allocated, otherwise false.
+ +
+
+ +

◆ make_update_request()

+ +
+
+ + + + + + + +
DescriptorPool::UpdateRequest tz::gl::vk2::DescriptorPool::make_update_request ()
+
+ +

Retrieve an empty update request for this pool.

+

You can fill this in and then pass to DescriptorPool::update_sets(UpdateRequest) to edit descriptors within any owned sets.

+ +
+
+ +

◆ update_sets() [1/2]

+ +
+
+ + + + + + + + +
void tz::gl::vk2::DescriptorPool::update_sets (const DescriptorSet::WriteList & writes)
+
+ +

Update some existing DescriptorSets.

+

See DescriptorSet::Write for more.

Parameters
+ + +
writesList of DescriptorSet::Write to make changes to existing descriptors or descriptor arrays.
+
+
+ +
+
+ +

◆ update_sets() [2/2]

+ +
+
+ + + + + + + + +
void tz::gl::vk2::DescriptorPool::update_sets (DescriptorPool::UpdateRequest update_request)
+
+ +

Issue an update request to any DescriptorSets owned by this pool.

+

See UpdateRequest for details. See DescriptorPool::make_update_request to retrieve an empty UpdateRequest to make descriptor changes within owned sets.

+ +
+
+
+ + + + diff --git a/classtz_1_1gl_1_1vk2_1_1_descriptor_pool_1_1_update_request.html b/classtz_1_1gl_1_1vk2_1_1_descriptor_pool_1_1_update_request.html new file mode 100644 index 0000000000..bae5bee066 --- /dev/null +++ b/classtz_1_1gl_1_1vk2_1_1_descriptor_pool_1_1_update_request.html @@ -0,0 +1,129 @@ + + + + + + + +Topaz: tz::gl::vk2::DescriptorPool::UpdateRequest Class Reference + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.1.0.1 +
+
C++20 Graphics Engine
+
+
+ + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+
+Public Member Functions
+
tz::gl::vk2::DescriptorPool::UpdateRequest Class Reference
+
+
+ +

Specifies a requests to update zero or more DescriptorSets owned by an existing DescriptorPool. + More...

+ +

#include <descriptors.hpp>

+ + + + + + + + +

+Public Member Functions

+void add_set_edit (DescriptorSet::EditRequest set_edit)
 Add an edit for a DescriptorSet.
 
+std::span< const DescriptorSet::EditRequestget_set_edits () const
 Retrieve all DescriptorSet edit requests added so far.
 
+

Detailed Description

+

Specifies a requests to update zero or more DescriptorSets owned by an existing DescriptorPool.

+ +
+ + + + diff --git a/classtz_1_1gl_1_1vk2_1_1_descriptor_set.html b/classtz_1_1gl_1_1vk2_1_1_descriptor_set.html new file mode 100644 index 0000000000..dfaba85ba8 --- /dev/null +++ b/classtz_1_1gl_1_1vk2_1_1_descriptor_set.html @@ -0,0 +1,174 @@ + + + + + + + +Topaz: tz::gl::vk2::DescriptorSet Class Reference + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.1.0.1 +
+
C++20 Graphics Engine
+
+
+ + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+
+Data Structures | +Public Member Functions
+
+
+
+ +

Represents a set of one or more descriptors. + More...

+ +

#include <descriptors.hpp>

+ + + + + + + + +

+Data Structures

class  EditRequest
 Request structure representing zero or more descriptor changes for this set. More...
 
struct  Write
 Specifies information about writing to a specific element of the descriptor set via binding id. More...
 
+ + + + + + + +

+Public Member Functions

const DescriptorLayoutget_layout () const
 Retrieve the DescriptorLayout which this set matches.
 
EditRequest make_edit_request ()
 Retrieve an empty request for this set.
 
+

Detailed Description

+

Represents a set of one or more descriptors.

+

Member Function Documentation

+ +

◆ get_layout()

+ +
+
+ + + + + + + +
const DescriptorLayout & tz::gl::vk2::DescriptorSet::get_layout () const
+
+ +

Retrieve the DescriptorLayout which this set matches.

+
Returns
Layout of this DescriptorSet.
+ +
+
+ +

◆ make_edit_request()

+ +
+
+ + + + + + + +
DescriptorSet::EditRequest tz::gl::vk2::DescriptorSet::make_edit_request ()
+
+ +

Retrieve an empty request for this set.

+

You can use this to request changes to existing descriptors within this set.

Note
This only represents a request to make changes. To submit requests, this request must be passed to a DescriptorPool::UpdateRequest.
+ +
+
+
+ + + + diff --git a/classtz_1_1gl_1_1vk2_1_1_descriptor_set_1_1_edit_request.html b/classtz_1_1gl_1_1vk2_1_1_descriptor_set_1_1_edit_request.html new file mode 100644 index 0000000000..2e15ba7f02 --- /dev/null +++ b/classtz_1_1gl_1_1vk2_1_1_descriptor_set_1_1_edit_request.html @@ -0,0 +1,227 @@ + + + + + + + +Topaz: tz::gl::vk2::DescriptorSet::EditRequest Class Reference + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.1.0.1 +
+
C++20 Graphics Engine
+
+
+ + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+
+Public Member Functions
+
tz::gl::vk2::DescriptorSet::EditRequest Class Reference
+
+
+ +

Request structure representing zero or more descriptor changes for this set. + More...

+ +

#include <descriptors.hpp>

+ + + + + + + + + + + + + + +

+Public Member Functions

void set_buffer (std::uint32_t binding_id, Write::BufferWriteInfo buffer_write, std::uint32_t array_index=0)
 Request that the buffer at the given binding at the provided array index refers to an existing Buffer.
 
void set_image (std::uint32_t binding_id, Write::ImageWriteInfo image_write, std::uint32_t array_index=0)
 Request that the image at the given binding at the provided array index refers to an existing Image.
 
+DescriptorSet::WriteList to_write_list () const
 Retrieve a basic list of writes corresponding to all requested edits so far.
 
+const DescriptorSetget_set () const
 Retrieve the DescriptorSet which this request is intending to edit.
 
+

Detailed Description

+

Request structure representing zero or more descriptor changes for this set.

+

To create an edit request, see DescriptorSet::make_edit_request.

+

Member Function Documentation

+ +

◆ set_buffer()

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
void tz::gl::vk2::DescriptorSet::EditRequest::set_buffer (std::uint32_t binding_id,
Write::BufferWriteInfo buffer_write,
std::uint32_t array_index = 0 
)
+
+ +

Request that the buffer at the given binding at the provided array index refers to an existing Buffer.

+
Parameters
+ + + + +
binding_idBinding id to write a buffer to.
buffer_writeStruct containing information about which Buffer is to be referred to by this descriptor, and optionally at a given subregion of the buffer.
array_indexIndex of the descriptor array which this edit applies to. If this binding does not refer to a descriptor array, this must be zero. Default zero.
+
+
+
Precondition
The descriptor or descriptor array at binding_id must be a 'buffery' DescriptorType. This is either UniformBuffer or StorageBuffer.
+
+If array_index != 0, then there must be a descriptor array at the given binding_id of size greater than or equal to array_index.
+ +
+
+ +

◆ set_image()

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
void tz::gl::vk2::DescriptorSet::EditRequest::set_image (std::uint32_t binding_id,
Write::ImageWriteInfo image_write,
std::uint32_t array_index = 0 
)
+
+ +

Request that the image at the given binding at the provided array index refers to an existing Image.

+
Parameters
+ + + + +
binding_idBinding id to write an image to.
image_writeStruct containing information about which Image is to be referred to by this descriptor, and optionally a new Sampler.
array_indexIndex of the descriptor array which this edit applies to. If this binding does not refer to a descriptor array, this must be zero. Default zero.
+
+
+
Precondition
The descriptor or descriptor array at binding_id must be a 'imagey' DescriptorType. This is either Image, ImageWithSampler, or StorageImage.
+
+If array_index != 0, then there must be a descriptor array at the given binding_id of size greater than or equal to array_index.
+ +
+
+
+ + + + diff --git a/classtz_1_1gl_1_1vk2_1_1_fence.html b/classtz_1_1gl_1_1vk2_1_1_fence.html new file mode 100644 index 0000000000..f4ad8147fd --- /dev/null +++ b/classtz_1_1gl_1_1vk2_1_1_fence.html @@ -0,0 +1,177 @@ + + + + + + + +Topaz: tz::gl::vk2::Fence Class Reference + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.1.0.1 +
+
C++20 Graphics Engine
+
+
+ + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+
+Public Member Functions
+
+
+
+ +

Synchronisation primitive which is useful to detect completion of a GPU operation, CPU-side. + More...

+ +

#include <fence.hpp>

+
+Inheritance diagram for tz::gl::vk2::Fence:
+
+
+ + +tz::gl::vk2::DebugNameable< T > + +
+ + + + + + + + + + + +

+Public Member Functions

bool is_signalled () const
 Query as to whether the Fence is currently signalled.
 
void wait_until_signalled () const
 Block the current thread until the Fence is signalled.
 
+void unsignal ()
 Set the state of the Fence to the unsignaleld state.
 
+

Detailed Description

+

Synchronisation primitive which is useful to detect completion of a GPU operation, CPU-side.

+

Member Function Documentation

+ +

◆ is_signalled()

+ +
+
+ + + + + + + +
bool tz::gl::vk2::Fence::is_signalled () const
+
+ +

Query as to whether the Fence is currently signalled.

+
Returns
True if signalled, otherwise false.
+ +
+
+ +

◆ wait_until_signalled()

+ +
+
+ + + + + + + +
void tz::gl::vk2::Fence::wait_until_signalled () const
+
+ +

Block the current thread until the Fence is signalled.

+
Postcondition
this->is_signalled() returns true.
+ +
+
+
+ + + + diff --git a/classtz_1_1gl_1_1vk2_1_1_fence.png b/classtz_1_1gl_1_1vk2_1_1_fence.png new file mode 100644 index 0000000000..282e17e69a Binary files /dev/null and b/classtz_1_1gl_1_1vk2_1_1_fence.png differ diff --git a/classtz_1_1gl_1_1vk2_1_1_framebuffer.html b/classtz_1_1gl_1_1vk2_1_1_framebuffer.html new file mode 100644 index 0000000000..f297822c2b --- /dev/null +++ b/classtz_1_1gl_1_1vk2_1_1_framebuffer.html @@ -0,0 +1,233 @@ + + + + + + + +Topaz: tz::gl::vk2::Framebuffer Class Reference + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.1.0.1 +
+
C++20 Graphics Engine
+
+
+ + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+
+Public Member Functions
+
+
+
+ +

Represents a render target for a RenderPass. + More...

+ +

#include <framebuffer.hpp>

+ + + + + + + + + + + + + + + + + +

+Public Member Functions

tz::vec2ui get_dimensions () const
 Retrieve the width and height of the framebuffer.
 
const RenderPassget_pass () const
 Retrieve the RenderPass that this Framebuffer expects to act as a target for.
 
const LogicalDeviceget_device () const
 Retrieve the LogicalDevice that spawned this Framebuffer.
 
tz::basic_list< const ImageView * > get_attachment_views () const
 Retrieve a list of imageviews corresponding to each attachment.
 
tz::basic_list< ImageView * > get_attachment_views ()
 Retrieve a list of imageviews corresponding to each attachment.
 
+

Detailed Description

+

Represents a render target for a RenderPass.

+

Member Function Documentation

+ +

◆ get_attachment_views() [1/2]

+ +
+
+ + + + + + + +
tz::basic_list< ImageView * > tz::gl::vk2::Framebuffer::get_attachment_views ()
+
+ +

Retrieve a list of imageviews corresponding to each attachment.

+
Returns
List of ImageViews. The i'th ImageView corresponds to the i'th output attachment from the RenderPass referenced by this->get_pass().
+ +
+
+ +

◆ get_attachment_views() [2/2]

+ +
+
+ + + + + + + +
tz::basic_list< const ImageView * > tz::gl::vk2::Framebuffer::get_attachment_views () const
+
+ +

Retrieve a list of imageviews corresponding to each attachment.

+
Returns
List of ImageViews. The i'th ImageView corresponds to the i'th output attachment from the RenderPass referenced by this->get_pass().
+ +
+
+ +

◆ get_device()

+ +
+
+ + + + + + + +
const LogicalDevice & tz::gl::vk2::Framebuffer::get_device () const
+
+ +

Retrieve the LogicalDevice that spawned this Framebuffer.

+
Note
This is identical to the LogicalDevice that spawned the RenderPass referenced by this->get_pass().
+ +
+
+ +

◆ get_dimensions()

+ +
+
+ + + + + + + +
tz::vec2ui tz::gl::vk2::Framebuffer::get_dimensions () const
+
+ +

Retrieve the width and height of the framebuffer.

+

All attachments must have the same dimensions.

Returns
Dimensions of the framebuffer, in pixels.
+ +
+
+ +

◆ get_pass()

+ +
+
+ + + + + + + +
const RenderPass & tz::gl::vk2::Framebuffer::get_pass () const
+
+ +

Retrieve the RenderPass that this Framebuffer expects to act as a target for.

+
Returns
Reference to parent RenderPass.
+ +
+
+
+ + + + diff --git a/classtz_1_1gl_1_1vk2_1_1_graphics_pipeline.html b/classtz_1_1gl_1_1vk2_1_1_graphics_pipeline.html new file mode 100644 index 0000000000..f9928511a3 --- /dev/null +++ b/classtz_1_1gl_1_1vk2_1_1_graphics_pipeline.html @@ -0,0 +1,111 @@ + + + + + + + +Topaz: tz::gl::vk2::GraphicsPipeline Class Reference + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.1.0.1 +
+
C++20 Graphics Engine
+
+
+ + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+
tz::gl::vk2::GraphicsPipeline Class Reference
+
+
+ +

Represents the Graphics Pipeline. + More...

+ +

#include <graphics_pipeline.hpp>

+

Detailed Description

+

Represents the Graphics Pipeline.

+
+ + + + diff --git a/classtz_1_1gl_1_1vk2_1_1_image.html b/classtz_1_1gl_1_1vk2_1_1_image.html new file mode 100644 index 0000000000..ee542f281c --- /dev/null +++ b/classtz_1_1gl_1_1vk2_1_1_image.html @@ -0,0 +1,212 @@ + + + + + + + +Topaz: tz::gl::vk2::Image Class Reference + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.1.0.1 +
+
C++20 Graphics Engine
+
+
+ + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+
+Public Member Functions
+
+
+
+ +

Represents an Image owned by the Vulkan API. + More...

+ +

#include <image.hpp>

+
+Inheritance diagram for tz::gl::vk2::Image:
+
+
+ + +tz::gl::vk2::DebugNameable< T > + +
+ + + + + + + + + + + + + + + + + +

+Public Member Functions

 Image (SwapchainImageInfo sinfo)
 Create an Image that refers to a Swapchain image.
 
+image_format get_format () const
 Retrieve the underlying format of the image.
 
+ImageLayout get_layout () const
 Retrieve the current layout of the image.
 
tz::vec2ui get_dimensions () const
 Retrieve the dimensions of the image.
 
const LogicalDeviceget_device () const
 Retrieve the LogicalDevice that 'owns' the image.
 
+

Detailed Description

+

Represents an Image owned by the Vulkan API.

+

This includes Swapchain images!

+

Constructor & Destructor Documentation

+ +

◆ Image()

+ +
+
+ + + + + + + + +
tz::gl::vk2::Image::Image (SwapchainImageInfo sinfo)
+
+ +

Create an Image that refers to a Swapchain image.

+
Parameters
+ + +
infoInformation about the Swapchain and which image to refer to.
+
+
+ +
+
+

Member Function Documentation

+ +

◆ get_device()

+ +
+
+ + + + + + + +
const LogicalDevice & tz::gl::vk2::Image::get_device () const
+
+ +

Retrieve the LogicalDevice that 'owns' the image.

+

Swapchain images are owned by the presentation device. For that reason, these do not belong to this device per-se. In this case this will return the LogicalDevice responsible for retrieving the image (Most certainly the LogicalDevice that initially spawned its owner Swapchain.)

+ +
+
+ +

◆ get_dimensions()

+ +
+
+ + + + + + + +
tz::vec2ui tz::gl::vk2::Image::get_dimensions () const
+
+ +

Retrieve the dimensions of the image.

+
Returns
{width, height} of the image, in pixels.
+ +
+
+
+ + + + diff --git a/classtz_1_1gl_1_1vk2_1_1_image.png b/classtz_1_1gl_1_1vk2_1_1_image.png new file mode 100644 index 0000000000..861b64400f Binary files /dev/null and b/classtz_1_1gl_1_1vk2_1_1_image.png differ diff --git a/classtz_1_1gl_1_1vk2_1_1_image_view.html b/classtz_1_1gl_1_1vk2_1_1_image_view.html new file mode 100644 index 0000000000..1c513c38ea --- /dev/null +++ b/classtz_1_1gl_1_1vk2_1_1_image_view.html @@ -0,0 +1,113 @@ + + + + + + + +Topaz: tz::gl::vk2::ImageView Class Reference + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.1.0.1 +
+
C++20 Graphics Engine
+
+
+ + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+
+
+
+
+Inheritance diagram for tz::gl::vk2::ImageView:
+
+
+ + +tz::gl::vk2::DebugNameable< T > + +
+
+ + + + diff --git a/classtz_1_1gl_1_1vk2_1_1_image_view.png b/classtz_1_1gl_1_1vk2_1_1_image_view.png new file mode 100644 index 0000000000..d58b363f76 Binary files /dev/null and b/classtz_1_1gl_1_1vk2_1_1_image_view.png differ diff --git a/classtz_1_1gl_1_1vk2_1_1_logical_device.html b/classtz_1_1gl_1_1vk2_1_1_logical_device.html new file mode 100644 index 0000000000..cf06c53a17 --- /dev/null +++ b/classtz_1_1gl_1_1vk2_1_1_logical_device.html @@ -0,0 +1,236 @@ + + + + + + + +Topaz: tz::gl::vk2::LogicalDevice Class Reference + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.1.0.1 +
+
C++20 Graphics Engine
+
+
+ + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+
+Public Member Functions | +Static Public Member Functions
+
tz::gl::vk2::LogicalDevice Class Reference
+
+
+ +

Logical interface to an existing PhysicalDevice. + More...

+ +

#include <logical_device.hpp>

+ + + + + + + + + + + + + + + + + + + + +

+Public Member Functions

 LogicalDevice (LogicalDeviceInfo device_info)
 Construct a LogicalDevice based on a PhysicalDevice, and some optional extensions/features to enable.
 
const PhysicalDeviceget_hardware () const
 Retrieve the PhysicalDevice that this LogicalDevice derives from.
 
+const DeviceExtensionList & get_extensions () const
 Retrieve a list of all enabled extensions.
 
+const DeviceFeatureField & get_features () const
 Retrieve a list of all enabled features.
 
+void wait_until_idle () const
 Block the current thread until all queues associated with this device have become idle.
 
bool is_null () const
 Query as to whether the LogicalDevice is null.
 
+ + + + +

+Static Public Member Functions

static LogicalDevice null ()
 Create a LogicalDevice which doesn't do anything.
 
+

Detailed Description

+

Logical interface to an existing PhysicalDevice.

+

Constructor & Destructor Documentation

+ +

◆ LogicalDevice()

+ +
+
+ + + + + + + + +
tz::gl::vk2::LogicalDevice::LogicalDevice (LogicalDeviceInfo device_info)
+
+ +

Construct a LogicalDevice based on a PhysicalDevice, and some optional extensions/features to enable.

+
Precondition
All elements of enabled_extensions are supported. That is, are contained within PhysicalDevice::get_supported_extensions and PhysicalDevice::get_supported_features. If an extension/feature is enabled which is not supported by physical_device, the behaviour is undefined.
+ +
+
+

Member Function Documentation

+ +

◆ get_hardware()

+ +
+
+ + + + + + + +
const PhysicalDevice & tz::gl::vk2::LogicalDevice::get_hardware () const
+
+ +

Retrieve the PhysicalDevice that this LogicalDevice derives from.

+
Returns
PhysicalDevice provided to the original LogicalDeviceInfo.
+ +
+
+ +

◆ is_null()

+ +
+
+ + + + + + + +
bool tz::gl::vk2::LogicalDevice::is_null () const
+
+ +

Query as to whether the LogicalDevice is null.

+

Null LogicalDevices cannot perform operations or be used for GPU work. See LogicalDevice::null for more information.

+ +
+
+ +

◆ null()

+ +
+
+ + + + + +
+ + + + + + + +
LogicalDevice tz::gl::vk2::LogicalDevice::null ()
+
+static
+
+ +

Create a LogicalDevice which doesn't do anything.

+
Note
It is an error to use null LogicalDevices for most operations. Retrieving the native handle and querying for null-ness are the only valid operations on a null LogicalDevice.
+ +
+
+
+ + + + diff --git a/classtz_1_1gl_1_1vk2_1_1_physical_device.html b/classtz_1_1gl_1_1vk2_1_1_physical_device.html new file mode 100644 index 0000000000..44744d8bc8 --- /dev/null +++ b/classtz_1_1gl_1_1vk2_1_1_physical_device.html @@ -0,0 +1,346 @@ + + + + + + + +Topaz: tz::gl::vk2::PhysicalDevice Class Reference + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.1.0.1 +
+
C++20 Graphics Engine
+
+
+ + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+
+Data Structures | +Public Member Functions
+
tz::gl::vk2::PhysicalDevice Class Reference
+
+
+ +

Represents something resembling a graphics card that can perform general graphical operations. + More...

+ +

#include <physical_device.hpp>

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Public Member Functions

 PhysicalDevice (VkPhysicalDevice native, const VulkanInstance &instance)
 You're not meant to construct these directly.
 
DeviceFeatureField get_supported_features () const
 PhysicalDevices do not necessarily support all available DeviceFeatures.
 
DeviceExtensionList get_supported_extensions () const
 PhysicalDevices support various extensions, but not necessarily all of them.
 
PhysicalDeviceInfo get_info () const
 Retrieve the vendor.
 
tz::basic_list< image_formatget_supported_surface_formats () const
 Retrieve a list of all image_formats that could represent the given window surface.
 
tz::basic_list< SurfacePresentModeget_supported_surface_present_modes () const
 Retrieve a list of all SurfacePresentModes that could be used to present images to the WindowSurface attached to the VulkanInstance owning this device.
 
bool supports_image_colour_format (image_format colour_format) const
 Query as to whether the given image_format can be used as a framebuffer colour attachment and as an input attachment format.
 
bool supports_image_sampled_format (image_format sampled_format) const
 Query as to whether an ImageView using this format can be sampled from within a shader.
 
bool supports_image_depth_format (image_format depth_format) const
 Query as to whether the given image_format can be used as a framebuffer depth/stencil attachment and as an input attachment format.
 
+const VulkanInstanceget_instance () const
 Retrieve the VulkanInstance to which this physical device belongs.
 
+

Detailed Description

+

Represents something resembling a graphics card that can perform general graphical operations.

+

A PhysicalDevice may or may not support graphics, compute or transfer work.

+

Constructor & Destructor Documentation

+ +

◆ PhysicalDevice()

+ +
+
+ + + + + + + + + + + + + + + + + + +
tz::gl::vk2::PhysicalDevice::PhysicalDevice (VkPhysicalDevice native,
const VulkanInstanceinstance 
)
+
+ +

You're not meant to construct these directly.

+

See get_all_devices()

+ +
+
+

Member Function Documentation

+ +

◆ get_info()

+ +
+
+ + + + + + + +
PhysicalDeviceInfo tz::gl::vk2::PhysicalDevice::get_info () const
+
+ +

Retrieve the vendor.

+

Only a few vendors are supported, so check PhysicalDeviceVendor for information. If you're using very new hardware, or various custom drivers such as MoltenVK, this may very well not return the expected value. This should mainly be used for vendor-specific optimisations and shouldn't be exposed to the end-user.

+ +
+
+ +

◆ get_supported_extensions()

+ +
+
+ + + + + + + +
DeviceExtensionList tz::gl::vk2::PhysicalDevice::get_supported_extensions () const
+
+ +

PhysicalDevices support various extensions, but not necessarily all of them.

+
Returns
An enum_field containing all the extensions supported by this PhysicalDevice.
+ +
+
+ +

◆ get_supported_features()

+ +
+
+ + + + + + + +
DeviceFeatureField tz::gl::vk2::PhysicalDevice::get_supported_features () const
+
+ +

PhysicalDevices do not necessarily support all available DeviceFeatures.

+
Returns
An enum_field containing all the features supported by this Physical device.
+ +
+
+ +

◆ get_supported_surface_formats()

+ +
+
+ + + + + + + +
tz::basic_list< image_format > tz::gl::vk2::PhysicalDevice::get_supported_surface_formats () const
+
+ +

Retrieve a list of all image_formats that could represent the given window surface.

+
Returns
List of acceptable image_formats for a window surface.
+ +
+
+ +

◆ get_supported_surface_present_modes()

+ +
+
+ + + + + + + +
tz::basic_list< SurfacePresentMode > tz::gl::vk2::PhysicalDevice::get_supported_surface_present_modes () const
+
+ +

Retrieve a list of all SurfacePresentModes that could be used to present images to the WindowSurface attached to the VulkanInstance owning this device.

+

This is guaranteed to contain every element within present_traits::get_mandatory_present_modes().

Returns
List of acceptable SurfacePresentModes for a window surface.
+ +
+
+ +

◆ supports_image_colour_format()

+ +
+
+ + + + + + + + +
bool tz::gl::vk2::PhysicalDevice::supports_image_colour_format (image_format colour_format) const
+
+ +

Query as to whether the given image_format can be used as a framebuffer colour attachment and as an input attachment format.

+

This is guaranteed to return true for any image_format within format_traits::get_mandatory_colour_attachment_formats().

Returns
true if colour_format can be a colour attachment, otherwise false.
+ +
+
+ +

◆ supports_image_depth_format()

+ +
+
+ + + + + + + + +
bool tz::gl::vk2::PhysicalDevice::supports_image_depth_format (image_format depth_format) const
+
+ +

Query as to whether the given image_format can be used as a framebuffer depth/stencil attachment and as an input attachment format.

+
Returns
true if depth_format can be a depth/stencil attachment, otherwise false.
+ +
+
+ +

◆ supports_image_sampled_format()

+ +
+
+ + + + + + + + +
bool tz::gl::vk2::PhysicalDevice::supports_image_sampled_format (image_format sampled_format) const
+
+ +

Query as to whether an ImageView using this format can be sampled from within a shader.

+
Returns
true if sampled_format can be sampled in a shader, otherwise false.
+ +
+
+
+ + + + diff --git a/classtz_1_1gl_1_1vk2_1_1_pipeline.html b/classtz_1_1gl_1_1vk2_1_1_pipeline.html new file mode 100644 index 0000000000..55b4eb04bc --- /dev/null +++ b/classtz_1_1gl_1_1vk2_1_1_pipeline.html @@ -0,0 +1,104 @@ + + + + + + + +Topaz: tz::gl::vk2::Pipeline Class Reference + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.1.0.1 +
+
C++20 Graphics Engine
+
+
+ + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+
tz::gl::vk2::Pipeline Class Reference
+
+
+
+ + + + diff --git a/classtz_1_1gl_1_1vk2_1_1_pipeline_cache.html b/classtz_1_1gl_1_1vk2_1_1_pipeline_cache.html new file mode 100644 index 0000000000..ae3304058c --- /dev/null +++ b/classtz_1_1gl_1_1vk2_1_1_pipeline_cache.html @@ -0,0 +1,104 @@ + + + + + + + +Topaz: tz::gl::vk2::PipelineCache Class Reference + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.1.0.1 +
+
C++20 Graphics Engine
+
+
+ + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+
tz::gl::vk2::PipelineCache Class Reference
+
+
+
+ + + + diff --git a/classtz_1_1gl_1_1vk2_1_1_pipeline_layout.html b/classtz_1_1gl_1_1vk2_1_1_pipeline_layout.html new file mode 100644 index 0000000000..76ff10bb94 --- /dev/null +++ b/classtz_1_1gl_1_1vk2_1_1_pipeline_layout.html @@ -0,0 +1,111 @@ + + + + + + + +Topaz: tz::gl::vk2::PipelineLayout Class Reference + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.1.0.1 +
+
C++20 Graphics Engine
+
+
+ + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+
tz::gl::vk2::PipelineLayout Class Reference
+
+
+ +

Represents an interface between shader stages and shader resources in terms of the layout of a group of DescriptorSet. + More...

+ +

#include <pipeline_layout.hpp>

+

Detailed Description

+

Represents an interface between shader stages and shader resources in terms of the layout of a group of DescriptorSet.

+
+ + + + diff --git a/classtz_1_1gl_1_1vk2_1_1_queue_storage.html b/classtz_1_1gl_1_1vk2_1_1_queue_storage.html new file mode 100644 index 0000000000..2f21a901be --- /dev/null +++ b/classtz_1_1gl_1_1vk2_1_1_queue_storage.html @@ -0,0 +1,106 @@ + + + + + + + +Topaz: tz::gl::vk2::QueueStorage Class Reference + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.1.0.1 +
+
C++20 Graphics Engine
+
+
+ + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+
+Data Structures
+
tz::gl::vk2::QueueStorage Class Reference
+
+
+
+ + + + diff --git a/classtz_1_1gl_1_1vk2_1_1_render_pass.html b/classtz_1_1gl_1_1vk2_1_1_render_pass.html new file mode 100644 index 0000000000..a8934fe94f --- /dev/null +++ b/classtz_1_1gl_1_1vk2_1_1_render_pass.html @@ -0,0 +1,121 @@ + + + + + + + +Topaz: tz::gl::vk2::RenderPass Class Reference + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.1.0.1 +
+
C++20 Graphics Engine
+
+
+ + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+
+Public Member Functions
+
+
+
+ +

Represents a collection of attachments and subpasses and describes how the attachments are used throughout the subpases. + More...

+ +

#include <render_pass.hpp>

+ + + + + +

+Public Member Functions

RenderPass (RenderPassInfo info)
 Create the RenderPass.
 
+

Detailed Description

+

Represents a collection of attachments and subpasses and describes how the attachments are used throughout the subpases.

+
+ + + + diff --git a/classtz_1_1gl_1_1vk2_1_1_render_pass_builder.html b/classtz_1_1gl_1_1vk2_1_1_render_pass_builder.html new file mode 100644 index 0000000000..89d8da16a8 --- /dev/null +++ b/classtz_1_1gl_1_1vk2_1_1_render_pass_builder.html @@ -0,0 +1,251 @@ + + + + + + + +Topaz: tz::gl::vk2::RenderPassBuilder Class Reference + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.1.0.1 +
+
C++20 Graphics Engine
+
+
+ + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+
+Public Member Functions
+
tz::gl::vk2::RenderPassBuilder Class Reference
+
+
+ +

Helper class to create a RenderPass. + More...

+ +

#include <render_pass.hpp>

+ + + + + + + + + + + + + + + + + +

+Public Member Functions

RenderPassBuilderwith_attachment (Attachment attachment)
 Add a new attachment to the pass.
 
RenderPassBuilderwith_subpass (RenderPassInfo::Subpass subpass)
 Add a new subpass to the render pass.
 
const LogicalDeviceget_device () const
 Retrieve the LogicalDevice which will be used to construct the RenderPass.
 
void set_device (const LogicalDevice &device)
 Set which LogicalDevice will be used to construct the RenderPass.
 
RenderPass build () const
 Create a new RenderPass based upon this builder.
 
+

Detailed Description

+

Helper class to create a RenderPass.

+

Member Function Documentation

+ +

◆ build()

+ +
+
+ + + + + + + +
RenderPass tz::gl::vk2::RenderPassBuilder::build () const
+
+ +

Create a new RenderPass based upon this builder.

+
Returns
New RenderPass.
+ +
+
+ +

◆ get_device()

+ +
+
+ + + + + + + +
const LogicalDevice * tz::gl::vk2::RenderPassBuilder::get_device () const
+
+ +

Retrieve the LogicalDevice which will be used to construct the RenderPass.

+

By default this is nullptr.

Returns
Current LogicalDevice, or nullptr if no device was ever set.
+ +
+
+ +

◆ set_device()

+ +
+
+ + + + + + + + +
void tz::gl::vk2::RenderPassBuilder::set_device (const LogicalDevicedevice)
+
+ +

Set which LogicalDevice will be used to construct the RenderPass.

+
Parameters
+ + +
deviceLogicalDevice which will be used. It must not be a null device.
+
+
+ +
+
+ +

◆ with_attachment()

+ +
+
+ + + + + + + + +
RenderPassBuilder & tz::gl::vk2::RenderPassBuilder::with_attachment (Attachment attachment)
+
+ +

Add a new attachment to the pass.

+

This can be referenced by the subpasses.

Parameters
+ + +
attachmentInformation about the attachment and how it is interpreted during subpasses.
+
+
+ +
+
+ +

◆ with_subpass()

+ +
+
+ + + + + + + + +
RenderPassBuilder & tz::gl::vk2::RenderPassBuilder::with_subpass (RenderPassInfo::Subpass subpass)
+
+ +

Add a new subpass to the render pass.

+

This can reference any existing attachments.

Parameters
+ + +
subpassInformation about the subpass and how it references existing attachments.
+
+
+ +
+
+
+ + + + diff --git a/classtz_1_1gl_1_1vk2_1_1_sampler.html b/classtz_1_1gl_1_1vk2_1_1_sampler.html new file mode 100644 index 0000000000..9dac8c4029 --- /dev/null +++ b/classtz_1_1gl_1_1vk2_1_1_sampler.html @@ -0,0 +1,121 @@ + + + + + + + +Topaz: tz::gl::vk2::Sampler Class Reference + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.1.0.1 +
+
C++20 Graphics Engine
+
+
+ + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+
+Public Member Functions
+
+
+
+ +

Represents the state of an Image sampler which is used to read image data and apply filtering and other transformations to a Shader. + More...

+ +

#include <sampler.hpp>

+ + + + + +

+Public Member Functions

+const LogicalDeviceget_device () const
 Retrieve the LogicalDevice used to create the sampler.
 
+

Detailed Description

+

Represents the state of an Image sampler which is used to read image data and apply filtering and other transformations to a Shader.

+
+ + + + diff --git a/classtz_1_1gl_1_1vk2_1_1_shader.html b/classtz_1_1gl_1_1vk2_1_1_shader.html new file mode 100644 index 0000000000..ce1bd512f7 --- /dev/null +++ b/classtz_1_1gl_1_1vk2_1_1_shader.html @@ -0,0 +1,112 @@ + + + + + + + +Topaz: tz::gl::vk2::Shader Class Reference + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.1.0.1 +
+
C++20 Graphics Engine
+
+
+ + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+
+
+
+ +

Represents a Shader program. + More...

+ +

#include <shader.hpp>

+

Detailed Description

+

Represents a Shader program.

+

Can be used within a GraphicsPipeline or ComputePipeline.

+
+ + + + diff --git a/classtz_1_1gl_1_1vk2_1_1_shader_module.html b/classtz_1_1gl_1_1vk2_1_1_shader_module.html new file mode 100644 index 0000000000..1f4c9b130d --- /dev/null +++ b/classtz_1_1gl_1_1vk2_1_1_shader_module.html @@ -0,0 +1,126 @@ + + + + + + + +Topaz: tz::gl::vk2::ShaderModule Class Reference + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.1.0.1 +
+
C++20 Graphics Engine
+
+
+ + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+
+Public Member Functions
+
+
+
+ +

Represents a single module of a Shader. + More...

+ +

#include <shader.hpp>

+ + + + + + + + +

+Public Member Functions

ShaderModule (const ShaderModuleInfo &info)
 Create a ShaderModule based upon some existing SPIRV code.
 
+ShaderType get_type () const
 Retrieve the type of this shader module.
 
+

Detailed Description

+

Represents a single module of a Shader.

+

Shaders are comprised of one or more ShaderModules of a given type. ShaderModules are not executable on their own.

+
+ + + + diff --git a/classtz_1_1gl_1_1vk2_1_1_subpass_builder.html b/classtz_1_1gl_1_1vk2_1_1_subpass_builder.html new file mode 100644 index 0000000000..dad68ae3d7 --- /dev/null +++ b/classtz_1_1gl_1_1vk2_1_1_subpass_builder.html @@ -0,0 +1,280 @@ + + + + + + + +Topaz: tz::gl::vk2::SubpassBuilder Class Reference + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.1.0.1 +
+
C++20 Graphics Engine
+
+
+ + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+
+Public Member Functions
+
tz::gl::vk2::SubpassBuilder Class Reference
+
+
+ +

Helper class to create a RenderPassInfo::Subpass. + More...

+ +

#include <render_pass.hpp>

+ + + + + + + + + + + + + + + + + + + + +

+Public Member Functions

SubpassBuilderwith_input_attachment (RenderPassInfo::InputAttachmentReference input_attachment)
 Have the subpass reference an existing attachment as an input attachment.
 
SubpassBuilderwith_colour_attachment (RenderPassInfo::AttachmentReference colour_attachment)
 Have the subpass reference an existing attachment as a colour attachment.
 
SubpassBuilderwith_depth_stencil_attachment (RenderPassInfo::AttachmentReference depth_stencil_attachment)
 Have the subpass reference an existing attachment as the depth-stencil attachment.
 
void set_pipeline_context (PipelineContext context)
 Specify how the subpass binds to the graphics pipeline.
 
const PipelineContextget_pipeline_context () const
 Query what the current bind point to the graphics pipeline is.
 
const RenderPassInfo::Subpassbuild () const
 Return a subpass info structure based upon this builder.
 
+

Detailed Description

+

Helper class to create a RenderPassInfo::Subpass.

+

Member Function Documentation

+ +

◆ build()

+ +
+
+ + + + + + + +
const RenderPassInfo::Subpass & tz::gl::vk2::SubpassBuilder::build () const
+
+ +

Return a subpass info structure based upon this builder.

+
Returns
New Subpass info.
+ +
+
+ +

◆ get_pipeline_context()

+ +
+
+ + + + + + + +
const PipelineContext & tz::gl::vk2::SubpassBuilder::get_pipeline_context () const
+
+ +

Query what the current bind point to the graphics pipeline is.

+

By default, this will be PipelineContext::graphics.

+ +
+
+ +

◆ set_pipeline_context()

+ +
+
+ + + + + + + + +
void tz::gl::vk2::SubpassBuilder::set_pipeline_context (PipelineContext context)
+
+ +

Specify how the subpass binds to the graphics pipeline.

+
Parameters
+ + +
contextBind point to the graphics pipeline.
+
+
+ +
+
+ +

◆ with_colour_attachment()

+ +
+
+ + + + + + + + +
SubpassBuilder & tz::gl::vk2::SubpassBuilder::with_colour_attachment (RenderPassInfo::AttachmentReference colour_attachment)
+
+ +

Have the subpass reference an existing attachment as a colour attachment.

+
Parameters
+ + +
colour_attachmentInformation about which attachment will be referenced as a colour attachment.
+
+
+ +
+
+ +

◆ with_depth_stencil_attachment()

+ +
+
+ + + + + + + + +
SubpassBuilder & tz::gl::vk2::SubpassBuilder::with_depth_stencil_attachment (RenderPassInfo::AttachmentReference depth_stencil_attachment)
+
+ +

Have the subpass reference an existing attachment as the depth-stencil attachment.

+

Note that only one attachment can be referenced as a depth-stencil attachment at a time - If this is called multiple times for the same subpass, only the newest invocation will apply.

Parameters
+ + +
depth_stencil_attachmentInformation about which attachment will be referenced as a depth-stencil attachment.
+
+
+ +
+
+ +

◆ with_input_attachment()

+ +
+
+ + + + + + + + +
SubpassBuilder & tz::gl::vk2::SubpassBuilder::with_input_attachment (RenderPassInfo::InputAttachmentReference input_attachment)
+
+ +

Have the subpass reference an existing attachment as an input attachment.

+
Parameters
+ + +
input_attachmentInformation about which attachment will be referenced as an input attachment.
+
+
+ +
+
+
+ + + + diff --git a/classtz_1_1gl_1_1vk2_1_1_swapchain.html b/classtz_1_1gl_1_1vk2_1_1_swapchain.html new file mode 100644 index 0000000000..5f064f4735 --- /dev/null +++ b/classtz_1_1gl_1_1vk2_1_1_swapchain.html @@ -0,0 +1,374 @@ + + + + + + + +Topaz: tz::gl::vk2::Swapchain Class Reference + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.1.0.1 +
+
C++20 Graphics Engine
+
+
+ + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+
+Data Structures | +Public Member Functions | +Static Public Member Functions
+
+
+
+ +

Swapchains are infrastructures which represent GPU images we will render to before they can be presented to the screen. + More...

+ +

#include <swapchain.hpp>

+ + + + + + + +

+Data Structures

struct  ImageAcquisition
 Specify information about a request to acquire the next available presentable image. More...
 
struct  ImageAcquisitionResult
 
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Public Member Functions

Swapchain (SwapchainInfo info)
 Construct a new Swapchain.
 
ImageAcquisitionResult acquire_image (const ImageAcquisition &acquire)
 Retrieve a presentable image index.
 
bool is_null () const
 Query as to whether the Swapchain is null.
 
std::span< const Imageget_images () const
 Retrieve a span of all presentable images associated with this Swapchain.
 
std::span< Imageget_images ()
 Retrieve a span of all presentable images associated with this Swapchain.
 
std::span< const ImageViewget_image_views () const
 Retrieve a span of all ImageViews corresponding to an image associated with this Swapchain.
 
std::span< ImageViewget_image_views ()
 Retrieve a span of all ImageViews corresponding to an image associated with this Swapchain.
 
image_format get_image_format () const
 Retrieve the image_format of the swapchain images.
 
SurfacePresentMode get_present_mode () const
 Retrieve the present mode used by the swapchain.
 
tz::vec2ui get_dimensions () const
 Retrieve the dimensions of the swapchain images.
 
+ + + + +

+Static Public Member Functions

static Swapchain null ()
 Create a Swapchain which doesn't do anything.
 
+

Detailed Description

+

Swapchains are infrastructures which represent GPU images we will render to before they can be presented to the screen.

+

Member Function Documentation

+ +

◆ acquire_image()

+ +
+
+ + + + + + + + +
Swapchain::ImageAcquisitionResult tz::gl::vk2::Swapchain::acquire_image (const ImageAcquisitionacquire)
+
+ +

Retrieve a presentable image index.

+

See ImageAcquisition for details.

+ +
+
+ +

◆ get_dimensions()

+ +
+
+ + + + + + + +
tz::vec2ui tz::gl::vk2::Swapchain::get_dimensions () const
+
+ +

Retrieve the dimensions of the swapchain images.

+
Returns
Swapchain image dimensions, in pixels.
+ +
+
+ +

◆ get_image_format()

+ +
+
+ + + + + + + +
image_format tz::gl::vk2::Swapchain::get_image_format () const
+
+ +

Retrieve the image_format of the swapchain images.

+
Returns
Swapchain format.
+ +
+
+ +

◆ get_image_views() [1/2]

+ +
+
+ + + + + + + +
std::span< ImageView > tz::gl::vk2::Swapchain::get_image_views ()
+
+ +

Retrieve a span of all ImageViews corresponding to an image associated with this Swapchain.

+

this->get_image_views()[i].get_image() == this->get_images()[i] is guaranteed to be the case.

+ +
+
+ +

◆ get_image_views() [2/2]

+ +
+
+ + + + + + + +
std::span< const ImageView > tz::gl::vk2::Swapchain::get_image_views () const
+
+ +

Retrieve a span of all ImageViews corresponding to an image associated with this Swapchain.

+

this->get_image_views()[i].get_image() == this->get_images()[i] is guaranteed to be the case.

+ +
+
+ +

◆ get_images() [1/2]

+ +
+
+ + + + + + + +
std::span< Image > tz::gl::vk2::Swapchain::get_images ()
+
+ +

Retrieve a span of all presentable images associated with this Swapchain.

+
Returns
Span containing all swapchain images.
+ +
+
+ +

◆ get_images() [2/2]

+ +
+
+ + + + + + + +
std::span< const Image > tz::gl::vk2::Swapchain::get_images () const
+
+ +

Retrieve a span of all presentable images associated with this Swapchain.

+
Returns
Span containing all swapchain images.
+ +
+
+ +

◆ get_present_mode()

+ +
+
+ + + + + + + +
SurfacePresentMode tz::gl::vk2::Swapchain::get_present_mode () const
+
+ +

Retrieve the present mode used by the swapchain.

+
Returns
Present mode for the window surface.
+ +
+
+ +

◆ is_null()

+ +
+
+ + + + + + + +
bool tz::gl::vk2::Swapchain::is_null () const
+
+ +

Query as to whether the Swapchain is null.

+

Null Swapchains cannot perform operations or be used for WindowSurface presentation. See Swapchain::null for more information.

+ +
+
+ +

◆ null()

+ +
+
+ + + + + +
+ + + + + + + +
Swapchain tz::gl::vk2::Swapchain::null ()
+
+static
+
+ +

Create a Swapchain which doesn't do anything.

+
Note
It is an error to use null Swapchains for most operations. Retrieving the native handle and querying for null-ness are the only valid operations on a null Swapchain.
+ +
+
+
+ + + + diff --git a/classtz_1_1gl_1_1vk2_1_1_timeline_semaphore.html b/classtz_1_1gl_1_1vk2_1_1_timeline_semaphore.html new file mode 100644 index 0000000000..77fa3b973f --- /dev/null +++ b/classtz_1_1gl_1_1vk2_1_1_timeline_semaphore.html @@ -0,0 +1,214 @@ + + + + + + + +Topaz: tz::gl::vk2::TimelineSemaphore Class Reference + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.1.0.1 +
+
C++20 Graphics Engine
+
+
+ + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+
+Public Member Functions | +Static Public Member Functions
+
tz::gl::vk2::TimelineSemaphore Class Reference
+
+
+ +

Synchronisation primitive similar to BinarySemaphore. + More...

+ +

#include <semaphore.hpp>

+
+Inheritance diagram for tz::gl::vk2::TimelineSemaphore:
+
+
+ + +tz::gl::vk2::BinarySemaphore +tz::gl::vk2::DebugNameable< T > + +
+ + + + + + + + + + + + + + +

+Public Member Functions

 TimelineSemaphore (const LogicalDevice &device, std::uint64_t value=0)
 Create a TimelineSemaphore with the initial value.
 
+void signal (std::uint64_t value)
 Instantaneously set the semaphore to the given value.
 
+void wait_for (std::uint64_t value) const
 Blocks the current thread and waits until the semaphore has reached the provided value.
 
+std::uint64_t get_value () const
 Retrieve the current semaphore value.
 
+ + + + +

+Static Public Member Functions

static bool supported (const LogicalDevice &device)
 Timeline Semaphores are optional features and must be enabled.
 
+

Detailed Description

+

Synchronisation primitive similar to BinarySemaphore.

+

Semaphore with a strictly increasing 64-bit unsigned integer payload. They are signalled with respect to a particular reference value. Note that this is an optional feature.

+

In addition, TimelineSemaphores can be signalled/waited-on directly by the host. This makes them the most host-interactable synchronisation primitive, more than the BinarySemaphore and even more than the Fence.

+

Constructor & Destructor Documentation

+ +

◆ TimelineSemaphore()

+ +
+
+ + + + + + + + + + + + + + + + + + +
tz::gl::vk2::TimelineSemaphore::TimelineSemaphore (const LogicalDevicedevice,
std::uint64_t value = 0 
)
+
+ +

Create a TimelineSemaphore with the initial value.

+
Precondition
device.get_features() contains DeviceFeature::TimelineSemaphores
+ +
+
+

Member Function Documentation

+ +

◆ supported()

+ +
+
+ + + + + +
+ + + + + + + + +
bool tz::gl::vk2::TimelineSemaphore::supported (const LogicalDevicedevice)
+
+static
+
+ +

Timeline Semaphores are optional features and must be enabled.

+

This is a helper function which can determine if a LogicalDevice has enabled Timeline Semaphores.

+

See DeviceFeature::TimelineSemaphores for context.

+ +
+
+
+ + + + diff --git a/classtz_1_1gl_1_1vk2_1_1_timeline_semaphore.png b/classtz_1_1gl_1_1vk2_1_1_timeline_semaphore.png new file mode 100644 index 0000000000..42cdb13a8a Binary files /dev/null and b/classtz_1_1gl_1_1vk2_1_1_timeline_semaphore.png differ diff --git a/classtz_1_1gl_1_1vk2_1_1_vulkan_debug_messenger.html b/classtz_1_1gl_1_1vk2_1_1_vulkan_debug_messenger.html new file mode 100644 index 0000000000..2ecf63713d --- /dev/null +++ b/classtz_1_1gl_1_1vk2_1_1_vulkan_debug_messenger.html @@ -0,0 +1,104 @@ + + + + + + + +Topaz: tz::gl::vk2::VulkanDebugMessenger Class Reference + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.1.0.1 +
+
C++20 Graphics Engine
+
+
+ + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+
tz::gl::vk2::VulkanDebugMessenger Class Reference
+
+
+
+ + + + diff --git a/classtz_1_1gl_1_1vk2_1_1_vulkan_instance.html b/classtz_1_1gl_1_1vk2_1_1_vulkan_instance.html new file mode 100644 index 0000000000..408555de13 --- /dev/null +++ b/classtz_1_1gl_1_1vk2_1_1_vulkan_instance.html @@ -0,0 +1,112 @@ + + + + + + + +Topaz: tz::gl::vk2::VulkanInstance Class Reference + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.1.0.1 +
+
C++20 Graphics Engine
+
+
+ + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+
tz::gl::vk2::VulkanInstance Class Reference
+
+
+ +

Represents a vulkan instance, which acts as a reference to all per-application state. + More...

+ +

#include <tz_vulkan.hpp>

+

Detailed Description

+

Represents a vulkan instance, which acts as a reference to all per-application state.

+

There is a default instance, retrievable via vk2::get() but you can create additional instances.

+
+ + + + diff --git a/classtz_1_1gl_1_1vk2_1_1_window_surface.html b/classtz_1_1gl_1_1vk2_1_1_window_surface.html new file mode 100644 index 0000000000..944989f8c4 --- /dev/null +++ b/classtz_1_1gl_1_1vk2_1_1_window_surface.html @@ -0,0 +1,122 @@ + + + + + + + +Topaz: tz::gl::vk2::WindowSurface Class Reference + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.1.0.1 +
+
C++20 Graphics Engine
+
+
+ + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+
+Public Member Functions
+
+
+
+ +

Represents a Vulkan-friendly interface to an existing OS window. + More...

+ +

#include <tz_vulkan.hpp>

+ + + + + +

+Public Member Functions

WindowSurface (const VulkanInstance &instance, const tz::wsi::window &window)
 Create a WindowSurface for a given window via an existing VulkanInstance.
 
+

Detailed Description

+

Represents a Vulkan-friendly interface to an existing OS window.

+

In order to present results to the screen, it is done via this WindowSurface class.

Postcondition
Once a WindowSurface is created for a given tz::Window, no other WindowSurfaces can be created for that window. This means only one VulkanInstance can own a Window.
+
+ + + + diff --git a/classtz_1_1gl_1_1vk2_1_1hardware_1_1_queue.html b/classtz_1_1gl_1_1vk2_1_1hardware_1_1_queue.html new file mode 100644 index 0000000000..27ed28ae85 --- /dev/null +++ b/classtz_1_1gl_1_1vk2_1_1hardware_1_1_queue.html @@ -0,0 +1,247 @@ + + + + + + + +Topaz: tz::gl::vk2::hardware::Queue Class Reference + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.1.0.1 +
+
C++20 Graphics Engine
+
+
+ + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+
+Data Structures | +Public Types | +Public Member Functions
+
tz::gl::vk2::hardware::Queue Class Reference
+
+
+ +

Represents a single hardware Queue. + More...

+ +

#include <queue.hpp>

+ + + + + + + + +

+Data Structures

struct  PresentInfo
 Specifies information about a present request issued to a Queue. More...
 
struct  SubmitInfo
 Specifies information about a submission of GPU work to a Queue. More...
 
+ + + + +

+Public Types

enum class  PresentResult {
+  Success_NoIssue +,
+  Success_Suboptimal +,
+  Fail_OutOfDate +,
+  Fail_AccessDenied +,
+  Fail_SurfaceLost +,
+  Fail_FatalError +
+ }
 Describes the result of a presentation request. See Queue::present. More...
 
+ + + + + + + +

+Public Member Functions

void submit (SubmitInfo submit_info)
 Submit the queue, including any associated command buffers and perform necessary synchronisation.
 
PresentResult present (PresentInfo present_info)
 Queue an image for presentation.
 
+

Detailed Description

+

Represents a single hardware Queue.

+

Member Enumeration Documentation

+ +

◆ PresentResult

+ +
+
+ + + + + +
+ + + + +
enum class tz::gl::vk2::hardware::Queue::PresentResult
+
+strong
+
+ +

Describes the result of a presentation request. See Queue::present.

+ + + + + + + +
Enumerator
Success_NoIssue 
    +
  • Presentation request succeeded without any issues.
  • +
+
Success_Suboptimal 
    +
  • Presentation request succeeded, but swapchain no longer matches surface properly. It should be updated.
  • +
+
Fail_OutOfDate 
    +
  • Presentation request failed because the swapchain is no longer comapatible with the surface. It should be updated.
  • +
+
Fail_AccessDenied 
    +
  • Presentation request failed because we did not have exclusive access to the swapchain.
  • +
+
Fail_SurfaceLost 
    +
  • Presentation request failed because the surface is no longer available.
  • +
+
Fail_FatalError 
    +
  • Presentation request failed, and there's nothing we can do about it.
  • +
+
+ +
+
+

Member Function Documentation

+ +

◆ present()

+ +
+
+ + + + + + + + +
Queue::PresentResult tz::gl::vk2::hardware::Queue::present (Queue::PresentInfo present_info)
+
+ +

Queue an image for presentation.

+

See PresentInfo for details.

Returns
Description on whether the presentation request was accepted or rejected.
+ +
+
+ +

◆ submit()

+ +
+
+ + + + + + + + +
void tz::gl::vk2::hardware::Queue::submit (SubmitInfo submit_info)
+
+ +

Submit the queue, including any associated command buffers and perform necessary synchronisation.

+

See SubmitInfo for more information.

+ +
+
+
+ + + + diff --git a/classtz_1_1gl_1_1window__output.html b/classtz_1_1gl_1_1window__output.html new file mode 100644 index 0000000000..680c72308e --- /dev/null +++ b/classtz_1_1gl_1_1window__output.html @@ -0,0 +1,114 @@ + + + + + + + +Topaz: tz::gl::window_output Class Reference + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.1.0.1 +
+
C++20 Graphics Engine
+
+
+ + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+
tz::gl::window_output Class Referencefinal
+
+
+
+Inheritance diagram for tz::gl::window_output:
+
+
+ + +tz::gl::ioutput +tz::unique_cloneable< T > + +
+
+ + + + diff --git a/classtz_1_1gl_1_1window__output.png b/classtz_1_1gl_1_1window__output.png new file mode 100644 index 0000000000..65b9144db1 Binary files /dev/null and b/classtz_1_1gl_1_1window__output.png differ diff --git a/classtz_1_1grid__view.html b/classtz_1_1grid__view.html new file mode 100644 index 0000000000..aabd63bea1 --- /dev/null +++ b/classtz_1_1grid__view.html @@ -0,0 +1,308 @@ + + + + + + + +Topaz: tz::grid_view< T, N > Class Template Reference + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.1.0.1 +
+
C++20 Graphics Engine
+
+
+ + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+
+Public Member Functions
+
tz::grid_view< T, N > Class Template Reference
+
+
+ +

A view into an array representing a flattened grid of data. + More...

+ +

#include <grid_view.hpp>

+ + + + + + + + + + + + + + + + + + + + +

+Public Member Functions

 grid_view (std::span< T > data, tz::vec2ui dimensions)
 Create a view over an existing array of grid data.
 
 grid_view (std::span< T > data, unsigned int length)
 Create a view over an existing array of square grid data.
 
tz::vec2ui get_dimensions () const
 Retrieve the dimensions of the grid, in elements.
 
+std::span< T > span ()
 Retrieve the underlying span.
 
std::span< const T > span () const
 Retrieve the underlying span.
 
std::conditional_t< N==1, T &, std::span< T > > operator() (unsigned int x, unsigned int y)
 Retrieve the element at the provided co-ordinate.
 
+

Detailed Description

+
template<typename T, std::size_t N = 1>
+class tz::grid_view< T, N >

A view into an array representing a flattened grid of data.

+

Elements are interpreted as a tightly-packed array of rows. Each element is expected to be equivalent to a T[N]. For example, grid_view on an RGBA32 image might be a grid_view<std::byte, 4>.

Template Parameters
+ + + +
TUnderlying type of the element.
Nnumber of T's per element. Default 1.
+
+
+

Constructor & Destructor Documentation

+ +

◆ grid_view() [1/2]

+ +
+
+
+template<typename T , std::size_t N>
+ + + + + + + + + + + + + + + + + + +
tz::grid_view< T, N >::grid_view (std::span< T > data,
tz::vec2ui dimensions 
)
+
+ +

Create a view over an existing array of grid data.

+
Parameters
+ + + +
dataView over grid data.
dimensions{x, y} where x is number of columns, and y is number of rows.
+
+
+ +
+
+ +

◆ grid_view() [2/2]

+ +
+
+
+template<typename T , std::size_t N>
+ + + + + + + + + + + + + + + + + + +
tz::grid_view< T, N >::grid_view (std::span< T > data,
unsigned int length 
)
+
+ +

Create a view over an existing array of square grid data.

+
Parameters
+ + + +
dataView over grid data.
lengthRepresents the number of columns and rows.
+
+
+ +
+
+

Member Function Documentation

+ +

◆ get_dimensions()

+ +
+
+
+template<typename T , std::size_t N>
+ + + + + + + +
tz::vec2ui tz::grid_view< T, N >::get_dimensions () const
+
+ +

Retrieve the dimensions of the grid, in elements.

+
Returns
{width, height}.
+ +
+
+ +

◆ operator()()

+ +
+
+
+template<typename T , std::size_t N>
+ + + + + + + + + + + + + + + + + + +
std::conditional_t< N==1, T &, std::span< T > > tz::grid_view< T, N >::operator() (unsigned int x,
unsigned int y 
)
+
+ +

Retrieve the element at the provided co-ordinate.

+

Note that normally this returns a span representing the T[] of an element. However if N == 1, then a reference to a single T is retrieved instead.

Parameters
+ + + +
xColumn index locating the element.
yRow index locating the element.
+
+
+
Returns
Reference to the element, via a normal ref (if an element has only one T) or a span<T> of size equal to N.
+ +
+
+ +

◆ span()

+ +
+
+
+template<typename T , std::size_t N>
+ + + + + + + +
std::span< const T > tz::grid_view< T, N >::span () const
+
+ +

Retrieve the underlying span.

+

Read-only.

+ +
+
+
+ + + + diff --git a/classtz_1_1handle.html b/classtz_1_1handle.html new file mode 100644 index 0000000000..67ea15e018 --- /dev/null +++ b/classtz_1_1handle.html @@ -0,0 +1,104 @@ + + + + + + + +Topaz: tz::handle< T > Class Template Reference + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.1.0.1 +
+
C++20 Graphics Engine
+
+
+ + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+
tz::handle< T > Class Template Reference
+
+
+
+ + + + diff --git a/classtz_1_1i__job__system.html b/classtz_1_1i__job__system.html new file mode 100644 index 0000000000..6052df9e35 --- /dev/null +++ b/classtz_1_1i__job__system.html @@ -0,0 +1,113 @@ + + + + + + + +Topaz: tz::i_job_system Class Reference + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.1.0.1 +
+
C++20 Graphics Engine
+
+
+ + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+
tz::i_job_system Class Referenceabstract
+
+
+
+Inheritance diagram for tz::i_job_system:
+
+
+ + +tz::impl::job_system_threadpool_lfq + +
+
+ + + + diff --git a/classtz_1_1i__job__system.png b/classtz_1_1i__job__system.png new file mode 100644 index 0000000000..5bbd716773 Binary files /dev/null and b/classtz_1_1i__job__system.png differ diff --git a/classtz_1_1impl_1_1job__system__threadpool__lfq.html b/classtz_1_1impl_1_1job__system__threadpool__lfq.html new file mode 100644 index 0000000000..e99e707985 --- /dev/null +++ b/classtz_1_1impl_1_1job__system__threadpool__lfq.html @@ -0,0 +1,124 @@ + + + + + + + +Topaz: tz::impl::job_system_threadpool_lfq Class Reference + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.1.0.1 +
+
C++20 Graphics Engine
+
+
+ + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+
+Data Structures | +Public Member Functions
+
tz::impl::job_system_threadpool_lfq Class Reference
+
+
+
+Inheritance diagram for tz::impl::job_system_threadpool_lfq:
+
+
+ + +tz::i_job_system + +
+ + + + + +

+Public Member Functions

+virtual job_handle execute (job_t job, execution_info einfo={}) override
 important note: if the job has an affinity, block(j) and complete(j) will not function correctly.
 
+
+ + + + diff --git a/classtz_1_1impl_1_1job__system__threadpool__lfq.png b/classtz_1_1impl_1_1job__system__threadpool__lfq.png new file mode 100644 index 0000000000..c6b8e7571d Binary files /dev/null and b/classtz_1_1impl_1_1job__system__threadpool__lfq.png differ diff --git a/classtz_1_1io_1_1gltf.html b/classtz_1_1io_1_1gltf.html new file mode 100644 index 0000000000..2186530f39 --- /dev/null +++ b/classtz_1_1io_1_1gltf.html @@ -0,0 +1,150 @@ + + + + + + + +Topaz: tz::io::gltf Class Reference + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.1.0.1 +
+
C++20 Graphics Engine
+
+
+ + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+
+Static Public Member Functions
+
tz::io::gltf Class Reference
+
+
+ + + + + +

+Static Public Member Functions

static gltf from_memory (std::string_view sv)
 here's an example of what a glb's json chunk might look like: { "asset": { "generator":"Khronos glTF Blender I/O v3.6.27", "version":"2.0" }, "scene":0, "scenes": [{ "name":"Scene", "nodes":[0] }], "nodes": [{ "mesh":0, "name":"Cube" }], "materials": [{ "doubleSided":true, "name":"Material", "pbrMetallicRoughness": { "baseColorFactor":[0.800000011920929,0.800000011920929,0.800000011920929,1], "metallicFactor":0, "roughnessFactor":0.5 } }], "meshes": [{ "name":"Cube", "primitives": [{ "attributes":{"POSITION":0,"NORMAL":1,"TEXCOORD_0":2}, "indices":3, "material":0 }] }], "accessors": [ {"bufferView":0,"componentType":5126,"count":24,"max":[1,1,1],"min":[-1,-1,-1],"type":"VEC3"}, {"bufferView":1,"componentType":5126,"count":24,"type":"VEC3"}, {"bufferView":2,"componentType":5126,"count":24,"type":"VEC2"}, {"bufferView":3,"componentType":5123,"count":36,"type":"SCALAR"} ], "bufferViews": [ {"buffer":0,"byteLength":288,"byteOffset":0,"target":34962}, {"buffer":0,"byteLength":288,"byteOffset":288,"target":34962}, {"buffer":0,"byteLength":192,"byteOffset":576,"target":34962}, {"buffer":0,"byteLength":72,"byteOffset":768,"target":34963} ], "buffers": [{ "byteLength":840 }]
 
+

Member Function Documentation

+ +

◆ from_memory()

+ +
+
+ + + + + +
+ + + + + + + + +
gltf tz::io::gltf::from_memory (std::string_view sv)
+
+static
+
+ +

here's an example of what a glb's json chunk might look like: { "asset": { "generator":"Khronos glTF Blender I/O v3.6.27", "version":"2.0" }, "scene":0, "scenes": [{ "name":"Scene", "nodes":[0] }], "nodes": [{ "mesh":0, "name":"Cube" }], "materials": [{ "doubleSided":true, "name":"Material", "pbrMetallicRoughness": { "baseColorFactor":[0.800000011920929,0.800000011920929,0.800000011920929,1], "metallicFactor":0, "roughnessFactor":0.5 } }], "meshes": [{ "name":"Cube", "primitives": [{ "attributes":{"POSITION":0,"NORMAL":1,"TEXCOORD_0":2}, "indices":3, "material":0 }] }], "accessors": [ {"bufferView":0,"componentType":5126,"count":24,"max":[1,1,1],"min":[-1,-1,-1],"type":"VEC3"}, {"bufferView":1,"componentType":5126,"count":24,"type":"VEC3"}, {"bufferView":2,"componentType":5126,"count":24,"type":"VEC2"}, {"bufferView":3,"componentType":5123,"count":36,"type":"SCALAR"} ], "bufferViews": [ {"buffer":0,"byteLength":288,"byteOffset":0,"target":34962}, {"buffer":0,"byteLength":288,"byteOffset":288,"target":34962}, {"buffer":0,"byteLength":192,"byteOffset":576,"target":34962}, {"buffer":0,"byteLength":72,"byteOffset":768,"target":34963} ], "buffers": [{ "byteLength":840 }]

+
    +
  • looks like the glb defines a set of scenes, but chooses one of them.
  • +
  • scene contains nodes. nodes appear to be a set of meshes.
  • +
  • meshes contain primitives, which contain attributes.
  • +
  • attributes and indices are defined as references to accessors.
  • +
  • accessors seem to define essentially data spans of various types. in this case just buffer views.
  • +
  • buffer views show spans within buffers (which live in bin chunks not shown in this example).
  • +
+ +
+
+
+ + + + diff --git a/classtz_1_1linear__allocator.html b/classtz_1_1linear__allocator.html new file mode 100644 index 0000000000..78e774f2a3 --- /dev/null +++ b/classtz_1_1linear__allocator.html @@ -0,0 +1,121 @@ + + + + + + + +Topaz: tz::linear_allocator Class Reference + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.1.0.1 +
+
C++20 Graphics Engine
+
+
+ + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+
tz::linear_allocator Class Reference
+
+
+ +

An allocator which operates on a pre-allocated buffer of variable size. + More...

+ +

#include <linear.hpp>

+
+Inheritance diagram for tz::linear_allocator:
+
+
+ + +tz::stack_allocator< S > + +
+

Detailed Description

+

An allocator which operates on a pre-allocated buffer of variable size.

+

On construction, the arena buffer is considered to be wholly uninitialised. Each allocationslowly fills the arena until there is not enough space for an allocation request, in which case the null block is returned.

+
+ + + + diff --git a/classtz_1_1linear__allocator.png b/classtz_1_1linear__allocator.png new file mode 100644 index 0000000000..cf01e583a2 Binary files /dev/null and b/classtz_1_1linear__allocator.png differ diff --git a/classtz_1_1lua_1_1state.html b/classtz_1_1lua_1_1state.html new file mode 100644 index 0000000000..65a3326af2 --- /dev/null +++ b/classtz_1_1lua_1_1state.html @@ -0,0 +1,224 @@ + + + + + + + +Topaz: tz::lua::state Class Reference + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.1.0.1 +
+
C++20 Graphics Engine
+
+
+ + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+
+Public Member Functions
+
tz::lua::state Class Reference
+
+
+ +

Represents a lua state. + More...

+ +

#include <state.hpp>

+ + + + + + + + + + + +

+Public Member Functions

bool valid () const
 Query as to whether the state is valid.
 
bool execute_file (const char *path, bool assert_on_failure=true) const
 Attempt to execute a lua source file.
 
bool execute (const char *lua_src, bool assert_on_failure=true) const
 Attempt to execute a lua source string.
 
+

Detailed Description

+

Represents a lua state.

+

To retrieve the main lua state, see tz::lua::get_state()

+

Member Function Documentation

+ +

◆ execute()

+ +
+
+ + + + + + + + + + + + + + + + + + +
bool tz::lua::state::execute (const char * lua_src,
bool assert_on_failure = true 
) const
+
+ +

Attempt to execute a lua source string.

+

The code is instantly executed, and returns on completion.

Parameters
+ + + +
lua_srcString containing lua source code, appropriate for the state.
assert_on_failureWhether Topaz should assert on the code running without any errors.
+
+
+
Returns
Whether the executed code experienced any errors.
+ +
+
+ +

◆ execute_file()

+ +
+
+ + + + + + + + + + + + + + + + + + +
bool tz::lua::state::execute_file (const char * path,
bool assert_on_failure = true 
) const
+
+ +

Attempt to execute a lua source file.

+

The code is instantly executed, and returns on completion.

Parameters
+ + + +
pathThe relative path locating the lua source file (with extension).
assert_on_failureWhether Topaz should assert on the code running without any errors.
+
+
+
Returns
Whether the executed code experienced any errors.
+ +
+
+ +

◆ valid()

+ +
+
+ + + + + + + +
bool tz::lua::state::valid () const
+
+ +

Query as to whether the state is valid.

+
Returns
True if the state is valid, false otherwise.
+ +
+
+
+ + + + diff --git a/classtz_1_1mallocator.html b/classtz_1_1mallocator.html new file mode 100644 index 0000000000..59cfe2b571 --- /dev/null +++ b/classtz_1_1mallocator.html @@ -0,0 +1,112 @@ + + + + + + + +Topaz: tz::mallocator Class Reference + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.1.0.1 +
+
C++20 Graphics Engine
+
+
+ + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+
tz::mallocator Class Reference
+
+
+ +

Implements tz:allocator. + More...

+ +

#include <malloc.hpp>

+

Detailed Description

+

Implements tz:allocator.

+

An allocator which simply calls malloc. It thinks it owns all memory, so if you're using this in a tz::fallback_allocator make sure it is always used as a secondary allocator, never the primary (or you will free() no matter what).

+
+ + + + diff --git a/classtz_1_1matrix.html b/classtz_1_1matrix.html new file mode 100644 index 0000000000..72229f6f2a --- /dev/null +++ b/classtz_1_1matrix.html @@ -0,0 +1,914 @@ + + + + + + + +Topaz: tz::matrix< T, R, C > Class Template Reference + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.1.0.1 +
+
C++20 Graphics Engine
+
+
+ + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+
+Public Types | +Public Member Functions | +Static Public Member Functions
+
tz::matrix< T, R, C > Class Template Reference
+
+
+ +

Represents a row-major matrix with R rows and C columns. + More...

+ +

#include <matrix.hpp>

+ + + + + + + + +

+Public Types

+using Row = std::array< T, R >
 Type alias for an array large enough to hold a single column of the matrix.
 
+using Column = std::array< T, C >
 Type alias for an array large enough to hold a single row of the matrix.
 
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Public Member Functions

 matrix ()=default
 Default-intialised matrices have indeterminate values.
 
 matrix (std::array< std::array< T, R >, C > data)
 Initialise a matrix from a multi-dimensional array.
 
const Rowoperator[] (std::size_t row_idx) const
 Retrieve the i'th row of the matrix.
 
Rowoperator[] (std::size_t row_idx)
 Retrieve the i'th row of the matrix.
 
const T & operator() (std::size_t row, std::size_t column) const
 Retrieve the element at the given row and column of the matrix.
 
T & operator() (std::size_t row, std::size_t column)
 Retrieve the element at the given row and column of the matrix.
 
matrix< T, R, C > & operator+= (T scalar)
 Add the scalar value to each element of the current matrix.
 
matrix< T, R, C > & operator+= (const matrix< T, R, C > &matrix)
 Add the given matrix to the current matrix.
 
matrix< T, R, C > operator+ (T scalar) const
 Add the scalar value to each element of the current matrix.
 
matrix< T, R, C > operator+ (const matrix< T, R, C > &matrix) const
 Add the given matrix to the current matrix.
 
matrix< T, R, C > & operator-= (T scalar)
 Subtract the scalar value from each element of the current matrix.
 
matrix< T, R, C > & operator-= (const matrix< T, R, C > &matrix)
 Subtract the given matrix from the current matrix.
 
matrix< T, R, C > operator- (T scalar) const
 Subtract the scalar value from each element of the current matrix.
 
matrix< T, R, C > operator- (const matrix< T, R, C > &matrix) const
 Subtract the given matrix from the current matrix.
 
matrix< T, R, C > & operator*= (T scalar)
 Multiply the scalar value with each element of the current matrix.
 
matrix< T, R, C > & operator*= (const matrix< T, R, C > &matrix)
 Multiply the given matrix with the current matrix.
 
matrix< T, R, C > operator* (T scalar) const
 Multiply the scalar value with each element of the current matrix.
 
matrix< T, R, C > operator* (const matrix< T, R, C > &matrix) const
 Multiply the given matrix with the current matrix.
 
tz::vector< T, R > operator* (const tz::vector< T, C > &vec) const
 Multiply the given vector (column-matrix) with the current matrix and return the resultant vector (row-matrix).
 
bool operator== (T scalar) const
 Equate the given scalar with each value of the matrix.
 
bool operator== (const matrix< T, R, C > &matrix) const
 Equate the given matrix with the current.
 
matrix< T, R, C > inverse () const
 Retrieves a new matrix such that the resultant matrix could be multiplied by the original matrix to result in the identity matrix (See matrix<T, R, C>::identity()).
 
matrix< T, R, C > transpose () const
 Create a copy of the current matrix, and transpose the copy.
 
+ + + + +

+Static Public Member Functions

static constexpr matrix< T, R, C > identity ()
 Retrieve the identity matrix.
 
+

Detailed Description

+
template<tz::number T, std::size_t R, std::size_t C>
+class tz::matrix< T, R, C >

Represents a row-major matrix with R rows and C columns.

+

The value type of a matrix is typically a float or double, but for this implementation it is templated on T.

+

Constructor & Destructor Documentation

+ +

◆ matrix() [1/2]

+ +
+
+
+template<tz::number T, std::size_t R, std::size_t C>
+ + + + + +
+ + + + + + + +
tz::matrix< T, R, C >::matrix ()
+
+default
+
+ +

Default-intialised matrices have indeterminate values.

+

To initialise the values, assign them or simply assign to matrix<T, R, C>::identity().

+ +
+
+ +

◆ matrix() [2/2]

+ +
+
+
+template<tz::number T, std::size_t R, std::size_t C>
+ + + + + + + + +
tz::matrix< T, R, C >::matrix (std::array< std::array< T, R >, C > data)
+
+ +

Initialise a matrix from a multi-dimensional array.

+
Parameters
+ + +
dataAn array of array of values to construct the row-major matrix.
+
+
+ +
+
+

Member Function Documentation

+ +

◆ identity()

+ +
+
+
+template<tz::number T, std::size_t R, std::size_t C>
+ + + + + +
+ + + + + + + +
static constexpr matrix< T, R, C > tz::matrix< T, R, C >::identity ()
+
+inlinestaticconstexpr
+
+ +

Retrieve the identity matrix.

+

High values (1) are constructed via T{1} and low values (0) are constructed via T{0}.

Returns
The identity matrix for the given dimensions.
+ +
+
+ +

◆ inverse()

+ +
+
+
+template<tz::number T, std::size_t R, std::size_t C>
+ + + + + + + +
matrix< T, R, C > tz::matrix< T, R, C >::inverse () const
+
+ +

Retrieves a new matrix such that the resultant matrix could be multiplied by the original matrix to result in the identity matrix (See matrix<T, R, C>::identity()).

+

If the current matrix is orthogonal, it is an optimisation to prefer the use of matrix<T, R, C>::transpose() instead.

Returns
Inverse of the original matrix. The original matrix is unchanged.
+ +
+
+ +

◆ operator()() [1/2]

+ +
+
+
+template<tz::number T, std::size_t R, std::size_t C>
+ + + + + + + + + + + + + + + + + + +
T & tz::matrix< T, R, C >::operator() (std::size_t row,
std::size_t column 
)
+
+ +

Retrieve the element at the given row and column of the matrix.

+

Precondition: row < R && column < C. Otherwise, this will assert and invoke UB.

Parameters
+ + + +
rowThe index of the row to retrieve. For example, row 0 will retrieve an element in the top-most row.
columnThe index of the column. For example, column 0 will retrieve an element in the left-most row.
+
+
+
Returns
The value at the given coordinate formed by [row, column]. For example, mymatrix(0, 0) will retrieve the very first element of the matrix.
+ +
+
+ +

◆ operator()() [2/2]

+ +
+
+
+template<tz::number T, std::size_t R, std::size_t C>
+ + + + + + + + + + + + + + + + + + +
const T & tz::matrix< T, R, C >::operator() (std::size_t row,
std::size_t column 
) const
+
+ +

Retrieve the element at the given row and column of the matrix.

+

Precondition: row < R && column < C. Otherwise, this will assert and invoke UB.

Parameters
+ + + +
rowThe index of the row to retrieve. For example, row 0 will retrieve an element in the top-most row.
columnThe index of the column. For example, column 0 will retrieve an element in the left-most row.
+
+
+
Returns
The value at the given coordinate formed by [row, column]. For example, mymatrix(0, 0) will retrieve the very first element of the matrix.
+ +
+
+ +

◆ operator*() [1/3]

+ +
+
+
+template<tz::number T, std::size_t R, std::size_t C>
+ + + + + + + + +
matrix< T, R, C > tz::matrix< T, R, C >::operator* (const matrix< T, R, C > & matrix) const
+
+ +

Multiply the given matrix with the current matrix.

+

This is done naively and is unsuitable for very large values of R or C.

Parameters
+ + +
matrixmatrix to multiply with the current matrix.
+
+
+
Returns
A modified copy of the original matrix. The original matrix is unchanged.
+ +
+
+ +

◆ operator*() [2/3]

+ +
+
+
+template<tz::number T, std::size_t R, std::size_t C>
+ + + + + + + + +
tz::vector< T, R > tz::matrix< T, R, C >::operator* (const tz::vector< T, C > & vec) const
+
+ +

Multiply the given vector (column-matrix) with the current matrix and return the resultant vector (row-matrix).

+
Parameters
+ + +
vecColumn matrix to multiply with the current matrix.
+
+
+
Returns
A row-matrix representing the resultant multiplication.
+ +
+
+ +

◆ operator*() [3/3]

+ +
+
+
+template<tz::number T, std::size_t R, std::size_t C>
+ + + + + + + + +
matrix< T, R, C > tz::matrix< T, R, C >::operator* (scalar) const
+
+ +

Multiply the scalar value with each element of the current matrix.

+
Parameters
+ + +
scalarValue to multiply with each element.
+
+
+
Returns
A modified copy of the original matrix. The original matrix is unchanged.
+ +
+
+ +

◆ operator*=() [1/2]

+ +
+
+
+template<tz::number T, std::size_t R, std::size_t C>
+ + + + + + + + +
matrix< T, R, C > & tz::matrix< T, R, C >::operator*= (const matrix< T, R, C > & matrix)
+
+ +

Multiply the given matrix with the current matrix.

+

This is done naively and is unsuitable for very large values of R or C.

Parameters
+ + +
matrixmatrix to multiply with the current matrix.
+
+
+
Returns
Reference to the current matrix.
+ +
+
+ +

◆ operator*=() [2/2]

+ +
+
+
+template<tz::number T, std::size_t R, std::size_t C>
+ + + + + + + + +
matrix< T, R, C > & tz::matrix< T, R, C >::operator*= (scalar)
+
+ +

Multiply the scalar value with each element of the current matrix.

+
Parameters
+ + +
scalarValue to multiply with each element.
+
+
+
Returns
Reference to the current matrix.
+ +
+
+ +

◆ operator+() [1/2]

+ +
+
+
+template<tz::number T, std::size_t R, std::size_t C>
+ + + + + + + + +
matrix< T, R, C > tz::matrix< T, R, C >::operator+ (const matrix< T, R, C > & matrix) const
+
+ +

Add the given matrix to the current matrix.

+

This is done by adding the current value in the same row and column.

Parameters
+ + +
matrixmatrix to add to the current matrix.
+
+
+
Returns
A modified copy of the original matrix. The original matrix is unchanged.
+ +
+
+ +

◆ operator+() [2/2]

+ +
+
+
+template<tz::number T, std::size_t R, std::size_t C>
+ + + + + + + + +
matrix< T, R, C > tz::matrix< T, R, C >::operator+ (scalar) const
+
+ +

Add the scalar value to each element of the current matrix.

+
Parameters
+ + +
scalarValue to add to each element.
+
+
+
Returns
A modified copy of the original matrix. The original matrix is unchanged.
+ +
+
+ +

◆ operator+=() [1/2]

+ +
+
+
+template<tz::number T, std::size_t R, std::size_t C>
+ + + + + + + + +
matrix< T, R, C > & tz::matrix< T, R, C >::operator+= (const matrix< T, R, C > & matrix)
+
+ +

Add the given matrix to the current matrix.

+

This is done by adding the current value in the same row and column.

Parameters
+ + +
matrixmatrix to add to the current matrix.
+
+
+
Returns
Reference to the current matrix.
+ +
+
+ +

◆ operator+=() [2/2]

+ +
+
+
+template<tz::number T, std::size_t R, std::size_t C>
+ + + + + + + + +
matrix< T, R, C > & tz::matrix< T, R, C >::operator+= (scalar)
+
+ +

Add the scalar value to each element of the current matrix.

+
Parameters
+ + +
scalarValue to add to each element.
+
+
+
Returns
Reference to the current matrix.
+ +
+
+ +

◆ operator-() [1/2]

+ +
+
+
+template<tz::number T, std::size_t R, std::size_t C>
+ + + + + + + + +
matrix< T, R, C > tz::matrix< T, R, C >::operator- (const matrix< T, R, C > & matrix) const
+
+ +

Subtract the given matrix from the current matrix.

+

This is done by subtracting the current value in the same row and column.

Parameters
+ + +
matrixmatrix to subtract from the current matrix.
+
+
+
Returns
A modified copy of the original matrix. The original matrix is unchanged.
+ +
+
+ +

◆ operator-() [2/2]

+ +
+
+
+template<tz::number T, std::size_t R, std::size_t C>
+ + + + + + + + +
matrix< T, R, C > tz::matrix< T, R, C >::operator- (scalar) const
+
+ +

Subtract the scalar value from each element of the current matrix.

+
Parameters
+ + +
scalarValue to subtract from each element.
+
+
+
Returns
A modified copy of the original matrix. The original matrix is unchanged.
+ +
+
+ +

◆ operator-=() [1/2]

+ +
+
+
+template<tz::number T, std::size_t R, std::size_t C>
+ + + + + + + + +
matrix< T, R, C > & tz::matrix< T, R, C >::operator-= (const matrix< T, R, C > & matrix)
+
+ +

Subtract the given matrix from the current matrix.

+

This is done by subtracting the current value in the same row and column.

Parameters
+ + +
matrixmatrix to subtract from the current matrix.
+
+
+
Returns
Reference to the current matrix.
+ +
+
+ +

◆ operator-=() [2/2]

+ +
+
+
+template<tz::number T, std::size_t R, std::size_t C>
+ + + + + + + + +
matrix< T, R, C > & tz::matrix< T, R, C >::operator-= (scalar)
+
+ +

Subtract the scalar value from each element of the current matrix.

+
Parameters
+ + +
scalarValue to subtract from each element.
+
+
+
Returns
Reference to the current matrix.
+ +
+
+ +

◆ operator==() [1/2]

+ +
+
+
+template<tz::number T, std::size_t R, std::size_t C>
+ + + + + + + + +
bool tz::matrix< T, R, C >::operator== (const matrix< T, R, C > & matrix) const
+
+ +

Equate the given matrix with the current.

+

Matrices are equal if-and-only-if each element at a given row and column of the current matrix is equal to the corresponding value of the given matrix.

Parameters
+ + +
matrixmatrix to equate with the current matrix.
+
+
+
Returns
True if each value in the given matrix are equal to that of the current matrix. Otherwise, false.
+ +
+
+ +

◆ operator==() [2/2]

+ +
+
+
+template<tz::number T, std::size_t R, std::size_t C>
+ + + + + + + + +
bool tz::matrix< T, R, C >::operator== (scalar) const
+
+ +

Equate the given scalar with each value of the matrix.

+

mymatrix == T{5} shall return if-and-only-if each element of mymatrix is equal to 'T{5}'. If no such comparison exists, then the program is ill-formed.

Parameters
+ + +
scalarValue to equate with each value of the current matrix.
+
+
+
Returns
True if each value of the current matrix is equal to scalar. Otherwise, false.
+ +
+
+ +

◆ operator[]() [1/2]

+ +
+
+
+template<tz::number T, std::size_t R, std::size_t C>
+ + + + + + + + +
matrix< T, R, C >::Row & tz::matrix< T, R, C >::operator[] (std::size_t row_idx)
+
+ +

Retrieve the i'th row of the matrix.

+

Precondition: row_idx < R. Otherwise, this will assert and invoke UB.

Parameters
+ + +
row_idxThe index of the row to retrieve. For example, row_idx 0 will retrieve the top row.
+
+
+
Returns
Array of values representing the given row.
+ +
+
+ +

◆ operator[]() [2/2]

+ +
+
+
+template<tz::number T, std::size_t R, std::size_t C>
+ + + + + + + + +
const matrix< T, R, C >::Row & tz::matrix< T, R, C >::operator[] (std::size_t row_idx) const
+
+ +

Retrieve the i'th row of the matrix.

+

Precondition: row_idx < R. Otherwise, this will assert and invoke UB.

Parameters
+ + +
row_idxThe index of the row to retrieve. For example, row_idx 0 will retrieve the top row.
+
+
+
Returns
Array of values representing the given row.
+ +
+
+ +

◆ transpose()

+ +
+
+
+template<tz::number T, std::size_t R, std::size_t C>
+ + + + + + + +
matrix< T, R, C > tz::matrix< T, R, C >::transpose () const
+
+ +

Create a copy of the current matrix, and transpose the copy.

+

Transposing the matrix is to flip the matrix values over its diagonal. Note: If mymatrix is orthogonal, then mymatrix.transpose() == mymatrix.inverse().

Returns
Transpose of the original matrix. The original matrix is unchanged.
+ +
+
+
+ + + + diff --git a/classtz_1_1maybe__owned__ptr.html b/classtz_1_1maybe__owned__ptr.html new file mode 100644 index 0000000000..5b9d56ab35 --- /dev/null +++ b/classtz_1_1maybe__owned__ptr.html @@ -0,0 +1,104 @@ + + + + + + + +Topaz: tz::maybe_owned_ptr< T > Class Template Reference + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.1.0.1 +
+
C++20 Graphics Engine
+
+
+ + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+
tz::maybe_owned_ptr< T > Class Template Reference
+
+
+
+ + + + diff --git a/classtz_1_1null__allocator.html b/classtz_1_1null__allocator.html new file mode 100644 index 0000000000..4c554630d5 --- /dev/null +++ b/classtz_1_1null__allocator.html @@ -0,0 +1,111 @@ + + + + + + + +Topaz: tz::null_allocator Class Reference + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.1.0.1 +
+
C++20 Graphics Engine
+
+
+ + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+
tz::null_allocator Class Reference
+
+
+ +

An allocator which always returns nullptr. + More...

+ +

#include <null.hpp>

+

Detailed Description

+

An allocator which always returns nullptr.

+
+ + + + diff --git a/classtz_1_1quat.html b/classtz_1_1quat.html new file mode 100644 index 0000000000..a996f45799 --- /dev/null +++ b/classtz_1_1quat.html @@ -0,0 +1,110 @@ + + + + + + + +Topaz: tz::quat Class Reference + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.1.0.1 +
+
C++20 Graphics Engine
+
+
+ + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+
tz::quat Class Reference
+
+
+
+Inheritance diagram for tz::quat:
+
+
+ +
+
+ + + + diff --git a/classtz_1_1quat.png b/classtz_1_1quat.png new file mode 100644 index 0000000000..1aeb69f701 Binary files /dev/null and b/classtz_1_1quat.png differ diff --git a/classtz_1_1ren_1_1anim__renderer.html b/classtz_1_1ren_1_1anim__renderer.html new file mode 100644 index 0000000000..c04f53959e --- /dev/null +++ b/classtz_1_1ren_1_1anim__renderer.html @@ -0,0 +1,120 @@ + + + + + + + +Topaz: tz::ren::anim_renderer Class Reference + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.1.0.1 +
+
C++20 Graphics Engine
+
+
+ + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+
+Data Structures
+
tz::ren::anim_renderer Class Reference
+
+
+ +

todo: document a two-pass (compute gpu command generation => render) mesh renderer. + More...

+ +

#include <anim.hpp>

+ + + + +

+Data Structures

struct  stored_assets
 
+

Detailed Description

+

todo: document a two-pass (compute gpu command generation => render) mesh renderer.

+

pbr?

+
+ + + + diff --git a/classtz_1_1ren_1_1animation__renderer.html b/classtz_1_1ren_1_1animation__renderer.html new file mode 100644 index 0000000000..e1498ca29d --- /dev/null +++ b/classtz_1_1ren_1_1animation__renderer.html @@ -0,0 +1,123 @@ + + + + + + + +Topaz: tz::ren::animation_renderer Class Reference + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.1.0.1 +
+
C++20 Graphics Engine
+
+
+ + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+
+Data Structures
+
tz::ren::animation_renderer Class Reference
+
+
+
+Inheritance diagram for tz::ren::animation_renderer:
+
+
+ + +tz::ren::mesh_renderer + +
+ + + + + + +

+Data Structures

struct  asset_package
 
struct  override_package
 
+
+ + + + diff --git a/classtz_1_1ren_1_1animation__renderer.png b/classtz_1_1ren_1_1animation__renderer.png new file mode 100644 index 0000000000..058c768489 Binary files /dev/null and b/classtz_1_1ren_1_1animation__renderer.png differ diff --git a/classtz_1_1ren_1_1mesh__renderer.html b/classtz_1_1ren_1_1mesh__renderer.html new file mode 100644 index 0000000000..356811162a --- /dev/null +++ b/classtz_1_1ren_1_1mesh__renderer.html @@ -0,0 +1,131 @@ + + + + + + + +Topaz: tz::ren::mesh_renderer Class Reference + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.1.0.1 +
+
C++20 Graphics Engine
+
+
+ + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+
+Data Structures
+
tz::ren::mesh_renderer Class Reference
+
+
+ +

todo: document a two-pass (compute gpu command generation => render) mesh renderer. + More...

+ +

#include <mesh.hpp>

+
+Inheritance diagram for tz::ren::mesh_renderer:
+
+
+ + +tz::ren::animation_renderer + +
+ + + + + + +

+Data Structures

struct  object_init_data
 
struct  object_out_data
 
+

Detailed Description

+

todo: document a two-pass (compute gpu command generation => render) mesh renderer.

+

pbr?

+
+ + + + diff --git a/classtz_1_1ren_1_1mesh__renderer.png b/classtz_1_1ren_1_1mesh__renderer.png new file mode 100644 index 0000000000..ea76102716 Binary files /dev/null and b/classtz_1_1ren_1_1mesh__renderer.png differ diff --git a/classtz_1_1stack__allocator.html b/classtz_1_1stack__allocator.html new file mode 100644 index 0000000000..266397178e --- /dev/null +++ b/classtz_1_1stack__allocator.html @@ -0,0 +1,128 @@ + + + + + + + +Topaz: tz::stack_allocator< S > Class Template Reference + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.1.0.1 +
+
C++20 Graphics Engine
+
+
+ + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+
tz::stack_allocator< S > Class Template Reference
+
+
+ +

An allocator which has its own fixed-size buffer on the stack from which memory is sub-allocated. + More...

+ +

#include <stack.hpp>

+
+Inheritance diagram for tz::stack_allocator< S >:
+
+
+ + +tz::linear_allocator + +
+

Detailed Description

+
template<std::size_t S>
+class tz::stack_allocator< S >

An allocator which has its own fixed-size buffer on the stack from which memory is sub-allocated.

+

Aside from operating on its own stack arena, a stack allocator behaves identically to a linear_allocator.

+

stack_allocators are excellent candidates for fallback allocators. fallback_allocator<stack_allocator<X>, mallocator> allows you to have small-size optimisation for free, for example.

Template Parameters
+ + +
SSize of local automatic storage.
+
+
+
+ + + + diff --git a/classtz_1_1stack__allocator.png b/classtz_1_1stack__allocator.png new file mode 100644 index 0000000000..3e81e9fe9d Binary files /dev/null and b/classtz_1_1stack__allocator.png differ diff --git a/classtz_1_1transform__hierarchy.html b/classtz_1_1transform__hierarchy.html new file mode 100644 index 0000000000..112f51105a --- /dev/null +++ b/classtz_1_1transform__hierarchy.html @@ -0,0 +1,771 @@ + + + + + + + +Topaz: tz::transform_hierarchy< T > Class Template Reference + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.1.0.1 +
+
C++20 Graphics Engine
+
+
+ + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+
+Public Types | +Public Member Functions
+
tz::transform_hierarchy< T > Class Template Reference
+
+
+ +

Represents a hierarchy of 3D transformations, with a payload applied. + More...

+ +

#include <transform_hierarchy.hpp>

+ + + + + + + +

+Public Types

enum class  remove_strategy {
+  patch_children_to_parent +,
+  remove_children +,
+  detach_children +
+ }
 
+using node = transform_node< T >
 Node type.
 
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Public Member Functions

transform_hierarchy ()=default
 Create a new, empty hierarchy.
 
std::size_t size () const
 Retrieves the number of nodes within the hierarchy.
 
bool empty () const
 Query as to whether the hierarchy has nodes.
 
void clear ()
 Remove all nodes from the hierarchy, emptying it.
 
std::vector< unsigned int > get_root_node_ids () const
 Retrieve a vector containing indices corresponding to all the root nodes.
 
std::optional< unsigned int > find_node (const T &value) const
 Attempt to retrieve the index of the node whose value matches the parameter.
 
std::optional< unsigned int > find_node_if (tz::function< bool, const T & > auto predicate) const
 Attempt to retrieve the index of the node whose value satisfies the provided predicate.
 
unsigned int add_node (tz::trs local_transform={}, T data={}, std::optional< unsigned int > parent=std::nullopt)
 Add a new node to the hierarchy.
 
void remove_node (unsigned int node_id, remove_strategy strategy)
 Remove a node.
 
unsigned int add_hierarchy (const transform_hierarchy< T > &tree)
 Add all of the nodes of another hierarchy to this hierarchy, preserving structure.
 
unsigned int add_hierarchy_onto (const transform_hierarchy< T > &tree, unsigned int node_id)
 Add all of the nodes of another hierarchy onto a particular node of this hierarchy, preserving structure.
 
transform_hierarchy< T > export_node (unsigned int id) const
 Take a copy of a particular node, and create a new hierarchy with that as the only root node.
 
const transform_node< T > & get_node (unsigned int id) const
 Retrieve the node corresponding to the given index.
 
tz::trs get_global_transform (unsigned int id) const
 Retrieve the global transform of the node corresponding to the provided id.
 
void iterate_children (unsigned int id, tz::action< unsigned int > auto callback) const
 Invoke a callback for each child of the node corresponding to id.
 
void iterate_descendants (unsigned int id, tz::action< unsigned int > auto callback) const
 Invoke a callback for each descendent of the node corresponding to id.
 
void iterate_ancestors (unsigned int id, tz::action< unsigned int > auto callback) const
 Invoke a callback for each ancestor of the node corresponding to id.
 
void iterate_nodes (tz::action< unsigned int > auto callback) const
 Invoke a callback for each node within the hierarchy, in-order.
 
+

Detailed Description

+
template<typename T = void*>
+class tz::transform_hierarchy< T >

Represents a hierarchy of 3D transformations, with a payload applied.

+

Useful to represent a scene graph, or nodes for 3D skeletal animation.

+

Member Enumeration Documentation

+ +

◆ remove_strategy

+ +
+
+
+template<typename T = void*>
+ + + + + +
+ + + + +
enum class tz::transform_hierarchy::remove_strategy
+
+strong
+
+ + + + +
Enumerator
patch_children_to_parent 

When the node is removed, any children are set to become children of the node's parent instead - essentially skipping the generation.

+
remove_children 

When the node is removed, any children are also removed.

+
detach_children 

When the node is removed, any children are detached, becoming root nodes - even if the original node had a parent.

+
+ +
+
+

Member Function Documentation

+ +

◆ add_hierarchy()

+ +
+
+
+template<typename T >
+ + + + + + + + +
unsigned int tz::transform_hierarchy< T >::add_hierarchy (const transform_hierarchy< T > & tree)
+
+ +

Add all of the nodes of another hierarchy to this hierarchy, preserving structure.

+
Parameters
+ + +
treeHierarchy whose nodes should be copied into this hierarchy.
+
+
+
Note
The root nodes of the provided hierarchy will remain root nodes in this hierarchy. To attach these to an existing node, see add_hierarchy_onto
+
Returns
Integer representing the offset that should be applied to each index of the previous tree. i.e tree.get_node(i) corresponds to this->get_node(i+n), where n is the return value of this method.
+ +
+
+ +

◆ add_hierarchy_onto()

+ +
+
+
+template<typename T >
+ + + + + + + + + + + + + + + + + + +
unsigned int tz::transform_hierarchy< T >::add_hierarchy_onto (const transform_hierarchy< T > & tree,
unsigned int node_id 
)
+
+ +

Add all of the nodes of another hierarchy onto a particular node of this hierarchy, preserving structure.

+
Parameters
+ + + +
treeHierarchy whose nodes should be copied into this hierarchy.
node_idA valid node index for this hierarchy, where all the nodes of the provided hierarchy will be attached to.
+
+
+
Note
This is similar to add_hierarchy but root nodes of the provided hierarchy will be attached to the targeted node instead.
+
Returns
Integer representing the offset that should be applied to each index of the previous tree. i.e tree.get_node(i) corresponds to this->get_node(i+n), where n is the return value of this method.
+ +
+
+ +

◆ add_node()

+ +
+
+
+template<typename T >
+ + + + + + + + + + + + + + + + + + + + + + + + +
unsigned int tz::transform_hierarchy< T >::add_node (tz::trs local_transform = {},
data = {},
std::optional< unsigned int > parent = std::nullopt 
)
+
+ +

Add a new node to the hierarchy.

+
Parameters
+ + + + +
local_transformLocal transform of the node, local to its parent (if it has one). You can change this at any time.
dataData payload of the node. You can change this at any time.
parentOptional index of the parent. If the node has no parent, omit this parameter, or set it to nullopt.
+
+
+
Returns
Index of the newly-created node.
+ +
+
+ +

◆ clear()

+ +
+
+
+template<typename T >
+ + + + + + + +
void tz::transform_hierarchy< T >::clear ()
+
+ +

Remove all nodes from the hierarchy, emptying it.

+
Note
Invalidates all node indices.
+ +
+
+ +

◆ empty()

+ +
+
+
+template<typename T = void*>
+ + + + + +
+ + + + + + + +
bool tz::transform_hierarchy< T >::empty () const
+
+inline
+
+ +

Query as to whether the hierarchy has nodes.

+
Returns
True if this->size() == 0, otherwise false.
+ +
+
+ +

◆ export_node()

+ +
+
+
+template<typename T >
+ + + + + + + + +
transform_hierarchy< T > tz::transform_hierarchy< T >::export_node (unsigned int id) const
+
+ +

Take a copy of a particular node, and create a new hierarchy with that as the only root node.

+
Parameters
+ + +
idIndex corresponding to the node which should become the root node of the resultant hierarchy.
+
+
+
Returns
Hierarchy, where the node corresponding to id is the root node, aswell as copies all of its children and descendants.
+
Note
The global transform of the node is preserved. That is - the global transform of the node within this hierarchy will be equal to the local transform of the root node of the new hierarchy.
+ +
+
+ +

◆ find_node()

+ +
+
+
+template<typename T >
+ + + + + + + + +
std::optional< unsigned int > tz::transform_hierarchy< T >::find_node (const T & value) const
+
+ +

Attempt to retrieve the index of the node whose value matches the parameter.

+
Parameters
+ + +
valueData value whose node should be retrieved.
+
+
+
Returns
Index of the node with the provided value. If there was no node, nullopt is returned.
+ +
+
+ +

◆ find_node_if()

+ +
+
+
+template<typename T >
+ + + + + + + + +
std::optional< unsigned int > tz::transform_hierarchy< T >::find_node_if (tz::function< bool, const T & > auto predicate) const
+
+ +

Attempt to retrieve the index of the node whose value satisfies the provided predicate.

+
Parameters
+ + +
predicatePredicate of the signature booL(const T&) that returns true if the value of the node is what you're looking for.
+
+
+
Returns
Index of the first node whose value satisfies the given predicate. If there was no such node, nullopt is returned.
+ +
+
+ +

◆ get_global_transform()

+ +
+
+
+template<typename T >
+ + + + + + + + +
tz::trs tz::transform_hierarchy< T >::get_global_transform (unsigned int id) const
+
+ +

Retrieve the global transform of the node corresponding to the provided id.

+
Parameters
+ + +
idIndex corresponding to the node to calculate the global transform.
+
+
+
Returns
TRS representing the global transform of the id'th node.
+ +
+
+ +

◆ get_node()

+ +
+
+
+template<typename T >
+ + + + + + + + +
const transform_node< T > & tz::transform_hierarchy< T >::get_node (unsigned int id) const
+
+ +

Retrieve the node corresponding to the given index.

+
Parameters
+ + +
idIndex corresponding to the node to retrieve.
+
+
+
Returns
Node corresponding to the provided index.
+
Precondition
id < this->size(), otherwise the behaviour is undefined.
+ +
+
+ +

◆ get_root_node_ids()

+ +
+
+
+template<typename T >
+ + + + + + + +
std::vector< unsigned int > tz::transform_hierarchy< T >::get_root_node_ids () const
+
+ +

Retrieve a vector containing indices corresponding to all the root nodes.

+
Returns
Vector containing indices of root nodes (nodes without a parent).
+ +
+
+ +

◆ iterate_ancestors()

+ +
+
+
+template<typename T >
+ + + + + + + + + + + + + + + + + + +
void tz::transform_hierarchy< T >::iterate_ancestors (unsigned int id,
tz::action< unsigned int > auto callback 
) const
+
+ +

Invoke a callback for each ancestor of the node corresponding to id.

+

An ancestor is a node that is either a parent, grandparent etc... of the provided node.

Parameters
+ + + +
idIndex corresponding to the node whose ancestors to iterate over.
callbackCallback to be invoked with the current ancestor's node index. Guaranteed to be invoked on the initial caller thread.
+
+
+ +
+
+ +

◆ iterate_children()

+ +
+
+
+template<typename T >
+ + + + + + + + + + + + + + + + + + +
void tz::transform_hierarchy< T >::iterate_children (unsigned int id,
tz::action< unsigned int > auto callback 
) const
+
+ +

Invoke a callback for each child of the node corresponding to id.

+
Parameters
+ + + +
idIndex corresponding to the node whose children to iterate over.
callbackCallback to be invoked with the current child's node index. Guaranteed to be invoked on the initial caller thread.
+
+
+ +
+
+ +

◆ iterate_descendants()

+ +
+
+
+template<typename T >
+ + + + + + + + + + + + + + + + + + +
void tz::transform_hierarchy< T >::iterate_descendants (unsigned int id,
tz::action< unsigned int > auto callback 
) const
+
+ +

Invoke a callback for each descendent of the node corresponding to id.

+

A descendent is a node that is either a child, grandchild etc... of the provided node.

Parameters
+ + + +
idIndex corresponding to the node whose descendants to iterate over.
callbackCallback to be invoked with the current descendant's node index. Guaranteed to be invoked on the initial caller thread.
+
+
+ +
+
+ +

◆ iterate_nodes()

+ +
+
+
+template<typename T >
+ + + + + + + + +
void tz::transform_hierarchy< T >::iterate_nodes (tz::action< unsigned int > auto callback) const
+
+ +

Invoke a callback for each node within the hierarchy, in-order.

+

Depth-first traversal.

Parameters
+ + +
callbackCallback to be invoked exactly once for each node in the hierarchy. Guaranteed to be invoked on the initial caller thread.
+
+
+ +
+
+ +

◆ remove_node()

+ +
+
+
+template<typename T >
+ + + + + + + + + + + + + + + + + + +
void tz::transform_hierarchy< T >::remove_node (unsigned int node_id,
remove_strategy strategy 
)
+
+ +

Remove a node.

+
Parameters
+ + + +
node_idNode corresponding to the id that should be removed.
strategyDescribes behaviour of how the remove should affect children.
+
+
+
Note
Invalidates indices.
+ +
+
+ +

◆ size()

+ +
+
+
+template<typename T >
+ + + + + + + +
std::size_t tz::transform_hierarchy< T >::size () const
+
+ +

Retrieves the number of nodes within the hierarchy.

+
Returns
Number of nodes in the hierarchy.
+ +
+
+
+ + + + diff --git a/classtz_1_1unique__cloneable.html b/classtz_1_1unique__cloneable.html new file mode 100644 index 0000000000..71a048dde9 --- /dev/null +++ b/classtz_1_1unique__cloneable.html @@ -0,0 +1,119 @@ + + + + + + + +Topaz: tz::unique_cloneable< T > Class Template Reference + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.1.0.1 +
+
C++20 Graphics Engine
+
+
+ + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+
tz::unique_cloneable< T > Class Template Referenceabstract
+
+
+
+Inheritance diagram for tz::unique_cloneable< T >:
+
+
+ + +tz::gl::ioutput +tz::gl::iresource +tz::gl::image_output +tz::gl::window_output +tz::gl::resource +tz::gl::buffer_resource +tz::gl::image_resource + +
+
+ + + + diff --git a/classtz_1_1unique__cloneable.png b/classtz_1_1unique__cloneable.png new file mode 100644 index 0000000000..1f8d118c27 Binary files /dev/null and b/classtz_1_1unique__cloneable.png differ diff --git a/classtz_1_1vector.html b/classtz_1_1vector.html new file mode 100644 index 0000000000..f69c92a257 --- /dev/null +++ b/classtz_1_1vector.html @@ -0,0 +1,867 @@ + + + + + + + +Topaz: tz::vector< T, S > Class Template Reference + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.1.0.1 +
+
C++20 Graphics Engine
+
+
+ + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+
+Public Member Functions | +Static Public Member Functions
+
tz::vector< T, S > Class Template Reference
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Public Member Functions

template<tz::number... Ts>
constexpr vector (Ts &&... ts)
 Construct a vector directly using a variadic parameter pack value.
 
+constexpr vector (std::array< T, S > data)
 Construct a vector using an existing array of appropriate size.
 
vector ()=default
 Default-constructed vectors have indeterminate values.
 
const T & operator[] (std::size_t idx) const
 Retrieve the element value at the given index.
 
T & operator[] (std::size_t idx)
 Retrieve the element value at the given index.
 
vector< T, S > & operator+= (const vector< T, S > &rhs)
 Add each element of the given vector to the corresponding element of the current vector.
 
vector< T, S > operator+ (const vector< T, S > &rhs) const
 Create a copy of the current vector, add each element of the given vector to the corresponding element of the copied vector and return the result.
 
vector< T, S > & operator-= (const vector< T, S > &rhs)
 Subtract each element of the given vector from the corresponding element of the current vector.
 
vector< T, S > operator- (const vector< T, S > &rhs) const
 Create a copy of the current vector, subtract each element of the given vector from the corresponding element of the copied vector and return the result.
 
vector< T, S > & operator*= (T scalar)
 Multiply each element of the current vector by the given value.
 
vector< T, S > operator* (T scalar) const
 Create a copy of the current vector, multiply each element of the copied vector by the given value, and return the result.
 
vector< T, S > & operator*= (const vector< T, S > &rhs)
 Multiply each element of the current vector by the corresponding element of the parameter vector.
 
vector< T, S > operator* (const vector< T, S > &rhs) const
 Create a copy of the current vector, multiply each element of the copied vector with the corresponding element of the parameter vector, and return the result.
 
vector< T, S > & operator/= (T scalar)
 Divide each element of the current vector by the given value.
 
vector< T, S > operator/ (T scalar) const
 Create a copy of the current vector, divide each element of the copied vector by the given value, and return the result.
 
bool operator== (const vector< T, S > &rhs) const
 Equate the current vector with the given vector.
 
std::span< const T > data () const
 Retrieve a pointer to the vector data.
 
std::span< T > data ()
 Retrieve a pointer to the vector data.
 
dot (const vector< T, S > &rhs) const
 Compute a dot-product (otherwise known as the scalar-product) of the current vector against another given vector.
 
length () const
 Retrieve the magnitude of the current vector.
 
void normalise ()
 Normalise the vector.
 
vector< T, S > normalised () const
 Create a copy of the vector, normalise it and return the result.
 
template<int... indices>
vector< T, sizeof...(indices)> swizzle () const
 Perform vector swizzling.
 
vector< T, S+1 > with_more (T &&end) const
 Create a new vector, with a single extra element appended to the end.
 
template<std::size_t S2>
vector< T, S+S2 > with_more (const vector< T, S2 > &end) const
 Create a new vector, with another vector appended to the end.
 
template<tz::number X, typename = std::enable_if_t<!std::is_same_v<T, X>>>
 operator vector< X, S > () const
 Perform a conversion to a vector of different numeric type.
 
+ + + + + + + +

+Static Public Member Functions

+static constexpr vector< T, S > zero ()
 Create a vector filled entirely with zeros.
 
+static constexpr vector< T, S > filled (T t)
 Create a vector filled entirely with a given value.
 
+

Constructor & Destructor Documentation

+ +

◆ vector()

+ +
+
+
+template<tz::number T, std::size_t S>
+
+template<tz::number... Ts>
+ + + + + +
+ + + + + + + + +
constexpr tz::vector< T, S >::vector (Ts &&... ts)
+
+inlineconstexpr
+
+ +

Construct a vector directly using a variadic parameter pack value.

+

Static Precondition: sizeof...(Ts) == S, otherwise the program is ill-formed.

+ +
+
+

Member Function Documentation

+ +

◆ data() [1/2]

+ +
+
+
+template<tz::number T, std::size_t S>
+ + + + + + + +
std::span< T > tz::vector< T, S >::data ()
+
+ +

Retrieve a pointer to the vector data.

+

This points to the first element of an array of size S.

Returns
Pointer to the first element of the vector array data.
+ +
+
+ +

◆ data() [2/2]

+ +
+
+
+template<tz::number T, std::size_t S>
+ + + + + + + +
std::span< const T > tz::vector< T, S >::data () const
+
+ +

Retrieve a pointer to the vector data.

+

This points to the first element of an array of size S.

Returns
Pointer to the first element of the vector array data.
+ +
+
+ +

◆ dot()

+ +
+
+
+template<tz::number T, std::size_t S>
+ + + + + + + + +
T tz::vector< T, S >::dot (const vector< T, S > & rhs) const
+
+ +

Compute a dot-product (otherwise known as the scalar-product) of the current vector against another given vector.

+
Parameters
+ + +
rhsThe other given vector.
+
+
+
Returns
Scalar value representing the dot-product.
+ +
+
+ +

◆ length()

+ +
+
+
+template<tz::number T, std::size_t S>
+ + + + + + + +
T tz::vector< T, S >::length () const
+
+ +

Retrieve the magnitude of the current vector.

+
Returns
Magnitude of the vector.
+ +
+
+ +

◆ normalise()

+ +
+
+
+template<tz::number T, std::size_t S>
+ + + + + + + +
void tz::vector< T, S >::normalise ()
+
+ +

Normalise the vector.

+

This is equivalent to dividing the vector by its length(). Note: This modifies the current vector. To retrieve a modified copy and leave the original unchanged, see vector<T, S>::normalised().

+ +
+
+ +

◆ normalised()

+ +
+
+
+template<tz::number T, std::size_t S>
+ + + + + + + +
vector< T, S > tz::vector< T, S >::normalised () const
+
+ +

Create a copy of the vector, normalise it and return the result.

+
Returns
A normalised copy of the current vector.
+ +
+
+ +

◆ operator vector< X, S >()

+ +
+
+
+template<tz::number T, std::size_t S>
+
+template<tz::number X, typename >
+ + + + + + + +
tz::vector< T, S >::operator vector< X, S > () const
+
+ +

Perform a conversion to a vector of different numeric type.

+

Numeric conversion is performed via explicit conversion.

+ +
+
+ +

◆ operator*() [1/2]

+ +
+
+
+template<tz::number T, std::size_t S>
+ + + + + + + + +
vector< T, S > tz::vector< T, S >::operator* (const vector< T, S > & rhs) const
+
+ +

Create a copy of the current vector, multiply each element of the copied vector with the corresponding element of the parameter vector, and return the result.

+
Parameters
+ + +
rhsVector whose elements should be multiplied with ours.
+
+
+
Returns
A modified copy of the original vector. The initial vector is unchanged.
+ +
+
+ +

◆ operator*() [2/2]

+ +
+
+
+template<tz::number T, std::size_t S>
+ + + + + + + + +
vector< T, S > tz::vector< T, S >::operator* (scalar) const
+
+ +

Create a copy of the current vector, multiply each element of the copied vector by the given value, and return the result.

+
Parameters
+ + +
scalarValue to multiply by each element of the current vector.
+
+
+
Returns
A modified copy of the current vector. The initial vector is unchanged.
+ +
+
+ +

◆ operator*=() [1/2]

+ +
+
+
+template<tz::number T, std::size_t S>
+ + + + + + + + +
vector< T, S > & tz::vector< T, S >::operator*= (const vector< T, S > & rhs)
+
+ +

Multiply each element of the current vector by the corresponding element of the parameter vector.

+
Parameters
+ + +
rhsVector whose elements should be multiplied with ours.
+
+
+
Returns
The modified original vector.
+ +
+
+ +

◆ operator*=() [2/2]

+ +
+
+
+template<tz::number T, std::size_t S>
+ + + + + + + + +
vector< T, S > & tz::vector< T, S >::operator*= (scalar)
+
+ +

Multiply each element of the current vector by the given value.

+
Parameters
+ + +
scalarValue to multiply by each element of the current vector.
+
+
+
Returns
The modified original vector.
+ +
+
+ +

◆ operator+()

+ +
+
+
+template<tz::number T, std::size_t S>
+ + + + + + + + +
vector< T, S > tz::vector< T, S >::operator+ (const vector< T, S > & rhs) const
+
+ +

Create a copy of the current vector, add each element of the given vector to the corresponding element of the copied vector and return the result.

+
Parameters
+ + +
rhsvector whose elemens need be added to the current vector.
+
+
+
Returns
A modified copy of the current vector. The initial vector is unchanged.
+ +
+
+ +

◆ operator+=()

+ +
+
+
+template<tz::number T, std::size_t S>
+ + + + + + + + +
vector< T, S > & tz::vector< T, S >::operator+= (const vector< T, S > & rhs)
+
+ +

Add each element of the given vector to the corresponding element of the current vector.

+
Parameters
+ + +
rhsvector whose elements need be added to the current vector.
+
+
+
Returns
The modified original vector.
+ +
+
+ +

◆ operator-()

+ +
+
+
+template<tz::number T, std::size_t S>
+ + + + + + + + +
vector< T, S > tz::vector< T, S >::operator- (const vector< T, S > & rhs) const
+
+ +

Create a copy of the current vector, subtract each element of the given vector from the corresponding element of the copied vector and return the result.

+
Parameters
+ + +
rhsvector whose elemens need be subtracted from the current vector.
+
+
+
Returns
A modified copy of the current vector. The initial vector is unchanged.
+ +
+
+ +

◆ operator-=()

+ +
+
+
+template<tz::number T, std::size_t S>
+ + + + + + + + +
vector< T, S > & tz::vector< T, S >::operator-= (const vector< T, S > & rhs)
+
+ +

Subtract each element of the given vector from the corresponding element of the current vector.

+
Parameters
+ + +
rhsvector whose elements need be subtracted from the current vector.
+
+
+
Returns
The modified original vector.
+ +
+
+ +

◆ operator/()

+ +
+
+
+template<tz::number T, std::size_t S>
+ + + + + + + + +
vector< T, S > tz::vector< T, S >::operator/ (scalar) const
+
+ +

Create a copy of the current vector, divide each element of the copied vector by the given value, and return the result.

+
Parameters
+ + +
scalarValue to divide by each element of the current vector.
+
+
+
Returns
A modified copy of the current vector. The initial vector is unchanged.
+ +
+
+ +

◆ operator/=()

+ +
+
+
+template<tz::number T, std::size_t S>
+ + + + + + + + +
vector< T, S > & tz::vector< T, S >::operator/= (scalar)
+
+ +

Divide each element of the current vector by the given value.

+
Parameters
+ + +
scalarValue to divide by each element of the current vector.
+
+
+
Returns
The modified original vector.
+ +
+
+ +

◆ operator==()

+ +
+
+
+template<tz::number T, std::size_t S>
+ + + + + + + + +
bool tz::vector< T, S >::operator== (const vector< T, S > & rhs) const
+
+ +

Equate the current vector with the given vector.

+
Parameters
+ + +
rhsGiven vector to compare with the current vector.
+
+
+
Returns
True if each element of the given vector are equal to the corresponding element of the current vector.
+ +
+
+ +

◆ operator[]() [1/2]

+ +
+
+
+template<tz::number T, std::size_t S>
+ + + + + + + + +
T & tz::vector< T, S >::operator[] (std::size_t idx)
+
+ +

Retrieve the element value at the given index.

+

Precondition: idx < S. Otherwise, this will assert and invoke UB.

Returns
The value at the given index.
+ +
+
+ +

◆ operator[]() [2/2]

+ +
+
+
+template<tz::number T, std::size_t S>
+ + + + + + + + +
const T & tz::vector< T, S >::operator[] (std::size_t idx) const
+
+ +

Retrieve the element value at the given index.

+

Precondition: idx < S. Otherwise, this will assert and invoke UB.

Returns
The value at the given index.
+ +
+
+ +

◆ swizzle()

+ +
+
+
+template<tz::number T, std::size_t S>
+
+template<int... indices>
+ + + + + + + +
vector< T, sizeof...(indices)> tz::vector< T, S >::swizzle () const
+
+ +

Perform vector swizzling.

+

Creates a new vector of sizeof...(indices) dimensions. The i'th value of the new vector corresponds to the value at the i'th index within the parameter pack of the original vector.

+

Example: tz::vec3{1.0f, 2.0f, 3.0f}.swizzle<0, 1, 0, 1>() == tz::vec4{1.0f, 2.0f, 1.0f, 2.0f}

Template Parameters
+ + +
indicesVariable number of integer indices.
+
+
+
Returns
Resultant swizzled vector.
+
Precondition
Each element of indices is less than or equal to S, being the number of dimensions of the original vector. Otherwise, the behaviour is undefined.
+ +
+
+ +

◆ with_more() [1/2]

+ +
+
+
+template<tz::number T, std::size_t S>
+
+template<std::size_t S2>
+ + + + + + + + +
vector< T, S+S2 > tz::vector< T, S >::with_more (const vector< T, S2 > & end) const
+
+ +

Create a new vector, with another vector appended to the end.

+

Example: tz::vec2{0.0f, 1.0f}.with_more(tz::vec3{2.0f, 3.0f, 4.0f}) == tz::vector<float, 5>{0.0f, 1.0f, 2.0f, 3.0f, 4.0f}

Template Parameters
+ + +
S2numeric of dimensions of the appendage vector.
+
+
+
Parameters
+ + +
endvector to be appended to the end of the resultant vector.
+
+
+
Returns
vector with extra element(s) appended.
+ +
+
+ +

◆ with_more() [2/2]

+ +
+
+
+template<tz::number T, std::size_t S>
+ + + + + + + + +
vector< T, S+1 > tz::vector< T, S >::with_more (T && end) const
+
+ +

Create a new vector, with a single extra element appended to the end.

+

Example: tz::vec2{1.0f, 2.0f}.with_more(3.0f) == tz::vec3{1.0f, 2.0f, 3.0f}

Parameters
+ + +
endValue to be appended to the end of the resultant vector.
+
+
+
Returns
vector with extra element appended.
+ +
+
+
+ + + + diff --git a/classtz_1_1wsi_1_1impl_1_1window__winapi.html b/classtz_1_1wsi_1_1impl_1_1window__winapi.html new file mode 100644 index 0000000000..90d58fa2e4 --- /dev/null +++ b/classtz_1_1wsi_1_1impl_1_1window__winapi.html @@ -0,0 +1,104 @@ + + + + + + + +Topaz: tz::wsi::impl::window_winapi Class Reference + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.1.0.1 +
+
C++20 Graphics Engine
+
+
+ + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+
tz::wsi::impl::window_winapi Class Reference
+
+
+
+ + + + diff --git a/classtz_1_1wsi_1_1impl_1_1window__x11.html b/classtz_1_1wsi_1_1impl_1_1window__x11.html new file mode 100644 index 0000000000..29ce346649 --- /dev/null +++ b/classtz_1_1wsi_1_1impl_1_1window__x11.html @@ -0,0 +1,104 @@ + + + + + + + +Topaz: tz::wsi::impl::window_x11 Class Reference + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.1.0.1 +
+
C++20 Graphics Engine
+
+
+ + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+
tz::wsi::impl::window_x11 Class Reference
+
+
+
+ + + + diff --git a/clone_8hpp_source.html b/clone_8hpp_source.html new file mode 100644 index 0000000000..776f2e496c --- /dev/null +++ b/clone_8hpp_source.html @@ -0,0 +1,138 @@ + + + + + + + +Topaz: src/tz/core/memory/clone.hpp Source File + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.1.0.1 +
+
C++20 Graphics Engine
+
+
+ + + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+
clone.hpp
+
+
+
1#ifndef TZ_MEMORY_CLONE_HPP
+
2#define TZ_MEMORY_CLONE_HPP
+
3#include <concepts>
+
4#include <memory>
+
5#include <type_traits>
+
6
+
7namespace tz
+
8{
+
9 template<typename T>
+
+ +
11 {
+
12 public:
+
13 [[nodiscard]] virtual std::unique_ptr<T> unique_clone() const = 0;
+
14 };
+
+
15
+
16 #define TZ_COPY_UNIQUE_CLONEABLE(I) virtual std::unique_ptr<I> unique_clone() const final \
+
17 { \
+
18 using T = std::decay_t<decltype(*this)>; \
+
19 static_assert(std::is_base_of_v<I, T>, "TZ_COPY_UNIQUE_CLONEABLE(I) must be invoked in a class field context such that the class T is a derived class of I."); \
+
20 return std::unique_ptr<I>{static_cast<I*>(std::make_unique<T>(*this).release())}; \
+
21 };
+
22
+
23}
+
24
+
25
+
26#endif // TZ_MEMORY_CLONE_HPP
+
Definition clone.hpp:11
+
+ + + + diff --git a/closed.png b/closed.png new file mode 100644 index 0000000000..98cc2c909d Binary files /dev/null and b/closed.png differ diff --git a/command_8hpp_source.html b/command_8hpp_source.html new file mode 100644 index 0000000000..28d8809aff --- /dev/null +++ b/command_8hpp_source.html @@ -0,0 +1,640 @@ + + + + + + + +Topaz: src/tz/gl/impl/vulkan/detail/command.hpp Source File + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.1.0.1 +
+
C++20 Graphics Engine
+
+
+ + + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+
command.hpp
+
+
+
1#ifndef TOPAZ_GL_IMPL_BACKEND_VK2_COMMAND_HPP
+
2#define TOPAZ_GL_IMPL_BACKEND_VK2_COMMAND_HPP
+
3#if TZ_VULKAN
+
4#include "tz/gl/impl/vulkan/detail/render_pass.hpp"
+
5#include "tz/gl/impl/vulkan/detail/hardware/queue.hpp"
+
6#include "tz/gl/impl/vulkan/detail/logical_device.hpp"
+
7#include "tz/gl/impl/vulkan/detail/framebuffer.hpp"
+
8#include "tz/gl/impl/vulkan/detail/graphics_pipeline.hpp"
+
9#include "tz/gl/impl/vulkan/detail/buffer.hpp"
+
10
+
11namespace tz::gl::vk2
+
12{
+
+ +
18 {
+
+
19 struct Dispatch
+
20 {
+
21 tz::vec3ui groups;
+
22 };
+
+
+
27 struct Draw
+
28 {
+
30 std::uint32_t vertex_count;
+
32 std::uint32_t instance_count = 1;
+
34 std::uint32_t first_vertex = 0;
+
36 std::uint32_t first_instance = 0;
+
37 };
+
+
38
+
+ +
44 {
+
45 std::uint32_t index_count;
+
46 std::uint32_t instance_count = 1;
+
47 std::uint32_t first_index = 0;
+
48 std::int32_t vertex_offset = 0;
+
49 std::uint32_t first_instance = 0;
+
50 };
+
+
51
+
+ +
57 {
+
58 const Buffer* draw_indirect_buffer;
+
59 std::uint32_t draw_count;
+
60 std::uint32_t stride;
+
61 VkDeviceSize offset = 0;
+
62 };
+
+
63
+
+ +
65 {
+
66 const Buffer* draw_indirect_buffer;
+
67 std::uint32_t max_draw_count;
+
68 std::uint32_t stride;
+
69 VkDeviceSize offset = sizeof(std::uint32_t);
+
70 };
+
+
71
+
+ +
77 {
+
78 const Buffer* draw_indirect_buffer;
+
79 std::uint32_t draw_count;
+
80 std::uint32_t stride;
+
81 VkDeviceSize offset = 0;
+
82 };
+
+
83
+
+ +
85 {
+
86 const Buffer* draw_indirect_buffer;
+
87 std::uint32_t max_draw_count;
+
88 std::uint32_t stride;
+
89 VkDeviceSize offset = sizeof(std::uint32_t);
+
90 };
+
+
91
+
+ +
97 {
+
98 const vk2::Buffer* index_buffer;
+
99 std::uint64_t buffer_offset = 0;
+
100 };
+
+
101
+
+ +
107 {
+ +
110 };
+
+
111
+ +
127
+
+ +
133 {
+ +
136 };
+
+
137
+ +
139
+ +
141
+
+ +
147 {
+ +
150 };
+
+
151
+
+ +
158 {
+
160 const Buffer* src;
+ +
164 std::size_t src_offset = 0;
+
166 std::size_t dst_offset = 0;
+
167 };
+
+
168
+
+ +
175 {
+
177 const Buffer* src;
+ +
181 ImageAspectFlags image_aspects;
+
182 };
+
+
183
+
+ +
190 {
+
192 const Image* src;
+ +
196 ImageAspectFlags image_aspects;
+
197 };
+
+
198
+
+ +
203 {
+ +
206 };
+
+
207
+
+ +
215 {
+ + +
220 std::optional<ImageLayout> old_layout = std::nullopt;
+
221
+
223 AccessFlagField source_access;
+
225 AccessFlagField destination_access;
+ + +
231 ImageAspectFlags image_aspects;
+
232
+ + +
237 };
+
+
238
+
+ +
240 {
+
241 tz::vec2ui offset;
+
242 tz::vec2ui extent;
+
243 };
+
+
244
+
+ +
246 {
+
247 std::string name;
+
248 tz::vec4 colour{0.0f, 0.0f, 0.0f, 0.0f};
+
249 };
+
+
250
+ +
252
+
254 using variant = std::variant<Dispatch, Draw, DrawIndexed, DrawIndirect, DrawIndirectCount, DrawIndexedIndirect, DrawIndexedIndirectCount, BindIndexBuffer, BindPipeline, BindDescriptorSets, BeginRenderPass, EndRenderPass, BeginDynamicRendering, EndDynamicRendering, BufferCopyBuffer, BufferCopyImage, ImageCopyImage, BindBuffer, TransitionImageLayout, SetScissorDynamic, DebugBeginLabel, DebugEndLabel>;
+
255 };
+
+
256
+
257 enum class CommandPoolFlag
+
258 {
+
259 Reusable = VK_COMMAND_POOL_CREATE_RESET_COMMAND_BUFFER_BIT
+
260 };
+
261 using CommandPoolFlags = tz::enum_field<CommandPoolFlag>;
+
+ +
267 {
+ +
271 CommandPoolFlags flags = {};
+
272 };
+
+
273
+
274 class CommandBuffer;
+
275
+
276
+
+ +
278 {
+
279 tz::vec4 clear_colour = {0.0f, 0.0f, 0.0f, 1.0f};
+
280 vk2::LoadOp colour_load = vk2::LoadOp::Clear;
+
281 vk2::StoreOp colour_store = vk2::StoreOp::Store;
+
282
+
283 vk2::LoadOp depth_load = vk2::LoadOp::Clear;
+
284 vk2::StoreOp depth_store = vk2::StoreOp::Store;
+
285 };
+
+
286
+
+ +
292 {
+
293 public:
+
+ +
299 {
+
300 public:
+
307 RenderPassRun(Framebuffer& framebuffer, CommandBufferRecording& recording, tz::vec4 clear_colour = {0.0f, 0.0f, 0.0f, 1.0f});
+
308 RenderPassRun(const RenderPassRun& copy) = delete;
+
309 RenderPassRun(RenderPassRun&& move) = delete;
+ +
311
+
312 RenderPassRun& operator=(const RenderPassRun& rhs) = delete;
+
313 RenderPassRun& operator=(RenderPassRun&& rhs) = delete;
+
314 private:
+
315 Framebuffer* framebuffer;
+
316 CommandBufferRecording* recording;
+
317 };
+
+
318
+
+ +
320 {
+
321 public:
+
322 DynamicRenderingRun(CommandBufferRecording& record, std::span<const vk2::ImageView> colour_attachments, const vk2::ImageView* depth_attachment, DynamicRenderingRunInfo rinfo = {});
+ +
324
+
325 DynamicRenderingRun& operator=(const DynamicRenderingRun& rhs) = delete;
+
326 DynamicRenderingRun& operator=(DynamicRenderingRun&& rhs) = delete;
+
327 private:
+
328 CommandBufferRecording* recording;
+
329 };
+
+
330
+
331 CommandBufferRecording(CommandBuffer& command_buffer);
+ + + +
335
+
336 CommandBufferRecording& operator=(const CommandBufferRecording& rhs) = delete;
+ +
338
+ +
348 void dispatch(VulkanCommand::Dispatch dispatch);
+
353 void draw(VulkanCommand::Draw draw);
+ + +
364 void draw_indirect_count(VulkanCommand::DrawIndirectCount draw);
+ +
370 void draw_indexed_indirect_count(VulkanCommand::DrawIndexedIndirectCount draw);
+
371 void bind_index_buffer(VulkanCommand::BindIndexBuffer bind);
+ + + + + +
397
+
398 void transition_image_layout(VulkanCommand::TransitionImageLayout command);
+
399
+
400 void set_scissor_dynamic(VulkanCommand::SetScissorDynamic command);
+
401
+
402 void debug_begin_label(VulkanCommand::DebugBeginLabel command);
+
403 void debug_end_label(VulkanCommand::DebugEndLabel command);
+
404
+
409 const CommandBuffer& get_command_buffer() const;
+
410
+
411 friend class RenderPassRun;
+
412 private:
+ +
414 void register_command(VulkanCommand::variant command);
+
415 ImageLayout get_layout_so_far(const Image& image) const;
+
416
+
417 CommandBuffer* command_buffer;
+
418 };
+
+
419
+
420 class CommandPool;
+
421
+
+ +
427 {
+
428 public:
+
429 friend class CommandPool;
+
433 const LogicalDevice& get_device() const;
+ +
443 bool is_recording() const;
+
447 bool has_ever_recorded() const;
+
452 std::size_t command_count() const;
+
453 std::span<const VulkanCommand::variant> get_recorded_commands() const;
+
454 void set_owner(const CommandPool& owner);
+
455
+
456 using NativeType = VkCommandBuffer;
+
457 NativeType native() const;
+
458
+
459 friend class CommandBufferRecording;
+
460 private:
+
461 void set_recording(bool recording);
+
462 void add_command(VulkanCommand::variant command);
+
463
+
464 CommandBuffer(const CommandPool& owner_pool, CommandBuffer::NativeType native);
+
465
+
466 VkCommandBuffer command_buffer;
+
467 const CommandPool* owner_pool;
+
468 bool recording;
+
469 bool ever_recorded;
+
470 std::vector<VulkanCommand::variant> recorded_commands;
+
471 };
+
+
472
+
+ +
478 {
+
479 public:
+
+ +
484 {
+
486 std::uint32_t buffer_count;
+
487 };
+
+
488
+
+ +
493 {
+
495 bool success() const;
+
496
+
+ +
499 {
+
500 AllocationSuccess,
+
501 FatalError
+
502 };
+
+
503
+ + +
508 };
+
+
509
+ +
511 CommandPool(const CommandPool& copy) = delete;
+
512 CommandPool(CommandPool&& move);
+
513 ~CommandPool();
+
514
+
515 CommandPool& operator=(const CommandPool& rhs) = delete;
+
516 CommandPool& operator=(CommandPool&& rhs);
+
517
+
518 const LogicalDevice& get_device() const;
+
519
+ +
525 void free_buffers(const AllocationResult& alloc_result);
+
526
+
527 using NativeType = VkCommandPool;
+
528 NativeType native() const;
+
529
+
530 static CommandPool null();
+
531 bool is_null() const;
+
532 private:
+
533 CommandPool();
+
534
+
535 VkCommandPool pool;
+
536 CommandPoolInfo info;
+
537 };
+
+
538
+
+ +
540 {
+
541 CommandBufferData() = default;
+ +
543 {
+
544 *this = std::move(move);
+
545 }
+
546 CommandBufferData& operator=(CommandBufferData&& rhs)
+
547 {
+
548 std::swap(this->pool, rhs.pool);
+
549 std::swap(this->data, rhs.data);
+
550 for(auto& buf : this->data.buffers)
+
551 {
+
552 buf.set_owner(this->pool);
+
553 }
+
554 for(auto& buf : rhs.data.buffers)
+
555 {
+
556 buf.set_owner(rhs.pool);
+
557 }
+
558 return *this;
+
559 }
+
560 vk2::CommandPool pool = vk2::CommandPool::null();
+ +
562 };
+
+
563}
+
564
+
565#endif // TZ_VULKAN
+
566#endif // TOPAZ_GL_IMPL_BACKEND_VK2_COMMAND_HPP
+
Custom list, feature subset of std::vector.
Definition basic_list.hpp:21
+
Container for enum values, useful for vintage bitfield types.
Definition enum_field.hpp:16
+
Represents a linear array of data which can be used for various purposes.
Definition buffer.hpp:56
+
Represents storage for vulkan commands, such as draw calls, binds, transfers etc.....
Definition command.hpp:427
+
const LogicalDevice & get_device() const
CommandBuffers are allocated from a CommandPool.
Definition command.cpp:522
+
std::size_t command_count() const
Retrieve the number of commands recorded into the buffer.
Definition command.cpp:544
+
bool is_recording() const
Query as to whether this CommandBuffer is currently recording.
Definition command.cpp:534
+
CommandBufferRecording record()
Begin recording the CommandBuffer.
Definition command.cpp:527
+
bool has_ever_recorded() const
Query as to whether this CommandBuffer is either recording, or ever has been recorded in the past,...
Definition command.cpp:539
+ +
Represents the full duration of an invocation of a RenderPass during a CommandBufferRecording.
Definition command.hpp:299
+
Represents the full duration of the recording process of an existing CommandBuffer.
Definition command.hpp:292
+
void buffer_copy_image(VulkanCommand::BufferCopyImage command)
Copy data from one Buffer to an Image.
Definition command.cpp:284
+
void image_copy_image(VulkanCommand::ImageCopyImage command)
Copy data from one Image to another.
Definition command.cpp:314
+
void dispatch(VulkanCommand::Dispatch dispatch)
Dispatch some compute work.
Definition command.cpp:210
+
void draw_indirect(VulkanCommand::DrawIndirect draw)
Perform some indirect, non-indexed draws.
Definition command.cpp:228
+
void buffer_copy_buffer(VulkanCommand::BufferCopyBuffer command)
Copy data from one Buffer to another.
Definition command.cpp:267
+
const CommandBuffer & get_command_buffer() const
Retrieve the CommandBuffer that is currently being recorded.
Definition command.cpp:460
+
void draw_indexed_indirect(VulkanCommand::DrawIndexedIndirect draw)
Perform some indirect, indexed draws.
Definition command.cpp:240
+
void bind_pipeline(VulkanCommand::BindPipeline command)
Bind an existing GraphicsPipeline to some context.
Definition command.cpp:202
+
void bind_buffer(VulkanCommand::BindBuffer command)
Bind a Buffer.
Definition command.cpp:350
+
void bind_descriptor_sets(VulkanCommand::BindDescriptorSets command)
Bind a list of DescriptorSet.
Definition command.cpp:258
+
void draw(VulkanCommand::Draw draw)
Perform a non-instanced draw.
Definition command.cpp:216
+
void draw_indexed(VulkanCommand::DrawIndexed draw)
Perform an indexed draw.
Definition command.cpp:222
+
Represents storage for CommandBuffers.
Definition command.hpp:478
+
AllocationResult allocate_buffers(const Allocation &alloc)
Allocate some CommandBuffers.
Definition command.cpp:647
+
Represents a render target for a RenderPass.
Definition framebuffer.hpp:32
+
Represents an Image owned by the Vulkan API.
Definition image.hpp:155
+
Definition image_view.hpp:18
+
Logical interface to an existing PhysicalDevice.
Definition logical_device.hpp:95
+
Definition graphics_pipeline.hpp:125
+
Represents an interface between shader stages and shader resources in terms of the layout of a group ...
Definition pipeline_layout.hpp:25
+
Represents a single hardware Queue.
Definition queue.hpp:70
+
vector< unsigned int, 3 > vec3ui
A vector of three unsigned ints.
Definition vector.hpp:246
+
vector< float, 4 > vec4
A vector of four floats.
Definition vector.hpp:219
+
vector< unsigned int, 2 > vec2ui
A vector of two unsigned ints.
Definition vector.hpp:244
+
PipelineContext
Specifies which pipeline type a RenderPass subpass is expected to bind to.
Definition render_pass.hpp:40
+
LoadOp
Represents how some resource is loaded.
Definition render_pass.hpp:14
+
StoreOp
Represents how some resource is stored.
Definition render_pass.hpp:28
+
PipelineStage
Specifies a certain stage (point of execution) during the invocation of a graphics pipeline.
Definition queue.hpp:21
+
ImageLayout
Images are always in a layout.
Definition image.hpp:20
+
Definition command.hpp:540
+
Specifies information about an allocation of a CommandBuffer or many.
Definition command.hpp:484
+
std::uint32_t buffer_count
number of CommandBuffers to create.
Definition command.hpp:486
+
Contains information about the result of a pool allocation.
Definition command.hpp:493
+
AllocationResultType type
Result description for this specific allocation.
Definition command.hpp:507
+
tz::basic_list< CommandBuffer > buffers
List of newly-allocated buffers.
Definition command.hpp:505
+
bool success() const
Query as to whether the allocation was successful or not.
Definition command.cpp:584
+
AllocationResultType
Describes how well an allocation went.
Definition command.hpp:499
+
Specifies creation flags for a CommandPool.
Definition command.hpp:267
+
CommandPoolFlags flags
Specifies extra flags which affect the created command pool.
Definition command.hpp:271
+
const hardware::Queue * queue
Specifies which hardware queue is expected to act as the executor for the CommandPool's buffers.
Definition command.hpp:269
+
Definition command.hpp:278
+ +
Record a beginning of some RenderPass.
Definition command.hpp:133
+
Framebuffer * framebuffer
Framebuffer containing the RenderPass.
Definition command.hpp:135
+
Bind a vertex or index Buffer.
Definition command.hpp:203
+
const Buffer * buffer
Buffer to bind, usage must contain one of BufferUsage::VertexBuffer or BufferUsage::index_buffer.
Definition command.hpp:205
+
Record a bind of one of more DescriptorSet See CommandBufferRecording::bind_descriptor_sets for usage...
Definition command.hpp:117
+
std::uint32_t first_set_id
The operation causes the sets [first_set_id, first_set_id + descriptor_sets.length() + 1] to refer to...
Definition command.hpp:125
+
PipelineContext context
Pipeline bind point.
Definition command.hpp:121
+
const PipelineLayout * pipeline_layout
PipelineLayout representing the list of layouts matching each provided set.
Definition command.hpp:119
+
const tz::basic_list< const DescriptorSet * > descriptor_sets
List of DescriptorSet to bind.
Definition command.hpp:123
+
Bind an index buffer.
Definition command.hpp:97
+
Record a bind of a GraphicsPipeline.
Definition command.hpp:107
+
const Pipeline * pipeline
Pipeline to be bound. Must not be null.
Definition command.hpp:109
+
Record a copy from one Buffer to another.
Definition command.hpp:158
+
std::size_t src_offset
Offset, in bytes, from the beginning of the source buffer to copy from.
Definition command.hpp:164
+
std::size_t dst_offset
Offset, in bytes, from the beginning of the destination buffer to copy to.
Definition command.hpp:166
+
const Buffer * src
Buffer to copy data from. Must not be null.
Definition command.hpp:160
+
Buffer * dst
Buffer to copy to. Must not be null.
Definition command.hpp:162
+
Record a copy from one Buffer to an Image.
Definition command.hpp:175
+
ImageAspectFlags image_aspects
Aspect of image in this context.
Definition command.hpp:181
+
const Buffer * src
Buffer to copy data from. Must not be null.
Definition command.hpp:177
+
Image * dst
Buffer to copy to. Must not be null.
Definition command.hpp:179
+ + +
Definition command.hpp:20
+
Record a non-indexed draw.
Definition command.hpp:28
+
std::uint32_t first_instance
Instance ID of the first instance to draw (Default 0).
Definition command.hpp:36
+
std::uint32_t instance_count
number of instances to draw (Default 1).
Definition command.hpp:32
+
std::uint32_t first_vertex
Index of the first vertex to draw (Default 0).
Definition command.hpp:34
+
std::uint32_t vertex_count
number of vertices to draw.
Definition command.hpp:30
+
Record an indexed draw.
Definition command.hpp:44
+ +
Record an indexed indirect draw.
Definition command.hpp:77
+ +
Record an unindexed indirect draw.
Definition command.hpp:57
+ +
Record the ending of some RenderPass.
Definition command.hpp:147
+
Framebuffer * framebuffer
Framebuffer containing the RenderPass.
Definition command.hpp:149
+
Copy data from one image to another.
Definition command.hpp:190
+
ImageAspectFlags image_aspects
Aspect of both images.
Definition command.hpp:196
+
const Image * src
Image to copy from.
Definition command.hpp:192
+
Image * dst
Image to copy to.
Definition command.hpp:194
+ +
Transition an image layout via recording a pipeline barrier into the CommandBuffer.
Definition command.hpp:215
+
AccessFlagField source_access
All preceeding operations within the recorded CommandBuffer that satisfy an access method specified h...
Definition command.hpp:223
+
Image * image
Image to transition.
Definition command.hpp:217
+
ImageAspectFlags image_aspects
Aspect of image in this context.
Definition command.hpp:231
+
PipelineStage source_stage
Stage that the barrier blocks after.
Definition command.hpp:227
+
AccessFlagField destination_access
All succeding operations within the recorded CommandBuffer that satisfy an access method specified he...
Definition command.hpp:225
+
ImageLayout target_layout
Desired ImageLayout of image after the command has finished execution.
Definition command.hpp:219
+
tz::basic_list< std::uint32_t > affected_mip_levels
List of affected mip levels. Must be in ascending-order and with no gaps. E.g {0, 1,...
Definition command.hpp:234
+
PipelineStage destination_stage
Stage that the barrier blocks before.
Definition command.hpp:229
+
tz::basic_list< std::uint32_t > affected_layers
List of affected array layers. Must be in ascending-order and with no gaps. E.g {0,...
Definition command.hpp:236
+
Contains all the possible commands which can be recorded within a CommandBuffer.
Definition command.hpp:18
+
std::variant< Dispatch, Draw, DrawIndexed, DrawIndirect, DrawIndirectCount, DrawIndexedIndirect, DrawIndexedIndirectCount, BindIndexBuffer, BindPipeline, BindDescriptorSets, BeginRenderPass, EndRenderPass, BeginDynamicRendering, EndDynamicRendering, BufferCopyBuffer, BufferCopyImage, ImageCopyImage, BindBuffer, TransitionImageLayout, SetScissorDynamic, DebugBeginLabel, DebugEndLabel > variant
variant type which has alternatives for every single possible recordable command type.
Definition command.hpp:254
+
+ + + + diff --git a/component_8hpp_source.html b/component_8hpp_source.html new file mode 100644 index 0000000000..06affa19e1 --- /dev/null +++ b/component_8hpp_source.html @@ -0,0 +1,131 @@ + + + + + + + +Topaz: src/tz/gl/component.hpp Source File + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.1.0.1 +
+
C++20 Graphics Engine
+
+
+ + + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+
component.hpp
+
+
+
1#ifndef TOPAZ_GL2_COMPONENT_HPP
+
2#define TOPAZ_GL2_COMPONENT_HPP
+
3
+
4#if TZ_VULKAN
+
5#include "tz/gl/impl/vulkan/component.hpp"
+
6#elif TZ_OGL
+
7#include "tz/gl/impl/opengl/component.hpp"
+
8#endif
+
9
+
10namespace tz::gl
+
11{
+
12 #if TZ_VULKAN
+
13 using buffer_component = buffer_component_vulkan;
+
14 using image_component = image_component_vulkan;
+
15 #elif TZ_OGL
+
16 using buffer_component = buffer_component_ogl;
+
17 using image_component = image_component_ogl;
+
18 #endif
+
19}
+
20
+
21#endif // TOPAZ_GL2_COMPONENT_HPP
+
22
+
+ + + + diff --git a/concepttz_1_1action.html b/concepttz_1_1action.html new file mode 100644 index 0000000000..e95953ac64 --- /dev/null +++ b/concepttz_1_1action.html @@ -0,0 +1,117 @@ + + + + + + + +Topaz: tz::action Concept Reference + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.1.0.1 +
+
C++20 Graphics Engine
+
+
+ + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+
tz::action Concept Reference
+
+
+ +

Just like a tz::function, except will never return anything. +More...

+ +

#include <types.hpp>

+

Concept definition

+
template<typename F, typename... Args>
+
concept tz::action = function<F, void, Args...>
+
Just like a tz::function, except will never return anything.
Definition types.hpp:47
+
function concept which constrains F to any type that can be called with Args... to produce a Result.
Definition types.hpp:38
+

Detailed Description

+

Just like a tz::function, except will never return anything.

+

This makes for cleaner syntax.

+
+ + + + diff --git a/concepttz_1_1allocator.html b/concepttz_1_1allocator.html new file mode 100644 index 0000000000..08ab32e83d --- /dev/null +++ b/concepttz_1_1allocator.html @@ -0,0 +1,114 @@ + + + + + + + +Topaz: tz::allocator Concept Reference + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.1.0.1 +
+
C++20 Graphics Engine
+
+
+ + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+
tz::allocator Concept Reference
+
+
+

Concept definition

+
template<typename T>
+
concept tz::allocator = requires(T t, tz::memblk blk, std::size_t sz)
+
{
+
{t.allocate(sz)} -> std::same_as<tz::memblk>;
+
{t.deallocate(blk)} -> std::same_as<void>;
+
{t.owns(blk)} -> std::same_as<bool>;
+
}
+
Definition types.hpp:73
+
A non-owning, contiguous block of memory.
Definition memblk.hpp:12
+
+ + + + diff --git a/concepttz_1_1arithmetic.html b/concepttz_1_1arithmetic.html new file mode 100644 index 0000000000..335d410cd5 --- /dev/null +++ b/concepttz_1_1arithmetic.html @@ -0,0 +1,115 @@ + + + + + + + +Topaz: tz::arithmetic Concept Reference + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.1.0.1 +
+
C++20 Graphics Engine
+
+
+ + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+
tz::arithmetic Concept Reference
+
+
+ +

An integral type or a floating-point type (including char and bool). +More...

+ +

#include <types.hpp>

+

Concept definition

+
template<typename T>
+
concept tz::arithmetic = std::is_arithmetic_v<std::decay_t<T>>
+
An integral type or a floating-point type (including char and bool).
Definition types.hpp:13
+

Detailed Description

+

An integral type or a floating-point type (including char and bool).

+
+ + + + diff --git a/concepttz_1_1const__type.html b/concepttz_1_1const__type.html new file mode 100644 index 0000000000..f5b815541a --- /dev/null +++ b/concepttz_1_1const__type.html @@ -0,0 +1,108 @@ + + + + + + + +Topaz: tz::const_type Concept Reference + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.1.0.1 +
+
C++20 Graphics Engine
+
+
+ + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+
tz::const_type Concept Reference
+
+
+

Concept definition

+
template<typename T>
+
concept tz::const_type = std::is_const_v<T>
+
Definition types.hpp:16
+
+ + + + diff --git a/concepttz_1_1enum__class.html b/concepttz_1_1enum__class.html new file mode 100644 index 0000000000..a3b52889d3 --- /dev/null +++ b/concepttz_1_1enum__class.html @@ -0,0 +1,108 @@ + + + + + + + +Topaz: tz::enum_class Concept Reference + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.1.0.1 +
+
C++20 Graphics Engine
+
+
+ + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+
tz::enum_class Concept Reference
+
+
+

Concept definition

+
template<typename T>
+
concept tz::enum_class = std::is_enum_v<T> && !std::is_convertible_v<T, int>
+
Definition types.hpp:19
+
+ + + + diff --git a/concepttz_1_1function.html b/concepttz_1_1function.html new file mode 100644 index 0000000000..7e64bc1caf --- /dev/null +++ b/concepttz_1_1function.html @@ -0,0 +1,119 @@ + + + + + + + +Topaz: tz::function Concept Reference + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.1.0.1 +
+
C++20 Graphics Engine
+
+
+ + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+
tz::function Concept Reference
+
+
+ +

function concept which constrains F to any type that can be called with Args... to produce a Result. +More...

+ +

#include <types.hpp>

+

Concept definition

+
template<typename F, typename Result, typename... Args>
+
concept tz::function = requires(F f, Args... args)
+
{
+
{f(args...)} -> std::convertible_to<Result>;
+
}
+
function concept which constrains F to any type that can be called with Args... to produce a Result.
Definition types.hpp:38
+

Detailed Description

+

function concept which constrains F to any type that can be called with Args... to produce a Result.

+

This is backend-agnostic, meaning that any invocable backend (func ptr, lambda, functor, you name it...) can be used so long as it matches the signature Result(Args...).

+
+ + + + diff --git a/concepttz_1_1gl_1_1buffer__component__type.html b/concepttz_1_1gl_1_1buffer__component__type.html new file mode 100644 index 0000000000..a77de57853 --- /dev/null +++ b/concepttz_1_1gl_1_1buffer__component__type.html @@ -0,0 +1,113 @@ + + + + + + + +Topaz: tz::gl::buffer_component_type Concept Reference + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.1.0.1 +
+
C++20 Graphics Engine
+
+
+ + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+
tz::gl::buffer_component_type Concept Reference
+
+
+

Concept definition

+
template<typename T>
+
concept tz::gl::buffer_component_type = requires(T t, std::size_t sz)
+
{
+
requires std::derived_from<T, icomponent>;
+
{t.size()} -> std::convertible_to<std::size_t>;
+
{t.resize(sz)} -> std::same_as<void>;
+
}
+
Definition component.hpp:19
+
+ + + + diff --git a/concepttz_1_1gl_1_1device__type.html b/concepttz_1_1gl_1_1device__type.html new file mode 100644 index 0000000000..3bd6953525 --- /dev/null +++ b/concepttz_1_1gl_1_1device__type.html @@ -0,0 +1,133 @@ + + + + + + + +Topaz: tz::gl::device_type Concept Reference + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.1.0.1 +
+
C++20 Graphics Engine
+
+
+ + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+
tz::gl::device_type Concept Reference
+
+
+ +

Named Requirement: device Implemented by tz_gl2_device. +More...

+ +

#include <device.hpp>

+

Concept definition

+
template<typename T, typename R>
+
concept tz::gl::device_type = requires(T t, R& rinfo, renderer_handle h)
+
{
+
requires std::is_default_constructible_v<std::decay_t<T>>;
+
{t.create_renderer(rinfo)} -> std::same_as<renderer_handle>;
+
{t.destroy_renderer(h)} -> std::same_as<void>;
+
{t.renderer_count()} -> std::convertible_to<std::size_t>;
+
{t.get_renderer(h)} -> renderer_type;
+
{t.get_window_format()} -> std::same_as<image_format>;
+
{t.dbgui()} -> std::same_as<void>;
+
{t.begin_frame()} -> std::same_as<void>;
+
{t.end_frame()} -> std::same_as<void>;
+
{t.full_wait()} -> std::same_as<void>;
+
{t.frame_wait()} -> std::same_as<void>;
+
}
+
Named Requirement: device Implemented by tz_gl2_device.
Definition device.hpp:21
+
tz::handle< detail::renderer_tag > renderer_handle
Represents a handle for a renderer owned by an existing device.
Definition renderer.hpp:27
+

Detailed Description

+

Named Requirement: device Implemented by tz_gl2_device.

+

device types are types which:

+
+ + + + diff --git a/concepttz_1_1gl_1_1image__component__type.html b/concepttz_1_1gl_1_1image__component__type.html new file mode 100644 index 0000000000..679da8003d --- /dev/null +++ b/concepttz_1_1gl_1_1image__component__type.html @@ -0,0 +1,116 @@ + + + + + + + +Topaz: tz::gl::image_component_type Concept Reference + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.1.0.1 +
+
C++20 Graphics Engine
+
+
+ + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+
tz::gl::image_component_type Concept Reference
+
+
+

Concept definition

+
template<typename T>
+
concept tz::gl::image_component_type = requires(T t, tz::vec2ui dims)
+
{
+
requires std::derived_from<T, icomponent>;
+
{t.get_dimensions()[0]} -> std::convertible_to<unsigned int>;
+
{t.get_dimensions()[1]} -> std::convertible_to<unsigned int>;
+
{t.get_format()} -> std::convertible_to<image_format>;
+
{t.resize(dims)} -> std::same_as<void>;
+
}
+
Definition component.hpp:27
+
vector< unsigned int, 2 > vec2ui
A vector of two unsigned ints.
Definition vector.hpp:244
+
+ + + + diff --git a/concepttz_1_1gl_1_1renderer__type.html b/concepttz_1_1gl_1_1renderer__type.html new file mode 100644 index 0000000000..c250a87400 --- /dev/null +++ b/concepttz_1_1gl_1_1renderer__type.html @@ -0,0 +1,139 @@ + + + + + + + +Topaz: tz::gl::renderer_type Concept Reference + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.1.0.1 +
+
C++20 Graphics Engine
+
+
+ + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+
tz::gl::renderer_type Concept Reference
+
+
+ +

Named requirement for a renderer. +More...

+ +

#include <renderer.hpp>

+

Concept definition

+
template<typename T>
+
concept tz::gl::renderer_type = requires(T t, resource_handle r, std::size_t tri_count, const renderer_edit_request& edit_request, const tz::gl::renderer_info& rinfo)
+
{
+
requires tz::nullable<T>;
+
+
{t.resource_count()} -> std::convertible_to<unsigned int>;
+
+
{t.get_resource(r)} -> std::convertible_to<const iresource*>;
+
+
{t.get_component(r)} -> std::convertible_to<const icomponent*>;
+
+
{t.get_output()} -> std::convertible_to<const ioutput*>;
+
+
{t.get_options()} -> std::convertible_to<renderer_options>;
+
{t.get_state()} -> std::convertible_to<render_state>;
+
+
{t.render()} -> std::same_as<void>;
+
+
{t.edit(edit_request)} -> std::same_as<void>;
+
+
{t.dbgui()} -> std::same_as<void>;
+
{t.debug_get_name()} -> std::convertible_to<std::string_view>;
+
}
+
Helper struct which the user can use to specify which inputs, resources they want and where they want...
Definition renderer.hpp:112
+
Named requirement for a renderer.
Definition renderer.hpp:341
+
Definition types.hpp:59
+
std::vector< renderer_edit::variant > renderer_edit_request
Represents an edit to an existing renderer.
Definition renderer.hpp:298
+

Detailed Description

+

Named requirement for a renderer.

+
+ + + + diff --git a/concepttz_1_1has__dbgui__method.html b/concepttz_1_1has__dbgui__method.html new file mode 100644 index 0000000000..999e0fce76 --- /dev/null +++ b/concepttz_1_1has__dbgui__method.html @@ -0,0 +1,111 @@ + + + + + + + +Topaz: tz::has_dbgui_method Concept Reference + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.1.0.1 +
+
C++20 Graphics Engine
+
+
+ + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+
tz::has_dbgui_method Concept Reference
+
+
+

Concept definition

+
template<typename T>
+
concept tz::has_dbgui_method = requires(T t)
+
{
+
{t.dbgui()} -> std::same_as<void>;
+
}
+
Definition transform_hierarchy.inl:10
+
+ + + + diff --git a/concepttz_1_1is__printable.html b/concepttz_1_1is__printable.html new file mode 100644 index 0000000000..4d94b79321 --- /dev/null +++ b/concepttz_1_1is__printable.html @@ -0,0 +1,111 @@ + + + + + + + +Topaz: tz::is_printable Concept Reference + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.1.0.1 +
+
C++20 Graphics Engine
+
+
+ + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+
tz::is_printable Concept Reference
+
+
+

Concept definition

+
template<typename T>
+
concept tz::is_printable = requires(T t)
+
{
+
{std::ostringstream{} << t};
+
}
+
Definition transform_hierarchy.inl:16
+
+ + + + diff --git a/concepttz_1_1native__available.html b/concepttz_1_1native__available.html new file mode 100644 index 0000000000..08f34a8256 --- /dev/null +++ b/concepttz_1_1native__available.html @@ -0,0 +1,112 @@ + + + + + + + +Topaz: tz::native_available Concept Reference + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.1.0.1 +
+
C++20 Graphics Engine
+
+
+ + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+
tz::native_available Concept Reference
+
+
+

Concept definition

+
template<typename T>
+
concept tz::native_available = requires(T t)
+
{
+
T::NativeType;
+
{t.native()} -> std::same_as<typename T::NativeType>;
+
}
+
Definition types.hpp:66
+
+ + + + diff --git a/concepttz_1_1nullable.html b/concepttz_1_1nullable.html new file mode 100644 index 0000000000..c84f7f9ea8 --- /dev/null +++ b/concepttz_1_1nullable.html @@ -0,0 +1,112 @@ + + + + + + + +Topaz: tz::nullable Concept Reference + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.1.0.1 +
+
C++20 Graphics Engine
+
+
+ + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+
tz::nullable Concept Reference
+
+
+

Concept definition

+
template<typename T>
+
concept tz::nullable = requires(const T t)
+
{
+
+
{t.is_null()} -> std::same_as<bool>;
+
}
+
Definition types.hpp:59
+
+ + + + diff --git a/concepttz_1_1number.html b/concepttz_1_1number.html new file mode 100644 index 0000000000..a033ba9eed --- /dev/null +++ b/concepttz_1_1number.html @@ -0,0 +1,121 @@ + + + + + + + +Topaz: tz::number Concept Reference + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.1.0.1 +
+
C++20 Graphics Engine
+
+
+ + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+
tz::number Concept Reference
+
+
+ +

A number is any arithmetic type excluding char and bool. +More...

+ +

#include <types.hpp>

+

Concept definition

+
template<typename T>
+
concept tz::number = requires
+
{
+
requires arithmetic<T>;
+
requires !std::is_same_v<std::remove_cvref_t<T>, bool>;
+
requires !std::is_same_v<std::remove_cvref_t<T>, char>;
+
}
+
An integral type or a floating-point type (including char and bool).
Definition types.hpp:13
+
A number is any arithmetic type excluding char and bool.
Definition types.hpp:25
+

Detailed Description

+

A number is any arithmetic type excluding char and bool.

+
+ + + + diff --git a/concepttz_1_1trivially__copyable.html b/concepttz_1_1trivially__copyable.html new file mode 100644 index 0000000000..76aebc412d --- /dev/null +++ b/concepttz_1_1trivially__copyable.html @@ -0,0 +1,108 @@ + + + + + + + +Topaz: tz::trivially_copyable Concept Reference + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.1.0.1 +
+
C++20 Graphics Engine
+
+
+ + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+
tz::trivially_copyable Concept Reference
+
+
+

Concept definition

+
template<typename T>
+
concept tz::trivially_copyable = std::is_trivially_copyable_v<T>
+
Definition types.hpp:56
+
+ + + + diff --git a/concepttz_1_1wsi_1_1window__api.html b/concepttz_1_1wsi_1_1window__api.html new file mode 100644 index 0000000000..4c8b93085a --- /dev/null +++ b/concepttz_1_1wsi_1_1window__api.html @@ -0,0 +1,141 @@ + + + + + + + +Topaz: tz::wsi::window_api Concept Reference + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.1.0.1 +
+
C++20 Graphics Engine
+
+
+ + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+
tz::wsi::window_api Concept Reference
+
+
+ +

Represents an API for a window. +More...

+ +

#include <window.hpp>

+

Concept definition

+
template<typename T>
+
concept tz::wsi::window_api = requires(T t, tz::vec2ui dims, void* addr, std::string str
+
+
, VkInstance vkinst
+
+
)
+
{
+
typename T::native;
+
{t.get_native()} -> std::convertible_to<typename T::native>;
+
{t.request_close()} -> std::same_as<void>;
+
{t.is_close_requested()} -> std::same_as<bool>;
+
{t.get_dimensions()} -> std::same_as<tz::vec2ui>;
+
{t.set_dimensions(dims)} -> std::same_as<void>;
+
{t.get_title()} -> std::convertible_to<std::string>;
+
{t.set_title(str)} -> std::same_as<void>;
+
{t.get_flags()} -> std::convertible_to<window_flag::flag_bit>;
+
{t.update()} -> std::same_as<void>;
+
{t.make_opengl_context_current()} -> std::same_as<bool>;
+
+
{t.make_vulkan_surface(vkinst)} -> std::convertible_to<VkSurfaceKHR>;
+
+
{t.get_keyboard_state()} -> std::convertible_to<keyboard_state>;
+
{t.get_mouse_state()} -> std::convertible_to<mouse_state>;
+
{t.get_user_data()} -> std::convertible_to<void*>;
+
{t.set_user_data(addr)} -> std::same_as<void>;
+
}
+
Represents an API for a window.
Definition window.hpp:66
+
vector< unsigned int, 2 > vec2ui
A vector of two unsigned ints.
Definition vector.hpp:244
+

Detailed Description

+

Represents an API for a window.

+

wsi::window is implemented separately per platform, but all implementations are guaranteed to satisfy this api.

+
+ + + + diff --git a/dbgui_8hpp_source.html b/dbgui_8hpp_source.html new file mode 100644 index 0000000000..dabdadb628 --- /dev/null +++ b/dbgui_8hpp_source.html @@ -0,0 +1,167 @@ + + + + + + + +Topaz: src/tz/dbgui/dbgui.hpp Source File + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.1.0.1 +
+
C++20 Graphics Engine
+
+
+ + + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+
dbgui.hpp
+
+
+
1#ifndef TOPAZ_DBGUI_DBGUI_HPP
+
2#define TOPAZ_DBGUI_DBGUI_HPP
+
3#include "tz/core/game_info.hpp"
+
4#include "tz/core/types.hpp"
+
5#include "tz/core/callback.hpp"
+
6#include "tz/gl/device.hpp"
+
7#include "tz/core/debug.hpp"
+
8#include "imgui.h"
+
9#include "imgui_memory_editor.h"
+
10#include "misc/cpp/imgui_stdlib.h"
+
11
+
12namespace tz::dbgui
+
13{
+
+
24 struct init_info
+
25 {
+ +
28 bool graphics_enabled;
+
29 bool dbgui_enabled;
+
30 };
+
+
31
+
39 void initialise(init_info info);
+
47 void terminate();
+
48
+
52 void begin_frame();
+
56 void end_frame();
+
57
+
+
70 inline void run([[maybe_unused]] tz::action auto action)
+
71 {
+
72 #if TZ_DEBUG
+
73 action();
+
74 #endif
+
75 }
+
+
76
+
77 void text_memory(unsigned int bytes);
+
78
+
79 void add_to_lua_log(std::string msg);
+
80
+
82 using game_menu_callback_type = tz::callback<>;
+
83 using game_bar_callback_type = game_menu_callback_type;
+
100 game_menu_callback_type& game_menu();
+
101 game_bar_callback_type& game_bar();
+
102
+
109 bool claims_keyboard();
+
110
+
117 bool claims_mouse();
+
118}
+
119
+
120#endif // TOPAZ_DBGUI_DBGUI_HPP
+
Represents a centralised storage/management of callback functions of a common signature void(Args....
Definition callback.hpp:31
+
Just like a tz::function, except will never return anything.
Definition types.hpp:47
+
void run(tz::action auto action)
As dbgui is only available on TZ_DEBUG, calling ImGui functions directly in game-code will yield runt...
Definition dbgui.hpp:70
+
Definition dbgui.hpp:25
+
tz::game_info game_info
Information about the running application.
Definition dbgui.hpp:27
+
Contains basic information about the target game/application.
Definition game_info.hpp:18
+
+ + + + diff --git a/dbgui__imgui__config_8hpp_source.html b/dbgui__imgui__config_8hpp_source.html new file mode 100644 index 0000000000..126a2b53be --- /dev/null +++ b/dbgui__imgui__config_8hpp_source.html @@ -0,0 +1,110 @@ + + + + + + + +Topaz: src/tz/dbgui/dbgui_imgui_config.hpp Source File + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.1.0.1 +
+
C++20 Graphics Engine
+
+
+ + + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+
dbgui_imgui_config.hpp
+
+
+
1#define IM_ASSERT(_EXPR) tz_legacy_assert(_EXPR)
+
+ + + + diff --git a/debug_8hpp_source.html b/debug_8hpp_source.html new file mode 100644 index 0000000000..5e3df4ae4d --- /dev/null +++ b/debug_8hpp_source.html @@ -0,0 +1,180 @@ + + + + + + + +Topaz: src/tz/core/debug.hpp Source File + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.1.0.1 +
+
C++20 Graphics Engine
+
+
+ + + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+
debug.hpp
+
+
+
1#ifndef TZ_DEBUG_HPP
+
2#define TZ_DEBUG_HPP
+
3#include "debugbreak.h"
+
4#include <concepts>
+
5#include <string>
+
6#include <functional>
+
7
+
8#include <version>
+
9#ifdef __cpp_lib_source_location
+
10#include <source_location>
+
11namespace tz::detail
+
12{
+
13 using source_loc = std::source_location;
+
14}
+
15#else
+
16//#pragma message("std::source_location support not detected, using a stub instead. Source information in report/assert/error will be wrong.")
+
17#include <cstdint>
+
18namespace tz::detail
+
19{
+
+ +
21 {
+
22 static source_loc current(){return {};}
+
23 constexpr std::uint_least32_t line() const{return 0;}
+
24 constexpr std::uint_least32_t column() const{return 0;}
+
25 constexpr const char* file_name() const{return "<Unknown>";}
+
26 constexpr const char* function_name() const{return "<Unknown>";}
+
27 };
+
+
28}
+
29#endif
+
30
+
31#undef assert
+
32
+
33namespace tz
+
34{
+
35 namespace detail
+
36 {
+
+ +
39 {
+
40 const char* str;
+
41 source_loc loc;
+
42
+
43 constexpr format_string(const char* str, source_loc loc = source_loc::current()):
+
44 str(str), loc(loc){}
+
45 };
+
+
46 }
+
47
+
52 template<typename... Args>
+
53 void assert(bool condition, detail::format_string fmt = "<No message>", Args&&... args);
+
54
+
59 template<typename... Args>
+
60 void error(detail::format_string fmt = "<No message>", Args&&... args);
+
61
+
66 template<typename... Args>
+
67 void report(detail::format_string fmt, Args&&... args);
+
68
+
69 inline void debug_break(){::debug_break();}
+
70}
+
71
+
77#define tz_legacy_assert(cond) tz::assert(cond, "Legacy Assert Detected")
+
78
+
79#include "tz/core/debug.inl"
+
80#endif // TZ_DEBUG_HPP
+
void assert(bool condition, detail::format_string fmt="<No message>", Args &&... args)
Assert on a condition.
Definition debug.inl:33
+
void error(detail::format_string fmt="<No message>", Args &&... args)
Breakpoint if a debugger is present.
Definition debug.inl:45
+
void report(detail::format_string fmt, Args &&... args)
Print out the formatted message to standard output, including source location information.
Definition debug.inl:53
+
C-String wrapper with source-location information secretly present. From a user perspective,...
Definition debug.hpp:39
+
Definition debug.hpp:21
+
+ + + + diff --git a/debug_8inl_source.html b/debug_8inl_source.html new file mode 100644 index 0000000000..72812a7e17 --- /dev/null +++ b/debug_8inl_source.html @@ -0,0 +1,179 @@ + + + + + + + +Topaz: src/tz/core/debug.inl Source File + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.1.0.1 +
+
C++20 Graphics Engine
+
+
+ + + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+
debug.inl
+
+
+
1#include <utility>
+
2#include <cstdio>
+
3#include <cstdlib>
+
4#include <string>
+
5
+
6namespace tz
+
7{
+
8 template<typename... Args>
+
9 void error_internal(const char* preamble, const char* fmt, const detail::source_loc& loc, Args&&... args)
+
10 {
+
11 std::fprintf(stderr, "%s", preamble);
+
12 std::fprintf(stderr, fmt, std::forward<Args>(args)...);
+
13
+
14
+
15 std::string diag_info = "\n\tIn file ";
+
16 diag_info += std::string{loc.file_name()} + ":" + std::to_string(loc.line()) + ":" + std::to_string(loc.column()) + std::string{"\n\t>\t"} + loc.function_name();
+
17
+
18 std::fprintf(stderr, "%s", diag_info.c_str());
+
19 debug_break();
+
20 }
+
21
+
22 template<typename... Args>
+
23 void report_internal(const char* preamble, const char* fmt, const detail::source_loc& loc, Args&&... args)
+
24 {
+
25 std::fprintf(stdout, "%s", preamble);
+
26 std::fprintf(stdout, fmt, std::forward<Args>(args)...);
+
27 std::string diag_info = "\n\tIn file ";
+
28 diag_info += std::string{loc.file_name()} + ":" + std::to_string(loc.line()) + ":" + std::to_string(loc.column()) + std::string{"\n\t>\t"} + loc.function_name();
+
29 std::fprintf(stdout, "%s\n", diag_info.c_str());
+
30 }
+
31
+
32 template<typename... Args>
+
+
33 void assert([[maybe_unused]] bool condition, [[maybe_unused]] detail::format_string fmt, [[maybe_unused]] Args&&... args)
+
34 {
+
35 #if TZ_DEBUG
+
36 if(!condition)
+
37 {
+
38
+
39 error_internal("[Assert Failure]: ", fmt.str, fmt.loc, std::forward<Args>(args)...);
+
40 }
+
41 #endif
+
42 }
+
+
43
+
44 template<typename... Args>
+
+
45 void error([[maybe_unused]] detail::format_string fmt, [[maybe_unused]] Args&&... args)
+
46 {
+
47 #if TZ_DEBUG
+
48 error_internal("[Error]: ", fmt.str, fmt.loc, std::forward<Args>(args)...);
+
49 #endif
+
50 }
+
+
51
+
52 template<typename... Args>
+
+
53 void report([[maybe_unused]] detail::format_string fmt, [[maybe_unused]] Args&&... args)
+
54 {
+
55 #if TZ_DEBUG
+
56 report_internal("[Report]: ", fmt.str, fmt.loc, std::forward<Args>(args)...);
+
57 #endif
+
58 }
+
+
59
+
60}
+
void assert(bool condition, detail::format_string fmt="<No message>", Args &&... args)
Assert on a condition.
Definition debug.inl:33
+
void error(detail::format_string fmt="<No message>", Args &&... args)
Breakpoint if a debugger is present.
Definition debug.inl:45
+
void report(detail::format_string fmt, Args &&... args)
Print out the formatted message to standard output, including source location information.
Definition debug.inl:53
+
C-String wrapper with source-location information secretly present. From a user perspective,...
Definition debug.hpp:39
+
+ + + + diff --git a/debugname_8hpp_source.html b/debugname_8hpp_source.html new file mode 100644 index 0000000000..f8b7a4152a --- /dev/null +++ b/debugname_8hpp_source.html @@ -0,0 +1,145 @@ + + + + + + + +Topaz: src/tz/gl/impl/vulkan/detail/debugname.hpp Source File + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.1.0.1 +
+
C++20 Graphics Engine
+
+
+ + + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+
debugname.hpp
+
+
+
1#ifndef TOPAZ_GL_IMPL_BACKEND_VK2_DEBUGNAME_HPP
+
2#define TOPAZ_GL_IMPL_BACKEND_VK2_DEBUGNAME_HPP
+
3#if TZ_VULKAN
+
4#include "tz/gl/impl/vulkan/detail/logical_device.hpp"
+
5
+
6namespace tz::gl::vk2
+
7{
+
8 template<VkObjectType T>
+
+ +
10 {
+
11 public:
+
12 DebugNameable(const vk2::LogicalDevice& device, std::uint64_t handle = 0);
+ +
14
+
15 std::string debug_get_name() const;
+
16 void debug_set_name(std::string debug_name);
+
17 protected:
+
18 void debug_set_handle(std::uint64_t handle);
+
19 void debugname_swap(DebugNameable<T>& rhs);
+
20 private:
+
21
+ +
23 std::uint64_t handle;
+
24 std::string debug_name = "";
+
25 };
+
+
26}
+
27#include "tz/gl/impl/vulkan/detail/debugname.inl"
+
28
+
29#endif // TZ_VULKAN
+
30#endif // TOPAZ_GL_IMPL_BACKEND_VK2_DEBUGNAME_HPP
+
Implements tz::gl::device_type.
Definition device.hpp:69
+
Definition debugname.hpp:10
+
Logical interface to an existing PhysicalDevice.
Definition logical_device.hpp:95
+
Definition handle.hpp:17
+
+ + + + diff --git a/debugname_8inl_source.html b/debugname_8inl_source.html new file mode 100644 index 0000000000..a9ba0e1488 --- /dev/null +++ b/debugname_8inl_source.html @@ -0,0 +1,172 @@ + + + + + + + +Topaz: src/tz/gl/impl/vulkan/detail/debugname.inl Source File + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.1.0.1 +
+
C++20 Graphics Engine
+
+
+ + + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+
debugname.inl
+
+
+
1namespace tz::gl::vk2
+
2{
+
3 template<VkObjectType T>
+
4 DebugNameable<T>::DebugNameable(const vk2::LogicalDevice& device, std::uint64_t handle):
+
5 device(&device),
+
6 handle(handle){}
+
7
+
8 template<VkObjectType T>
+
9 DebugNameable<T>::DebugNameable():
+
10 device(nullptr),
+
11 handle(0){}
+
12
+
13 template<VkObjectType T>
+
14 std::string DebugNameable<T>::debug_get_name() const
+
15 {
+
16 return this->debug_name;
+
17 }
+
18
+
19 template<VkObjectType T>
+
20 void DebugNameable<T>::debug_set_name([[maybe_unused]] std::string debug_name)
+
21 {
+
22 #if TZ_DEBUG
+
23 this->debug_name = debug_name;
+
24 tz::assert(this->device != nullptr, "Attempted to set debug name for a vulkan object, but the device was nullptr. Is the object a null object?");
+
25 VkDebugUtilsObjectNameInfoEXT info
+
26 {
+
27 .sType = VK_STRUCTURE_TYPE_DEBUG_UTILS_OBJECT_NAME_INFO_EXT,
+
28 .pNext = nullptr,
+
29 .objectType = T,
+
30 .objectHandle = this->handle,
+
31 .pObjectName = this->debug_name.c_str()
+
32 };
+
33 VkResult res = this->device->get_hardware().get_instance().ext_set_debug_utils_object_name(this->device->native(), info);
+
34 switch(res)
+
35 {
+
36 case VK_SUCCESS:
+
37 break;
+
38 default:
+
39 tz::error("Failed to set debug name for image backend, but for unknown reason. Please submit a bug report.");
+
40 break;
+
41 }
+
42
+
43 #endif
+
44 }
+
45
+
46 template<VkObjectType T>
+
47 void DebugNameable<T>::debug_set_handle(std::uint64_t handle)
+
48 {
+
49 this->handle = handle;
+
50 this->debug_set_name(this->debug_name);
+
51 }
+
52
+
53 template<VkObjectType T>
+
54 void DebugNameable<T>::debugname_swap(DebugNameable<T>& rhs)
+
55 {
+
56 std::swap(this->device, rhs.device);
+
57 std::swap(this->handle, rhs.handle);
+
58 std::swap(this->debug_name, rhs.debug_name);
+
59 }
+
60
+
61}
+
void assert(bool condition, detail::format_string fmt="<No message>", Args &&... args)
Assert on a condition.
Definition debug.inl:33
+
void error(detail::format_string fmt="<No message>", Args &&... args)
Breakpoint if a debugger is present.
Definition debug.inl:45
+
+ + + + diff --git a/declare_2image__format_8hpp_source.html b/declare_2image__format_8hpp_source.html new file mode 100644 index 0000000000..241d0e9ad6 --- /dev/null +++ b/declare_2image__format_8hpp_source.html @@ -0,0 +1,308 @@ + + + + + + + +Topaz: src/tz/gl/declare/image_format.hpp Source File + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.1.0.1 +
+
C++20 Graphics Engine
+
+
+ + + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+
image_format.hpp
+
+
+
1#ifndef TOPAZ_GL2_DECLARE_IMAGE_FORMAT_HPP
+
2#define TOPAZ_GL2_DECLARE_IMAGE_FORMAT_HPP
+
3#include "tz/core/debug.hpp"
+
4#include <climits>
+
5#include <array>
+
6
+
7namespace tz::gl
+
8{
+
+
32 enum class image_format
+
33 {
+ +
36 R8,
+
37 R8_UNorm = R8,
+
38 R8_SNorm,
+
39 R8_UInt,
+
40 R8_SInt,
+
41 R8_sRGB,
+
42 R16,
+
43 R16_UNorm = R16,
+
44 R16_SNorm,
+
45 R16_UInt,
+
46 R16_SInt,
+
47 RG16,
+
48 RG16_UNorm = RG16,
+
49 RG16_SNorm,
+
50 RG16_UInt,
+
51 RG16_SInt,
+
52 RG16_sRGB,
+
53 RG32,
+
54 RG32_UNorm = RG32,
+
55 RG32_SNorm,
+
56 RG32_UInt,
+
57 RG32_SInt,
+
58 RGB24,
+
59 RGB24_UNorm = RGB24,
+
60 RGB24_SNorm,
+
61 RGB24_UInt,
+
62 RGB24_SInt,
+
63 RGB24_sRGB,
+
64 BGR24,
+
65 BGR24_UNorm = BGR24,
+
66 BGR24_SNorm,
+
67 BGR24_UInt,
+
68 BGR24_SInt,
+
69 BGR24_sRGB,
+
70 RGBA32,
+
71 RGBA32_UNorm = RGBA32,
+
72 RGBA32_SNorm,
+
73 RGBA32_UInt,
+
74 RGBA32_SInt,
+
75 RGBA32_sRGB,
+
76 BGRA32,
+
77 BGRA32_UNorm = BGRA32,
+
78 BGRA32_SNorm,
+
79 BGRA32_UInt,
+
80 BGRA32_SInt,
+
81 BGRA32_sRGB,
+
82 RGBA64_SFloat,
+
83 RGBA128_SFloat,
+
84 Depth16,
+
85 Depth16_UNorm = Depth16,
+
86 Count
+
87 };
+
+
88
+
89 constexpr bool is_depth_format(image_format fmt)
+
90 {
+
91 switch(fmt)
+
92 {
+
93 case image_format::Depth16:
+
94 return true;
+
95 break;
+
96 default:
+
97 return false;
+
98 break;
+
99 }
+
100 }
+
101
+
102 constexpr std::size_t pixel_size_bytes(image_format fmt)
+
103 {
+
104 static_assert(CHAR_BIT == 8, "Detected architecture where 1 byte != 8 bits. Topaz does not support this hardware.");
+
105 switch(fmt)
+
106 {
+
107 case image_format::R8_UNorm:
+
108 case image_format::R8_SNorm:
+
109 case image_format::R8_UInt:
+
110 case image_format::R8_SInt:
+
111 case image_format::R8_sRGB:
+
112 return 1;
+
113 break;
+
114 case image_format::R16_UNorm:
+
115 case image_format::R16_SNorm:
+
116 case image_format::R16_UInt:
+
117 case image_format::R16_SInt:
+
118 case image_format::RG16_UNorm:
+
119 case image_format::RG16_SNorm:
+
120 case image_format::RG16_UInt:
+
121 case image_format::RG16_SInt:
+
122 case image_format::RG16_sRGB:
+
123 case image_format::Depth16_UNorm:
+
124 return 2;
+
125 break;
+
126 case image_format::RGB24_UNorm:
+
127 case image_format::RGB24_SNorm:
+
128 case image_format::RGB24_UInt:
+
129 case image_format::RGB24_SInt:
+
130 case image_format::RGB24_sRGB:
+
131 case image_format::BGR24_UNorm:
+
132 case image_format::BGR24_SNorm:
+
133 case image_format::BGR24_UInt:
+
134 case image_format::BGR24_SInt:
+
135 case image_format::BGR24_sRGB:
+
136 return 3;
+
137 break;
+
138 case image_format::RG32_UNorm:
+
139 case image_format::RG32_SNorm:
+
140 case image_format::RG32_UInt:
+
141 case image_format::RG32_SInt:
+
142 case image_format::RGBA32_UNorm:
+
143 case image_format::RGBA32_SNorm:
+
144 case image_format::RGBA32_UInt:
+
145 case image_format::RGBA32_SInt:
+
146 case image_format::RGBA32_sRGB:
+
147 case image_format::BGRA32_UNorm:
+
148 case image_format::BGRA32_SNorm:
+
149 case image_format::BGRA32_UInt:
+
150 case image_format::BGRA32_SInt:
+
151 case image_format::BGRA32_sRGB:
+
152 return 4;
+
153 break;
+
154 case image_format::RGBA64_SFloat:
+
155 return 8;
+
156 break;
+
157 case image_format::RGBA128_SFloat:
+
158 return 16;
+
159 break;
+
160 default:
+
161 tz::error("Unrecognised TZ image_format");
+
162 return 0;
+
163 break;
+
164 }
+
165 return 0;
+
166 }
+
167
+
168 namespace detail
+
169 {
+
170 constexpr std::array<const char*, static_cast<int>(image_format::Count)> image_format_strings =
+
171 {
+
172 "Undefined",
+
173 "R8",
+
174 "R8_SNorm",
+
175 "R8_UInt",
+
176 "R8_SInt",
+
177 "R8_sRGB",
+
178 "R16",
+
179 "R16_SNorm",
+
180 "R16_UInt",
+
181 "R16_SInt",
+
182 "RG16",
+
183 "RG16_SNorm",
+
184 "RG16_UInt",
+
185 "RG16_SInt",
+
186 "RG16_sRGB",
+
187 "RG32_UNorm",
+
188 "RG32_SNorm",
+
189 "RG32_UInt",
+
190 "RG32_SInt",
+
191 "RGB24",
+
192 "RGB24_SNorm",
+
193 "RGB24_UInt",
+
194 "RGB24_SInt",
+
195 "RGB24_sRGB",
+
196 "BGR24",
+
197 "BGR24_SNorm",
+
198 "BGR24_UInt",
+
199 "BGR24_SInt",
+
200 "BGR24_sRGB",
+
201 "RGBA32",
+
202 "RGBA32_SNorm",
+
203 "RGBA32_UInt",
+
204 "RGBA32_SInt",
+
205 "RGBA32_sRGB",
+
206 "BGRA32",
+
207 "BGRA32_SNorm",
+
208 "BGRA32_UInt",
+
209 "BGRA32_SInt",
+
210 "BGRA32_sRGB",
+
211 "RGBA64_SFloat",
+
212 "RGBA128_SFloat",
+
213 "Depth16",
+
214 };
+
215 }
+
216}
+
217
+
218#endif // TOPAZ_GL2_DECLARE_IMAGE_FORMAT_HPP
+
void error(detail::format_string fmt="<No message>", Args &&... args)
Breakpoint if a debugger is present.
Definition debug.inl:45
+
image_format
Various image formats are supported in Topaz.
Definition image_format.hpp:33
+ +
+ + + + diff --git a/descriptors_8hpp_source.html b/descriptors_8hpp_source.html new file mode 100644 index 0000000000..60112f0741 --- /dev/null +++ b/descriptors_8hpp_source.html @@ -0,0 +1,522 @@ + + + + + + + +Topaz: src/tz/gl/impl/vulkan/detail/descriptors.hpp Source File + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.1.0.1 +
+
C++20 Graphics Engine
+
+
+ + + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+
descriptors.hpp
+
+
+
1#ifndef TOPAZ_GL_IMPL_BACKEND_VK2_DESCRIPTORS2_HPP
+
2#define TOPAZ_GL_IMPL_BACKEND_VK2_DESCRIPTORS2_HPP
+
3#include "tz/core/data/basic_list.hpp"
+
4#include "tz/gl/impl/vulkan/detail/buffer.hpp"
+
5#include "tz/gl/impl/vulkan/detail/sampler.hpp"
+
6#include "tz/gl/impl/vulkan/detail/image_view.hpp"
+
7#include <unordered_map>
+
8#include <variant>
+
9
+
10namespace tz::gl::vk2
+
11{
+
15 enum class DescriptorType
+
16 {
+
17 Sampler,
+
18 ImageWithSampler,
+
19 Image,
+
20 StorageImage,
+ + +
23
+
24 Count
+
25 };
+
26
+
27 namespace detail
+
28 {
+
29 constexpr std::array<VkDescriptorType, static_cast<int>(DescriptorType::Count)> vk_desc_types{VK_DESCRIPTOR_TYPE_SAMPLER, VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER, VK_DESCRIPTOR_TYPE_SAMPLED_IMAGE, VK_DESCRIPTOR_TYPE_STORAGE_IMAGE, VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER, VK_DESCRIPTOR_TYPE_STORAGE_BUFFER};
+
30 VkDescriptorType to_desc_type(DescriptorType type);
+
31 }
+
32
+
+
37 enum class DescriptorFlag
+
38 {
+
40 UpdateAfterBind = VK_DESCRIPTOR_BINDING_UPDATE_AFTER_BIND_BIT,
+
42 UpdateUnusedWhilePending = VK_DESCRIPTOR_BINDING_UPDATE_UNUSED_WHILE_PENDING_BIT,
+
44 PartiallyBound = VK_DESCRIPTOR_BINDING_PARTIALLY_BOUND_BIT,
+
46 VariableCount = VK_DESCRIPTOR_BINDING_VARIABLE_DESCRIPTOR_COUNT_BIT
+
47 };
+
+
48
+
49 using DescriptorFlags = tz::enum_field<DescriptorFlag>;
+
50
+
+ +
58 {
+
60 std::size_t binding_count() const;
+
62 bool has_valid_device() const;
+
64 bool device_supports_flags() const;
+
65
+
+ +
67 {
+
69 DescriptorType type;
+
71 std::uint32_t count;
+
73 DescriptorFlags flags;
+
74 };
+
+ + +
79 };
+
+
80
+
+ +
86 {
+
87 public:
+ +
92 DescriptorLayout(const DescriptorLayout& copy) = delete;
+ + +
95
+
96 DescriptorLayout& operator=(const DescriptorLayout& rhs) = delete;
+
97 DescriptorLayout& operator=(DescriptorLayout&& rhs);
+
98
+
103 std::size_t binding_count() const;
+
108 std::size_t descriptor_count() const;
+
114 std::size_t descriptor_count_of(DescriptorType type) const;
+
119 std::span<const DescriptorLayoutInfo::BindingInfo> get_bindings() const;
+
120
+
121 const LogicalDevice& get_device() const;
+
122
+
123 using NativeType = VkDescriptorSetLayout;
+
124 NativeType native() const;
+
125
+
126 static DescriptorLayout null();
+
127 bool is_null() const;
+
128 private:
+ +
130 const DescriptorLayoutInfo& get_info() const;
+
131
+
132 VkDescriptorSetLayout descriptor_layout;
+ +
134 };
+
+
135
+
+ +
141 {
+
142 public:
+ + + +
159 const LogicalDevice* get_device() const;
+
164 void set_device(const LogicalDevice& device);
+
169 const DescriptorLayoutInfo& get_info() const;
+
174 DescriptorLayout build() const;
+
178 void clear();
+
179 private:
+ +
181 };
+
+
182
+
+ +
188 {
+
194 static DescriptorPoolInfo to_fit_layout(const DescriptorLayout& descriptor_layout, std::size_t quantity);
+
198 bool has_valid_device() const;
+
199
+
+ +
204 {
+
206 std::unordered_map<DescriptorType, std::uint32_t> limits;
+
208 std::uint32_t max_sets = 0;
+ +
211 };
+
+
212
+ + +
217 };
+
+
218
+
219
+
+ +
225 {
+
226 public:
+
+
230 struct Write
+
231 {
+
+ +
236 {
+ +
240 std::size_t buffer_offset;
+
242 std::size_t buffer_write_size;
+
243 };
+
+
244
+
+ +
249 {
+ + +
254 };
+
+
255 using WriteInfo = std::variant<BufferWriteInfo, ImageWriteInfo>;
+
256
+ +
260 std::uint32_t binding_id;
+
262 std::uint32_t array_element;
+
264 std::vector<WriteInfo> write_infos;
+
265 };
+
+
266 using WriteList = tz::basic_list<Write>;
+
267
+
+ +
274 {
+
275 public:
+
284 void set_buffer(std::uint32_t binding_id, Write::BufferWriteInfo buffer_write, std::uint32_t array_index = 0);
+
293 void set_image(std::uint32_t binding_id, Write::ImageWriteInfo image_write, std::uint32_t array_index = 0);
+
297 DescriptorSet::WriteList to_write_list() const;
+
301 const DescriptorSet& get_set() const;
+
302 friend class DescriptorSet;
+
303 private:
+ +
305
+
306 DescriptorSet* set;
+
307 DescriptorSet::WriteList write_info;
+
308 };
+
+
309
+
310 friend class DescriptorPool;
+
311 using NativeType = VkDescriptorSet;
+
312 NativeType native() const;
+
313
+
314 std::size_t get_set_id() const;
+
319 const DescriptorLayout& get_layout() const;
+
320 void set_layout(const DescriptorLayout& layout);
+ +
326 private:
+
328 DescriptorSet(std::size_t set_id, const DescriptorLayout& layout, NativeType native);
+
329 VkDescriptorSet set;
+
330 std::uint32_t set_id;
+
331 const DescriptorLayout* layout;
+
332 };
+
+
333
+
+ +
339 {
+
340 public:
+ +
347
+
+ +
350 {
+
351 AllocationResult() = default;
+
352 AllocationResult(AllocationResult&& move) = default;
+
353 AllocationResult& operator=(AllocationResult&& rhs)
+
354 {
+
355 const DescriptorLayout* lhs_layout = nullptr;
+
356 const DescriptorLayout* rhs_layout = nullptr;
+
357 if(this->sets.length())
+
358 {
+
359 lhs_layout = &this->sets.front().get_layout();
+
360 }
+
361 if(rhs.sets.length())
+
362 {
+
363 rhs_layout = &rhs.sets.front().get_layout();
+
364 }
+
365 if(lhs_layout != nullptr)
+
366 {
+
367 for(auto& set : rhs.sets)
+
368 {
+
369 set.set_layout(*lhs_layout);
+
370 }
+
371 }
+
372 if(rhs_layout != nullptr)
+
373 {
+
374 for(auto& set : this->sets)
+
375 {
+
376 set.set_layout(*rhs_layout);
+
377 }
+
378 }
+
379 std::swap(this->sets, rhs.sets);
+
380 std::swap(this->type, rhs.type);
+
381 return *this;
+
382 }
+
384 bool success() const;
+
385
+
+ +
388 {
+
390 AllocationSuccess,
+
392 FatalError,
+
394 FragmentedPool,
+
396 PoolOutOfMemory
+
397 };
+
+
398
+ + +
403 };
+
+
404
+
+ +
411 {
+
412 public:
+ +
420 std::span<const DescriptorSet::EditRequest> get_set_edits() const;
+
421 friend class DescriptorPool;
+
422 private:
+ +
424
+
425 DescriptorPool* pool;
+
426 std::vector<DescriptorSet::EditRequest> set_edits;
+
427 };
+
+
428
+ +
430 DescriptorPool(const DescriptorPool& copy) = delete;
+ + +
433
+
434 DescriptorPool& operator=(const DescriptorPool& rhs) = delete;
+
435 DescriptorPool& operator=(DescriptorPool&& rhs);
+
436
+
441 bool contains(const DescriptorSet& set) const;
+
442
+
446 const LogicalDevice& get_device() const;
+ + +
460 void update_sets(UpdateRequest update_request);
+
466 void update_sets(const DescriptorSet::WriteList& writes);
+
470 void clear();
+
471
+
472 static DescriptorPool null();
+
473 bool is_null() const;
+
474 private:
+ +
476
+
477 VkDescriptorPool pool;
+ +
479 std::vector<DescriptorSet::NativeType> allocated_set_natives;
+
480 };
+
+
481
+
+ +
483 {
+
484 DescriptorData() = default;
+ +
486 {
+
487 *this = std::move(move);
+
488 }
+
489 DescriptorData& operator=(DescriptorData&& rhs)
+
490 {
+
491 std::swap(this->layout, rhs.layout);
+
492 std::swap(this->data, rhs.data);
+
493 for(auto& set : this->data.sets)
+
494 {
+
495 set.set_layout(this->layout);
+
496 }
+
497 return *this;
+
498 }
+
499 vk2::DescriptorLayout layout = vk2::DescriptorLayout::null();
+ +
501 };
+
+
502}
+
503
+
504#endif // TOPAZ_GL_IMPL_BACKEND_VK2_DESCRIPTORS2_HPP
+
Custom list, feature subset of std::vector.
Definition basic_list.hpp:21
+
Container for enum values, useful for vintage bitfield types.
Definition enum_field.hpp:16
+
Implements tz::gl::device_type.
Definition device.hpp:69
+
Represents a linear array of data which can be used for various purposes.
Definition buffer.hpp:56
+
Helper class to populate a DescriptorLayoutInfo.
Definition descriptors.hpp:141
+
DescriptorLayout build() const
Create a new DescriptorLayout based upon this builder.
Definition descriptors.cpp:86
+
DescriptorLayoutBuilder & with_binding(DescriptorLayoutInfo::BindingInfo binding)
Add a new binding.
Definition descriptors.cpp:65
+
const DescriptorLayoutInfo & get_info() const
Retrieve the info structure corresponding to this builder.
Definition descriptors.cpp:81
+
DescriptorLayoutBuilder()=default
Create a builder starting with no bindings.
+
void set_device(const LogicalDevice &device)
Set which LogicalDevice will be used to construct the resultant layout.
Definition descriptors.cpp:76
+
void clear()
Undo all information, including bindings and device info back to default settings.
Definition descriptors.cpp:91
+
const LogicalDevice * get_device() const
Retrieve the LogicalDevice which will be used to construct the resultant layout.
Definition descriptors.cpp:71
+
Specifies the types of resources that will be accessed by a graphics or compute pipeline via a Shader...
Definition descriptors.hpp:86
+
std::size_t descriptor_count_of(DescriptorType type) const
Retrieve the total number of descriptors of the given type in all of the bindings.
Definition descriptors.cpp:209
+
std::span< const DescriptorLayoutInfo::BindingInfo > get_bindings() const
Retrieve a read-only view into the bindings data for the layout.
Definition descriptors.cpp:223
+
std::size_t binding_count() const
Retrieve the number of bindings within the layout.
Definition descriptors.cpp:194
+
std::size_t descriptor_count() const
Retrieve the total number of descriptors in all of the bindings.
Definition descriptors.cpp:199
+
Specifies a requests to update zero or more DescriptorSets owned by an existing DescriptorPool.
Definition descriptors.hpp:411
+
void add_set_edit(DescriptorSet::EditRequest set_edit)
Add an edit for a DescriptorSet.
Definition descriptors.cpp:376
+
std::span< const DescriptorSet::EditRequest > get_set_edits() const
Retrieve all DescriptorSet edit requests added so far.
Definition descriptors.cpp:382
+
Represents storage for DescriptorSets.
Definition descriptors.hpp:339
+
AllocationResult allocate_sets(const Allocation &alloc)
Allocate some DescriptorSets.
Definition descriptors.cpp:485
+
void update_sets(UpdateRequest update_request)
Issue an update request to any DescriptorSets owned by this pool.
Definition descriptors.cpp:573
+
UpdateRequest make_update_request()
Retrieve an empty update request for this pool.
Definition descriptors.cpp:568
+
bool contains(const DescriptorSet &set) const
Query as to whether an existing DescriptorSet was allocated from this pool.
Definition descriptors.cpp:474
+
const LogicalDevice & get_device() const
Retrieve the LogicalDevice which was used to create the pool.
Definition descriptors.cpp:479
+
void clear()
Purge all DescriptorSets.
Definition descriptors.cpp:689
+
Request structure representing zero or more descriptor changes for this set.
Definition descriptors.hpp:274
+
const DescriptorSet & get_set() const
Retrieve the DescriptorSet which this request is intending to edit.
Definition descriptors.cpp:331
+
void set_image(std::uint32_t binding_id, Write::ImageWriteInfo image_write, std::uint32_t array_index=0)
Request that the image at the given binding at the provided array index refers to an existing Image.
Definition descriptors.cpp:305
+
DescriptorSet::WriteList to_write_list() const
Retrieve a basic list of writes corresponding to all requested edits so far.
Definition descriptors.cpp:326
+
void set_buffer(std::uint32_t binding_id, Write::BufferWriteInfo buffer_write, std::uint32_t array_index=0)
Request that the buffer at the given binding at the provided array index refers to an existing Buffer...
Definition descriptors.cpp:283
+
Represents a set of one or more descriptors.
Definition descriptors.hpp:225
+
const DescriptorLayout & get_layout() const
Retrieve the DescriptorLayout which this set matches.
Definition descriptors.cpp:350
+
EditRequest make_edit_request()
Retrieve an empty request for this set.
Definition descriptors.cpp:360
+
Definition image_view.hpp:18
+
Logical interface to an existing PhysicalDevice.
Definition logical_device.hpp:95
+
Represents the state of an Image sampler which is used to read image data and apply filtering and oth...
Definition sampler.hpp:71
+ + +
DescriptorFlag
Information about a specific descriptor (or array of descriptors) via a descriptor layout binding.
Definition descriptors.hpp:38
+ + + + +
Definition descriptors.hpp:483
+ +
DescriptorFlags flags
Do we have any extra flags?
Definition descriptors.hpp:73
+
DescriptorType type
What is the type of the descriptor?
Definition descriptors.hpp:69
+
std::uint32_t count
How many are at this binding? If more than 1, we are an array.
Definition descriptors.hpp:71
+
Specifies creation flags for a descriptor set layout.
Definition descriptors.hpp:58
+
bool device_supports_flags() const
BindingInfos might contain flags that are only optionally supported. This method returns a bool as to...
Definition descriptors.cpp:27
+
std::size_t binding_count() const
Retrieve the number of bindings.
Definition descriptors.cpp:17
+
tz::basic_list< BindingInfo > bindings
List of all descriptor bindings in the layout.
Definition descriptors.hpp:76
+
bool has_valid_device() const
Query as to whether the LogicalDevice logical_device is a valid device. That is, the device is not nu...
Definition descriptors.cpp:22
+
const LogicalDevice * logical_device
LogicalDevice which will be creating the resultant DescriptorLayout. This must not be null or a null ...
Definition descriptors.hpp:78
+
Specifies information about a DescriptorPool allocation.
Definition descriptors.hpp:343
+
tz::basic_list< const DescriptorLayout * > set_layouts
List of layouts for each set. When an allocation is performed, a list of DescriptorSets is returned....
Definition descriptors.hpp:345
+
Specifies information about the resultant of an invocation to DescriptorPool::allocate_sets.
Definition descriptors.hpp:350
+
bool success() const
Returns true if the allocation was successful.
Definition descriptors.cpp:371
+
tz::basic_list< DescriptorSet > sets
List of allocated sets. If type == AllocationResultType::Success, this contains a list of valid Descr...
Definition descriptors.hpp:400
+
AllocationResultType
Allocations can succeed, or fail in various ways.
Definition descriptors.hpp:388
+
AllocationResultType type
Describes how the allocation went. Allocations can fail.
Definition descriptors.hpp:402
+
Structure specifying limits for a DescriptorPool.
Definition descriptors.hpp:204
+
std::uint32_t max_sets
Maximum number of sets that can be allocated from the pool, regardless of layout.
Definition descriptors.hpp:208
+
bool supports_update_after_bind
True if any of the descriptors should be able to be updated after bind. This is true if bindless desc...
Definition descriptors.hpp:210
+
std::unordered_map< DescriptorType, std::uint32_t > limits
Map of the maximum number of descriptors for each type. If a type does not exist within the map,...
Definition descriptors.hpp:206
+
Specifies creation flags for a descriptor pool.
Definition descriptors.hpp:188
+
bool has_valid_device() const
Query as to whether the provided LogicalDevice is valid.
Definition descriptors.cpp:278
+
PoolLimits limits
Specifies the limits for the created pool.
Definition descriptors.hpp:214
+
static DescriptorPoolInfo to_fit_layout(const DescriptorLayout &descriptor_layout, std::size_t quantity)
Create a PoolInfo large enough such that quantity descriptor sets each matching layout can be allocat...
Definition descriptors.cpp:259
+
const LogicalDevice * logical_device
LogicalDevice which will be used to create the pool.
Definition descriptors.hpp:216
+
Specifies information about having a descriptor refer to an existing Buffer.
Definition descriptors.hpp:236
+
std::size_t buffer_write_size
number of bytes from the buffer to associate with the descriptor.
Definition descriptors.hpp:242
+
std::size_t buffer_offset
Offset, in bytes, from the start of the buffer data.
Definition descriptors.hpp:240
+
const Buffer * buffer
Buffer to refer to. Must not be nullptr.
Definition descriptors.hpp:238
+
Specifies information about having a descriptor refer to an existing Image.
Definition descriptors.hpp:249
+
const ImageView * image_view
ImageView to use. Must not be nullptr and must refer to a valid Image.
Definition descriptors.hpp:253
+
const Sampler * sampler
Sampler to use. Must not be nullptr.
Definition descriptors.hpp:251
+
Specifies information about writing to a specific element of the descriptor set via binding id.
Definition descriptors.hpp:231
+
const DescriptorSet * set
Specifies which set we are working on. Must not be null.
Definition descriptors.hpp:258
+
std::uint32_t array_element
Zero or the element of the descriptor array we would like to start writes to.
Definition descriptors.hpp:262
+
std::uint32_t binding_id
Specifies the binding-id at which the descriptor/descriptor array will be written to.
Definition descriptors.hpp:260
+
std::vector< WriteInfo > write_infos
List of writes to the descriptor array.
Definition descriptors.hpp:264
+
+ + + + diff --git a/device2_8hpp_source.html b/device2_8hpp_source.html new file mode 100644 index 0000000000..d3667d7bd2 --- /dev/null +++ b/device2_8hpp_source.html @@ -0,0 +1,313 @@ + + + + + + + +Topaz: src/tz/gl/impl/vulkan/device2.hpp Source File + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.1.0.1 +
+
C++20 Graphics Engine
+
+
+ + + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+
device2.hpp
+
+
+
1#ifndef TZ_GL_IMPL_VULKAN_DEVICE_HPP
+
2#define TZ_GL_IMPL_VULKAN_DEVICE_HPP
+
3#if TZ_VULKAN
+
4#include "tz/core/data/vector.hpp"
+
5#include "tz/gl/api/device.hpp"
+
6#include "tz/gl/impl/vulkan/renderer2.hpp"
+
7#include "tz/gl/impl/vulkan/detail/swapchain.hpp"
+
8#include "tz/gl/impl/vulkan/detail/image.hpp"
+
9#include "tz/gl/impl/vulkan/detail/semaphore.hpp"
+
10#include "tz/gl/impl/vulkan/detail/descriptors.hpp"
+
11#include "tz/gl/impl/vulkan/detail/command.hpp"
+
12#include <unordered_map>
+
13#include <deque>
+
14
+
15namespace tz::gl
+
16{
+
+ +
18 {
+
19 public:
+ +
21 const vk2::LogicalDevice& vk_get_logical_device() const;
+
22 vk2::LogicalDevice& vk_get_logical_device();
+
23 std::size_t vk_get_frame_id() const{return this->frame_id;}
+
24 protected:
+
25 void touch_renderer_id(unsigned int fingerprint, std::size_t renderer_id);
+
26 std::size_t get_rid(unsigned int fingerprint) const;
+
27
+
28 std::size_t frame_id = 0;
+
29 std::size_t old_frame_id = 0;
+
30 std::size_t frame_counter = 0;
+
31 std::size_t global_timeline = 0;
+
32 std::size_t max_signal_rank_this_frame = 0;
+
33 bool frame_signal_sent_this_frame = false;
+
34 std::unordered_map<unsigned int, std::size_t> fingerprint_to_renderer_id = {};
+ +
36 };
+
+
37
+
+ +
39 {
+
40 public:
+ +
42 tz::gl::image_format get_window_format() const;
+
43 const vk2::Swapchain& get_swapchain() const;
+
44 vk2::Swapchain& get_swapchain();
+
45 const vk2::Image& get_depth_image() const;
+
46 vk2::Image& get_depth_image();
+
55 const vk2::BinarySemaphore& acquire_image(const vk2::Fence* signal_fence);
+
56 std::size_t get_image_index() const;
+
57 std::span<vk2::BinarySemaphore> get_image_semaphores();
+
58 const vk2::Swapchain::ImageAcquisitionResult* get_recent_acquire() const;
+
59 void vk_acquire_done();
+
60 void vk_notify_resize();
+
61 private:
+
62 void make_depth_image();
+
63 void initialise_image_semaphores();
+
64 void debug_annotate_resources();
+
65 vk2::Swapchain swapchain = vk2::Swapchain::null();
+
66 vk2::Image device_depth = vk2::Image::null();
+
67 tz::vec2ui dimensions_cache = tz::vec2ui::zero();
+
68 std::optional<vk2::Swapchain::ImageAcquisitionResult> recent_acquire = std::nullopt;
+
69 std::vector<vk2::BinarySemaphore> image_semaphores = {};
+
70 };
+
+
71
+
+ +
73 {
+
74 public:
+ +
76 void vk_frame_wait(unsigned int fingerprint);
+
77 void vk_skip_renderer(unsigned int fingerprint);
+
78 const tz::gl::schedule& get_schedule() const;
+
79 const tz::gl::timeline_t& get_timeline() const;
+
80 std::vector<const vk2::Semaphore*> vk_get_dependency_waits(unsigned int fingerprint);
+
81 std::vector<const vk2::Semaphore*> vk_get_dependency_signals(unsigned int fingerprint);
+
82 protected:
+
83 std::span<const vk2::TimelineSemaphore> get_frame_sync_objects() const;
+
84 std::span<vk2::TimelineSemaphore> get_frame_sync_objects();
+
85 std::span<vk2::TimelineSemaphore> get_dependency_sync_objects();
+
86 std::uint64_t get_sync_id(std::size_t renderer_id) const;
+
87 std::uint64_t get_renderer_sync_id(unsigned int fingerprint) const;
+
88 private:
+
89 const tz::gl::schedule& sched;
+
90 std::vector<vk2::TimelineSemaphore> dependency_syncs = {};
+
91 std::vector<vk2::TimelineSemaphore> frame_syncs = {};
+
92 };
+
+
93
+
+ +
95 {
+
96 public:
+ +
98 vk2::DescriptorPool::UpdateRequest vk_make_update_request(unsigned int fingerprint);
+
99 vk2::DescriptorPool::AllocationResult vk_allocate_sets(const vk2::DescriptorPool::Allocation& alloc, unsigned int fingerprint);
+
100 void vk_update_sets(vk2::DescriptorPool::UpdateRequest update, unsigned int fingerprint);
+
101 private:
+
102 vk2::DescriptorPool& get_pool(unsigned int fingerprint);
+
103 vk2::DescriptorPool::AllocationResult impl_allocate_sets(const vk2::DescriptorPool::Allocation& alloc, unsigned int fingerprint, unsigned int attempt);
+
104 void another_pool();
+
105 void another_pool(std::size_t set_count, std::size_t buf_count, std::size_t img_count);
+
106 std::deque<vk2::DescriptorPool> pools = {};
+
107 std::unordered_map<unsigned int, std::size_t> fingerprint_to_pool_id = {};
+
108 };
+
+
109
+
+ +
111 {
+
112 public:
+
+ +
114 {
+
115 bool compute = false;
+
116 bool requires_present = true;
+
117 };
+
+ +
119 vk2::CommandPool::AllocationResult vk_allocate_commands(const vk2::CommandPool::Allocation& alloc, unsigned int fingerprint);
+
120 void vk_free_commands(unsigned int fingerprint, std::size_t allocation_id, std::span<vk2::CommandBuffer> command_buffers);
+
121 void vk_command_pool_touch(unsigned int fingerprint, fingerprint_info_t finfo);
+
122 void vk_submit_and_run_commands_blocking(unsigned int fingerprint, std::size_t allocation_id, std::size_t buffer_id, const vk2::CommandBuffer& buffer);
+
123 void vk_submit_command(unsigned int fingerprint, std::size_t allocation_id, std::size_t buffer_id, std::span<const vk2::CommandBuffer> cmdbufs, const tz::basic_list<const vk2::BinarySemaphore*>& extra_waits, const tz::basic_list<const vk2::BinarySemaphore*>& extra_signals, vk2::Fence* signal_fence);
+ +
131 private:
+
132 struct allocation_history
+
133 {
+ + +
136 };
+
137 vk2::CommandPool::AllocationResult impl_allocate_commands(const vk2::CommandPool::Allocation& alloc, unsigned int fingerprint, unsigned int attempt);
+
138 vk2::CommandPool& get_fitting_pool(const fingerprint_info_t& finfo);
+
139 vk2::hardware::Queue* get_original_queue(const fingerprint_info_t& finfo);
+
140 vk2::hardware::Queue* graphics_queue = nullptr;
+
141 vk2::hardware::Queue* graphics_present_queue = nullptr;
+
142 vk2::hardware::Queue* compute_queue = nullptr;
+
143 vk2::CommandPool graphics_commands = vk2::CommandPool::null();
+
144 vk2::CommandPool graphics_present_commands = vk2::CommandPool::null();
+
145 vk2::CommandPool compute_commands = vk2::CommandPool::null();
+
146 std::unordered_map<unsigned int, fingerprint_info_t> fingerprint_alloc_types = {};
+
147 std::unordered_map<unsigned int, std::vector<vk2::CommandPool::Allocation>> fingerprint_allocation_history = {};
+
148 };
+
+
149
+
+ +
151 public device_common<renderer_vulkan2>,
+ +
153 {
+
154 public:
+ + +
157 tz::gl::renderer_handle create_renderer(const tz::gl::renderer_info& rinfo);
+
158 using device_common<renderer_vulkan2>::get_renderer;
+
159 void dbgui();
+
160 void begin_frame(){}
+
161 void end_frame();
+
162 void full_wait() const;
+
163 void frame_wait() const;
+
164 };
+
+ +
166}
+
167
+
168#endif // TZ_VULKAN
+
169#endif // TZ_GL_IMPL_VULKAN_DEVICE_HPP
+
Custom list, feature subset of std::vector.
Definition basic_list.hpp:21
+
Definition device2.hpp:111
+
vk2::hardware::Queue::PresentResult present_image(unsigned int fingerprint, const tz::basic_list< const vk2::BinarySemaphore * > &wait_semaphores)
present the acquired image.
Definition device2.cpp:714
+
Definition device.hpp:38
+
Definition device2.hpp:95
+
Definition device2.hpp:73
+
Definition device2.hpp:153
+
Definition device2.hpp:18
+
Definition device2.hpp:39
+
const vk2::BinarySemaphore & acquire_image(const vk2::Fence *signal_fence)
acquire an image from the underlying presentation engine.
Definition device2.cpp:231
+
Helper struct which the user can use to specify which inputs, resources they want and where they want...
Definition renderer.hpp:112
+
Definition renderer2.hpp:200
+
Synchronisation primitive which is not interactable on the host and which has two states:
Definition semaphore.hpp:22
+
Represents storage for vulkan commands, such as draw calls, binds, transfers etc.....
Definition command.hpp:427
+
Represents storage for CommandBuffers.
Definition command.hpp:478
+
Specifies a requests to update zero or more DescriptorSets owned by an existing DescriptorPool.
Definition descriptors.hpp:411
+
Represents storage for DescriptorSets.
Definition descriptors.hpp:339
+
Synchronisation primitive which is useful to detect completion of a GPU operation,...
Definition fence.hpp:26
+
Represents an Image owned by the Vulkan API.
Definition image.hpp:155
+
Logical interface to an existing PhysicalDevice.
Definition logical_device.hpp:95
+
Swapchains are infrastructures which represent GPU images we will render to before they can be presen...
Definition swapchain.hpp:32
+
Represents a single hardware Queue.
Definition queue.hpp:70
+
PresentResult
Describes the result of a presentation request. See Queue::present.
Definition queue.hpp:104
+
Named Requirement: device Implemented by tz_gl2_device.
Definition device.hpp:21
+
vector< unsigned int, 2 > vec2ui
A vector of two unsigned ints.
Definition vector.hpp:244
+
tz::handle< detail::renderer_tag > renderer_handle
Represents a handle for a renderer owned by an existing device.
Definition renderer.hpp:27
+
image_format
Various image formats are supported in Topaz.
Definition image_format.hpp:33
+ +
Definition schedule.hpp:31
+
Definition schedule.hpp:21
+
Specifies information about an allocation of a CommandBuffer or many.
Definition command.hpp:484
+
Contains information about the result of a pool allocation.
Definition command.hpp:493
+
Specifies information about a DescriptorPool allocation.
Definition descriptors.hpp:343
+
Specifies information about the resultant of an invocation to DescriptorPool::allocate_sets.
Definition descriptors.hpp:350
+ +
+ + + + diff --git a/device_8hpp_source.html b/device_8hpp_source.html new file mode 100644 index 0000000000..e52176e3a2 --- /dev/null +++ b/device_8hpp_source.html @@ -0,0 +1,131 @@ + + + + + + + +Topaz: src/tz/gl/device.hpp Source File + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.1.0.1 +
+
C++20 Graphics Engine
+
+
+ + + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+
device.hpp
+
+
+
1#ifndef TOPAZ_GL2_DEVICE_HPP
+
2#define TOPAZ_GL2_DEVICE_HPP
+
3
+
4#if TZ_VULKAN
+
5#include "tz/gl/impl/vulkan/device2.hpp"
+
6#elif TZ_OGL
+
7#include "tz/gl/impl/opengl/device.hpp"
+
8#endif
+
9namespace tz::gl
+
10{
+
11 #if TZ_VULKAN
+
12 using device = device_vulkan2;
+
13 #elif TZ_OGL
+
14 using device = device_ogl;
+
15 #endif
+
16
+
23 device& get_device();
+
24 void destroy_device();
+
25}
+
26
+
27#endif // TOPAZ_GL2_DEVICE_HPP
+
device & get_device()
Retrieve the global device.
Definition device.cpp:9
+
+ + + + diff --git a/device_8inl_source.html b/device_8inl_source.html new file mode 100644 index 0000000000..abc12c487a --- /dev/null +++ b/device_8inl_source.html @@ -0,0 +1,336 @@ + + + + + + + +Topaz: src/tz/gl/api/device.inl Source File + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.1.0.1 +
+
C++20 Graphics Engine
+
+
+ + + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+
device.inl
+
+
+
1#include "tz/core/profile.hpp"
+
2#include "imgui.h"
+
3#undef assert
+
4namespace tz::gl
+
5{
+
6 template<renderer_type R>
+
7 const R& device_common<R>::get_renderer(tz::gl::renderer_handle handle) const
+
8 {
+
9 return this->renderers[static_cast<std::size_t>(static_cast<tz::hanval>(handle))];
+
10 }
+
11
+
12 template<renderer_type R>
+
13 R& device_common<R>::get_renderer(tz::gl::renderer_handle handle)
+
14 {
+
15 return this->renderers[static_cast<std::size_t>(static_cast<tz::hanval>(handle))];
+
16 }
+
17
+
18 template<renderer_type R>
+
19 void device_common<R>::destroy_renderer(tz::gl::renderer_handle handle)
+
20 {
+
21 std::size_t h = static_cast<std::size_t>(static_cast<tz::hanval>(handle));
+
22#if TZ_DEBUG
+
23 bool free_list_contains = std::find(this->free_list.begin(), this->free_list.end(), h) != this->free_list.end();
+
24 tz::assert(!free_list_contains, "Detected double-destroy of renderer of handle value %zu", h);
+
25 tz::assert(this->renderers.size() > h, "Detected attempted destroy of renderer of invalid handle value %zu. device renderer storage does not have the capacity for this, meaning no renderer with this handle was ever returned by this device.", h);
+
26
+
27#endif // TZ_DEBUG
+
28 R tmp = R::null();
+
29 std::swap(tmp, this->renderers[h]);
+
30 this->free_list.push_back(h);
+
31 }
+
32
+
33 template<renderer_type R>
+
34 std::size_t device_common<R>::renderer_count() const
+
35 {
+
36 return this->renderers.size() - this->free_list.size();
+
37 }
+
38
+
39 template<renderer_type R>
+
40 const tz::gl::schedule& device_common<R>::render_graph() const
+
41 {
+
42 return this->render_schedule;
+
43 }
+
44
+
45 template<renderer_type R>
+
46 tz::gl::schedule& device_common<R>::render_graph()
+
47 {
+
48 return this->render_schedule;
+
49 }
+
50
+
51 template<renderer_type R>
+
52 void device_common<R>::render()
+
53 {
+
54 TZ_PROFZONE("device - render", 0xFFAAAA00);
+
55 for(eid_t evt : this->render_schedule.timeline)
+
56 {
+
57 this->renderers[evt].render();
+
58 }
+
59 }
+
60
+
61 template<renderer_type R>
+
62 tz::gl::renderer_handle device_common<R>::emplace_renderer(const tz::gl::renderer_info& rinfo)
+
63 {
+
64 // If free list is empty, we need to expand our storage and retrieve a new handle.
+
65 std::size_t rid;
+
66 if(this->free_list.empty())
+
67 {
+
68 this->renderers.emplace_back(rinfo);
+
69 rid = this->renderers.size() - 1;
+
70 }
+
71 else
+
72 {
+
73 // We destroyed a renderer in the past and now the free list contains a reference to the null renderer at its place. We can re-use this position.
+
74 // If we destroyed a renderer in the past, let's re-use its handle. The renderer at the position will be a null renderer.
+
75 rid = this->free_list.back();
+
76 this->free_list.pop_back();
+
77 this->renderers[rid] = R{rinfo};
+
78 }
+
79 this->post_add_renderer(rid, rinfo);
+
80 return static_cast<hanval>(rid);
+
81 }
+
82
+
83 template<renderer_type R>
+
84 void device_common<R>::internal_clear()
+
85 {
+
86 this->renderers.clear();
+
87 }
+
88
+
89 template<renderer_type R>
+
90 void device_common<R>::post_add_renderer(std::size_t rid, const tz::gl::renderer_info& rinfo)
+
91 {
+
92 const auto& evts = this->render_graph().events;
+
93 auto iter = std::find_if(evts.begin(), evts.end(), [&rid](const auto& evt){return evt.eid == rid;});
+
94 if(iter == this->render_graph().events.end())
+
95 {
+
96 tz::gl::event& evt = this->render_graph().events.emplace_back();
+
97 evt.eid = rid;
+
98 auto deps = rinfo.get_dependencies();
+
99 for(const auto& dep : deps)
+
100 {
+
101 evt.dependencies.push_back(static_cast<eid_t>(static_cast<std::size_t>(static_cast<tz::hanval>(dep))));
+
102 }
+
103 }
+
104 }
+
105
+
106 template<tz::gl::device_type<tz::gl::renderer_info> T>
+
107 void common_device_dbgui(T& device)
+
108 {
+
109 const std::size_t renderer_count = device.renderer_count();
+
110
+
111 ImGui::TextColored(ImVec4{1.0f, 0.6f, 0.6f, 1.0f}, "tz::gl::get_device()");
+
112 ImGui::Separator();
+
113 ImGui::TextColored(ImVec4{1.0f, 0.6f, 0.6f, 1.0f}, "Summary");
+
114 ImGui::Text("- The device currently stores %zu renderers", renderer_count);
+
115 ImGui::Text("- The image_format of the window is %s", detail::image_format_strings[static_cast<int>(device.get_window_format())]);
+
116 ImGui::Separator();
+
117 ImGui::TextColored(ImVec4{1.0f, 0.6f, 0.6f, 1.0f}, "Renderers");
+
118 static bool display_internal_renderers = false;
+
119 ImGui::Checkbox("Display Internal Renderers", &display_internal_renderers);
+
120 static int id = 0;
+
121 if(renderer_count == 0)
+
122 {
+
123 return;
+
124 }
+
125 ImGui::SliderInt("Renderer ID", &id, 0, renderer_count - 1);
+
126 ImGui::Indent();
+
127 const auto& renderer = device.get_renderer(static_cast<tz::hanval>(id));
+
128 if(renderer.get_options().contains(tz::gl::renderer_option::_internal) && !display_internal_renderers)
+
129 {
+
130 ImGui::Text("Internal Renderer");
+
131 ImGui::Spacing();
+
132 if(id > 0)
+
133 {
+
134 if(ImGui::Button("<<")){while(device.get_renderer(static_cast<tz::hanval>(id)).get_options().contains(tz::gl::renderer_option::_internal) && id > 0){id--;}}
+
135 ImGui::SameLine();
+
136 if(ImGui::Button("Prev")){id--;}
+
137 }
+
138 if(std::cmp_less(id, (renderer_count - 1)))
+
139 {
+
140 ImGui::SameLine();
+
141 if(ImGui::Button("Next")){id++;}
+
142 ImGui::SameLine();
+
143 if(ImGui::Button(">>")){while(device.get_renderer(static_cast<tz::hanval>(id)).get_options().contains(tz::gl::renderer_option::_internal) && std::cmp_less(id, (renderer_count - 1))){id++;}}
+
144 }
+
145 }
+
146 else
+
147 {
+
148 device.get_renderer(static_cast<tz::hanval>(id)).dbgui();
+
149 }
+
150 ImGui::Unindent();
+
151 ImGui::Separator();
+
152 ImGui::TextColored(ImVec4{1.0f, 0.6f, 0.6f, 1.0f}, "Render Graph");
+
153 if(ImGui::BeginTabBar("#rendergraph"))
+
154 {
+
155 const auto& sched = device.render_graph();
+
156 constexpr ImVec4 edge_default{1.0f, 1.0f, 1.0f, 1.0f};
+
157 constexpr ImVec4 edge_dependency{0.6f, 0.0f, 0.0f, 1.0f};
+
158 constexpr ImVec4 edge_renderwait{0.4f, 0.5f, 1.0f, 1.0f};
+
159 constexpr ImVec4 edge_implicit{0.6f, 0.6f, 0.0f, 1.0f};
+
160 if(ImGui::BeginTabItem("Timeline"))
+
161 {
+
162 static bool hide_internal = true;
+
163 static bool show_chronological_ranks = false;
+
164 ImGui::Checkbox("Hide Internal Renderers", &hide_internal);
+
165 ImGui::Checkbox("Show Chronological Ranks", &show_chronological_ranks);
+
166 auto max_rank = sched.max_chronological_rank();
+
167 for(std::size_t r = 0; r <= max_rank; r++)
+
168 {
+
169 for(std::size_t j = 0; j < sched.timeline.size(); j++)
+
170 {
+
171 auto& ren = device.get_renderer(static_cast<tz::hanval>(sched.timeline[j]));
+
172 if(sched.chronological_rank_eid(sched.timeline[j]) == r)
+
173 {
+
174 std::string namedata{ren.debug_get_name()};
+
175 if(show_chronological_ranks)
+
176 {
+
177 namedata += " (" + std::to_string(r) + ")";
+
178 }
+
179 if(ImGui::Button(namedata.c_str()))
+
180 {
+
181 id = sched.timeline[j];
+
182 }
+
183 ImGui::SameLine();
+
184 }
+
185 }
+
186 ImGui::Spacing();
+
187 }
+
188 #if TZ_DEBUG
+
189 if(!hide_internal)
+
190 {
+
191 for(std::size_t i = 0; i < 2; i++)
+
192 {
+
193 if(device.renderer_count() > i && ImGui::Button(device.get_renderer(static_cast<tz::hanval>(i)).debug_get_name().data()))
+
194 {
+
195 id = i;
+
196 display_internal_renderers = true;
+
197 }
+
198 if(i < 1)
+
199 {
+
200 ImGui::SameLine();
+
201 ImGui::TextColored(edge_implicit, " -> ");
+
202 ImGui::SameLine();
+
203 }
+
204 }
+
205 }
+
206 #endif
+
207 ImGui::Spacing();
+
208 ImGui::Indent();
+
209 ImGui::Text("("); ImGui::SameLine(); ImGui::TextColored(edge_default, "->"); ImGui::SameLine(); ImGui::Text("Default)"); ImGui::SameLine();
+
210 ImGui::Text("("); ImGui::SameLine(); ImGui::TextColored(edge_dependency, "->"); ImGui::SameLine(); ImGui::Text("Dependency)"); ImGui::SameLine();
+
211 ImGui::Text("("); ImGui::SameLine(); ImGui::TextColored(edge_renderwait, "->"); ImGui::SameLine(); ImGui::Text("Render Wait)"); ImGui::SameLine();
+
212 if(!hide_internal)
+
213 {
+
214 ImGui::Text("("); ImGui::SameLine(); ImGui::TextColored(edge_implicit, "->"); ImGui::SameLine(); ImGui::Text("Internal)");
+
215 }
+
216 ImGui::Unindent();
+
217 ImGui::EndTabItem();
+
218 }
+
219 ImGui::EndTabBar();
+
220 }
+
221 }
+
222}
+
Helper struct which the user can use to specify which inputs, resources they want and where they want...
Definition renderer.hpp:112
+
void assert(bool condition, detail::format_string fmt="<No message>", Args &&... args)
Assert on a condition.
Definition debug.inl:33
+
tz::handle< detail::renderer_tag > renderer_handle
Represents a handle for a renderer owned by an existing device.
Definition renderer.hpp:27
+
Definition schedule.hpp:15
+
Definition schedule.hpp:31
+
+ + + + diff --git a/dir_02f2e0a3d14e12ea8c919b5199048d38.html b/dir_02f2e0a3d14e12ea8c919b5199048d38.html new file mode 100644 index 0000000000..2686d415ac --- /dev/null +++ b/dir_02f2e0a3d14e12ea8c919b5199048d38.html @@ -0,0 +1,110 @@ + + + + + + + +Topaz: src/tz/core/job/impl/threadpool_lfq Directory Reference + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.1.0.1 +
+
C++20 Graphics Engine
+
+
+ + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+
threadpool_lfq Directory Reference
+
+
+ + + + +

+Files

 job.hpp
 
+
+ + + + diff --git a/dir_03d1be8c56fea626d5074aa0bf9e39b5.html b/dir_03d1be8c56fea626d5074aa0bf9e39b5.html new file mode 100644 index 0000000000..a24df9cedf --- /dev/null +++ b/dir_03d1be8c56fea626d5074aa0bf9e39b5.html @@ -0,0 +1,104 @@ + + + + + + + +Topaz: tools/tzslc/shaders Directory Reference + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.1.0.1 +
+
C++20 Graphics Engine
+
+
+ + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+
shaders Directory Reference
+
+
+
+ + + + diff --git a/dir_08a9ab9f761476898a1bf8c3b193f50f.html b/dir_08a9ab9f761476898a1bf8c3b193f50f.html new file mode 100644 index 0000000000..1d76dcc037 --- /dev/null +++ b/dir_08a9ab9f761476898a1bf8c3b193f50f.html @@ -0,0 +1,149 @@ + + + + + + + +Topaz: src/tz/core Directory Reference + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.1.0.1 +
+
C++20 Graphics Engine
+
+
+ + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+
core Directory Reference
+
+
+ + + + + + + + + + +

+Directories

 algorithms
 
 data
 
 job
 
 memory
 
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Files

 callback.hpp
 
 debug.hpp
 
 debug.inl
 
 engine_info.hpp
 
 engine_info.inl
 
 game_info.hpp
 
 imported_text.hpp
 
 macros.hpp
 
 matrix.hpp
 
 matrix.inl
 
 matrix_transform.hpp
 
 profile.hpp
 
 time.hpp
 
 types.hpp
 
 tz_core.hpp
 
+
+ + + + diff --git a/dir_16fd950ee6de1160473212027e88d072.html b/dir_16fd950ee6de1160473212027e88d072.html new file mode 100644 index 0000000000..7a8050ed31 --- /dev/null +++ b/dir_16fd950ee6de1160473212027e88d072.html @@ -0,0 +1,110 @@ + + + + + + + +Topaz: src/tz/core/job/api Directory Reference + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.1.0.1 +
+
C++20 Graphics Engine
+
+
+ + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+
api Directory Reference
+
+
+ + + + +

+Files

 job.hpp
 
+
+ + + + diff --git a/dir_173d7eb180c4d4693124e94b33941768.html b/dir_173d7eb180c4d4693124e94b33941768.html new file mode 100644 index 0000000000..0d02797b91 --- /dev/null +++ b/dir_173d7eb180c4d4693124e94b33941768.html @@ -0,0 +1,129 @@ + + + + + + + +Topaz: src/tz Directory Reference + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.1.0.1 +
+
C++20 Graphics Engine
+
+
+ + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+
tz Directory Reference
+
+
+ + + + + + + + + + + + + + + + +

+Directories

 core
 
 dbgui
 
 gl
 
 io
 
 lua
 
 ren
 
 wsi
 
+ + + + + +

+Files

 tz.hpp
 
 tz.inl
 
+
+ + + + diff --git a/dir_1a542401272435b03e55911aefd67b06.html b/dir_1a542401272435b03e55911aefd67b06.html new file mode 100644 index 0000000000..feb84b7361 --- /dev/null +++ b/dir_1a542401272435b03e55911aefd67b06.html @@ -0,0 +1,128 @@ + + + + + + + +Topaz: src/tz/gl/impl/opengl/detail Directory Reference + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.1.0.1 +
+
C++20 Graphics Engine
+
+
+ + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+
detail Directory Reference
+
+
+ + + + + + + + + + + + + + + + + + + + + + +

+Files

 buffer.hpp
 
 draw.hpp
 
 framebuffer.hpp
 
 image.hpp
 
 image_format.hpp
 
 renderbuffer.hpp
 
 sampler.hpp
 
 shader.hpp
 
 tz_opengl.hpp
 
 vertex_array.hpp
 
+
+ + + + diff --git a/dir_1c4f7d2715376c7e8e07b2905ea8081c.html b/dir_1c4f7d2715376c7e8e07b2905ea8081c.html new file mode 100644 index 0000000000..d3b8d47e08 --- /dev/null +++ b/dir_1c4f7d2715376c7e8e07b2905ea8081c.html @@ -0,0 +1,110 @@ + + + + + + + +Topaz: tools/tzslc Directory Reference + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.1.0.1 +
+
C++20 Graphics Engine
+
+
+ + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+
tzslc Directory Reference
+
+
+ + + + +

+Directories

 shaders
 
+
+ + + + diff --git a/dir_2839e2afe9c7157331d4564f06d50ecc.html b/dir_2839e2afe9c7157331d4564f06d50ecc.html new file mode 100644 index 0000000000..7ae21ce223 --- /dev/null +++ b/dir_2839e2afe9c7157331d4564f06d50ecc.html @@ -0,0 +1,112 @@ + + + + + + + +Topaz: src/tz/gl/impl/vulkan/detail/hardware Directory Reference + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.1.0.1 +
+
C++20 Graphics Engine
+
+
+ + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+
hardware Directory Reference
+
+
+ + + + + + +

+Files

 physical_device.hpp
 
 queue.hpp
 
+
+ + + + diff --git a/dir_3637b2a939f31ea398a1722df9bd7e22.html b/dir_3637b2a939f31ea398a1722df9bd7e22.html new file mode 100644 index 0000000000..ed61f6c564 --- /dev/null +++ b/dir_3637b2a939f31ea398a1722df9bd7e22.html @@ -0,0 +1,104 @@ + + + + + + + +Topaz: src/tz/ren/shaders Directory Reference + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.1.0.1 +
+
C++20 Graphics Engine
+
+
+ + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+
shaders Directory Reference
+
+
+
+ + + + diff --git a/dir_4be1570a6330a47622cf617327fcd334.html b/dir_4be1570a6330a47622cf617327fcd334.html new file mode 100644 index 0000000000..4de31d2382 --- /dev/null +++ b/dir_4be1570a6330a47622cf617327fcd334.html @@ -0,0 +1,161 @@ + + + + + + + +Topaz: src/tz/gl/impl/vulkan/detail Directory Reference + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.1.0.1 +
+
C++20 Graphics Engine
+
+
+ + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+
detail Directory Reference
+
+
+ + + + +

+Directories

 hardware
 
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Files

 buffer.hpp
 
 command.hpp
 
 debugname.hpp
 
 debugname.inl
 
 descriptors.hpp
 
 draw.hpp
 
 extensions.hpp
 
 features.hpp
 
 fence.hpp
 
 fixed_function.hpp
 
 framebuffer.hpp
 
 gpu_mem.hpp
 
 graphics_pipeline.hpp
 
 image.hpp
 
 image_format.hpp
 
 image_view.hpp
 
 logical_device.hpp
 
 pipeline_layout.hpp
 
 render_pass.hpp
 
 sampler.hpp
 
 semaphore.hpp
 
 shader.hpp
 
 swapchain.hpp
 
 tz_vulkan.hpp
 
+
+ + + + diff --git a/dir_4eeb864c4eec08c7d6b9d3b0352cfdde.html b/dir_4eeb864c4eec08c7d6b9d3b0352cfdde.html new file mode 100644 index 0000000000..1e799c4041 --- /dev/null +++ b/dir_4eeb864c4eec08c7d6b9d3b0352cfdde.html @@ -0,0 +1,104 @@ + + + + + + + +Topaz: tools Directory Reference + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.1.0.1 +
+
C++20 Graphics Engine
+
+
+ + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+
tools Directory Reference
+
+
+
+ + + + diff --git a/dir_599c755ba65617583b8f9ca84c06536f.html b/dir_599c755ba65617583b8f9ca84c06536f.html new file mode 100644 index 0000000000..27263197e7 --- /dev/null +++ b/dir_599c755ba65617583b8f9ca84c06536f.html @@ -0,0 +1,123 @@ + + + + + + + +Topaz: src/tz/wsi Directory Reference + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.1.0.1 +
+
C++20 Graphics Engine
+
+
+ + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+
wsi Directory Reference
+
+
+ + + + +

+Directories

 api
 
+ + + + + + + + + + + +

+Files

 keyboard.hpp
 
 monitor.hpp
 
 mouse.hpp
 
 window.hpp
 
 wsi.hpp
 
+
+ + + + diff --git a/dir_5a334d1c7ed1f0f36d1b8b8a8c5647cd.html b/dir_5a334d1c7ed1f0f36d1b8b8a8c5647cd.html new file mode 100644 index 0000000000..e7663c04be --- /dev/null +++ b/dir_5a334d1c7ed1f0f36d1b8b8a8c5647cd.html @@ -0,0 +1,112 @@ + + + + + + + +Topaz: src/tz/dbgui Directory Reference + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.1.0.1 +
+
C++20 Graphics Engine
+
+
+ + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+
dbgui Directory Reference
+
+
+ + + + + + +

+Files

 dbgui.hpp
 
 dbgui_imgui_config.hpp
 
+
+ + + + diff --git a/dir_5ad0a7cb5e3454bda80bf89d6e3afd8c.html b/dir_5ad0a7cb5e3454bda80bf89d6e3afd8c.html new file mode 100644 index 0000000000..68d3f8cd28 --- /dev/null +++ b/dir_5ad0a7cb5e3454bda80bf89d6e3afd8c.html @@ -0,0 +1,112 @@ + + + + + + + +Topaz: src/tz/io Directory Reference + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.1.0.1 +
+
C++20 Graphics Engine
+
+
+ + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+
io Directory Reference
+
+
+ + + + + + +

+Files

 gltf.hpp
 
 image.hpp
 
+
+ + + + diff --git a/dir_6205a33bb4c90b51df32b3d1351a5b41.html b/dir_6205a33bb4c90b51df32b3d1351a5b41.html new file mode 100644 index 0000000000..4589bbf9cd --- /dev/null +++ b/dir_6205a33bb4c90b51df32b3d1351a5b41.html @@ -0,0 +1,110 @@ + + + + + + + +Topaz: src/tz/gl/declare Directory Reference + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.1.0.1 +
+
C++20 Graphics Engine
+
+
+ + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+
declare Directory Reference
+
+
+ + + + +

+Files

 image_format.hpp
 
+
+ + + + diff --git a/dir_63b8e252d8f253b21bb5993a46e3331f.html b/dir_63b8e252d8f253b21bb5993a46e3331f.html new file mode 100644 index 0000000000..a5ef25c8c5 --- /dev/null +++ b/dir_63b8e252d8f253b21bb5993a46e3331f.html @@ -0,0 +1,104 @@ + + + + + + + +Topaz: demo/gl Directory Reference + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.1.0.1 +
+
C++20 Graphics Engine
+
+
+ + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+
gl Directory Reference
+
+
+
+ + + + diff --git a/dir_68267d1309a1af8e8297ef4c3efbcdba.html b/dir_68267d1309a1af8e8297ef4c3efbcdba.html new file mode 100644 index 0000000000..1b1fbf06cd --- /dev/null +++ b/dir_68267d1309a1af8e8297ef4c3efbcdba.html @@ -0,0 +1,110 @@ + + + + + + + +Topaz: src Directory Reference + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.1.0.1 +
+
C++20 Graphics Engine
+
+
+ + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+
src Directory Reference
+
+
+ + + + +

+Directories

 tz
 
+
+ + + + diff --git a/dir_690e214e6e61530c3684abd455794879.html b/dir_690e214e6e61530c3684abd455794879.html new file mode 100644 index 0000000000..3ee8b3897a --- /dev/null +++ b/dir_690e214e6e61530c3684abd455794879.html @@ -0,0 +1,115 @@ + + + + + + + +Topaz: src/tz/core/job Directory Reference + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.1.0.1 +
+
C++20 Graphics Engine
+
+
+ + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+
job Directory Reference
+
+
+ + + + +

+Directories

 api
 
+ + + +

+Files

 job.hpp
 
+
+ + + + diff --git a/dir_6c60afaf75e74ab2767b74a19a30396f.html b/dir_6c60afaf75e74ab2767b74a19a30396f.html new file mode 100644 index 0000000000..9b6e20c738 --- /dev/null +++ b/dir_6c60afaf75e74ab2767b74a19a30396f.html @@ -0,0 +1,110 @@ + + + + + + + +Topaz: src/tz/gl/impl/common Directory Reference + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.1.0.1 +
+
C++20 Graphics Engine
+
+
+ + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+
common Directory Reference
+
+
+ + + + +

+Files

 renderer.hpp
 
+
+ + + + diff --git a/dir_7122b68cae0d86e82e150514ab755870.html b/dir_7122b68cae0d86e82e150514ab755870.html new file mode 100644 index 0000000000..0a0a7fd2f3 --- /dev/null +++ b/dir_7122b68cae0d86e82e150514ab755870.html @@ -0,0 +1,122 @@ + + + + + + + +Topaz: src/tz/core/memory/allocators Directory Reference + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.1.0.1 +
+
C++20 Graphics Engine
+
+
+ + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+
allocators Directory Reference
+
+
+ + + + + + + + + + + + + + + + +

+Files

 adapter.hpp
 
 fallback.hpp
 
 linear.hpp
 
 malloc.hpp
 
 null.hpp
 
 stack.hpp
 
 stack.inl
 
+
+ + + + diff --git a/dir_8c219efcfe695884c877ddb6dae03642.html b/dir_8c219efcfe695884c877ddb6dae03642.html new file mode 100644 index 0000000000..6174232db9 --- /dev/null +++ b/dir_8c219efcfe695884c877ddb6dae03642.html @@ -0,0 +1,110 @@ + + + + + + + +Topaz: src/tz/core/algorithms Directory Reference + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.1.0.1 +
+
C++20 Graphics Engine
+
+
+ + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+
algorithms Directory Reference
+
+
+ + + + +

+Files

 static.hpp
 
+
+ + + + diff --git a/dir_8e01169d6f6292bd7f3d8f71a715d1a5.html b/dir_8e01169d6f6292bd7f3d8f71a715d1a5.html new file mode 100644 index 0000000000..7764a5fcfb --- /dev/null +++ b/dir_8e01169d6f6292bd7f3d8f71a715d1a5.html @@ -0,0 +1,116 @@ + + + + + + + +Topaz: src/tz/wsi/impl/linux Directory Reference + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.1.0.1 +
+
C++20 Graphics Engine
+
+
+ + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+
linux Directory Reference
+
+
+ + + + + + + + + + +

+Files

 keyboard.hpp
 
 monitor.hpp
 
 window.hpp
 
 wsi_linux.hpp
 
+
+ + + + diff --git a/dir_90fb58752be9fb1ae64073e2b3427807.html b/dir_90fb58752be9fb1ae64073e2b3427807.html new file mode 100644 index 0000000000..aaa6155fb7 --- /dev/null +++ b/dir_90fb58752be9fb1ae64073e2b3427807.html @@ -0,0 +1,123 @@ + + + + + + + +Topaz: src/tz/gl/impl/vulkan Directory Reference + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.1.0.1 +
+
C++20 Graphics Engine
+
+
+ + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+
vulkan Directory Reference
+
+
+ + + + +

+Directories

 detail
 
+ + + + + + + + + + + +

+Files

 component.hpp
 
 convert.hpp
 
 convert.inl
 
 device2.hpp
 
 renderer2.hpp
 
+
+ + + + diff --git a/dir_9eaca02b9c6ac3e186d627c155dd0218.html b/dir_9eaca02b9c6ac3e186d627c155dd0218.html new file mode 100644 index 0000000000..3f9bcec266 --- /dev/null +++ b/dir_9eaca02b9c6ac3e186d627c155dd0218.html @@ -0,0 +1,123 @@ + + + + + + + +Topaz: src/tz/gl/impl/opengl Directory Reference + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.1.0.1 +
+
C++20 Graphics Engine
+
+
+ + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+
opengl Directory Reference
+
+
+ + + + +

+Directories

 detail
 
+ + + + + + + + + + + +

+Files

 component.hpp
 
 convert.hpp
 
 convert.inl
 
 device.hpp
 
 renderer.hpp
 
+
+ + + + diff --git a/dir_ad3614566e14216ad794a62267d6851c.html b/dir_ad3614566e14216ad794a62267d6851c.html new file mode 100644 index 0000000000..3d8645d3a3 --- /dev/null +++ b/dir_ad3614566e14216ad794a62267d6851c.html @@ -0,0 +1,123 @@ + + + + + + + +Topaz: src/tz/wsi/impl/windows Directory Reference + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.1.0.1 +
+
C++20 Graphics Engine
+
+
+ + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+
windows Directory Reference
+
+
+ + + + +

+Directories

 detail
 
+ + + + + + + + + + + +

+Files

 keyboard.hpp
 
 keyboard.inl
 
 monitor.hpp
 
 window.hpp
 
 wsi_windows.hpp
 
+
+ + + + diff --git a/dir_b6c2a257bfab6380ca9b3cb94b12cb25.html b/dir_b6c2a257bfab6380ca9b3cb94b12cb25.html new file mode 100644 index 0000000000..a09a9ada47 --- /dev/null +++ b/dir_b6c2a257bfab6380ca9b3cb94b12cb25.html @@ -0,0 +1,110 @@ + + + + + + + +Topaz: demo Directory Reference + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.1.0.1 +
+
C++20 Graphics Engine
+
+
+ + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+
demo Directory Reference
+
+
+ + + + +

+Directories

 gl
 
+
+ + + + diff --git a/dir_b6f1048c6f0057577e2c84efc97e28f6.html b/dir_b6f1048c6f0057577e2c84efc97e28f6.html new file mode 100644 index 0000000000..888b1b07df --- /dev/null +++ b/dir_b6f1048c6f0057577e2c84efc97e28f6.html @@ -0,0 +1,114 @@ + + + + + + + +Topaz: src/tz/gl/impl Directory Reference + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.1.0.1 +
+
C++20 Graphics Engine
+
+
+ + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+
impl Directory Reference
+
+
+ + + + + + + + +

+Directories

 common
 
 opengl
 
 vulkan
 
+
+ + + + diff --git a/dir_b8a37355f4ff41c3494f436b52e9d1e4.html b/dir_b8a37355f4ff41c3494f436b52e9d1e4.html new file mode 100644 index 0000000000..0758961704 --- /dev/null +++ b/dir_b8a37355f4ff41c3494f436b52e9d1e4.html @@ -0,0 +1,110 @@ + + + + + + + +Topaz: src/tz/core/job/impl Directory Reference + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.1.0.1 +
+
C++20 Graphics Engine
+
+
+ + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+
impl Directory Reference
+
+
+ + + + +

+Directories

 threadpool_lfq
 
+
+ + + + diff --git a/dir_c45f7307fd1a89701e5a7df4b0292432.html b/dir_c45f7307fd1a89701e5a7df4b0292432.html new file mode 100644 index 0000000000..7f4dd36254 --- /dev/null +++ b/dir_c45f7307fd1a89701e5a7df4b0292432.html @@ -0,0 +1,135 @@ + + + + + + + +Topaz: src/tz/gl Directory Reference + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.1.0.1 +
+
C++20 Graphics Engine
+
+
+ + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+
gl Directory Reference
+
+
+ + + + + + +

+Directories

 api
 
 declare
 
+ + + + + + + + + + + + + + + + + + + + + +

+Files

 component.hpp
 
 device.hpp
 
 draw.hpp
 
 imported_shaders.hpp
 
 output.hpp
 
 renderer.hpp
 
 resource.hpp
 
 resource.inl
 
 shader.hpp
 
 tz_gl.hpp
 
+
+ + + + diff --git a/dir_c57fa511409b5efb9e786a5e24baa5f3.html b/dir_c57fa511409b5efb9e786a5e24baa5f3.html new file mode 100644 index 0000000000..f1cc806ee6 --- /dev/null +++ b/dir_c57fa511409b5efb9e786a5e24baa5f3.html @@ -0,0 +1,119 @@ + + + + + + + +Topaz: src/tz/ren Directory Reference + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.1.0.1 +
+
C++20 Graphics Engine
+
+
+ + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+
ren Directory Reference
+
+
+ + + + +

+Directories

 shaders
 
+ + + + + + + +

+Files

 anim.hpp
 
 animation.hpp
 
 mesh.hpp
 
+
+ + + + diff --git a/dir_c5afd7f4a3427178c30763104b31116d.html b/dir_c5afd7f4a3427178c30763104b31116d.html new file mode 100644 index 0000000000..4b5bc06bbd --- /dev/null +++ b/dir_c5afd7f4a3427178c30763104b31116d.html @@ -0,0 +1,112 @@ + + + + + + + +Topaz: src/tz/wsi/impl/windows/detail Directory Reference + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.1.0.1 +
+
C++20 Graphics Engine
+
+
+ + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+
detail Directory Reference
+
+
+ + + + + + +

+Files

 wgl_ext.hpp
 
 winapi.hpp
 
+
+ + + + diff --git a/dir_c99b309211028f9b549bc11f5ba411a6.html b/dir_c99b309211028f9b549bc11f5ba411a6.html new file mode 100644 index 0000000000..f304404473 --- /dev/null +++ b/dir_c99b309211028f9b549bc11f5ba411a6.html @@ -0,0 +1,138 @@ + + + + + + + +Topaz: src/tz/core/data Directory Reference + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.1.0.1 +
+
C++20 Graphics Engine
+
+
+ + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+
data Directory Reference
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Files

 basic_list.hpp
 
 enum_field.hpp
 
 enum_field.inl
 
 grid_view.hpp
 
 grid_view.inl
 
 handle.hpp
 
 polymorphic_list.hpp
 
 polymorphic_list.inl
 
 quat.hpp
 
 transform_hierarchy.hpp
 
 transform_hierarchy.inl
 
 trs.hpp
 
 vector.hpp
 
 vector.inl
 
 version.hpp
 
+
+ + + + diff --git a/dir_d2650608e6952a9513fd80a851d6a394.html b/dir_d2650608e6952a9513fd80a851d6a394.html new file mode 100644 index 0000000000..e240ee28e1 --- /dev/null +++ b/dir_d2650608e6952a9513fd80a851d6a394.html @@ -0,0 +1,121 @@ + + + + + + + +Topaz: src/tz/core/memory Directory Reference + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.1.0.1 +
+
C++20 Graphics Engine
+
+
+ + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+
memory Directory Reference
+
+
+ + + + +

+Directories

 allocators
 
+ + + + + + + + + +

+Files

 clone.hpp
 
 maybe_owned_ptr.hpp
 
 maybe_owned_ptr.inl
 
 memblk.hpp
 
+
+ + + + diff --git a/dir_ec6445c9b7ffdfd0780b9f9686149b19.html b/dir_ec6445c9b7ffdfd0780b9f9686149b19.html new file mode 100644 index 0000000000..2e20d56cd4 --- /dev/null +++ b/dir_ec6445c9b7ffdfd0780b9f9686149b19.html @@ -0,0 +1,116 @@ + + + + + + + +Topaz: src/tz/wsi/api Directory Reference + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.1.0.1 +
+
C++20 Graphics Engine
+
+
+ + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+
api Directory Reference
+
+
+ + + + + + + + + + +

+Files

 keyboard.hpp
 
 monitor.hpp
 
 mouse.hpp
 
 window.hpp
 
+
+ + + + diff --git a/dir_ed1ad2be901cc9d2bf65f822a916c2e8.html b/dir_ed1ad2be901cc9d2bf65f822a916c2e8.html new file mode 100644 index 0000000000..e76874597c --- /dev/null +++ b/dir_ed1ad2be901cc9d2bf65f822a916c2e8.html @@ -0,0 +1,114 @@ + + + + + + + +Topaz: src/tz/lua Directory Reference + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.1.0.1 +
+
C++20 Graphics Engine
+
+
+ + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+
lua Directory Reference
+
+
+ + + + + + + + +

+Files

 api.hpp
 
 lua.hpp
 
 state.hpp
 
+
+ + + + diff --git a/dir_ee9290bbb94f4eedc360bcd5845482c0.html b/dir_ee9290bbb94f4eedc360bcd5845482c0.html new file mode 100644 index 0000000000..abb62fbd47 --- /dev/null +++ b/dir_ee9290bbb94f4eedc360bcd5845482c0.html @@ -0,0 +1,124 @@ + + + + + + + +Topaz: src/tz/gl/api Directory Reference + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.1.0.1 +
+
C++20 Graphics Engine
+
+
+ + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+
api Directory Reference
+
+
+ + + + + + + + + + + + + + + + + + +

+Files

 component.hpp
 
 device.hpp
 
 device.inl
 
 output.hpp
 
 renderer.hpp
 
 resource.hpp
 
 schedule.hpp
 
 shader.hpp
 
+
+ + + + diff --git a/dir_f25169e3c3abac666585ffc445559871.html b/dir_f25169e3c3abac666585ffc445559871.html new file mode 100644 index 0000000000..183c0b1d99 --- /dev/null +++ b/dir_f25169e3c3abac666585ffc445559871.html @@ -0,0 +1,112 @@ + + + + + + + +Topaz: src/tz/wsi/impl Directory Reference + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.1.0.1 +
+
C++20 Graphics Engine
+
+
+ + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+
impl Directory Reference
+
+
+ + + + + + +

+Directories

 linux
 
 windows
 
+
+ + + + diff --git a/doc.svg b/doc.svg new file mode 100644 index 0000000000..0b928a5317 --- /dev/null +++ b/doc.svg @@ -0,0 +1,12 @@ + + + + + + + + + + + diff --git a/docd.svg b/docd.svg new file mode 100644 index 0000000000..ac18b27552 --- /dev/null +++ b/docd.svg @@ -0,0 +1,12 @@ + + + + + + + + + + + diff --git a/doxygen-awesome.css b/doxygen-awesome.css new file mode 100644 index 0000000000..d5661b65e0 --- /dev/null +++ b/doxygen-awesome.css @@ -0,0 +1,2139 @@ +/** + +Doxygen Awesome +https://github.com/jothepro/doxygen-awesome-css + +MIT License + +Copyright (c) 2021 - 2022 jothepro + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. + +*/ + +html { + /* primary theme color. This will affect the entire websites color scheme: links, arrows, labels, ... */ + --primary-color: #1779c4; + --primary-dark-color: #335c80; + --primary-light-color: #70b1e9; + + /* page base colors */ + --page-background-color: white; + --page-foreground-color: #2f4153; + --page-secondary-foreground-color: #637485; + + /* color for all separators on the website: hr, borders, ... */ + --separator-color: #dedede; + + /* border radius for all rounded components. Will affect many components, like dropdowns, memitems, codeblocks, ... */ + --border-radius-large: 8px; + --border-radius-small: 4px; + --border-radius-medium: 6px; + + /* default spacings. Most compontest reference these values for spacing, to provide uniform spacing on the page. */ + --spacing-small: 5px; + --spacing-medium: 10px; + --spacing-large: 16px; + + /* default box shadow used for raising an element above the normal content. Used in dropdowns, Searchresult, ... */ + --box-shadow: 0 2px 8px 0 rgba(0,0,0,.075); + + --odd-color: rgba(0,0,0,.028); + + /* font-families. will affect all text on the website + * font-family: the normal font for text, headlines, menus + * font-family-monospace: used for preformatted text in memtitle, code, fragments + */ + --font-family: -apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif; + --font-family-monospace: ui-monospace,SFMono-Regular,SF Mono,Menlo,Consolas,Liberation Mono,monospace; + + /* font sizes */ + --page-font-size: 15.6px; + --navigation-font-size: 14.4px; + --code-font-size: 14px; /* affects code, fragment */ + --title-font-size: 22px; + + /* content text properties. These only affect the page content, not the navigation or any other ui elements */ + --content-line-height: 27px; + /* The content is centered and constraint in it's width. To make the content fill the whole page, set the variable to auto.*/ + --content-maxwidth: 1000px; + + /* colors for various content boxes: @warning, @note, @deprecated @bug */ + --warning-color: #f8d1cc; + --warning-color-dark: #b61825; + --warning-color-darker: #75070f; + --note-color: #faf3d8; + --note-color-dark: #f3a600; + --note-color-darker: #5f4204; + --todo-color: #e4f3ff; + --todo-color-dark: #1879C4; + --todo-color-darker: #274a5c; + --deprecated-color: #ecf0f3; + --deprecated-color-dark: #5b6269; + --deprecated-color-darker: #43454a; + --bug-color: #e4dafd; + --bug-color-dark: #5b2bdd; + --bug-color-darker: #2a0d72; + --invariant-color: #d8f1e3; + --invariant-color-dark: #44b86f; + --invariant-color-darker: #265532; + + /* blockquote colors */ + --blockquote-background: #f8f9fa; + --blockquote-foreground: #636568; + + /* table colors */ + --tablehead-background: #f1f1f1; + --tablehead-foreground: var(--page-foreground-color); + + /* menu-display: block | none + * Visibility of the top navigation on screens >= 768px. On smaller screen the menu is always visible. + * `GENERATE_TREEVIEW` MUST be enabled! + */ + --menu-display: block; + + --menu-focus-foreground: var(--page-background-color); + --menu-focus-background: var(--primary-color); + --menu-selected-background: rgba(0,0,0,.05); + + + --header-background: var(--page-background-color); + --header-foreground: var(--page-foreground-color); + + /* searchbar colors */ + --searchbar-background: var(--side-nav-background); + --searchbar-foreground: var(--page-foreground-color); + + /* searchbar size + * (`searchbar-width` is only applied on screens >= 768px. + * on smaller screens the searchbar will always fill the entire screen width) */ + --searchbar-height: 33px; + --searchbar-width: 210px; + --searchbar-border-radius: var(--searchbar-height); + + /* code block colors */ + --code-background: #f5f5f5; + --code-foreground: var(--page-foreground-color); + + /* fragment colors */ + --fragment-background: #F8F9FA; + --fragment-foreground: #37474F; + --fragment-keyword: #bb6bb2; + --fragment-keywordtype: #8258b3; + --fragment-keywordflow: #d67c3b; + --fragment-token: #438a59; + --fragment-comment: #969696; + --fragment-link: #5383d6; + --fragment-preprocessor: #46aaa5; + --fragment-linenumber-color: #797979; + --fragment-linenumber-background: #f4f4f5; + --fragment-linenumber-border: #e3e5e7; + --fragment-lineheight: 20px; + + /* sidebar navigation (treeview) colors */ + --side-nav-background: #fbfbfb; + --side-nav-foreground: var(--page-foreground-color); + --side-nav-arrow-opacity: 0; + --side-nav-arrow-hover-opacity: 0.9; + + --toc-background: var(--side-nav-background); + --toc-foreground: var(--side-nav-foreground); + + /* height of an item in any tree / collapsable table */ + --tree-item-height: 30px; + + --memname-font-size: var(--code-font-size); + --memtitle-font-size: 18px; + + --webkit-scrollbar-size: 7px; + --webkit-scrollbar-padding: 4px; + --webkit-scrollbar-color: var(--separator-color); +} + +@media screen and (max-width: 767px) { + html { + --page-font-size: 16px; + --navigation-font-size: 16px; + --code-font-size: 15px; /* affects code, fragment */ + --title-font-size: 22px; + } +} + +@media (prefers-color-scheme: dark) { + html:not(.light-mode) { + color-scheme: dark; + + --primary-color: #1982d2; + --primary-dark-color: #86a9c4; + --primary-light-color: #4779ac; + + --box-shadow: 0 2px 8px 0 rgba(0,0,0,.35); + + --odd-color: rgba(100,100,100,.06); + + --menu-selected-background: rgba(0,0,0,.4); + + --page-background-color: #1C1D1F; + --page-foreground-color: #d2dbde; + --page-secondary-foreground-color: #859399; + --separator-color: #38393b; + --side-nav-background: #252628; + + --code-background: #2a2c2f; + + --tablehead-background: #2a2c2f; + + --blockquote-background: #222325; + --blockquote-foreground: #7e8c92; + + --warning-color: #2e1917; + --warning-color-dark: #ad2617; + --warning-color-darker: #f5b1aa; + --note-color: #3b2e04; + --note-color-dark: #f1b602; + --note-color-darker: #ceb670; + --todo-color: #163750; + --todo-color-dark: #1982D2; + --todo-color-darker: #dcf0fa; + --deprecated-color: #2e323b; + --deprecated-color-dark: #738396; + --deprecated-color-darker: #abb0bd; + --bug-color: #2a2536; + --bug-color-dark: #7661b3; + --bug-color-darker: #ae9ed6; + --invariant-color: #303a35; + --invariant-color-dark: #76ce96; + --invariant-color-darker: #cceed5; + + --fragment-background: #282c34; + --fragment-foreground: #dbe4eb; + --fragment-keyword: #cc99cd; + --fragment-keywordtype: #ab99cd; + --fragment-keywordflow: #e08000; + --fragment-token: #7ec699; + --fragment-comment: #999999; + --fragment-link: #98c0e3; + --fragment-preprocessor: #65cabe; + --fragment-linenumber-color: #cccccc; + --fragment-linenumber-background: #35393c; + --fragment-linenumber-border: #1f1f1f; + } +} + +/* dark mode variables are defined twice, to support both the dark-mode without and with doxygen-awesome-darkmode-toggle.js */ +html.dark-mode { + color-scheme: dark; + + --primary-color: #1982d2; + --primary-dark-color: #86a9c4; + --primary-light-color: #4779ac; + + --box-shadow: 0 2px 8px 0 rgba(0,0,0,.30); + + --odd-color: rgba(100,100,100,.06); + + --menu-selected-background: rgba(0,0,0,.4); + + --page-background-color: #1C1D1F; + --page-foreground-color: #d2dbde; + --page-secondary-foreground-color: #859399; + --separator-color: #38393b; + --side-nav-background: #252628; + + --code-background: #2a2c2f; + + --tablehead-background: #2a2c2f; + + --blockquote-background: #222325; + --blockquote-foreground: #7e8c92; + + --warning-color: #2e1917; + --warning-color-dark: #ad2617; + --warning-color-darker: #f5b1aa; + --note-color: #3b2e04; + --note-color-dark: #f1b602; + --note-color-darker: #ceb670; + --todo-color: #163750; + --todo-color-dark: #1982D2; + --todo-color-darker: #dcf0fa; + --deprecated-color: #2e323b; + --deprecated-color-dark: #738396; + --deprecated-color-darker: #abb0bd; + --bug-color: #2a2536; + --bug-color-dark: #7661b3; + --bug-color-darker: #ae9ed6; + --invariant-color: #303a35; + --invariant-color-dark: #76ce96; + --invariant-color-darker: #cceed5; + + --fragment-background: #282c34; + --fragment-foreground: #dbe4eb; + --fragment-keyword: #cc99cd; + --fragment-keywordtype: #ab99cd; + --fragment-keywordflow: #e08000; + --fragment-token: #7ec699; + --fragment-comment: #999999; + --fragment-link: #98c0e3; + --fragment-preprocessor: #65cabe; + --fragment-linenumber-color: #cccccc; + --fragment-linenumber-background: #35393c; + --fragment-linenumber-border: #1f1f1f; +} + +body { + color: var(--page-foreground-color); + background-color: var(--page-background-color); + font-size: var(--page-font-size); +} + +body, table, div, p, dl, #nav-tree .label, .title, .sm-dox a, .sm-dox a:hover, .sm-dox a:focus, #projectname, .SelectItem, #MSearchField, .navpath li.navelem a, .navpath li.navelem a:hover { + font-family: var(--font-family); +} + +h1, h2, h3, h4, h5 { + margin-top: .9em; + font-weight: 600; + line-height: initial; +} + +p, div, table, dl { + font-size: var(--page-font-size); +} + +a:link, a:visited, a:hover, a:focus, a:active { + color: var(--primary-color) !important; + font-weight: 500; +} + +a.anchor { + scroll-margin-top: var(--spacing-large); +} + +/* + Title and top navigation + */ + +#top { + background: var(--header-background); + border-bottom: 1px solid var(--separator-color); +} + +@media screen and (min-width: 768px) { + #top { + display: flex; + flex-wrap: wrap; + justify-content: space-between; + align-items: center; + } +} + +#main-nav { + flex-grow: 5; + padding: var(--spacing-small) var(--spacing-medium); +} + +#titlearea { + width: auto; + padding: var(--spacing-medium) var(--spacing-large); + background: none; + color: var(--header-foreground); + border-bottom: none; +} + +@media screen and (max-width: 767px) { + #titlearea { + padding-bottom: var(--spacing-small); + } +} + +#titlearea table tbody tr { + height: auto !important; +} + +#projectname { + font-size: var(--title-font-size); + font-weight: 600; +} + +#projectnumber { + font-family: inherit; + font-size: 60%; +} + +#projectbrief { + font-family: inherit; + font-size: 80%; +} + +#projectlogo { + vertical-align: middle; +} + +#projectlogo img { + max-height: calc(var(--title-font-size) * 2); + margin-right: var(--spacing-small); +} + +.sm-dox, .tabs, .tabs2, .tabs3 { + background: none; + padding: 0; +} + +.tabs, .tabs2, .tabs3 { + border-bottom: 1px solid var(--separator-color); + margin-bottom: -1px; +} + +@media screen and (max-width: 767px) { + .sm-dox a span.sub-arrow { + background: var(--code-background); + } + + #main-menu a.has-submenu span.sub-arrow { + color: var(--page-secondary-foreground-color); + border-radius: var(--border-radius-medium); + } + + #main-menu a.has-submenu:hover span.sub-arrow { + color: var(--page-foreground-color); + } +} + +@media screen and (min-width: 768px) { + .sm-dox li, .tablist li { + display: var(--menu-display); + } + + .sm-dox a span.sub-arrow { + border-color: var(--header-foreground) transparent transparent transparent; + } + + .sm-dox a:hover span.sub-arrow { + border-color: var(--menu-focus-foreground) transparent transparent transparent; + } + + .sm-dox ul a span.sub-arrow { + border-color: transparent transparent transparent var(--page-foreground-color); + } + + .sm-dox ul a:hover span.sub-arrow { + border-color: transparent transparent transparent var(--menu-focus-foreground); + } +} + +.sm-dox ul { + background: var(--page-background-color); + box-shadow: var(--box-shadow); + border: 1px solid var(--separator-color); + border-radius: var(--border-radius-medium) !important; + padding: var(--spacing-small); + animation: ease-out 150ms slideInMenu; +} + +@keyframes slideInMenu { + from { + opacity: 0; + transform: translate(0px, -2px); + } + + to { + opacity: 1; + transform: translate(0px, 0px); + } +} + +.sm-dox ul a { + color: var(--page-foreground-color) !important; + background: var(--page-background-color); + font-size: var(--navigation-font-size); +} + +.sm-dox>li>ul:after { + border-bottom-color: var(--page-background-color) !important; +} + +.sm-dox>li>ul:before { + border-bottom-color: var(--separator-color) !important; +} + +.sm-dox ul a:hover, .sm-dox ul a:active, .sm-dox ul a:focus { + font-size: var(--navigation-font-size) !important; + color: var(--menu-focus-foreground) !important; + text-shadow: none; + background-color: var(--menu-focus-background); + border-radius: var(--border-radius-small) !important; +} + +.sm-dox a, .sm-dox a:focus, .tablist li, .tablist li a, .tablist li.current a { + text-shadow: none; + background: transparent; + background-image: none !important; + color: var(--header-foreground) !important; + font-weight: normal; + font-size: var(--navigation-font-size); + border-radius: var(--border-radius-small) !important; +} + +.sm-dox a:focus { + outline: auto; +} + +.sm-dox a:hover, .sm-dox a:active, .tablist li a:hover { + text-shadow: none; + font-weight: normal; + background: var(--menu-focus-background); + color: var(--menu-focus-foreground) !important; + border-radius: var(--border-radius-small) !important; + font-size: var(--navigation-font-size); +} + +.tablist li.current { + border-radius: var(--border-radius-small); + background: var(--menu-selected-background); +} + +.tablist li { + margin: var(--spacing-small) 0 var(--spacing-small) var(--spacing-small); +} + +.tablist a { + padding: 0 var(--spacing-large); +} + + +/* + Search box + */ + +#MSearchBox { + height: var(--searchbar-height); + background: var(--searchbar-background); + border-radius: var(--searchbar-border-radius); + border: 1px solid var(--separator-color); + overflow: hidden; + width: var(--searchbar-width); + position: relative; + box-shadow: none; + display: block; + margin-top: 0; +} + +.left #MSearchSelect { + left: 0; + user-select: none; +} + +.SelectionMark { + user-select: none; +} + +.tabs .left #MSearchSelect { + padding-left: 0; +} + +.tabs #MSearchBox { + position: absolute; + right: var(--spacing-medium); +} + +@media screen and (max-width: 767px) { + .tabs #MSearchBox { + position: relative; + right: 0; + margin-left: var(--spacing-medium); + margin-top: 0; + } +} + +#MSearchSelectWindow, #MSearchResultsWindow { + z-index: 9999; +} + +#MSearchBox.MSearchBoxActive { + border-color: var(--primary-color); + box-shadow: inset 0 0 0 1px var(--primary-color); +} + +#main-menu > li:last-child { + margin-right: 0; +} + +@media screen and (max-width: 767px) { + #main-menu > li:last-child { + height: 50px; + } +} + +#MSearchField { + font-size: var(--navigation-font-size); + height: calc(var(--searchbar-height) - 2px); + background: transparent; + width: calc(var(--searchbar-width) - 64px); +} + +.MSearchBoxActive #MSearchField { + color: var(--searchbar-foreground); +} + +#MSearchSelect { + top: calc(calc(var(--searchbar-height) / 2) - 11px); +} + +.left #MSearchSelect { + padding-left: 8px; +} + +#MSearchBox span.left, #MSearchBox span.right { + background: none; +} + +#MSearchBox span.right { + padding-top: calc(calc(var(--searchbar-height) / 2) - 12px); + position: absolute; + right: var(--spacing-small); +} + +.tabs #MSearchBox span.right { + top: calc(calc(var(--searchbar-height) / 2) - 12px); +} + +@keyframes slideInSearchResults { + from { + opacity: 0; + transform: translate(0, 15px); + } + + to { + opacity: 1; + transform: translate(0, 20px); + } +} + +#MSearchResultsWindow { + left: auto !important; + right: var(--spacing-medium); + border-radius: var(--border-radius-large); + border: 1px solid var(--separator-color); + transform: translate(0, 20px); + box-shadow: var(--box-shadow); + animation: ease-out 280ms slideInSearchResults; + background: var(--page-background-color); +} + +iframe#MSearchResults { + margin: 4px; +} + +iframe { + color-scheme: normal; +} + +@media (prefers-color-scheme: dark) { + html:not(.light-mode) iframe#MSearchResults { + filter: invert() hue-rotate(180deg); + } +} + +html.dark-mode iframe#MSearchResults { + filter: invert() hue-rotate(180deg); +} + +#MSearchSelectWindow { + border: 1px solid var(--separator-color); + border-radius: var(--border-radius-medium); + box-shadow: var(--box-shadow); + background: var(--page-background-color); + padding-top: var(--spacing-small); + padding-bottom: var(--spacing-small); +} + +#MSearchSelectWindow a.SelectItem { + font-size: var(--navigation-font-size); + line-height: var(--content-line-height); + margin: 0 var(--spacing-small); + border-radius: var(--border-radius-small); + color: var(--page-foreground-color) !important; + font-weight: normal; +} + +#MSearchSelectWindow a.SelectItem:hover { + background: var(--menu-focus-background); + color: var(--menu-focus-foreground) !important; +} + +@media screen and (max-width: 767px) { + #MSearchBox { + margin-top: var(--spacing-medium); + margin-bottom: var(--spacing-medium); + width: calc(100vw - 30px); + } + + #main-menu > li:last-child { + float: none !important; + } + + #MSearchField { + width: calc(100vw - 110px); + } + + @keyframes slideInSearchResultsMobile { + from { + opacity: 0; + transform: translate(0, 15px); + } + + to { + opacity: 1; + transform: translate(0, 20px); + } + } + + #MSearchResultsWindow { + left: var(--spacing-medium) !important; + right: var(--spacing-medium); + overflow: auto; + transform: translate(0, 20px); + animation: ease-out 280ms slideInSearchResultsMobile; + } + + /* + * Overwrites for fixing the searchbox on mobile in doxygen 1.9.2 + */ + label.main-menu-btn ~ #searchBoxPos1 { + top: 3px !important; + right: 6px !important; + left: 45px; + display: flex; + } + + label.main-menu-btn ~ #searchBoxPos1 > #MSearchBox { + margin-top: 0; + margin-bottom: 0; + flex-grow: 2; + float: left; + } +} + +/* + Tree view + */ + +#side-nav { + padding: 0 !important; + background: var(--side-nav-background); +} + +@media screen and (max-width: 767px) { + #side-nav { + display: none; + } + + #doc-content { + margin-left: 0 !important; + } +} + +#nav-tree { + background: transparent; +} + +#nav-tree .label { + font-size: var(--navigation-font-size); +} + +#nav-tree .item { + height: var(--tree-item-height); + line-height: var(--tree-item-height); +} + +#nav-sync { + bottom: 12px; + right: 12px; + top: auto !important; + user-select: none; +} + +#nav-tree .selected { + text-shadow: none; + background-image: none; + background-color: transparent; + position: relative; +} + +#nav-tree .selected::after { + content: ""; + position: absolute; + top: 1px; + bottom: 1px; + left: 0; + width: 4px; + border-radius: 0 var(--border-radius-small) var(--border-radius-small) 0; + background: var(--primary-color); +} + + +#nav-tree a { + color: var(--side-nav-foreground) !important; + font-weight: normal; +} + +#nav-tree a:focus { + outline-style: auto; +} + +#nav-tree .arrow { + opacity: var(--side-nav-arrow-opacity); +} + +.arrow { + color: inherit; + cursor: pointer; + font-size: 45%; + vertical-align: middle; + margin-right: 2px; + font-family: serif; + height: auto; + text-align: right; +} + +#nav-tree div.item:hover .arrow, #nav-tree a:focus .arrow { + opacity: var(--side-nav-arrow-hover-opacity); +} + +#nav-tree .selected a { + color: var(--primary-color) !important; + font-weight: bolder; + font-weight: 600; +} + +.ui-resizable-e { + background: var(--separator-color); + width: 1px; +} + +/* + Contents + */ + +div.header { + border-bottom: 1px solid var(--separator-color); + background-color: var(--page-background-color); + background-image: none; +} + +/* +* HH disable. +div.contents, div.header .title, div.header .summary { + max-width: var(--content-maxwidth); +} +*/ + +div.contents, div.header .title { + line-height: initial; + /*margin: calc(var(--spacing-medium) + .2em) auto var(--spacing-medium) auto;*/ + margin-left: var(--spacing-large) +} + +div.header .summary { + margin: var(--spacing-medium) auto 0 auto; +} + +div.headertitle { + padding: 0; +} + +div.header .title { + font-weight: 600; + font-size: 210%; + padding: var(--spacing-medium) var(--spacing-large); + word-break: break-word; +} + +div.header .summary { + width: auto; + display: block; + float: none; + padding: 0 var(--spacing-large); +} + +td.memSeparator { + border-color: var(--separator-color); +} + +span.mlabel { + background: var(--primary-color); + border: none; + padding: 4px 9px; + border-radius: 12px; + margin-right: var(--spacing-medium); +} + +span.mlabel:last-of-type { + margin-right: 2px; +} + +div.contents { + padding: 0 var(--spacing-large); +} + +div.contents p, div.contents li { + line-height: var(--content-line-height); +} + +div.contents div.dyncontent { + margin: var(--spacing-medium) 0; +} + +@media (prefers-color-scheme: dark) { + html:not(.light-mode) div.contents div.dyncontent img, + html:not(.light-mode) div.contents center img, + html:not(.light-mode) div.contents table img, + html:not(.light-mode) div.contents div.dyncontent iframe, + html:not(.light-mode) div.contents center iframe, + html:not(.light-mode) div.contents table iframe { + filter: hue-rotate(180deg) invert(); + } +} + +html.dark-mode div.contents div.dyncontent img, +html.dark-mode div.contents center img, +html.dark-mode div.contents table img, +html.dark-mode div.contents div.dyncontent iframe, +html.dark-mode div.contents center iframe, +html.dark-mode div.contents table iframe { + filter: hue-rotate(180deg) invert(); +} + +h2.groupheader { + border-bottom: 0px; + color: var(--page-foreground-color); + box-shadow: + 100px 0 var(--page-background-color), + -100px 0 var(--page-background-color), + 100px 0.75px var(--separator-color), + -100px 0.75px var(--separator-color), + 500px 0 var(--page-background-color), + -500px 0 var(--page-background-color), + 500px 0.75px var(--separator-color), + -500px 0.75px var(--separator-color), + 1500px 0 var(--page-background-color), + -1500px 0 var(--page-background-color), + 1500px 0.75px var(--separator-color), + -1500px 0.75px var(--separator-color), + 2000px 0 var(--page-background-color), + -2000px 0 var(--page-background-color), + 2000px 0.75px var(--separator-color), + -2000px 0.75px var(--separator-color); +} + +blockquote { + margin: 0 var(--spacing-medium) 0 var(--spacing-medium); + padding: var(--spacing-small) var(--spacing-large); + background: var(--blockquote-background); + color: var(--blockquote-foreground); + border-left: 0; + overflow: visible; + border-radius: var(--border-radius-medium); + overflow: visible; + position: relative; +} + +blockquote::before, blockquote::after { + font-weight: bold; + font-family: serif; + font-size: 360%; + opacity: .15; + position: absolute; +} + +blockquote::before { + content: "“"; + left: -10px; + top: 4px; +} + +blockquote::after { + content: "”"; + right: -8px; + bottom: -25px; +} + +blockquote p { + margin: var(--spacing-small) 0 var(--spacing-medium) 0; +} +.paramname { + font-weight: 600; + color: var(--primary-dark-color); +} + +.paramname > code { + border: 0; +} + +table.params .paramname { + font-weight: 600; + font-family: var(--font-family-monospace); + font-size: var(--code-font-size); + padding-right: var(--spacing-small); +} + +.glow { + text-shadow: 0 0 15px var(--primary-light-color) !important; +} + +.alphachar a { + color: var(--page-foreground-color); +} + +/* + Table of Contents + */ + +div.toc { + z-index: 10; + position: relative; + background-color: var(--toc-background); + border: 1px solid var(--separator-color); + border-radius: var(--border-radius-medium); + box-shadow: var(--box-shadow); + padding: 0 var(--spacing-large); + margin: 0 0 var(--spacing-medium) var(--spacing-medium); +} + +div.toc h3 { + color: var(--toc-foreground); + font-size: var(--navigation-font-size); + margin: var(--spacing-large) 0; +} + +div.toc li { + font-size: var(--navigation-font-size); + padding: 0; + background: none; +} + +div.toc li:before { + content: '↓'; + font-weight: 800; + font-family: var(--font-family); + margin-right: var(--spacing-small); + color: var(--toc-foreground); + opacity: .4; +} + +div.toc ul li.level1 { + margin: 0; +} + +div.toc ul li.level2, div.toc ul li.level3 { + margin-top: 0; +} + + +@media screen and (max-width: 767px) { + div.toc { + float: none; + width: auto; + margin: 0 0 var(--spacing-medium) 0; + } +} + +/* + Code & Fragments + */ + +code, div.fragment, pre.fragment { + border-radius: var(--border-radius-small); + border: 1px solid var(--separator-color); + overflow: hidden; +} + +code { + display: inline; + background: var(--code-background); + color: var(--code-foreground); + padding: 2px 6px; + word-break: break-word; +} + +div.fragment, pre.fragment { + margin: var(--spacing-medium) 0; + padding: calc(var(--spacing-large) - (var(--spacing-large) / 6)) var(--spacing-large); + background: var(--fragment-background); + color: var(--fragment-foreground); + overflow-x: auto; +} + +@media screen and (max-width: 767px) { + div.fragment, pre.fragment { + border-top-right-radius: 0; + border-bottom-right-radius: 0; + border-right: 0; + } + + .contents > div.fragment, + .textblock > div.fragment, + .textblock > pre.fragment, + .contents > .doxygen-awesome-fragment-wrapper > div.fragment, + .textblock > .doxygen-awesome-fragment-wrapper > div.fragment, + .textblock > .doxygen-awesome-fragment-wrapper > pre.fragment { + margin: var(--spacing-medium) calc(0px - var(--spacing-large)); + border-radius: 0; + border-left: 0; + } + + .textblock li > .fragment, + .textblock li > .doxygen-awesome-fragment-wrapper > .fragment { + margin: var(--spacing-medium) calc(0px - var(--spacing-large)); + } + + .memdoc li > .fragment, + .memdoc li > .doxygen-awesome-fragment-wrapper > .fragment { + margin: var(--spacing-medium) calc(0px - var(--spacing-medium)); + } + + .textblock ul, .memdoc ul { + overflow: initial; + } + + .memdoc > div.fragment, + .memdoc > pre.fragment, + dl dd > div.fragment, + dl dd pre.fragment, + .memdoc > .doxygen-awesome-fragment-wrapper > div.fragment, + .memdoc > .doxygen-awesome-fragment-wrapper > pre.fragment, + dl dd > .doxygen-awesome-fragment-wrapper > div.fragment, + dl dd .doxygen-awesome-fragment-wrapper > pre.fragment { + margin: var(--spacing-medium) calc(0px - var(--spacing-medium)); + border-radius: 0; + border-left: 0; + } +} + +code, code a, pre.fragment, div.fragment, div.fragment .line, div.fragment span, div.fragment .line a, div.fragment .line span { + font-family: var(--font-family-monospace); + font-size: var(--code-font-size) !important; +} + +div.line:after { + margin-right: var(--spacing-medium); +} + +div.fragment .line, pre.fragment { + white-space: pre; + word-wrap: initial; + line-height: var(--fragment-lineheight); +} + +div.fragment span.keyword { + color: var(--fragment-keyword); +} + +div.fragment span.keywordtype { + color: var(--fragment-keywordtype); +} + +div.fragment span.keywordflow { + color: var(--fragment-keywordflow); +} + +div.fragment span.stringliteral { + color: var(--fragment-token) +} + +div.fragment span.comment { + color: var(--fragment-comment); +} + +div.fragment a.code { + color: var(--fragment-link) !important; +} + +div.fragment span.preprocessor { + color: var(--fragment-preprocessor); +} + +div.fragment span.lineno { + display: inline-block; + width: 27px; + border-right: none; + background: var(--fragment-linenumber-background); + color: var(--fragment-linenumber-color); +} + +div.fragment span.lineno a { + background: none; + color: var(--fragment-link) !important; +} + +div.fragment .line:first-child .lineno { + box-shadow: -999999px 0px 0 999999px var(--fragment-linenumber-background), -999998px 0px 0 999999px var(--fragment-linenumber-border); +} + +/* + dl warning, attention, note, deprecated, bug, ... + */ + +dl.bug dt a, dl.deprecated dt a, dl.todo dt a { + font-weight: bold !important; +} + +dl.warning, dl.attention, dl.note, dl.deprecated, dl.bug, dl.invariant, dl.pre, dl.todo, dl.remark { + padding: var(--spacing-medium); + margin: var(--spacing-medium) 0; + color: var(--page-background-color); + overflow: hidden; + margin-left: 0; + border-radius: var(--border-radius-small); +} + +dl.section dd { + margin-bottom: 2px; +} + +dl.warning, dl.attention { + background: var(--warning-color); + border-left: 8px solid var(--warning-color-dark); + color: var(--warning-color-darker); +} + +dl.warning dt, dl.attention dt { + color: var(--warning-color-dark); +} + +dl.note, dl.remark { + background: var(--note-color); + border-left: 8px solid var(--note-color-dark); + color: var(--note-color-darker); +} + +dl.note dt, dl.remark dt { + color: var(--note-color-dark); +} + +dl.todo { + background: var(--todo-color); + border-left: 8px solid var(--todo-color-dark); + color: var(--todo-color-darker); +} + +dl.todo dt { + color: var(--todo-color-dark); +} + +dl.bug dt a { + color: var(--todo-color-dark) !important; +} + +dl.bug { + background: var(--bug-color); + border-left: 8px solid var(--bug-color-dark); + color: var(--bug-color-darker); +} + +dl.bug dt a { + color: var(--bug-color-dark) !important; +} + +dl.deprecated { + background: var(--deprecated-color); + border-left: 8px solid var(--deprecated-color-dark); + color: var(--deprecated-color-darker); +} + +dl.deprecated dt a { + color: var(--deprecated-color-dark) !important; +} + +dl.section dd, dl.bug dd, dl.deprecated dd, dl.todo dd { + margin-inline-start: 0px; +} + +dl.invariant, dl.pre { + background: var(--invariant-color); + border-left: 8px solid var(--invariant-color-dark); + color: var(--invariant-color-darker); +} + +dl.invariant dt, dl.pre dt { + color: var(--invariant-color-dark); +} + +/* + memitem + */ + +div.memdoc, div.memproto, h2.memtitle { + box-shadow: none; + background-image: none; + border: none; +} + +div.memdoc { + padding: 0 var(--spacing-medium); + background: var(--page-background-color); +} + +h2.memtitle, div.memitem { + border: 1px solid var(--separator-color); + box-shadow: var(--box-shadow); +} + +h2.memtitle { + box-shadow: 0px var(--spacing-medium) 0 -1px var(--fragment-background), var(--box-shadow); +} + +div.memitem { + transition: none; +} + +div.memproto, h2.memtitle { + background: var(--fragment-background); + text-shadow: none; +} + +h2.memtitle { + font-weight: 500; + font-size: var(--memtitle-font-size); + font-family: var(--font-family-monospace); + border-bottom: none; + border-top-left-radius: var(--border-radius-medium); + border-top-right-radius: var(--border-radius-medium); + word-break: break-all; + position: relative; +} + +h2.memtitle:after { + content: ""; + display: block; + background: var(--fragment-background); + height: var(--spacing-medium); + bottom: calc(0px - var(--spacing-medium)); + left: 0; + right: -14px; + position: absolute; + border-top-right-radius: var(--border-radius-medium); +} + +h2.memtitle > span.permalink { + font-size: inherit; +} + +h2.memtitle > span.permalink > a { + text-decoration: none; + padding-left: 3px; + margin-right: -4px; + user-select: none; + display: inline-block; + margin-top: -6px; +} + +h2.memtitle > span.permalink > a:hover { + color: var(--primary-dark-color) !important; +} + +a:target + h2.memtitle, a:target + h2.memtitle + div.memitem { + border-color: var(--primary-light-color); +} + +div.memitem { + border-top-right-radius: var(--border-radius-medium); + border-bottom-right-radius: var(--border-radius-medium); + border-bottom-left-radius: var(--border-radius-medium); + overflow: hidden; + display: block !important; +} + +div.memdoc { + border-radius: 0; +} + +div.memproto { + border-radius: 0 var(--border-radius-small) 0 0; + overflow: auto; + border-bottom: 1px solid var(--separator-color); + padding: var(--spacing-medium); + margin-bottom: -1px; +} + +div.memtitle { + border-top-right-radius: var(--border-radius-medium); + border-top-left-radius: var(--border-radius-medium); +} + +div.memproto table.memname { + font-family: var(--font-family-monospace); + color: var(--page-foreground-color); + font-size: var(--memname-font-size); +} + +div.memproto div.memtemplate { + font-family: var(--font-family-monospace); + color: var(--primary-dark-color); + font-size: var(--memname-font-size); + margin-left: 2px; +} + +table.mlabels, table.mlabels > tbody { + display: block; +} + +td.mlabels-left { + width: auto; +} + +td.mlabels-right { + margin-top: 3px; + position: sticky; + left: 0; +} + +table.mlabels > tbody > tr:first-child { + display: flex; + justify-content: space-between; + flex-wrap: wrap; +} + +.memname, .memitem span.mlabels { + margin: 0 +} + +/* + reflist + */ + +dl.reflist { + box-shadow: var(--box-shadow); + border-radius: var(--border-radius-medium); + border: 1px solid var(--separator-color); + overflow: hidden; + padding: 0; +} + + +dl.reflist dt, dl.reflist dd { + box-shadow: none; + text-shadow: none; + background-image: none; + border: none; + padding: 12px; +} + + +dl.reflist dt { + font-weight: 500; + border-radius: 0; + background: var(--code-background); + border-bottom: 1px solid var(--separator-color); + color: var(--page-foreground-color) +} + + +dl.reflist dd { + background: none; +} + +/* + Table + */ + +.contents table:not(.memberdecls):not(.mlabels):not(.fieldtable):not(.memname) { + display: inline-block; + max-width: 100%; + } + +.contents > table:not(.memberdecls):not(.mlabels):not(.fieldtable):not(.memname):not(.classindex) { + margin-left: calc(0px - var(--spacing-large)); + margin-right: calc(0px - var(--spacing-large)); + max-width: calc(100% + 2 * var(--spacing-large)); +} + +table.markdownTable, table.fieldtable { + border: none; + margin: var(--spacing-medium) 0; + box-shadow: 0 0 0 1px var(--separator-color); + border-radius: var(--border-radius-small); +} + +table.fieldtable { + width: 100%; +} + +th.markdownTableHeadLeft, th.markdownTableHeadRight, th.markdownTableHeadCenter, th.markdownTableHeadNone { + background: var(--tablehead-background); + color: var(--tablehead-foreground); + font-weight: 600; + font-size: var(--page-font-size); +} + +th.markdownTableHeadLeft:first-child, th.markdownTableHeadRight:first-child, th.markdownTableHeadCenter:first-child, th.markdownTableHeadNone:first-child { + border-top-left-radius: var(--border-radius-small); +} + +th.markdownTableHeadLeft:last-child, th.markdownTableHeadRight:last-child, th.markdownTableHeadCenter:last-child, th.markdownTableHeadNone:last-child { + border-top-right-radius: var(--border-radius-small); +} + +table.markdownTable td, table.markdownTable th, table.fieldtable dt { + border: none; + border-right: 1px solid var(--separator-color); + padding: var(--spacing-small) var(--spacing-medium); +} + +table.markdownTable td:last-child, table.markdownTable th:last-child, table.fieldtable dt:last-child { + border: none; +} + +table.markdownTable tr, table.markdownTable tr { + border-bottom: 1px solid var(--separator-color); +} + +table.markdownTable tr:last-child, table.markdownTable tr:last-child { + border-bottom: none; +} + +table.fieldtable th { + font-size: var(--page-font-size); + font-weight: 600; + background-image: none; + background-color: var(--tablehead-background); + color: var(--tablehead-foreground); + border-bottom: 1px solid var(--separator-color); +} + +.fieldtable td.fieldtype, .fieldtable td.fieldname { + border-bottom: 1px solid var(--separator-color); + border-right: 1px solid var(--separator-color); +} + +.fieldtable td.fielddoc { + border-bottom: 1px solid var(--separator-color); +} + +.memberdecls td.glow, .fieldtable tr.glow { + background-color: var(--primary-light-color); + box-shadow: 0 0 15px var(--primary-light-color); +} + +table.memberdecls { + display: block; +} + +table.memberdecls tr[class^='memitem'] { + font-family: var(--font-family-monospace); + font-size: var(--code-font-size); +} + +table.memberdecls tr[class^='memitem'] .memTemplParams { + font-family: var(--font-family-monospace); + font-size: var(--code-font-size); + color: var(--primary-dark-color); +} + +table.memberdecls .memItemLeft, +table.memberdecls .memItemRight, +table.memberdecls .memTemplItemLeft, +table.memberdecls .memTemplItemRight, +table.memberdecls .memTemplParams { + transition: none; + padding-top: var(--spacing-small); + padding-bottom: var(--spacing-small); + border-top: 1px solid var(--separator-color); + border-bottom: 1px solid var(--separator-color); + background-color: var(--fragment-background); +} + +table.memberdecls .memTemplItemLeft, +table.memberdecls .memTemplItemRight { + padding-top: 2px; +} + +table.memberdecls .memTemplParams { + border-bottom: 0; + border-left: 1px solid var(--separator-color); + border-right: 1px solid var(--separator-color); + border-radius: var(--border-radius-small) var(--border-radius-small) 0 0; + padding-bottom: 0; +} + +table.memberdecls .memTemplItemLeft { + border-radius: 0 0 0 var(--border-radius-small); + border-left: 1px solid var(--separator-color); + border-top: 0; +} + +table.memberdecls .memTemplItemRight { + border-radius: 0 0 var(--border-radius-small) 0; + border-right: 1px solid var(--separator-color); + border-top: 0; +} + +table.memberdecls .memItemLeft { + border-radius: var(--border-radius-small) 0 0 var(--border-radius-small); + border-left: 1px solid var(--separator-color); + padding-left: var(--spacing-medium); + padding-right: 0; +} + +table.memberdecls .memItemRight { + border-radius: 0 var(--border-radius-small) var(--border-radius-small) 0; + border-right: 1px solid var(--separator-color); + padding-right: var(--spacing-medium); + padding-left: 0; + +} + +table.memberdecls .mdescLeft, table.memberdecls .mdescRight { + background: none; + color: var(--page-foreground-color); + padding: var(--spacing-small) 0; +} + +table.memberdecls .memSeparator { + background: var(--page-background-color); + height: var(--spacing-large); + border: 0; + transition: none; +} + +table.memberdecls .groupheader { + margin-bottom: var(--spacing-large); +} + +table.memberdecls .inherit_header td { + padding: 0 0 var(--spacing-medium) 0; + text-indent: -12px; + line-height: 1.5em; + color: var(--page-secondary-foreground-color); +} + +@media screen and (max-width: 767px) { + + table.memberdecls .memItemLeft, + table.memberdecls .memItemRight, + table.memberdecls .mdescLeft, + table.memberdecls .mdescRight, + table.memberdecls .memTemplItemLeft, + table.memberdecls .memTemplItemRight, + table.memberdecls .memTemplParams { + display: block; + text-align: left; + padding-left: var(--spacing-large); + margin: 0 calc(0px - var(--spacing-large)) 0 calc(0px - var(--spacing-large)); + border-right: none; + border-left: none; + border-radius: 0; + } + + table.memberdecls .memItemLeft, + table.memberdecls .mdescLeft, + table.memberdecls .memTemplItemLeft { + border-bottom: 0; + padding-bottom: 0; + } + + table.memberdecls .memTemplItemLeft { + padding-top: 0; + } + + table.memberdecls .mdescLeft { + margin-top: calc(0px - var(--page-font-size)); + } + + table.memberdecls .memItemRight, + table.memberdecls .mdescRight, + table.memberdecls .memTemplItemRight { + border-top: 0; + padding-top: 0; + padding-right: var(--spacing-large); + overflow-x: auto; + } + + table.memberdecls tr[class^='memitem']:not(.inherit) { + display: block; + width: calc(100vw - 2 * var(--spacing-large)); + } + + table.memberdecls .mdescRight { + color: var(--page-foreground-color); + } + + table.memberdecls tr.inherit { + visibility: hidden; + } + + table.memberdecls tr[style="display: table-row;"] { + display: block !important; + visibility: visible; + width: calc(100vw - 2 * var(--spacing-large)); + animation: fade .5s; + } + + @keyframes fade { + 0% { + opacity: 0; + max-height: 0; + } + + 100% { + opacity: 1; + max-height: 200px; + } + } +} + + +/* + Horizontal Rule + */ + +hr { + margin-top: var(--spacing-large); + margin-bottom: var(--spacing-large); + height: 1px; + background-color: var(--separator-color); + border: 0; +} + +.contents hr { + box-shadow: 100px 0 0 var(--separator-color), + -100px 0 0 var(--separator-color), + 500px 0 0 var(--separator-color), + -500px 0 0 var(--separator-color), + 1500px 0 0 var(--separator-color), + -1500px 0 0 var(--separator-color), + 2000px 0 0 var(--separator-color), + -2000px 0 0 var(--separator-color); +} + +.contents img, .contents .center, .contents center, .contents div.image object { + max-width: 100%; + overflow: auto; +} + +@media screen and (max-width: 767px) { + .contents .dyncontent > .center, .contents > center { + margin-left: calc(0px - var(--spacing-large)); + margin-right: calc(0px - var(--spacing-large)); + max-width: calc(100% + 2 * var(--spacing-large)); + } +} + +/* + Directories + */ +div.directory { + border-top: 1px solid var(--separator-color); + border-bottom: 1px solid var(--separator-color); + width: auto; +} + +table.directory { + font-family: var(--font-family); + font-size: var(--page-font-size); + font-weight: normal; + width: 100%; +} + +table.directory td.entry { + padding: var(--spacing-small); +} + +table.directory td.desc { + min-width: 250px; +} + +table.directory tr.even { + background-color: var(--odd-color); +} + +.icona { + width: auto; + height: auto; + margin: 0 var(--spacing-small); +} + +.icon { + background: var(--primary-color); + width: 18px; + height: 18px; + line-height: 18px; +} + +.iconfopen, .icondoc, .iconfclosed { + background-position: center; + margin-bottom: 0; +} + +.icondoc { + filter: saturate(0.2); +} + +@media screen and (max-width: 767px) { + div.directory { + margin-left: calc(0px - var(--spacing-large)); + margin-right: calc(0px - var(--spacing-large)); + } +} + +@media (prefers-color-scheme: dark) { + html:not(.light-mode) .iconfopen, html:not(.light-mode) .iconfclosed { + filter: hue-rotate(180deg) invert(); + } +} + +html.dark-mode .iconfopen, html.dark-mode .iconfclosed { + filter: hue-rotate(180deg) invert(); +} + +/* + Class list + */ + +.classindex dl.odd { + background: var(--odd-color); + border-radius: var(--border-radius-small); +} + +/* + Class Index Doxygen 1.8 +*/ + +table.classindex { + margin-left: 0; + margin-right: 0; + width: 100%; +} + +table.classindex table div.ah { + background-image: none; + background-color: initial; + border-color: var(--separator-color); + color: var(--page-foreground-color); + box-shadow: var(--box-shadow); + border-radius: var(--border-radius-large); + padding: var(--spacing-small); +} + +div.qindex { + background-color: var(--odd-color); + border-radius: var(--border-radius-small); + border: 1px solid var(--separator-color); + padding: var(--spacing-small) 0; +} + +/* + Footer and nav-path + */ + +#nav-path { + width: 100%; +} + +#nav-path ul { + background-image: none; + background: var(--page-background-color); + border: none; + border-top: 1px solid var(--separator-color); + border-bottom: 1px solid var(--separator-color); + border-bottom: 0; + box-shadow: 0 0.75px 0 var(--separator-color); + font-size: var(--navigation-font-size); +} + +img.footer { + width: 60px; +} + +.navpath li.footer { + color: var(--page-secondary-foreground-color); +} + +address.footer { + color: var(--page-secondary-foreground-color); + margin-bottom: var(--spacing-large); +} + +#nav-path li.navelem { + background-image: none; + display: flex; + align-items: center; +} + +.navpath li.navelem a { + text-shadow: none; + display: inline-block; + color: var(--primary-color) !important; +} + +.navpath li.navelem b { + color: var(--primary-dark-color); + font-weight: 500; +} + +li.navelem { + padding: 0; + margin-left: -8px; +} + +li.navelem:first-child { + margin-left: var(--spacing-large); +} + +li.navelem:first-child:before { + display: none; +} + +#nav-path li.navelem:after { + content: ''; + border: 5px solid var(--page-background-color); + border-bottom-color: transparent; + border-right-color: transparent; + border-top-color: transparent; + transform: translateY(-1px) scaleY(4.2); + z-index: 10; + margin-left: 6px; +} + +#nav-path li.navelem:before { + content: ''; + border: 5px solid var(--separator-color); + border-bottom-color: transparent; + border-right-color: transparent; + border-top-color: transparent; + transform: translateY(-1px) scaleY(3.2); + margin-right: var(--spacing-small); +} + +.navpath li.navelem a:hover { + color: var(--primary-color); +} + +/* + Scrollbars for Webkit +*/ + +#nav-tree::-webkit-scrollbar, +div.fragment::-webkit-scrollbar, +pre.fragment::-webkit-scrollbar, +div.memproto::-webkit-scrollbar, +.contents center::-webkit-scrollbar, +.contents .center::-webkit-scrollbar, +.contents table:not(.memberdecls):not(.mlabels):not(.fieldtable):not(.memname)::-webkit-scrollbar { + width: calc(var(--webkit-scrollbar-size) + var(--webkit-scrollbar-padding) + var(--webkit-scrollbar-padding)); + height: calc(var(--webkit-scrollbar-size) + var(--webkit-scrollbar-padding) + var(--webkit-scrollbar-padding)); +} + +#nav-tree::-webkit-scrollbar-thumb, +div.fragment::-webkit-scrollbar-thumb, +pre.fragment::-webkit-scrollbar-thumb, +div.memproto::-webkit-scrollbar-thumb, +.contents center::-webkit-scrollbar-thumb, +.contents .center::-webkit-scrollbar-thumb, +.contents table:not(.memberdecls):not(.mlabels):not(.fieldtable):not(.memname)::-webkit-scrollbar-thumb { + background-color: transparent; + border: var(--webkit-scrollbar-padding) solid transparent; + border-radius: calc(var(--webkit-scrollbar-padding) + var(--webkit-scrollbar-padding)); + background-clip: padding-box; +} + +#nav-tree:hover::-webkit-scrollbar-thumb, +div.fragment:hover::-webkit-scrollbar-thumb, +pre.fragment:hover::-webkit-scrollbar-thumb, +div.memproto:hover::-webkit-scrollbar-thumb, +.contents center:hover::-webkit-scrollbar-thumb, +.contents .center:hover::-webkit-scrollbar-thumb, +.contents table:not(.memberdecls):not(.mlabels):not(.fieldtable):not(.memname):hover::-webkit-scrollbar-thumb { + background-color: var(--webkit-scrollbar-color); +} + +#nav-tree::-webkit-scrollbar-track, +div.fragment::-webkit-scrollbar-track, +pre.fragment::-webkit-scrollbar-track, +div.memproto::-webkit-scrollbar-track, +.contents center::-webkit-scrollbar-track, +.contents .center::-webkit-scrollbar-track, +.contents table:not(.memberdecls):not(.mlabels):not(.fieldtable):not(.memname)::-webkit-scrollbar-track { + background: transparent; +} + +#nav-tree::-webkit-scrollbar-corner { + background-color: var(--side-nav-background); +} + +#nav-tree, +div.fragment, +pre.fragment, +div.memproto, +.contents center, +.contents .center, +.contents table:not(.memberdecls):not(.mlabels):not(.fieldtable):not(.memname) { + overflow-x: auto; + overflow-x: overlay; +} + +#nav-tree { + overflow-x: auto; + overflow-y: auto; + overflow-y: overlay; +} + +/* + Scrollbars for Firefox +*/ + +#nav-tree, +div.fragment, +pre.fragment, +div.memproto, +.contents center, +.contents .center, +.contents table:not(.memberdecls):not(.mlabels):not(.fieldtable):not(.memname) { + scrollbar-width: thin; +} + +/* + Optional Dark mode toggle button +*/ + +doxygen-awesome-dark-mode-toggle { + display: inline-block; + margin: 0 0 0 var(--spacing-small); + padding: 0; + width: var(--searchbar-height); + height: var(--searchbar-height); + background: none; + border: none; + border-radius: var(--searchbar-height); + vertical-align: middle; + text-align: center; + line-height: var(--searchbar-height); + font-size: 22px; + display: flex; + align-items: center; + justify-content: center; + user-select: none; + cursor: pointer; +} + +doxygen-awesome-dark-mode-toggle > svg { + transition: transform .1s ease-in-out; +} + +doxygen-awesome-dark-mode-toggle:active > svg { + transform: scale(.5); +} + +doxygen-awesome-dark-mode-toggle:hover { + background-color: rgba(0,0,0,.03); +} + +html.dark-mode doxygen-awesome-dark-mode-toggle:hover { + background-color: rgba(0,0,0,.18); +} + +/* + Optional fragment copy button +*/ +.doxygen-awesome-fragment-wrapper { + position: relative; +} + +doxygen-awesome-fragment-copy-button { + opacity: 0; + background: var(--fragment-background); + width: 28px; + height: 28px; + position: absolute; + right: calc(var(--spacing-large) - (var(--spacing-large) / 2.5)); + top: calc(var(--spacing-large) - (var(--spacing-large) / 2.5)); + border: 1px solid var(--fragment-foreground); + cursor: pointer; + border-radius: var(--border-radius-small); + display: flex; + justify-content: center; + align-items: center; +} + +.doxygen-awesome-fragment-wrapper:hover doxygen-awesome-fragment-copy-button, doxygen-awesome-fragment-copy-button.success { + opacity: .28; +} + +doxygen-awesome-fragment-copy-button:hover, doxygen-awesome-fragment-copy-button.success { + opacity: 1 !important; +} + +doxygen-awesome-fragment-copy-button:active:not([class~=success]) svg { + transform: scale(.91); +} + +doxygen-awesome-fragment-copy-button svg { + fill: var(--fragment-foreground); + width: 18px; + height: 18px; +} + +doxygen-awesome-fragment-copy-button.success svg { + fill: rgb(14, 168, 14); +} + +doxygen-awesome-fragment-copy-button.success { + border-color: rgb(14, 168, 14); +} + +@media screen and (max-width: 767px) { + .textblock > .doxygen-awesome-fragment-wrapper > doxygen-awesome-fragment-copy-button, + .textblock li > .doxygen-awesome-fragment-wrapper > doxygen-awesome-fragment-copy-button, + .memdoc li > .doxygen-awesome-fragment-wrapper > doxygen-awesome-fragment-copy-button, + .memdoc > .doxygen-awesome-fragment-wrapper > doxygen-awesome-fragment-copy-button, + dl dd > .doxygen-awesome-fragment-wrapper > doxygen-awesome-fragment-copy-button { + right: 0; + } +} + +/* + Optional paragraph link button +*/ + +a.anchorlink { + font-size: 90%; + margin-left: var(--spacing-small); + color: var(--page-foreground-color) !important; + text-decoration: none; + opacity: .15; + display: none; + transition: opacity .1s ease-in-out, color .1s ease-in-out; +} + +a.anchorlink svg { + fill: var(--page-foreground-color); +} + +h3 a.anchorlink svg, h4 a.anchorlink svg { + margin-bottom: -3px; + margin-top: -4px; +} + +a.anchorlink:hover { + opacity: .45; +} + +h2:hover a.anchorlink, h1:hover a.anchorlink, h3:hover a.anchorlink, h4:hover a.anchorlink { + display: inline-block; +} diff --git a/doxygen.css b/doxygen.css new file mode 100644 index 0000000000..eeadba5e99 --- /dev/null +++ b/doxygen.css @@ -0,0 +1,2027 @@ +/* The standard CSS for doxygen 1.9.8*/ + +html { +/* page base colors */ +--page-background-color: white; +--page-foreground-color: black; +--page-link-color: #3D578C; +--page-visited-link-color: #4665A2; + +/* index */ +--index-odd-item-bg-color: #F8F9FC; +--index-even-item-bg-color: white; +--index-header-color: black; +--index-separator-color: #A0A0A0; + +/* header */ +--header-background-color: #F9FAFC; +--header-separator-color: #C4CFE5; +--header-gradient-image: url('nav_h.png'); +--group-header-separator-color: #879ECB; +--group-header-color: #354C7B; +--inherit-header-color: gray; + +--footer-foreground-color: #2A3D61; +--footer-logo-width: 104px; +--citation-label-color: #334975; +--glow-color: cyan; + +--title-background-color: white; +--title-separator-color: #5373B4; +--directory-separator-color: #9CAFD4; +--separator-color: #4A6AAA; + +--blockquote-background-color: #F7F8FB; +--blockquote-border-color: #9CAFD4; + +--scrollbar-thumb-color: #9CAFD4; +--scrollbar-background-color: #F9FAFC; + +--icon-background-color: #728DC1; +--icon-foreground-color: white; +--icon-doc-image: url('doc.svg'); +--icon-folder-open-image: url('folderopen.svg'); +--icon-folder-closed-image: url('folderclosed.svg'); + +/* brief member declaration list */ +--memdecl-background-color: #F9FAFC; +--memdecl-separator-color: #DEE4F0; +--memdecl-foreground-color: #555; +--memdecl-template-color: #4665A2; + +/* detailed member list */ +--memdef-border-color: #A8B8D9; +--memdef-title-background-color: #E2E8F2; +--memdef-title-gradient-image: url('nav_f.png'); +--memdef-proto-background-color: #DFE5F1; +--memdef-proto-text-color: #253555; +--memdef-proto-text-shadow: 0px 1px 1px rgba(255, 255, 255, 0.9); +--memdef-doc-background-color: white; +--memdef-param-name-color: #602020; +--memdef-template-color: #4665A2; + +/* tables */ +--table-cell-border-color: #2D4068; +--table-header-background-color: #374F7F; +--table-header-foreground-color: #FFFFFF; + +/* labels */ +--label-background-color: #728DC1; +--label-left-top-border-color: #5373B4; +--label-right-bottom-border-color: #C4CFE5; +--label-foreground-color: white; + +/** navigation bar/tree/menu */ +--nav-background-color: #F9FAFC; +--nav-foreground-color: #364D7C; +--nav-gradient-image: url('tab_b.png'); +--nav-gradient-hover-image: url('tab_h.png'); +--nav-gradient-active-image: url('tab_a.png'); +--nav-gradient-active-image-parent: url("../tab_a.png"); +--nav-separator-image: url('tab_s.png'); +--nav-breadcrumb-image: url('bc_s.png'); +--nav-breadcrumb-border-color: #C2CDE4; +--nav-splitbar-image: url('splitbar.png'); +--nav-font-size-level1: 13px; +--nav-font-size-level2: 10px; +--nav-font-size-level3: 9px; +--nav-text-normal-color: #283A5D; +--nav-text-hover-color: white; +--nav-text-active-color: white; +--nav-text-normal-shadow: 0px 1px 1px rgba(255, 255, 255, 0.9); +--nav-text-hover-shadow: 0px 1px 1px rgba(0, 0, 0, 1.0); +--nav-text-active-shadow: 0px 1px 1px rgba(0, 0, 0, 1.0); +--nav-menu-button-color: #364D7C; +--nav-menu-background-color: white; +--nav-menu-foreground-color: #555555; +--nav-menu-toggle-color: rgba(255, 255, 255, 0.5); +--nav-arrow-color: #9CAFD4; +--nav-arrow-selected-color: #9CAFD4; + +/* table of contents */ +--toc-background-color: #F4F6FA; +--toc-border-color: #D8DFEE; +--toc-header-color: #4665A2; +--toc-down-arrow-image: url("data:image/svg+xml;utf8,&%238595;"); + +/** search field */ +--search-background-color: white; +--search-foreground-color: #909090; +--search-magnification-image: url('mag.svg'); +--search-magnification-select-image: url('mag_sel.svg'); +--search-active-color: black; +--search-filter-background-color: #F9FAFC; +--search-filter-foreground-color: black; +--search-filter-border-color: #90A5CE; +--search-filter-highlight-text-color: white; +--search-filter-highlight-bg-color: #3D578C; +--search-results-foreground-color: #425E97; +--search-results-background-color: #EEF1F7; +--search-results-border-color: black; +--search-box-shadow: inset 0.5px 0.5px 3px 0px #555; + +/** code fragments */ +--code-keyword-color: #008000; +--code-type-keyword-color: #604020; +--code-flow-keyword-color: #E08000; +--code-comment-color: #800000; +--code-preprocessor-color: #806020; +--code-string-literal-color: #002080; +--code-char-literal-color: #008080; +--code-xml-cdata-color: black; +--code-vhdl-digit-color: #FF00FF; +--code-vhdl-char-color: #000000; +--code-vhdl-keyword-color: #700070; +--code-vhdl-logic-color: #FF0000; +--code-link-color: #4665A2; +--code-external-link-color: #4665A2; +--fragment-foreground-color: black; +--fragment-background-color: #FBFCFD; +--fragment-border-color: #C4CFE5; +--fragment-lineno-border-color: #00FF00; +--fragment-lineno-background-color: #E8E8E8; +--fragment-lineno-foreground-color: black; +--fragment-lineno-link-fg-color: #4665A2; +--fragment-lineno-link-bg-color: #D8D8D8; +--fragment-lineno-link-hover-fg-color: #4665A2; +--fragment-lineno-link-hover-bg-color: #C8C8C8; +--tooltip-foreground-color: black; +--tooltip-background-color: white; +--tooltip-border-color: gray; +--tooltip-doc-color: grey; +--tooltip-declaration-color: #006318; +--tooltip-link-color: #4665A2; +--tooltip-shadow: 1px 1px 7px gray; +--fold-line-color: #808080; +--fold-minus-image: url('minus.svg'); +--fold-plus-image: url('plus.svg'); +--fold-minus-image-relpath: url('../../minus.svg'); +--fold-plus-image-relpath: url('../../plus.svg'); + +/** font-family */ +--font-family-normal: Roboto,sans-serif; +--font-family-monospace: 'JetBrains Mono',Consolas,Monaco,'Andale Mono','Ubuntu Mono',monospace,fixed; +--font-family-nav: 'Lucida Grande',Geneva,Helvetica,Arial,sans-serif; +--font-family-title: Tahoma,Arial,sans-serif; +--font-family-toc: Verdana,'DejaVu Sans',Geneva,sans-serif; +--font-family-search: Arial,Verdana,sans-serif; +--font-family-icon: Arial,Helvetica; +--font-family-tooltip: Roboto,sans-serif; + +} + +@media (prefers-color-scheme: dark) { + html:not(.dark-mode) { + color-scheme: dark; + +/* page base colors */ +--page-background-color: black; +--page-foreground-color: #C9D1D9; +--page-link-color: #90A5CE; +--page-visited-link-color: #A3B4D7; + +/* index */ +--index-odd-item-bg-color: #0B101A; +--index-even-item-bg-color: black; +--index-header-color: #C4CFE5; +--index-separator-color: #334975; + +/* header */ +--header-background-color: #070B11; +--header-separator-color: #141C2E; +--header-gradient-image: url('nav_hd.png'); +--group-header-separator-color: #283A5D; +--group-header-color: #90A5CE; +--inherit-header-color: #A0A0A0; + +--footer-foreground-color: #5B7AB7; +--footer-logo-width: 60px; +--citation-label-color: #90A5CE; +--glow-color: cyan; + +--title-background-color: #090D16; +--title-separator-color: #354C79; +--directory-separator-color: #283A5D; +--separator-color: #283A5D; + +--blockquote-background-color: #101826; +--blockquote-border-color: #283A5D; + +--scrollbar-thumb-color: #283A5D; +--scrollbar-background-color: #070B11; + +--icon-background-color: #334975; +--icon-foreground-color: #C4CFE5; +--icon-doc-image: url('docd.svg'); +--icon-folder-open-image: url('folderopend.svg'); +--icon-folder-closed-image: url('folderclosedd.svg'); + +/* brief member declaration list */ +--memdecl-background-color: #0B101A; +--memdecl-separator-color: #2C3F65; +--memdecl-foreground-color: #BBB; +--memdecl-template-color: #7C95C6; + +/* detailed member list */ +--memdef-border-color: #233250; +--memdef-title-background-color: #1B2840; +--memdef-title-gradient-image: url('nav_fd.png'); +--memdef-proto-background-color: #19243A; +--memdef-proto-text-color: #9DB0D4; +--memdef-proto-text-shadow: 0px 1px 1px rgba(0, 0, 0, 0.9); +--memdef-doc-background-color: black; +--memdef-param-name-color: #D28757; +--memdef-template-color: #7C95C6; + +/* tables */ +--table-cell-border-color: #283A5D; +--table-header-background-color: #283A5D; +--table-header-foreground-color: #C4CFE5; + +/* labels */ +--label-background-color: #354C7B; +--label-left-top-border-color: #4665A2; +--label-right-bottom-border-color: #283A5D; +--label-foreground-color: #CCCCCC; + +/** navigation bar/tree/menu */ +--nav-background-color: #101826; +--nav-foreground-color: #364D7C; +--nav-gradient-image: url('tab_bd.png'); +--nav-gradient-hover-image: url('tab_hd.png'); +--nav-gradient-active-image: url('tab_ad.png'); +--nav-gradient-active-image-parent: url("../tab_ad.png"); +--nav-separator-image: url('tab_sd.png'); +--nav-breadcrumb-image: url('bc_sd.png'); +--nav-breadcrumb-border-color: #2A3D61; +--nav-splitbar-image: url('splitbard.png'); +--nav-font-size-level1: 13px; +--nav-font-size-level2: 10px; +--nav-font-size-level3: 9px; +--nav-text-normal-color: #B6C4DF; +--nav-text-hover-color: #DCE2EF; +--nav-text-active-color: #DCE2EF; +--nav-text-normal-shadow: 0px 1px 1px black; +--nav-text-hover-shadow: 0px 1px 1px rgba(0, 0, 0, 1.0); +--nav-text-active-shadow: 0px 1px 1px rgba(0, 0, 0, 1.0); +--nav-menu-button-color: #B6C4DF; +--nav-menu-background-color: #05070C; +--nav-menu-foreground-color: #BBBBBB; +--nav-menu-toggle-color: rgba(255, 255, 255, 0.2); +--nav-arrow-color: #334975; +--nav-arrow-selected-color: #90A5CE; + +/* table of contents */ +--toc-background-color: #151E30; +--toc-border-color: #202E4A; +--toc-header-color: #A3B4D7; +--toc-down-arrow-image: url("data:image/svg+xml;utf8,&%238595;"); + +/** search field */ +--search-background-color: black; +--search-foreground-color: #C5C5C5; +--search-magnification-image: url('mag_d.svg'); +--search-magnification-select-image: url('mag_seld.svg'); +--search-active-color: #C5C5C5; +--search-filter-background-color: #101826; +--search-filter-foreground-color: #90A5CE; +--search-filter-border-color: #7C95C6; +--search-filter-highlight-text-color: #BCC9E2; +--search-filter-highlight-bg-color: #283A5D; +--search-results-background-color: #101826; +--search-results-foreground-color: #90A5CE; +--search-results-border-color: #7C95C6; +--search-box-shadow: inset 0.5px 0.5px 3px 0px #2F436C; + +/** code fragments */ +--code-keyword-color: #CC99CD; +--code-type-keyword-color: #AB99CD; +--code-flow-keyword-color: #E08000; +--code-comment-color: #717790; +--code-preprocessor-color: #65CABE; +--code-string-literal-color: #7EC699; +--code-char-literal-color: #00E0F0; +--code-xml-cdata-color: #C9D1D9; +--code-vhdl-digit-color: #FF00FF; +--code-vhdl-char-color: #C0C0C0; +--code-vhdl-keyword-color: #CF53C9; +--code-vhdl-logic-color: #FF0000; +--code-link-color: #79C0FF; +--code-external-link-color: #79C0FF; +--fragment-foreground-color: #C9D1D9; +--fragment-background-color: black; +--fragment-border-color: #30363D; +--fragment-lineno-border-color: #30363D; +--fragment-lineno-background-color: black; +--fragment-lineno-foreground-color: #6E7681; +--fragment-lineno-link-fg-color: #6E7681; +--fragment-lineno-link-bg-color: #303030; +--fragment-lineno-link-hover-fg-color: #8E96A1; +--fragment-lineno-link-hover-bg-color: #505050; +--tooltip-foreground-color: #C9D1D9; +--tooltip-background-color: #202020; +--tooltip-border-color: #C9D1D9; +--tooltip-doc-color: #D9E1E9; +--tooltip-declaration-color: #20C348; +--tooltip-link-color: #79C0FF; +--tooltip-shadow: none; +--fold-line-color: #808080; +--fold-minus-image: url('minusd.svg'); +--fold-plus-image: url('plusd.svg'); +--fold-minus-image-relpath: url('../../minusd.svg'); +--fold-plus-image-relpath: url('../../plusd.svg'); + +/** font-family */ +--font-family-normal: Roboto,sans-serif; +--font-family-monospace: 'JetBrains Mono',Consolas,Monaco,'Andale Mono','Ubuntu Mono',monospace,fixed; +--font-family-nav: 'Lucida Grande',Geneva,Helvetica,Arial,sans-serif; +--font-family-title: Tahoma,Arial,sans-serif; +--font-family-toc: Verdana,'DejaVu Sans',Geneva,sans-serif; +--font-family-search: Arial,Verdana,sans-serif; +--font-family-icon: Arial,Helvetica; +--font-family-tooltip: Roboto,sans-serif; + +}} +body { + background-color: var(--page-background-color); + color: var(--page-foreground-color); +} + +body, table, div, p, dl { + font-weight: 400; + font-size: 14px; + font-family: var(--font-family-normal); + line-height: 22px; +} + +/* @group Heading Levels */ + +.title { + font-weight: 400; + font-size: 14px; + font-family: var(--font-family-normal); + line-height: 28px; + font-size: 150%; + font-weight: bold; + margin: 10px 2px; +} + +h1.groupheader { + font-size: 150%; +} + +h2.groupheader { + border-bottom: 1px solid var(--group-header-separator-color); + color: var(--group-header-color); + font-size: 150%; + font-weight: normal; + margin-top: 1.75em; + padding-top: 8px; + padding-bottom: 4px; + width: 100%; +} + +h3.groupheader { + font-size: 100%; +} + +h1, h2, h3, h4, h5, h6 { + -webkit-transition: text-shadow 0.5s linear; + -moz-transition: text-shadow 0.5s linear; + -ms-transition: text-shadow 0.5s linear; + -o-transition: text-shadow 0.5s linear; + transition: text-shadow 0.5s linear; + margin-right: 15px; +} + +h1.glow, h2.glow, h3.glow, h4.glow, h5.glow, h6.glow { + text-shadow: 0 0 15px var(--glow-color); +} + +dt { + font-weight: bold; +} + +p.startli, p.startdd { + margin-top: 2px; +} + +th p.starttd, th p.intertd, th p.endtd { + font-size: 100%; + font-weight: 700; +} + +p.starttd { + margin-top: 0px; +} + +p.endli { + margin-bottom: 0px; +} + +p.enddd { + margin-bottom: 4px; +} + +p.endtd { + margin-bottom: 2px; +} + +p.interli { +} + +p.interdd { +} + +p.intertd { +} + +/* @end */ + +caption { + font-weight: bold; +} + +span.legend { + font-size: 70%; + text-align: center; +} + +h3.version { + font-size: 90%; + text-align: center; +} + +div.navtab { + padding-right: 15px; + text-align: right; + line-height: 110%; +} + +div.navtab table { + border-spacing: 0; +} + +td.navtab { + padding-right: 6px; + padding-left: 6px; +} + +td.navtabHL { + background-image: var(--nav-gradient-active-image); + background-repeat:repeat-x; + padding-right: 6px; + padding-left: 6px; +} + +td.navtabHL a, td.navtabHL a:visited { + color: var(--nav-text-hover-color); + text-shadow: var(--nav-text-hover-shadow); +} + +a.navtab { + font-weight: bold; +} + +div.qindex{ + text-align: center; + width: 100%; + line-height: 140%; + font-size: 130%; + color: var(--index-separator-color); +} + +#main-menu a:focus { + outline: auto; + z-index: 10; + position: relative; +} + +dt.alphachar{ + font-size: 180%; + font-weight: bold; +} + +.alphachar a{ + color: var(--index-header-color); +} + +.alphachar a:hover, .alphachar a:visited{ + text-decoration: none; +} + +.classindex dl { + padding: 25px; + column-count:1 +} + +.classindex dd { + display:inline-block; + margin-left: 50px; + width: 90%; + line-height: 1.15em; +} + +.classindex dl.even { + background-color: var(--index-even-item-bg-color); +} + +.classindex dl.odd { + background-color: var(--index-odd-item-bg-color); +} + +@media(min-width: 1120px) { + .classindex dl { + column-count:2 + } +} + +@media(min-width: 1320px) { + .classindex dl { + column-count:3 + } +} + + +/* @group Link Styling */ + +a { + color: var(--page-link-color); + font-weight: normal; + text-decoration: none; +} + +.contents a:visited { + color: var(--page-visited-link-color); +} + +a:hover { + text-decoration: underline; +} + +a.el { + font-weight: bold; +} + +a.elRef { +} + +a.code, a.code:visited, a.line, a.line:visited { + color: var(--code-link-color); +} + +a.codeRef, a.codeRef:visited, a.lineRef, a.lineRef:visited { + color: var(--code-external-link-color); +} + +a.code.hl_class { /* style for links to class names in code snippets */ } +a.code.hl_struct { /* style for links to struct names in code snippets */ } +a.code.hl_union { /* style for links to union names in code snippets */ } +a.code.hl_interface { /* style for links to interface names in code snippets */ } +a.code.hl_protocol { /* style for links to protocol names in code snippets */ } +a.code.hl_category { /* style for links to category names in code snippets */ } +a.code.hl_exception { /* style for links to exception names in code snippets */ } +a.code.hl_service { /* style for links to service names in code snippets */ } +a.code.hl_singleton { /* style for links to singleton names in code snippets */ } +a.code.hl_concept { /* style for links to concept names in code snippets */ } +a.code.hl_namespace { /* style for links to namespace names in code snippets */ } +a.code.hl_package { /* style for links to package names in code snippets */ } +a.code.hl_define { /* style for links to macro names in code snippets */ } +a.code.hl_function { /* style for links to function names in code snippets */ } +a.code.hl_variable { /* style for links to variable names in code snippets */ } +a.code.hl_typedef { /* style for links to typedef names in code snippets */ } +a.code.hl_enumvalue { /* style for links to enum value names in code snippets */ } +a.code.hl_enumeration { /* style for links to enumeration names in code snippets */ } +a.code.hl_signal { /* style for links to Qt signal names in code snippets */ } +a.code.hl_slot { /* style for links to Qt slot names in code snippets */ } +a.code.hl_friend { /* style for links to friend names in code snippets */ } +a.code.hl_dcop { /* style for links to KDE3 DCOP names in code snippets */ } +a.code.hl_property { /* style for links to property names in code snippets */ } +a.code.hl_event { /* style for links to event names in code snippets */ } +a.code.hl_sequence { /* style for links to sequence names in code snippets */ } +a.code.hl_dictionary { /* style for links to dictionary names in code snippets */ } + +/* @end */ + +dl.el { + margin-left: -1cm; +} + +ul { + overflow: visible; +} + +ul.multicol { + -moz-column-gap: 1em; + -webkit-column-gap: 1em; + column-gap: 1em; + -moz-column-count: 3; + -webkit-column-count: 3; + column-count: 3; + list-style-type: none; +} + +#side-nav ul { + overflow: visible; /* reset ul rule for scroll bar in GENERATE_TREEVIEW window */ +} + +#main-nav ul { + overflow: visible; /* reset ul rule for the navigation bar drop down lists */ +} + +.fragment { + text-align: left; + direction: ltr; + overflow-x: auto; /*Fixed: fragment lines overlap floating elements*/ + overflow-y: hidden; +} + +pre.fragment { + border: 1px solid var(--fragment-border-color); + background-color: var(--fragment-background-color); + color: var(--fragment-foreground-color); + padding: 4px 6px; + margin: 4px 8px 4px 2px; + overflow: auto; + word-wrap: break-word; + font-size: 9pt; + line-height: 125%; + font-family: var(--font-family-monospace); + font-size: 105%; +} + +div.fragment { + padding: 0 0 1px 0; /*Fixed: last line underline overlap border*/ + margin: 4px 8px 4px 2px; + color: var(--fragment-foreground-color); + background-color: var(--fragment-background-color); + border: 1px solid var(--fragment-border-color); +} + +div.line { + font-family: var(--font-family-monospace); + font-size: 13px; + min-height: 13px; + line-height: 1.2; + text-wrap: unrestricted; + white-space: -moz-pre-wrap; /* Moz */ + white-space: -pre-wrap; /* Opera 4-6 */ + white-space: -o-pre-wrap; /* Opera 7 */ + white-space: pre-wrap; /* CSS3 */ + word-wrap: break-word; /* IE 5.5+ */ + text-indent: -53px; + padding-left: 53px; + padding-bottom: 0px; + margin: 0px; + -webkit-transition-property: background-color, box-shadow; + -webkit-transition-duration: 0.5s; + -moz-transition-property: background-color, box-shadow; + -moz-transition-duration: 0.5s; + -ms-transition-property: background-color, box-shadow; + -ms-transition-duration: 0.5s; + -o-transition-property: background-color, box-shadow; + -o-transition-duration: 0.5s; + transition-property: background-color, box-shadow; + transition-duration: 0.5s; +} + +div.line:after { + content:"\000A"; + white-space: pre; +} + +div.line.glow { + background-color: var(--glow-color); + box-shadow: 0 0 10px var(--glow-color); +} + +span.fold { + margin-left: 5px; + margin-right: 1px; + margin-top: 0px; + margin-bottom: 0px; + padding: 0px; + display: inline-block; + width: 12px; + height: 12px; + background-repeat:no-repeat; + background-position:center; +} + +span.lineno { + padding-right: 4px; + margin-right: 9px; + text-align: right; + border-right: 2px solid var(--fragment-lineno-border-color); + color: var(--fragment-lineno-foreground-color); + background-color: var(--fragment-lineno-background-color); + white-space: pre; +} +span.lineno a, span.lineno a:visited { + color: var(--fragment-lineno-link-fg-color); + background-color: var(--fragment-lineno-link-bg-color); +} + +span.lineno a:hover { + color: var(--fragment-lineno-link-hover-fg-color); + background-color: var(--fragment-lineno-link-hover-bg-color); +} + +.lineno { + -webkit-touch-callout: none; + -webkit-user-select: none; + -khtml-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + user-select: none; +} + +div.classindex ul { + list-style: none; + padding-left: 0; +} + +div.classindex span.ai { + display: inline-block; +} + +div.groupHeader { + margin-left: 16px; + margin-top: 12px; + font-weight: bold; +} + +div.groupText { + margin-left: 16px; + font-style: italic; +} + +body { + color: var(--page-foreground-color); + margin: 0; +} + +div.contents { + margin-top: 10px; + margin-left: 12px; + margin-right: 8px; +} + +p.formulaDsp { + text-align: center; +} + +img.dark-mode-visible { + display: none; +} +img.light-mode-visible { + display: none; +} + +img.formulaDsp { + +} + +img.formulaInl, img.inline { + vertical-align: middle; +} + +div.center { + text-align: center; + margin-top: 0px; + margin-bottom: 0px; + padding: 0px; +} + +div.center img { + border: 0px; +} + +address.footer { + text-align: right; + padding-right: 12px; +} + +img.footer { + border: 0px; + vertical-align: middle; + width: var(--footer-logo-width); +} + +.compoundTemplParams { + color: var(--memdecl-template-color); + font-size: 80%; + line-height: 120%; +} + +/* @group Code Colorization */ + +span.keyword { + color: var(--code-keyword-color); +} + +span.keywordtype { + color: var(--code-type-keyword-color); +} + +span.keywordflow { + color: var(--code-flow-keyword-color); +} + +span.comment { + color: var(--code-comment-color); +} + +span.preprocessor { + color: var(--code-preprocessor-color); +} + +span.stringliteral { + color: var(--code-string-literal-color); +} + +span.charliteral { + color: var(--code-char-literal-color); +} + +span.xmlcdata { + color: var(--code-xml-cdata-color); +} + +span.vhdldigit { + color: var(--code-vhdl-digit-color); +} + +span.vhdlchar { + color: var(--code-vhdl-char-color); +} + +span.vhdlkeyword { + color: var(--code-vhdl-keyword-color); +} + +span.vhdllogic { + color: var(--code-vhdl-logic-color); +} + +blockquote { + background-color: var(--blockquote-background-color); + border-left: 2px solid var(--blockquote-border-color); + margin: 0 24px 0 4px; + padding: 0 12px 0 16px; +} + +/* @end */ + +td.tiny { + font-size: 75%; +} + +.dirtab { + padding: 4px; + border-collapse: collapse; + border: 1px solid var(--table-cell-border-color); +} + +th.dirtab { + background-color: var(--table-header-background-color); + color: var(--table-header-foreground-color); + font-weight: bold; +} + +hr { + height: 0px; + border: none; + border-top: 1px solid var(--separator-color); +} + +hr.footer { + height: 1px; +} + +/* @group Member Descriptions */ + +table.memberdecls { + border-spacing: 0px; + padding: 0px; +} + +.memberdecls td, .fieldtable tr { + -webkit-transition-property: background-color, box-shadow; + -webkit-transition-duration: 0.5s; + -moz-transition-property: background-color, box-shadow; + -moz-transition-duration: 0.5s; + -ms-transition-property: background-color, box-shadow; + -ms-transition-duration: 0.5s; + -o-transition-property: background-color, box-shadow; + -o-transition-duration: 0.5s; + transition-property: background-color, box-shadow; + transition-duration: 0.5s; +} + +.memberdecls td.glow, .fieldtable tr.glow { + background-color: var(--glow-color); + box-shadow: 0 0 15px var(--glow-color); +} + +.mdescLeft, .mdescRight, +.memItemLeft, .memItemRight, +.memTemplItemLeft, .memTemplItemRight, .memTemplParams { + background-color: var(--memdecl-background-color); + border: none; + margin: 4px; + padding: 1px 0 0 8px; +} + +.mdescLeft, .mdescRight { + padding: 0px 8px 4px 8px; + color: var(--memdecl-foreground-color); +} + +.memSeparator { + border-bottom: 1px solid var(--memdecl-separator-color); + line-height: 1px; + margin: 0px; + padding: 0px; +} + +.memItemLeft, .memTemplItemLeft { + white-space: nowrap; +} + +.memItemRight, .memTemplItemRight { + width: 100%; +} + +.memTemplParams { + color: var(--memdecl-template-color); + white-space: nowrap; + font-size: 80%; +} + +/* @end */ + +/* @group Member Details */ + +/* Styles for detailed member documentation */ + +.memtitle { + padding: 8px; + border-top: 1px solid var(--memdef-border-color); + border-left: 1px solid var(--memdef-border-color); + border-right: 1px solid var(--memdef-border-color); + border-top-right-radius: 4px; + border-top-left-radius: 4px; + margin-bottom: -1px; + background-image: var(--memdef-title-gradient-image); + background-repeat: repeat-x; + background-color: var(--memdef-title-background-color); + line-height: 1.25; + font-weight: 300; + float:left; +} + +.permalink +{ + font-size: 65%; + display: inline-block; + vertical-align: middle; +} + +.memtemplate { + font-size: 80%; + color: var(--memdef-template-color); + font-weight: normal; + margin-left: 9px; +} + +.mempage { + width: 100%; +} + +.memitem { + padding: 0; + margin-bottom: 10px; + margin-right: 5px; + -webkit-transition: box-shadow 0.5s linear; + -moz-transition: box-shadow 0.5s linear; + -ms-transition: box-shadow 0.5s linear; + -o-transition: box-shadow 0.5s linear; + transition: box-shadow 0.5s linear; + display: table !important; + width: 100%; +} + +.memitem.glow { + box-shadow: 0 0 15px var(--glow-color); +} + +.memname { + font-weight: 400; + margin-left: 6px; +} + +.memname td { + vertical-align: bottom; +} + +.memproto, dl.reflist dt { + border-top: 1px solid var(--memdef-border-color); + border-left: 1px solid var(--memdef-border-color); + border-right: 1px solid var(--memdef-border-color); + padding: 6px 0px 6px 0px; + color: var(--memdef-proto-text-color); + font-weight: bold; + text-shadow: var(--memdef-proto-text-shadow); + background-color: var(--memdef-proto-background-color); + box-shadow: 5px 5px 5px rgba(0, 0, 0, 0.15); + border-top-right-radius: 4px; +} + +.overload { + font-family: var(--font-family-monospace); + font-size: 65%; +} + +.memdoc, dl.reflist dd { + border-bottom: 1px solid var(--memdef-border-color); + border-left: 1px solid var(--memdef-border-color); + border-right: 1px solid var(--memdef-border-color); + padding: 6px 10px 2px 10px; + border-top-width: 0; + background-image:url('nav_g.png'); + background-repeat:repeat-x; + background-color: var(--memdef-doc-background-color); + /* opera specific markup */ + border-bottom-left-radius: 4px; + border-bottom-right-radius: 4px; + box-shadow: 5px 5px 5px rgba(0, 0, 0, 0.15); + /* firefox specific markup */ + -moz-border-radius-bottomleft: 4px; + -moz-border-radius-bottomright: 4px; + -moz-box-shadow: rgba(0, 0, 0, 0.15) 5px 5px 5px; + /* webkit specific markup */ + -webkit-border-bottom-left-radius: 4px; + -webkit-border-bottom-right-radius: 4px; + -webkit-box-shadow: 5px 5px 5px rgba(0, 0, 0, 0.15); +} + +dl.reflist dt { + padding: 5px; +} + +dl.reflist dd { + margin: 0px 0px 10px 0px; + padding: 5px; +} + +.paramkey { + text-align: right; +} + +.paramtype { + white-space: nowrap; +} + +.paramname { + color: var(--memdef-param-name-color); + white-space: nowrap; +} +.paramname em { + font-style: normal; +} +.paramname code { + line-height: 14px; +} + +.params, .retval, .exception, .tparams { + margin-left: 0px; + padding-left: 0px; +} + +.params .paramname, .retval .paramname, .tparams .paramname, .exception .paramname { + font-weight: bold; + vertical-align: top; +} + +.params .paramtype, .tparams .paramtype { + font-style: italic; + vertical-align: top; +} + +.params .paramdir, .tparams .paramdir { + font-family: var(--font-family-monospace); + vertical-align: top; +} + +table.mlabels { + border-spacing: 0px; +} + +td.mlabels-left { + width: 100%; + padding: 0px; +} + +td.mlabels-right { + vertical-align: bottom; + padding: 0px; + white-space: nowrap; +} + +span.mlabels { + margin-left: 8px; +} + +span.mlabel { + background-color: var(--label-background-color); + border-top:1px solid var(--label-left-top-border-color); + border-left:1px solid var(--label-left-top-border-color); + border-right:1px solid var(--label-right-bottom-border-color); + border-bottom:1px solid var(--label-right-bottom-border-color); + text-shadow: none; + color: var(--label-foreground-color); + margin-right: 4px; + padding: 2px 3px; + border-radius: 3px; + font-size: 7pt; + white-space: nowrap; + vertical-align: middle; +} + + + +/* @end */ + +/* these are for tree view inside a (index) page */ + +div.directory { + margin: 10px 0px; + border-top: 1px solid var(--directory-separator-color); + border-bottom: 1px solid var(--directory-separator-color); + width: 100%; +} + +.directory table { + border-collapse:collapse; +} + +.directory td { + margin: 0px; + padding: 0px; + vertical-align: top; +} + +.directory td.entry { + white-space: nowrap; + padding-right: 6px; + padding-top: 3px; +} + +.directory td.entry a { + outline:none; +} + +.directory td.entry a img { + border: none; +} + +.directory td.desc { + width: 100%; + padding-left: 6px; + padding-right: 6px; + padding-top: 3px; + border-left: 1px solid rgba(0,0,0,0.05); +} + +.directory tr.odd { + padding-left: 6px; + background-color: var(--index-odd-item-bg-color); +} + +.directory tr.even { + padding-left: 6px; + background-color: var(--index-even-item-bg-color); +} + +.directory img { + vertical-align: -30%; +} + +.directory .levels { + white-space: nowrap; + width: 100%; + text-align: right; + font-size: 9pt; +} + +.directory .levels span { + cursor: pointer; + padding-left: 2px; + padding-right: 2px; + color: var(--page-link-color); +} + +.arrow { + color: var(--nav-arrow-color); + -webkit-user-select: none; + -khtml-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + user-select: none; + cursor: pointer; + font-size: 80%; + display: inline-block; + width: 16px; + height: 22px; +} + +.icon { + font-family: var(--font-family-icon); + line-height: normal; + font-weight: bold; + font-size: 12px; + height: 14px; + width: 16px; + display: inline-block; + background-color: var(--icon-background-color); + color: var(--icon-foreground-color); + text-align: center; + border-radius: 4px; + margin-left: 2px; + margin-right: 2px; +} + +.icona { + width: 24px; + height: 22px; + display: inline-block; +} + +.iconfopen { + width: 24px; + height: 18px; + margin-bottom: 4px; + background-image:var(--icon-folder-open-image); + background-repeat: repeat-y; + vertical-align:top; + display: inline-block; +} + +.iconfclosed { + width: 24px; + height: 18px; + margin-bottom: 4px; + background-image:var(--icon-folder-closed-image); + background-repeat: repeat-y; + vertical-align:top; + display: inline-block; +} + +.icondoc { + width: 24px; + height: 18px; + margin-bottom: 4px; + background-image:var(--icon-doc-image); + background-position: 0px -4px; + background-repeat: repeat-y; + vertical-align:top; + display: inline-block; +} + +/* @end */ + +div.dynheader { + margin-top: 8px; + -webkit-touch-callout: none; + -webkit-user-select: none; + -khtml-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + user-select: none; +} + +address { + font-style: normal; + color: var(--footer-foreground-color); +} + +table.doxtable caption { + caption-side: top; +} + +table.doxtable { + border-collapse:collapse; + margin-top: 4px; + margin-bottom: 4px; +} + +table.doxtable td, table.doxtable th { + border: 1px solid var(--table-cell-border-color); + padding: 3px 7px 2px; +} + +table.doxtable th { + background-color: var(--table-header-background-color); + color: var(--table-header-foreground-color); + font-size: 110%; + padding-bottom: 4px; + padding-top: 5px; +} + +table.fieldtable { + margin-bottom: 10px; + border: 1px solid var(--memdef-border-color); + border-spacing: 0px; + border-radius: 4px; + box-shadow: 2px 2px 2px rgba(0, 0, 0, 0.15); +} + +.fieldtable td, .fieldtable th { + padding: 3px 7px 2px; +} + +.fieldtable td.fieldtype, .fieldtable td.fieldname { + white-space: nowrap; + border-right: 1px solid var(--memdef-border-color); + border-bottom: 1px solid var(--memdef-border-color); + vertical-align: top; +} + +.fieldtable td.fieldname { + padding-top: 3px; +} + +.fieldtable td.fielddoc { + border-bottom: 1px solid var(--memdef-border-color); +} + +.fieldtable td.fielddoc p:first-child { + margin-top: 0px; +} + +.fieldtable td.fielddoc p:last-child { + margin-bottom: 2px; +} + +.fieldtable tr:last-child td { + border-bottom: none; +} + +.fieldtable th { + background-image: var(--memdef-title-gradient-image); + background-repeat:repeat-x; + background-color: var(--memdef-title-background-color); + font-size: 90%; + color: var(--memdef-proto-text-color); + padding-bottom: 4px; + padding-top: 5px; + text-align:left; + font-weight: 400; + border-top-left-radius: 4px; + border-top-right-radius: 4px; + border-bottom: 1px solid var(--memdef-border-color); +} + + +.tabsearch { + top: 0px; + left: 10px; + height: 36px; + background-image: var(--nav-gradient-image); + z-index: 101; + overflow: hidden; + font-size: 13px; +} + +.navpath ul +{ + font-size: 11px; + background-image: var(--nav-gradient-image); + background-repeat:repeat-x; + background-position: 0 -5px; + height:30px; + line-height:30px; + color:var(--nav-text-normal-color); + border:solid 1px var(--nav-breadcrumb-border-color); + overflow:hidden; + margin:0px; + padding:0px; +} + +.navpath li +{ + list-style-type:none; + float:left; + padding-left:10px; + padding-right:15px; + background-image:var(--nav-breadcrumb-image); + background-repeat:no-repeat; + background-position:right; + color: var(--nav-foreground-color); +} + +.navpath li.navelem a +{ + height:32px; + display:block; + text-decoration: none; + outline: none; + color: var(--nav-text-normal-color); + font-family: var(--font-family-nav); + text-shadow: var(--nav-text-normal-shadow); + text-decoration: none; +} + +.navpath li.navelem a:hover +{ + color: var(--nav-text-hover-color); + text-shadow: var(--nav-text-hover-shadow); +} + +.navpath li.footer +{ + list-style-type:none; + float:right; + padding-left:10px; + padding-right:15px; + background-image:none; + background-repeat:no-repeat; + background-position:right; + color: var(--footer-foreground-color); + font-size: 8pt; +} + + +div.summary +{ + float: right; + font-size: 8pt; + padding-right: 5px; + width: 50%; + text-align: right; +} + +div.summary a +{ + white-space: nowrap; +} + +table.classindex +{ + margin: 10px; + white-space: nowrap; + margin-left: 3%; + margin-right: 3%; + width: 94%; + border: 0; + border-spacing: 0; + padding: 0; +} + +div.ingroups +{ + font-size: 8pt; + width: 50%; + text-align: left; +} + +div.ingroups a +{ + white-space: nowrap; +} + +div.header +{ + background-image: var(--header-gradient-image); + background-repeat:repeat-x; + background-color: var(--header-background-color); + margin: 0px; + border-bottom: 1px solid var(--header-separator-color); +} + +div.headertitle +{ + padding: 5px 5px 5px 10px; +} + +.PageDocRTL-title div.headertitle { + text-align: right; + direction: rtl; +} + +dl { + padding: 0 0 0 0; +} + +/* dl.note, dl.warning, dl.attention, dl.pre, dl.post, dl.invariant, dl.deprecated, dl.todo, dl.test, dl.bug, dl.examples */ +dl.section { + margin-left: 0px; + padding-left: 0px; +} + +dl.note { + margin-left: -7px; + padding-left: 3px; + border-left: 4px solid; + border-color: #D0C000; +} + +dl.warning, dl.attention { + margin-left: -7px; + padding-left: 3px; + border-left: 4px solid; + border-color: #FF0000; +} + +dl.pre, dl.post, dl.invariant { + margin-left: -7px; + padding-left: 3px; + border-left: 4px solid; + border-color: #00D000; +} + +dl.deprecated { + margin-left: -7px; + padding-left: 3px; + border-left: 4px solid; + border-color: #505050; +} + +dl.todo { + margin-left: -7px; + padding-left: 3px; + border-left: 4px solid; + border-color: #00C0E0; +} + +dl.test { + margin-left: -7px; + padding-left: 3px; + border-left: 4px solid; + border-color: #3030E0; +} + +dl.bug { + margin-left: -7px; + padding-left: 3px; + border-left: 4px solid; + border-color: #C08050; +} + +dl.section dd { + margin-bottom: 6px; +} + + +#projectrow +{ + height: 56px; +} + +#projectlogo +{ + text-align: center; + vertical-align: bottom; + border-collapse: separate; +} + +#projectlogo img +{ + border: 0px none; +} + +#projectalign +{ + vertical-align: middle; + padding-left: 0.5em; +} + +#projectname +{ + font-size: 200%; + font-family: var(--font-family-title); + margin: 0px; + padding: 2px 0px; +} + +#projectbrief +{ + font-size: 90%; + font-family: var(--font-family-title); + margin: 0px; + padding: 0px; +} + +#projectnumber +{ + font-size: 50%; + font-family: 50% var(--font-family-title); + margin: 0px; + padding: 0px; +} + +#titlearea +{ + padding: 0px; + margin: 0px; + width: 100%; + border-bottom: 1px solid var(--title-separator-color); + background-color: var(--title-background-color); +} + +.image +{ + text-align: center; +} + +.dotgraph +{ + text-align: center; +} + +.mscgraph +{ + text-align: center; +} + +.plantumlgraph +{ + text-align: center; +} + +.diagraph +{ + text-align: center; +} + +.caption +{ + font-weight: bold; +} + +dl.citelist { + margin-bottom:50px; +} + +dl.citelist dt { + color:var(--citation-label-color); + float:left; + font-weight:bold; + margin-right:10px; + padding:5px; + text-align:right; + width:52px; +} + +dl.citelist dd { + margin:2px 0 2px 72px; + padding:5px 0; +} + +div.toc { + padding: 14px 25px; + background-color: var(--toc-background-color); + border: 1px solid var(--toc-border-color); + border-radius: 7px 7px 7px 7px; + float: right; + height: auto; + margin: 0 8px 10px 10px; + width: 200px; +} + +div.toc li { + background: var(--toc-down-arrow-image) no-repeat scroll 0 5px transparent; + font: 10px/1.2 var(--font-family-toc); + margin-top: 5px; + padding-left: 10px; + padding-top: 2px; +} + +div.toc h3 { + font: bold 12px/1.2 var(--font-family-toc); + color: var(--toc-header-color); + border-bottom: 0 none; + margin: 0; +} + +div.toc ul { + list-style: none outside none; + border: medium none; + padding: 0px; +} + +div.toc li.level1 { + margin-left: 0px; +} + +div.toc li.level2 { + margin-left: 15px; +} + +div.toc li.level3 { + margin-left: 15px; +} + +div.toc li.level4 { + margin-left: 15px; +} + +span.emoji { + /* font family used at the site: https://unicode.org/emoji/charts/full-emoji-list.html + * font-family: "Noto Color Emoji", "Apple Color Emoji", "Segoe UI Emoji", Times, Symbola, Aegyptus, Code2000, Code2001, Code2002, Musica, serif, LastResort; + */ +} + +span.obfuscator { + display: none; +} + +.inherit_header { + font-weight: bold; + color: var(--inherit-header-color); + cursor: pointer; + -webkit-touch-callout: none; + -webkit-user-select: none; + -khtml-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + user-select: none; +} + +.inherit_header td { + padding: 6px 0px 2px 5px; +} + +.inherit { + display: none; +} + +tr.heading h2 { + margin-top: 12px; + margin-bottom: 4px; +} + +/* tooltip related style info */ + +.ttc { + position: absolute; + display: none; +} + +#powerTip { + cursor: default; + /*white-space: nowrap;*/ + color: var(--tooltip-foreground-color); + background-color: var(--tooltip-background-color); + border: 1px solid var(--tooltip-border-color); + border-radius: 4px 4px 4px 4px; + box-shadow: var(--tooltip-shadow); + display: none; + font-size: smaller; + max-width: 80%; + opacity: 0.9; + padding: 1ex 1em 1em; + position: absolute; + z-index: 2147483647; +} + +#powerTip div.ttdoc { + color: var(--tooltip-doc-color); + font-style: italic; +} + +#powerTip div.ttname a { + font-weight: bold; +} + +#powerTip a { + color: var(--tooltip-link-color); +} + +#powerTip div.ttname { + font-weight: bold; +} + +#powerTip div.ttdeci { + color: var(--tooltip-declaration-color); +} + +#powerTip div { + margin: 0px; + padding: 0px; + font-size: 12px; + font-family: var(--font-family-tooltip); + line-height: 16px; +} + +#powerTip:before, #powerTip:after { + content: ""; + position: absolute; + margin: 0px; +} + +#powerTip.n:after, #powerTip.n:before, +#powerTip.s:after, #powerTip.s:before, +#powerTip.w:after, #powerTip.w:before, +#powerTip.e:after, #powerTip.e:before, +#powerTip.ne:after, #powerTip.ne:before, +#powerTip.se:after, #powerTip.se:before, +#powerTip.nw:after, #powerTip.nw:before, +#powerTip.sw:after, #powerTip.sw:before { + border: solid transparent; + content: " "; + height: 0; + width: 0; + position: absolute; +} + +#powerTip.n:after, #powerTip.s:after, +#powerTip.w:after, #powerTip.e:after, +#powerTip.nw:after, #powerTip.ne:after, +#powerTip.sw:after, #powerTip.se:after { + border-color: rgba(255, 255, 255, 0); +} + +#powerTip.n:before, #powerTip.s:before, +#powerTip.w:before, #powerTip.e:before, +#powerTip.nw:before, #powerTip.ne:before, +#powerTip.sw:before, #powerTip.se:before { + border-color: rgba(128, 128, 128, 0); +} + +#powerTip.n:after, #powerTip.n:before, +#powerTip.ne:after, #powerTip.ne:before, +#powerTip.nw:after, #powerTip.nw:before { + top: 100%; +} + +#powerTip.n:after, #powerTip.ne:after, #powerTip.nw:after { + border-top-color: var(--tooltip-background-color); + border-width: 10px; + margin: 0px -10px; +} +#powerTip.n:before, #powerTip.ne:before, #powerTip.nw:before { + border-top-color: var(--tooltip-border-color); + border-width: 11px; + margin: 0px -11px; +} +#powerTip.n:after, #powerTip.n:before { + left: 50%; +} + +#powerTip.nw:after, #powerTip.nw:before { + right: 14px; +} + +#powerTip.ne:after, #powerTip.ne:before { + left: 14px; +} + +#powerTip.s:after, #powerTip.s:before, +#powerTip.se:after, #powerTip.se:before, +#powerTip.sw:after, #powerTip.sw:before { + bottom: 100%; +} + +#powerTip.s:after, #powerTip.se:after, #powerTip.sw:after { + border-bottom-color: var(--tooltip-background-color); + border-width: 10px; + margin: 0px -10px; +} + +#powerTip.s:before, #powerTip.se:before, #powerTip.sw:before { + border-bottom-color: var(--tooltip-border-color); + border-width: 11px; + margin: 0px -11px; +} + +#powerTip.s:after, #powerTip.s:before { + left: 50%; +} + +#powerTip.sw:after, #powerTip.sw:before { + right: 14px; +} + +#powerTip.se:after, #powerTip.se:before { + left: 14px; +} + +#powerTip.e:after, #powerTip.e:before { + left: 100%; +} +#powerTip.e:after { + border-left-color: var(--tooltip-border-color); + border-width: 10px; + top: 50%; + margin-top: -10px; +} +#powerTip.e:before { + border-left-color: var(--tooltip-border-color); + border-width: 11px; + top: 50%; + margin-top: -11px; +} + +#powerTip.w:after, #powerTip.w:before { + right: 100%; +} +#powerTip.w:after { + border-right-color: var(--tooltip-border-color); + border-width: 10px; + top: 50%; + margin-top: -10px; +} +#powerTip.w:before { + border-right-color: var(--tooltip-border-color); + border-width: 11px; + top: 50%; + margin-top: -11px; +} + +@media print +{ + #top { display: none; } + #side-nav { display: none; } + #nav-path { display: none; } + body { overflow:visible; } + h1, h2, h3, h4, h5, h6 { page-break-after: avoid; } + .summary { display: none; } + .memitem { page-break-inside: avoid; } + #doc-content + { + margin-left:0 !important; + height:auto !important; + width:auto !important; + overflow:inherit; + display:inline; + } +} + +/* @group Markdown */ + +table.markdownTable { + border-collapse:collapse; + margin-top: 4px; + margin-bottom: 4px; +} + +table.markdownTable td, table.markdownTable th { + border: 1px solid var(--table-cell-border-color); + padding: 3px 7px 2px; +} + +table.markdownTable tr { +} + +th.markdownTableHeadLeft, th.markdownTableHeadRight, th.markdownTableHeadCenter, th.markdownTableHeadNone { + background-color: var(--table-header-background-color); + color: var(--table-header-foreground-color); + font-size: 110%; + padding-bottom: 4px; + padding-top: 5px; +} + +th.markdownTableHeadLeft, td.markdownTableBodyLeft { + text-align: left +} + +th.markdownTableHeadRight, td.markdownTableBodyRight { + text-align: right +} + +th.markdownTableHeadCenter, td.markdownTableBodyCenter { + text-align: center +} + +tt, code, kbd, samp +{ + display: inline-block; +} +/* @end */ + +u { + text-decoration: underline; +} + +details>summary { + list-style-type: none; +} + +details > summary::-webkit-details-marker { + display: none; +} + +details>summary::before { + content: "\25ba"; + padding-right:4px; + font-size: 80%; +} + +details[open]>summary::before { + content: "\25bc"; + padding-right:4px; + font-size: 80%; +} + diff --git a/doxygen.svg b/doxygen.svg new file mode 100644 index 0000000000..79a7635407 --- /dev/null +++ b/doxygen.svg @@ -0,0 +1,28 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/draw_8hpp_source.html b/draw_8hpp_source.html new file mode 100644 index 0000000000..0a727868a6 --- /dev/null +++ b/draw_8hpp_source.html @@ -0,0 +1,129 @@ + + + + + + + +Topaz: src/tz/gl/draw.hpp Source File + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.1.0.1 +
+
C++20 Graphics Engine
+
+
+ + + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+
draw.hpp
+
+
+
1#ifndef TOPAZ_GL_DRAW_HPP
+
2#define TOPAZ_GL_DRAW_HPP
+
3#if TZ_VULKAN
+
4#include "tz/gl/impl/vulkan/detail/draw.hpp"
+
5#elif TZ_OGL
+
6#include "tz/gl/impl/opengl/detail/draw.hpp"
+
7#endif
+
8
+
9namespace tz::gl
+
10{
+
11 #if TZ_VULKAN
+
12 using draw_indirect_command = vk2::draw_indirect_command;
+
13 using draw_indexed_indirect_command = vk2::draw_indexed_indirect_command;
+
14 #elif TZ_OGL
+
15 using draw_indirect_command = ogl2::draw_indirect_command;
+
16 using draw_indexed_indirect_command = ogl2::draw_indexed_indirect_command;
+
17 #endif
+
18}
+
19
+
20#endif // TOPAZ_GL_DRAW_HPP
+
+ + + + diff --git a/dynsections.js b/dynsections.js new file mode 100644 index 0000000000..b73c828894 --- /dev/null +++ b/dynsections.js @@ -0,0 +1,192 @@ +/* + @licstart The following is the entire license notice for the JavaScript code in this file. + + The MIT License (MIT) + + Copyright (C) 1997-2020 by Dimitri van Heesch + + Permission is hereby granted, free of charge, to any person obtaining a copy of this software + and associated documentation files (the "Software"), to deal in the Software without restriction, + including without limitation the rights to use, copy, modify, merge, publish, distribute, + sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is + furnished to do so, subject to the following conditions: + + The above copyright notice and this permission notice shall be included in all copies or + substantial portions of the Software. + + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING + BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND + NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, + DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + + @licend The above is the entire license notice for the JavaScript code in this file + */ +function toggleVisibility(linkObj) +{ + var base = $(linkObj).attr('id'); + var summary = $('#'+base+'-summary'); + var content = $('#'+base+'-content'); + var trigger = $('#'+base+'-trigger'); + var src=$(trigger).attr('src'); + if (content.is(':visible')===true) { + content.hide(); + summary.show(); + $(linkObj).addClass('closed').removeClass('opened'); + $(trigger).attr('src',src.substring(0,src.length-8)+'closed.png'); + } else { + content.show(); + summary.hide(); + $(linkObj).removeClass('closed').addClass('opened'); + $(trigger).attr('src',src.substring(0,src.length-10)+'open.png'); + } + return false; +} + +function updateStripes() +{ + $('table.directory tr'). + removeClass('even').filter(':visible:even').addClass('even'); + $('table.directory tr'). + removeClass('odd').filter(':visible:odd').addClass('odd'); +} + +function toggleLevel(level) +{ + $('table.directory tr').each(function() { + var l = this.id.split('_').length-1; + var i = $('#img'+this.id.substring(3)); + var a = $('#arr'+this.id.substring(3)); + if (l'); + // add vertical lines to other rows + $('span[class=lineno]').not(':eq(0)').append(''); + // add toggle controls to lines with fold divs + $('div[class=foldopen]').each(function() { + // extract specific id to use + var id = $(this).attr('id').replace('foldopen',''); + // extract start and end foldable fragment attributes + var start = $(this).attr('data-start'); + var end = $(this).attr('data-end'); + // replace normal fold span with controls for the first line of a foldable fragment + $(this).find('span[class=fold]:first').replaceWith(''); + // append div for folded (closed) representation + $(this).after(''); + // extract the first line from the "open" section to represent closed content + var line = $(this).children().first().clone(); + // remove any glow that might still be active on the original line + $(line).removeClass('glow'); + if (start) { + // if line already ends with a start marker (e.g. trailing {), remove it + $(line).html($(line).html().replace(new RegExp('\\s*'+start+'\\s*$','g'),'')); + } + // replace minus with plus symbol + $(line).find('span[class=fold]').css('background-image',plusImg[relPath]); + // append ellipsis + $(line).append(' '+start+''+end); + // insert constructed line into closed div + $('#foldclosed'+id).html(line); + }); +} + +/* @license-end */ diff --git a/engine__info_8hpp_source.html b/engine__info_8hpp_source.html new file mode 100644 index 0000000000..c7025e207b --- /dev/null +++ b/engine__info_8hpp_source.html @@ -0,0 +1,149 @@ + + + + + + + +Topaz: src/tz/core/engine_info.hpp Source File + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.1.0.1 +
+
C++20 Graphics Engine
+
+
+ + + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+
engine_info.hpp
+
+
+
1#ifndef TOPAZ_CORE_ENGINE_INFO_HPP
+
2#define TOPAZ_CORE_ENGINE_INFO_HPP
+
3#include <string>
+
4#include "tz/core/data/version.hpp"
+
5
+
6namespace tz
+
7{
+
+ +
19 {
+
20 enum class render_api
+
21 {
+
22 vulkan,
+
23 opengl
+
24 };
+
25
+
26 enum class build_config
+
27 {
+
28 debug,
+
29 release,
+
30 profile
+
31 };
+
32
+
39 std::string to_string() const;
+
40 constexpr bool operator==(const engine_info& rhs) const = default;
+
41
+
42 render_api renderer;
+
43 build_config build;
+ +
45 };
+
+
46
+
53 inline engine_info info();
+
54
+
58}
+
59#include "tz/core/engine_info.inl"
+
60#endif // TOPAZ_CORE_ENGINE_INFO_HPP
+
Represents information about the current engine used.
Definition engine_info.hpp:19
+
std::string to_string() const
Retrieve a string describing the engine.
Definition engine_info.cpp:5
+
Versions consist of a major, minor, patch and a version_type.
Definition version.hpp:32
+
+ + + + diff --git a/engine__info_8inl_source.html b/engine__info_8inl_source.html new file mode 100644 index 0000000000..76f8f11d97 --- /dev/null +++ b/engine__info_8inl_source.html @@ -0,0 +1,142 @@ + + + + + + + +Topaz: src/tz/core/engine_info.inl Source File + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.1.0.1 +
+
C++20 Graphics Engine
+
+
+ + + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+
engine_info.inl
+
+
+
1#include "tz/core/debug.hpp"
+
2#include <string_view>
+
3#include <cstdint>
+
4#include <iterator>
+
5
+
6namespace tz
+
7{
+
+ +
9 {
+
10 engine_info inf{};
+
11 #if TZ_VULKAN
+
12 inf.renderer = engine_info::render_api::vulkan;
+
13 #elif TZ_OGL
+
14 inf.renderer = engine_info::render_api::opengl;
+
15 #else
+
16 static_assert(false, "tz::info(): No render_api has been set. Can't build.");
+
17 #endif
+
18
+
19 #if TZ_DEBUG
+
20 inf.build = engine_info::build_config::debug;
+
21 #elif TZ_PROFILE
+
22 inf.build = engine_info::build_config::profile;
+
23 #else
+
24 inf.build = engine_info::build_config::release;
+
25 #endif
+
26
+
27 inf.version = tz::version::from_binary_string(TZ_VERSION);
+
28 return inf;
+
29 }
+
+
30}
+
Represents information about the current engine used.
Definition engine_info.hpp:19
+
+ + + + diff --git a/enum__field_8hpp_source.html b/enum__field_8hpp_source.html new file mode 100644 index 0000000000..e3c75dbaa0 --- /dev/null +++ b/enum__field_8hpp_source.html @@ -0,0 +1,163 @@ + + + + + + + +Topaz: src/tz/core/data/enum_field.hpp Source File + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.1.0.1 +
+
C++20 Graphics Engine
+
+
+ + + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+
enum_field.hpp
+
+
+
1#ifndef TOPAZ_CORE_CONTAINERS_ENUM_FIELD_HPP
+
2#define TOPAZ_CORE_CONTAINERS_ENUM_FIELD_HPP
+
3#include "tz/core/types.hpp"
+
4#include <initializer_list>
+
5#include <vector>
+
6
+
7namespace tz
+
8{
+
14 template<tz::enum_class E>
+
+ +
16 {
+
17 public:
+
21 constexpr enum_field() = default;
+
25 constexpr enum_field(std::initializer_list<E> types);
+
29 constexpr enum_field(E type);
+
30 constexpr ~enum_field() = default;
+
39 bool contains(E type) const;
+
44 bool contains(const enum_field<E>& field) const;
+
49 std::size_t count() const;
+
54 bool empty() const;
+ + +
70 enum_field<E> operator|(E type) const;
+
74 void remove(E type);
+
78 auto begin() const;
+
82 auto begin();
+
86 auto end() const;
+
90 auto end();
+
96 const E& front() const;
+
102 const E& back() const;
+
107 bool operator==(const enum_field<E>& rhs) const = default;
+
111 explicit operator E() const;
+
112 private:
+
113 std::vector<E> elements;
+
114 };
+
+
115}
+
116
+
117#include "tz/core/data/enum_field.inl"
+
118#endif // TOPAZ_CORE_CONTAINERS_ENUM_FIELD_HPP
+
Container for enum values, useful for vintage bitfield types.
Definition enum_field.hpp:16
+
enum_field< E > & operator|=(E type)
Add the element to the field.
Definition enum_field.inl:47
+
const E & front() const
Retrieve the first value within the field.
Definition enum_field.inl:103
+
auto begin() const
Retrieve an iterator to the beginning of the elements.
Definition enum_field.inl:79
+
void remove(E type)
Remove the enum value from the field, if it exists.
Definition enum_field.inl:73
+
auto end() const
Retrieve an iterator to the end of the elements.
Definition enum_field.inl:91
+
enum_field< E > operator|(E type) const
Create a copy of this field, but with the parameter element added.
Definition enum_field.inl:66
+
std::size_t count() const
Retrieve the number of elements within the field.
Definition enum_field.inl:35
+
bool operator==(const enum_field< E > &rhs) const =default
Query as to whether the elements of the field exactly match that of another field.
+
constexpr enum_field()=default
Create an empty field.
+
bool empty() const
Query as to whether the field is empty or not.
Definition enum_field.inl:41
+
const E & back() const
Retrieve the last value within the field.
Definition enum_field.inl:109
+
bool contains(E type) const
Query as to whether the field contains the given value.
Definition enum_field.inl:16
+
+ + + + diff --git a/enum__field_8inl_source.html b/enum__field_8inl_source.html new file mode 100644 index 0000000000..fc62430960 --- /dev/null +++ b/enum__field_8inl_source.html @@ -0,0 +1,306 @@ + + + + + + + +Topaz: src/tz/core/data/enum_field.inl Source File + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.1.0.1 +
+
C++20 Graphics Engine
+
+
+ + + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+
enum_field.inl
+
+
+
1#include <algorithm>
+
2
+
3namespace tz
+
4{
+
5 template<tz::enum_class E>
+
+
6 constexpr enum_field<E>::enum_field(E type):
+
7 elements(type)
+
8 {}
+
+
9
+
10 template<tz::enum_class E>
+
+
11 constexpr enum_field<E>::enum_field(std::initializer_list<E> types):
+
12 elements(types)
+
13 {}
+
+
14
+
15 template<tz::enum_class E>
+
+
16 bool enum_field<E>::contains(E type) const
+
17 {
+
18 return std::find(this->elements.begin(), this->elements.end(), type) != this->elements.end();
+
19 }
+
+
20
+
21 template<tz::enum_class E>
+
+
22 bool enum_field<E>::contains(const enum_field<E>& field) const
+
23 {
+
24 for(E type : field.elements)
+
+
25 {
+
26 if(!this->contains(type))
+
27 {
+
28 return false;
+
+
29 }
+
30 }
+
31 return true;
+
32 }
+
33
+
34 template<tz::enum_class E>
+
+
35 std::size_t enum_field<E>::count() const
+
36 {
+
37 return this->elements.size();
+
38 }
+
+
+ +
40 template<tz::enum_class E>
+
+ +
42 {
+
43 return this->count() == 0;
+
44 }
+
+
45
+
46 template<tz::enum_class E>
+
+ +
48 {
+
+
49 {
+
50 this->elements.push_back(type);
+
51 }
+
52 return *this;
+
53 }
+
+ +
55 template<tz::enum_class E>
+
+ +
57 {
+
58 for(E val : field)
+
59 {
+
+
60 *this |= val;
+
61 }
+
62 return *this;
+
63 }
+
+ +
65 template<tz::enum_class E>
+
+ +
67 {
+
68 enum_field<E> cpy = *this;
+
69 return cpy |= type;
+
70 }
+
+
71
+
72 template<tz::enum_class E>
+
+ +
+
74 {
+
75 this->elements.erase(std::remove(this->elements.begin(), this->elements.end(), type), this->elements.end());
+
76 }
+
+
+
77
+
+
78 template<tz::enum_class E>
+
+ +
80 {
+
81 return this->elements.begin();
+
82 }
+
+
+
83
+
84 template<tz::enum_class E>
+
+ +
+
86 {
+
87 return this->elements.begin();
+
88 }
+
89
+
+
90 template<tz::enum_class E>
+
+
91 auto enum_field<E>::end() const
+
92 {
+
93 return this->elements.end();
+
94 }
+
+
95
+
+
96 template<tz::enum_class E>
+
+ +
98 {
+
99 return this->elements.end();
+
100 }
+
+
101
+
+
102 template<tz::enum_class E>
+
+
103 const E& enum_field<E>::front() const
+
104 {
+
105 return this->elements.front();
+
106 }
+
+
107
+
108 template<tz::enum_class E>
+
+
109 const E& enum_field<E>::back() const
+
110 {
+
+
111 return this->elements.back();
+
112 }
+
113
+
114 template<tz::enum_class E>
+
+ +
116 {
+
117 using UnderlyingType = std::underlying_type_t<E>;
+
118 if(this->elements.empty())
+
119 {
+
120 return E{};
+
121 }
+
122 auto e = static_cast<UnderlyingType>(this->elements.front());
+
123 for(E ele : this->elements)
+
124 {
+
125 e |= static_cast<UnderlyingType>(ele);
+
126 }
+
127 return static_cast<E>(e);
+
128 }
+
+
+
129
+
130}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Container for enum values, useful for vintage bitfield types.
Definition enum_field.hpp:16
+
const E & front() const
Retrieve the first value within the field.
Definition enum_field.inl:103
+
auto begin() const
Retrieve an iterator to the beginning of the elements.
Definition enum_field.inl:79
+
auto end() const
Retrieve an iterator to the end of the elements.
Definition enum_field.inl:91
+
const E & back() const
Retrieve the last value within the field.
Definition enum_field.inl:109
+
+ + + + diff --git a/extensions_8hpp_source.html b/extensions_8hpp_source.html new file mode 100644 index 0000000000..e2612c8111 --- /dev/null +++ b/extensions_8hpp_source.html @@ -0,0 +1,193 @@ + + + + + + + +Topaz: src/tz/gl/impl/vulkan/detail/extensions.hpp Source File + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.1.0.1 +
+
C++20 Graphics Engine
+
+
+ + + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+
extensions.hpp
+
+
+
1#ifndef TOPAZ_GL_IMPL_BACKEND_VK2_EXTENSIONS_HPP
+
2#define TOPAZ_GL_IMPL_BACKEND_VK2_EXTENSIONS_HPP
+
3#include "tz/core/data/basic_list.hpp"
+
4#include "tz/core/data/enum_field.hpp"
+
5#include "vulkan/vulkan.h"
+
6#include <array>
+
7#include <cstring>
+
8
+
9namespace tz::gl::vk2
+
10{
+
+ +
20 {
+ +
23
+
24 Count
+
25 };
+
+
26
+
+
30 enum class DeviceExtension
+
31 {
+ +
34 ShaderDebugPrint,
+
35
+
36 Count
+
37 };
+
+
38
+
39 using InstanceExtensionList = tz::enum_field<InstanceExtension>;
+
40 using DeviceExtensionList = tz::enum_field<DeviceExtension>;
+
41
+
46 namespace util
+
47 {
+
48 constexpr std::array<const char*, static_cast<int>(InstanceExtension::Count)> instance_extension_tz_names{"Debug Messenger"};
+
49 constexpr std::array<const char*, static_cast<int>(DeviceExtension::Count)> device_extension_tz_names{"Swapchain", "Shader Debug Print"};
+
50
+
51 using VkExtension = const char*;
+
52 constexpr std::array<VkExtension, static_cast<int>(InstanceExtension::Count)> instance_extension_names{VK_EXT_DEBUG_UTILS_EXTENSION_NAME};
+
53 constexpr std::array<VkExtension, static_cast<int>(DeviceExtension::Count)> device_extension_names{VK_KHR_SWAPCHAIN_EXTENSION_NAME, VK_KHR_SHADER_NON_SEMANTIC_INFO_EXTENSION_NAME};
+
54
+
55 constexpr VkExtension to_vk_extension(InstanceExtension extension)
+
56 {
+
57 using SizeType = decltype(instance_extension_names)::size_type;
+
58 return instance_extension_names[static_cast<SizeType>(static_cast<int>(extension))];
+
59 }
+
60
+
61 constexpr VkExtension to_vk_extension(DeviceExtension extension)
+
62 {
+
63 using SizeType = decltype(device_extension_names)::size_type;
+
64 return device_extension_names[static_cast<SizeType>(static_cast<int>(extension))];
+
65 }
+
66
+
67 constexpr InstanceExtension to_instance_extension(VkExtension extension)
+
68 {
+
69 auto iter = std::find_if(instance_extension_names.begin(), instance_extension_names.end(), [extension](VkExtension cur_ext)->bool{return std::strcmp(cur_ext, extension) == 0;});
+
70 if(iter != instance_extension_names.end())
+
71 {
+
72 return static_cast<InstanceExtension>(static_cast<int>(std::distance(instance_extension_names.begin(), iter)));
+
73 }
+
74 return InstanceExtension::Count;
+
75 }
+
76
+
77 constexpr DeviceExtension to_device_extension(VkExtension extension)
+
78 {
+
79 auto iter = std::find_if(device_extension_names.begin(), device_extension_names.end(), [extension](VkExtension cur_ext)->bool{return std::strcmp(cur_ext, extension) == 0;});
+
80 if(iter != device_extension_names.end())
+
81 {
+
82 return static_cast<DeviceExtension>(static_cast<int>(std::distance(device_extension_names.begin(), iter)));
+
83 }
+
84 return DeviceExtension::Count;
+
85 }
+
86
+
87 using VkExtensionList = tz::basic_list<VkExtension>;
+
88 }
+
89}
+
90
+
91#endif // TOPAZ_GL_IMPL_BACKEND_VK2_EXTENSIONS_HPP
+
Custom list, feature subset of std::vector.
Definition basic_list.hpp:21
+
Container for enum values, useful for vintage bitfield types.
Definition enum_field.hpp:16
+
Swapchains are infrastructures which represent GPU images we will render to before they can be presen...
Definition swapchain.hpp:32
+
DeviceExtension
Supported Vulkan extension for a LogicalDevice.
Definition extensions.hpp:31
+
InstanceExtension
Supported Vulkan extension for a VulkanInstance.
Definition extensions.hpp:20
+ +
+ + + + diff --git a/fallback_8hpp_source.html b/fallback_8hpp_source.html new file mode 100644 index 0000000000..459d2f8eee --- /dev/null +++ b/fallback_8hpp_source.html @@ -0,0 +1,154 @@ + + + + + + + +Topaz: src/tz/core/memory/allocators/fallback.hpp Source File + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.1.0.1 +
+
C++20 Graphics Engine
+
+
+ + + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+
fallback.hpp
+
+
+
1#ifndef TOPAZ_CORE_ALLOCATORS_FALLBACK_HPP
+
2#define TOPAZ_CORE_ALLOCATORS_FALLBACK_HPP
+
3#include "tz/core/memory/memblk.hpp"
+
4#include "tz/core/types.hpp"
+
5
+
6namespace tz
+
7{
+
18 template<tz::allocator P, tz::allocator S>
+
+
19 class fallback_allocator : private P, private S
+
20 {
+
21 public:
+
22 tz::memblk allocate(std::size_t count)
+
23 {
+
24 tz::memblk r = P::allocate(count);
+
25 if(r.ptr == nullptr)
+
26 {
+
27 r = S::allocate(count);
+
28 }
+
29 return r;
+
30 }
+
31
+
32 void deallocate(tz::memblk blk)
+
33 {
+
34 if(P::owns(blk))
+
35 {
+
36 P::deallocate(blk);
+
37 }
+
38 else
+
39 {
+
40 S::deallocate(blk);
+
41 }
+
42 }
+
43
+
44 bool owns(tz::memblk blk) const
+
45 {
+
46 return P::owns(blk) || S::owns(blk);
+
47 }
+
48 };
+
+
49}
+
50
+
51#endif // TOPAZ_CORE_ALLOCATORS_FALLBACK_HPP
+
Implements tz::allocator.
Definition fallback.hpp:20
+
A non-owning, contiguous block of memory.
Definition memblk.hpp:12
+
+ + + + diff --git a/favicon-16x16.png b/favicon-16x16.png new file mode 100644 index 0000000000..5303e91ac3 Binary files /dev/null and b/favicon-16x16.png differ diff --git a/favicon-32x32.png b/favicon-32x32.png new file mode 100644 index 0000000000..5fc13c63d2 Binary files /dev/null and b/favicon-32x32.png differ diff --git a/favicon.ico b/favicon.ico new file mode 100644 index 0000000000..c3ea79a8b1 Binary files /dev/null and b/favicon.ico differ diff --git a/features_8hpp_source.html b/features_8hpp_source.html new file mode 100644 index 0000000000..c16a61d112 --- /dev/null +++ b/features_8hpp_source.html @@ -0,0 +1,197 @@ + + + + + + + +Topaz: src/tz/gl/impl/vulkan/detail/features.hpp Source File + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.1.0.1 +
+
C++20 Graphics Engine
+
+
+ + + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+
features.hpp
+
+
+
1#ifndef TOPAZ_GL_IMPL_BACKEND_VK2_FEATURES_HPP
+
2#define TOPAZ_GL_IMPL_BACKEND_VK2_FEATURES_HPP
+
3#if TZ_VULKAN
+
4#include "tz/gl/impl/vulkan/detail/extensions.hpp"
+
5
+
6namespace tz::gl::vk2
+
7{
+ +
41
+
42 using DeviceFeatureField = tz::enum_field<DeviceFeature>;
+
43
+
44 namespace detail
+
45 {
+
46 constexpr VkPhysicalDeviceVulkan11Features empty_11_features(VkPhysicalDeviceVulkan12Features& next)
+
47 {
+
48 VkPhysicalDeviceVulkan11Features feats{};
+
49 feats.sType = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_1_FEATURES;
+
50 feats.pNext = &next;
+
51 return feats;
+
52 }
+
53
+
54 constexpr VkPhysicalDeviceVulkan12Features empty_12_features(VkPhysicalDeviceVulkan13Features& next)
+
55 {
+
56 VkPhysicalDeviceVulkan12Features feats{};
+
57 feats.sType = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_2_FEATURES;
+
58 feats.pNext = &next;
+
59 return feats;
+
60 }
+
61
+
62 constexpr VkPhysicalDeviceVulkan13Features empty_13_features()
+
63 {
+
64 VkPhysicalDeviceVulkan13Features feats{};
+
65 feats.sType = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_3_FEATURES;
+
66 feats.pNext = nullptr;
+
67 return feats;
+
68 }
+
69
+
70 constexpr VkPhysicalDeviceFeatures2 empty_features2(VkPhysicalDeviceVulkan11Features& next)
+
71 {
+
72 VkPhysicalDeviceFeatures2 feats{};
+
73 feats.sType = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FEATURES_2;
+
74 feats.pNext = &next;
+
75 return feats;
+
76 }
+
77
+
+ +
79 {
+
80 VkPhysicalDeviceVulkan13Features features13 = empty_13_features();
+
81 VkPhysicalDeviceVulkan12Features features12 = empty_12_features(features13);
+
82 VkPhysicalDeviceVulkan11Features features11 = empty_11_features(features12);
+
83 VkPhysicalDeviceFeatures2 features = empty_features2(features11);
+
84 };
+
+
85 }
+
86}
+
87
+
88#endif // TZ_VULKAN
+
89#endif // TOPAZ_GL_IMPL_BACKEND_VK2_FEATURES_HPP
+
Container for enum values, useful for vintage bitfield types.
Definition enum_field.hpp:16
+
DeviceFeature
Represents an optional feature specific to a PhysicalDevice.
Definition features.hpp:17
+ + + + + + + + + + + +
Definition features.hpp:79
+
+ + + + diff --git a/fence_8hpp_source.html b/fence_8hpp_source.html new file mode 100644 index 0000000000..961affe3ea --- /dev/null +++ b/fence_8hpp_source.html @@ -0,0 +1,167 @@ + + + + + + + +Topaz: src/tz/gl/impl/vulkan/detail/fence.hpp Source File + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.1.0.1 +
+
C++20 Graphics Engine
+
+
+ + + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+
fence.hpp
+
+
+
1#ifndef TOPAZ_GL_IMPL_BACKEND_VK2_FENCE_HPP
+
2#define TOPAZ_GL_IMPL_BACKEND_VK2_FENCE_HPP
+
3#if TZ_VULKAN
+
4#include "tz/gl/impl/vulkan/detail/logical_device.hpp"
+
5#include "tz/gl/impl/vulkan/detail/debugname.hpp"
+
6
+
7namespace tz::gl::vk2
+
8{
+
+
13 struct FenceInfo
+
14 {
+ +
18 bool initially_signalled = false;
+
19 };
+
+
20
+
+
25 class Fence : public DebugNameable<VK_OBJECT_TYPE_FENCE>
+
26 {
+
27 public:
+
28 Fence(FenceInfo info);
+
29 Fence(const Fence& copy) = delete;
+
30 Fence(Fence&& move);
+
31 ~Fence();
+
32
+
33 Fence& operator=(const Fence& rhs) = delete;
+
34 Fence& operator=(Fence&& rhs);
+
35
+
36 const LogicalDevice& get_device() const;
+
41 bool is_signalled() const;
+
46 void wait_until_signalled() const;
+
50 void unsignal();
+
51
+
52 using NativeType = VkFence;
+
53 NativeType native() const;
+
54
+
55 static Fence null();
+
56 bool is_null() const;
+
57 private:
+
58 Fence();
+
59
+
60 VkFence fence;
+
61 FenceInfo info;
+
62 };
+
+
63}
+
64
+
65#endif // TZ_VULKAN
+
66#endif // TOPAZ_GL_IMPL_BACKEND_VK2_FENCE_HPP
+
Definition debugname.hpp:10
+
Synchronisation primitive which is useful to detect completion of a GPU operation,...
Definition fence.hpp:26
+
void unsignal()
Set the state of the Fence to the unsignaleld state.
Definition fence.cpp:77
+
void wait_until_signalled() const
Block the current thread until the Fence is signalled.
Definition fence.cpp:72
+
bool is_signalled() const
Query as to whether the Fence is currently signalled.
Definition fence.cpp:67
+
Logical interface to an existing PhysicalDevice.
Definition logical_device.hpp:95
+
Specifies creation flags for a Fence.
Definition fence.hpp:14
+
const LogicalDevice * device
Owning LogicalDevice. Must not be null.
Definition fence.hpp:16
+
bool initially_signalled
True if the Fence should initially be signalled, otherwise false. By default, this is false.
Definition fence.hpp:18
+
+ + + + diff --git a/fixed__function_8hpp_source.html b/fixed__function_8hpp_source.html new file mode 100644 index 0000000000..9a79bb7a95 --- /dev/null +++ b/fixed__function_8hpp_source.html @@ -0,0 +1,344 @@ + + + + + + + +Topaz: src/tz/gl/impl/vulkan/detail/fixed_function.hpp Source File + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.1.0.1 +
+
C++20 Graphics Engine
+
+
+ + + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+
fixed_function.hpp
+
+
+
1#ifndef TOPAZ_GL_IMPL_BACKEND_VK2_FIXED_FUNCTION_HPP
+
2#define TOPAZ_GL_IMPL_BACKEND_VK2_FIXED_FUNCTION_HPP
+
3#include "tz/core/data/basic_list.hpp"
+
4#include "tz/core/data/enum_field.hpp"
+
5#include "tz/core/data/vector.hpp"
+
6#include "vulkan/vulkan.h"
+
7#include <optional>
+
8
+
9namespace tz::gl::vk2
+
10{
+
+ +
17 {
+
19 Vec1Float16 = VK_FORMAT_R16_SFLOAT,
+
21 Vec1Float32 = VK_FORMAT_R32_SFLOAT,
+
22
+
24 Vec2Float32 = VK_FORMAT_R16G16_SFLOAT,
+
26 Vec2Float64 = VK_FORMAT_R32G32_SFLOAT,
+
27
+
29 Vec3Float48 = VK_FORMAT_R16G16B16_SFLOAT,
+
31 Vec3Float96 = VK_FORMAT_R32G32B32_SFLOAT,
+
32
+
34 Vec4Float64 = VK_FORMAT_R16G16B16A16_SFLOAT,
+
36 Vec4Float128 = VK_FORMAT_R32G32B32A32_SFLOAT
+
37 };
+
+
38
+
39 enum class VertexInputRate
+
40 {
+
41 PerVertexBasis = VK_VERTEX_INPUT_RATE_VERTEX,
+
42 PerInstanceBasis = VK_VERTEX_INPUT_RATE_INSTANCE
+
43 };
+
44
+
+ +
52 {
+
+
54 struct Binding
+
55 {
+
57 std::uint32_t binding;
+
59 std::uint32_t stride;
+
61 VertexInputRate input_rate;
+
62 };
+
+
63
+
+
65 struct Attribute
+
66 {
+
68 std::uint32_t shader_location;
+
70 std::uint32_t binding_id;
+ +
74 std::uint32_t element_offset;
+
75 };
+
+
76
+
77 tz::basic_list<Binding> bindings = {};
+
78 tz::basic_list<Attribute> attributes = {};
+
79 };
+
+
80
+
+ +
88 {
+ + +
91
+
92 using NativeType = VkPipelineViewportStateCreateInfo;
+
93 NativeType native() const;
+
94 };
+
+
95
+
96 ViewportState create_basic_viewport(tz::vec2 dimensions);
+
97
+
+
102 enum class PolygonMode
+
103 {
+
105 Fill = VK_POLYGON_MODE_FILL,
+
107 Line = VK_POLYGON_MODE_LINE,
+
109 Point = VK_POLYGON_MODE_POINT
+
110 };
+
+
111
+
+
116 enum class CullMode
+
117 {
+
119 NoCulling,
+ + + +
126 };
+
+
127
+
+ +
133 {
+
135 bool depth_clamp = false;
+
137 PolygonMode polygon_mode = PolygonMode::Fill;
+
139 CullMode cull_mode = CullMode::NoCulling;
+
140
+
141 using NativeType = VkPipelineRasterizationStateCreateInfo;
+
142 NativeType native() const;
+
143 };
+
+
144
+
+ +
150 {
+
151 using NativeType = VkPipelineMultisampleStateCreateInfo;
+
152 NativeType native() const;
+
153 };
+
+
154
+
+ +
160 {
+
162 AlwaysFalse = VK_COMPARE_OP_NEVER,
+
164 LessThan = VK_COMPARE_OP_LESS,
+
166 EqualTo = VK_COMPARE_OP_EQUAL,
+
168 LessThanOrEqual = VK_COMPARE_OP_LESS_OR_EQUAL,
+
170 GreaterThan = VK_COMPARE_OP_GREATER,
+
172 NotEqualTo = VK_COMPARE_OP_NOT_EQUAL,
+
174 GreaterThanOrEqual = VK_COMPARE_OP_GREATER_OR_EQUAL,
+
176 AlwaysTrue = VK_COMPARE_OP_ALWAYS
+
177 };
+
+
+ +
183 {
+
185 bool depth_testing = false;
+
187 bool depth_writes = false;
+
189 DepthComparator depth_compare_operation = DepthComparator::LessThan;
+ +
192
+
194 bool stencil_testing = false;
+
196 VkStencilOpState front = {};
+
198 VkStencilOpState back = {};
+
200 float min_depth_bounds = 0.0f;
+
202 float max_depth_bounds = 1.0f;
+
203
+
204 using NativeType = VkPipelineDepthStencilStateCreateInfo;
+
205 NativeType native() const;
+
206 };
+
+
207
+
+ +
213 {
+
214 using AttachmentState = VkPipelineColorBlendAttachmentState;
+
215 static AttachmentState no_blending();
+
216 static AttachmentState alpha_blending();
+
217
+
218 tz::basic_list<AttachmentState> attachment_states = {no_blending()};
+
219 std::optional<VkLogicOp> logical_operator = std::nullopt;
+
220 tz::vec4 blend_constants = tz::vec4{0.0f, 0.0f, 0.0f, 0.0f};
+
221
+
222 using NativeType = VkPipelineColorBlendStateCreateInfo;
+
223 NativeType native() const;
+
224 };
+
+
225
+
226 enum class DynamicStateType
+
227 {
+
228 Viewport = VK_DYNAMIC_STATE_VIEWPORT,
+
229 Scissor = VK_DYNAMIC_STATE_SCISSOR
+
230 };
+
231
+
232 using DynamicStateTypes = tz::enum_field<DynamicStateType>;
+
233
+
+ +
239 {
+
240 DynamicStateTypes states = {};
+
241 };
+
+
242}
+
243
+
244#endif // TOPAZ_GL_IMPL_BACKEND_VK2_FIXED_FUNCTION_HPP
+
Custom list, feature subset of std::vector.
Definition basic_list.hpp:21
+
Container for enum values, useful for vintage bitfield types.
Definition enum_field.hpp:16
+
vector< float, 4 > vec4
A vector of four floats.
Definition vector.hpp:219
+
VertexInputFormat
Specifies the format of a vertex input attribute.
Definition fixed_function.hpp:17
+
DepthComparator
When two fragments depth values are compared aka comp(lhs, rhs), what should the return expression be...
Definition fixed_function.hpp:160
+
PolygonMode
Describes how fragments are generated for geometry.
Definition fixed_function.hpp:103
+
CullMode
Describes which faces should be culled.
Definition fixed_function.hpp:117
+
@ Vec3Float48
Three 16-bit floats.
+
@ Vec4Float64
Four 16-bit floats.
+
@ Vec1Float16
A single 16-bit float.
+
@ Vec1Float32
A single 32-bit float.
+
@ Vec2Float32
Two 16-bit floats.
+
@ Vec3Float96
Three 32-bit floats.
+
@ Vec2Float64
Two 32-bit floats.
+
@ Vec4Float128
Four 32-bit floats.
+ + + + + + + + + + + + + + + +
Specifies how a new fragment colour is combined with the previous colour within the output.
Definition fixed_function.hpp:213
+
Specifies the state of the depth/stencil buffer, if any.
Definition fixed_function.hpp:183
+
DepthComparator depth_compare_operation
Describes how two fragment depth values are compared. See DepthComparator for more information.
Definition fixed_function.hpp:189
+
VkStencilOpState front
Parameter of stencil testing.
Definition fixed_function.hpp:196
+
float max_depth_bounds
If depth bounds testing is enabled, this specifies the maximum depth boundary.
Definition fixed_function.hpp:202
+
float min_depth_bounds
If depth bounds testing is enabled, this specifies the minimum depth boundary.
Definition fixed_function.hpp:200
+
bool depth_testing
Whether depth testing is enabled.
Definition fixed_function.hpp:185
+
bool depth_bounds_testing
Whether depth bounds testing should be enabled. If enabled, fragments with depth values < min_depth_b...
Definition fixed_function.hpp:191
+
bool depth_writes
If a fragment's value passes the depth test (that is, the depth compare operation returns true),...
Definition fixed_function.hpp:187
+
VkStencilOpState back
Parameter of stencil testing.
Definition fixed_function.hpp:198
+
bool stencil_testing
Whether stencil testing is enabled.
Definition fixed_function.hpp:194
+
At present, dynamic state is not supported, so this struct is not configurable.
Definition fixed_function.hpp:239
+
At present, multisampling is not supported, so this struct is not configurable.
Definition fixed_function.hpp:150
+
Configures how the geometry shaped by input data is transformed into fragments.
Definition fixed_function.hpp:133
+
PolygonMode polygon_mode
Describe how fragments are generated from geometry. See PolygonMode for more information.
Definition fixed_function.hpp:137
+
CullMode cull_mode
Describe the culling behaviour. See CullMode for more information.
Definition fixed_function.hpp:139
+
bool depth_clamp
Fragments that are beyond the near and far planes are clipped to them instead of being discarded....
Definition fixed_function.hpp:135
+
Attributes describe data members of a vertex input element.
Definition fixed_function.hpp:66
+
VertexInputFormat format
Describes the data components of the attribute are laid out.
Definition fixed_function.hpp:72
+
std::uint32_t binding_id
Binding id corresponding to this attribute. VertexInputState::bindings must contain an element Vertex...
Definition fixed_function.hpp:70
+
std::uint32_t shader_location
Shader Input Location number corresponding to this attribute.
Definition fixed_function.hpp:68
+
std::uint32_t element_offset
Distance (in bytes) from the beginning of the vertex input element to this attribute....
Definition fixed_function.hpp:74
+
Each binding has an index. Attributes refer to an existing binding via its index.
Definition fixed_function.hpp:55
+
VertexInputRate input_rate
Describes how often the binding appears throughout the vertex input.
Definition fixed_function.hpp:61
+
std::uint32_t binding
Index of the binding.
Definition fixed_function.hpp:57
+
std::uint32_t stride
Distance (in bytes) between the same binding in the next vertex input element.
Definition fixed_function.hpp:59
+
Specifies how the input vertex data is organised.
Definition fixed_function.hpp:52
+
Specifies the region of the output that will be rendered to.
Definition fixed_function.hpp:88
+
+ + + + diff --git a/folderclosed.svg b/folderclosed.svg new file mode 100644 index 0000000000..b04bed2e72 --- /dev/null +++ b/folderclosed.svg @@ -0,0 +1,11 @@ + + + + + + + + + + diff --git a/folderclosedd.svg b/folderclosedd.svg new file mode 100644 index 0000000000..52f0166a23 --- /dev/null +++ b/folderclosedd.svg @@ -0,0 +1,11 @@ + + + + + + + + + + diff --git a/folderopen.svg b/folderopen.svg new file mode 100644 index 0000000000..f6896dd254 --- /dev/null +++ b/folderopen.svg @@ -0,0 +1,17 @@ + + + + + + + + + + diff --git a/folderopend.svg b/folderopend.svg new file mode 100644 index 0000000000..2d1f06e7bc --- /dev/null +++ b/folderopend.svg @@ -0,0 +1,12 @@ + + + + + + + + + + + diff --git a/game__info_8hpp_source.html b/game__info_8hpp_source.html new file mode 100644 index 0000000000..64a7f8153c --- /dev/null +++ b/game__info_8hpp_source.html @@ -0,0 +1,150 @@ + + + + + + + +Topaz: src/tz/core/game_info.hpp Source File + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.1.0.1 +
+
C++20 Graphics Engine
+
+
+ + + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+
game_info.hpp
+
+
+
1#ifndef TOPAZ_CORE_GAME_INFO_HPP
+
2#define TOPAZ_CORE_GAME_INFO_HPP
+
3#include "tz/core/engine_info.hpp"
+
4#include <cstring>
+
5
+
6namespace tz
+
7{
+
+
17 struct game_info
+
18 {
+
+
24 inline std::string to_string() const
+
25 {
+
26 std::string res = this->name;
+
27 res += " v";
+
28 res += this->version.to_string();
+
29 res += " (";
+
30 res += this->engine.to_string();
+
31 res += ")";
+
32 return res;
+
33 }
+
+
34
+
35 bool operator==(const game_info& rhs) const
+
36 {
+
37 return std::strcmp(this->name, rhs.name) == 0 && version == rhs.version && engine == rhs.engine;
+
38 }
+
39
+
40 const char* name;
+
41 tz::version version;
+
42 engine_info engine;
+
43 };
+
+
47}
+
48
+
49#endif // TOPAZ_CORE_GAME_INFO_HPP
+
std::string to_string() const
Retrieve a string describing the engine.
Definition engine_info.cpp:5
+
Contains basic information about the target game/application.
Definition game_info.hpp:18
+
std::string to_string() const
Retrieve a string describing the game_info.
Definition game_info.hpp:24
+
Versions consist of a major, minor, patch and a version_type.
Definition version.hpp:32
+
std::string to_string() const
Retrieve the version as a string. Follows the form major.minor.patch, appended by -suffix if the buil...
Definition version.hpp:43
+
+ + + + diff --git a/gl_2impl_2opengl_2detail_2image_8hpp_source.html b/gl_2impl_2opengl_2detail_2image_8hpp_source.html new file mode 100644 index 0000000000..d91f947b4a --- /dev/null +++ b/gl_2impl_2opengl_2detail_2image_8hpp_source.html @@ -0,0 +1,193 @@ + + + + + + + +Topaz: src/tz/gl/impl/opengl/detail/image.hpp Source File + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.1.0.1 +
+
C++20 Graphics Engine
+
+
+ + + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+
image.hpp
+
+
+
1#ifndef TOPAZ_GL_IMPL_BACKEND_OGL2_IMAGE_HPP
+
2#define TOPAZ_GL_IMPL_BACKEND_OGL2_IMAGE_HPP
+
3#if TZ_OGL
+
4#include "tz/core/data/vector.hpp"
+
5#include "tz/gl/impl/opengl/detail/tz_opengl.hpp"
+
6#include "tz/gl/impl/opengl/detail/sampler.hpp"
+
7#include "tz/gl/impl/opengl/detail/image_format.hpp"
+
8#include <optional>
+
9
+
10namespace tz::gl::ogl2
+
11{
+
+ +
17 {
+
19 image_format format;
+ + +
24 };
+
+
25
+
+
30 class image
+
31 {
+
32 public:
+
34 using bindless_handle = GLuint64;
+
39 image(image_info info);
+
40 image(const image& copy) = delete;
+
41 image(image&& move);
+
42 ~image();
+
43 image& operator=(const image& rhs) = delete;
+
44 image& operator=(image&& rhs);
+
45
+
49 image_format get_format() const;
+ +
57 const sampler& get_sampler() const;
+
62 void set_data(std::span<const std::byte> texture_data);
+
67 void make_bindless();
+
72 bool is_bindless() const;
+ +
79
+
80 using NativeType = GLuint;
+
81 NativeType native() const;
+
82
+
83 std::string debug_get_name() const;
+
84 void debug_set_name(std::string name);
+
85
+
90 static image null();
+
94 bool is_null() const;
+
95 private:
+
96 image();
+
97
+
98 GLuint img;
+
99 image_info info;
+
100 std::optional<bindless_handle> maybe_bindless_handle;
+
101 std::string debug_name = "";
+
102 };
+
+
103
+
104 namespace image_helper
+
105 {
+
106 void copy(const image& source, image& destination);
+
107 image clone_resized(const image& image, tz::vec2ui new_size);
+
108 }
+
109}
+
110
+
111#endif // TZ_OGL
+
112#endif // TOPAZ_GL_IMPL_BACKEND_OGL2_IMAGE_HPP
+
Documentation for OpenGL images.
Definition image.hpp:31
+
void make_bindless()
Make the image bindless, allowing for an alternate way to reference the image as a shader resource,...
Definition image.cpp:73
+
image_format get_format() const
Definition image.cpp:51
+
tz::vec2ui get_dimensions() const
Definition image.cpp:56
+
static image null()
Create an image which acts as a null image, that is, no operations are valid on it.
Definition image.cpp:111
+
void set_data(std::span< const std::byte > texture_data)
Set the image data.
Definition image.cpp:66
+
bindless_handle get_bindless_handle() const
Retrieves the bindless texture handle for this bindless image.
Definition image.cpp:87
+
GLuint64 bindless_handle
Opaque handle for a bindless texture.
Definition image.hpp:34
+
const sampler & get_sampler() const
Retrieves the state specifying how the image is sampled in a shader.
Definition image.cpp:61
+
bool is_bindless() const
Query as to whether this image is bindless.
Definition image.cpp:82
+
bool is_null() const
Query as to whether the image is a null image.
Definition image.cpp:116
+
vector< unsigned int, 2 > vec2ui
A vector of two unsigned ints.
Definition vector.hpp:244
+
Specifies creation flags for a image.
Definition image.hpp:17
+
tz::vec2ui dimensions
{Width, Height} of the image, in pixels.
Definition image.hpp:21
+
image_format format
Format of the image data.
Definition image.hpp:19
+
sampler shader_sampler
Specifies how the image should be sampled in a shader.
Definition image.hpp:23
+
Describes various details about texture lookups from a sampled image.
Definition sampler.hpp:40
+
+ + + + diff --git a/gl_2impl_2vulkan_2detail_2image_8hpp_source.html b/gl_2impl_2vulkan_2detail_2image_8hpp_source.html new file mode 100644 index 0000000000..c8dce11a6b --- /dev/null +++ b/gl_2impl_2vulkan_2detail_2image_8hpp_source.html @@ -0,0 +1,322 @@ + + + + + + + +Topaz: src/tz/gl/impl/vulkan/detail/image.hpp Source File + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.1.0.1 +
+
C++20 Graphics Engine
+
+
+ + + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+
image.hpp
+
+
+
1#ifndef TOPAZ_GL_IMPL_BACKEND_VK2_IMAGE_HPP
+
2#define TOPAZ_GL_IMPL_BACKEND_VK2_IMAGE_HPP
+
3#if TZ_VULKAN
+
4#include "tz/core/data/vector.hpp"
+
5#include "tz/core/data/enum_field.hpp"
+
6#include "tz/gl/impl/vulkan/detail/debugname.hpp"
+
7#include "tz/gl/impl/vulkan/detail/image_format.hpp"
+
8#include "tz/gl/impl/vulkan/detail/gpu_mem.hpp"
+
9#include "vk_mem_alloc.h"
+
10#include <optional>
+
11#include <string>
+
12
+
13namespace tz::gl::vk2
+
14{
+
+
19 enum class ImageLayout
+
20 {
+
22 Undefined = VK_IMAGE_LAYOUT_UNDEFINED,
+
24 General = VK_IMAGE_LAYOUT_GENERAL,
+
26 ColourAttachment = VK_IMAGE_LAYOUT_COLOR_ATTACHMENT_OPTIMAL,
+
28 DepthStencilAttachment = VK_IMAGE_LAYOUT_DEPTH_STENCIL_ATTACHMENT_OPTIMAL,
+
30 ShaderResource = VK_IMAGE_LAYOUT_SHADER_READ_ONLY_OPTIMAL,
+
32 TransferSource = VK_IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL,
+
34 TransferDestination = VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL,
+
36 Present = VK_IMAGE_LAYOUT_PRESENT_SRC_KHR
+
37 };
+
+
38
+
+
43 enum class SampleCount
+
44 {
+
45 One = VK_SAMPLE_COUNT_1_BIT,
+
46 Two = VK_SAMPLE_COUNT_2_BIT,
+
47 Four = VK_SAMPLE_COUNT_4_BIT,
+
48 Eight = VK_SAMPLE_COUNT_8_BIT,
+
49 Sixteen = VK_SAMPLE_COUNT_16_BIT,
+
50 ThirtyTwo = VK_SAMPLE_COUNT_32_BIT,
+
51 SixtyFour = VK_SAMPLE_COUNT_64_BIT
+
52 };
+
+
53
+
+
58 enum class ImageTiling
+
59 {
+
61 Optimal = VK_IMAGE_TILING_OPTIMAL,
+
63 Linear = VK_IMAGE_TILING_LINEAR
+
64 };
+
+
65
+
+
70 enum class ImageUsage
+
71 {
+
73 TransferSource = VK_IMAGE_USAGE_TRANSFER_SRC_BIT,
+
75 TransferDestination = VK_IMAGE_USAGE_TRANSFER_DST_BIT,
+
77 SampledImage = VK_IMAGE_USAGE_SAMPLED_BIT,
+
79 StorageImage = VK_IMAGE_USAGE_STORAGE_BIT,
+
81 ColourAttachment = VK_IMAGE_USAGE_COLOR_ATTACHMENT_BIT,
+
83 DepthStencilAttachment = VK_IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT,
+
85 InputAttachment = VK_IMAGE_USAGE_INPUT_ATTACHMENT_BIT
+
86 };
+
+
87
+
88 using ImageUsageField = tz::enum_field<ImageUsage>;
+
89
+
+
94 enum class ImageAspectFlag
+
95 {
+
96 Colour = VK_IMAGE_ASPECT_COLOR_BIT,
+
97 Depth = VK_IMAGE_ASPECT_DEPTH_BIT,
+
98 Stencil = VK_IMAGE_ASPECT_STENCIL_BIT
+
99 };
+
+
100
+
101 using ImageAspectFlags = tz::enum_field<ImageAspectFlag>;
+
102
+
103 ImageAspectFlags derive_aspect_from_format(image_format fmt);
+
104
+
105 class Swapchain;
+
106 class LogicalDevice;
+
107 namespace hardware
+
108 {
+
109 class Queue;
+
110 }
+
111
+
+ +
117 {
+ +
121 std::uint32_t image_index;
+
122 };
+
+
123
+
+ +
129 {
+ + + +
137 ImageUsageField usage;
+
139 MemoryResidency residency;
+
141 std::uint32_t mip_levels = 1;
+
143 std::uint32_t array_layers = 1;
+
145 SampleCount sample_count = SampleCount::One;
+
147 ImageTiling image_tiling = ImageTiling::Optimal;
+
148 };
+
+
149
+
+
154 class Image : public DebugNameable<VK_OBJECT_TYPE_IMAGE>
+
155 {
+
156 public:
+ +
162 Image(image_info info);
+
163 Image(const Image& copy) = delete;
+
164 Image(Image&& move);
+
165 ~Image();
+
166
+
167 Image& operator=(const Image& rhs) = delete;
+
168 Image& operator=(Image&& rhs);
+
169
+
173 image_format get_format() const;
+
177 ImageLayout get_layout() const;
+ +
188 const LogicalDevice& get_device() const;
+
189
+
190 void* map();
+
191
+
192 template<typename T>
+
193 std::span<T> map_as()
+
194 {
+
195 auto* ptr = reinterpret_cast<T*>(this->map());
+
196 if(ptr == nullptr)
+
197 {
+
198 return {ptr, 0};
+
199 }
+
200 return {ptr, this->vma_alloc_info.size / sizeof(T)};
+
201 }
+
202
+
203 void unmap();
+
204 std::size_t get_linear_row_length() const;
+
205
+
206 using NativeType = VkImage;
+
207 NativeType native() const;
+
208 static Image null();
+
209 bool is_null() const;
+
210
+
211 bool operator==(const Image& rhs) const;
+
212
+
213 friend class hardware::Queue;
+
214 private:
+
215 Image();
+
216 void set_layout(ImageLayout layout);
+
217
+
218 VkImage image;
+
219 image_format format;
+
220 ImageLayout layout;
+
221 ImageTiling tiling;
+
222 MemoryResidency residency;
+
223 tz::vec2ui dimensions;
+
224 const LogicalDevice* device;
+
225 bool destroy_on_destructor;
+
226 std::optional<VmaAllocation> vma_alloc;
+
227 VmaAllocationInfo vma_alloc_info;
+
228 };
+
+
229}
+
230
+
231#endif // TZ_VULKAN
+
232#endif // TOPAZ_GL_IMPL_BACKEND_VK2_IMAGE_HPP
+
Container for enum values, useful for vintage bitfield types.
Definition enum_field.hpp:16
+
Implements tz::gl::device_type.
Definition device.hpp:69
+
Definition debugname.hpp:10
+
Represents an Image owned by the Vulkan API.
Definition image.hpp:155
+
const LogicalDevice & get_device() const
Retrieve the LogicalDevice that 'owns' the image.
Definition image.cpp:200
+
ImageLayout get_layout() const
Retrieve the current layout of the image.
Definition image.cpp:190
+
tz::vec2ui get_dimensions() const
Retrieve the dimensions of the image.
Definition image.cpp:195
+
image_format get_format() const
Retrieve the underlying format of the image.
Definition image.cpp:185
+
Logical interface to an existing PhysicalDevice.
Definition logical_device.hpp:95
+
Swapchains are infrastructures which represent GPU images we will render to before they can be presen...
Definition swapchain.hpp:32
+
Represents a single hardware Queue.
Definition queue.hpp:70
+
vector< unsigned int, 2 > vec2ui
A vector of two unsigned ints.
Definition vector.hpp:244
+
image_format
Various image formats are supported in Topaz.
Definition image_format.hpp:33
+ + +
ImageTiling
Specifies how the image is laid out in memory.
Definition image.hpp:59
+
ImageLayout
Images are always in a layout.
Definition image.hpp:20
+
ImageUsage
Specifies intended usage of an Image.
Definition image.hpp:71
+
SampleCount
Specifies the number of samples stored per image pixel.
Definition image.hpp:44
+
ImageAspectFlag
Specifies which aspects of the image are included within a view.
Definition image.hpp:95
+
image_format
Various image formats are supported.
Definition image_format.hpp:35
+
@ Linear
Image texels are laid out in memory in row-major order, possibly with some padding on each row.
+
@ Optimal
Image texels are laid out in an implementation-defined manner.
+ + + + + + + + +
Specifies parameters of an Image referring to an existing Swapchain image.
Definition image.hpp:117
+
const Swapchain * swapchain
Swapchain owning this image. Must not be null.
Definition image.hpp:119
+
std::uint32_t image_index
Swapchains have a variable number of images. This is the index of the image collection owned by swapc...
Definition image.hpp:121
+
Specifies creation flags for an Image.
Definition image.hpp:129
+
const LogicalDevice * device
LogicalDevice owning this image. Must not be null.
Definition image.hpp:131
+
std::uint32_t array_layers
Specifies how many layers there are. Default 1.
Definition image.hpp:143
+
ImageUsageField usage
Field of expected usages of the image. For example, if you wish to transition the image to ImageLayou...
Definition image.hpp:137
+
ImageTiling image_tiling
Specifies image tiling. Default ImageTiling::Optimal.
Definition image.hpp:147
+
SampleCount sample_count
Specifies how many times the image is sampled per pixel. Default 1.
Definition image.hpp:145
+
image_format format
Format of the image.
Definition image.hpp:133
+
std::uint32_t mip_levels
Specifies how many mip levels there are. Default 1.
Definition image.hpp:141
+
MemoryResidency residency
Describes where the image is laid out in memory.
Definition image.hpp:139
+
tz::vec2ui dimensions
Dimensions of the image, in pixels.
Definition image.hpp:135
+
+ + + + diff --git a/gltf_8hpp_source.html b/gltf_8hpp_source.html new file mode 100644 index 0000000000..03ce9934d6 --- /dev/null +++ b/gltf_8hpp_source.html @@ -0,0 +1,530 @@ + + + + + + + +Topaz: src/tz/io/gltf.hpp Source File + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.1.0.1 +
+
C++20 Graphics Engine
+
+
+ + + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+
gltf.hpp
+
+
+
1#ifndef TOPAZ_IO_GLTF_HPP
+
2#define TOPAZ_IO_GLTF_HPP
+
3#include "tz/core/data/enum_field.hpp"
+
4#include "tz/core/data/vector.hpp"
+
5#include "tz/core/data/quat.hpp"
+
6#include "tz/core/data/trs.hpp"
+
7#include "tz/core/matrix.hpp"
+
8#include "tz/io/image.hpp"
+
9#include "nlohmann/json.hpp"
+
10#include <set>
+
11#undef assert
+
12
+
13namespace tz::io
+
14{
+
15 namespace detail
+
16 {
+
17 // i hate msvc so damn much.
+
18 constexpr std::size_t badzu = static_cast<std::size_t>(-1);
+
19 }
+
20 using json = nlohmann::json;
+
21
+
+ +
23 {
+
24 std::string label;
+
25 std::span<const std::byte> data;
+
26 };
+
+
27
+
28 enum class gltf_chunk_type
+
29 {
+
30 json,
+
31 bin,
+
32 ext
+
33 };
+
34
+
+ +
36 {
+
37 gltf_chunk_type type;
+
38 std::vector<std::byte> data;
+
39 };
+
+
40
+
+ +
42 {
+
43 std::size_t version = detail::badzu;
+
44 std::size_t size = detail::badzu;
+
45 };
+
+
46
+
+ +
48 {
+
49 std::vector<std::size_t> nodes = {};
+
50 std::string name = "Unnamed Scene";
+
51 };
+
+
52
+
+
53 struct gltf_node
+
54 {
+
55 std::size_t id;
+
56 std::string name = "Unnamed Node";
+
57 std::size_t mesh = detail::badzu;
+
58 std::size_t skin = detail::badzu;
+
59 tz::trs transform = {};
+
60 std::vector<std::size_t> children = {};
+
61 bool operator==(const gltf_node& rhs) const = default;
+
62 };
+
+
63
+
64 enum class gltf_buffer_view_type
+
65 {
+
66 none = 0,
+
67 vertex = 34962,
+
68 index = 34963,
+
69 };
+
70
+
+ +
72 {
+
73 std::size_t buffer_id;
+
74 gltf_buffer_view_type type;
+
75 std::size_t offset;
+
76 std::size_t length;
+
77 };
+
+
78
+
79 enum class gltf_accessor_component_type
+
80 {
+
81 sbyte = 5120,
+
82 ubyte = 5121,
+
83 sshort = 5122,
+
84 ushort = 5123,
+
85 uint = 5125,
+
86 flt = 5126
+
87 };
+
88
+
89 enum class gltf_accessor_type
+
90 {
+
91 scalar,
+
92 vec2,
+
93 vec3,
+
94 vec4,
+
95 mat2,
+
96 mat3,
+
97 mat4
+
98 };
+
99
+
+ +
101 {
+
102 std::size_t buffer_view_id;
+
103 std::size_t byte_offset = 0;
+
104 gltf_accessor_component_type component_type;
+
105 std::size_t element_count;
+
106 gltf_accessor_type type;
+
107 tz::mat4 max = tz::mat4::identity();
+
108 tz::mat4 min = tz::mat4::identity();
+
109 };
+
+
110
+
111 constexpr int gltf_max_texcoord_attribs = 8;
+
112 constexpr int gltf_max_color_attribs = 8;
+
113 constexpr int gltf_max_joint_attribs = 8;
+
114 constexpr int gltf_max_weight_attribs = 8;
+
115 enum class gltf_attribute
+
116 {
+
117 position,
+
118 normal,
+
119 tangent,
+
120 texcoord0,
+
121 texcoord_max = texcoord0 + gltf_max_texcoord_attribs,
+
122 color0,
+
123 colormax = color0 + gltf_max_color_attribs,
+
124 joint0,
+
125 jointmax = joint0 + gltf_max_joint_attribs,
+
126 weight0,
+
127 weightmax = weight0 + gltf_max_weight_attribs,
+
128 _count
+
129 };
+
130 using accessor_ref = std::array<int, static_cast<int>(gltf_attribute::_count)>;
+
131
+
132 using gltf_attributes = tz::enum_field<gltf_attribute>;
+
133
+
134 enum class gltf_primitive_mode
+
135 {
+
136 points,
+
137 lines,
+
138 line_loop,
+
139 line_strip,
+
140 triangles,
+
141 triangle_strip,
+
142 triangle_fan
+
143 };
+
144
+
+ +
146 {
+
147 std::string name = "Untitled Mesh";
+
+
148 struct submesh
+
149 {
+
150 gltf_attributes attributes = {};
+
151 accessor_ref accessors = {};
+
152 std::size_t indices_accessor = detail::badzu;
+
153 std::size_t material_id = detail::badzu;
+
154 gltf_primitive_mode mode;
+
155
+
156 };
+
+
157 std::vector<submesh> submeshes = {};
+
158 };
+
+
159
+
+ +
161 {
+
162 std::size_t inverse_bind_matrix_accessor_id = detail::badzu;
+
163 std::vector<tz::mat4> inverse_bind_matrices = {};
+
164 std::size_t skeleton_id = detail::badzu;
+
165 std::vector<std::size_t> joints = {};
+
166 std::string name = "Unnamed Skin";
+
167 };
+
+
168
+
169 enum class gltf_animation_channel_target_path
+
170 {
+
171 translation,
+
172 rotation,
+
173 scale,
+
174 weights
+
175 };
+
176
+
+ +
178 {
+
179 std::size_t node;
+
180 gltf_animation_channel_target_path path;
+
181 };
+
+
182
+
+ +
184 {
+
185 std::size_t sampler_id;
+ +
187 };
+
+
188
+
189 enum class gltf_animation_key_interpolation
+
190 {
+
191 linear,
+
192 step,
+
193 cubic_spline
+
194 };
+
195
+
+ +
197 {
+
198 std::size_t input;
+
199 std::size_t output;
+
200 gltf_animation_key_interpolation interpolation;
+
201 };
+
+
202
+
+ +
204 {
+
+ +
206 {
+
207 float time_point;
+
208 // mutable is safe here even in use in std::set because the transform is not used in comparison (set iterators are always const)
+
209 mutable tz::vec4 transform = tz::vec4::zero();
+
210
+
211 bool operator<(const keyframe_data_element& rhs) const{return this->time_point < rhs.time_point;}
+
212 };
+
+
213 using keyframe_data = std::tuple<std::set<keyframe_data_element>, std::set<keyframe_data_element>, std::set<keyframe_data_element>>;
+
214 using keyframe_iterator = std::set<keyframe_data_element>::iterator;
+
215 std::string name = "Unnamed";
+
216 std::vector<gltf_animation_channel> channels = {};
+
217 std::vector<gltf_animation_sampler> samplers = {};
+
218 float max_time = 0.0f;
+
219 // node_animation_data[n] contains a list of keyframes for the corresponding node id `n`.
+
220 // keyframes are guaranteed to be in-order in terms of time points, and only one combined
+
221 // TRS per time point. you should be fine to convert these into matrices and apply them
+
222 // at your whims.
+
223 std::vector<keyframe_data> node_animation_data;
+
224 };
+
+
225
+
226 enum class gltf_image_type
+
227 {
+
228 png,
+
229 jpg
+
230 };
+
231
+
+ +
233 {
+
234 std::string name;
+
235 gltf_image_type type;
+
236 std::size_t buffer_view_id;
+
237 };
+
+
238
+
+ +
240 {
+
241 std::string name = "Null Material";
+
242 std::size_t color_texture_id = detail::badzu;
+
243 std::size_t color_texcoord_id = detail::badzu;
+
244 std::size_t normal_texture_id = detail::badzu;
+
245 std::size_t normal_texcoord_id = detail::badzu;
+
246 float normal_scale = 1.0f;
+
247 std::size_t occlusion_texture_id = detail::badzu;
+
248 std::size_t occlusion_texcoord_id = detail::badzu;
+
249 float occlusion_strength = 1.0f;
+
250 std::size_t emissive_texture_id = detail::badzu;
+
251 std::size_t emissive_texcoord_id = detail::badzu;
+
252 };
+
+
253
+
+ +
255 {
+
256 tz::vec3 position;
+
257 tz::vec3 normal;
+
258 tz::vec3 tangent;
+
259 std::array<tz::vec2, gltf_max_texcoord_attribs> texcoordn;
+
260 std::array<tz::vec3, gltf_max_color_attribs> colorn;
+
261 std::array<tz::vec4us, gltf_max_joint_attribs> jointn;
+
262 std::array<tz::vec4, gltf_max_weight_attribs> weightn;
+
263 };
+
+
264
+
265 enum class gltf_submesh_texture_type
+
266 {
+
267 color,
+
268 normal,
+
269 occlusion,
+
270 emissive
+
271 };
+
272;
+
+ +
274 {
+
275 std::size_t texcoord_id;
+
276 std::size_t image_id;
+
277 float extra_data = 1.0f; // normal scale / occlusion strength.
+
278 gltf_submesh_texture_type type;
+
279 };
+
+
280
+
+ +
282 {
+
283 std::string name;
+
284 gltf_attributes attributes = {};
+
285 std::vector<gltf_vertex_data> vertices = {};
+
286 std::vector<std::uint32_t> indices = {};
+
287 std::vector<gltf_submesh_texture_data> textures = {};
+
288 };
+
+
289
+
+
290 class gltf
+
291 {
+
292 public:
+
293 gltf() = default;
+
294 // note: you should pass in the file contents of a .glb.
+
295 static gltf from_memory(std::string_view sv);
+
296 static gltf from_file(const char* path);
+
297 std::span<const std::byte> view_buffer(gltf_buffer_view view) const;
+
298 std::span<const gltf_mesh> get_meshes() const;
+
299 std::span<const gltf_buffer> get_buffers() const;
+
300 std::span<const gltf_image> get_images() const;
+
301 std::span<const gltf_material> get_materials() const;
+
302 std::span<const gltf_skin> get_skins() const;
+
303 std::span<const gltf_animation> get_animations() const;
+
304 std::span<const gltf_node> get_nodes() const;
+
305 std::vector<gltf_node> get_root_nodes() const;
+
306 std::vector<gltf_node> get_active_nodes() const;
+
307 gltf_submesh_data get_submesh_vertex_data(std::size_t meshid, std::size_t submeshid) const;
+
308 tz::io::image get_image_data(std::size_t imageid) const;
+
309 private:
+
310 gltf(std::string_view glb_data);
+
311 void parse_header(std::string_view header);
+
312 void parse_chunks(std::string_view chunkdata);
+
313 void create_scenes();
+
314 void create_nodes();
+
315 void create_buffers();
+
316 void create_images();
+
317 void create_materials();
+
318 void create_skins();
+
319 void create_animations();
+
320 void create_views();
+
321 void create_accessors();
+
322 void create_meshes();
+
323 gltf_buffer load_buffer(json node);
+
324 gltf_mesh load_mesh(json node);
+
325 std::span<const std::byte> get_binary_data(std::size_t offset, std::size_t len) const;
+
326 void compute_inverse_bind_matrices();
+
327 void compute_animation_data();
+
328
+
329 gltf_header header;
+
330 std::vector<gltf_chunk_data> chunks = {};
+
331 json data = {};
+
332 std::size_t active_scene_id = detail::badzu;
+
333 std::vector<gltf_scene> scenes = {};
+
334 std::vector<gltf_node> nodes = {};
+
335 std::vector<gltf_buffer> buffers = {};
+
336 std::vector<gltf_image> images = {};
+
337 std::vector<gltf_material> materials = {};
+
338 std::vector<gltf_skin> skins = {};
+
339 std::vector<gltf_animation> animations = {};
+
340 std::vector<gltf_buffer_view> views = {};
+
341 std::vector<gltf_accessor> accessors = {};
+
342 std::vector<gltf_mesh> meshes = {};
+
343 std::size_t parsed_buf_count = 0;
+
344 };
+
+
345}
+
346#endif // TOPAZ_IO_GLTF_HPP
+
Container for enum values, useful for vintage bitfield types.
Definition enum_field.hpp:16
+
Definition gltf.hpp:291
+
static gltf from_memory(std::string_view sv)
here's an example of what a glb's json chunk might look like: { "asset": { "generator":"Khronos glTF ...
Definition gltf.cpp:77
+
Represents a row-major matrix with R rows and C columns.
Definition matrix.hpp:16
+
Definition vector.hpp:18
+
matrix< float, 4, 4 > mat4
Definition matrix.hpp:208
+
mat4 view(tz::vec3 position, tz::vec3 rotation)
Generates a view matrix using the given view position and rotation.
Definition matrix_transform.cpp:109
+
vector< float, 4 > vec4
A vector of four floats.
Definition vector.hpp:219
+
vector< float, 3 > vec3
A vector of three floats.
Definition vector.hpp:217
+
mat4 scale(tz::vec3 scale)
Generates a matrix which performs the following transformations at once:
Definition matrix_transform.cpp:92
+
Definition gltf.hpp:101
+ + +
Definition gltf.hpp:184
+
Definition gltf.hpp:197
+
Definition gltf.hpp:204
+
Definition gltf.hpp:72
+
Definition gltf.hpp:23
+
Definition gltf.hpp:36
+
Definition gltf.hpp:42
+
Definition gltf.hpp:233
+
Definition gltf.hpp:240
+
Definition gltf.hpp:149
+
Definition gltf.hpp:146
+
Definition gltf.hpp:54
+
Definition gltf.hpp:48
+
Definition gltf.hpp:161
+
Definition gltf.hpp:282
+
Definition gltf.hpp:274
+
Definition gltf.hpp:255
+
Definition image.hpp:11
+
Definition trs.hpp:8
+
Versions consist of a major, minor, patch and a version_type.
Definition version.hpp:32
+
+ + + + diff --git a/gpu__mem_8hpp_source.html b/gpu__mem_8hpp_source.html new file mode 100644 index 0000000000..514411d70d --- /dev/null +++ b/gpu__mem_8hpp_source.html @@ -0,0 +1,125 @@ + + + + + + + +Topaz: src/tz/gl/impl/vulkan/detail/gpu_mem.hpp Source File + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.1.0.1 +
+
C++20 Graphics Engine
+
+
+ + + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+
gpu_mem.hpp
+
+
+
1#ifndef TOPAZ_GL_IMPL_BACKEND_VK2_GPU_MEM_HPP
+
2#define TOPAZ_GL_IMPL_BACKEND_VK2_GPU_MEM_HPP
+
3#if TZ_VULKAN
+
4
+
5namespace tz::gl::vk2
+
6{
+
7 enum class MemoryResidency
+
8 {
+
9 GPU,
+
10 CPU,
+
11 CPUPersistent
+
12 };
+
13}
+
14
+
15#endif // TZ_VULKAN
+
16#endif // TOPAZ_GL_IMPL_BACKEND_VK2_GPU_MEM_HPP
+
+ + + + diff --git a/graphics__pipeline_8hpp_source.html b/graphics__pipeline_8hpp_source.html new file mode 100644 index 0000000000..b1a43096fa --- /dev/null +++ b/graphics__pipeline_8hpp_source.html @@ -0,0 +1,311 @@ + + + + + + + +Topaz: src/tz/gl/impl/vulkan/detail/graphics_pipeline.hpp Source File + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.1.0.1 +
+
C++20 Graphics Engine
+
+
+ + + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+
graphics_pipeline.hpp
+
+
+
1#ifndef TOPAZ_GL_IMPL_BACKEND_VK2_GRAPHICS_PIPELINE_HPP
+
2#define TOPAZ_GL_IMPL_BACKEND_VK2_GRAPHICS_PIPELINE_HPP
+
3#if TZ_VULKAN
+
4
+
5#include "tz/gl/impl/vulkan/detail/shader.hpp"
+
6#include "tz/gl/impl/vulkan/detail/fixed_function.hpp"
+
7#include "tz/gl/impl/vulkan/detail/pipeline_layout.hpp"
+
8#include "tz/gl/impl/vulkan/detail/render_pass.hpp"
+
9
+
10namespace tz::gl::vk2
+
11{
+
+ +
13 {
+
14 public:
+
15 PipelineCache(const LogicalDevice& ldev);
+
16 PipelineCache(const PipelineCache& copy) = delete;
+ + +
19 PipelineCache& operator=(const PipelineCache& rhs) = delete;
+
20 PipelineCache& operator=(PipelineCache&& rhs);
+
21
+
22
+
23 bool is_null() const;
+
24 static PipelineCache null();
+
25 using NativeType = VkPipelineCache;
+
26 NativeType native() const;
+
27 private:
+
28 PipelineCache(std::nullptr_t);
+
29
+
30 VkPipelineCache cache = VK_NULL_HANDLE;
+
31 const LogicalDevice* ldev = nullptr;
+
32 };
+
+
+ +
34 {
+
35 ViewportState viewport;
+
36 VertexInputState vertex_input = {};
+
37 RasteriserState rasteriser = {};
+
38 MultisampleState multisample = {};
+
39 DepthStencilState depth_stencil = {};
+
40 ColourBlendState colour_blend = {};
+
41 DynamicState dynamic = {};
+
42 };
+
+
+ +
48 {
+
50 bool valid() const;
+
52 bool valid_device() const;
+
53
+
54 ShaderPipelineData shaders;
+
55 PipelineState state;
+
56 const PipelineLayout* pipeline_layout;
+
57 const RenderPass* render_pass;
+
+ +
59 {
+
60 std::vector<VkFormat> colour_attachment_formats = {};
+
61 VkFormat depth_format = VK_FORMAT_UNDEFINED;
+
62 bool operator==(const DynamicRenderingState& rhs) const = default;
+
63 };
+
+
64 DynamicRenderingState dynamic_rendering_state = {};
+
65 const LogicalDevice* device;
+
66 };
+
+
67
+
+ +
69 {
+
70 ShaderPipelineData shader;
+
71 const PipelineLayout* pipeline_layout;
+
72
+
73 const LogicalDevice* device;
+
74 };
+
+
75
+
+ +
81 {
+
82 public:
+
83 GraphicsPipeline(const GraphicsPipelineInfo& info, const PipelineCache& existing_cache = PipelineCache::null());
+
84 GraphicsPipeline(const GraphicsPipeline& copy) = delete;
+ + +
87
+
88 GraphicsPipeline& operator=(const GraphicsPipeline& rhs) = delete;
+
89 GraphicsPipeline& operator=(GraphicsPipeline&& rhs);
+
90
+
91 const LogicalDevice& get_device() const;
+
92 const GraphicsPipelineInfo& get_info() const;
+
93 void set_layout(PipelineLayout& layout);
+
94
+
95 using NativeType = VkPipeline;
+
96 NativeType native() const;
+
97 private:
+
98 VkPipeline pipeline;
+ +
100 };
+
+
101
+
+ +
103 {
+
104 public:
+
105 ComputePipeline(const ComputePipelineInfo& info, const PipelineCache& existing_cache = PipelineCache::null());
+
106 ComputePipeline(const ComputePipeline& copy) = delete;
+ + +
109
+
110 ComputePipeline& operator=(const ComputePipeline& rhs) = delete;
+
111 ComputePipeline& operator=(ComputePipeline&& rhs);
+
112
+
113 const LogicalDevice& get_device() const;
+
114 const ComputePipelineInfo& get_info() const;
+
115 void set_layout(PipelineLayout& layout);
+
116
+
117 using NativeType = VkPipeline;
+
118 NativeType native() const;
+
119 private:
+
120 VkPipeline pipeline;
+ +
122 };
+
+
123
+
+ +
125 {
+
126 public:
+
127 Pipeline(const GraphicsPipelineInfo& graphics_info, const PipelineCache& cache = PipelineCache::null());
+
128 Pipeline(const ComputePipelineInfo& compute_info, const PipelineCache& cache = PipelineCache::null());
+
129
+
130 PipelineContext get_context() const;
+
131 const LogicalDevice& get_device() const;
+
132 const PipelineLayout& get_layout() const;
+
133 void set_layout(PipelineLayout& layout);
+
134
+
135 using NativeType = VkPipeline;
+
136 NativeType native() const;
+
137
+
138 static Pipeline null();
+
139 bool is_null() const;
+
140 private:
+
141 Pipeline();
+
142
+
143 std::variant<GraphicsPipeline, ComputePipeline, std::monostate> pipeline_variant;
+
144 };
+
+
145
+
+ +
147 {
+
148 PipelineData() = default;
+ +
150 {
+
151 *this = std::move(move);
+
152 }
+
153 PipelineData& operator=(PipelineData&& rhs)
+
154 {
+
155 std::swap(this->layout, rhs.layout);
+
156 std::swap(this->data, rhs.data);
+
157 if(!this->layout.is_null())
+
158 {
+
159 this->data.set_layout(this->layout);
+
160 }
+
161 return *this;
+
162 }
+
163 PipelineLayout layout = PipelineLayout::null();
+
164 Pipeline data = Pipeline::null();
+
165 };
+
+
166}
+
167
+
168
+
169#endif // TZ_VULKAN
+
170#endif // TOPAZ_GL_IMPL_BACKEND_VK2_GRAPHICS_PIPELINE_HPP
+
Implements tz::gl::device_type.
Definition device.hpp:69
+
Definition graphics_pipeline.hpp:103
+
Represents the Graphics Pipeline.
Definition graphics_pipeline.hpp:81
+
Logical interface to an existing PhysicalDevice.
Definition logical_device.hpp:95
+
Definition graphics_pipeline.hpp:13
+
Definition graphics_pipeline.hpp:125
+
Represents an interface between shader stages and shader resources in terms of the layout of a group ...
Definition pipeline_layout.hpp:25
+
Represents a collection of attachments and subpasses and describes how the attachments are used throu...
Definition render_pass.hpp:188
+
PipelineContext
Specifies which pipeline type a RenderPass subpass is expected to bind to.
Definition render_pass.hpp:40
+
Specifies how a new fragment colour is combined with the previous colour within the output.
Definition fixed_function.hpp:213
+
Definition graphics_pipeline.hpp:69
+
Specifies the state of the depth/stencil buffer, if any.
Definition fixed_function.hpp:183
+
At present, dynamic state is not supported, so this struct is not configurable.
Definition fixed_function.hpp:239
+ +
Specifies creation flags for a GraphicsPipeline.
Definition graphics_pipeline.hpp:48
+
bool valid_device() const
Query as to whether the LogicalDevice logical_device is a valid device. That is, the device is not nu...
Definition graphics_pipeline.cpp:70
+
bool valid() const
Query as to whether the various state objects are valid and not-nullptr.
Definition graphics_pipeline.cpp:62
+
At present, multisampling is not supported, so this struct is not configurable.
Definition fixed_function.hpp:150
+
Definition graphics_pipeline.hpp:147
+
Definition graphics_pipeline.hpp:34
+
Configures how the geometry shaped by input data is transformed into fragments.
Definition fixed_function.hpp:133
+
Definition shader.hpp:85
+
Specifies how the input vertex data is organised.
Definition fixed_function.hpp:52
+
Specifies the region of the output that will be rendered to.
Definition fixed_function.hpp:88
+
+ + + + diff --git a/grid__view_8hpp_source.html b/grid__view_8hpp_source.html new file mode 100644 index 0000000000..853e1ba0d2 --- /dev/null +++ b/grid__view_8hpp_source.html @@ -0,0 +1,144 @@ + + + + + + + +Topaz: src/tz/core/data/grid_view.hpp Source File + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.1.0.1 +
+
C++20 Graphics Engine
+
+
+ + + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+
grid_view.hpp
+
+
+
1#ifndef TOPAZ_CORE_CONTAINERS_GRID_VIEW_HPP
+
2#define TOPAZ_CORE_CONTAINERS_GRID_VIEW_HPP
+
3#include "tz/core/data/vector.hpp"
+
4#include <span>
+
5#include <functional>
+
6
+
7namespace tz
+
8{
+
17 template<typename T, std::size_t N = 1>
+
+ +
19 {
+
20 public:
+
26 grid_view(std::span<T> data, tz::vec2ui dimensions);
+
32 grid_view(std::span<T> data, unsigned int length);
+ +
41 std::span<T> span();
+
45 std::span<const T> span() const;
+
46
+
55 std::conditional_t<N == 1, T&, std::span<T>> operator()(unsigned int x, unsigned int y);
+
56 private:
+
57 std::span<T> data;
+
58 tz::vec2ui dimensions;
+
59 };
+
+
60}
+
61
+
62#include "tz/core/data/grid_view.inl"
+
63
+
64#endif // TOPAZ_CORE_CONTAINERS_GRID_VIEW_HPP
+
A view into an array representing a flattened grid of data.
Definition grid_view.hpp:19
+
std::span< T > span()
Retrieve the underlying span.
Definition grid_view.inl:27
+
std::conditional_t< N==1, T &, std::span< T > > operator()(unsigned int x, unsigned int y)
Retrieve the element at the provided co-ordinate.
Definition grid_view.inl:39
+
tz::vec2ui get_dimensions() const
Retrieve the dimensions of the grid, in elements.
Definition grid_view.inl:21
+
vector< unsigned int, 2 > vec2ui
A vector of two unsigned ints.
Definition vector.hpp:244
+
+ + + + diff --git a/grid__view_8inl_source.html b/grid__view_8inl_source.html new file mode 100644 index 0000000000..a18b0bef47 --- /dev/null +++ b/grid__view_8inl_source.html @@ -0,0 +1,178 @@ + + + + + + + +Topaz: src/tz/core/data/grid_view.inl Source File + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.1.0.1 +
+
C++20 Graphics Engine
+
+
+ + + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+
grid_view.inl
+
+
+
1#include "tz/core/debug.hpp"
+
2
+
3namespace tz
+
4{
+
5 template<typename T, std::size_t N>
+
+
6 grid_view<T, N>::grid_view(std::span<T> data, tz::vec2ui dimensions):
+
7 data(data),
+
8 dimensions(dimensions)
+
9 {
+
10 if(this->data.size_bytes() < (this->dimensions[0] * this->dimensions[1] * sizeof(T) * N))
+
11 {
+
12 tz::report("grid_view passed a span of unexpected size. View is %ux%u where each element is %zu bytes, for a expected buffer size of %zu, but buffer provided has %zu bytes.", this->dimensions[0], this->dimensions[1], sizeof(T) * N, (this->dimensions[0] * this->dimensions[1] * sizeof(T) * N), this->data.size_bytes());
+
13 }
+
14 }
+
+
15
+
16 template<typename T, std::size_t N>
+
+
17 grid_view<T, N>::grid_view(std::span<T> data, unsigned int length):
+
18 grid_view<T, N>(data, {length, length}){}
+
+
19
+
20 template<typename T, std::size_t N>
+
+ +
22 {
+
23 return this->dimensions;
+
24 }
+
+
25
+
26 template<typename T, std::size_t N>
+
+
27 std::span<T> grid_view<T, N>::span()
+
28 {
+
29 return this->data;
+
30 }
+
+
31
+
32 template<typename T, std::size_t N>
+
+
33 std::span<const T> grid_view<T, N>::span() const
+
34 {
+
35 return this->data;
+
36 }
+
+
37
+
38 template<typename T, std::size_t N>
+
+
39 std::conditional_t<N == 1, T&, std::span<T>> grid_view<T, N>::operator()(unsigned int x, unsigned int y)
+
40 {
+
41 std::size_t idx = ((y * this->dimensions[0]) + x) * N;
+
42 tz::assert(x < this->dimensions[0] && y < this->dimensions[1], "grid_view access out of bounds. Dimensions = {%u, %u} must be > {%u, %u} which was requested", this->dimensions[0], this->dimensions[1], x, y);
+
43 tz::assert(idx < this->data.size(), "grid_view access out of bounds. About to invoke UB.");
+
44 if constexpr(N == 1)
+
45 {
+
46 return this->data[idx];
+
47 }
+
48 else
+
49 {
+
50 return this->data.subspan(idx, N);
+
51 }
+
52 }
+
+
53}
+
A view into an array representing a flattened grid of data.
Definition grid_view.hpp:19
+
void assert(bool condition, detail::format_string fmt="<No message>", Args &&... args)
Assert on a condition.
Definition debug.inl:33
+
void report(detail::format_string fmt, Args &&... args)
Print out the formatted message to standard output, including source location information.
Definition debug.inl:53
+
vector< unsigned int, 2 > vec2ui
A vector of two unsigned ints.
Definition vector.hpp:244
+
+ + + + diff --git a/group__tz__core.html b/group__tz__core.html new file mode 100644 index 0000000000..bc276bc657 --- /dev/null +++ b/group__tz__core.html @@ -0,0 +1,846 @@ + + + + + + + +Topaz: Core Functionality + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.1.0.1 +
+
C++20 Graphics Engine
+
+
+ + + + +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+ +
Core Functionality
+
+
+ +

A grab-bag of common helpers used frequently in other engine modules. +More...

+ + + + + + + + + + + + + + +

+Modules

 Algorithms
 Documentation for custom Topaz algorithms.
 
 Data
 Documentation for some niché data structures.
 
 Job System
 Documentation for job-system.
 
 Memory Utility
 Documentation for a grab-bag of memory helper structs, classes and functions.
 
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Data Structures

class  tz::callback< Args >
 Represents a centralised storage/management of callback functions of a common signature void(Args...). More...
 
struct  tz::transform_node< T >
 Represents a node within a transform hierarchy. More...
 
class  tz::transform_hierarchy< T >
 Represents a hierarchy of 3D transformations, with a payload applied. More...
 
class  tz::vector< T, S >
 
struct  tz::version
 Versions consist of a major, minor, patch and a version_type. More...
 
struct  tz::engine_info
 Represents information about the current engine used. More...
 
struct  tz::game_info
 Contains basic information about the target game/application. More...
 
class  tz::matrix< T, R, C >
 Represents a row-major matrix with R rows and C columns. More...
 
struct  tz::memblk
 A non-owning, contiguous block of memory. More...
 
class  tz::duration
 Represents some duration, expressable as a quantity of most time metrics. More...
 
class  tz::delay
 An object which is falsy until a certain amount of time has passed since construction. More...
 
struct  tz::initialise_info
 Specifies everything needed to initialise the engine. More...
 
+ + + + +

+Typedefs

+using tz::callback_handle = tz::handle< detail::callback_type >
 Opaque handle representing a reference to an existing tz::callback function.
 
+ + + + +

+Enumerations

enum class  tz::application_flag {
+  application_flag::no_graphics +,
+  application_flag::no_dbgui +,
+  application_flag::window_hidden +,
+  application_flag::window_noresize +,
+  application_flag::window_transparent +
+ }
 Represents custom functionality to be enabled/disabled during initialisation. More...
 
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Functions

version tz::get_version ()
 Retrieve the current version of Topaz.
 
template<typename... Args>
void tz::assert (bool condition, detail::format_string fmt="<No message>", Args &&... args)
 Assert on a condition.
 
template<typename... Args>
void tz::error (detail::format_string fmt="<No message>", Args &&... args)
 Breakpoint if a debugger is present.
 
template<typename... Args>
void tz::report (detail::format_string fmt, Args &&... args)
 Print out the formatted message to standard output, including source location information.
 
mat4 tz::translate (tz::vec3 position)
 Generate a matrix which performs the following transformations at once:
 
mat4 tz::rotate (tz::vec3 rotation)
 Generates a matrix which performs the following three transformations, in chronological order:
 
mat4 tz::scale (tz::vec3 scale)
 Generates a matrix which performs the following transformations at once:
 
mat4 tz::model (tz::vec3 position, tz::vec3 rotation, tz::vec3 scale)
 Generates a model matrix using the given position, euler-rotation and scale vectors.
 
mat4 tz::view (tz::vec3 position, tz::vec3 rotation)
 Generates a view matrix using the given view position and rotation.
 
mat4 tz::perspective (float fov, float aspect_ratio, float near, float far)
 Generates a perspective projection matrix using the given camera properties.
 
mat4 tz::orthographic (float left, float right, float top, float bottom, float near, float far)
 Generates an orthographic projection matrix using the given camera properties.
 
+duration tz::system_time ()
 Retrieve a duration corresponding to the time passed since epoch.
 
void tz::initialise (initialise_info init={})
 Initialise Topaz, creating a main application window.
 
void tz::terminate ()
 Terminate Topaz.
 
void tz::begin_frame ()
 Begin a new frame.
 
void tz::end_frame ()
 End the current frame.
 
tz::wsi::windowtz::window ()
 Retrieve the application window.
 
bool tz::is_initialised ()
 Query as to whether Topaz is initialised.
 
engine_info info ()
 Retrieves the engine_info for this specific build of Topaz.
 
+

Detailed Description

+

A grab-bag of common helpers used frequently in other engine modules.

+

A collection of platform-agnostic core interfaces.

+

Notable features:

+

Typedef Documentation

+ +

◆ mat4

+ +
+
+ + + + +
using tz::mat4 = typedef matrix<float, 4, 4>
+
+

A 4x4 row-major matrix of floats.

+ +
+
+

Enumeration Type Documentation

+ +

◆ application_flag

+ +
+
+ + + + + +
+ + + + +
enum class tz::application_flag
+
+strong
+
+ +

Represents custom functionality to be enabled/disabled during initialisation.

+ + + + + + +
Enumerator
no_graphics 
    +
  • Disables all graphics and rendering.
  • +
+
no_dbgui 
    +
  • Disable all debug-ui functionality.
  • +
+
window_hidden 
    +
  • The created window is invisible.
  • +
+
window_noresize 
    +
  • The created window cannot be resized.
  • +
+
window_transparent 
    +
  • The created window is transparent, meaning a translucent clear colour is respected.
  • +
+
+ +
+
+

Function Documentation

+ +

◆ assert()

+ +
+
+
+template<typename... Args>
+ + + + + + + + + + + + + + + + + + + + + + + + +
void tz::assert (bool condition,
detail::format_string fmt = "<No message>",
Args &&... args 
)
+
+ +

Assert on a condition.

+

If the condition is false, tz::error is invoked. Only works on debug builds (aka if TZ_DEBUG).

+ +
+
+ +

◆ begin_frame()

+ +
+
+ + + + + + + +
void tz::begin_frame ()
+
+ +

Begin a new frame.

+
Precondition
If tz::initialise() has not been invoked before this, then the behaviour is undefined.
+ +
+
+ +

◆ end_frame()

+ +
+
+ + + + + + + +
void tz::end_frame ()
+
+ +

End the current frame.

+
Precondition
tz::begin_frame() must have been invoked prior to this, otherwise the behaviour is undefined.
+ +
+
+ +

◆ error()

+ +
+
+
+template<typename... Args>
+ + + + + + + + + + + + + + + + + + +
void tz::error (detail::format_string fmt = "<No message>",
Args &&... args 
)
+
+ +

Breakpoint if a debugger is present.

+

If no debugger is present, terminate the application with the given message. Only works on debug builds (aka if TZ_DEBUG).

+ +
+
+ +

◆ get_version()

+ +
+
+ + + + + + + +
version tz::get_version ()
+
+ +

Retrieve the current version of Topaz.

+

Note that the build-config/render-api information is not contained here. For that, you'll want engine_info

+ +
+
+ +

◆ info()

+ +
+
+ + + + + +
+ + + + + + + +
engine_info info ()
+
+related
+
+ +

Retrieves the engine_info for this specific build of Topaz.

+
Returns
Information about this Topaz build.
+ +
+
+ +

◆ initialise()

+ +
+
+ + + + + + + + +
void tz::initialise (initialise_info init = {})
+
+ +

Initialise Topaz, creating a main application window.

+

The main application window is available via tz::window() from now until tz::terminate() is invoked.

Parameters
+ + +
initInformation about how the application should be initialised.
+
+
+ +
+
+ +

◆ is_initialised()

+ +
+
+ + + + + + + +
bool tz::is_initialised ()
+
+ +

Query as to whether Topaz is initialised.

+
Note
This function is within the Initial Group.
+
Returns
true If tz::initialise has been invoked and tz::terminate() has not yet been invoked. Otherwise, returns false.
+ +
+
+ +

◆ model()

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
mat4 tz::model (tz::vec3 position,
tz::vec3 rotation,
tz::vec3 scale 
)
+
+ +

Generates a model matrix using the given position, euler-rotation and scale vectors.

+

Note: This can be used to transform positions within model-space to world-space.

+ +
+
+ +

◆ orthographic()

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
mat4 tz::orthographic (float left,
float right,
float top,
float bottom,
float near,
float far 
)
+
+ +

Generates an orthographic projection matrix using the given camera properties.

+

The properties generate a cube-shaped projection.

+ +
+
+ +

◆ perspective()

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
mat4 tz::perspective (float fov,
float aspect_ratio,
float near,
float far 
)
+
+ +

Generates a perspective projection matrix using the given camera properties.

+

The properties generate a regular pyramidal-frustum-shaped projection. Note: This can be used to transform positions within camera-space to clip-space.

+ +
+
+ +

◆ report()

+ +
+
+
+template<typename... Args>
+ + + + + + + + + + + + + + + + + + +
void tz::report (detail::format_string fmt,
Args &&... args 
)
+
+ +

Print out the formatted message to standard output, including source location information.

+

Only works on debug builds.

+ +
+
+ +

◆ rotate()

+ +
+
+ + + + + + + + +
mat4 tz::rotate (tz::vec3 rotation)
+
+ +

Generates a matrix which performs the following three transformations, in chronological order:

+
    +
  • Rotates the result rotation[0] radians about the x-axis.
  • +
  • Rotates the result rotation[1] radians about the y-axis.
  • +
  • Rotates the result rotation[2] radians about the z-axis.
  • +
+ +
+
+ +

◆ scale()

+ +
+
+ + + + + + + + +
mat4 tz::scale (tz::vec3 scale)
+
+ +

Generates a matrix which performs the following transformations at once:

+
    +
  • Multiplies each value by scale[0] in the x-direction.
  • +
  • Multiplies each value by scale[1] in the y-direction.
  • +
  • Multiplies each value by scale[2] in the z-direction.
  • +
+ +
+
+ +

◆ terminate()

+ +
+
+ + + + + + + +
void tz::terminate ()
+
+ +

Terminate Topaz.

+
Precondition
If tz::initialise() has not been invoked before this, then the behaviour is undefined.
+

Just how tz::initialise() automatically spawns the main window, terminate also automatically destroys the window.

+ +
+
+ +

◆ translate()

+ +
+
+ + + + + + + + +
mat4 tz::translate (tz::vec3 position)
+
+ +

Generate a matrix which performs the following transformations at once:

+
    +
  • Translates the result position[0] units in the positive x-direction.
  • +
  • Translates the result position[1] units in the positive y-direction.
  • +
  • Translates the result position[2] units in the positive z-direction.
  • +
+ +
+
+ +

◆ view()

+ +
+
+ + + + + + + + + + + + + + + + + + +
mat4 tz::view (tz::vec3 position,
tz::vec3 rotation 
)
+
+ +

Generates a view matrix using the given view position and rotation.

+

Note: This can be used to transform positions within world-space to camera-space.

+ +
+
+ +

◆ window()

+ +
+
+ + + + + + + +
tz::wsi::window & tz::window ()
+
+ +

Retrieve the application window.

+
Postcondition
tz::initialise() has been invoked prior, but tz::terminate() has not yet been invoked.
+
Returns
Reference to the main application window.
+ +
+
+
+ + + + diff --git a/group__tz__core__algorithms.html b/group__tz__core__algorithms.html new file mode 100644 index 0000000000..118e7609d2 --- /dev/null +++ b/group__tz__core__algorithms.html @@ -0,0 +1,161 @@ + + + + + + + +Topaz: Algorithms + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.1.0.1 +
+
C++20 Graphics Engine
+
+
+ + + + +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+ + +
+
+ +

Documentation for custom Topaz algorithms. +More...

+ + + + + +

+Data Structures

struct  tz::static_for_t< N, N >
 Compute a compile-time for-loop. More...
 
+ + + + + +

+Functions

template<typename needle , typename... haystack>
constexpr bool tz::static_find ()
 Check if a needle is found in a haystack at compile-time.
 
+

Detailed Description

+

Documentation for custom Topaz algorithms.

+

These do not attempt to replace standard library algorithms, but in niché circumstances these may come in useful.

+

Function Documentation

+ +

◆ static_find()

+ +
+
+
+template<typename needle , typename... haystack>
+ + + + + +
+ + + + + + + +
constexpr bool tz::static_find ()
+
+constexpr
+
+ +

Check if a needle is found in a haystack at compile-time.

+
Template Parameters
+ + + +
needleneedle type to check exists within haystack...
haystackParameter pack which may or may not contain the type needle.
+
+
+
Returns
True if the template parameter pack 'haystack' contains a type such that std::is_same<needle, Type> is true. Otherwise, returns false.
+ +
+
+
+ + + + diff --git a/group__tz__core__data.html b/group__tz__core__data.html new file mode 100644 index 0000000000..f5cb7a1ebf --- /dev/null +++ b/group__tz__core__data.html @@ -0,0 +1,123 @@ + + + + + + + +Topaz: Data + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.1.0.1 +
+
C++20 Graphics Engine
+
+
+ + + + +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+ + +
+
+ +

Documentation for some niché data structures. +More...

+ + + + + + + + + + + + + +

+Data Structures

class  tz::basic_list< T, Allocator >
 Custom list, feature subset of std::vector. More...
 
class  tz::enum_field< E >
 Container for enum values, useful for vintage bitfield types. More...
 
class  tz::grid_view< T, N >
 A view into an array representing a flattened grid of data. More...
 
class  tz::PolymorphicList< T, Allocator >
 
+

Detailed Description

+

Documentation for some niché data structures.

+

These do not attempt to replace standard library containers - you should continue using those for the most part, although often one of these containers may be preferable.

+
+ + + + diff --git a/group__tz__core__job.html b/group__tz__core__job.html new file mode 100644 index 0000000000..a638ff7f62 --- /dev/null +++ b/group__tz__core__job.html @@ -0,0 +1,171 @@ + + + + + + + +Topaz: Job System + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.1.0.1 +
+
C++20 Graphics Engine
+
+
+ + + + +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+ + +
+
+ +

Documentation for job-system. +More...

+ + + + + +

+Data Structures

struct  tz::execution_info
 Additional optional data about how a job is to be executed. More...
 
+ + + + + + + + + + +

+Typedefs

+using tz::job_handle_data = tz::handle< detail::job_handle_tag >
 Represents a job that has begun execution within a job_system_type.
 
using tz::job_t = std::function< void()>
 Represents a job.
 
using tz::job_system_t = tz::impl::job_system_threadpool_lfq
 Underlying job system.
 
+ + + + +

+Functions

+job_system_ttz::job_system ()
 Retrieve the global job system.
 
+

Detailed Description

+

Documentation for job-system.

+

Typedef Documentation

+ +

◆ job_system_t

+ +
+
+ + + + +
using tz::job_system_t = typedef tz::impl::job_system_threadpool_lfq
+
+ +

Underlying job system.

+

See tz::job_system_type for API.

+ +
+
+ +

◆ job_t

+ +
+
+ + + + +
using tz::job_t = typedef std::function<void()>
+
+ +

Represents a job.

+

Jobs have no arguments and no return value.

+ +
+
+
+ + + + diff --git a/group__tz__core__memory.html b/group__tz__core__memory.html new file mode 100644 index 0000000000..49eee42c47 --- /dev/null +++ b/group__tz__core__memory.html @@ -0,0 +1,114 @@ + + + + + + + +Topaz: Memory Utility + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.1.0.1 +
+
C++20 Graphics Engine
+
+
+ + + + +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+ + +
+
+ +

Documentation for a grab-bag of memory helper structs, classes and functions. +More...

+ + + + + +

+Modules

 Allocators
 Documentation for bespoke memory allocators.
 
+

Detailed Description

+

Documentation for a grab-bag of memory helper structs, classes and functions.

+
+ + + + diff --git a/group__tz__core__memory__allocator.html b/group__tz__core__memory__allocator.html new file mode 100644 index 0000000000..444037ac4b --- /dev/null +++ b/group__tz__core__memory__allocator.html @@ -0,0 +1,129 @@ + + + + + + + +Topaz: Allocators + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.1.0.1 +
+
C++20 Graphics Engine
+
+
+ + + + +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+ + +
+
+ +

Documentation for bespoke memory allocators. +More...

+ + + + + + + + + + + + + + + + + + + + +

+Data Structures

class  tz::allocator_adapter< T, A >
 A meta-allocator which allows a tz allocator to be used as if it were a std::allocator. More...
 
class  tz::fallback_allocator< P, S >
 Implements tz::allocator. More...
 
class  tz::linear_allocator
 An allocator which operates on a pre-allocated buffer of variable size. More...
 
class  tz::mallocator
 Implements tz:allocator. More...
 
class  tz::null_allocator
 An allocator which always returns nullptr. More...
 
class  tz::stack_allocator< S >
 An allocator which has its own fixed-size buffer on the stack from which memory is sub-allocated. More...
 
+

Detailed Description

+

Documentation for bespoke memory allocators.

+
+ + + + diff --git a/group__tz__cpp.html b/group__tz__cpp.html new file mode 100644 index 0000000000..87b4120fd7 --- /dev/null +++ b/group__tz__cpp.html @@ -0,0 +1,122 @@ + + + + + + + +Topaz: C++ API Reference + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.1.0.1 +
+
C++20 Graphics Engine
+
+
+ + + + +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+ +
C++ API Reference
+
+
+ + + + + + + + + + + + + + + + + +

+Modules

 Core Functionality
 A grab-bag of common helpers used frequently in other engine modules.
 
 Debug UI
 On debug builds, debug-ui is always displayed on the main window above anything being rendered.
 
 Graphics Library
 Hardware-accelerated 3D graphics library.
 
 Lua Integration
 Run Lua code from within Topaz C++.
 
 Window System Integration
 Documentation for functionality related to windowing, peripherals and input.
 
+

Detailed Description

+
+ + + + diff --git a/group__tz__dbgui.html b/group__tz__dbgui.html new file mode 100644 index 0000000000..891e3ee94a --- /dev/null +++ b/group__tz__dbgui.html @@ -0,0 +1,230 @@ + + + + + + + +Topaz: Debug UI + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.1.0.1 +
+
C++20 Graphics Engine
+
+
+ + + + +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+ + +
+
+ +

On debug builds, debug-ui is always displayed on the main window above anything being rendered. +More...

+ + + + + + + + + + + + + + +

+Functions

void tz::dbgui::run (tz::action auto action)
 As dbgui is only available on TZ_DEBUG, calling ImGui functions directly in game-code will yield runtime errors on non-debug builds.
 
game_menu_callback_type & tz::dbgui::game_menu ()
 Retrieve the game menu callback.
 
bool tz::dbgui::claims_keyboard ()
 Query as to whether the debug-ui is currently using the keyboard input.
 
bool tz::dbgui::claims_mouse ()
 Query as to whether the debug-ui is currently using the mouse input.
 
+

Detailed Description

+

On debug builds, debug-ui is always displayed on the main window above anything being rendered.

+

When debug-ui is enabled, this API is useful for allowing easy debug-only user activity (such as tweaking a value without recompiling).

+

If you're experienced using ImGui, you're free to #include "tz/dbgui/dbgui.hpp" and start using ImGui functions to your hearts content. If you're not comfortable using ImGui, now's a great time to learn.

+
Note
Debug-UI functionality (and therefore imgui functions) cannot be used or invoked before tz::initialise.
+

Function Documentation

+ +

◆ claims_keyboard()

+ +
+
+ + + + + + + +
bool tz::dbgui::claims_keyboard ()
+
+ +

Query as to whether the debug-ui is currently using the keyboard input.

+

You might want to check if this is false before taking key input elsewhere (or the user could input into multiple places at once).

+

If dbgui is not available, this always returns false.

+ +
+
+ +

◆ claims_mouse()

+ +
+
+ + + + + + + +
bool tz::dbgui::claims_mouse ()
+
+ +

Query as to whether the debug-ui is currently using the mouse input.

+

You might want to check if this is false before taking mouse input elsewhere (or the user could input into multiple places at once).

+

If dbgui is not available, this always returns false.

+ +
+
+ +

◆ game_menu()

+ +
+
+ + + + + + + +
game_menu_callback_type & tz::dbgui::game_menu ()
+
+ +

Retrieve the game menu callback.

+

Use this if you want to add menu items to the top imgui menu under your application name.

+

Example:

bool game_menu_enabled = false;
+
tz::dbgui::game_menu().add_callback([&game_menu_enabled]()
+
{
+
ImGui::MenuItem("Control Panel", nullptr, &game_menu_enabled);
+
});
+
if(game_menu_enabled){...}
+
game_menu_callback_type & game_menu()
Retrieve the game menu callback.
Definition dbgui.cpp:163
+
+
+
+ +

◆ run()

+ +
+
+ + + + + +
+ + + + + + + + +
void tz::dbgui::run (tz::action auto action)
+
+inline
+
+ +

As dbgui is only available on TZ_DEBUG, calling ImGui functions directly in game-code will yield runtime errors on non-debug builds.

+

ImGui function invocations should instead be stored within a lambda and passed to this function, which will do nothing on non-debug builds, and can do extra debug-only state checks.

+

Example:

+
{
+
ImGui::Text("This is some text.");
+
}
+
void run(tz::action auto action)
As dbgui is only available on TZ_DEBUG, calling ImGui functions directly in game-code will yield runt...
Definition dbgui.hpp:70
+
+
+
+
+ + + + diff --git a/group__tz__gl2.html b/group__tz__gl2.html new file mode 100644 index 0000000000..155e49e657 --- /dev/null +++ b/group__tz__gl2.html @@ -0,0 +1,284 @@ + + + + + + + +Topaz: Graphics Library + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.1.0.1 +
+
C++20 Graphics Engine
+
+
+ + + + +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+ +
Graphics Library
+
+
+ +

Hardware-accelerated 3D graphics library. +More...

+ + + + + + + + + + + + + + +

+Modules

 Inputs and Outputs
 Documentation for inputs and outputs for both Renderers and Processors.
 
 Maintainer Guide
 For Topaz maintainers only.
 
 Renderers
 Documentation for Renderers.
 
 Resources
 Resources Wiki
 
+ + + + +

+Concepts

concept  tz::gl::device_type
 Named Requirement: device Implemented by tz_gl2_device.
 
+ + + + +

+Data Structures

class  tz::gl::device
 Implements tz::gl::device_type. More...
 
+ + + + +

+Enumerations

enum class  tz::gl::image_format { image_format::undefined +, R8 +, R8_UNorm = R8 +, R8_SNorm +, R8_UInt +, R8_SInt +, R8_sRGB +, R16 +, R16_UNorm = R16 +, R16_SNorm +, R16_UInt +, R16_SInt +, RG16 +, RG16_UNorm = RG16 +, RG16_SNorm +, RG16_UInt +, RG16_SInt +, RG16_sRGB +, RG32 +, RG32_UNorm = RG32 +, RG32_SNorm +, RG32_UInt +, RG32_SInt +, RGB24 +, RGB24_UNorm = RGB24 +, RGB24_SNorm +, RGB24_UInt +, RGB24_SInt +, RGB24_sRGB +, BGR24 +, BGR24_UNorm = BGR24 +, BGR24_SNorm +, BGR24_UInt +, BGR24_SInt +, BGR24_sRGB +, RGBA32 +, RGBA32_UNorm = RGBA32 +, RGBA32_SNorm +, RGBA32_UInt +, RGBA32_SInt +, RGBA32_sRGB +, BGRA32 +, BGRA32_UNorm = BGRA32 +, BGRA32_SNorm +, BGRA32_UInt +, BGRA32_SInt +, BGRA32_sRGB +, RGBA64_SFloat +, RGBA128_SFloat +, Depth16 +, Depth16_UNorm = Depth16 +, Count + }
 Various image formats are supported in Topaz. More...
 
+ + + + +

+Functions

devicetz::gl::get_device ()
 Retrieve the global device.
 
+

Detailed Description

+

Hardware-accelerated 3D graphics library.

+

Rendering 3D graphics in Topaz is achieved by doing the following:

+

Enumeration Type Documentation

+ +

◆ image_format

+ +
+
+ + + + + +
+ + + + +
enum class tz::gl::image_format
+
+strong
+
+ +

Various image formats are supported in Topaz.

+

image_formats are comprised of three properties.

+

The enum values are named as ComponentsSizeInternal where:

    +
  • Components (R, RG, RGB, BGR, RGBA): number of components and order.
  • +
  • Size (8, 16, 24, 32): Total size of the whole element, not just one component. Assume all components are equally-sized.
  • +
  • Internal (UNORM, SNORM, UINT, SINT): Value type of the element. This can be ommitted, in which case the default is UNORM.
      +
    • UNORM = float [0 -> -1]
    • +
    • SNORM = float [-1 -> 1]
    • +
    • UINT = unsigned int
    • +
    • SINT = signed int
    • +
    • SFLOAT = signed float
    • +
    • SRGB = sRGB nonlinear encoding
    • +
    +
  • +
+

Examples:

    +
  • RGBA32 = (RGBA, 32 bit, UNORM)
  • +
  • RGBA32_UNorm = (RGBA, 32 bit, UNORM) == RGBA32
  • +
  • R8_SNorm = (R, 8 bit, SNORM)
  • +
  • BGRA16_UInt = (BGRA, 16 bit, UINT)
  • +
+ + +
Enumerator
undefined 
    +
  • Undefined Format. It is mostly an error to use this.
  • +
+
+ +
+
+

Function Documentation

+ +

◆ get_device()

+ +
+
+ + + + + + + +
device & tz::gl::get_device ()
+
+ +

Retrieve the global device.

+

See tz::gl::device_type for usage and functionality.

+

You should not be creating your own devices.

+ +
+
+
+ + + + diff --git a/group__tz__gl2__graphicsapi.html b/group__tz__gl2__graphicsapi.html new file mode 100644 index 0000000000..f804416cdc --- /dev/null +++ b/group__tz__gl2__graphicsapi.html @@ -0,0 +1,118 @@ + + + + + + + +Topaz: Maintainer Guide + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.1.0.1 +
+
C++20 Graphics Engine
+
+
+ + + + +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+ + +
+
+ +

For Topaz maintainers only. +More...

+ + + + + + + + +

+Modules

 OpenGL
 Documentation for all things OpenGL.
 
 Vulkan
 Documentation for all things Vulkan.
 
+

Detailed Description

+

For Topaz maintainers only.

+

Here you will find implementation details for both of the graphics API backends (OpenGL and Vulkan)

+
+ + + + diff --git a/group__tz__gl2__graphicsapi__ogl.html b/group__tz__gl2__graphicsapi__ogl.html new file mode 100644 index 0000000000..f84d9a2f67 --- /dev/null +++ b/group__tz__gl2__graphicsapi__ogl.html @@ -0,0 +1,117 @@ + + + + + + + +Topaz: OpenGL + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.1.0.1 +
+
C++20 Graphics Engine
+
+
+ + + + +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+ + +
+
+ +

Documentation for all things OpenGL. +More...

+ + + + + + + + +

+Modules

 OpenGL Backend
 Documentation for the OpenGL backend, which acts as a large abstraction around OpenGL.
 
 OpenGL Frontend
 Documentation for the OpenGL Frontend, which connects the OpenGL Backend to the tz::gl API.
 
+

Detailed Description

+

Documentation for all things OpenGL.

+
+ + + + diff --git a/group__tz__gl2__graphicsapi__ogl__frontend.html b/group__tz__gl2__graphicsapi__ogl__frontend.html new file mode 100644 index 0000000000..1cf1e0ee22 --- /dev/null +++ b/group__tz__gl2__graphicsapi__ogl__frontend.html @@ -0,0 +1,114 @@ + + + + + + + +Topaz: OpenGL Frontend + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.1.0.1 +
+
C++20 Graphics Engine
+
+
+ + + + +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+ + +
+
+ +

Documentation for the OpenGL Frontend, which connects the OpenGL Backend to the tz::gl API. +More...

+ + + + + +

+Modules

 renderer Implementation
 Documentation for the OpenGL Frontend implementation of renderer_type.
 
+

Detailed Description

+

Documentation for the OpenGL Frontend, which connects the OpenGL Backend to the tz::gl API.

+
+ + + + diff --git a/group__tz__gl2__graphicsapi__ogl__frontend__renderer.html b/group__tz__gl2__graphicsapi__ogl__frontend__renderer.html new file mode 100644 index 0000000000..4aa3c603f8 --- /dev/null +++ b/group__tz__gl2__graphicsapi__ogl__frontend__renderer.html @@ -0,0 +1,123 @@ + + + + + + + +Topaz: renderer Implementation + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.1.0.1 +
+
C++20 Graphics Engine
+
+
+ + + + +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+ + +
+
+ +

Documentation for the OpenGL Frontend implementation of renderer_type. +More...

+ + + + + + + + + + + + + + +

+Data Structures

class  tz::gl::ResourceStorage
 Copies all resource data from upon creation and handles resource and component lifetimes. More...
 
class  tz::gl::ShaderManager
 Stores the shader program and allows the renderer to use it before emitting a draw call. More...
 
class  tz::gl::OutputManager
 Stores information about the output target, and a framebuffer which either points to an offscreen image for render-to-texture (not yet implemented), or the main window framebuffer via ogl2::framebuffer::null(). More...
 
class  tz::gl::renderer_ogl
 renderer implementation which heavily calls into the backend at OpenGL Backend. More...
 
+

Detailed Description

+

Documentation for the OpenGL Frontend implementation of renderer_type.

+
+ + + + diff --git a/group__tz__gl2__graphicsapi__vk.html b/group__tz__gl2__graphicsapi__vk.html new file mode 100644 index 0000000000..ade92112bd --- /dev/null +++ b/group__tz__gl2__graphicsapi__vk.html @@ -0,0 +1,117 @@ + + + + + + + +Topaz: Vulkan + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.1.0.1 +
+
C++20 Graphics Engine
+
+
+ + + + +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+ + +
+
+ +

Documentation for all things Vulkan. +More...

+ + + + + + + + +

+Modules

 Vulkan Backend
 Documentation for the Vulkan backend, which acts as a large abstraction around Vulkan.
 
 Vulkan Frontend
 Documentation for the Vulkan Frontend, which connects the Vulkan Backend to the tz::gl API.
 
+

Detailed Description

+

Documentation for all things Vulkan.

+
+ + + + diff --git a/group__tz__gl2__graphicsapi__vk__frontend.html b/group__tz__gl2__graphicsapi__vk__frontend.html new file mode 100644 index 0000000000..6a30bda35f --- /dev/null +++ b/group__tz__gl2__graphicsapi__vk__frontend.html @@ -0,0 +1,104 @@ + + + + + + + +Topaz: Vulkan Frontend + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.1.0.1 +
+
C++20 Graphics Engine
+
+
+ + + + +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+ +
+
+ +

Documentation for the Vulkan Frontend, which connects the Vulkan Backend to the tz::gl API. +

+

Documentation for the Vulkan Frontend, which connects the Vulkan Backend to the tz::gl API.

+
+ + + + diff --git a/group__tz__gl2__io.html b/group__tz__gl2__io.html new file mode 100644 index 0000000000..99a72f7115 --- /dev/null +++ b/group__tz__gl2__io.html @@ -0,0 +1,104 @@ + + + + + + + +Topaz: Inputs and Outputs + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.1.0.1 +
+
C++20 Graphics Engine
+
+
+ + + + +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
Inputs and Outputs
+
+
+ +

Documentation for inputs and outputs for both Renderers and Processors. +

+

Documentation for inputs and outputs for both Renderers and Processors.

+
+ + + + diff --git a/group__tz__gl2__renderer.html b/group__tz__gl2__renderer.html new file mode 100644 index 0000000000..edbc367028 --- /dev/null +++ b/group__tz__gl2__renderer.html @@ -0,0 +1,248 @@ + + + + + + + +Topaz: Renderers + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.1.0.1 +
+
C++20 Graphics Engine
+
+
+ + + + +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+ + +
+
+ +

Documentation for Renderers. +More...

+ + + + + +

+Concepts

concept  tz::gl::renderer_type
 Named requirement for a renderer.
 
+ + + + + + + + + + + + + +

+Data Structures

struct  tz::gl::render_state
 Stores renderer-specific state, which drives the behaviour of the rendering. More...
 
class  tz::gl::renderer_info
 Helper struct which the user can use to specify which inputs, resources they want and where they want a renderer to render to. More...
 
class  tz::gl::RendererEditBuilder
 Helper class which can be used to generate a renderer_edit_request. More...
 
class  tz::gl::renderer
 Implements tz::gl::renderer_type. More...
 
+ + + + + + + + + + +

+Typedefs

+using tz::gl::renderer_handle = tz::handle< detail::renderer_tag >
 Represents a handle for a renderer owned by an existing device.
 
+using tz::gl::renderer_options = tz::enum_field< renderer_option >
 Represents a collection of renderer options.
 
using tz::gl::renderer_edit_request = std::vector< renderer_edit::variant >
 Represents an edit to an existing renderer.
 
+ + + + +

+Enumerations

enum class  tz::gl::renderer_option {
+  renderer_option::no_depth_testing +,
+  renderer_option::alpha_blending +,
+  renderer_option::render_wait +,
+  renderer_option::no_clear_output +,
+  renderer_option::no_present +,
+  renderer_option::draw_indirect_count +,
+  _internal_final_dbgui_renderer +,
+  _internal +,
+  Count +
+ }
 Specifies options to enable extra functionality within Renderers. More...
 
+ + + + +

+Functions

+void tz::gl::common_renderer_dbgui (renderer_type auto &renderer)
 Helper function which displays render-api-agnostic information about renderers.
 
+

Detailed Description

+

Documentation for Renderers.

+

Typedef Documentation

+ +

◆ renderer_edit_request

+ +
+
+ + + + +
using tz::gl::renderer_edit_request = typedef std::vector<renderer_edit::variant>
+
+ +

Represents an edit to an existing renderer.

+
Note
This is a large structure. You should use the helper class RendererEditBuilder to create one of these instead of attempting to fill it directly.
+ +
+
+

Enumeration Type Documentation

+ +

◆ renderer_option

+ +
+
+ + + + + +
+ + + + +
enum class tz::gl::renderer_option
+
+strong
+
+ +

Specifies options to enable extra functionality within Renderers.

+ + + + + + + +
Enumerator
no_depth_testing 
    +
  • Disables depth-testing and depth-writing.
  • +
+
alpha_blending 
    +
  • Enables alpha-blending. Causes pixels with alpha value <1.0 to blend with the previous colour in the framebuffer, at a small cost to performance.
  • +
+
render_wait 
    +
  • When a renderer submits its render work to the GPU, the caller thread blocks until the GPU work has been completed.
  • +
+
no_clear_output 
    +
  • A graphics renderer will not clear its output image when it performs its GPU work. This also means that the render target must have already been drawn into this frame prior, otherwise the behaviour is undefined..
  • +
+
no_present 
    +
  • A graphics renderer will not present the output image that it renders into after its GPU work is complete. If the renderer targets an image_output, then this has no effect.
  • +
+
draw_indirect_count 
    +
  • The renderer's state().graphics.draw_buffer is assumed to contain a uint32 representing the draw count at the very start of the buffer, and the draw commands appear after that count in memory.
  • +
+
+ +
+
+
+ + + + diff --git a/group__tz__gl2__res.html b/group__tz__gl2__res.html new file mode 100644 index 0000000000..f6384387ca --- /dev/null +++ b/group__tz__gl2__res.html @@ -0,0 +1,305 @@ + + + + + + + +Topaz: Resources + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.1.0.1 +
+
C++20 Graphics Engine
+
+
+ + + + +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+ + +
+
+ +

Resources Wiki +More...

+ + + + + + + + + + + +

+Data Structures

class  tz::gl::iresource
 Interface for a renderer or Processor resource. More...
 
class  tz::gl::buffer_resource
 Represents a fixed-size, static Buffer to be used by a renderer or Processor. More...
 
class  tz::gl::image_resource
 Represents a fixed-size, static Image to be used by a renderer or Processor. More...
 
+ + + + + + + + + + +

+Enumerations

enum class  tz::gl::resource_type {
+  resource_type::buffer +,
+  resource_type::image +
+ }
 Specifies the type of the resource; which is how a renderer or Processor will interpret the usage of the resource within a shader. More...
 
enum class  tz::gl::resource_flag {
+  resource_flag::index_buffer +,
+  resource_flag::draw_indirect_buffer +,
+  resource_flag::renderer_output +,
+  resource_flag::image_filter_nearest +,
+  resource_flag::image_filter_linear +,
+  resource_flag::image_mip_nearest +,
+  resource_flag::image_mip_linear +,
+  resource_flag::image_wrap_clamp_edge +,
+  resource_flag::image_wrap_repeat +,
+  resource_flag::image_wrap_mirrored_repeat +,
+  Count +
+ }
 Specifies optional flags which affect the behaviour of a resource in some way. More...
 
enum class  tz::gl::resource_access {
+  resource_access::static_access +,
+  resource_access::dynamic_access +,
+  Count +
+ }
 Describes the manner in which a resource can be read or written to, when owned by a renderer or Processor. More...
 
+

Detailed Description

+

Resources Wiki

+

Enumeration Type Documentation

+ +

◆ resource_access

+ +
+
+ + + + + +
+ + + + +
enum class tz::gl::resource_access
+
+strong
+
+ +

Describes the manner in which a resource can be read or written to, when owned by a renderer or Processor.

+ + + +
Enumerator
static_access 
    +
  • resource data can only be written initially, or modified via a renderer edit.
  • +
+
dynamic_access 
    +
  • resource data can be modified at anytime.
  • +
+
+ +
+
+ +

◆ resource_flag

+ +
+
+ + + + + +
+ + + + +
enum class tz::gl::resource_flag
+
+strong
+
+ +

Specifies optional flags which affect the behaviour of a resource in some way.

+ + + + + + + + + + + +
Enumerator
index_buffer 
    +
  • Indicates that the buffer should be treated as a hardware index buffer. It will act as a bespoke non-shader-resource buffer that must store indices encoded as unsigned int[]. Can only be applied to buffer resources.
  • +
+
draw_indirect_buffer 
    +
  • Indicates that the buffer should contain draw commands which will be used in a render invocation.
  • +
+
renderer_output 
    +
  • Indicates that the image can be used as an image_output for another renderer. Can only be applied to image resources.
  • +
+
image_filter_nearest 
    +
  • Indicates that when doing min/mag on the image, the value of the nearest texel to the texcoord is retrieved.
  • +
+
image_filter_linear 
    +
  • Indicates that when doing min/mag on the image, the value of the weighted average of the nearest texels is retrieved. This is the default filter.
  • +
+
image_mip_nearest 
    +
  • Indicates that the chosen mip will have the closest match of size to the texture pixel.
    Note
    Not yet implemented.
    +
  • +
+
image_mip_linear 
    +
  • Indicates that a mip computed from the weighted average of the next and previous mip will be chosen.
    Note
    Not yet implemented.
    +
  • +
+
image_wrap_clamp_edge 
    +
  • Indicates that if sampled outside of its dimensions, the colour of the sampled pixel will match that of the closest axis-aligned texel. This is the default wrap mode.
  • +
+
image_wrap_repeat 
    +
  • Indicates that if sampled outside of its dimensions, the colour of the sampled pixel will begin repeating as if from zero.
  • +
+
image_wrap_mirrored_repeat 
    +
  • Indicates that if sampled outside of this dimensions, the colour of the sampled pixel will begin repeating as if from zero, except each time the image will look mirrored.
  • +
+
+ +
+
+ +

◆ resource_type

+ +
+
+ + + + + +
+ + + + +
enum class tz::gl::resource_type
+
+strong
+
+ +

Specifies the type of the resource; which is how a renderer or Processor will interpret the usage of the resource within a shader.

+ + + +
Enumerator
buffer 
    +
  • resource is a buffer resource, which contains arbitrary data.
  • +
+
image 
    +
  • resource is an image resource, of some format and dimensions.
  • +
+
+ +
+
+
+ + + + diff --git a/group__tz__gl__ogl2.html b/group__tz__gl__ogl2.html new file mode 100644 index 0000000000..9830099dcb --- /dev/null +++ b/group__tz__gl__ogl2.html @@ -0,0 +1,147 @@ + + + + + + + +Topaz: OpenGL Backend + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.1.0.1 +
+
C++20 Graphics Engine
+
+
+ + + + +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+ + +
+
+ +

Documentation for the OpenGL backend, which acts as a large abstraction around OpenGL. +More...

+ + + + + + + + + + + + + + +

+Modules

 Buffers
 Documentation for OpenGL Buffers.
 
 Framebuffers
 Documentation for everything relating to framebuffers.
 
 Images, Samplers and Formats
 Documentation for everything relating to Images, Samplers and image_formats.
 
 Shaders
 Documentation for everything relating to shaders.
 
+ + + + +

+Data Structures

class  tz::gl::ogl2::vertex_array
 Wrapper for an OpenGL VAO. More...
 
+ + + + + + + + + + +

+Functions

+void tz::gl::ogl2::initialise ()
 Initialise the OpenGL backend.
 
+void tz::gl::ogl2::terminate ()
 Terminate the OpenGL backend.
 
+bool tz::gl::ogl2::is_initialised ()
 Query as to whether the OpenGL backend has been initialised or not.
 
+

Detailed Description

+

Documentation for the OpenGL backend, which acts as a large abstraction around OpenGL.

+

This is a low-level module free of all context relevant to Topaz.

+
+ + + + diff --git a/group__tz__gl__ogl2__buffers.html b/group__tz__gl__ogl2__buffers.html new file mode 100644 index 0000000000..9da346bd5a --- /dev/null +++ b/group__tz__gl__ogl2__buffers.html @@ -0,0 +1,297 @@ + + + + + + + +Topaz: Buffers + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.1.0.1 +
+
C++20 Graphics Engine
+
+
+ + + + +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+ + +
+
+ +

Documentation for OpenGL Buffers. +More...

+ + + + + + + + +

+Data Structures

struct  tz::gl::ogl2::buffer_info
 Specifies creation flags for a buffer. More...
 
class  tz::gl::ogl2::buffer
 Documentation for OpenGL buffers. More...
 
+ + + + + + + +

+Enumerations

enum class  tz::gl::ogl2::buffer_target : GLenum {
+  buffer_target::index = GL_ELEMENT_ARRAY_BUFFER +,
+  buffer_target::draw_indirect = GL_DRAW_INDIRECT_BUFFER +,
+  buffer_target::uniform = GL_UNIFORM_BUFFER +,
+  buffer_target::shader_storage = GL_SHADER_STORAGE_BUFFER +,
+  buffer_target::parameter = GL_PARAMETER_BUFFER_ARB +
+ }
 Specifies the target to which the buffer is bound for its data store. More...
 
enum class  tz::gl::ogl2::buffer_residency {
+  buffer_residency::static_fixed +,
+  buffer_residency::dynamic +
+ }
 Specifies the expected behaviour of the data store contents. More...
 
+ + + + + + + +

+Functions

void tz::gl::ogl2::buffer_helper::copy (const buffer &source, buffer &destination)
 Copy the entire data store of a buffer to another.
 
buffer tz::gl::ogl2::buffer_helper::clone_resized (const buffer &buf, std::size_t new_size)
 buffers are not resizeable.
 
+

Detailed Description

+

Documentation for OpenGL Buffers.

+

Enumeration Type Documentation

+ +

◆ buffer_residency

+ +
+
+ + + + + +
+ + + + +
enum class tz::gl::ogl2::buffer_residency
+
+strong
+
+ +

Specifies the expected behaviour of the data store contents.

+ + + +
Enumerator
static_fixed 
    +
  • The data store contents can never be modified except from by transfer commands. This means that it cannot be mapped at all.
  • +
+
dynamic 
    +
  • The data store contents could be modified repeatedly. The buffer is read+write mappable.
  • +
+
+ +
+
+ +

◆ buffer_target

+ +
+
+ + + + + +
+ + + + +
enum class tz::gl::ogl2::buffer_target : GLenum
+
+strong
+
+ +

Specifies the target to which the buffer is bound for its data store.

+ + + + + + +
Enumerator
index 
    +
  • Index buffers (IBOs).
  • +
+
draw_indirect 
    +
  • Draw Indirect buffers.
  • +
+
uniform 
    +
  • Uniform buffers (UBOs).
  • +
+
shader_storage 
    +
  • Shader Storage buffers (SSBOs).
  • +
+
parameter 
    +
  • Draw Indirect Parameter buffer
  • +
+
+ +
+
+

Function Documentation

+ +

◆ clone_resized()

+ +
+
+ + + + + + + + + + + + + + + + + + +
buffer tz::gl::ogl2::buffer_helper::clone_resized (const bufferbuf,
std::size_t new_size 
)
+
+ +

buffers are not resizeable.

+

However, this function creates an exact copy of the buffer, but with a new size. You can assume that the target, residency and data store contents are completely unchanged. If the resize increases the size of the buffer however, then the new bytes have undefined values.

+ +
+
+ +

◆ copy()

+ +
+
+ + + + + + + + + + + + + + + + + + +
void tz::gl::ogl2::buffer_helper::copy (const buffersource,
bufferdestination 
)
+
+ +

Copy the entire data store of a buffer to another.

+

If the destination buffer is larger than the source buffer, the bytes following the copy region are untouched.

Precondition
The destination buffer must have size greater than or equal to the source buffer, otherwise the behaviour is undefined.
+ +
+
+
+ + + + diff --git a/group__tz__gl__ogl2__framebuffer.html b/group__tz__gl__ogl2__framebuffer.html new file mode 100644 index 0000000000..c828083d89 --- /dev/null +++ b/group__tz__gl__ogl2__framebuffer.html @@ -0,0 +1,142 @@ + + + + + + + +Topaz: Framebuffers + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.1.0.1 +
+
C++20 Graphics Engine
+
+
+ + + + +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+ + +
+
+ +

Documentation for everything relating to framebuffers. +More...

+ + + + + + + + +

+Data Structures

struct  tz::gl::ogl2::framebuffer_info
 Specifies creation flags for a framebuffer. More...
 
class  tz::gl::ogl2::framebuffer
 Represents an OpenGL framebuffer object. More...
 
+ + + + +

+Typedefs

using tz::gl::ogl2::framebuffer_texture = std::variant< const image *, const render_buffer * >
 Describes a reference to either an image or renderbuffer.
 
+

Detailed Description

+

Documentation for everything relating to framebuffers.

+

Typedef Documentation

+ +

◆ framebuffer_texture

+ +
+
+ + + + +
using tz::gl::ogl2::framebuffer_texture = typedef std::variant<const image*, const render_buffer*>
+
+ +

Describes a reference to either an image or renderbuffer.

+

Is used as a framebuffer attachment.

+ +
+
+
+ + + + diff --git a/group__tz__gl__ogl2__image.html b/group__tz__gl__ogl2__image.html new file mode 100644 index 0000000000..e1de4ac300 --- /dev/null +++ b/group__tz__gl__ogl2__image.html @@ -0,0 +1,218 @@ + + + + + + + +Topaz: Images, Samplers and Formats + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.1.0.1 +
+
C++20 Graphics Engine
+
+
+ + + + +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+ + +
+
+ +

Documentation for everything relating to Images, Samplers and image_formats. +More...

+ + + + + + + + + + + + + + +

+Data Structures

struct  tz::gl::ogl2::image_info
 Specifies creation flags for a image. More...
 
class  tz::gl::ogl2::image
 Documentation for OpenGL images. More...
 
struct  tz::gl::ogl2::FormatData
 OpenGL formats are pretty finnicky, especially when using them to initialise texture data-stores. More...
 
struct  tz::gl::ogl2::sampler
 Describes various details about texture lookups from a sampled image. More...
 
+ + + + + + + +

+Enumerations

enum class  tz::gl::ogl2::lookup_filter : GLint {
+  lookup_filter::nearest = GL_NEAREST +,
+  lookup_filter::linear = GL_LINEAR +
+ }
 Determines how sub-pixel colours are filtered. More...
 
enum class  tz::gl::ogl2::address_mode : GLint {
+  address_mode::clamp_to_edge = GL_CLAMP_TO_EDGE +,
+  address_mode::repeat = GL_REPEAT +,
+  address_mode::mirrored_repeat = GL_MIRRORED_REPEAT +
+ }
 Determines the value retrieved from a texture lookup if the texture coordinate is out of range. More...
 
+

Detailed Description

+

Documentation for everything relating to Images, Samplers and image_formats.

+

Enumeration Type Documentation

+ +

◆ address_mode

+ +
+
+ + + + + +
+ + + + +
enum class tz::gl::ogl2::address_mode : GLint
+
+strong
+
+ +

Determines the value retrieved from a texture lookup if the texture coordinate is out of range.

+ + + + +
Enumerator
clamp_to_edge 
    +
  • An imaginary line is drawn from the out-of-bounds-coordinate back to the edge of the sampled image. The colour of the texel that it meets is used.
  • +
+
repeat 
    +
  • The texcoord is essentially modulo'd with the image dimensions.
  • +
+
mirrored_repeat 
    +
  • Just like repeat, except mirrored.
  • +
+
+ +
+
+ +

◆ lookup_filter

+ +
+
+ + + + + +
+ + + + +
enum class tz::gl::ogl2::lookup_filter : GLint
+
+strong
+
+ +

Determines how sub-pixel colours are filtered.

+ + + +
Enumerator
nearest 
    +
  • Texel nearest (via Manhattan Distance) to the texture coordinate is used.
  • +
+
linear 
    +
  • Weighted average of four closest texels to the texture coordinate.
  • +
+
+ +
+
+
+ + + + diff --git a/group__tz__gl__ogl2__shader.html b/group__tz__gl__ogl2__shader.html new file mode 100644 index 0000000000..ae805e0ce7 --- /dev/null +++ b/group__tz__gl__ogl2__shader.html @@ -0,0 +1,188 @@ + + + + + + + +Topaz: Shaders + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.1.0.1 +
+
C++20 Graphics Engine
+
+
+ + + + +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+ + +
+
+ +

Documentation for everything relating to shaders. +More...

+ + + + + + + + + + + + + + +

+Data Structures

struct  tz::gl::ogl2::shader_module_info
 Specifies creation flags for a shader_module. More...
 
struct  tz::gl::ogl2::shader_info
 Specifies creation flags for a Shader. More...
 
class  tz::gl::ogl2::shader_module
 Represents an OpenGL shader. More...
 
class  tz::gl::ogl2::shader
 Represents an OpenGL shader program. More...
 
+ + + + +

+Enumerations

enum class  tz::gl::ogl2::shader_type : GLenum {
+  shader_type::vertex = GL_VERTEX_SHADER +,
+  shader_type::tessellation_control = GL_TESS_CONTROL_SHADER +,
+  shader_type::tessellation_evaluation = GL_TESS_EVALUATION_SHADER +,
+  shader_type::fragment = GL_FRAGMENT_SHADER +,
+  shader_type::compute = GL_COMPUTE_SHADER +
+ }
 Specifies the shader type. More...
 
+

Detailed Description

+

Documentation for everything relating to shaders.

+

Enumeration Type Documentation

+ +

◆ shader_type

+ +
+
+ + + + + +
+ + + + +
enum class tz::gl::ogl2::shader_type : GLenum
+
+strong
+
+ +

Specifies the shader type.

+ + + + + + +
Enumerator
vertex 
    +
  • Vertex Shader.
  • +
+
tessellation_control 
    +
  • Tessellation Control Shader.
  • +
+
tessellation_evaluation 
    +
  • Tessellation Evaluation Shader.
  • +
+
fragment 
    +
  • Fragment Shader.
  • +
+
compute 
    +
  • Compute Shader.
  • +
+
+ +
+
+
+ + + + diff --git a/group__tz__gl__vk.html b/group__tz__gl__vk.html new file mode 100644 index 0000000000..4a40422203 --- /dev/null +++ b/group__tz__gl__vk.html @@ -0,0 +1,235 @@ + + + + + + + +Topaz: Vulkan Backend + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.1.0.1 +
+
C++20 Graphics Engine
+
+
+ + + + +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+ + +
+
+ +

Documentation for the Vulkan backend, which acts as a large abstraction around Vulkan. +More...

+ + + + + + + + + + + + + + + + + + + + + + + + + + +

+Modules

 Buffers
 Documentation for Vulkan Buffers.
 
 Command Buffers and Pools
 Documentation for everything related to Command Buffers, Command Pools and Vulkan Commands.
 
 Descriptor Layouts and Sets
 Documentation for everything related to Descriptors.
 
 Extensions and Features
 Documentation for functionality related to instance/device extensions, and optional features.
 
 Graphics Pipeline
 Documentation for the graphics pipeline.
 
 Images, Samplers and Formats
 Documentation for everything relating to Images, Samplers and image_formats.
 
 Presentation and Window Surface Interation (WSI)
 Documentation for functionality related to presenting images to existing windows.
 
 Synchronisation Primitives
 Documentation for functionality related to CPU/GPU Vulkan synchronisation primitives.
 
+ + + + + + + + + + + + + + + + + + + +

+Data Structures

class  tz::gl::vk2::PhysicalDevice
 Represents something resembling a graphics card that can perform general graphical operations. More...
 
class  tz::gl::vk2::hardware::Queue
 Represents a single hardware Queue. More...
 
struct  tz::gl::vk2::LogicalDeviceInfo
 Specifies parameters for a newly created LogicalDevice. More...
 
class  tz::gl::vk2::LogicalDevice
 Logical interface to an existing PhysicalDevice. More...
 
struct  tz::gl::vk2::VulkanInstanceInfo
 Specifies creation flags for a VulkanInstance. More...
 
class  tz::gl::vk2::VulkanInstance
 Represents a vulkan instance, which acts as a reference to all per-application state. More...
 
+ + + + +

+Enumerations

enum class  tz::gl::vk2::PhysicalDeviceVendor
 Represents a PhysicalDevice manufacturer.
 
+ + + + +

+Functions

PhysicalDeviceList tz::gl::vk2::get_all_devices (const VulkanInstance &instance)
 Retrieve a list of all physical devices available on the machine for the given VulkanInstance.
 
+

Detailed Description

+

Documentation for the Vulkan backend, which acts as a large abstraction around Vulkan.

+

This is a low-level module free of all context relevant to Topaz.

+

Function Documentation

+ +

◆ get()

+ +
+
+ + + + + + + +
const VulkanInstance & tz::gl::vk2::get ()
+
+ +

Retrieve a reference to the current Vulkan Instance.

+

This will have been created during initialisation.

+ +
+
+ +

◆ get_all_devices()

+ +
+
+ + + + + + + + +
PhysicalDeviceList tz::gl::vk2::get_all_devices (const VulkanInstanceinstance)
+
+ +

Retrieve a list of all physical devices available on the machine for the given VulkanInstance.

+

If no VulkanInstance is provided, the global instance vk2::get() will be used.

Returns
basic_list of all PhysicalDevices. These have not been filtered in any way.
+ +
+
+ +

◆ initialise()

+ +
+
+ + + + + + + + +
void tz::gl::vk2::initialise (tz::game_info game_info)
+
+ +

Initialise the vulkan backend.

+
Note
This is intended to be invoked automatically by tz::initialise however this is not yet implemented - You should invoke this yourself at the start of your program directly after tz::initialise
+ +
+
+
+ + + + diff --git a/group__tz__gl__vk__buffer.html b/group__tz__gl__vk__buffer.html new file mode 100644 index 0000000000..afc9bc6387 --- /dev/null +++ b/group__tz__gl__vk__buffer.html @@ -0,0 +1,194 @@ + + + + + + + +Topaz: Buffers + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.1.0.1 +
+
C++20 Graphics Engine
+
+
+ + + + +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+ + +
+
+ +

Documentation for Vulkan Buffers. +More...

+ + + + + + + + +

+Data Structures

struct  tz::gl::vk2::buffer_info
 Specifies creation flags for a Buffer. More...
 
class  tz::gl::vk2::Buffer
 Represents a linear array of data which can be used for various purposes. More...
 
+ + + + +

+Enumerations

enum class  tz::gl::vk2::BufferUsage {
+  BufferUsage::TransferSource = VK_BUFFER_USAGE_TRANSFER_SRC_BIT +,
+  BufferUsage::TransferDestination = VK_BUFFER_USAGE_TRANSFER_DST_BIT +,
+  BufferUsage::UniformBuffer = VK_BUFFER_USAGE_UNIFORM_BUFFER_BIT +,
+  BufferUsage::StorageBuffer = VK_BUFFER_USAGE_STORAGE_BUFFER_BIT +,
+  BufferUsage::draw_indirect_buffer = VK_BUFFER_USAGE_INDIRECT_BUFFER_BIT +,
+  BufferUsage::VertexBuffer = VK_BUFFER_USAGE_VERTEX_BUFFER_BIT +,
+  BufferUsage::index_buffer = VK_BUFFER_USAGE_INDEX_BUFFER_BIT +
+ }
 Specifies allowed usages for a Buffer. More...
 
+

Detailed Description

+

Documentation for Vulkan Buffers.

+

Enumeration Type Documentation

+ +

◆ BufferUsage

+ +
+
+ + + + + +
+ + + + +
enum class tz::gl::vk2::BufferUsage
+
+strong
+
+ +

Specifies allowed usages for a Buffer.

+ + + + + + + + +
Enumerator
TransferSource 
    +
  • Can be used as the source of a transfer command.
  • +
+
TransferDestination 
    +
  • Can be used as the destination of a transfer command.
  • +
+
UniformBuffer 
    +
  • Is a UniformBuffer, which is a type of shader buffer resource.
  • +
+
StorageBuffer 
    +
  • Is a StorageBuffer, which is a type of shader buffer resource.
  • +
+
draw_indirect_buffer 
    +
  • Is a specialised buffer which specifically stores draw commands.
  • +
+
VertexBuffer 
    +
  • Is a VertexBuffer, which is used to store vertex input data.
  • +
+
index_buffer 
    +
  • Is an index_buffer, which is used to store index input data.
  • +
+
+ +
+
+
+ + + + diff --git a/group__tz__gl__vk__commands.html b/group__tz__gl__vk__commands.html new file mode 100644 index 0000000000..b2866ddc9d --- /dev/null +++ b/group__tz__gl__vk__commands.html @@ -0,0 +1,126 @@ + + + + + + + +Topaz: Command Buffers and Pools + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.1.0.1 +
+
C++20 Graphics Engine
+
+
+ + + + +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+ + +
+
+ +

Documentation for everything related to Command Buffers, Command Pools and Vulkan Commands. +More...

+ + + + + + + + + + + + + + + + + +

+Data Structures

struct  tz::gl::vk2::VulkanCommand
 Contains all the possible commands which can be recorded within a CommandBuffer. More...
 
struct  tz::gl::vk2::CommandPoolInfo
 Specifies creation flags for a CommandPool. More...
 
class  tz::gl::vk2::CommandBufferRecording
 Represents the full duration of the recording process of an existing CommandBuffer. More...
 
class  tz::gl::vk2::CommandBuffer
 Represents storage for vulkan commands, such as draw calls, binds, transfers etc... More...
 
class  tz::gl::vk2::CommandPool
 Represents storage for CommandBuffers. More...
 
+

Detailed Description

+

Documentation for everything related to Command Buffers, Command Pools and Vulkan Commands.

+
+ + + + diff --git a/group__tz__gl__vk__descriptors.html b/group__tz__gl__vk__descriptors.html new file mode 100644 index 0000000000..cb5e9a61f8 --- /dev/null +++ b/group__tz__gl__vk__descriptors.html @@ -0,0 +1,191 @@ + + + + + + + +Topaz: Descriptor Layouts and Sets + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.1.0.1 +
+
C++20 Graphics Engine
+
+
+ + + + +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+ + +
+
+ +

Documentation for everything related to Descriptors. +More...

+ + + + + + + + + + + + + + + + + + + + + + + +

+Data Structures

struct  tz::gl::vk2::DescriptorLayoutInfo
 Specifies creation flags for a descriptor set layout. More...
 
class  tz::gl::vk2::DescriptorLayout
 Specifies the types of resources that will be accessed by a graphics or compute pipeline via a Shader. More...
 
class  tz::gl::vk2::DescriptorLayoutBuilder
 Helper class to populate a DescriptorLayoutInfo. More...
 
struct  tz::gl::vk2::DescriptorPoolInfo
 Specifies creation flags for a descriptor pool. More...
 
class  tz::gl::vk2::DescriptorSet
 Represents a set of one or more descriptors. More...
 
class  tz::gl::vk2::DescriptorPool
 Represents storage for DescriptorSets. More...
 
struct  tz::gl::vk2::RenderPassInfo
 Specifies creation flags for a RenderPass. More...
 
+ + + + +

+Enumerations

enum class  tz::gl::vk2::DescriptorFlag {
+  DescriptorFlag::UpdateAfterBind = VK_DESCRIPTOR_BINDING_UPDATE_AFTER_BIND_BIT +,
+  DescriptorFlag::UpdateUnusedWhilePending = VK_DESCRIPTOR_BINDING_UPDATE_UNUSED_WHILE_PENDING_BIT +,
+  DescriptorFlag::PartiallyBound = VK_DESCRIPTOR_BINDING_PARTIALLY_BOUND_BIT +,
+  DescriptorFlag::VariableCount = VK_DESCRIPTOR_BINDING_VARIABLE_DESCRIPTOR_COUNT_BIT +
+ }
 Information about a specific descriptor (or array of descriptors) via a descriptor layout binding. More...
 
+

Detailed Description

+

Documentation for everything related to Descriptors.

+

Enumeration Type Documentation

+ +

◆ DescriptorFlag

+ +
+
+ + + + + +
+ + + + +
enum class tz::gl::vk2::DescriptorFlag
+
+strong
+
+ +

Information about a specific descriptor (or array of descriptors) via a descriptor layout binding.

+ + + + + +
Enumerator
UpdateAfterBind 
    +
  • Indicates that the parent set can be updated even after its bound within a command buffer.
  • +
+
UpdateUnusedWhilePending 
    +
  • Indicates that the parent set can be updated even if its bound and being used by a command buffer, so long as the execution of that command buffer isn't actually using this descriptor.
  • +
+
PartiallyBound 
    +
  • Indicates that the descriptor is partially bound. This means that if it's not used during rendering (even if its set is), it doesn't have to be set properly, or even in a valid state.
  • +
+
VariableCount 
    +
  • Indicates that this descriptor array is of variable size. Note that only the final binding of a descriptor layout can be an array of variable size.
  • +
+
+ +
+
+
+ + + + diff --git a/group__tz__gl__vk__extension.html b/group__tz__gl__vk__extension.html new file mode 100644 index 0000000000..28984c4051 --- /dev/null +++ b/group__tz__gl__vk__extension.html @@ -0,0 +1,243 @@ + + + + + + + +Topaz: Extensions and Features + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.1.0.1 +
+
C++20 Graphics Engine
+
+
+ + + + +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+ + +
+
+ +

Documentation for functionality related to instance/device extensions, and optional features. +More...

+ + + + + +

+Enumerations

enum class  tz::gl::vk2::DeviceFeature {
+  DeviceFeature::DrawIndirectCount +,
+  DeviceFeature::MultiDrawIndirect +,
+  DeviceFeature::ShaderDrawParameters +,
+  DeviceFeature::BindlessDescriptors +,
+  DeviceFeature::TimelineSemaphores +,
+  DeviceFeature::ColourBlendLogicalOperations +,
+  DeviceFeature::NonSolidFillRasteriser +,
+  DeviceFeature::TessellationShaders +,
+  DeviceFeature::VertexPipelineResourceWrite +,
+  DeviceFeature::FragmentShaderResourceWrite +,
+  DeviceFeature::DynamicRendering +
+ }
 Represents an optional feature specific to a PhysicalDevice. More...
 
+

Detailed Description

+

Documentation for functionality related to instance/device extensions, and optional features.

+

Enumeration Type Documentation

+ +

◆ DeviceFeature

+ +
+
+ + + + + +
+ + + + +
enum class tz::gl::vk2::DeviceFeature
+
+strong
+
+ +

Represents an optional feature specific to a PhysicalDevice.

+
    +
  • DeviceFeatures provide various advantages/additional features.
  • +
  • No features are enabled by default.
  • +
  • DeviceFeatures may not be supported by a PhysicalDevice. See PhysicalDevice::get_supported_features to retrieve a list of supported features.
  • +
+ + + + + + + + + + + + +
Enumerator
DrawIndirectCount 
    +
  • Allows GPU-driven rendering via draw-indirect-count. Can be used to minimise cpu-gpu latency.
  • +
+
MultiDrawIndirect 
    +
  • Allows mass-batching of draw-calls. Vastly improves performance for large scenes.
  • +
+
ShaderDrawParameters 
    +
  • Enable shader draw parameters (gl_DrawID).
  • +
+
BindlessDescriptors 
    +
  • Allows creation of bindless descriptors. Dramatically increases the limits for shader resources, and yields a moderate to vast improvement to performance across-the-board.
  • +
+
TimelineSemaphores  +
ColourBlendLogicalOperations 
    +
  • Enables use of alpha blending.
  • +
+
NonSolidFillRasteriser 
    +
  • Enables use of rasteriser polygon modes which aren't filled, e.g wireframe.
  • +
+
TessellationShaders 
    +
  • Enables use of tesselation-control and tessellation-evaluation shaders.
  • +
+
VertexPipelineResourceWrite 
    +
  • Enables vertex, geometry, and tessellation shaders to write to storage buffers.
  • +
+
FragmentShaderResourceWrite 
    +
  • Enables fragment shaders to write to storage buffers.
  • +
+
DynamicRendering 
    +
  • Enables dynamic rendering. this is not optional.
  • +
+
+ +
+
+ +

◆ InstanceExtension

+ +
+
+ + + + + +
+ + + + +
enum class tz::gl::vk2::InstanceExtension
+
+strong
+
+ +

Supported Vulkan extension for a VulkanInstance.

+ + +
Enumerator
DebugMessenger 
    +
  • Enables Debug Messenger (only supported on TZ_DEBUG)
  • +
+
+ +
+
+
+ + + + diff --git a/group__tz__gl__vk__graphics__pipeline.html b/group__tz__gl__vk__graphics__pipeline.html new file mode 100644 index 0000000000..6b831544a4 --- /dev/null +++ b/group__tz__gl__vk__graphics__pipeline.html @@ -0,0 +1,263 @@ + + + + + + + +Topaz: Graphics Pipeline + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.1.0.1 +
+
C++20 Graphics Engine
+
+
+ + + + +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+ + +
+
+ +

Documentation for the graphics pipeline. +More...

+ + + + + + + + + + + +

+Modules

 Fixed Pipeline State Values
 Documentation for the fixed-pipeline settings, such as rasteriser state and input assembly.
 
 Render Passes
 Documentation for render passes and how they interact with the rendering pipeline.
 
 Shader Programs and Modules
 Documentation for shaders.
 
+ + + + + + + + + + + + + +

+Data Structures

struct  tz::gl::vk2::GraphicsPipelineInfo
 Specifies creation flags for a GraphicsPipeline. More...
 
class  tz::gl::vk2::GraphicsPipeline
 Represents the Graphics Pipeline. More...
 
struct  tz::gl::vk2::PipelineLayoutInfo
 Specifies creation flags for a PipelineLayout. More...
 
class  tz::gl::vk2::PipelineLayout
 Represents an interface between shader stages and shader resources in terms of the layout of a group of DescriptorSet. More...
 
+ + + + +

+Enumerations

enum class  tz::gl::vk2::PipelineStage {
+  PipelineStage::Top = VK_PIPELINE_STAGE_TOP_OF_PIPE_BIT +,
+  PipelineStage::Bottom = VK_PIPELINE_STAGE_BOTTOM_OF_PIPE_BIT +,
+  PipelineStage::AllCommands = VK_PIPELINE_STAGE_ALL_COMMANDS_BIT +,
+  PipelineStage::AllGraphics = VK_PIPELINE_STAGE_ALL_GRAPHICS_BIT +,
+  PipelineStage::DrawIndirect = VK_PIPELINE_STAGE_DRAW_INDIRECT_BIT +,
+  PipelineStage::VertexIndexInput = VK_PIPELINE_STAGE_VERTEX_INPUT_BIT +,
+  PipelineStage::VertexShader = VK_PIPELINE_STAGE_VERTEX_SHADER_BIT +,
+  PipelineStage::TessellationControlShader = VK_PIPELINE_STAGE_TESSELLATION_CONTROL_SHADER_BIT +,
+  PipelineStage::TessellationEvaluationShader = VK_PIPELINE_STAGE_TESSELLATION_EVALUATION_SHADER_BIT +,
+  PipelineStage::GeometryShader = VK_PIPELINE_STAGE_GEOMETRY_SHADER_BIT +,
+  PipelineStage::FragmentShader = VK_PIPELINE_STAGE_FRAGMENT_SHADER_BIT +,
+  PipelineStage::EarlyFragmentTests = VK_PIPELINE_STAGE_EARLY_FRAGMENT_TESTS_BIT +,
+  PipelineStage::LateFragmentTests = VK_PIPELINE_STAGE_LATE_FRAGMENT_TESTS_BIT +,
+  PipelineStage::ColourAttachmentOutput = VK_PIPELINE_STAGE_COLOR_ATTACHMENT_OUTPUT_BIT +,
+  ComputeShader = VK_PIPELINE_STAGE_COMPUTE_SHADER_BIT +,
+  PipelineStage::TransferCommands = VK_PIPELINE_STAGE_TRANSFER_BIT +
+ }
 Specifies a certain stage (point of execution) during the invocation of a graphics pipeline. More...
 
+

Detailed Description

+

Documentation for the graphics pipeline.

+

Enumeration Type Documentation

+ +

◆ PipelineStage

+ +
+
+ + + + + +
+ + + + +
enum class tz::gl::vk2::PipelineStage
+
+strong
+
+ +

Specifies a certain stage (point of execution) during the invocation of a graphics pipeline.

+ + + + + + + + + + + + + + + + +
Enumerator
Top 
    +
  • Very first stage when acting as a 'source' stage of a transition.
  • +
+
Bottom 
    +
  • Very first stage when acting as a 'destination' stage of a transition.
  • +
+
AllCommands 
    +
  • Very first stage. Early enough to cover every single stage.
  • +
+
AllGraphics 
    +
  • Pseudo-stage which takes place before any graphical stages (Just before DrawIndirect)
  • +
+
DrawIndirect 
    +
  • Stage of the pipeline where indirect draw commands are consumed.
  • +
+
VertexIndexInput 
    +
  • Stage of the pipeline where vertex and index buffers are consumed.
  • +
+
VertexShader 
    +
  • Stage of the pipeline where vertex shader is invoked.
  • +
+
TessellationControlShader 
    +
  • Stage of the pipeline where the tessellation control shader is invoked.
  • +
+
TessellationEvaluationShader 
    +
  • Stage of the pipeline where the tessellation evaluation shader is invoked.
  • +
+
GeometryShader 
    +
  • Stage of the pipeline where the geometry shader is invoked.
  • +
+
FragmentShader 
    +
  • Stage of the pipeline where the fragment shader is invoked.
  • +
+
EarlyFragmentTests 
    +
  • Stage of the pipeline directly before the fragment shader is invoked.
  • +
+
LateFragmentTests 
    +
  • Stage of the pipeline directly after the fragment shader is invoked.
  • +
+
ColourAttachmentOutput 
    +
  • Stage of the pipeline where the final colour values are output from the pipeline.
  • +
+
TransferCommands 
    +
  • Stage of the pipeline where transfer commands are invoked. Example: Buffer copy, blit image, clears etc
  • +
+
+ +
+
+
+ + + + diff --git a/group__tz__gl__vk__graphics__pipeline__fixed.html b/group__tz__gl__vk__graphics__pipeline__fixed.html new file mode 100644 index 0000000000..24f27c1d52 --- /dev/null +++ b/group__tz__gl__vk__graphics__pipeline__fixed.html @@ -0,0 +1,380 @@ + + + + + + + +Topaz: Fixed Pipeline State Values + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.1.0.1 +
+
C++20 Graphics Engine
+
+
+ + + + +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+ + +
+
+ +

Documentation for the fixed-pipeline settings, such as rasteriser state and input assembly. +More...

+ + + + + + + + + + + + + + + + + + + + + + + +

+Data Structures

struct  tz::gl::vk2::VertexInputState
 Specifies how the input vertex data is organised. More...
 
struct  tz::gl::vk2::ViewportState
 Specifies the region of the output that will be rendered to. More...
 
struct  tz::gl::vk2::RasteriserState
 Configures how the geometry shaped by input data is transformed into fragments. More...
 
struct  tz::gl::vk2::MultisampleState
 At present, multisampling is not supported, so this struct is not configurable. More...
 
struct  tz::gl::vk2::DepthStencilState
 Specifies the state of the depth/stencil buffer, if any. More...
 
struct  tz::gl::vk2::ColourBlendState
 Specifies how a new fragment colour is combined with the previous colour within the output. More...
 
struct  tz::gl::vk2::DynamicState
 At present, dynamic state is not supported, so this struct is not configurable. More...
 
+ + + + + + + + + + + + + +

+Enumerations

enum class  tz::gl::vk2::VertexInputFormat {
+  VertexInputFormat::Vec1Float16 = VK_FORMAT_R16_SFLOAT +,
+  VertexInputFormat::Vec1Float32 = VK_FORMAT_R32_SFLOAT +,
+  VertexInputFormat::Vec2Float32 = VK_FORMAT_R16G16_SFLOAT +,
+  VertexInputFormat::Vec2Float64 = VK_FORMAT_R32G32_SFLOAT +,
+  VertexInputFormat::Vec3Float48 = VK_FORMAT_R16G16B16_SFLOAT +,
+  VertexInputFormat::Vec3Float96 = VK_FORMAT_R32G32B32_SFLOAT +,
+  VertexInputFormat::Vec4Float64 = VK_FORMAT_R16G16B16A16_SFLOAT +,
+  VertexInputFormat::Vec4Float128 = VK_FORMAT_R32G32B32A32_SFLOAT +
+ }
 Specifies the format of a vertex input attribute. More...
 
enum class  tz::gl::vk2::PolygonMode {
+  PolygonMode::Fill = VK_POLYGON_MODE_FILL +,
+  PolygonMode::Line = VK_POLYGON_MODE_LINE +,
+  PolygonMode::Point = VK_POLYGON_MODE_POINT +
+ }
 Describes how fragments are generated for geometry. More...
 
enum class  tz::gl::vk2::CullMode {
+  CullMode::NoCulling +,
+  CullMode::FrontCulling +,
+  CullMode::BackCulling +,
+  CullMode::BothCulling +
+ }
 Describes which faces should be culled. More...
 
enum class  tz::gl::vk2::DepthComparator {
+  DepthComparator::AlwaysFalse = VK_COMPARE_OP_NEVER +,
+  DepthComparator::LessThan = VK_COMPARE_OP_LESS +,
+  DepthComparator::EqualTo = VK_COMPARE_OP_EQUAL +,
+  DepthComparator::LessThanOrEqual = VK_COMPARE_OP_LESS_OR_EQUAL +,
+  DepthComparator::GreaterThan = VK_COMPARE_OP_GREATER +,
+  DepthComparator::NotEqualTo = VK_COMPARE_OP_NOT_EQUAL +,
+  DepthComparator::GreaterThanOrEqual = VK_COMPARE_OP_GREATER_OR_EQUAL +,
+  DepthComparator::AlwaysTrue = VK_COMPARE_OP_ALWAYS +
+ }
 When two fragments depth values are compared aka comp(lhs, rhs), what should the return expression be? More...
 
+

Detailed Description

+

Documentation for the fixed-pipeline settings, such as rasteriser state and input assembly.

+

Enumeration Type Documentation

+ +

◆ CullMode

+ +
+
+ + + + + +
+ + + + +
enum class tz::gl::vk2::CullMode
+
+strong
+
+ +

Describes which faces should be culled.

+ + + + + +
Enumerator
NoCulling 
    +
  • Don't cull anything.
  • +
+
FrontCulling 
    +
  • Cull the front face.
  • +
+
BackCulling 
    +
  • Cull the back face.
  • +
+
BothCulling 
    +
  • Cull everything.
  • +
+
+ +
+
+ +

◆ DepthComparator

+ +
+
+ + + + + +
+ + + + +
enum class tz::gl::vk2::DepthComparator
+
+strong
+
+ +

When two fragments depth values are compared aka comp(lhs, rhs), what should the return expression be?

+ + + + + + + + + +
Enumerator
AlwaysFalse 
    +
  • Return false.
  • +
+
LessThan 
    +
  • Return lhs < rhs.
  • +
+
EqualTo 
    +
  • Return lhs == rhs.
  • +
+
LessThanOrEqual 
    +
  • Return lhs <= rhs.
  • +
+
GreaterThan 
    +
  • Return lhs > rhs.
  • +
+
NotEqualTo 
    +
  • Return lhs != rhs.
  • +
+
GreaterThanOrEqual 
    +
  • Return lhs >= rhs.
  • +
+
AlwaysTrue 
    +
  • Return true.
  • +
+
+ +
+
+ +

◆ PolygonMode

+ +
+
+ + + + + +
+ + + + +
enum class tz::gl::vk2::PolygonMode
+
+strong
+
+ +

Describes how fragments are generated for geometry.

+ + + + +
Enumerator
Fill 
    +
  • Fill the polygon with fragments.
  • +
+
Line 
    +
  • Draw only the polygon edges via lines (wireframe).
  • +
+
Point 
    +
  • Draw the polygon vertices as points.
  • +
+
+ +
+
+ +

◆ VertexInputFormat

+ +
+
+ + + + + +
+ + + + +
enum class tz::gl::vk2::VertexInputFormat
+
+strong
+
+ +

Specifies the format of a vertex input attribute.

+

See VertexInputState::Attribute for usage.

+ + + + + + + + + +
Enumerator
Vec1Float16 

A single 16-bit float.

+
Vec1Float32 

A single 32-bit float.

+
Vec2Float32 

Two 16-bit floats.

+
Vec2Float64 

Two 32-bit floats.

+
Vec3Float48 

Three 16-bit floats.

+
Vec3Float96 

Three 32-bit floats.

+
Vec4Float64 

Four 16-bit floats.

+
Vec4Float128 

Four 32-bit floats.

+
+ +
+
+
+ + + + diff --git a/group__tz__gl__vk__graphics__pipeline__render__pass.html b/group__tz__gl__vk__graphics__pipeline__render__pass.html new file mode 100644 index 0000000000..7007d7c16c --- /dev/null +++ b/group__tz__gl__vk__graphics__pipeline__render__pass.html @@ -0,0 +1,365 @@ + + + + + + + +Topaz: Render Passes + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.1.0.1 +
+
C++20 Graphics Engine
+
+
+ + + + +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+ + +
+
+ +

Documentation for render passes and how they interact with the rendering pipeline. +More...

+ + + + + + + + + + + + + + + + + + + + +

+Data Structures

struct  tz::gl::vk2::FramebufferInfo
 Specifies creation flags for a Framebuffer. More...
 
class  tz::gl::vk2::Framebuffer
 Represents a render target for a RenderPass. More...
 
struct  tz::gl::vk2::Attachment
 Specifies some data about an attachment. More...
 
class  tz::gl::vk2::RenderPass
 Represents a collection of attachments and subpasses and describes how the attachments are used throughout the subpases. More...
 
class  tz::gl::vk2::SubpassBuilder
 Helper class to create a RenderPassInfo::Subpass. More...
 
class  tz::gl::vk2::RenderPassBuilder
 Helper class to create a RenderPass. More...
 
+ + + + + + + + + + + + + +

+Enumerations

enum class  tz::gl::vk2::LoadOp {
+  LoadOp::Load = VK_ATTACHMENT_LOAD_OP_LOAD +,
+  LoadOp::Clear = VK_ATTACHMENT_LOAD_OP_CLEAR +,
+  LoadOp::DontCare = VK_ATTACHMENT_LOAD_OP_DONT_CARE +
+ }
 Represents how some resource is loaded. More...
 
enum class  tz::gl::vk2::StoreOp {
+  StoreOp::Store = VK_ATTACHMENT_STORE_OP_STORE +,
+  StoreOp::DontCare = VK_ATTACHMENT_STORE_OP_DONT_CARE +
+ }
 Represents how some resource is stored. More...
 
enum class  tz::gl::vk2::PipelineContext
 Specifies which pipeline type a RenderPass subpass is expected to bind to.
 
enum class  tz::gl::vk2::AccessFlag {
+  AccessFlag::NoneNeeded = VK_ACCESS_NONE_KHR +,
+  AccessFlag::AllReads = VK_ACCESS_MEMORY_READ_BIT +,
+  AccessFlag::AllWrites = VK_ACCESS_MEMORY_WRITE_BIT +,
+  AccessFlag::IndirectBufferRead = VK_ACCESS_INDIRECT_COMMAND_READ_BIT +,
+  AccessFlag::IndexBufferRead = VK_ACCESS_INDEX_READ_BIT +,
+  AccessFlag::VertexBufferRead = VK_ACCESS_VERTEX_ATTRIBUTE_READ_BIT +,
+  AccessFlag::UniformBufferRead = VK_ACCESS_UNIFORM_READ_BIT +,
+  AccessFlag::InputAttachmentRead = VK_ACCESS_INPUT_ATTACHMENT_READ_BIT +,
+  AccessFlag::ShaderResourceRead = VK_ACCESS_SHADER_READ_BIT +,
+  AccessFlag::ShaderResourceWrite = VK_ACCESS_SHADER_WRITE_BIT +,
+  AccessFlag::ColourAttachmentRead = VK_ACCESS_COLOR_ATTACHMENT_READ_BIT +,
+  AccessFlag::ColourAttachmentWrite = VK_ACCESS_COLOR_ATTACHMENT_WRITE_BIT +,
+  AccessFlag::DepthStencilAttachmentRead = VK_ACCESS_DEPTH_STENCIL_ATTACHMENT_READ_BIT +,
+  AccessFlag::DepthStencilAttachmentWrite = VK_ACCESS_DEPTH_STENCIL_ATTACHMENT_WRITE_BIT +,
+  AccessFlag::TransferOperationRead = VK_ACCESS_TRANSFER_READ_BIT +,
+  AccessFlag::TransferOperationWrite = VK_ACCESS_TRANSFER_WRITE_BIT +,
+  AccessFlag::HostRead = VK_ACCESS_HOST_READ_BIT +,
+  AccessFlag::HostWrite = VK_ACCESS_HOST_WRITE_BIT +
+ }
 Specifies specific events during which a memory dependency takes place. More...
 
+

Detailed Description

+

Documentation for render passes and how they interact with the rendering pipeline.

+

Enumeration Type Documentation

+ +

◆ AccessFlag

+ +
+
+ + + + + +
+ + + + +
enum class tz::gl::vk2::AccessFlag
+
+strong
+
+ +

Specifies specific events during which a memory dependency takes place.

+ + + + + + + + + + + + + + + + + + + +
Enumerator
NoneNeeded 
    +
  • Doesn't need to happen.
  • +
+
AllReads 
    +
  • Anytime any read is done.
  • +
+
AllWrites 
    +
  • Anytime any write is done.
  • +
+
IndirectBufferRead 
    +
  • Anytime an Indirect Buffer is read from during an indirect draw/dispatch.
  • +
+
IndexBufferRead 
    +
  • Anytime an Index Buffer is read from during an indexed draw.
  • +
+
VertexBufferRead 
    +
  • Anytime a Vertex Buffer is read from during a draw.
  • +
+
UniformBufferRead 
    +
  • Anytime a Uniform Buffer is read from during any shader pipeline stage.
  • +
+
InputAttachmentRead 
    +
  • Anytime an input attachment to a RenderPass is read from during fragment shading.
  • +
+
ShaderResourceRead 
    +
  • Anytime any read/write Shader resource is read from during shader invocations (Uniform Buffers, Storage Buffers, Images, Storage Images etc...).
  • +
+
ShaderResourceWrite 
    +
  • Anytime any writeable Shader resource is written to during shader invocations (Storage Buffers, Storage Images etc...).
  • +
+
ColourAttachmentRead 
    +
  • Anytime a colour attachment is read from (e.g blending, logic operations, subpass load operations...)
  • +
+
ColourAttachmentWrite 
    +
  • Anytime a colour attachment is written to (e.g during a RenderPass or subpass load operations...)
  • +
+
DepthStencilAttachmentRead 
    +
  • Anytime a depth/stencil attachment is read from.
  • +
+
DepthStencilAttachmentWrite 
    +
  • Anytime a depth/stencil attachment is written to.
  • +
+
TransferOperationRead 
    +
  • Anytime a Image or Buffer is read from during a clear/copy transfer operation.
  • +
+
TransferOperationWrite 
    +
  • Anytime a Image or Buffer is written to during a clear/copy transfer operation.
  • +
+
HostRead 
    +
  • Anytime a read occurs on directly-host-visible memory.
  • +
+
HostWrite 
    +
  • Anytime a write occurs on directly-host-visible memory.
  • +
+
+ +
+
+ +

◆ LoadOp

+ +
+
+ + + + + +
+ + + + +
enum class tz::gl::vk2::LoadOp
+
+strong
+
+ +

Represents how some resource is loaded.

+ + + + +
Enumerator
Load 
    +
  • Just load the data.
  • +
+
Clear 
    +
  • Clear the data to a known value.
  • +
+
DontCare 
    +
  • Data is undefined.
  • +
+
+ +
+
+ +

◆ StoreOp

+ +
+
+ + + + + +
+ + + + +
enum class tz::gl::vk2::StoreOp
+
+strong
+
+ +

Represents how some resource is stored.

+ + + +
Enumerator
Store 
    +
  • Just store the data.
  • +
+
DontCare 
    +
  • The resultant data is undefined.
  • +
+
+ +
+
+
+ + + + diff --git a/group__tz__gl__vk__graphics__pipeline__shader.html b/group__tz__gl__vk__graphics__pipeline__shader.html new file mode 100644 index 0000000000..de46c2f800 --- /dev/null +++ b/group__tz__gl__vk__graphics__pipeline__shader.html @@ -0,0 +1,130 @@ + + + + + + + +Topaz: Shader Programs and Modules + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.1.0.1 +
+
C++20 Graphics Engine
+
+
+ + + + +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+ + +
+
+ +

Documentation for shaders. +More...

+ + + + + + + + + + + + + + +

+Data Structures

struct  tz::gl::vk2::ShaderModuleInfo
 Specifies parameters of a single ShaderModule. More...
 
class  tz::gl::vk2::ShaderModule
 Represents a single module of a Shader. More...
 
struct  tz::gl::vk2::ShaderInfo
 Specifies parameters of a Shader, and all the modules that comprise it. More...
 
class  tz::gl::vk2::Shader
 Represents a Shader program. More...
 
+ + + + +

+Enumerations

enum class  tz::gl::vk2::ShaderType
 Supported Shader Type.
 
+

Detailed Description

+

Documentation for shaders.

+
+ + + + diff --git a/group__tz__gl__vk__image.html b/group__tz__gl__vk__image.html new file mode 100644 index 0000000000..0ff68f9c4f --- /dev/null +++ b/group__tz__gl__vk__image.html @@ -0,0 +1,500 @@ + + + + + + + +Topaz: Images, Samplers and Formats + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.1.0.1 +
+
C++20 Graphics Engine
+
+
+ + + + +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+ + +
+
+ +

Documentation for everything relating to Images, Samplers and image_formats. +More...

+ + + + + +

+Namespaces

namespace  tz::gl::vk2::format_traits
 Meta information about image_formats.
 
+ + + + + + + + + + + + + + + + + + +

+Data Structures

struct  tz::gl::vk2::SwapchainImageInfo
 Specifies parameters of an Image referring to an existing Swapchain image. More...
 
struct  tz::gl::vk2::image_info
 Specifies creation flags for an Image. More...
 
class  tz::gl::vk2::Image
 Represents an Image owned by the Vulkan API. More...
 
class  tz::gl::vk2::ImageView
 
struct  tz::gl::vk2::SamplerInfo
 Specifies creation flags for a Sampler. More...
 
class  tz::gl::vk2::Sampler
 Represents the state of an Image sampler which is used to read image data and apply filtering and other transformations to a Shader. More...
 
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Enumerations

enum class  tz::gl::vk2::ImageLayout {
+  ImageLayout::Undefined = VK_IMAGE_LAYOUT_UNDEFINED +,
+  ImageLayout::General = VK_IMAGE_LAYOUT_GENERAL +,
+  ImageLayout::ColourAttachment = VK_IMAGE_LAYOUT_COLOR_ATTACHMENT_OPTIMAL +,
+  ImageLayout::DepthStencilAttachment = VK_IMAGE_LAYOUT_DEPTH_STENCIL_ATTACHMENT_OPTIMAL +,
+  ImageLayout::ShaderResource = VK_IMAGE_LAYOUT_SHADER_READ_ONLY_OPTIMAL +,
+  ImageLayout::TransferSource = VK_IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL +,
+  ImageLayout::TransferDestination = VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL +,
+  ImageLayout::Present = VK_IMAGE_LAYOUT_PRESENT_SRC_KHR +
+ }
 Images are always in a layout. More...
 
enum class  tz::gl::vk2::SampleCount
 Specifies the number of samples stored per image pixel.
 
enum class  tz::gl::vk2::ImageTiling {
+  ImageTiling::Optimal = VK_IMAGE_TILING_OPTIMAL +,
+  ImageTiling::Linear = VK_IMAGE_TILING_LINEAR +
+ }
 Specifies how the image is laid out in memory. More...
 
enum class  tz::gl::vk2::ImageUsage {
+  ImageUsage::TransferSource = VK_IMAGE_USAGE_TRANSFER_SRC_BIT +,
+  ImageUsage::TransferDestination = VK_IMAGE_USAGE_TRANSFER_DST_BIT +,
+  ImageUsage::SampledImage = VK_IMAGE_USAGE_SAMPLED_BIT +,
+  ImageUsage::StorageImage = VK_IMAGE_USAGE_STORAGE_BIT +,
+  ImageUsage::ColourAttachment = VK_IMAGE_USAGE_COLOR_ATTACHMENT_BIT +,
+  ImageUsage::DepthStencilAttachment = VK_IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT +,
+  ImageUsage::InputAttachment = VK_IMAGE_USAGE_INPUT_ATTACHMENT_BIT +
+ }
 Specifies intended usage of an Image. More...
 
enum class  tz::gl::vk2::ImageAspectFlag
 Specifies which aspects of the image are included within a view.
 
enum class  tz::gl::vk2::image_format { image_format::undefined = VK_FORMAT_UNDEFINED +, R8 = VK_FORMAT_R8_UNORM +, R8_UNorm = R8 +, R8_SNorm = VK_FORMAT_R8_SNORM +, R8_UInt = VK_FORMAT_R8_UINT +, R8_SInt = VK_FORMAT_R8_SINT +, R8_sRGB = VK_FORMAT_R8_SRGB +, R16 = VK_FORMAT_R16_UNORM +, R16_UNorm = R16 +, R16_SNorm = VK_FORMAT_R16_SNORM +, R16_UInt = VK_FORMAT_R16_UINT +, R16_SInt = VK_FORMAT_R16_SINT +, RG16 = VK_FORMAT_R8G8_UNORM +, RG16_UNorm = RG16 +, RG16_SNorm = VK_FORMAT_R8G8_SNORM +, RG16_UInt = VK_FORMAT_R8G8_UINT +, RG16_SInt = VK_FORMAT_R8G8_SINT +, RG16_sRGB = VK_FORMAT_R8G8_SRGB +, RG32 = VK_FORMAT_R16G16_UNORM +, RG32_UNorm = RG32 +, RG32_SNorm = VK_FORMAT_R16G16_SNORM +, RG32_UInt = VK_FORMAT_R16G16_UINT +, RG32_SInt = VK_FORMAT_R16G16_SINT +, RGB24 = VK_FORMAT_R8G8B8_UNORM +, RGB24_UNorm = RGB24 +, RGB24_SNorm = VK_FORMAT_R8G8B8_SNORM +, RGB24_UInt = VK_FORMAT_R8G8B8_UINT +, RGB24_SInt = VK_FORMAT_R8G8B8_SINT +, RGB24_sRGB = VK_FORMAT_R8G8B8_SRGB +, BGR24 = VK_FORMAT_B8G8R8_UNORM +, BGR24_UNorm = BGR24 +, BGR24_SNorm = VK_FORMAT_B8G8R8_SNORM +, BGR24_UInt = VK_FORMAT_B8G8R8_UINT +, BGR24_SInt = VK_FORMAT_B8G8R8_SINT +, BGR24_sRGB = VK_FORMAT_B8G8R8_SRGB +, RGBA32 = VK_FORMAT_R8G8B8A8_UNORM +, RGBA32_UNorm = RGBA32 +, RGBA32_SNorm = VK_FORMAT_R8G8B8A8_SNORM +, RGBA32_UInt = VK_FORMAT_R8G8B8A8_UINT +, RGBA32_SInt = VK_FORMAT_R8G8B8A8_SINT +, RGBA32_sRGB = VK_FORMAT_R8G8B8A8_SRGB +, BGRA32 = VK_FORMAT_B8G8R8A8_UNORM +, BGRA32_UNorm = BGRA32 +, BGRA32_SNorm = VK_FORMAT_B8G8R8A8_SNORM +, BGRA32_UInt = VK_FORMAT_B8G8R8A8_UINT +, BGRA32_SInt = VK_FORMAT_B8G8R8A8_SINT +, BGRA32_sRGB = VK_FORMAT_B8G8R8A8_SRGB +, RGBA64_SFloat = VK_FORMAT_R16G16B16A16_SFLOAT +, RGBA128_SFloat = VK_FORMAT_R32G32B32A32_SFLOAT +, Depth16_UNorm = VK_FORMAT_D16_UNORM +, Depth32_SFloat = VK_FORMAT_D32_SFLOAT + }
 Various image formats are supported. More...
 
enum class  tz::gl::vk2::LookupFilter
 Represents a filter to a texture lookup.
 
enum class  tz::gl::vk2::MipLookupFilter
 Specify mipmap mode for texture lookups.
 
enum class  tz::gl::vk2::SamplerAddressMode {
+  SamplerAddressMode::Repeat = VK_SAMPLER_ADDRESS_MODE_REPEAT +,
+  SamplerAddressMode::MirroredRepeat = VK_SAMPLER_ADDRESS_MODE_MIRRORED_REPEAT +,
+  SamplerAddressMode::ClampToEdge = VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_EDGE +,
+  SamplerAddressMode::ClampToBorder = VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_BORDER +
+ }
 Specifies behaviour with sampling with texture coordinates that lie outside of the image. More...
 
+

Detailed Description

+

Documentation for everything relating to Images, Samplers and image_formats.

+

Enumeration Type Documentation

+ +

◆ image_format

+ +
+
+ + + + + +
+ + + + +
enum class tz::gl::vk2::image_format
+
+strong
+
+ +

Various image formats are supported.

+

Note that PhysicalDevices may not support all formats listed here.

+

image_formats are comprised of three properties.

+

The enum values are named as ComponentsSizeInternal where:

    +
  • Components (R, RG, RGB, BGR, RGBA): number of components and order.
  • +
  • Size (8, 16, 24, 32): Total size of the whole element, not just one component. Assume all components are equally-sized.
  • +
  • Internal (UNORM, SNORM, UINT, SINT): Value type of the element. This can be ommitted, in which case the default is UNORM.
      +
    • UNORM = float [0 -> -1]
    • +
    • SNORM = float [-1 -> 1]
    • +
    • UINT = unsigned int
    • +
    • SINT = signed int
    • +
    • SFLOAT = signed float
    • +
    • SRGB = sRGB nonlinear encoding
    • +
    +
  • +
+

Examples:

    +
  • RGBA32 = (RGBA, 32 bit, UNORM)
  • +
  • RGBA32_UNorm = (RGBA, 32 bit, UNORM) == RGBA32
  • +
  • R8_SNorm = (R, 8 bit, SNORM)
  • +
  • BGRA16_UInt = (BGRA, 16 bit, UINT)
  • +
+ + +
Enumerator
undefined 
    +
  • Undefined Format. It is mostly an error to use this.
  • +
+
+ +
+
+ +

◆ ImageLayout

+ +
+
+ + + + + +
+ + + + +
enum class tz::gl::vk2::ImageLayout
+
+strong
+
+ +

Images are always in a layout.

+

Images can only perform certain operations in a given layout.

+ + + + + + + + + +
Enumerator
Undefined 
    +
  • Cannot be used for most operations. If used instead of the image's true layout in a layout transition, the contents of the image's memory will become undefined.
  • +
+
General 
    +
  • Supports all operations, however is unlikely to perform optimally for any such operations.
  • +
+
ColourAttachment 
    +
  • Only useable as a colour/resolve attachment within a Framebuffer.
  • +
+
DepthStencilAttachment 
    +
  • Only useable as a depth/stencil attachment.
  • +
+
ShaderResource 
    +
  • Read-only access in a Shader as a sampled image.
  • +
+
TransferSource 
    +
  • Only useable as a source image of some transfer command.
  • +
+
TransferDestination 
    +
  • Only useable as a destination image of some transfer command.
  • +
+
Present 
    +
  • Useable as a presentable image.
  • +
+
+ +
+
+ +

◆ ImageTiling

+ +
+
+ + + + + +
+ + + + +
enum class tz::gl::vk2::ImageTiling
+
+strong
+
+ +

Specifies how the image is laid out in memory.

+ + + +
Enumerator
Optimal 

Image texels are laid out in an implementation-defined manner.

+
Linear 

Image texels are laid out in memory in row-major order, possibly with some padding on each row.

+
+ +
+
+ +

◆ ImageUsage

+ +
+
+ + + + + +
+ + + + +
enum class tz::gl::vk2::ImageUsage
+
+strong
+
+ +

Specifies intended usage of an Image.

+ + + + + + + + +
Enumerator
TransferSource 
    +
  • Image can be used as a source in a transfer command.
  • +
+
TransferDestination 
    +
  • Image can be used as a destination in a transfer command.
  • +
+
SampledImage 
    +
  • Image can be used as a read-only shader resource.
  • +
+
StorageImage 
    +
  • Image can be used as a read/write shader resource.
  • +
+
ColourAttachment  +
DepthStencilAttachment  +
InputAttachment  +
+ +
+
+ +

◆ SamplerAddressMode

+ +
+
+ + + + + +
+ + + + +
enum class tz::gl::vk2::SamplerAddressMode
+
+strong
+
+ +

Specifies behaviour with sampling with texture coordinates that lie outside of the image.

+ + + + + +
Enumerator
Repeat 
    +
  • The texture will repeat endlessly.
  • +
+
MirroredRepeat 
    +
  • The texture will repeat endlessly, but mirrored each time.
  • +
+
ClampToEdge 
    +
  • The texture will have the same colour as the edge.
  • +
+
ClampToBorder 
    +
  • The texture will have the same colour as the border.
  • +
+
+ +
+
+
+ + + + diff --git a/group__tz__gl__vk__presentation.html b/group__tz__gl__vk__presentation.html new file mode 100644 index 0000000000..b959f0f600 --- /dev/null +++ b/group__tz__gl__vk__presentation.html @@ -0,0 +1,186 @@ + + + + + + + +Topaz: Presentation and Window Surface Interation (WSI) + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.1.0.1 +
+
C++20 Graphics Engine
+
+
+ + + + +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+ +
Presentation and Window Surface Interation (WSI)
+
+
+ +

Documentation for functionality related to presenting images to existing windows. +More...

+ + + + + +

+Namespaces

namespace  tz::gl::vk2::present_traits
 Meta behaviour related to presentation and surfaces.
 
+ + + + + + + + + + +

+Data Structures

struct  tz::gl::vk2::SwapchainInfo
 Specifies parameters of a newly created Swapchain. More...
 
class  tz::gl::vk2::Swapchain
 Swapchains are infrastructures which represent GPU images we will render to before they can be presented to the screen. More...
 
class  tz::gl::vk2::WindowSurface
 Represents a Vulkan-friendly interface to an existing OS window. More...
 
+ + + + +

+Enumerations

enum class  tz::gl::vk2::SurfacePresentMode {
+  SurfacePresentMode::Immediate = VK_PRESENT_MODE_IMMEDIATE_KHR +,
+  SurfacePresentMode::Mailbox = VK_PRESENT_MODE_MAILBOX_KHR +,
+  SurfacePresentMode::Fifo = VK_PRESENT_MODE_FIFO_KHR +,
+  SurfacePresentMode::FifoRelaxed = VK_PRESENT_MODE_FIFO_RELAXED_KHR +
+ }
 Supported Presentation mode supported for a WindowSurface. More...
 
+

Detailed Description

+

Documentation for functionality related to presenting images to existing windows.

+

Enumeration Type Documentation

+ +

◆ SurfacePresentMode

+ +
+
+ + + + + +
+ + + + +
enum class tz::gl::vk2::SurfacePresentMode
+
+strong
+
+ +

Supported Presentation mode supported for a WindowSurface.

+ + + + + +
Enumerator
Immediate 
    +
  • No internal queueing of presentation requests. Requests are applied instantly. Vulnerable to tearing.
  • +
+
Mailbox 
    +
  • Recommended. Immune to tearing. If new requests come in before there is space for them, they will replace the old requests. No hard vsync.
  • +
+
Fifo 
    +
  • Hard vsync. Immune to tearing. If new requests come in before there is space for them, the application will wait until there is space. Application will be locked to the FPS of the screen.
  • +
+
FifoRelaxed 
    +
  • Adaptive vsync. Vulnerable to tearing. If new requests come in too fast, existing requests are applied instantly, like Immediate.
  • +
+
+ +
+
+
+ + + + diff --git a/group__tz__gl__vk__sync.html b/group__tz__gl__vk__sync.html new file mode 100644 index 0000000000..866c815d91 --- /dev/null +++ b/group__tz__gl__vk__sync.html @@ -0,0 +1,131 @@ + + + + + + + +Topaz: Synchronisation Primitives + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.1.0.1 +
+
C++20 Graphics Engine
+
+
+ + + + +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+ + +
+
+ +

Documentation for functionality related to CPU/GPU Vulkan synchronisation primitives. +More...

+ + + + + + + + + + + + + + +

+Data Structures

struct  tz::gl::vk2::FenceInfo
 Specifies creation flags for a Fence. More...
 
class  tz::gl::vk2::Fence
 Synchronisation primitive which is useful to detect completion of a GPU operation, CPU-side. More...
 
class  tz::gl::vk2::BinarySemaphore
 Synchronisation primitive which is not interactable on the host and which has two states: More...
 
class  tz::gl::vk2::TimelineSemaphore
 Synchronisation primitive similar to BinarySemaphore. More...
 
+ + + + +

+Typedefs

+using tz::gl::vk2::Semaphore = BinarySemaphore
 Alias for BinarySemaphore.
 
+

Detailed Description

+

Documentation for functionality related to CPU/GPU Vulkan synchronisation primitives.

+
+ + + + diff --git a/group__tz__lua__cpp.html b/group__tz__lua__cpp.html new file mode 100644 index 0000000000..f1e8af25c4 --- /dev/null +++ b/group__tz__lua__cpp.html @@ -0,0 +1,123 @@ + + + + + + + +Topaz: Lua Integration + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.1.0.1 +
+
C++20 Graphics Engine
+
+
+ + + + +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+ +
Lua Integration
+
+
+ +

Run Lua code from within Topaz C++. +More...

+ + + + + +

+Data Structures

class  tz::lua::state
 Represents a lua state. More...
 
+ + + + +

+Functions

+statetz::lua::get_state ()
 Retrieve the main lua tz::lua::state.
 
+

Detailed Description

+

Run Lua code from within Topaz C++.

+

See Lua API Reference for the Topaz-provided lua API.

+
+ + + + diff --git a/group__tz__wsi.html b/group__tz__wsi.html new file mode 100644 index 0000000000..4bdb564c56 --- /dev/null +++ b/group__tz__wsi.html @@ -0,0 +1,123 @@ + + + + + + + +Topaz: Window System Integration + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.1.0.1 +
+
C++20 Graphics Engine
+
+
+ + + + +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+ +
Window System Integration
+
+
+ +

Documentation for functionality related to windowing, peripherals and input. +More...

+ + + + + + + + + + + + + + +

+Modules

 Keyboard Input
 Utilities, structures and helpers for keyboard input.
 
 Monitors
 Retrieve information about hardware monitors currently connected to the machine.
 
 Mouse Input
 Utilities, structures and helpers for mouse input.
 
 Window
 Create, destroy or customise an application window.
 
+

Detailed Description

+

Documentation for functionality related to windowing, peripherals and input.

+
+ + + + diff --git a/group__tz__wsi__keyboard.html b/group__tz__wsi__keyboard.html new file mode 100644 index 0000000000..4c79777e80 --- /dev/null +++ b/group__tz__wsi__keyboard.html @@ -0,0 +1,211 @@ + + + + + + + +Topaz: Keyboard Input + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.1.0.1 +
+
C++20 Graphics Engine
+
+
+ + + + +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+ + +
+
+ +

Utilities, structures and helpers for keyboard input. +More...

+ + + + + +

+Data Structures

struct  tz::wsi::keyboard_state
 Represents the total state of the keyboard and key-presses for a single window. More...
 
+ + + + +

+Enumerations

enum class  tz::wsi::key
 Contains all possible keyboard inputs that Topaz supports.
 
+ + + + + + + + + + +

+Functions

+std::string tz::wsi::get_key_name (tz::wsi::key key)
 Retrieve a human-readable name for a key.
 
std::string tz::wsi::get_chars_typed (tz::wsi::key key, const keyboard_state &state)
 Retrieve a string representing the characters typed, after modifiers.
 
bool tz::wsi::is_key_down (const keyboard_state &kb, tz::wsi::key key)
 Query as to whether a specific key is currently pressed for a keyboard state.
 
+

Detailed Description

+

Utilities, structures and helpers for keyboard input.

+

Function Documentation

+ +

◆ get_chars_typed()

+ +
+
+ + + + + + + + + + + + + + + + + + +
std::string tz::wsi::get_chars_typed (tz::wsi::key key,
const keyboard_statestate 
)
+
+ +

Retrieve a string representing the characters typed, after modifiers.

+
Parameters
+ + + +
keyKey that has just been pressed.
stateState of the keyboard when the key was pressed.
+
+
+ +
+
+ +

◆ is_key_down()

+ +
+
+ + + + + + + + + + + + + + + + + + +
bool tz::wsi::is_key_down (const keyboard_statekb,
tz::wsi::key key 
)
+
+ +

Query as to whether a specific key is currently pressed for a keyboard state.

+
Parameters
+ + + +
kbKeyboard state to query.
keyWhich key are you asking to see is pressed?
+
+
+
Returns
True if key is pressed according to the passed keyboard state, false if not.
+ +
+
+
+ + + + diff --git a/group__tz__wsi__monitor.html b/group__tz__wsi__monitor.html new file mode 100644 index 0000000000..55dbd31de5 --- /dev/null +++ b/group__tz__wsi__monitor.html @@ -0,0 +1,142 @@ + + + + + + + +Topaz: Monitors + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.1.0.1 +
+
C++20 Graphics Engine
+
+
+ + + + +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+ + +
+
+ +

Retrieve information about hardware monitors currently connected to the machine. +More...

+ + + + + +

+Data Structures

struct  tz::wsi::monitor
 Represents information about a monitor. More...
 
+ + + + +

+Functions

std::vector< tz::wsi::monitortz::wsi::get_monitors ()
 Retrieve a list of all hardware monitors currently connected to the machine.
 
+

Detailed Description

+

Retrieve information about hardware monitors currently connected to the machine.

+

Function Documentation

+ +

◆ get_monitors()

+ +
+
+ + + + + + + +
std::vector< tz::wsi::monitor > tz::wsi::get_monitors ()
+
+ +

Retrieve a list of all hardware monitors currently connected to the machine.

+
Note
The primary monitor is guaranteed to be the first element of this list.
+ +
+
+
+ + + + diff --git a/group__tz__wsi__mouse.html b/group__tz__wsi__mouse.html new file mode 100644 index 0000000000..8706ea3911 --- /dev/null +++ b/group__tz__wsi__mouse.html @@ -0,0 +1,251 @@ + + + + + + + +Topaz: Mouse Input + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.1.0.1 +
+
C++20 Graphics Engine
+
+
+ + + + +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+ + +
+
+ +

Utilities, structures and helpers for mouse input. +More...

+ + + + + +

+Data Structures

struct  tz::wsi::mouse_state
 Represents the total state of the mouse for a single window. More...
 
+ + + + + + + +

+Enumerations

enum class  tz::wsi::mouse_button {
+  mouse_button::left +,
+  mouse_button::right +,
+  mouse_button::middle +,
+  _count +
+ }
 Represents all supported mouse buttons. More...
 
enum class  tz::wsi::mouse_button_state {
+  mouse_button_state::clicked +,
+  mouse_button_state::double_clicked +,
+  mouse_button_state::noclicked +
+ }
 Represents the current state of a mouse_button. More...
 
+ + + + +

+Functions

bool tz::wsi::is_mouse_button_down (const tz::wsi::mouse_state &ms, tz::wsi::mouse_button b)
 Query as to whether a specific mouse button is currently pressed for a mouse state (clicked or double-clicked).
 
+

Detailed Description

+

Utilities, structures and helpers for mouse input.

+

Enumeration Type Documentation

+ +

◆ mouse_button

+ +
+
+ + + + + +
+ + + + +
enum class tz::wsi::mouse_button
+
+strong
+
+ +

Represents all supported mouse buttons.

+ + + + +
Enumerator
left 

Left mouse button.

+
right 

Right mouse button.

+
middle 

Middle mouse button.

+
+ +
+
+ +

◆ mouse_button_state

+ +
+
+ + + + + +
+ + + + +
enum class tz::wsi::mouse_button_state
+
+strong
+
+ +

Represents the current state of a mouse_button.

+ + + + +
Enumerator
clicked 

Mouse button has been clicked.

+
double_clicked 

Mouse button has been double-clicked.

+
noclicked 

Mouse button is not pressed.

+
+ +
+
+

Function Documentation

+ +

◆ is_mouse_button_down()

+ +
+
+ + + + + + + + + + + + + + + + + + +
bool tz::wsi::is_mouse_button_down (const tz::wsi::mouse_statems,
tz::wsi::mouse_button b 
)
+
+ +

Query as to whether a specific mouse button is currently pressed for a mouse state (clicked or double-clicked).

+
Parameters
+ + + +
msMouse state to query.
bWhich mouse button are you asking to see is pressed?
+
+
+
Returns
True if b is pressed according to the passed mouse state, false if not.
+ +
+
+
+ + + + diff --git a/group__tz__wsi__window.html b/group__tz__wsi__window.html new file mode 100644 index 0000000000..3653b2e319 --- /dev/null +++ b/group__tz__wsi__window.html @@ -0,0 +1,262 @@ + + + + + + + +Topaz: Window + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.1.0.1 +
+
C++20 Graphics Engine
+
+
+ + + + +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+ + +
+
+ +

Create, destroy or customise an application window. +More...

+ + + + + +

+Namespaces

namespace  tz::wsi::window_flag
 Represents an optional setting for a tz::wsi::window.
 
+ + + + +

+Concepts

concept  tz::wsi::window_api
 Represents an API for a window.
 
+ + + + + + + +

+Data Structures

struct  tz::wsi::window_info
 Specifies creation flags for a wsi::window. More...
 
struct  tz::wsi::window
 Represents an application window. More...
 
+ + + + +

+Typedefs

+using tz::wsi::window_handle = tz::handle< detail::window_handle_tag >
 An opaque handle associated with a window.
 
+ + + + + + + + + + + + + + + + +

+Functions

window_handle tz::wsi::create_window (window_info info={})
 Create a new window.
 
bool tz::wsi::destroy_window (window_handle wh)
 Destroy an existing window associated with the provided handle.
 
windowtz::wsi::get_window (window_handle wh)
 Retrieve a window associated with the provided handle.
 
bool tz::wsi::has_window (window_handle wh)
 Query as to whether there exists a window associated with the provided handle.
 
+std::size_t tz::wsi::window_count ()
 Retrieve a count of all valid windows that have not yet been deleted.
 
+

Detailed Description

+

Create, destroy or customise an application window.

+

Function Documentation

+ +

◆ create_window()

+ +
+
+ + + + + + + + +
window_handle tz::wsi::create_window (window_info info = {})
+
+ +

Create a new window.

+
Parameters
+ + +
infoCreation flags for the new window.
+
+
+
Returns
Opaque handle associated with the new window. Keep ahold of it.
+ +
+
+ +

◆ destroy_window()

+ +
+
+ + + + + + + + +
bool tz::wsi::destroy_window (window_handle wh)
+
+ +

Destroy an existing window associated with the provided handle.

+
Parameters
+ + +
whOpaque window handle, retrieved from a prior call to tz::wsi::create_window
+
+
+
Returns
True if the window was successfully destroyed, false otherwise.
+ +
+
+ +

◆ get_window()

+ +
+
+ + + + + + + + +
window & tz::wsi::get_window (window_handle wh)
+
+ +

Retrieve a window associated with the provided handle.

+
Parameters
+ + +
whWindow handle retrieved from a prior invocation of tz::wsi::create_window
+
+
+
Returns
Reference to the associated window.
+ +
+
+ +

◆ has_window()

+ +
+
+ + + + + + + + +
bool tz::wsi::has_window (window_handle wh)
+
+ +

Query as to whether there exists a window associated with the provided handle.

+
Returns
True if there is a valid window associated with the handle that has not been deleted, otherwise false.
+ +
+
+
+ + + + diff --git a/group__tzsl.html b/group__tzsl.html new file mode 100644 index 0000000000..6c0a5f9f6f --- /dev/null +++ b/group__tzsl.html @@ -0,0 +1,129 @@ + + + + + + + +Topaz: TZSL API Reference + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.1.0.1 +
+
C++20 Graphics Engine
+
+
+ + + + +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+ +
TZSL API Reference
+
+
+ +

Topaz Shader Language (shaders) +More...

+ + + + + + + + + + + + + + + + + + + + +

+Modules

 Atomic Operations
 Perform atomic operations on variables.
 
 Debugging
 Perform basic debugging operations within a shader.
 
 Mathematical Operations
 Access the most basic mathematical functions.
 
 Matrix Operations
 Access matrix operations.
 
 Noise Functions
 Access common noise functions which are already provided for you.
 
 Precomputed Meshes
 Retrieve basic pre-computed mesh expressed as an array of unindexed positions (triangles).
 
+

Detailed Description

+

Topaz Shader Language (shaders)

+
+ + + + diff --git a/group__tzsl__atomic.html b/group__tzsl__atomic.html new file mode 100644 index 0000000000..43cac52873 --- /dev/null +++ b/group__tzsl__atomic.html @@ -0,0 +1,151 @@ + + + + + + + +Topaz: Atomic Operations + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.1.0.1 +
+
C++20 Graphics Engine
+
+
+ + + + +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+ +
Atomic Operations
+
+
+ +

Perform atomic operations on variables. +More...

+ + + + + +

+Namespaces

namespace  tz::atomic
 Contains atomic operations as functions.
 
+ + + + + + + + + + + + + + + + + + + + + + + + + +

+Functions

+int tz::atomic::add (int &mem, int data)
 Performs an atomic add operation.
 
+int tz::atomic::and (int &mem, int data)
 Performs an atomic and operation.
 
+int tz::atomic::or (int &mem, int data)
 Performs an atomic or operation.
 
+int tz::atomic::xor (int &mem, int data)
 Performs an atomic xor operation.
 
+int tz::atomic::min (int &mem, int data)
 Performs an atomic min operation.
 
+int tz::atomic::max (int &mem, int data)
 Performs an atomic max operation.
 
+int tz::atomic::exchange (int &mem, int data)
 Performs an atomic exhange operation.
 
+int tz::atomic::cas (int &mem, uint compare, uint data)
 Performs an atomic compare-exchange operation.
 
+

Detailed Description

+

Perform atomic operations on variables.

+

Import <atomic>

+
+ + + + diff --git a/group__tzsl__debug.html b/group__tzsl__debug.html new file mode 100644 index 0000000000..ff932e548c --- /dev/null +++ b/group__tzsl__debug.html @@ -0,0 +1,181 @@ + + + + + + + +Topaz: Debugging + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.1.0.1 +
+
C++20 Graphics Engine
+
+
+ + + + +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+ + +
+
+ +

Perform basic debugging operations within a shader. +More...

+ + + + + +

+Namespaces

namespace  tz::debug
 Contains debug-only operations as functions.
 
+ + + + + + + +

+Functions

void tz::debug::printf (const char *fmt,...)
 Print formatted output to CPU-side stdout.
 
void tz::debug::assert (bool condition)
 Assert that a condition is true.
 
+

Detailed Description

+

Perform basic debugging operations within a shader.

+

Import <debug>

+

Function Documentation

+ +

◆ assert()

+ +
+
+ + + + + + + + +
void tz::debug::assert (bool condition)
+
+ +

Assert that a condition is true.

+

If it evaluates to false, an assert will occur as soon as possible CPU-side.

+

Only available on vulkan-debug. On all other build combinations, this has no effect.

+ +
+
+ +

◆ printf()

+ +
+
+ + + + + + + + + + + + + + + + + + +
void tz::debug::printf (const char * fmt,
 ... 
)
+
+ +

Print formatted output to CPU-side stdout.

+

Only available on vulkan-debug. On all other build combinations, this has no effect.

+
Note
const char* is not a valid type in TZSL. In this context, it is a string-literal (which is only useable in this specific function due to compiler support. There are no string literals otherwise in TZSL.)
+

You should take great care when using this, as this could be invoked many many times within shaders and quickly spam your application to lagginess.

+ +
+
+
+ + + + diff --git a/group__tzsl__math.html b/group__tzsl__math.html new file mode 100644 index 0000000000..daf8329064 --- /dev/null +++ b/group__tzsl__math.html @@ -0,0 +1,621 @@ + + + + + + + +Topaz: Mathematical Operations + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.1.0.1 +
+
C++20 Graphics Engine
+
+
+ + + + +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+ +
Mathematical Operations
+
+
+ +

Access the most basic mathematical functions. +More...

+ + + + + +

+Namespaces

namespace  tz::math
 Contains generic mathematical functions.
 
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Functions

+generic_number_t tz::math::abs (generic_number_t x)
 Return the absolute value of the parameter.
 
+generic_number_t tz::math::cos (generic_number_t angle)
 Return the cosine of the provided value, in radians.
 
+generic_number_t tz::math::sin (generic_number_t angle)
 Return the sine of the provided value, in radians.
 
+generic_number_t tz::math::tan (generic_number_t angle)
 Return the tangent of the provided value, in radians.
 
generic_number_t tz::math::acos (generic_number_t value)
 Return the arc-cosine of the provided value.
 
generic_number_t tz::math::acosh (generic_number_t value)
 Return the arc-hyperbolic-cosine of the provided value.
 
generic_number_t tz::math::asin (generic_number_t value)
 Return the arc-sine of the provided value.
 
generic_number_t tz::math::asinh (generic_number_t value)
 Return the arc-hyperbolic-sine of the provided value.
 
generic_number_t tz::math::atan (generic_number_t value)
 Return the arc-tangent of the provided value.
 
generic_number_t tz::math::atanh (generic_number_t value)
 Return the arc-hyperbolic-tangent of the provided value.
 
+generic_number_t tz::math::ceil (generic_number_t value)
 Return a value equal to the nearest integer that is greater than or equal to the parameter.
 
+generic_number_t tz::math::floor (generic_number_t value)
 Return a value equal to the nearest integer that is less than or equal to the parameter.
 
+generic_number_t tz::math::round (generic_number_t value)
 Return a value equal to the value, rounded to the nearest integer.
 
+generic_number_t tz::math::trunc (generic_number_t value)
 Return a value equal to the nearest integer to the parameter whose absolute value is not larger than the absolute value of the parameter.
 
+generic_number_t tz::math::fract (generic_number_t value)
 Return the fractional component of the argument.
 
generic_number_t tz::math::sign (generic_number_t value)
 Extract the sign of the parameter.
 
+generic_number_t tz::math::clamp (generic_number_t value, generic_number_t min_val, generic_number_t max_val)
 Constrain a value to lie between two further values.
 
+vec3 tz::math::cross (vec3 x, vec3 y)
 Calculate the cross-product of two vectors.
 
+float tz::math::distance (generic_number_t x, generic_number_t y)
 Calculate the distance between two points.
 
+float tz::math::dot (generic_number_t x, generic_number_t y)
 Calculate the dot product of two vectors.
 
+generic_number_t tz::math::exp (generic_number_t x)
 Retrieve the natural exponentiation of the parameter i.e e^x
 
+generic_number_t tz::math::exp2 (generic_number_t x)
 Retrieve 2^x
 
generic_number_t tz::math::sqrt (generic_number_t x)
 Retrieve the square-root of the parameter.
 
generic_number_t tz::math::inverse_sqrt (generic_number_t x)
 Retrieve the inverse of the square-root of the parameter.
 
+bool tz::math::is_infinity (generic_number_t x)
 Determine whether the parameter is positive of negative infinity.
 
+bool tz::math::is_nan (generic_number_t x)
 Determine whether the parameter is not-a-number.
 
generic_number_t tz::math::step (generic_number_t edge, generic_number_t x)
 Generates a step function by comparing two values.
 
+generic_number_t tz::math::smooth_step (generic_number_t edge0, generic_number_t edge1, generic_number_t x)
 Perform Hermite interpolation between two values.
 
+float tz::math::magnitude (vecn x)
 Calculate the length of a vector.
 
+vecn tz::math::normalise (vecn x)
 Calculate the unit-vector in the same direction as the parameter vector.
 
+generic_number_t tz::math::ln (generic_number_t x)
 Retrieve the natural logarithm o fthe parameter.
 
+generic_number_t tz::math::log (generic_number_t x)
 Retrieve the base-2 logarithm of the parameter.
 
generic_number_t tz::math::pow (generic_number_t x, generic_number_t y)
 Retrieve the value of the first parameter raised to the power of the second.
 
+generic_number_t tz::math::max (generic_number_t x, generic_number_t y)
 Retrieve the greater of two values.
 
+generic_number_t tz::math::min (generic_number_t x, generic_number_t y)
 Retrieve the min of two values.
 
generic_number_t tz::math::lerp (generic_number_t x, generic_number_t y, generic_number_t v)
 Linearly interpolate between two values.
 
+generic_number_t tz::math::mod (generic_number_t x, generic_number_t y)
 Compute value of one parameter modulo another.
 
vecn tz::math::reflect (vecn i, vecn n)
 Calculate the reflection direction for an incident vector and a normal vector.
 
vecn tz::math::refract (vecn i, vecn n, float eta)
 Calculate the refraction direction for an incident vector, a normal vector and a ratio of indices of refraction.
 
+

Detailed Description

+

Access the most basic mathematical functions.

+

Import <math>

+

Function Documentation

+ +

◆ acos()

+ +
+
+ + + + + + + + +
generic_number_t tz::math::acos (generic_number_t value)
+
+ +

Return the arc-cosine of the provided value.

+
Precondition
-1 < value < 1, otherwise the result is undefined.
+
Returns
Angle in radians, between 0 to pi.
+ +
+
+ +

◆ acosh()

+ +
+
+ + + + + + + + +
generic_number_t tz::math::acosh (generic_number_t value)
+
+ +

Return the arc-hyperbolic-cosine of the provided value.

+
Precondition
value >= 1, otherwise the result is undefined.
+ +
+
+ +

◆ asin()

+ +
+
+ + + + + + + + +
generic_number_t tz::math::asin (generic_number_t value)
+
+ +

Return the arc-sine of the provided value.

+
Precondition
-1 < value < 1, otherwise the result is undefined.
+
Returns
Angle in radians, between 0 to pi.
+ +
+
+ +

◆ asinh()

+ +
+
+ + + + + + + + +
generic_number_t tz::math::asinh (generic_number_t value)
+
+ +

Return the arc-hyperbolic-sine of the provided value.

+
Precondition
value >= 1, otherwise the result is undefined.
+ +
+
+ +

◆ atan()

+ +
+
+ + + + + + + + +
generic_number_t tz::math::atan (generic_number_t value)
+
+ +

Return the arc-tangent of the provided value.

+
Precondition
value != 0, otherwise the result is undefined.
+
Returns
Angle in radians, between -pi to pi.
+ +
+
+ +

◆ atanh()

+ +
+
+ + + + + + + + +
generic_number_t tz::math::atanh (generic_number_t value)
+
+ +

Return the arc-hyperbolic-tangent of the provided value.

+
Precondition
-1 < value < 1, otherwise the result is undefined.
+ +
+
+ +

◆ inverse_sqrt()

+ +
+
+ + + + + + + + +
generic_number_t tz::math::inverse_sqrt (generic_number_t x)
+
+ +

Retrieve the inverse of the square-root of the parameter.

+
Precondition
x > 0, otherwise the result is undefined.
+ +
+
+ +

◆ lerp()

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
generic_number_t tz::math::lerp (generic_number_t x,
generic_number_t y,
generic_number_t v 
)
+
+ +

Linearly interpolate between two values.

+
Returns
x * (1 - v) + y * v
+ +
+
+ +

◆ pow()

+ +
+
+ + + + + + + + + + + + + + + + + + +
generic_number_t tz::math::pow (generic_number_t x,
generic_number_t y 
)
+
+ +

Retrieve the value of the first parameter raised to the power of the second.

+
Returns
x^y
+ +
+
+ +

◆ reflect()

+ +
+
+ + + + + + + + + + + + + + + + + + +
vecn tz::math::reflect (vecn i,
vecn n 
)
+
+ +

Calculate the reflection direction for an incident vector and a normal vector.

+
Returns
i - 2.0 * tz::math::dot(n, i) * n
+ +
+
+ +

◆ refract()

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
vecn tz::math::refract (vecn i,
vecn n,
float eta 
)
+
+ +

Calculate the refraction direction for an incident vector, a normal vector and a ratio of indices of refraction.

+
Precondition
The parameters i and n should be normalised, otherwise the result may be distorted.
+ +
+
+ +

◆ sign()

+ +
+
+ + + + + + + + +
generic_number_t tz::math::sign (generic_number_t value)
+
+ +

Extract the sign of the parameter.

+
Returns
-1.0 if the parameter is less than 0.0, or 1.0 if the parameter is greater than 0.0.
+ +
+
+ +

◆ sqrt()

+ +
+
+ + + + + + + + +
generic_number_t tz::math::sqrt (generic_number_t x)
+
+ +

Retrieve the square-root of the parameter.

+
Precondition
x >= 0, otherwise the result is undefined.
+ +
+
+ +

◆ step()

+ +
+
+ + + + + + + + + + + + + + + + + + +
generic_number_t tz::math::step (generic_number_t edge,
generic_number_t x 
)
+
+ +

Generates a step function by comparing two values.

+
Returns
0.0 if x < edge, otherwise 1.0.
+ +
+
+
+ + + + diff --git a/group__tzsl__matrix.html b/group__tzsl__matrix.html new file mode 100644 index 0000000000..d19dc7a40e --- /dev/null +++ b/group__tzsl__matrix.html @@ -0,0 +1,156 @@ + + + + + + + +Topaz: Matrix Operations + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.1.0.1 +
+
C++20 Graphics Engine
+
+
+ + + + +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+ +
Matrix Operations
+
+
+ +

Access matrix operations. +More...

+ + + + + +

+Namespaces

namespace  tz::matrix
 Contains matrix-specific mathematical functions.
 
+ + + + + + + + + + + + + +

+Functions

mat4 tz::matrix::decompose_quaternion (vec4 quat)
 Given the quaternion parameter, retrieve a rotational 4x4 matrix which represents a similar rotation in 3D space.
 
+float tz::matrix::determinant (matn m)
 Calculate the determinant of a matrix.
 
+matn tz::matrix::inverse (matn m)
 Calculate the inverse of a matrix.
 
+matnm tz::matrix::transpose (matmn m)
 Calculate the transpose of a matrix.
 
+

Detailed Description

+

Access matrix operations.

+

Import <matrix>

+

Function Documentation

+ +

◆ decompose_quaternion()

+ +
+
+ + + + + + + + +
mat4 tz::matrix::decompose_quaternion (vec4 quat)
+
+ +

Given the quaternion parameter, retrieve a rotational 4x4 matrix which represents a similar rotation in 3D space.

+
Note
quat is expressed as a quaternion as xyzw.
+ +
+
+
+ + + + diff --git a/group__tzsl__mesh.html b/group__tzsl__mesh.html new file mode 100644 index 0000000000..dd336c0c03 --- /dev/null +++ b/group__tzsl__mesh.html @@ -0,0 +1,131 @@ + + + + + + + +Topaz: Precomputed Meshes + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.1.0.1 +
+
C++20 Graphics Engine
+
+
+ + + + +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+ +
Precomputed Meshes
+
+
+ +

Retrieve basic pre-computed mesh expressed as an array of unindexed positions (triangles). +More...

+ + + + + +

+Namespaces

namespace  tz::mesh
 Contains pre-computed mesh data.
 
+ + + + + + + + + + +

+Variables

+vec3[] tz::mesh::fullscreen_triangle [3]
 A single triangle which fills the entire screen, in clip-space.
 
+vec3[] tz::mesh::fullscreen_quad [6]
 A quad comprised of two triangles which exactly fills the entire screen, in clip-space.
 
+vec3[] tz::mesh::fullscreen_cube [36]
 A cube which fills the entire screen and depth -1.0 to 1.0, in clip-space.
 
+

Detailed Description

+

Retrieve basic pre-computed mesh expressed as an array of unindexed positions (triangles).

+

Import <mesh>

+
+ + + + diff --git a/group__tzsl__noise.html b/group__tzsl__noise.html new file mode 100644 index 0000000000..bb80d32642 --- /dev/null +++ b/group__tzsl__noise.html @@ -0,0 +1,168 @@ + + + + + + + +Topaz: Noise Functions + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.1.0.1 +
+
C++20 Graphics Engine
+
+
+ + + + +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+ +
Noise Functions
+
+
+ +

Access common noise functions which are already provided for you. +More...

+ + + + + +

+Namespaces

namespace  tz::noise
 Contains noise functions.
 
+ + + + + + + +

+Functions

float tz::noise::gold (vec2 uv)
 Gold Noise.
 
float tz::noise::simplex (vec2 uv)
 Simplex Noise.
 
+

Detailed Description

+

Access common noise functions which are already provided for you.

+

Import <noise>

+

Function Documentation

+ +

◆ gold()

+ +
+
+ + + + + + + + +
float tz::noise::gold (vec2 uv)
+
+ +

Gold Noise.

+

This is extremely fast, but highly volatile noise based on the golden ratio. Recommended for very basic requirements, poor for terrain.

+ +
+
+ +

◆ simplex()

+ +
+
+ + + + + + + + +
float tz::noise::simplex (vec2 uv)
+
+ +

Simplex Noise.

+

This is a slower, stable, classic noise with little dimensional artifacts. Highly recommended for terrain.

+ +
+
+
+ + + + diff --git a/handle_8hpp_source.html b/handle_8hpp_source.html new file mode 100644 index 0000000000..2ab2c57a31 --- /dev/null +++ b/handle_8hpp_source.html @@ -0,0 +1,165 @@ + + + + + + + +Topaz: src/tz/core/data/handle.hpp Source File + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.1.0.1 +
+
C++20 Graphics Engine
+
+
+ + + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+
handle.hpp
+
+
+
1#ifndef TZ_DATA_HANDLE_HPP
+
2#define TZ_DATA_HANDLE_HPP
+
3#include <cstddef>
+
4#include <cstdint>
+
5#include <limits>
+
6#include <type_traits>
+
7
+
8namespace tz
+
9{
+
10 enum class hanval : std::uint32_t{};
+
11
+
12 struct nullhand_t{};
+
13 constexpr nullhand_t nullhand;
+
14
+
15 template<typename T>
+
+
16 class handle
+
17 {
+
18 public:
+
19 handle(hanval v):
+
20 value(v){}
+
21
+
22 handle([[maybe_unused]] nullhand_t nh = {}):
+
23 value(static_cast<hanval>(std::numeric_limits<std::underlying_type_t<hanval>>::max())){}
+
24
+
25 explicit operator hanval() const
+
26 {
+
27 return this->value;
+
28 }
+
29
+
30 handle& operator=(hanval value)
+
31 {
+
32 this->value = value;
+
33 return *this;
+
34 }
+
35
+
36 bool operator==(nullhand_t) const
+
37 {
+
38 return handle<T>{nullhand}.value == this->value;
+
39 }
+
40 bool operator!=(nullhand_t) const
+
41 {
+
42 return handle<T>{nullhand}.value != this->value;
+
43 }
+
44
+
45 bool operator==(const handle<T>& rhs) const = default;
+
46 bool operator!=(const handle<T>& rhs) const = default;
+
47 private:
+
48 hanval value;
+
49 };
+
+
50}
+
51
+
52#endif // TZ_DATA_HANDLE_HPP
+
Definition handle.hpp:17
+
Definition handle.hpp:12
+
+ + + + diff --git a/image__view_8hpp_source.html b/image__view_8hpp_source.html new file mode 100644 index 0000000000..f2d438b027 --- /dev/null +++ b/image__view_8hpp_source.html @@ -0,0 +1,164 @@ + + + + + + + +Topaz: src/tz/gl/impl/vulkan/detail/image_view.hpp Source File + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.1.0.1 +
+
C++20 Graphics Engine
+
+
+ + + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+
image_view.hpp
+
+
+
1#ifndef TOPAZ_GL_IMPL_BACKEND_VK2_IMAGE_VIEW_HPP
+
2#define TOPAZ_GL_IMPL_BACKEND_VK2_IMAGE_VIEW_HPP
+
3#if TZ_VULKAN
+
4#include "tz/gl/impl/vulkan/detail/image.hpp"
+
5
+
6namespace tz::gl::vk2
+
7{
+
+ +
9 {
+
10 Image* image;
+
11 ImageAspectFlag aspect;
+
12 };
+
+
13
+
+
17 class ImageView : public DebugNameable<VK_OBJECT_TYPE_IMAGE_VIEW>
+
18 {
+
19 public:
+ +
21 ImageView(const ImageView& copy) = delete;
+
22 ImageView(ImageView&& move);
+
23 ~ImageView();
+
24
+
25 ImageView& operator=(const ImageView& rhs) = delete;
+
26 ImageView& operator=(ImageView&& rhs);
+
27
+
28 const Image& get_image() const;
+
29 Image& get_image();
+
30
+
31 ImageAspectFlag get_aspect() const;
+
32
+
33 using NativeType = VkImageView;
+
34 NativeType native() const;
+
35
+
36 static ImageView null();
+
37 bool is_null() const;
+
38 private:
+
39 ImageView();
+
40
+
41 VkImageView image_view;
+
42 ImageViewInfo info;
+
43 const LogicalDevice* ldev;
+
44 };
+
+
45}
+
46
+
47#endif // TZ_VULKAN
+
48#endif // TOPAZ_GL_IMPL_BACKEND_VK2_IMAGE_VIEW_HPP
+
Definition debugname.hpp:10
+
Represents an Image owned by the Vulkan API.
Definition image.hpp:155
+
Definition image_view.hpp:18
+
Logical interface to an existing PhysicalDevice.
Definition logical_device.hpp:95
+
ImageAspectFlag
Specifies which aspects of the image are included within a view.
Definition image.hpp:95
+
Definition image_view.hpp:9
+
+ + + + diff --git a/impl_2common_2renderer_8hpp_source.html b/impl_2common_2renderer_8hpp_source.html new file mode 100644 index 0000000000..7a14d6dd92 --- /dev/null +++ b/impl_2common_2renderer_8hpp_source.html @@ -0,0 +1,340 @@ + + + + + + + +Topaz: src/tz/gl/impl/common/renderer.hpp Source File + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.1.0.1 +
+
C++20 Graphics Engine
+
+
+ + + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+
renderer.hpp
+
+
+
1#ifndef TOPAZ_GL2_IMPL_FRONTEND_COMMON_RENDERER_HPP
+
2#define TOPAZ_GL2_IMPL_FRONTEND_COMMON_RENDERER_HPP
+
3#include "tz/gl/api/renderer.hpp"
+
4#include "tz/gl/api/shader.hpp"
+
5#include "tz/core/memory/maybe_owned_ptr.hpp"
+
6#include "imgui.h"
+
7#undef assert
+
8
+
9namespace tz::gl
+
10{
+
11 template<class Asset>
+
+ +
13 {
+
14 public:
+
15 using AssetHandle = tz::handle<Asset>;
+
16 AssetStorageCommon(std::span<const Asset* const> assets = {}):
+
17 asset_storage()
+
18 {
+
19 for(const Asset* asset : assets)
+
20 {
+
21 if(asset == nullptr)
+
22 {
+
23 this->asset_storage.push_back(nullptr);
+
24 }
+
25 else
+
26 {
+
27 this->asset_storage.push_back(asset->unique_clone());
+
28 }
+
29 }
+
30 }
+
31
+
32 unsigned int count() const
+
33 {
+
34 return this->asset_storage.size();
+
35 }
+
36
+
37 const Asset* get(AssetHandle handle) const
+
38 {
+
39 if(handle == tz::nullhand) return nullptr;
+
40 std::size_t handle_val = static_cast<std::size_t>(static_cast<tz::hanval>(handle));
+
41 return this->asset_storage[handle_val].get();
+
42 }
+
43
+
44 Asset* get(AssetHandle handle)
+
45 {
+
46 if(handle == tz::nullhand) return nullptr;
+
47 std::size_t handle_val = static_cast<std::size_t>(static_cast<tz::hanval>(handle));
+
48 return this->asset_storage[handle_val].get();
+
49 }
+
50
+
51 void set(AssetHandle handle, Asset* value)
+
52 {
+
53 std::size_t handle_val = static_cast<std::size_t>(static_cast<tz::hanval>(handle));
+
54 tz::assert(!this->asset_storage[handle_val].owning(), "AssetStorageCommon: Try to set specific asset value, but the asset at that handle is not a reference (it is owned by us)");
+
55 this->asset_storage[handle_val] = value;
+
56 }
+
57 private:
+
58 std::vector<maybe_owned_ptr<Asset>> asset_storage;
+
59 };
+
+
60
+
+ +
66 {
+
67 if(renderer.is_null())
+
68 {
+
69 ImGui::Text("Null renderer");
+
70 return;
+
71 }
+
72 ImGui::PushID(&renderer);
+
73 ImGui::Text("Renderer Name:");
+
74 ImGui::SameLine();
+
75 ImGui::TextColored(ImVec4{1.0f, 0.6f, 0.6f, 1.0f}, "%s", renderer.debug_get_name().data());
+
76 if(renderer.resource_count() > 0)
+
77 {
+
78 if(ImGui::CollapsingHeader("Resources"))
+
79 {
+
80 unsigned int rcount = renderer.resource_count() - 1;
+
81 ImGui::Text("resource Count: %u", renderer.resource_count());
+
82 static int res_id = 0;
+
83 res_id = std::clamp(res_id, 0, static_cast<int>(rcount));
+
84 ImGui::SliderInt("resource ID:", &res_id, 0, rcount);
+
85
+
86 // Display information about current resource.
+
87 ImGui::Indent();
+
88 renderer.get_resource(static_cast<tz::hanval>(res_id))->dbgui();
+
89 ImGui::Unindent();
+
90 }
+
91 }
+
92 else
+
93 {
+
94 ImGui::Text("renderer has no resources.");
+
95 }
+
96 if(ImGui::CollapsingHeader("Renderer State"))
+
97 {
+
98 ImGui::TextColored(ImVec4{1.0f, 0.6f, 0.6f, 1.0f}, "Graphics");
+
99 ImGui::Indent();
+
100 // Graphics - Index Buffer
+
101 {
+ +
103 auto* comp = renderer.get_component(han);
+
104 if(comp != nullptr && ImGui::CollapsingHeader("Index Buffer"))
+
105 {
+
106 ImGui::Text("[resource %zu]", static_cast<std::size_t>(static_cast<tz::hanval>(han)));
+
107 ImGui::Indent();
+
108 comp->get_resource()->dbgui();
+
109 ImGui::Unindent();
+
110 }
+
111 }
+
112 // Graphics - Draw Buffer
+
113 {
+ +
115 auto* comp = renderer.get_component(han);
+
116 if(comp != nullptr && ImGui::CollapsingHeader("Draw Indirect Buffer"))
+
117 {
+
118 ImGui::Text("[resource %zu]", static_cast<std::size_t>(static_cast<tz::hanval>(han)));
+
119 ImGui::Indent();
+
120 comp->get_resource()->dbgui();
+
121 ImGui::Unindent();
+
122 }
+
123 }
+
124 ImGui::Spacing();
+
125 // Graphics - Clear Colour
+
126 {
+ +
128 if(ImGui::DragFloat4("Clear Colour", col.data().data(), 0.02f, 0.0f, 1.0f))
+
129 {
+
130 renderer.edit
+
131 (
+ + +
134 ({
+
135 .clear_colour = col
+
136 })
+
137 .build()
+
138 );
+
139 }
+
140 }
+
141 // Graphics - Tri Count
+
142 {
+
143 if(renderer.get_state().graphics.draw_buffer != tz::nullhand)
+
144 {
+
145 ImGui::Text("Triangle Count: Indirect Buffer");
+
146 }
+
147 else
+
148 {
+
149 ImGui::Text("Triangle Count: %zu", renderer.get_state().graphics.tri_count);
+
150 }
+
151 }
+
152 // Graphics - Wireframe Mode
+
153 {
+ +
155 if(ImGui::Checkbox("Wireframe Mode", &wfm))
+
156 {
+
157 renderer.edit
+
158 (
+ + +
161 ({
+
162 .wireframe_mode = wfm
+
163 })
+
164 .build()
+
165 );
+
166 }
+
167 }
+
168 ImGui::Unindent();
+
169 ImGui::TextColored(ImVec4{1.0f, 0.6f, 0.6f, 1.0f}, "Compute");
+
170 ImGui::Indent();
+
171 // Compute - Kernel
+
172 {
+
173 auto kern = static_cast<tz::vec3i>(renderer.get_state().compute.kernel);
+
174 if(ImGui::DragInt3("Kernel", kern.data().data(), 0.25f, 0, 64))
+
175 {
+
176 renderer.edit
+
177 (
+ +
179 .compute
+
180 ({
+
181 .kernel = kern
+
182 })
+
183 .build()
+
184 );
+
185 }
+
186 }
+
187 ImGui::Unindent();
+
188 }
+
189 if(!renderer.get_options().empty() && ImGui::CollapsingHeader("Renderer Options"))
+
190 {
+
191 for(renderer_option option : renderer.get_options())
+
192 {
+
193 ImGui::Text("%s", detail::renderer_option_strings[static_cast<int>(option)]);
+
194 }
+
195 #if TZ_DEBUG
+
196 ImGui::PushTextWrapPos();
+
197 ImGui::TextDisabled("Note: In debug builds, extra options might be present that you did not ask for. These are added to allow the debug-ui to display ontop of your rendered output.");
+
198 ImGui::PopTextWrapPos();
+
199 #endif //TZ_DEBUG
+
200 }
+
201 ImGui::Separator();
+
202 ImGui::PopID();
+
203 }
+
+
204
+
205}
+
206
+
207#endif // TOPAZ_GL2_IMPL_FRONTEND_COMMON_RENDERER_HPP
+
Definition renderer.hpp:13
+
Helper class which can be used to generate a renderer_edit_request.
Definition renderer.hpp:305
+
RendererEditBuilder & compute(renderer_edit::compute_config req)
Make amendments to the compute configuration of the renderer.
Definition renderer.cpp:8
+
RendererEditBuilder & render_state(renderer_edit::render_config req)
Make amendments to the current render state.
Definition renderer.cpp:14
+
virtual void dbgui()=0
Display debug information about the resource.
+
Implements tz::gl::renderer_type.
Definition renderer.hpp:398
+
const iresource * get_resource(tz::gl::resource_handle rh) const
Retrieves a pointer to the resource via its associated handle.
+
tz::gl::renderer_options get_options() const
Retrieve the set of enabled tz::gl::renderer_option flags used by this renderer.
+
const tz::gl::render_state & get_state() const
Retrieve the current render state.
+
unsigned int resource_count() const
Retrieves the number of resources used by the renderer.
+
Definition handle.hpp:17
+
Named requirement for a renderer.
Definition renderer.hpp:341
+
void assert(bool condition, detail::format_string fmt="<No message>", Args &&... args)
Assert on a condition.
Definition debug.inl:33
+
vector< int, 3 > vec3i
A vector of three ints.
Definition vector.hpp:239
+
void common_renderer_dbgui(renderer_type auto &renderer)
Helper function which displays render-api-agnostic information about renderers.
Definition renderer.hpp:65
+
renderer_option
Specifies options to enable extra functionality within Renderers.
Definition renderer.hpp:34
+
tz::vec3ui kernel
Represents the compute kernel, which contains the number of workgroups to be launched in the X,...
Definition renderer.hpp:90
+
std::size_t tri_count
number of triangles to be rendered in the next draw call. note@ if a draw_buffer has been specified,...
Definition renderer.hpp:82
+
resource_handle draw_buffer
If a draw-indirect buffer is used, this refers to the buffer resource. It must have resource_flag::dr...
Definition renderer.hpp:78
+
bool wireframe_mode
whether wireframe mode is enabled or not.
Definition renderer.hpp:84
+
resource_handle index_buffer
If an index buffer is used, this refers to the buffer resource. It must have resource_flag::index_buf...
Definition renderer.hpp:76
+
tz::vec4 clear_colour
Normalised RGBA floating point colour.
Definition renderer.hpp:80
+
Compute compute
Compute state.
Definition renderer.hpp:96
+
Graphics graphics
Graphics state.
Definition renderer.hpp:94
+
+ + + + diff --git a/impl_2linux_2keyboard_8hpp_source.html b/impl_2linux_2keyboard_8hpp_source.html new file mode 100644 index 0000000000..f205eea34f --- /dev/null +++ b/impl_2linux_2keyboard_8hpp_source.html @@ -0,0 +1,122 @@ + + + + + + + +Topaz: src/tz/wsi/impl/linux/keyboard.hpp Source File + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.1.0.1 +
+
C++20 Graphics Engine
+
+
+ + + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+
keyboard.hpp
+
+
+
1#ifndef TZ_WSI_IMPL_LINUX_KEYBOARD_HPP
+
2#ifdef __linux__
+
3#include "tz/wsi/api/keyboard.hpp"
+
4#include <string>
+
5
+
6namespace tz::wsi::impl
+
7{
+
8 std::string get_key_name_linux(tz::wsi::key key);
+
9 std::string get_chars_typed_linux(tz::wsi::key key, const keyboard_state& state);
+
10}
+
11
+
12#endif // __linux__
+
13#endif // TZ_WSI_IMPL_LINUX_KEYBOARD_HPP
+
+ + + + diff --git a/impl_2linux_2monitor_8hpp_source.html b/impl_2linux_2monitor_8hpp_source.html new file mode 100644 index 0000000000..448a10b9bd --- /dev/null +++ b/impl_2linux_2monitor_8hpp_source.html @@ -0,0 +1,122 @@ + + + + + + + +Topaz: src/tz/wsi/impl/linux/monitor.hpp Source File + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.1.0.1 +
+
C++20 Graphics Engine
+
+
+ + + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+
monitor.hpp
+
+
+
1#ifndef TZ_WSI_IMPL_LINUX_MONITOR_HPP
+
2#define TZ_WSI_IMPL_LINUX_MONITOR_HPP
+
3#ifdef __linux__
+
4#include "tz/wsi/api/monitor.hpp"
+
5#include <vector>
+
6
+
7namespace tz::wsi::impl
+
8{
+
9 std::vector<tz::wsi::monitor> get_monitors_linux();
+
10}
+
11
+
12#endif // __linux__
+
13#endif // TZ_WSI_IMPL_LINUX_MONITOR_HPP
+
+ + + + diff --git a/impl_2linux_2window_8hpp_source.html b/impl_2linux_2window_8hpp_source.html new file mode 100644 index 0000000000..97e0413411 --- /dev/null +++ b/impl_2linux_2window_8hpp_source.html @@ -0,0 +1,177 @@ + + + + + + + +Topaz: src/tz/wsi/impl/linux/window.hpp Source File + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.1.0.1 +
+
C++20 Graphics Engine
+
+
+ + + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+
window.hpp
+
+
+
1#ifndef TZ_WSI_IMPL_LINUX_WINDOW_HPP
+
2#define TZ_WSI_IMPL_LINUX_WINDOW_HPP
+
3#ifdef __linux__
+
4#include "tz/wsi/api/window.hpp"
+
5#include "tz/wsi/impl/linux/wsi_linux.hpp"
+
6// glx includes gl.h, and glad.h does aswell, but will complain if gl.h is already included elsewhere aside from glad.h. For this reason, we include glad.h even though we don't need it, so glx.h has access to ogl types without defining it itself. Now we can go on to include glad elsewhere in another including TU without errors.
+
7#include "glad/glad.h"
+
8#include <GL/glx.h>
+
9#include <optional>
+
10
+
11namespace tz::wsi::impl
+
12{
+
+ +
14 {
+
15 public:
+ +
17 window_x11(const window_x11& copy) = delete;
+
18 window_x11(window_x11&& move) = delete;
+ +
20 window_x11& operator=(const window_x11& rhs) = delete;
+
21 window_x11& operator=(window_x11&& rhs) = delete;
+
22
+
23 // tz::wsi::window_api<> begin
+
24 using native = Window;
+
25 native get_native() const;
+
26 void request_close();
+
27 bool is_close_requested() const;
+
28 tz::vec2ui get_dimensions() const;
+
29 void set_dimensions(tz::vec2ui dimensions);
+
30 std::string get_title() const;
+
31 void set_title(std::string title);
+
32 window_flag::flag_bit get_flags() const;
+
33 void update();
+
34 bool make_opengl_context_current();
+
35 #if TZ_VULKAN
+
36 VkSurfaceKHR make_vulkan_surface(VkInstance vkinst) const;
+
37 #endif // TZ_VULKAN
+
38 const keyboard_state& get_keyboard_state() const;
+
39 const mouse_state& get_mouse_state() const;
+
40 void* get_user_data() const;
+
41 void set_user_data(void* udata);
+
42 // tz::wsi::window_api<> end
+
43 private:
+
44 void impl_request_close();
+
45 void impl_init_opengl();
+
46
+
47 Window wnd;
+
48 window_flag::flag_bit flags;
+
49 void* userdata = nullptr;
+
50 keyboard_state kb_state = {};
+
51 mouse_state m_state = {};
+
52 GLXContext ctx = nullptr;
+
53 bool close_requested = false;
+
54 };
+
+ +
56 void* get_opengl_proc_address_linux(const char* name);
+
57}
+
58
+
59#endif // __linux__
+
60#endif // TZ_WSI_IMPL_LINUX_WINDOW_HPP
+
Definition window.hpp:14
+
Represents an API for a window.
Definition window.hpp:66
+
vector< unsigned int, 2 > vec2ui
A vector of two unsigned ints.
Definition vector.hpp:244
+
Represents the total state of the keyboard and key-presses for a single window.
Definition keyboard.hpp:26
+
Represents the total state of the mouse for a single window.
Definition mouse.hpp:42
+
Specifies creation flags for a wsi::window.
Definition window.hpp:52
+
+ + + + diff --git a/impl_2opengl_2component_8hpp_source.html b/impl_2opengl_2component_8hpp_source.html new file mode 100644 index 0000000000..c24e7f4749 --- /dev/null +++ b/impl_2opengl_2component_8hpp_source.html @@ -0,0 +1,179 @@ + + + + + + + +Topaz: src/tz/gl/impl/opengl/component.hpp Source File + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.1.0.1 +
+
C++20 Graphics Engine
+
+
+ + + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+
component.hpp
+
+
+
1#ifndef TOPAZ_GL2_IMPL_FRONTEND_OGL2_COMPONENT_HPP
+
2#define TOPAZ_GL2_IMPL_FRONTEND_OGL2_COMPONENT_HPP
+
3#if TZ_OGL
+
4#include "tz/gl/declare/image_format.hpp"
+
5#include "tz/gl/api/component.hpp"
+
6#include "tz/gl/impl/opengl/detail/buffer.hpp"
+
7#include "tz/gl/impl/opengl/detail/image.hpp"
+
8
+
9namespace tz::gl
+
10{
+
11 using namespace tz::gl;
+
+ +
13 {
+
14 public:
+ +
16 virtual const iresource* get_resource() const final;
+
17 virtual iresource* get_resource() final;
+
18 // Satisfy buffer_component_type
+
19 std::size_t size() const;
+
20 void resize(std::size_t sz);
+
21
+
22 ogl2::buffer& ogl_get_buffer();
+
23 bool ogl_is_descriptor_stakeholder() const;
+
24 private:
+
25 ogl2::buffer make_buffer() const;
+
26
+ +
28 ogl2::buffer buffer;
+
29 };
+
+ +
31
+
+ +
33 {
+
34 public:
+ +
36 virtual const iresource* get_resource() const final;
+
37 virtual iresource* get_resource() final;
+
38 // Satisfy image_component_type
+
39 tz::vec2ui get_dimensions() const;
+
40 image_format get_format() const;
+
41 void resize(tz::vec2ui dims);
+
42
+
43 const ogl2::image& ogl_get_image() const;
+
44 ogl2::image& ogl_get_image();
+
45 private:
+
46 ogl2::image make_image() const;
+
47
+ +
49 ogl2::image image;
+
50 };
+
+ +
52}
+
53
+
54#endif // TZ_OGL
+
55#endif // TOPAZ_GL2_IMPL_FRONTEND_OGL2_COMPONENT_HPP
+
Definition component.hpp:13
+
Definition component.hpp:10
+
Definition component.hpp:33
+
Interface for a renderer or Processor resource.
Definition resource.hpp:80
+
Documentation for OpenGL buffers.
Definition buffer.hpp:57
+
Documentation for OpenGL images.
Definition image.hpp:31
+
Definition resource.hpp:13
+
Definition component.hpp:19
+
Definition component.hpp:27
+
vector< unsigned int, 2 > vec2ui
A vector of two unsigned ints.
Definition vector.hpp:244
+
image_format
Various image formats are supported in Topaz.
Definition image_format.hpp:33
+
+ + + + diff --git a/impl_2opengl_2detail_2draw_8hpp_source.html b/impl_2opengl_2detail_2draw_8hpp_source.html new file mode 100644 index 0000000000..2bb19c8be7 --- /dev/null +++ b/impl_2opengl_2detail_2draw_8hpp_source.html @@ -0,0 +1,142 @@ + + + + + + + +Topaz: src/tz/gl/impl/opengl/detail/draw.hpp Source File + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.1.0.1 +
+
C++20 Graphics Engine
+
+
+ + + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+
draw.hpp
+
+
+
1#ifndef TOPAZ_GL_IMPL_BACKEND_OGL2_DRAW_HPP
+
2#define TOPAZ_GL_IMPL_BACKEND_OGL2_DRAW_HPP
+
3#if TZ_OGL
+
4#include <cstddef>
+
5
+
6namespace tz::gl::ogl2
+
7{
+
+ +
9 {
+
10 std::uint32_t count;
+
11 std::uint32_t instance_count = 1;
+
12 std::uint32_t first;
+
13 std::uint32_t base_instance = 0;
+
14 };
+
+
15
+
+ +
17 {
+
18 std::uint32_t count;
+
19 std::uint32_t instance_count = 1;
+
20 std::uint32_t first_index;
+
21 std::int32_t base_vertex = 0;
+
22 std::uint32_t base_instance = 0;
+
23 };
+
+
24}
+
25
+
26#endif // TZ_OGL
+
27#endif // TOPAZ_GL_IMPL_BACKEND_OGL2_DRAW_HPP
+ + +
+ + + + diff --git a/impl_2opengl_2detail_2image__format_8hpp_source.html b/impl_2opengl_2detail_2image__format_8hpp_source.html new file mode 100644 index 0000000000..0ac7ecca93 --- /dev/null +++ b/impl_2opengl_2detail_2image__format_8hpp_source.html @@ -0,0 +1,254 @@ + + + + + + + +Topaz: src/tz/gl/impl/opengl/detail/image_format.hpp Source File + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.1.0.1 +
+
C++20 Graphics Engine
+
+
+ + + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+
image_format.hpp
+
+
+
1#ifndef TOPAZ_GL_IMPL_BACKEND_OGL2_IMAGE_FORMAT_HPP
+
2#define TOPAZ_GL_IMPL_BACKEND_OGL2_IMAGE_FORMAT_HPP
+
3#include "tz/gl/impl/opengl/detail/tz_opengl.hpp"
+
4#include <array>
+
5
+
6namespace tz::gl::ogl2
+
7{
+
+ +
13 {
+
14 GLenum format;
+
15 GLenum internal_format;
+
16 GLenum type;
+
17 };
+
+
18
+
19 enum class image_format
+
20 {
+ +
22 R8,
+
23 R8_UNorm = R8,
+
24 R8_SNorm,
+
25 R8_UInt,
+
26 R8_SInt,
+
27 R8_sRGB,
+
28
+
29 R16,
+
30 R16_UNorm = R16,
+
31 R16_SNorm,
+
32 R16_UInt,
+
33 R16_SInt,
+
34
+
35 RG16,
+
36 RG16_UNorm = RG16,
+
37 RG16_SNorm,
+
38 RG16_UInt,
+
39 RG16_SInt,
+
40 RG16_sRGB,
+
41
+
42 RG32,
+
43 RG32_UNorm = RG32,
+
44 RG32_SNorm,
+
45 RG32_UInt,
+
46 RG32_SInt,
+
47
+
48 RGB24,
+
49 RGB24_UNorm = RGB24,
+
50 RGB24_SNorm,
+
51 RGB24_UInt,
+
52 RGB24_SInt,
+
53 RGB24_sRGB,
+
54
+
55 BGR24,
+
56 BGR24_UNorm = BGR24,
+
57 BGR24_SNorm,
+
58 BGR24_UInt,
+
59 BGR24_SInt,
+
60 BGR24_sRGB,
+
61
+
62 RGBA32,
+
63 RGBA32_UNorm = RGBA32,
+
64 RGBA32_SNorm,
+
65 RGBA32_UInt,
+
66 RGBA32_SInt,
+
67 RGBA32_sRGB,
+
68
+
69 BGRA32,
+
70 BGRA32_UNorm = BGRA32,
+
71 BGRA32_SNorm,
+
72 BGRA32_UInt,
+
73 BGRA32_SInt,
+
74 BGRA32_sRGB,
+
75
+
76 RGBA64_SFloat,
+
77 RGBA128_SFloat,
+
78
+
79 Depth16_UNorm,
+
80 Depth32_UNorm,
+
81 Count
+
82 };
+
83
+
84 constexpr std::array<FormatData, static_cast<int>(image_format::Count)> internal_fmts
+
85 {{
+
86 /* Undefined */ {.format = GL_INVALID_VALUE, .internal_format = GL_INVALID_VALUE, .type = GL_INVALID_VALUE},
+
87 /* R8, R8_UNorm */ {.format = GL_RED, .internal_format = GL_R8, .type = GL_UNSIGNED_BYTE},
+
88 /* R8_SNorm */ {.format = GL_RED, .internal_format = GL_R8_SNORM, .type = GL_BYTE},
+
89 /* R8_UInt */ {.format = GL_RED, .internal_format = GL_R8UI, .type = GL_UNSIGNED_INT},
+
90 /* R8_SInt */ {.format = GL_RED, .internal_format = GL_R8I, .type = GL_INT},
+
91 /* R8_sRGB */ {.format = GL_RED, .internal_format = GL_SRGB8, .type = GL_INT},
+
92
+
93 /* R16, R16_UNorm */ {.format = GL_RED, .internal_format = GL_R16, .type = GL_UNSIGNED_BYTE},
+
94 /* R16_SNorm */ {.format = GL_RED, .internal_format = GL_R16_SNORM, .type = GL_BYTE},
+
95 /* R16_UInt */ {.format = GL_RED, .internal_format = GL_R16UI, .type = GL_UNSIGNED_INT},
+
96 /* R16_SInt */ {.format = GL_RED, .internal_format = GL_R16I, .type = GL_INT},
+
97
+
98 /* RG16, RG16_UNorm */ {.format = GL_RG, .internal_format = GL_RG8, .type = GL_UNSIGNED_BYTE},
+
99 /* RG16_SNorm */ {.format = GL_RG, .internal_format = GL_RG8_SNORM, .type = GL_BYTE},
+
100 /* RG16_UInt */ {.format = GL_RG, .internal_format = GL_RG8UI, .type = GL_UNSIGNED_INT},
+
101 /* RG16_SInt */ {.format = GL_RG, .internal_format = GL_RG8I, .type = GL_INT},
+
102 /* RG16_sRGB */ {.format = GL_RG, .internal_format = GL_SRGB8, .type = GL_INT},
+
103
+
104 /* RG32, RG32_UNorm */ {.format = GL_RG, .internal_format = GL_RG16, .type = GL_UNSIGNED_BYTE},
+
105 /* RG32_SNorm */ {.format = GL_RG, .internal_format = GL_RG16_SNORM, .type = GL_BYTE},
+
106 /* RG32_UInt */ {.format = GL_RG, .internal_format = GL_RG16UI, .type = GL_UNSIGNED_INT},
+
107 /* RG32_SInt */ {.format = GL_RG, .internal_format = GL_RG16I, .type = GL_INT},
+
108
+
109 /* RGB24, RGB24_UNorm */ {.format = GL_RGB, .internal_format = GL_RGB8, .type = GL_UNSIGNED_BYTE},
+
110 /* RGB24_SNorm */ {.format = GL_RGB, .internal_format = GL_RGB8_SNORM, .type = GL_BYTE},
+
111 /* RGB24_UInt */ {.format = GL_RGB, .internal_format = GL_RGB8UI, .type = GL_UNSIGNED_INT},
+
112 /* RGB24_SInt */ {.format = GL_RGB, .internal_format = GL_RGB8I, .type = GL_UNSIGNED_INT},
+
113 /* RGB24_sRGB */ {.format = GL_RGB, .internal_format = GL_SRGB8, .type = GL_INT},
+
114
+
115 /* BGR24, BGR24_UNorm */ {.format = GL_BGR, .internal_format = GL_RGB8, .type = GL_UNSIGNED_BYTE},
+
116 /* BGR24_SNorm */ {.format = GL_BGR, .internal_format = GL_RGB8_SNORM, .type = GL_BYTE},
+
117 /* BGR24_UInt */ {.format = GL_BGR, .internal_format = GL_RGB8UI, .type = GL_UNSIGNED_INT},
+
118 /* BGR24_SInt */ {.format = GL_BGR, .internal_format = GL_RGB8I, .type = GL_INT},
+
119 /* BGR24_sRGB */ {.format = GL_BGR, .internal_format = GL_SRGB8, .type = GL_INT},
+
120
+
121 /* RGBA32, RGBA32_UNorm */ {.format = GL_RGBA, .internal_format = GL_RGBA8, .type = GL_UNSIGNED_BYTE},
+
122 /* RGBA32_SNorm */ {.format = GL_RGBA, .internal_format = GL_RGBA8_SNORM, .type = GL_BYTE},
+
123 /* RGBA32_UInt */ {.format = GL_RGBA, .internal_format = GL_RGBA8UI, .type = GL_UNSIGNED_INT},
+
124 /* RGBA32_SInt */ {.format = GL_RGBA, .internal_format = GL_RGBA8I, .type = GL_INT},
+
125 /* RGBA32_sRGB */ {.format = GL_RGBA, .internal_format = GL_SRGB8_ALPHA8, .type = GL_INT},
+
126
+
127 /* BGRA32, BGRA32_UNorm */ {.format = GL_BGRA, .internal_format = GL_RGBA8, .type = GL_UNSIGNED_BYTE},
+
128 /* BGRA32_SNorm */ {.format = GL_BGRA, .internal_format = GL_RGBA8_SNORM, .type = GL_BYTE},
+
129 /* BGRA32_UInt */ {.format = GL_BGRA, .internal_format = GL_RGBA8UI, .type = GL_UNSIGNED_INT},
+
130 /* BGRA32_SInt */ {.format = GL_BGRA, .internal_format = GL_RGBA8I, .type = GL_INT},
+
131 /* BGRA32_sRGB */ {.format = GL_BGRA, .internal_format = GL_SRGB8_ALPHA8, .type = GL_INT},
+
132 /* RGBA64_SFloat */{.format = GL_RGBA, .internal_format = GL_RGBA16F, .type = GL_FLOAT},
+
133 /* RGBA128_SFloat */{.format = GL_RGBA, .internal_format = GL_RGBA32F, .type = GL_FLOAT},
+
134
+
135 /* Depth16_UNorm */ {.format = GL_DEPTH_COMPONENT, .internal_format = GL_DEPTH_COMPONENT16, .type = GL_UNSIGNED_BYTE},
+
136 /* Depth32_UNorm */ {.format = GL_DEPTH_COMPONENT, .internal_format = GL_DEPTH_COMPONENT32, .type = GL_UNSIGNED_BYTE}
+
137 }};
+
138
+
139 constexpr FormatData get_format_data(image_format format)
+
140 {
+
141 return internal_fmts[static_cast<int>(format)];
+
142 }
+
143}
+
144
+
145#endif // TOPAZ_GL_IMPL_BACKEND_OGL2_IMAGE_FORMAT_HPP
+ +
OpenGL formats are pretty finnicky, especially when using them to initialise texture data-stores.
Definition image_format.hpp:13
+
+ + + + diff --git a/impl_2opengl_2detail_2shader_8hpp_source.html b/impl_2opengl_2detail_2shader_8hpp_source.html new file mode 100644 index 0000000000..0fda59f9e4 --- /dev/null +++ b/impl_2opengl_2detail_2shader_8hpp_source.html @@ -0,0 +1,236 @@ + + + + + + + +Topaz: src/tz/gl/impl/opengl/detail/shader.hpp Source File + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.1.0.1 +
+
C++20 Graphics Engine
+
+
+ + + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+
shader.hpp
+
+
+
1#ifndef TOPAZ_GL_IMPL_BACKEND_OGL2_SHADER_HPP
+
2#define TOPAZ_GL_IMPL_BACKEND_OGL2_SHADER_HPP
+
3#if TZ_OGL
+
4#include "tz/core/data/basic_list.hpp"
+
5#include "tz/gl/impl/opengl/detail/tz_opengl.hpp"
+
6
+
7namespace tz::gl::ogl2
+
8{
+
+
13 enum class shader_type : GLenum
+
14 {
+
16 vertex = GL_VERTEX_SHADER,
+
18 tessellation_control = GL_TESS_CONTROL_SHADER,
+
20 tessellation_evaluation = GL_TESS_EVALUATION_SHADER,
+
22 fragment = GL_FRAGMENT_SHADER,
+
24 compute = GL_COMPUTE_SHADER
+
25 };
+
+
26
+
+ +
32 {
+ +
36 ogl_string code;
+
37 };
+
+
38
+ +
48
+
+ +
54 {
+
55 public:
+
+ +
60 {
+
62 bool success;
+
64 ogl_string info_log;
+
65
+
66 operator bool() const {return this->success;}
+
67 };
+
+
68
+ +
73 shader_module(const shader_module& copy) = delete;
+ + +
76 shader_module& operator=(const shader_module& rhs) = delete;
+
77 shader_module& operator=(shader_module&& rhs);
+
78
+
79 shader_type get_type() const;
+
80
+
85 compile_result compile();
+
86
+
87 using NativeType = GLuint;
+
88 NativeType native() const;
+
89 private:
+
90 GLuint shader;
+ +
92 };
+
+
93
+
+
98 class shader
+
99 {
+
100 public:
+
+ +
105 {
+ +
109 ogl_string info_log;
+
110
+
111 operator bool() const {return this->success;}
+
112 };
+
+
117 shader(shader_info info);
+
118 shader(const shader& copy) = delete;
+
119 shader(shader&& move);
+
120 ~shader();
+
121 shader& operator=(const shader& rhs) = delete;
+
122 shader& operator=(shader&& rhs);
+
123
+
128 link_result link();
+
132 void use() const;
+
133
+
137 static shader null();
+
141 bool is_null() const;
+
142
+
143 bool is_compute() const;
+
144 bool has_tessellation() const;
+
145
+
146 std::string debug_get_name() const;
+
147 void debug_set_name(std::string name);
+
148 private:
+
149 shader(std::nullptr_t);
+
150 shader::link_result validate();
+
151
+
152 GLuint program;
+
153 std::vector<shader_module> modules;
+
154 shader_info info;
+
155 std::string debug_name = "";
+
156 };
+
+
157}
+
158
+
159#endif // TZ_OGL
+
160#endif // TOPAZ_GL_IMPL_BACKEND_OGL2_SHADER_HPP
+
Custom list, feature subset of std::vector.
Definition basic_list.hpp:21
+
Represents an OpenGL shader.
Definition shader.hpp:54
+
Represents an OpenGL shader program.
Definition shader.hpp:99
+
shader_type
Specifies the shader type.
Definition shader.hpp:14
+ + + +
Specifies creation flags for a Shader.
Definition shader.hpp:44
+
tz::basic_list< shader_module_info > modules
List of all modules.
Definition shader.hpp:46
+
State of a shader module compilation attempt.
Definition shader.hpp:60
+
bool success
True if compilation was successful, otherwise false.
Definition shader.hpp:62
+
ogl_string info_log
String containing information about compilation. If compilation was successful, this is guaranteed to...
Definition shader.hpp:64
+
Specifies creation flags for a shader_module.
Definition shader.hpp:32
+
shader_type type
Type of this shader module.
Definition shader.hpp:34
+
ogl_string code
GLSL source code.
Definition shader.hpp:36
+
+ + + + diff --git a/impl_2opengl_2device_8hpp_source.html b/impl_2opengl_2device_8hpp_source.html new file mode 100644 index 0000000000..6c1f31dc4b --- /dev/null +++ b/impl_2opengl_2device_8hpp_source.html @@ -0,0 +1,168 @@ + + + + + + + +Topaz: src/tz/gl/impl/opengl/device.hpp Source File + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.1.0.1 +
+
C++20 Graphics Engine
+
+
+ + + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+
device.hpp
+
+
+
1#ifndef TOPAZ_GL2_IMPL_FRONTEND_OGL2_DEVICE_HPP
+
2#define TOPAZ_GL2_IMPL_FRONTEND_OGL2_DEVICE_HPP
+
3#if TZ_OGL
+
4#include "tz/gl/api/device.hpp"
+
5#include "tz/gl/declare/image_format.hpp"
+
6#include "tz/gl/impl/opengl/renderer.hpp"
+
7#include <unordered_map>
+
8
+
9namespace tz::gl
+
10{
+
+ +
12 {
+
13 public:
+ +
15 void ogl_fingerprint(unsigned int fingerprint, std::size_t renderer_id);
+
16 void ogl_gpu_do_waits(unsigned int fingerprint);
+
17 void ogl_gpu_wait_on(tz::gl::renderer_handle dep);
+
18 void ogl_register_sync(unsigned int fingerprint);
+
19 void ogl_new_sync();
+
20 private:
+
21 std::vector<GLsync> renderer_syncs = {};
+
22 std::unordered_map<unsigned int, std::size_t> fingerprint_to_renderer_id = {};
+
23 const tz::gl::schedule& sched;
+
24 };
+
+
25
+
+
26 class device_ogl : public device_render_scheduler_ogl, public device_common<renderer_ogl>
+
27 {
+
28 public:
+
29 device_ogl();
+
30
+
31 // Satisfies device_type.
+
32 tz::gl::renderer_handle create_renderer(const renderer_info& info);
+
33 using device_common<renderer_ogl>::get_renderer;
+
34 using device_common<renderer_ogl>::destroy_renderer;
+
35 image_format get_window_format() const;
+
36 void dbgui();
+
37 void begin_frame();
+
38 void end_frame();
+
39 void full_wait() const;
+
40 void frame_wait() const;
+
41 };
+
+ +
43}
+
44
+
45#endif // TZ_OGL
+
46#endif // TOPAZ_GL2_IMPL_FRONTEND_OGL2_DEVICE_HPP
+
Definition device.hpp:38
+
Definition device.hpp:27
+
Definition device.hpp:12
+
Helper struct which the user can use to specify which inputs, resources they want and where they want...
Definition renderer.hpp:112
+
renderer implementation which heavily calls into the backend at OpenGL Backend.
Definition renderer.hpp:145
+
Named Requirement: device Implemented by tz_gl2_device.
Definition device.hpp:21
+
tz::handle< detail::renderer_tag > renderer_handle
Represents a handle for a renderer owned by an existing device.
Definition renderer.hpp:27
+
image_format
Various image formats are supported in Topaz.
Definition image_format.hpp:33
+
Definition schedule.hpp:31
+
+ + + + diff --git a/impl_2opengl_2renderer_8hpp_source.html b/impl_2opengl_2renderer_8hpp_source.html new file mode 100644 index 0000000000..2bfd4b360a --- /dev/null +++ b/impl_2opengl_2renderer_8hpp_source.html @@ -0,0 +1,274 @@ + + + + + + + +Topaz: src/tz/gl/impl/opengl/renderer.hpp Source File + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.1.0.1 +
+
C++20 Graphics Engine
+
+
+ + + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+
renderer.hpp
+
+
+
1#ifndef TOPAZ_GL2_IMPL_FRONTEND_OGL2_RENDERER_HPP
+
2#define TOPAZ_GL2_IMPL_FRONTEND_OGL2_RENDERER_HPP
+
3#if TZ_OGL
+
4#include "tz/gl/api/renderer.hpp"
+
5#include "tz/gl/api/component.hpp"
+
6#include "tz/gl/impl/common/renderer.hpp"
+
7#include "tz/gl/impl/opengl/detail/vertex_array.hpp"
+
8#include "tz/gl/impl/opengl/detail/shader.hpp"
+
9#include "tz/gl/impl/opengl/detail/framebuffer.hpp"
+
10#include "tz/gl/impl/opengl/detail/buffer.hpp"
+
11
+
12namespace tz::gl
+
13{
+
14 using namespace tz::gl;
+
15
+
+
26 class ResourceStorage : public AssetStorageCommon<iresource>
+
27 {
+
28 public:
+
36 ResourceStorage(std::span<const iresource* const> resources, std::span<const icomponent* const> components);
+
41 const icomponent* get_component(resource_handle handle) const;
+
46 icomponent* get_component(resource_handle handle);
+
52 unsigned int resource_count_of(resource_type type) const;
+
56 void bind_buffers(const render_state& state);
+
60 void bind_image_buffer(bool has_index_buffer, bool has_draw_buffer);
+
61 void write_dynamic_images();
+
62 void set_image_handle(tz::gl::resource_handle h, ogl2::image::bindless_handle bindless_handle);
+
63 void reseat_resource_reference(tz::gl::resource_handle h, icomponent* comp);
+
64 void fill_bindless_image_buffer();
+
65 private:
+
66
+
68 std::vector<tz::maybe_owned_ptr<icomponent>> components;
+
70 std::vector<ogl2::image::bindless_handle> image_handles;
+
71 // Shader has an array of texture samplers in tzsl. tzslc compiles this down to actually a storage buffer containing a variable array of texture samplers. This is that buffer.
+
72 ogl2::buffer bindless_image_storage_buffer;
+
73 };
+
+
74
+
+ +
80 {
+
81 public:
+
85 ShaderManager(const shader_info& sinfo);
+ +
93 void use();
+
94 bool is_compute() const;
+
95 bool has_tessellation() const;
+
96
+
97 ogl2::shader& get_program();
+
98
+
99 private:
+
100 ogl2::shader make_shader(const shader_info& sinfo) const;
+
101
+
102 ogl2::shader shader;
+
103 };
+
+
104
+
+ +
110 {
+
111 public:
+
115 OutputManager(const ioutput* output, tz::gl::renderer_options options);
+
119 void set_render_target() const;
+
120 ioutput* get_output();
+
121 const ioutput* get_output() const;
+
122 private:
+
123 std::unique_ptr<ioutput> output;
+
124 ogl2::render_buffer default_depth_renderbuffer;
+
125 ogl2::framebuffer framebuffer;
+ +
127 };
+
+
128
+
+ +
130 {
+
131 protected:
+
132 // devices have this concept of renderer handles, but they are not guaranteed to be unique (e.g if renderer handle 2 is deleted and a new renderer is created, that will also have handle 2.)
+
133 // this is a uid which will uniquely identify ths current renderer. renderers need to have their own identity because other manager classes (mainly device_vulkan2) does bookkeeping for renderers and needs to know who is who.
+
134 static unsigned int uid_counter;
+
135 unsigned int uid = uid_counter++;
+
136 public:
+
137 unsigned int ogl_get_uid() const{return this->uid;}
+
138 };
+
+
139
+
+ +
145 {
+
146 public:
+
151 renderer_ogl(const renderer_info& info);
+
152 // Satisfies renderer_type.
+
156 unsigned int resource_count() const;
+
162 const iresource* get_resource(resource_handle handle) const;
+
168 iresource* get_resource(resource_handle handle);
+
174 const icomponent* get_component(resource_handle handle) const;
+
180 icomponent* get_component(resource_handle handle);
+
181 ioutput* get_output();
+
182 const ioutput* get_output() const;
+
186 const renderer_options& get_options() const;
+
190 const render_state& get_state() const;
+
194 void render();
+
201 void edit(const renderer_edit_request& edit_request);
+
202
+
203 void dbgui();
+
204 std::string_view debug_get_name() const;
+
205
+
206 // Satisfies nullable.
+
207 static renderer_ogl null();
+
208 bool is_null() const;
+
209 private:
+
210 renderer_ogl();
+
211
+ +
213 ResourceStorage resources;
+
214 ShaderManager shader;
+
215 OutputManager output;
+
216 renderer_options options;
+
217 render_state state;
+
218 std::string debug_name;
+
219 bool wireframe_mode = false;
+
220 bool is_null_value = false;
+
221 };
+
+
222 static_assert(renderer_type<renderer_ogl>);
+
223}
+
224
+
225#endif // TZ_OGL
+
226#endif // TOPAZ_GL2_IMPL_FRONTEND_OGL2_RENDERER_HPP
+
Definition renderer.hpp:13
+
Stores information about the output target, and a framebuffer which either points to an offscreen ima...
Definition renderer.hpp:110
+
void set_render_target() const
Set this as the render target, causing subsequent draw calls to render into whatever the output is.
Definition renderer.cpp:438
+
Copies all resource data from upon creation and handles resource and component lifetimes.
Definition renderer.hpp:27
+
void bind_image_buffer(bool has_index_buffer, bool has_draw_buffer)
images are converted into bindless texture handles which are then all stored within a secret bespoke ...
Definition renderer.cpp:221
+
unsigned int resource_count_of(resource_type type) const
Retrieve the number of resources stored of the given type.
Definition renderer.cpp:155
+
void bind_buffers(const render_state &state)
Bind all buffer resources to their expected resource ids.
Definition renderer.cpp:191
+
const icomponent * get_component(resource_handle handle) const
Retrieve the component (read-only) which stores the corresponding opengl backend objects for the reso...
Definition renderer.cpp:137
+
Stores the shader program and allows the renderer to use it before emitting a draw call.
Definition renderer.hpp:80
+
void use()
Use the shader program, meaning it will be used in the next draw call.
Definition renderer.cpp:318
+
Definition component.hpp:10
+
Definition output.hpp:43
+
Interface for a renderer or Processor resource.
Definition resource.hpp:80
+
Documentation for OpenGL buffers.
Definition buffer.hpp:57
+
Represents an OpenGL framebuffer object.
Definition framebuffer.hpp:37
+
GLuint64 bindless_handle
Opaque handle for a bindless texture.
Definition image.hpp:34
+
Definition renderbuffer.hpp:19
+
Represents an OpenGL shader program.
Definition shader.hpp:99
+
Wrapper for an OpenGL VAO.
Definition vertex_array.hpp:14
+
Helper struct which the user can use to specify which inputs, resources they want and where they want...
Definition renderer.hpp:112
+
renderer implementation which heavily calls into the backend at OpenGL Backend.
Definition renderer.hpp:145
+
void edit(const renderer_edit_request &edit_request)
Confirm changes to a renderer.
Definition renderer.cpp:691
+
void render()
Invoke the renderer, emitting a single draw call of a set number of triangles.
Definition renderer.cpp:565
+
const icomponent * get_component(resource_handle handle) const
Retrieve the component sourcing the resource (read-only) corresponding to the given handle.
Definition renderer.cpp:535
+
unsigned int resource_count() const
Retrieve the number of resources.
Definition renderer.cpp:520
+
const renderer_options & get_options() const
Retrieve options denoting extra features used by the renderer.
Definition renderer.cpp:555
+
const iresource * get_resource(resource_handle handle) const
Retrieve the resource (read-only) corresponding to the given handle.
Definition renderer.cpp:525
+
const render_state & get_state() const
Retrieve current state of the renderer.
Definition renderer.cpp:560
+
Definition shader.hpp:26
+
Definition handle.hpp:17
+
Named requirement for a renderer.
Definition renderer.hpp:341
+
tz::enum_field< renderer_option > renderer_options
Represents a collection of renderer options.
Definition renderer.hpp:105
+
std::vector< renderer_edit::variant > renderer_edit_request
Represents an edit to an existing renderer.
Definition renderer.hpp:298
+
resource_type
Specifies the type of the resource; which is how a renderer or Processor will interpret the usage of ...
Definition resource.hpp:17
+
Stores renderer-specific state, which drives the behaviour of the rendering.
Definition renderer.hpp:72
+
Definition renderer.hpp:130
+
+ + + + diff --git a/impl_2threadpool__lfq_2job_8hpp_source.html b/impl_2threadpool__lfq_2job_8hpp_source.html new file mode 100644 index 0000000000..8dbe14bc40 --- /dev/null +++ b/impl_2threadpool__lfq_2job_8hpp_source.html @@ -0,0 +1,175 @@ + + + + + + + +Topaz: src/tz/core/job/impl/threadpool_lfq/job.hpp Source File + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.1.0.1 +
+
C++20 Graphics Engine
+
+
+ + + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+
job.hpp
+
+
+
1#ifndef TZ_JOB_IMPL_THREADPOOL_LFQ_JOB_HPP
+
2#define TZ_JOB_IMPL_THREADPOOL_LFQ_JOB_HPP
+
3#include "tz/core/job/api/job.hpp"
+
4#include "concurrentqueue.h"
+
5#include <deque>
+
6#include <thread>
+
7#include <memory>
+
8#include <mutex>
+
9#include <condition_variable>
+
10
+
11namespace tz::impl
+
12{
+
+ +
14 {
+
15 public:
+ + +
18
+
20 virtual job_handle execute(job_t job, execution_info einfo = {}) override;
+
21 virtual void block(job_handle j) const override;
+
22 virtual bool complete(job_handle j) const override;
+
23 virtual bool any_work_remaining() const override;
+
24 virtual void block_all() const override;
+
25 void new_frame();
+
26 virtual std::size_t size() const override;
+
27 virtual std::size_t worker_count() const override;
+
28 virtual std::vector<worker_id_t> get_worker_ids() const override;
+
29 unsigned int jobs_started_this_frame() const;
+
30 private:
+
31 struct job_info_t
+
32 {
+
33 job_t func;
+
34 std::size_t id;
+
35 std::optional<worker_id_t> affinity = std::nullopt;
+
36 };
+
37 struct worker_t
+
38 {
+
39 std::thread thread;
+
40 std::size_t local_tid;
+
41 std::atomic<std::size_t> current_job;
+
42 moodycamel::ConcurrentQueue<job_info_t> affine_jobs;
+
43 };
+
44 void tmain(std::size_t local_tid);
+
45 static void wait_a_bit();
+
46
+
47 std::deque<worker_t> thread_pool;
+
48 moodycamel::ConcurrentQueue<job_info_t> jobs;
+
49 std::atomic<bool> requires_exit = false;
+
50 std::atomic<std::size_t> lifetime_count = 0;
+
51 std::atomic<std::size_t> count_this_frame = 0;
+
52 std::vector<std::size_t> waiting_job_ids = {};
+
53 mutable std::mutex waiting_job_id_mutex;
+
54 mutable std::mutex wake_mutex;
+
55 mutable std::condition_variable wake_condition;
+
56 };
+
+
57}
+
58
+
59#endif // TZ_JOB_IMPL_THREADPOOL_LFQ_JOB_HPP
+
Definition job.hpp:44
+ +
virtual job_handle execute(job_t job, execution_info einfo={}) override
important note: if the job has an affinity, block(j) and complete(j) will not function correctly.
Definition job.cpp:39
+
std::function< void()> job_t
Represents a job.
Definition job.hpp:28
+
Additional optional data about how a job is to be executed.
Definition job.hpp:38
+
Definition job.hpp:19
+
+ + + + diff --git a/impl_2vulkan_2component_8hpp_source.html b/impl_2vulkan_2component_8hpp_source.html new file mode 100644 index 0000000000..b083441eae --- /dev/null +++ b/impl_2vulkan_2component_8hpp_source.html @@ -0,0 +1,180 @@ + + + + + + + +Topaz: src/tz/gl/impl/vulkan/component.hpp Source File + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.1.0.1 +
+
C++20 Graphics Engine
+
+
+ + + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+
component.hpp
+
+
+
1#ifndef TOPAZ_GL2_IMPL_FRONTEND_VK2_COMPONENT_HPP
+
2#define TOPAZ_GL2_IMPL_FRONTEND_VK2_COMPONENT_HPP
+
3#if TZ_VULKAN
+
4#include "tz/gl/declare/image_format.hpp"
+
5#include "tz/gl/api/component.hpp"
+
6#include "tz/gl/impl/vulkan/detail/buffer.hpp"
+
7#include "tz/gl/impl/vulkan/detail/image.hpp"
+
8
+
9namespace tz::gl
+
10{
+
11 using namespace tz::gl;
+
+ +
13 {
+
14 public:
+ +
16 virtual const iresource* get_resource() const final;
+
17 virtual iresource* get_resource() final;
+
18 // Satisfy buffer_component_type
+
19 std::size_t size() const;
+
20 void resize(std::size_t sz);
+
21
+
22 const vk2::Buffer& vk_get_buffer() const;
+
23 vk2::Buffer& vk_get_buffer();
+
24 bool vk_is_descriptor_relevant() const;
+
25 private:
+
26 vk2::Buffer make_buffer() const;
+
27
+ +
29 vk2::Buffer buffer;
+
30 };
+
+ +
32
+
+ +
34 {
+
35 public:
+ +
37 virtual const iresource* get_resource() const final;
+
38 virtual iresource* get_resource() final;
+
39 // Satisfy image_component_type
+
40 tz::vec2ui get_dimensions() const;
+
41 image_format get_format() const;
+
42 void resize(tz::vec2ui new_dimensions);
+
43
+
44 const vk2::Image& vk_get_image() const;
+
45 vk2::Image& vk_get_image();
+
46 private:
+
47 vk2::Image make_image() const;
+
48
+ +
50 vk2::Image image;
+
51 };
+
+ +
53}
+
54
+
55#endif // TZ_VULKAN
+
56#endif // TOPAZ_GL2_IMPL_FRONTEND_VK2_COMPONENT_HPP
+
Definition component.hpp:13
+
Definition component.hpp:10
+
Definition component.hpp:34
+
Interface for a renderer or Processor resource.
Definition resource.hpp:80
+
Definition resource.hpp:13
+
Represents a linear array of data which can be used for various purposes.
Definition buffer.hpp:56
+
Represents an Image owned by the Vulkan API.
Definition image.hpp:155
+
Definition component.hpp:19
+
Definition component.hpp:27
+
vector< unsigned int, 2 > vec2ui
A vector of two unsigned ints.
Definition vector.hpp:244
+
image_format
Various image formats are supported in Topaz.
Definition image_format.hpp:33
+
+ + + + diff --git a/impl_2vulkan_2detail_2draw_8hpp_source.html b/impl_2vulkan_2detail_2draw_8hpp_source.html new file mode 100644 index 0000000000..effe6b0b33 --- /dev/null +++ b/impl_2vulkan_2detail_2draw_8hpp_source.html @@ -0,0 +1,139 @@ + + + + + + + +Topaz: src/tz/gl/impl/vulkan/detail/draw.hpp Source File + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.1.0.1 +
+
C++20 Graphics Engine
+
+
+ + + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+
draw.hpp
+
+
+
1#ifndef TOPAZ_GL_IMPL_VULKAN_BACKEND_DRAW_HPP
+
2#define TOPAZ_GL_IMPL_VULKAN_BACKEND_DRAW_HPP
+
3#include "tz/gl/impl/vulkan/detail/tz_vulkan.hpp"
+
4
+
5namespace tz::gl::vk2
+
6{
+
+ +
8 {
+
9 std::uint32_t count;
+
10 std::uint32_t instance_count = 1;
+
11 std::uint32_t first;
+
12 std::uint32_t base_instance = 0;
+
13 };
+
+
+ +
15 {
+
16 std::uint32_t count;
+
17 std::uint32_t instance_count = 1;
+
18 std::uint32_t first_index;
+
19 std::int32_t base_vertex = 0;
+
20 std::uint32_t base_instance = 0;
+
21 };
+
+
22}
+
23
+
24#endif // TOPAZ_GL_IMPL_VULKAN_BACKEND_DRAW_HPP
+ + +
+ + + + diff --git a/impl_2vulkan_2detail_2image__format_8hpp_source.html b/impl_2vulkan_2detail_2image__format_8hpp_source.html new file mode 100644 index 0000000000..14a8cda68c --- /dev/null +++ b/impl_2vulkan_2detail_2image__format_8hpp_source.html @@ -0,0 +1,274 @@ + + + + + + + +Topaz: src/tz/gl/impl/vulkan/detail/image_format.hpp Source File + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.1.0.1 +
+
C++20 Graphics Engine
+
+
+ + + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+
image_format.hpp
+
+
+
1#ifndef TOPAZ_GL_IMPL_BACKEND_VK2_IMAGE_FORMAT_HPP
+
2#define TOPAZ_GL_IMPL_BACKEND_VK2_IMAGE_FORMAT_HPP
+
3#if TZ_VULKAN
+
4#include "vulkan/vulkan.h"
+
5#include <algorithm>
+
6#include <array>
+
7#include <span>
+
8
+
9namespace tz::gl::vk2
+
10{
+
+
34 enum class image_format
+
35 {
+
37 undefined = VK_FORMAT_UNDEFINED,
+
38
+
39 R8 = VK_FORMAT_R8_UNORM,
+
40 R8_UNorm = R8,
+
41 R8_SNorm = VK_FORMAT_R8_SNORM,
+
42 R8_UInt = VK_FORMAT_R8_UINT,
+
43 R8_SInt = VK_FORMAT_R8_SINT,
+
44 R8_sRGB = VK_FORMAT_R8_SRGB,
+
45
+
46 R16 = VK_FORMAT_R16_UNORM,
+
47 R16_UNorm = R16,
+
48 R16_SNorm = VK_FORMAT_R16_SNORM,
+
49 R16_UInt = VK_FORMAT_R16_UINT,
+
50 R16_SInt = VK_FORMAT_R16_SINT,
+
51
+
52 RG16 = VK_FORMAT_R8G8_UNORM,
+
53 RG16_UNorm = RG16,
+
54 RG16_SNorm = VK_FORMAT_R8G8_SNORM,
+
55 RG16_UInt = VK_FORMAT_R8G8_UINT,
+
56 RG16_SInt = VK_FORMAT_R8G8_SINT,
+
57 RG16_sRGB = VK_FORMAT_R8G8_SRGB,
+
58
+
59 RG32 = VK_FORMAT_R16G16_UNORM,
+
60 RG32_UNorm = RG32,
+
61 RG32_SNorm = VK_FORMAT_R16G16_SNORM,
+
62 RG32_UInt = VK_FORMAT_R16G16_UINT,
+
63 RG32_SInt = VK_FORMAT_R16G16_SINT,
+
64
+
65 RGB24 = VK_FORMAT_R8G8B8_UNORM,
+
66 RGB24_UNorm = RGB24,
+
67 RGB24_SNorm = VK_FORMAT_R8G8B8_SNORM,
+
68 RGB24_UInt = VK_FORMAT_R8G8B8_UINT,
+
69 RGB24_SInt = VK_FORMAT_R8G8B8_SINT,
+
70 RGB24_sRGB = VK_FORMAT_R8G8B8_SRGB,
+
71
+
72 BGR24 = VK_FORMAT_B8G8R8_UNORM,
+
73 BGR24_UNorm = BGR24,
+
74 BGR24_SNorm = VK_FORMAT_B8G8R8_SNORM,
+
75 BGR24_UInt = VK_FORMAT_B8G8R8_UINT,
+
76 BGR24_SInt = VK_FORMAT_B8G8R8_SINT,
+
77 BGR24_sRGB = VK_FORMAT_B8G8R8_SRGB,
+
78
+
79 RGBA32 = VK_FORMAT_R8G8B8A8_UNORM,
+
80 RGBA32_UNorm = RGBA32,
+
81 RGBA32_SNorm = VK_FORMAT_R8G8B8A8_SNORM,
+
82 RGBA32_UInt = VK_FORMAT_R8G8B8A8_UINT,
+
83 RGBA32_SInt = VK_FORMAT_R8G8B8A8_SINT,
+
84 RGBA32_sRGB = VK_FORMAT_R8G8B8A8_SRGB,
+
85
+
86 BGRA32 = VK_FORMAT_B8G8R8A8_UNORM,
+
87 BGRA32_UNorm = BGRA32,
+
88 BGRA32_SNorm = VK_FORMAT_B8G8R8A8_SNORM,
+
89 BGRA32_UInt = VK_FORMAT_B8G8R8A8_UINT,
+
90 BGRA32_SInt = VK_FORMAT_B8G8R8A8_SINT,
+
91 BGRA32_sRGB = VK_FORMAT_B8G8R8A8_SRGB,
+
92
+
93 RGBA64_SFloat = VK_FORMAT_R16G16B16A16_SFLOAT,
+
94 RGBA128_SFloat = VK_FORMAT_R32G32B32A32_SFLOAT,
+
95
+
96 Depth16_UNorm = VK_FORMAT_D16_UNORM,
+
97 Depth32_SFloat = VK_FORMAT_D32_SFLOAT
+
98 };
+
+
99
+
100 /*
+
101 * https://www.khronos.org/registry/vulkan/specs/1.2/pdf/vkspec.pdf
+
102 * pg 1081-1090 (big tables of mandatory supported formats)
+
103 */
+
104 constexpr image_format safe_colour_attachment_formats[]
+
105 {
+
106 image_format::RGBA32_UInt,
+
107 image_format::RGBA32_SInt,
+
108 image_format::RGBA32_sRGB,
+
109
+
110 image_format::BGRA32,
+
111 image_format::BGRA32_sRGB,
+
112
+
113 image_format::RG16_UInt,
+
114 image_format::RG16_SInt,
+
115
+
116 image_format::RG32_UInt,
+
117 image_format::RG32_SInt,
+
118 };
+
119
+
120 constexpr image_format safe_depth_attachment_formats[]
+
121 {
+
122 image_format::Depth16_UNorm
+
123 };
+
124
+
125 constexpr image_format safe_sampled_image_formats[]
+
126 {
+
127 image_format::R8,
+
128 image_format::R8_SNorm,
+
129 image_format::R8_UInt,
+
130 image_format::R8_SInt,
+
131
+
132 image_format::R16_UInt,
+
133 image_format::R16_SInt,
+
134
+
135 image_format::RG16,
+
136 image_format::RG16_SNorm,
+
137 image_format::RG16_UInt,
+
138 image_format::RG16_SInt,
+
139
+
140 image_format::RG32_UInt,
+
141 image_format::RG32_SInt,
+
142
+
143 image_format::RGBA32,
+
144 image_format::RGBA32_SNorm,
+
145 image_format::RGBA32_UInt,
+
146 image_format::RGBA32_SInt,
+
147 image_format::RGBA32_sRGB,
+
148
+
149 image_format::BGRA32,
+
150 image_format::BGRA32_sRGB
+
151 };
+
152
+
+
157 namespace format_traits
+
158 {
+
+
163 constexpr std::span<const image_format> get_mandatory_colour_attachment_formats()
+
164 {
+
165 return {safe_colour_attachment_formats};
+
166 }
+
+
167
+
+
172 constexpr std::span<const image_format> get_mandatory_depth_attachment_formats()
+
173 {
+
174 return {safe_depth_attachment_formats};
+
175 }
+
+
176
+
+
181 constexpr std::span<const image_format> get_mandatory_sampled_image_formats()
+
182 {
+
183 return {safe_sampled_image_formats};
+
184 }
+
+
185
+
186 }
+
+
187}
+
188#endif // TZ_VULKAN
+
189#endif // TOPAZ_GL_IMPL_BACKEND_VK2_IMAGE_FORMAT_HPP
+
image_format
Various image formats are supported in Topaz.
Definition image_format.hpp:33
+ +
image_format
Various image formats are supported.
Definition image_format.hpp:35
+
constexpr std::span< const image_format > get_mandatory_depth_attachment_formats()
Retrieve a span of all image_formats which are guaranteed to be supported for a depth attachment for ...
Definition image_format.hpp:172
+
constexpr std::span< const image_format > get_mandatory_colour_attachment_formats()
Retrieve a span of all image_formats which are guaranteed to be supported for a colour attachment for...
Definition image_format.hpp:163
+
constexpr std::span< const image_format > get_mandatory_sampled_image_formats()
Retrieve a span of all image_formats which are guaranteed to be supported for a sampled image within ...
Definition image_format.hpp:181
+
+ + + + diff --git a/impl_2vulkan_2detail_2shader_8hpp_source.html b/impl_2vulkan_2detail_2shader_8hpp_source.html new file mode 100644 index 0000000000..8c90bd40c2 --- /dev/null +++ b/impl_2vulkan_2detail_2shader_8hpp_source.html @@ -0,0 +1,227 @@ + + + + + + + +Topaz: src/tz/gl/impl/vulkan/detail/shader.hpp Source File + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.1.0.1 +
+
C++20 Graphics Engine
+
+
+ + + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+
shader.hpp
+
+
+
1#ifndef TOPAZ_GL_IMPL_BACKEND_VK2_SHADER_HPP
+
2#define TOPAZ_GL_IMPL_BACKEND_VK2_SHADER_HPP
+
3#if TZ_VULKAN
+
4#include "tz/core/data/enum_field.hpp"
+
5#include "tz/gl/impl/vulkan/detail/logical_device.hpp"
+
6
+
7namespace tz::gl::vk2
+
8{
+
+
13 enum class ShaderType
+
14 {
+
15 vertex = VK_SHADER_STAGE_VERTEX_BIT,
+
16 tessellation_control = VK_SHADER_STAGE_TESSELLATION_CONTROL_BIT,
+
17 tessellation_evaluation = VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT,
+
18 fragment = VK_SHADER_STAGE_FRAGMENT_BIT,
+
19
+
20 compute = VK_SHADER_STAGE_COMPUTE_BIT
+
21 };
+
+
22
+
23 using ShaderTypeField = tz::enum_field<ShaderType>;
+
24
+
+ +
30 {
+ + +
36 std::vector<char> code;
+
37 };
+
+
38
+
+ +
44 {
+
45 public:
+
49 ShaderModule(const ShaderModuleInfo& info);
+
50 ShaderModule(const ShaderModule& copy) = delete;
+ + +
53
+
54 ShaderModule& operator=(const ShaderModule& rhs) = delete;
+
55 ShaderModule& operator=(ShaderModule&& rhs);
+
56
+
60 ShaderType get_type() const;
+
61
+
62 const LogicalDevice& get_device() const;
+
63
+
64 using NativeType = VkShaderModule;
+
65 NativeType native() const;
+
66 private:
+
67 const LogicalDevice* device;
+
68 ShaderType type;
+
69 VkShaderModule shader_module;
+
70 };
+
+
71
+ +
83
+
+ +
85 {
+ +
87 };
+
+
88
+
+
93 class Shader
+
94 {
+
95 public:
+
96 Shader(const ShaderInfo& info);
+
97 Shader(const Shader& copy) = delete;
+
98 Shader(Shader&& move);
+
99 ~Shader() = default;
+
100
+
101 Shader& operator=(const Shader& rhs) = delete;
+
102 Shader& operator=(Shader&& rhs);
+
103
+
104 ShaderPipelineData native_data() const;
+
105 bool is_compute() const;
+
106
+
107 std::string debug_get_name() const;
+
108 void debug_set_name(std::string debug_name);
+
109
+
110 static Shader null();
+
111 bool is_null() const;
+
112 private:
+
113 Shader();
+
114
+
115 std::vector<ShaderModule> modules;
+
116 std::string debug_name = "";
+
117 };
+
+
118}
+
119
+
120#endif // TZ_VULKAN
+
121#endif // TOPAZ_GL_IMPL_BACKEND_VK2_SHADER_HPP
+
Custom list, feature subset of std::vector.
Definition basic_list.hpp:21
+
Container for enum values, useful for vintage bitfield types.
Definition enum_field.hpp:16
+
Implements tz::gl::device_type.
Definition device.hpp:69
+
Logical interface to an existing PhysicalDevice.
Definition logical_device.hpp:95
+
Represents a Shader program.
Definition shader.hpp:94
+
Represents a single module of a Shader.
Definition shader.hpp:44
+
ShaderType get_type() const
Retrieve the type of this shader module.
Definition shader.cpp:67
+
ShaderType
Supported Shader Type.
Definition shader.hpp:14
+
Specifies parameters of a Shader, and all the modules that comprise it.
Definition shader.hpp:77
+
const LogicalDevice * device
LogicalDevice owner. Must not be null.
Definition shader.hpp:79
+
tz::basic_list< ShaderModuleInfo > modules
Information about the Shader's modules. Must be a valid combination of modules.
Definition shader.hpp:81
+
Specifies parameters of a single ShaderModule.
Definition shader.hpp:30
+
const LogicalDevice * device
LogicalDevice owning the ShaderModule. Must not be null.
Definition shader.hpp:32
+
std::vector< char > code
COntainer for valid SPIRV code.
Definition shader.hpp:36
+
ShaderType type
Type of the shader.
Definition shader.hpp:34
+
Definition shader.hpp:85
+
+ + + + diff --git a/impl_2windows_2keyboard_8hpp_source.html b/impl_2windows_2keyboard_8hpp_source.html new file mode 100644 index 0000000000..fdee3ea7ca --- /dev/null +++ b/impl_2windows_2keyboard_8hpp_source.html @@ -0,0 +1,128 @@ + + + + + + + +Topaz: src/tz/wsi/impl/windows/keyboard.hpp Source File + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.1.0.1 +
+
C++20 Graphics Engine
+
+
+ + + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+
keyboard.hpp
+
+
+
1#ifndef TZ_WSI_IMPL_WINDOWS_KEYBOARD_HPP
+
2#define TZ_WSI_IMPL_WINDOWS_KEYBOARD_HPP
+
3#ifdef _WIN32
+
4#include "tz/wsi/api/keyboard.hpp"
+
5#include <string>
+
6
+
7namespace tz::wsi::impl
+
8{
+
9 constexpr tz::wsi::key win_to_tge_key(int virtual_key_code);
+
10 constexpr int tge_to_win_key(tz::wsi::key key);
+
11 std::string get_key_name_windows(tz::wsi::key key);
+
12 std::string get_chars_typed_windows(tz::wsi::key key, const keyboard_state& state);
+
13}
+
14
+
15#include "tz/wsi/impl/windows/keyboard.inl"
+
16
+
17#endif // _WIN32
+
18#endif // TZ_WSI_IMPL_WINDOWS_KEYBOARD_HPP
+
key
Contains all possible keyboard inputs that Topaz supports.
Definition keyboard.hpp:13
+
+ + + + diff --git a/impl_2windows_2monitor_8hpp_source.html b/impl_2windows_2monitor_8hpp_source.html new file mode 100644 index 0000000000..1a001a36ec --- /dev/null +++ b/impl_2windows_2monitor_8hpp_source.html @@ -0,0 +1,121 @@ + + + + + + + +Topaz: src/tz/wsi/impl/windows/monitor.hpp Source File + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.1.0.1 +
+
C++20 Graphics Engine
+
+
+ + + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+
monitor.hpp
+
+
+
1#ifndef TZ_WSI_IMPL_WINDOWS_MONITOR_HPP
+
2#define TZ_WSI_IMPL_WINDOWS_MONITOR_HPP
+
3#ifdef _WIN32
+
4#include "tz/wsi/api/monitor.hpp"
+
5
+
6namespace tz::wsi::impl
+
7{
+
8 std::vector<tz::wsi::monitor> get_monitors_windows();
+
9}
+
10
+
11#endif // _WIN32
+
12#endif // TZ_WSI_IMPL_WINDOWS_MONITOR_HPP
+
+ + + + diff --git a/impl_2windows_2window_8hpp_source.html b/impl_2windows_2window_8hpp_source.html new file mode 100644 index 0000000000..08be9f10d4 --- /dev/null +++ b/impl_2windows_2window_8hpp_source.html @@ -0,0 +1,183 @@ + + + + + + + +Topaz: src/tz/wsi/impl/windows/window.hpp Source File + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.1.0.1 +
+
C++20 Graphics Engine
+
+
+ + + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+
window.hpp
+
+
+
1#ifndef TZ_WSI_IMPL_WINDOWS_WINDOW_HPP
+
2#define TZ_WSI_IMPL_WINDOWS_WINDOW_HPP
+
3#ifdef _WIN32
+
4#include "tz/wsi/api/window.hpp"
+
5#include "tz/wsi/impl/windows/detail/winapi.hpp"
+
6
+
7namespace tz::wsi::impl
+
8{
+
+ +
10 {
+
11 public:
+ +
13 window_winapi(const window_winapi& copy) = delete;
+
14 window_winapi(window_winapi&& move) = delete;
+ +
16 window_winapi& operator=(const window_winapi& rhs) = delete;
+
17 window_winapi& operator=(window_winapi&& rhs) = delete;
+
18
+
19 // tz::wsi::window_api<> begin
+
20 using native = HWND;
+
21 native get_native() const;
+
22 void request_close();
+
23 bool is_close_requested() const;
+
24 tz::vec2ui get_dimensions() const;
+
25 void set_dimensions(tz::vec2ui dimensions);
+
26 std::string get_title() const;
+
27 void set_title(std::string title);
+
28 window_flag::flag_bit get_flags() const;
+
29 void update();
+
30 bool make_opengl_context_current();
+
31 #if TZ_VULKAN
+
32 VkSurfaceKHR make_vulkan_surface(VkInstance vkinst) const;
+
33 #endif // TZ_VULKAN
+
34 const keyboard_state& get_keyboard_state() const;
+
35 const mouse_state& get_mouse_state() const;
+
36 void* get_user_data() const;
+
37 void set_user_data(void* udata);
+
38 // tz::wsi::window_api<> end
+
39 friend LRESULT wndproc(HWND, UINT, WPARAM, LPARAM);
+
40 private:
+
41 void impl_init_opengl();
+
42 bool impl_is_opengl() const;
+
43 void impl_request_close();
+
44 void impl_register_mouseleave();
+
45 void impl_notify_mouse_enter_window();
+
46 void impl_notify_mouse_leave_window();
+
47 keyboard_state& impl_mutable_keyboard_state();
+
48 mouse_state& impl_mutable_mouse_state();
+
49
+
50 HWND hwnd = nullptr;
+
51 HDC hdc = nullptr;
+
52 HGLRC opengl_rc = nullptr;
+
53 window_flag::flag_bit flags = {};
+
54 bool close_requested = false;
+
55 keyboard_state key_state = {};
+ +
57 bool mouse_in_window = false;
+
58 void* userdata = nullptr;
+
59 };
+
+ +
61
+
62 void* get_opengl_proc_address_windows(const char* name);
+
63}
+
64
+
65#endif // _WIN32
+
66#endif // TZ_WSI_IMPL_WINDOWS_WINDOW_HPP
+
Definition window.hpp:10
+
Represents an API for a window.
Definition window.hpp:66
+
vector< unsigned int, 2 > vec2ui
A vector of two unsigned ints.
Definition vector.hpp:244
+
Represents the total state of the keyboard and key-presses for a single window.
Definition keyboard.hpp:26
+
Represents the total state of the mouse for a single window.
Definition mouse.hpp:42
+
Specifies creation flags for a wsi::window.
Definition window.hpp:52
+
+ + + + diff --git a/imported__shaders_8hpp_source.html b/imported__shaders_8hpp_source.html new file mode 100644 index 0000000000..2c9a4f5755 --- /dev/null +++ b/imported__shaders_8hpp_source.html @@ -0,0 +1,129 @@ + + + + + + + +Topaz: src/tz/gl/imported_shaders.hpp Source File + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.1.0.1 +
+
C++20 Graphics Engine
+
+
+ + + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+
imported_shaders.hpp
+
+
+
1#ifndef TOPAZ_GL_IMPORTED_SHADERS_HPP
+
2#define TOPAZ_GL_IMPORTED_SHADERS_HPP
+
3#include "tz/core/imported_text.hpp"
+
4#include <string_view>
+
5#include <span>
+
6
+
7#if TZ_VULKAN
+
8#define TZ_MACROHACKERY_JOIN_SHADER(X, Y, Z) TZ_MACROHACKERY_JOIN4(X, Y, Z, _tzsl_spv)
+
9#elif TZ_OGL
+
10#define TZ_MACROHACKERY_JOIN_SHADER(X, Y, Z) TZ_MACROHACKERY_JOIN4(X, Y, Z, _tzsl_glsl)
+
11#endif
+
18#if TZ_VULKAN
+
19#define ImportedShaderHeader(shader_name, shader_type) TZ_MACROHACKERY_STRINGIFY2(shader_name.shader_type.tzsl.spv.hpp)
+
20#elif TZ_OGL
+
21#define ImportedShaderHeader(shader_name, shader_type) TZ_MACROHACKERY_STRINGIFY2(shader_name.shader_type.tzsl.glsl.hpp)
+
22#endif
+
23
+
31#define ImportedShaderSource(shader_name, shader_type) []()->std::string_view{std::span<const std::byte> shader_bin = std::as_bytes(std::span<const std::int8_t>(TZ_MACROHACKERY_JOIN_SHADER(shader_name, _, shader_type))); return std::string_view{reinterpret_cast<const char*>(shader_bin.data()), shader_bin.size_bytes()};}()
+
32
+
33#endif // TOPAZ_GL_IMPORTED_SHADERS_HPP
+
+ + + + diff --git a/imported__text_8hpp_source.html b/imported__text_8hpp_source.html new file mode 100644 index 0000000000..98afcda2db --- /dev/null +++ b/imported__text_8hpp_source.html @@ -0,0 +1,123 @@ + + + + + + + +Topaz: src/tz/core/imported_text.hpp Source File + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.1.0.1 +
+
C++20 Graphics Engine
+
+
+ + + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+
imported_text.hpp
+
+
+
1#ifndef TOPAZ_CORE_IMPORTED_TEXT_HPP
+
2#define TOPAZ_CORE_IMPORTED_TEXT_HPP
+
3
+
4#define TZ_MACROHACKERY_STRINGIFY(X) TZ_MACROHACKERY_STRINGIFY2(X)
+
5#define TZ_MACROHACKERY_STRINGIFY2(X) #X
+
6#define TZ_MACROHACKERY_CONCAT(X, Y) X##Y
+
7#define TZ_MACROHACKERY_JOIN3(X, Y, Z) X##Y##Z
+
8#define TZ_MACROHACKERY_JOIN4(X, Y, Z, W) X##Y##Z##W
+
9
+
16#define ImportedTextHeader(text_name, text_ext) TZ_MACROHACKERY_STRINGIFY2(text_name.text_ext.hpp)
+
17
+
24#define ImportedTextData(text_name, text_ext) []()->std::string_view{std::span<const std::byte> shader_bin = std::as_bytes(std::span<const std::int8_t>(TZ_MACROHACKERY_JOIN3(text_name, _, text_ext))); return std::string_view{reinterpret_cast<const char*>(shader_bin.data()), shader_bin.size_bytes()};}()
+
25
+
26#endif // TOPAZ_CORE_IMPORTED_TEXT_HPP
+
+ + + + diff --git a/index.html b/index.html new file mode 100644 index 0000000000..8de950f398 --- /dev/null +++ b/index.html @@ -0,0 +1,161 @@ + + + + + + + +Topaz: Home + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.1.0.1 +
+
C++20 Graphics Engine
+
+
+ + + + +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
Home
+
+
+

Introduction

+

Welcome to the Topaz documentation.

    +
  • To read documentation for a specific API function or type, you should try searching for it using the searchbox above.
  • +
  • To read documentation for a subsystem/module, you can navigate to the C++ API Reference or TZSL API Reference sections.
  • +
  • If you're still learning the basics, or need a general overview of the engine, you'd prefer the wiki.
  • +
+

Links

+

These might come in useful, or you might find some of these interesting.

+

Worked Example

+

The code snippet you're about to see is the source code of the simplest demo, which simply draws a triangle to the screen. This is known as tz_triangle_demo.

#include "tz/tz.hpp"
+
#include "tz/gl/device.hpp"
+
#include "tz/gl/renderer.hpp"
+
#include "tz/gl/imported_shaders.hpp"
+
#include "tz/dbgui/dbgui.hpp"
+
+
#include ImportedShaderHeader(tz_triangle_demo, vertex)
+
#include ImportedShaderHeader(tz_triangle_demo, fragment)
+
+
int main()
+
{
+
tz::initialise
+
({
+
.name = "tz_triangle_demo",
+
});
+
{
+ +
rinfo.state().graphics.tri_count = 1;
+
rinfo.shader().set_shader(tz::gl::shader_stage::vertex, ImportedShaderSource(tz_triangle_demo, vertex));
+
rinfo.shader().set_shader(tz::gl::shader_stage::fragment, ImportedShaderSource(tz_triangle_demo, fragment));
+
rinfo.set_options({tz::gl::renderer_option::no_depth_testing});
+
+ +
tz::gl::get_device().render_graph().timeline = {renh};
+
while(!tz::window().is_close_requested())
+
{
+ + + +
}
+
}
+ +
}
+
const tz::gl::renderer & get_renderer(tz::gl::renderer_handle rh) const
Retrieve a reference to the renderer associated with the given handle.
+
tz::gl::renderer_handle create_renderer(tz::gl::renderer_info &rinfo)
Create a new tz::gl::renderer.
+
Helper struct which the user can use to specify which inputs, resources they want and where they want...
Definition renderer.hpp:112
+
void set_options(renderer_options options)
Set the currently specified options which will be used by the renderer.
Definition renderer.cpp:139
+
render_state & state()
Read/write information about the state of the renderer when it is created.
Definition renderer.cpp:155
+
shader_info & shader()
Read/write information about the shader that will be built for the renderer.
Definition renderer.cpp:165
+
void render()
Submit the renderer's work to the GPU.
+
void terminate()
Terminate Topaz.
Definition tz.cpp:81
+
void end_frame()
End the current frame.
Definition tz.cpp:114
+
void begin_frame()
Begin a new frame.
Definition tz.cpp:103
+
tz::handle< detail::renderer_tag > renderer_handle
Represents a handle for a renderer owned by an existing device.
Definition renderer.hpp:27
+
device & get_device()
Retrieve the global device.
Definition device.cpp:9
+
std::size_t tri_count
number of triangles to be rendered in the next draw call. note@ if a draw_buffer has been specified,...
Definition renderer.hpp:82
+
Graphics graphics
Graphics state.
Definition renderer.hpp:94
+
+
+ + + + diff --git a/io_2image_8hpp_source.html b/io_2image_8hpp_source.html new file mode 100644 index 0000000000..41a5b7d4f7 --- /dev/null +++ b/io_2image_8hpp_source.html @@ -0,0 +1,132 @@ + + + + + + + +Topaz: src/tz/io/image.hpp Source File + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.1.0.1 +
+
C++20 Graphics Engine
+
+
+ + + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+
image.hpp
+
+
+
1#ifndef TOPAZ_IO_IMAGE_HPP
+
2#define TOPAZ_IO_IMAGE_HPP
+
3#include <vector>
+
4#include <cstddef>
+
5#include <string_view>
+
6
+
7namespace tz::io
+
8{
+
9 // all images are loaded as rgba32.
+
+
10 struct image
+
11 {
+
12 unsigned int width;
+
13 unsigned int height;
+
14 std::vector<std::byte> data;
+
15
+
16 static image load_from_memory(std::string_view img_filedata);
+
17 };
+
+
18}
+
19
+
20#endif // TOPAZ_IO_IMAGE_HPP
+
Definition image.hpp:11
+
+ + + + diff --git a/job_8hpp_source.html b/job_8hpp_source.html new file mode 100644 index 0000000000..e503720716 --- /dev/null +++ b/job_8hpp_source.html @@ -0,0 +1,132 @@ + + + + + + + +Topaz: src/tz/core/job/job.hpp Source File + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.1.0.1 +
+
C++20 Graphics Engine
+
+
+ + + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+
job.hpp
+
+
+
1#ifndef TZ_JOB_JOB_HPP
+
2#define TZ_JOB_JOB_HPP
+
3
+
4// TODO: Configurable
+
5#include "tz/core/job/impl/threadpool_lfq/job.hpp"
+
6#undef assert
+
7
+
8namespace tz
+
9{
+ +
15
+
16 namespace detail
+
17 {
+
18 void job_system_init();
+
19 void job_system_term();
+
20 }
+
21
+
26 job_system_t& job_system();
+
27}
+
28
+
29#endif // TZ_JOB_JOB_HPP
+ +
tz::impl::job_system_threadpool_lfq job_system_t
Underlying job system.
Definition job.hpp:14
+
+ + + + diff --git a/jquery.js b/jquery.js new file mode 100644 index 0000000000..1dffb65b58 --- /dev/null +++ b/jquery.js @@ -0,0 +1,34 @@ +/*! jQuery v3.6.0 | (c) OpenJS Foundation and other contributors | jquery.org/license */ +!function(e,t){"use strict";"object"==typeof module&&"object"==typeof module.exports?module.exports=e.document?t(e,!0):function(e){if(!e.document)throw new Error("jQuery requires a window with a document");return t(e)}:t(e)}("undefined"!=typeof window?window:this,function(C,e){"use strict";var t=[],r=Object.getPrototypeOf,s=t.slice,g=t.flat?function(e){return t.flat.call(e)}:function(e){return t.concat.apply([],e)},u=t.push,i=t.indexOf,n={},o=n.toString,v=n.hasOwnProperty,a=v.toString,l=a.call(Object),y={},m=function(e){return"function"==typeof e&&"number"!=typeof e.nodeType&&"function"!=typeof e.item},x=function(e){return null!=e&&e===e.window},E=C.document,c={type:!0,src:!0,nonce:!0,noModule:!0};function b(e,t,n){var r,i,o=(n=n||E).createElement("script");if(o.text=e,t)for(r in c)(i=t[r]||t.getAttribute&&t.getAttribute(r))&&o.setAttribute(r,i);n.head.appendChild(o).parentNode.removeChild(o)}function w(e){return null==e?e+"":"object"==typeof e||"function"==typeof e?n[o.call(e)]||"object":typeof e}var f="3.6.0",S=function(e,t){return new S.fn.init(e,t)};function p(e){var t=!!e&&"length"in e&&e.length,n=w(e);return!m(e)&&!x(e)&&("array"===n||0===t||"number"==typeof t&&0+~]|"+M+")"+M+"*"),U=new RegExp(M+"|>"),X=new RegExp(F),V=new RegExp("^"+I+"$"),G={ID:new RegExp("^#("+I+")"),CLASS:new RegExp("^\\.("+I+")"),TAG:new RegExp("^("+I+"|[*])"),ATTR:new RegExp("^"+W),PSEUDO:new RegExp("^"+F),CHILD:new RegExp("^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\("+M+"*(even|odd|(([+-]|)(\\d*)n|)"+M+"*(?:([+-]|)"+M+"*(\\d+)|))"+M+"*\\)|)","i"),bool:new RegExp("^(?:"+R+")$","i"),needsContext:new RegExp("^"+M+"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\("+M+"*((?:-\\d)?\\d*)"+M+"*\\)|)(?=[^-]|$)","i")},Y=/HTML$/i,Q=/^(?:input|select|textarea|button)$/i,J=/^h\d$/i,K=/^[^{]+\{\s*\[native \w/,Z=/^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,ee=/[+~]/,te=new RegExp("\\\\[\\da-fA-F]{1,6}"+M+"?|\\\\([^\\r\\n\\f])","g"),ne=function(e,t){var n="0x"+e.slice(1)-65536;return t||(n<0?String.fromCharCode(n+65536):String.fromCharCode(n>>10|55296,1023&n|56320))},re=/([\0-\x1f\x7f]|^-?\d)|^-$|[^\0-\x1f\x7f-\uFFFF\w-]/g,ie=function(e,t){return t?"\0"===e?"\ufffd":e.slice(0,-1)+"\\"+e.charCodeAt(e.length-1).toString(16)+" ":"\\"+e},oe=function(){T()},ae=be(function(e){return!0===e.disabled&&"fieldset"===e.nodeName.toLowerCase()},{dir:"parentNode",next:"legend"});try{H.apply(t=O.call(p.childNodes),p.childNodes),t[p.childNodes.length].nodeType}catch(e){H={apply:t.length?function(e,t){L.apply(e,O.call(t))}:function(e,t){var n=e.length,r=0;while(e[n++]=t[r++]);e.length=n-1}}}function se(t,e,n,r){var i,o,a,s,u,l,c,f=e&&e.ownerDocument,p=e?e.nodeType:9;if(n=n||[],"string"!=typeof t||!t||1!==p&&9!==p&&11!==p)return n;if(!r&&(T(e),e=e||C,E)){if(11!==p&&(u=Z.exec(t)))if(i=u[1]){if(9===p){if(!(a=e.getElementById(i)))return n;if(a.id===i)return n.push(a),n}else if(f&&(a=f.getElementById(i))&&y(e,a)&&a.id===i)return n.push(a),n}else{if(u[2])return H.apply(n,e.getElementsByTagName(t)),n;if((i=u[3])&&d.getElementsByClassName&&e.getElementsByClassName)return H.apply(n,e.getElementsByClassName(i)),n}if(d.qsa&&!N[t+" "]&&(!v||!v.test(t))&&(1!==p||"object"!==e.nodeName.toLowerCase())){if(c=t,f=e,1===p&&(U.test(t)||z.test(t))){(f=ee.test(t)&&ye(e.parentNode)||e)===e&&d.scope||((s=e.getAttribute("id"))?s=s.replace(re,ie):e.setAttribute("id",s=S)),o=(l=h(t)).length;while(o--)l[o]=(s?"#"+s:":scope")+" "+xe(l[o]);c=l.join(",")}try{return H.apply(n,f.querySelectorAll(c)),n}catch(e){N(t,!0)}finally{s===S&&e.removeAttribute("id")}}}return g(t.replace($,"$1"),e,n,r)}function ue(){var r=[];return function e(t,n){return r.push(t+" ")>b.cacheLength&&delete e[r.shift()],e[t+" "]=n}}function le(e){return e[S]=!0,e}function ce(e){var t=C.createElement("fieldset");try{return!!e(t)}catch(e){return!1}finally{t.parentNode&&t.parentNode.removeChild(t),t=null}}function fe(e,t){var n=e.split("|"),r=n.length;while(r--)b.attrHandle[n[r]]=t}function pe(e,t){var n=t&&e,r=n&&1===e.nodeType&&1===t.nodeType&&e.sourceIndex-t.sourceIndex;if(r)return r;if(n)while(n=n.nextSibling)if(n===t)return-1;return e?1:-1}function de(t){return function(e){return"input"===e.nodeName.toLowerCase()&&e.type===t}}function he(n){return function(e){var t=e.nodeName.toLowerCase();return("input"===t||"button"===t)&&e.type===n}}function ge(t){return function(e){return"form"in e?e.parentNode&&!1===e.disabled?"label"in e?"label"in e.parentNode?e.parentNode.disabled===t:e.disabled===t:e.isDisabled===t||e.isDisabled!==!t&&ae(e)===t:e.disabled===t:"label"in e&&e.disabled===t}}function ve(a){return le(function(o){return o=+o,le(function(e,t){var n,r=a([],e.length,o),i=r.length;while(i--)e[n=r[i]]&&(e[n]=!(t[n]=e[n]))})})}function ye(e){return e&&"undefined"!=typeof e.getElementsByTagName&&e}for(e in d=se.support={},i=se.isXML=function(e){var t=e&&e.namespaceURI,n=e&&(e.ownerDocument||e).documentElement;return!Y.test(t||n&&n.nodeName||"HTML")},T=se.setDocument=function(e){var t,n,r=e?e.ownerDocument||e:p;return r!=C&&9===r.nodeType&&r.documentElement&&(a=(C=r).documentElement,E=!i(C),p!=C&&(n=C.defaultView)&&n.top!==n&&(n.addEventListener?n.addEventListener("unload",oe,!1):n.attachEvent&&n.attachEvent("onunload",oe)),d.scope=ce(function(e){return a.appendChild(e).appendChild(C.createElement("div")),"undefined"!=typeof e.querySelectorAll&&!e.querySelectorAll(":scope fieldset div").length}),d.attributes=ce(function(e){return e.className="i",!e.getAttribute("className")}),d.getElementsByTagName=ce(function(e){return e.appendChild(C.createComment("")),!e.getElementsByTagName("*").length}),d.getElementsByClassName=K.test(C.getElementsByClassName),d.getById=ce(function(e){return a.appendChild(e).id=S,!C.getElementsByName||!C.getElementsByName(S).length}),d.getById?(b.filter.ID=function(e){var t=e.replace(te,ne);return function(e){return e.getAttribute("id")===t}},b.find.ID=function(e,t){if("undefined"!=typeof t.getElementById&&E){var n=t.getElementById(e);return n?[n]:[]}}):(b.filter.ID=function(e){var n=e.replace(te,ne);return function(e){var t="undefined"!=typeof e.getAttributeNode&&e.getAttributeNode("id");return t&&t.value===n}},b.find.ID=function(e,t){if("undefined"!=typeof t.getElementById&&E){var n,r,i,o=t.getElementById(e);if(o){if((n=o.getAttributeNode("id"))&&n.value===e)return[o];i=t.getElementsByName(e),r=0;while(o=i[r++])if((n=o.getAttributeNode("id"))&&n.value===e)return[o]}return[]}}),b.find.TAG=d.getElementsByTagName?function(e,t){return"undefined"!=typeof t.getElementsByTagName?t.getElementsByTagName(e):d.qsa?t.querySelectorAll(e):void 0}:function(e,t){var n,r=[],i=0,o=t.getElementsByTagName(e);if("*"===e){while(n=o[i++])1===n.nodeType&&r.push(n);return r}return o},b.find.CLASS=d.getElementsByClassName&&function(e,t){if("undefined"!=typeof t.getElementsByClassName&&E)return t.getElementsByClassName(e)},s=[],v=[],(d.qsa=K.test(C.querySelectorAll))&&(ce(function(e){var t;a.appendChild(e).innerHTML="",e.querySelectorAll("[msallowcapture^='']").length&&v.push("[*^$]="+M+"*(?:''|\"\")"),e.querySelectorAll("[selected]").length||v.push("\\["+M+"*(?:value|"+R+")"),e.querySelectorAll("[id~="+S+"-]").length||v.push("~="),(t=C.createElement("input")).setAttribute("name",""),e.appendChild(t),e.querySelectorAll("[name='']").length||v.push("\\["+M+"*name"+M+"*="+M+"*(?:''|\"\")"),e.querySelectorAll(":checked").length||v.push(":checked"),e.querySelectorAll("a#"+S+"+*").length||v.push(".#.+[+~]"),e.querySelectorAll("\\\f"),v.push("[\\r\\n\\f]")}),ce(function(e){e.innerHTML="";var t=C.createElement("input");t.setAttribute("type","hidden"),e.appendChild(t).setAttribute("name","D"),e.querySelectorAll("[name=d]").length&&v.push("name"+M+"*[*^$|!~]?="),2!==e.querySelectorAll(":enabled").length&&v.push(":enabled",":disabled"),a.appendChild(e).disabled=!0,2!==e.querySelectorAll(":disabled").length&&v.push(":enabled",":disabled"),e.querySelectorAll("*,:x"),v.push(",.*:")})),(d.matchesSelector=K.test(c=a.matches||a.webkitMatchesSelector||a.mozMatchesSelector||a.oMatchesSelector||a.msMatchesSelector))&&ce(function(e){d.disconnectedMatch=c.call(e,"*"),c.call(e,"[s!='']:x"),s.push("!=",F)}),v=v.length&&new RegExp(v.join("|")),s=s.length&&new RegExp(s.join("|")),t=K.test(a.compareDocumentPosition),y=t||K.test(a.contains)?function(e,t){var n=9===e.nodeType?e.documentElement:e,r=t&&t.parentNode;return e===r||!(!r||1!==r.nodeType||!(n.contains?n.contains(r):e.compareDocumentPosition&&16&e.compareDocumentPosition(r)))}:function(e,t){if(t)while(t=t.parentNode)if(t===e)return!0;return!1},j=t?function(e,t){if(e===t)return l=!0,0;var n=!e.compareDocumentPosition-!t.compareDocumentPosition;return n||(1&(n=(e.ownerDocument||e)==(t.ownerDocument||t)?e.compareDocumentPosition(t):1)||!d.sortDetached&&t.compareDocumentPosition(e)===n?e==C||e.ownerDocument==p&&y(p,e)?-1:t==C||t.ownerDocument==p&&y(p,t)?1:u?P(u,e)-P(u,t):0:4&n?-1:1)}:function(e,t){if(e===t)return l=!0,0;var n,r=0,i=e.parentNode,o=t.parentNode,a=[e],s=[t];if(!i||!o)return e==C?-1:t==C?1:i?-1:o?1:u?P(u,e)-P(u,t):0;if(i===o)return pe(e,t);n=e;while(n=n.parentNode)a.unshift(n);n=t;while(n=n.parentNode)s.unshift(n);while(a[r]===s[r])r++;return r?pe(a[r],s[r]):a[r]==p?-1:s[r]==p?1:0}),C},se.matches=function(e,t){return se(e,null,null,t)},se.matchesSelector=function(e,t){if(T(e),d.matchesSelector&&E&&!N[t+" "]&&(!s||!s.test(t))&&(!v||!v.test(t)))try{var n=c.call(e,t);if(n||d.disconnectedMatch||e.document&&11!==e.document.nodeType)return n}catch(e){N(t,!0)}return 0":{dir:"parentNode",first:!0}," ":{dir:"parentNode"},"+":{dir:"previousSibling",first:!0},"~":{dir:"previousSibling"}},preFilter:{ATTR:function(e){return e[1]=e[1].replace(te,ne),e[3]=(e[3]||e[4]||e[5]||"").replace(te,ne),"~="===e[2]&&(e[3]=" "+e[3]+" "),e.slice(0,4)},CHILD:function(e){return e[1]=e[1].toLowerCase(),"nth"===e[1].slice(0,3)?(e[3]||se.error(e[0]),e[4]=+(e[4]?e[5]+(e[6]||1):2*("even"===e[3]||"odd"===e[3])),e[5]=+(e[7]+e[8]||"odd"===e[3])):e[3]&&se.error(e[0]),e},PSEUDO:function(e){var t,n=!e[6]&&e[2];return G.CHILD.test(e[0])?null:(e[3]?e[2]=e[4]||e[5]||"":n&&X.test(n)&&(t=h(n,!0))&&(t=n.indexOf(")",n.length-t)-n.length)&&(e[0]=e[0].slice(0,t),e[2]=n.slice(0,t)),e.slice(0,3))}},filter:{TAG:function(e){var t=e.replace(te,ne).toLowerCase();return"*"===e?function(){return!0}:function(e){return e.nodeName&&e.nodeName.toLowerCase()===t}},CLASS:function(e){var t=m[e+" "];return t||(t=new RegExp("(^|"+M+")"+e+"("+M+"|$)"))&&m(e,function(e){return t.test("string"==typeof e.className&&e.className||"undefined"!=typeof e.getAttribute&&e.getAttribute("class")||"")})},ATTR:function(n,r,i){return function(e){var t=se.attr(e,n);return null==t?"!="===r:!r||(t+="","="===r?t===i:"!="===r?t!==i:"^="===r?i&&0===t.indexOf(i):"*="===r?i&&-1:\x20\t\r\n\f]*)[\x20\t\r\n\f]*\/?>(?:<\/\1>|)$/i;function j(e,n,r){return m(n)?S.grep(e,function(e,t){return!!n.call(e,t,e)!==r}):n.nodeType?S.grep(e,function(e){return e===n!==r}):"string"!=typeof n?S.grep(e,function(e){return-1)[^>]*|#([\w-]+))$/;(S.fn.init=function(e,t,n){var r,i;if(!e)return this;if(n=n||D,"string"==typeof e){if(!(r="<"===e[0]&&">"===e[e.length-1]&&3<=e.length?[null,e,null]:q.exec(e))||!r[1]&&t)return!t||t.jquery?(t||n).find(e):this.constructor(t).find(e);if(r[1]){if(t=t instanceof S?t[0]:t,S.merge(this,S.parseHTML(r[1],t&&t.nodeType?t.ownerDocument||t:E,!0)),N.test(r[1])&&S.isPlainObject(t))for(r in t)m(this[r])?this[r](t[r]):this.attr(r,t[r]);return this}return(i=E.getElementById(r[2]))&&(this[0]=i,this.length=1),this}return e.nodeType?(this[0]=e,this.length=1,this):m(e)?void 0!==n.ready?n.ready(e):e(S):S.makeArray(e,this)}).prototype=S.fn,D=S(E);var L=/^(?:parents|prev(?:Until|All))/,H={children:!0,contents:!0,next:!0,prev:!0};function O(e,t){while((e=e[t])&&1!==e.nodeType);return e}S.fn.extend({has:function(e){var t=S(e,this),n=t.length;return this.filter(function(){for(var e=0;e\x20\t\r\n\f]*)/i,he=/^$|^module$|\/(?:java|ecma)script/i;ce=E.createDocumentFragment().appendChild(E.createElement("div")),(fe=E.createElement("input")).setAttribute("type","radio"),fe.setAttribute("checked","checked"),fe.setAttribute("name","t"),ce.appendChild(fe),y.checkClone=ce.cloneNode(!0).cloneNode(!0).lastChild.checked,ce.innerHTML="",y.noCloneChecked=!!ce.cloneNode(!0).lastChild.defaultValue,ce.innerHTML="",y.option=!!ce.lastChild;var ge={thead:[1,"","
"],col:[2,"","
"],tr:[2,"","
"],td:[3,"","
"],_default:[0,"",""]};function ve(e,t){var n;return n="undefined"!=typeof e.getElementsByTagName?e.getElementsByTagName(t||"*"):"undefined"!=typeof e.querySelectorAll?e.querySelectorAll(t||"*"):[],void 0===t||t&&A(e,t)?S.merge([e],n):n}function ye(e,t){for(var n=0,r=e.length;n",""]);var me=/<|&#?\w+;/;function xe(e,t,n,r,i){for(var o,a,s,u,l,c,f=t.createDocumentFragment(),p=[],d=0,h=e.length;d\s*$/g;function je(e,t){return A(e,"table")&&A(11!==t.nodeType?t:t.firstChild,"tr")&&S(e).children("tbody")[0]||e}function De(e){return e.type=(null!==e.getAttribute("type"))+"/"+e.type,e}function qe(e){return"true/"===(e.type||"").slice(0,5)?e.type=e.type.slice(5):e.removeAttribute("type"),e}function Le(e,t){var n,r,i,o,a,s;if(1===t.nodeType){if(Y.hasData(e)&&(s=Y.get(e).events))for(i in Y.remove(t,"handle events"),s)for(n=0,r=s[i].length;n").attr(n.scriptAttrs||{}).prop({charset:n.scriptCharset,src:n.url}).on("load error",i=function(e){r.remove(),i=null,e&&t("error"===e.type?404:200,e.type)}),E.head.appendChild(r[0])},abort:function(){i&&i()}}});var _t,zt=[],Ut=/(=)\?(?=&|$)|\?\?/;S.ajaxSetup({jsonp:"callback",jsonpCallback:function(){var e=zt.pop()||S.expando+"_"+wt.guid++;return this[e]=!0,e}}),S.ajaxPrefilter("json jsonp",function(e,t,n){var r,i,o,a=!1!==e.jsonp&&(Ut.test(e.url)?"url":"string"==typeof e.data&&0===(e.contentType||"").indexOf("application/x-www-form-urlencoded")&&Ut.test(e.data)&&"data");if(a||"jsonp"===e.dataTypes[0])return r=e.jsonpCallback=m(e.jsonpCallback)?e.jsonpCallback():e.jsonpCallback,a?e[a]=e[a].replace(Ut,"$1"+r):!1!==e.jsonp&&(e.url+=(Tt.test(e.url)?"&":"?")+e.jsonp+"="+r),e.converters["script json"]=function(){return o||S.error(r+" was not called"),o[0]},e.dataTypes[0]="json",i=C[r],C[r]=function(){o=arguments},n.always(function(){void 0===i?S(C).removeProp(r):C[r]=i,e[r]&&(e.jsonpCallback=t.jsonpCallback,zt.push(r)),o&&m(i)&&i(o[0]),o=i=void 0}),"script"}),y.createHTMLDocument=((_t=E.implementation.createHTMLDocument("").body).innerHTML="
",2===_t.childNodes.length),S.parseHTML=function(e,t,n){return"string"!=typeof e?[]:("boolean"==typeof t&&(n=t,t=!1),t||(y.createHTMLDocument?((r=(t=E.implementation.createHTMLDocument("")).createElement("base")).href=E.location.href,t.head.appendChild(r)):t=E),o=!n&&[],(i=N.exec(e))?[t.createElement(i[1])]:(i=xe([e],t,o),o&&o.length&&S(o).remove(),S.merge([],i.childNodes)));var r,i,o},S.fn.load=function(e,t,n){var r,i,o,a=this,s=e.indexOf(" ");return-1").append(S.parseHTML(e)).find(r):e)}).always(n&&function(e,t){a.each(function(){n.apply(this,o||[e.responseText,t,e])})}),this},S.expr.pseudos.animated=function(t){return S.grep(S.timers,function(e){return t===e.elem}).length},S.offset={setOffset:function(e,t,n){var r,i,o,a,s,u,l=S.css(e,"position"),c=S(e),f={};"static"===l&&(e.style.position="relative"),s=c.offset(),o=S.css(e,"top"),u=S.css(e,"left"),("absolute"===l||"fixed"===l)&&-1<(o+u).indexOf("auto")?(a=(r=c.position()).top,i=r.left):(a=parseFloat(o)||0,i=parseFloat(u)||0),m(t)&&(t=t.call(e,n,S.extend({},s))),null!=t.top&&(f.top=t.top-s.top+a),null!=t.left&&(f.left=t.left-s.left+i),"using"in t?t.using.call(e,f):c.css(f)}},S.fn.extend({offset:function(t){if(arguments.length)return void 0===t?this:this.each(function(e){S.offset.setOffset(this,t,e)});var e,n,r=this[0];return r?r.getClientRects().length?(e=r.getBoundingClientRect(),n=r.ownerDocument.defaultView,{top:e.top+n.pageYOffset,left:e.left+n.pageXOffset}):{top:0,left:0}:void 0},position:function(){if(this[0]){var e,t,n,r=this[0],i={top:0,left:0};if("fixed"===S.css(r,"position"))t=r.getBoundingClientRect();else{t=this.offset(),n=r.ownerDocument,e=r.offsetParent||n.documentElement;while(e&&(e===n.body||e===n.documentElement)&&"static"===S.css(e,"position"))e=e.parentNode;e&&e!==r&&1===e.nodeType&&((i=S(e).offset()).top+=S.css(e,"borderTopWidth",!0),i.left+=S.css(e,"borderLeftWidth",!0))}return{top:t.top-i.top-S.css(r,"marginTop",!0),left:t.left-i.left-S.css(r,"marginLeft",!0)}}},offsetParent:function(){return this.map(function(){var e=this.offsetParent;while(e&&"static"===S.css(e,"position"))e=e.offsetParent;return e||re})}}),S.each({scrollLeft:"pageXOffset",scrollTop:"pageYOffset"},function(t,i){var o="pageYOffset"===i;S.fn[t]=function(e){return $(this,function(e,t,n){var r;if(x(e)?r=e:9===e.nodeType&&(r=e.defaultView),void 0===n)return r?r[i]:e[t];r?r.scrollTo(o?r.pageXOffset:n,o?n:r.pageYOffset):e[t]=n},t,e,arguments.length)}}),S.each(["top","left"],function(e,n){S.cssHooks[n]=Fe(y.pixelPosition,function(e,t){if(t)return t=We(e,n),Pe.test(t)?S(e).position()[n]+"px":t})}),S.each({Height:"height",Width:"width"},function(a,s){S.each({padding:"inner"+a,content:s,"":"outer"+a},function(r,o){S.fn[o]=function(e,t){var n=arguments.length&&(r||"boolean"!=typeof e),i=r||(!0===e||!0===t?"margin":"border");return $(this,function(e,t,n){var r;return x(e)?0===o.indexOf("outer")?e["inner"+a]:e.document.documentElement["client"+a]:9===e.nodeType?(r=e.documentElement,Math.max(e.body["scroll"+a],r["scroll"+a],e.body["offset"+a],r["offset"+a],r["client"+a])):void 0===n?S.css(e,t,i):S.style(e,t,n,i)},s,n?e:void 0,n)}})}),S.each(["ajaxStart","ajaxStop","ajaxComplete","ajaxError","ajaxSuccess","ajaxSend"],function(e,t){S.fn[t]=function(e){return this.on(t,e)}}),S.fn.extend({bind:function(e,t,n){return this.on(e,null,t,n)},unbind:function(e,t){return this.off(e,null,t)},delegate:function(e,t,n,r){return this.on(t,e,n,r)},undelegate:function(e,t,n){return 1===arguments.length?this.off(e,"**"):this.off(t,e||"**",n)},hover:function(e,t){return this.mouseenter(e).mouseleave(t||e)}}),S.each("blur focus focusin focusout resize scroll click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave change select submit keydown keypress keyup contextmenu".split(" "),function(e,n){S.fn[n]=function(e,t){return 0",options:{classes:{},disabled:!1,create:null},_createWidget:function(t,e){e=y(e||this.defaultElement||this)[0],this.element=y(e),this.uuid=i++,this.eventNamespace="."+this.widgetName+this.uuid,this.bindings=y(),this.hoverable=y(),this.focusable=y(),this.classesElementLookup={},e!==this&&(y.data(e,this.widgetFullName,this),this._on(!0,this.element,{remove:function(t){t.target===e&&this.destroy()}}),this.document=y(e.style?e.ownerDocument:e.document||e),this.window=y(this.document[0].defaultView||this.document[0].parentWindow)),this.options=y.widget.extend({},this.options,this._getCreateOptions(),t),this._create(),this.options.disabled&&this._setOptionDisabled(this.options.disabled),this._trigger("create",null,this._getCreateEventData()),this._init()},_getCreateOptions:function(){return{}},_getCreateEventData:y.noop,_create:y.noop,_init:y.noop,destroy:function(){var i=this;this._destroy(),y.each(this.classesElementLookup,function(t,e){i._removeClass(e,t)}),this.element.off(this.eventNamespace).removeData(this.widgetFullName),this.widget().off(this.eventNamespace).removeAttr("aria-disabled"),this.bindings.off(this.eventNamespace)},_destroy:y.noop,widget:function(){return this.element},option:function(t,e){var i,s,n,o=t;if(0===arguments.length)return y.widget.extend({},this.options);if("string"==typeof t)if(o={},t=(i=t.split(".")).shift(),i.length){for(s=o[t]=y.widget.extend({},this.options[t]),n=0;n
"),i=e.children()[0];return y("body").append(e),t=i.offsetWidth,e.css("overflow","scroll"),t===(i=i.offsetWidth)&&(i=e[0].clientWidth),e.remove(),s=t-i},getScrollInfo:function(t){var e=t.isWindow||t.isDocument?"":t.element.css("overflow-x"),i=t.isWindow||t.isDocument?"":t.element.css("overflow-y"),e="scroll"===e||"auto"===e&&t.widthx(D(s),D(n))?o.important="horizontal":o.important="vertical",p.using.call(this,t,o)}),h.offset(y.extend(l,{using:t}))})},y.ui.position={fit:{left:function(t,e){var i=e.within,s=i.isWindow?i.scrollLeft:i.offset.left,n=i.width,o=t.left-e.collisionPosition.marginLeft,h=s-o,a=o+e.collisionWidth-n-s;e.collisionWidth>n?0n?0=this.options.distance},_mouseDelayMet:function(){return this.mouseDelayMet},_mouseStart:function(){},_mouseDrag:function(){},_mouseStop:function(){},_mouseCapture:function(){return!0}}),y.ui.plugin={add:function(t,e,i){var s,n=y.ui[t].prototype;for(s in i)n.plugins[s]=n.plugins[s]||[],n.plugins[s].push([e,i[s]])},call:function(t,e,i,s){var n,o=t.plugins[e];if(o&&(s||t.element[0].parentNode&&11!==t.element[0].parentNode.nodeType))for(n=0;n").css({overflow:"hidden",position:this.element.css("position"),width:this.element.outerWidth(),height:this.element.outerHeight(),top:this.element.css("top"),left:this.element.css("left")})),this.element=this.element.parent().data("ui-resizable",this.element.resizable("instance")),this.elementIsWrapper=!0,t={marginTop:this.originalElement.css("marginTop"),marginRight:this.originalElement.css("marginRight"),marginBottom:this.originalElement.css("marginBottom"),marginLeft:this.originalElement.css("marginLeft")},this.element.css(t),this.originalElement.css("margin",0),this.originalResizeStyle=this.originalElement.css("resize"),this.originalElement.css("resize","none"),this._proportionallyResizeElements.push(this.originalElement.css({position:"static",zoom:1,display:"block"})),this.originalElement.css(t),this._proportionallyResize()),this._setupHandles(),e.autoHide&&y(this.element).on("mouseenter",function(){e.disabled||(i._removeClass("ui-resizable-autohide"),i._handles.show())}).on("mouseleave",function(){e.disabled||i.resizing||(i._addClass("ui-resizable-autohide"),i._handles.hide())}),this._mouseInit()},_destroy:function(){this._mouseDestroy(),this._addedHandles.remove();function t(t){y(t).removeData("resizable").removeData("ui-resizable").off(".resizable")}var e;return this.elementIsWrapper&&(t(this.element),e=this.element,this.originalElement.css({position:e.css("position"),width:e.outerWidth(),height:e.outerHeight(),top:e.css("top"),left:e.css("left")}).insertAfter(e),e.remove()),this.originalElement.css("resize",this.originalResizeStyle),t(this.originalElement),this},_setOption:function(t,e){switch(this._super(t,e),t){case"handles":this._removeHandles(),this._setupHandles();break;case"aspectRatio":this._aspectRatio=!!e}},_setupHandles:function(){var t,e,i,s,n,o=this.options,h=this;if(this.handles=o.handles||(y(".ui-resizable-handle",this.element).length?{n:".ui-resizable-n",e:".ui-resizable-e",s:".ui-resizable-s",w:".ui-resizable-w",se:".ui-resizable-se",sw:".ui-resizable-sw",ne:".ui-resizable-ne",nw:".ui-resizable-nw"}:"e,s,se"),this._handles=y(),this._addedHandles=y(),this.handles.constructor===String)for("all"===this.handles&&(this.handles="n,e,s,w,se,sw,ne,nw"),i=this.handles.split(","),this.handles={},e=0;e"),this._addClass(n,"ui-resizable-handle "+s),n.css({zIndex:o.zIndex}),this.handles[t]=".ui-resizable-"+t,this.element.children(this.handles[t]).length||(this.element.append(n),this._addedHandles=this._addedHandles.add(n));this._renderAxis=function(t){var e,i,s;for(e in t=t||this.element,this.handles)this.handles[e].constructor===String?this.handles[e]=this.element.children(this.handles[e]).first().show():(this.handles[e].jquery||this.handles[e].nodeType)&&(this.handles[e]=y(this.handles[e]),this._on(this.handles[e],{mousedown:h._mouseDown})),this.elementIsWrapper&&this.originalElement[0].nodeName.match(/^(textarea|input|select|button)$/i)&&(i=y(this.handles[e],this.element),s=/sw|ne|nw|se|n|s/.test(e)?i.outerHeight():i.outerWidth(),i=["padding",/ne|nw|n/.test(e)?"Top":/se|sw|s/.test(e)?"Bottom":/^e$/.test(e)?"Right":"Left"].join(""),t.css(i,s),this._proportionallyResize()),this._handles=this._handles.add(this.handles[e])},this._renderAxis(this.element),this._handles=this._handles.add(this.element.find(".ui-resizable-handle")),this._handles.disableSelection(),this._handles.on("mouseover",function(){h.resizing||(this.className&&(n=this.className.match(/ui-resizable-(se|sw|ne|nw|n|e|s|w)/i)),h.axis=n&&n[1]?n[1]:"se")}),o.autoHide&&(this._handles.hide(),this._addClass("ui-resizable-autohide"))},_removeHandles:function(){this._addedHandles.remove()},_mouseCapture:function(t){var e,i,s=!1;for(e in this.handles)(i=y(this.handles[e])[0])!==t.target&&!y.contains(i,t.target)||(s=!0);return!this.options.disabled&&s},_mouseStart:function(t){var e,i,s=this.options,n=this.element;return this.resizing=!0,this._renderProxy(),e=this._num(this.helper.css("left")),i=this._num(this.helper.css("top")),s.containment&&(e+=y(s.containment).scrollLeft()||0,i+=y(s.containment).scrollTop()||0),this.offset=this.helper.offset(),this.position={left:e,top:i},this.size=this._helper?{width:this.helper.width(),height:this.helper.height()}:{width:n.width(),height:n.height()},this.originalSize=this._helper?{width:n.outerWidth(),height:n.outerHeight()}:{width:n.width(),height:n.height()},this.sizeDiff={width:n.outerWidth()-n.width(),height:n.outerHeight()-n.height()},this.originalPosition={left:e,top:i},this.originalMousePosition={left:t.pageX,top:t.pageY},this.aspectRatio="number"==typeof s.aspectRatio?s.aspectRatio:this.originalSize.width/this.originalSize.height||1,s=y(".ui-resizable-"+this.axis).css("cursor"),y("body").css("cursor","auto"===s?this.axis+"-resize":s),this._addClass("ui-resizable-resizing"),this._propagate("start",t),!0},_mouseDrag:function(t){var e=this.originalMousePosition,i=this.axis,s=t.pageX-e.left||0,e=t.pageY-e.top||0,i=this._change[i];return this._updatePrevProperties(),i&&(e=i.apply(this,[t,s,e]),this._updateVirtualBoundaries(t.shiftKey),(this._aspectRatio||t.shiftKey)&&(e=this._updateRatio(e,t)),e=this._respectSize(e,t),this._updateCache(e),this._propagate("resize",t),e=this._applyChanges(),!this._helper&&this._proportionallyResizeElements.length&&this._proportionallyResize(),y.isEmptyObject(e)||(this._updatePrevProperties(),this._trigger("resize",t,this.ui()),this._applyChanges())),!1},_mouseStop:function(t){this.resizing=!1;var e,i,s,n=this.options,o=this;return this._helper&&(s=(e=(i=this._proportionallyResizeElements).length&&/textarea/i.test(i[0].nodeName))&&this._hasScroll(i[0],"left")?0:o.sizeDiff.height,i=e?0:o.sizeDiff.width,e={width:o.helper.width()-i,height:o.helper.height()-s},i=parseFloat(o.element.css("left"))+(o.position.left-o.originalPosition.left)||null,s=parseFloat(o.element.css("top"))+(o.position.top-o.originalPosition.top)||null,n.animate||this.element.css(y.extend(e,{top:s,left:i})),o.helper.height(o.size.height),o.helper.width(o.size.width),this._helper&&!n.animate&&this._proportionallyResize()),y("body").css("cursor","auto"),this._removeClass("ui-resizable-resizing"),this._propagate("stop",t),this._helper&&this.helper.remove(),!1},_updatePrevProperties:function(){this.prevPosition={top:this.position.top,left:this.position.left},this.prevSize={width:this.size.width,height:this.size.height}},_applyChanges:function(){var t={};return this.position.top!==this.prevPosition.top&&(t.top=this.position.top+"px"),this.position.left!==this.prevPosition.left&&(t.left=this.position.left+"px"),this.size.width!==this.prevSize.width&&(t.width=this.size.width+"px"),this.size.height!==this.prevSize.height&&(t.height=this.size.height+"px"),this.helper.css(t),t},_updateVirtualBoundaries:function(t){var e,i,s=this.options,n={minWidth:this._isNumber(s.minWidth)?s.minWidth:0,maxWidth:this._isNumber(s.maxWidth)?s.maxWidth:1/0,minHeight:this._isNumber(s.minHeight)?s.minHeight:0,maxHeight:this._isNumber(s.maxHeight)?s.maxHeight:1/0};(this._aspectRatio||t)&&(e=n.minHeight*this.aspectRatio,i=n.minWidth/this.aspectRatio,s=n.maxHeight*this.aspectRatio,t=n.maxWidth/this.aspectRatio,e>n.minWidth&&(n.minWidth=e),i>n.minHeight&&(n.minHeight=i),st.width,h=this._isNumber(t.height)&&e.minHeight&&e.minHeight>t.height,a=this.originalPosition.left+this.originalSize.width,r=this.originalPosition.top+this.originalSize.height,l=/sw|nw|w/.test(i),i=/nw|ne|n/.test(i);return o&&(t.width=e.minWidth),h&&(t.height=e.minHeight),s&&(t.width=e.maxWidth),n&&(t.height=e.maxHeight),o&&l&&(t.left=a-e.minWidth),s&&l&&(t.left=a-e.maxWidth),h&&i&&(t.top=r-e.minHeight),n&&i&&(t.top=r-e.maxHeight),t.width||t.height||t.left||!t.top?t.width||t.height||t.top||!t.left||(t.left=null):t.top=null,t},_getPaddingPlusBorderDimensions:function(t){for(var e=0,i=[],s=[t.css("borderTopWidth"),t.css("borderRightWidth"),t.css("borderBottomWidth"),t.css("borderLeftWidth")],n=[t.css("paddingTop"),t.css("paddingRight"),t.css("paddingBottom"),t.css("paddingLeft")];e<4;e++)i[e]=parseFloat(s[e])||0,i[e]+=parseFloat(n[e])||0;return{height:i[0]+i[2],width:i[1]+i[3]}},_proportionallyResize:function(){if(this._proportionallyResizeElements.length)for(var t,e=0,i=this.helper||this.element;e").css({overflow:"hidden"}),this._addClass(this.helper,this._helper),this.helper.css({width:this.element.outerWidth(),height:this.element.outerHeight(),position:"absolute",left:this.elementOffset.left+"px",top:this.elementOffset.top+"px",zIndex:++e.zIndex}),this.helper.appendTo("body").disableSelection()):this.helper=this.element},_change:{e:function(t,e){return{width:this.originalSize.width+e}},w:function(t,e){var i=this.originalSize;return{left:this.originalPosition.left+e,width:i.width-e}},n:function(t,e,i){var s=this.originalSize;return{top:this.originalPosition.top+i,height:s.height-i}},s:function(t,e,i){return{height:this.originalSize.height+i}},se:function(t,e,i){return y.extend(this._change.s.apply(this,arguments),this._change.e.apply(this,[t,e,i]))},sw:function(t,e,i){return y.extend(this._change.s.apply(this,arguments),this._change.w.apply(this,[t,e,i]))},ne:function(t,e,i){return y.extend(this._change.n.apply(this,arguments),this._change.e.apply(this,[t,e,i]))},nw:function(t,e,i){return y.extend(this._change.n.apply(this,arguments),this._change.w.apply(this,[t,e,i]))}},_propagate:function(t,e){y.ui.plugin.call(this,t,[e,this.ui()]),"resize"!==t&&this._trigger(t,e,this.ui())},plugins:{},ui:function(){return{originalElement:this.originalElement,element:this.element,helper:this.helper,position:this.position,size:this.size,originalSize:this.originalSize,originalPosition:this.originalPosition}}}),y.ui.plugin.add("resizable","animate",{stop:function(e){var i=y(this).resizable("instance"),t=i.options,s=i._proportionallyResizeElements,n=s.length&&/textarea/i.test(s[0].nodeName),o=n&&i._hasScroll(s[0],"left")?0:i.sizeDiff.height,h=n?0:i.sizeDiff.width,n={width:i.size.width-h,height:i.size.height-o},h=parseFloat(i.element.css("left"))+(i.position.left-i.originalPosition.left)||null,o=parseFloat(i.element.css("top"))+(i.position.top-i.originalPosition.top)||null;i.element.animate(y.extend(n,o&&h?{top:o,left:h}:{}),{duration:t.animateDuration,easing:t.animateEasing,step:function(){var t={width:parseFloat(i.element.css("width")),height:parseFloat(i.element.css("height")),top:parseFloat(i.element.css("top")),left:parseFloat(i.element.css("left"))};s&&s.length&&y(s[0]).css({width:t.width,height:t.height}),i._updateCache(t),i._propagate("resize",e)}})}}),y.ui.plugin.add("resizable","containment",{start:function(){var i,s,n=y(this).resizable("instance"),t=n.options,e=n.element,o=t.containment,h=o instanceof y?o.get(0):/parent/.test(o)?e.parent().get(0):o;h&&(n.containerElement=y(h),/document/.test(o)||o===document?(n.containerOffset={left:0,top:0},n.containerPosition={left:0,top:0},n.parentData={element:y(document),left:0,top:0,width:y(document).width(),height:y(document).height()||document.body.parentNode.scrollHeight}):(i=y(h),s=[],y(["Top","Right","Left","Bottom"]).each(function(t,e){s[t]=n._num(i.css("padding"+e))}),n.containerOffset=i.offset(),n.containerPosition=i.position(),n.containerSize={height:i.innerHeight()-s[3],width:i.innerWidth()-s[1]},t=n.containerOffset,e=n.containerSize.height,o=n.containerSize.width,o=n._hasScroll(h,"left")?h.scrollWidth:o,e=n._hasScroll(h)?h.scrollHeight:e,n.parentData={element:h,left:t.left,top:t.top,width:o,height:e}))},resize:function(t){var e=y(this).resizable("instance"),i=e.options,s=e.containerOffset,n=e.position,o=e._aspectRatio||t.shiftKey,h={top:0,left:0},a=e.containerElement,t=!0;a[0]!==document&&/static/.test(a.css("position"))&&(h=s),n.left<(e._helper?s.left:0)&&(e.size.width=e.size.width+(e._helper?e.position.left-s.left:e.position.left-h.left),o&&(e.size.height=e.size.width/e.aspectRatio,t=!1),e.position.left=i.helper?s.left:0),n.top<(e._helper?s.top:0)&&(e.size.height=e.size.height+(e._helper?e.position.top-s.top:e.position.top),o&&(e.size.width=e.size.height*e.aspectRatio,t=!1),e.position.top=e._helper?s.top:0),i=e.containerElement.get(0)===e.element.parent().get(0),n=/relative|absolute/.test(e.containerElement.css("position")),i&&n?(e.offset.left=e.parentData.left+e.position.left,e.offset.top=e.parentData.top+e.position.top):(e.offset.left=e.element.offset().left,e.offset.top=e.element.offset().top),n=Math.abs(e.sizeDiff.width+(e._helper?e.offset.left-h.left:e.offset.left-s.left)),s=Math.abs(e.sizeDiff.height+(e._helper?e.offset.top-h.top:e.offset.top-s.top)),n+e.size.width>=e.parentData.width&&(e.size.width=e.parentData.width-n,o&&(e.size.height=e.size.width/e.aspectRatio,t=!1)),s+e.size.height>=e.parentData.height&&(e.size.height=e.parentData.height-s,o&&(e.size.width=e.size.height*e.aspectRatio,t=!1)),t||(e.position.left=e.prevPosition.left,e.position.top=e.prevPosition.top,e.size.width=e.prevSize.width,e.size.height=e.prevSize.height)},stop:function(){var t=y(this).resizable("instance"),e=t.options,i=t.containerOffset,s=t.containerPosition,n=t.containerElement,o=y(t.helper),h=o.offset(),a=o.outerWidth()-t.sizeDiff.width,o=o.outerHeight()-t.sizeDiff.height;t._helper&&!e.animate&&/relative/.test(n.css("position"))&&y(this).css({left:h.left-s.left-i.left,width:a,height:o}),t._helper&&!e.animate&&/static/.test(n.css("position"))&&y(this).css({left:h.left-s.left-i.left,width:a,height:o})}}),y.ui.plugin.add("resizable","alsoResize",{start:function(){var t=y(this).resizable("instance").options;y(t.alsoResize).each(function(){var t=y(this);t.data("ui-resizable-alsoresize",{width:parseFloat(t.width()),height:parseFloat(t.height()),left:parseFloat(t.css("left")),top:parseFloat(t.css("top"))})})},resize:function(t,i){var e=y(this).resizable("instance"),s=e.options,n=e.originalSize,o=e.originalPosition,h={height:e.size.height-n.height||0,width:e.size.width-n.width||0,top:e.position.top-o.top||0,left:e.position.left-o.left||0};y(s.alsoResize).each(function(){var t=y(this),s=y(this).data("ui-resizable-alsoresize"),n={},e=t.parents(i.originalElement[0]).length?["width","height"]:["width","height","top","left"];y.each(e,function(t,e){var i=(s[e]||0)+(h[e]||0);i&&0<=i&&(n[e]=i||null)}),t.css(n)})},stop:function(){y(this).removeData("ui-resizable-alsoresize")}}),y.ui.plugin.add("resizable","ghost",{start:function(){var t=y(this).resizable("instance"),e=t.size;t.ghost=t.originalElement.clone(),t.ghost.css({opacity:.25,display:"block",position:"relative",height:e.height,width:e.width,margin:0,left:0,top:0}),t._addClass(t.ghost,"ui-resizable-ghost"),!1!==y.uiBackCompat&&"string"==typeof t.options.ghost&&t.ghost.addClass(this.options.ghost),t.ghost.appendTo(t.helper)},resize:function(){var t=y(this).resizable("instance");t.ghost&&t.ghost.css({position:"relative",height:t.size.height,width:t.size.width})},stop:function(){var t=y(this).resizable("instance");t.ghost&&t.helper&&t.helper.get(0).removeChild(t.ghost.get(0))}}),y.ui.plugin.add("resizable","grid",{resize:function(){var t,e=y(this).resizable("instance"),i=e.options,s=e.size,n=e.originalSize,o=e.originalPosition,h=e.axis,a="number"==typeof i.grid?[i.grid,i.grid]:i.grid,r=a[0]||1,l=a[1]||1,u=Math.round((s.width-n.width)/r)*r,p=Math.round((s.height-n.height)/l)*l,d=n.width+u,c=n.height+p,f=i.maxWidth&&i.maxWidthd,s=i.minHeight&&i.minHeight>c;i.grid=a,m&&(d+=r),s&&(c+=l),f&&(d-=r),g&&(c-=l),/^(se|s|e)$/.test(h)?(e.size.width=d,e.size.height=c):/^(ne)$/.test(h)?(e.size.width=d,e.size.height=c,e.position.top=o.top-p):/^(sw)$/.test(h)?(e.size.width=d,e.size.height=c,e.position.left=o.left-u):((c-l<=0||d-r<=0)&&(t=e._getPaddingPlusBorderDimensions(this)),0=f[g]?0:Math.min(f[g],n));!a&&1-1){targetElements.on(evt+EVENT_NAMESPACE,function elementToggle(event){$.powerTip.toggle(this,event)})}else{targetElements.on(evt+EVENT_NAMESPACE,function elementOpen(event){$.powerTip.show(this,event)})}});$.each(options.closeEvents,function(idx,evt){if($.inArray(evt,options.openEvents)<0){targetElements.on(evt+EVENT_NAMESPACE,function elementClose(event){$.powerTip.hide(this,!isMouseEvent(event))})}});targetElements.on("keydown"+EVENT_NAMESPACE,function elementKeyDown(event){if(event.keyCode===27){$.powerTip.hide(this,true)}})}return targetElements};$.fn.powerTip.defaults={fadeInTime:200,fadeOutTime:100,followMouse:false,popupId:"powerTip",popupClass:null,intentSensitivity:7,intentPollInterval:100,closeDelay:100,placement:"n",smartPlacement:false,offset:10,mouseOnToPopup:false,manual:false,openEvents:["mouseenter","focus"],closeEvents:["mouseleave","blur"]};$.fn.powerTip.smartPlacementLists={n:["n","ne","nw","s"],e:["e","ne","se","w","nw","sw","n","s","e"],s:["s","se","sw","n"],w:["w","nw","sw","e","ne","se","n","s","w"],nw:["nw","w","sw","n","s","se","nw"],ne:["ne","e","se","n","s","sw","ne"],sw:["sw","w","nw","s","n","ne","sw"],se:["se","e","ne","s","n","nw","se"],"nw-alt":["nw-alt","n","ne-alt","sw-alt","s","se-alt","w","e"],"ne-alt":["ne-alt","n","nw-alt","se-alt","s","sw-alt","e","w"],"sw-alt":["sw-alt","s","se-alt","nw-alt","n","ne-alt","w","e"],"se-alt":["se-alt","s","sw-alt","ne-alt","n","nw-alt","e","w"]};$.powerTip={show:function apiShowTip(element,event){if(isMouseEvent(event)){trackMouse(event);session.previousX=event.pageX;session.previousY=event.pageY;$(element).data(DATA_DISPLAYCONTROLLER).show()}else{$(element).first().data(DATA_DISPLAYCONTROLLER).show(true,true)}return element},reposition:function apiResetPosition(element){$(element).first().data(DATA_DISPLAYCONTROLLER).resetPosition();return element},hide:function apiCloseTip(element,immediate){var displayController;immediate=element?immediate:true;if(element){displayController=$(element).first().data(DATA_DISPLAYCONTROLLER)}else if(session.activeHover){displayController=session.activeHover.data(DATA_DISPLAYCONTROLLER)}if(displayController){displayController.hide(immediate)}return element},toggle:function apiToggle(element,event){if(session.activeHover&&session.activeHover.is(element)){$.powerTip.hide(element,!isMouseEvent(event))}else{$.powerTip.show(element,event)}return element}};$.powerTip.showTip=$.powerTip.show;$.powerTip.closeTip=$.powerTip.hide;function CSSCoordinates(){var me=this;me.top="auto";me.left="auto";me.right="auto";me.bottom="auto";me.set=function(property,value){if($.isNumeric(value)){me[property]=Math.round(value)}}}function DisplayController(element,options,tipController){var hoverTimer=null,myCloseDelay=null;function openTooltip(immediate,forceOpen){cancelTimer();if(!element.data(DATA_HASACTIVEHOVER)){if(!immediate){session.tipOpenImminent=true;hoverTimer=setTimeout(function intentDelay(){hoverTimer=null;checkForIntent()},options.intentPollInterval)}else{if(forceOpen){element.data(DATA_FORCEDOPEN,true)}closeAnyDelayed();tipController.showTip(element)}}else{cancelClose()}}function closeTooltip(disableDelay){if(myCloseDelay){myCloseDelay=session.closeDelayTimeout=clearTimeout(myCloseDelay);session.delayInProgress=false}cancelTimer();session.tipOpenImminent=false;if(element.data(DATA_HASACTIVEHOVER)){element.data(DATA_FORCEDOPEN,false);if(!disableDelay){session.delayInProgress=true;session.closeDelayTimeout=setTimeout(function closeDelay(){session.closeDelayTimeout=null;tipController.hideTip(element);session.delayInProgress=false;myCloseDelay=null},options.closeDelay);myCloseDelay=session.closeDelayTimeout}else{tipController.hideTip(element)}}}function checkForIntent(){var xDifference=Math.abs(session.previousX-session.currentX),yDifference=Math.abs(session.previousY-session.currentY),totalDifference=xDifference+yDifference;if(totalDifference",{id:options.popupId});if($body.length===0){$body=$("body")}$body.append(tipElement);session.tooltips=session.tooltips?session.tooltips.add(tipElement):tipElement}if(options.followMouse){if(!tipElement.data(DATA_HASMOUSEMOVE)){$document.on("mousemove"+EVENT_NAMESPACE,positionTipOnCursor);$window.on("scroll"+EVENT_NAMESPACE,positionTipOnCursor);tipElement.data(DATA_HASMOUSEMOVE,true)}}function beginShowTip(element){element.data(DATA_HASACTIVEHOVER,true);tipElement.queue(function queueTipInit(next){showTip(element);next()})}function showTip(element){var tipContent;if(!element.data(DATA_HASACTIVEHOVER)){return}if(session.isTipOpen){if(!session.isClosing){hideTip(session.activeHover)}tipElement.delay(100).queue(function queueTipAgain(next){showTip(element);next()});return}element.trigger("powerTipPreRender");tipContent=getTooltipContent(element);if(tipContent){tipElement.empty().append(tipContent)}else{return}element.trigger("powerTipRender");session.activeHover=element;session.isTipOpen=true;tipElement.data(DATA_MOUSEONTOTIP,options.mouseOnToPopup);tipElement.addClass(options.popupClass);if(!options.followMouse||element.data(DATA_FORCEDOPEN)){positionTipOnElement(element);session.isFixedTipOpen=true}else{positionTipOnCursor()}if(!element.data(DATA_FORCEDOPEN)&&!options.followMouse){$document.on("click"+EVENT_NAMESPACE,function documentClick(event){var target=event.target;if(target!==element[0]){if(options.mouseOnToPopup){if(target!==tipElement[0]&&!$.contains(tipElement[0],target)){$.powerTip.hide()}}else{$.powerTip.hide()}}})}if(options.mouseOnToPopup&&!options.manual){tipElement.on("mouseenter"+EVENT_NAMESPACE,function tipMouseEnter(){if(session.activeHover){session.activeHover.data(DATA_DISPLAYCONTROLLER).cancel()}});tipElement.on("mouseleave"+EVENT_NAMESPACE,function tipMouseLeave(){if(session.activeHover){session.activeHover.data(DATA_DISPLAYCONTROLLER).hide()}})}tipElement.fadeIn(options.fadeInTime,function fadeInCallback(){if(!session.desyncTimeout){session.desyncTimeout=setInterval(closeDesyncedTip,500)}element.trigger("powerTipOpen")})}function hideTip(element){session.isClosing=true;session.isTipOpen=false;session.desyncTimeout=clearInterval(session.desyncTimeout);element.data(DATA_HASACTIVEHOVER,false);element.data(DATA_FORCEDOPEN,false);$document.off("click"+EVENT_NAMESPACE);tipElement.off(EVENT_NAMESPACE);tipElement.fadeOut(options.fadeOutTime,function fadeOutCallback(){var coords=new CSSCoordinates;session.activeHover=null;session.isClosing=false;session.isFixedTipOpen=false;tipElement.removeClass();coords.set("top",session.currentY+options.offset);coords.set("left",session.currentX+options.offset);tipElement.css(coords);element.trigger("powerTipClose")})}function positionTipOnCursor(){var tipWidth,tipHeight,coords,collisions,collisionCount;if(!session.isFixedTipOpen&&(session.isTipOpen||session.tipOpenImminent&&tipElement.data(DATA_HASMOUSEMOVE))){tipWidth=tipElement.outerWidth();tipHeight=tipElement.outerHeight();coords=new CSSCoordinates;coords.set("top",session.currentY+options.offset);coords.set("left",session.currentX+options.offset);collisions=getViewportCollisions(coords,tipWidth,tipHeight);if(collisions!==Collision.none){collisionCount=countFlags(collisions);if(collisionCount===1){if(collisions===Collision.right){coords.set("left",session.scrollLeft+session.windowWidth-tipWidth)}else if(collisions===Collision.bottom){coords.set("top",session.scrollTop+session.windowHeight-tipHeight)}}else{coords.set("left",session.currentX-tipWidth-options.offset);coords.set("top",session.currentY-tipHeight-options.offset)}}tipElement.css(coords)}}function positionTipOnElement(element){var priorityList,finalPlacement;if(options.smartPlacement||options.followMouse&&element.data(DATA_FORCEDOPEN)){priorityList=$.fn.powerTip.smartPlacementLists[options.placement];$.each(priorityList,function(idx,pos){var collisions=getViewportCollisions(placeTooltip(element,pos),tipElement.outerWidth(),tipElement.outerHeight());finalPlacement=pos;return collisions!==Collision.none})}else{placeTooltip(element,options.placement);finalPlacement=options.placement}tipElement.removeClass("w nw sw e ne se n s w se-alt sw-alt ne-alt nw-alt");tipElement.addClass(finalPlacement)}function placeTooltip(element,placement){var iterationCount=0,tipWidth,tipHeight,coords=new CSSCoordinates;coords.set("top",0);coords.set("left",0);tipElement.css(coords);do{tipWidth=tipElement.outerWidth();tipHeight=tipElement.outerHeight();coords=placementCalculator.compute(element,placement,tipWidth,tipHeight,options.offset);tipElement.css(coords)}while(++iterationCount<=5&&(tipWidth!==tipElement.outerWidth()||tipHeight!==tipElement.outerHeight()));return coords}function closeDesyncedTip(){var isDesynced=false,hasDesyncableCloseEvent=$.grep(["mouseleave","mouseout","blur","focusout"],function(eventType){return $.inArray(eventType,options.closeEvents)!==-1}).length>0;if(session.isTipOpen&&!session.isClosing&&!session.delayInProgress&&hasDesyncableCloseEvent){if(session.activeHover.data(DATA_HASACTIVEHOVER)===false||session.activeHover.is(":disabled")){isDesynced=true}else if(!isMouseOver(session.activeHover)&&!session.activeHover.is(":focus")&&!session.activeHover.data(DATA_FORCEDOPEN)){if(tipElement.data(DATA_MOUSEONTOTIP)){if(!isMouseOver(tipElement)){isDesynced=true}}else{isDesynced=true}}if(isDesynced){hideTip(session.activeHover)}}}this.showTip=beginShowTip;this.hideTip=hideTip;this.resetPosition=positionTipOnElement}function isSvgElement(element){return Boolean(window.SVGElement&&element[0]instanceof SVGElement)}function isMouseEvent(event){return Boolean(event&&$.inArray(event.type,MOUSE_EVENTS)>-1&&typeof event.pageX==="number")}function initTracking(){if(!session.mouseTrackingActive){session.mouseTrackingActive=true;getViewportDimensions();$(getViewportDimensions);$document.on("mousemove"+EVENT_NAMESPACE,trackMouse);$window.on("resize"+EVENT_NAMESPACE,trackResize);$window.on("scroll"+EVENT_NAMESPACE,trackScroll)}}function getViewportDimensions(){session.scrollLeft=$window.scrollLeft();session.scrollTop=$window.scrollTop();session.windowWidth=$window.width();session.windowHeight=$window.height()}function trackResize(){session.windowWidth=$window.width();session.windowHeight=$window.height()}function trackScroll(){var x=$window.scrollLeft(),y=$window.scrollTop();if(x!==session.scrollLeft){session.currentX+=x-session.scrollLeft;session.scrollLeft=x}if(y!==session.scrollTop){session.currentY+=y-session.scrollTop;session.scrollTop=y}}function trackMouse(event){session.currentX=event.pageX;session.currentY=event.pageY}function isMouseOver(element){var elementPosition=element.offset(),elementBox=element[0].getBoundingClientRect(),elementWidth=elementBox.right-elementBox.left,elementHeight=elementBox.bottom-elementBox.top;return session.currentX>=elementPosition.left&&session.currentX<=elementPosition.left+elementWidth&&session.currentY>=elementPosition.top&&session.currentY<=elementPosition.top+elementHeight}function getTooltipContent(element){var tipText=element.data(DATA_POWERTIP),tipObject=element.data(DATA_POWERTIPJQ),tipTarget=element.data(DATA_POWERTIPTARGET),targetElement,content;if(tipText){if($.isFunction(tipText)){tipText=tipText.call(element[0])}content=tipText}else if(tipObject){if($.isFunction(tipObject)){tipObject=tipObject.call(element[0])}if(tipObject.length>0){content=tipObject.clone(true,true)}}else if(tipTarget){targetElement=$("#"+tipTarget);if(targetElement.length>0){content=targetElement.html()}}return content}function getViewportCollisions(coords,elementWidth,elementHeight){var viewportTop=session.scrollTop,viewportLeft=session.scrollLeft,viewportBottom=viewportTop+session.windowHeight,viewportRight=viewportLeft+session.windowWidth,collisions=Collision.none;if(coords.topviewportBottom||Math.abs(coords.bottom-session.windowHeight)>viewportBottom){collisions|=Collision.bottom}if(coords.leftviewportRight){collisions|=Collision.left}if(coords.left+elementWidth>viewportRight||coords.right1)){a.preventDefault();var c=a.originalEvent.changedTouches[0],d=document.createEvent("MouseEvents");d.initMouseEvent(b,!0,!0,window,1,c.screenX,c.screenY,c.clientX,c.clientY,!1,!1,!1,!1,0,null),a.target.dispatchEvent(d)}}if(a.support.touch="ontouchend"in document,a.support.touch){var e,b=a.ui.mouse.prototype,c=b._mouseInit,d=b._mouseDestroy;b._touchStart=function(a){var b=this;!e&&b._mouseCapture(a.originalEvent.changedTouches[0])&&(e=!0,b._touchMoved=!1,f(a,"mouseover"),f(a,"mousemove"),f(a,"mousedown"))},b._touchMove=function(a){e&&(this._touchMoved=!0,f(a,"mousemove"))},b._touchEnd=function(a){e&&(f(a,"mouseup"),f(a,"mouseout"),this._touchMoved||f(a,"click"),e=!1)},b._mouseInit=function(){var b=this;b.element.bind({touchstart:a.proxy(b,"_touchStart"),touchmove:a.proxy(b,"_touchMove"),touchend:a.proxy(b,"_touchEnd")}),c.call(b)},b._mouseDestroy=function(){var b=this;b.element.unbind({touchstart:a.proxy(b,"_touchStart"),touchmove:a.proxy(b,"_touchMove"),touchend:a.proxy(b,"_touchEnd")}),d.call(b)}}}(jQuery);/*! SmartMenus jQuery Plugin - v1.1.0 - September 17, 2017 + * http://www.smartmenus.org/ + * Copyright Vasil Dinkov, Vadikom Web Ltd. http://vadikom.com; Licensed MIT */(function(t){"function"==typeof define&&define.amd?define(["jquery"],t):"object"==typeof module&&"object"==typeof module.exports?module.exports=t(require("jquery")):t(jQuery)})(function($){function initMouseDetection(t){var e=".smartmenus_mouse";if(mouseDetectionEnabled||t)mouseDetectionEnabled&&t&&($(document).off(e),mouseDetectionEnabled=!1);else{var i=!0,s=null,o={mousemove:function(t){var e={x:t.pageX,y:t.pageY,timeStamp:(new Date).getTime()};if(s){var o=Math.abs(s.x-e.x),a=Math.abs(s.y-e.y);if((o>0||a>0)&&2>=o&&2>=a&&300>=e.timeStamp-s.timeStamp&&(mouse=!0,i)){var n=$(t.target).closest("a");n.is("a")&&$.each(menuTrees,function(){return $.contains(this.$root[0],n[0])?(this.itemEnter({currentTarget:n[0]}),!1):void 0}),i=!1}}s=e}};o[touchEvents?"touchstart":"pointerover pointermove pointerout MSPointerOver MSPointerMove MSPointerOut"]=function(t){isTouchEvent(t.originalEvent)&&(mouse=!1)},$(document).on(getEventsNS(o,e)),mouseDetectionEnabled=!0}}function isTouchEvent(t){return!/^(4|mouse)$/.test(t.pointerType)}function getEventsNS(t,e){e||(e="");var i={};for(var s in t)i[s.split(" ").join(e+" ")+e]=t[s];return i}var menuTrees=[],mouse=!1,touchEvents="ontouchstart"in window,mouseDetectionEnabled=!1,requestAnimationFrame=window.requestAnimationFrame||function(t){return setTimeout(t,1e3/60)},cancelAnimationFrame=window.cancelAnimationFrame||function(t){clearTimeout(t)},canAnimate=!!$.fn.animate;return $.SmartMenus=function(t,e){this.$root=$(t),this.opts=e,this.rootId="",this.accessIdPrefix="",this.$subArrow=null,this.activatedItems=[],this.visibleSubMenus=[],this.showTimeout=0,this.hideTimeout=0,this.scrollTimeout=0,this.clickActivated=!1,this.focusActivated=!1,this.zIndexInc=0,this.idInc=0,this.$firstLink=null,this.$firstSub=null,this.disabled=!1,this.$disableOverlay=null,this.$touchScrollingSub=null,this.cssTransforms3d="perspective"in t.style||"webkitPerspective"in t.style,this.wasCollapsible=!1,this.init()},$.extend($.SmartMenus,{hideAll:function(){$.each(menuTrees,function(){this.menuHideAll()})},destroy:function(){for(;menuTrees.length;)menuTrees[0].destroy();initMouseDetection(!0)},prototype:{init:function(t){var e=this;if(!t){menuTrees.push(this),this.rootId=((new Date).getTime()+Math.random()+"").replace(/\D/g,""),this.accessIdPrefix="sm-"+this.rootId+"-",this.$root.hasClass("sm-rtl")&&(this.opts.rightToLeftSubMenus=!0);var i=".smartmenus";this.$root.data("smartmenus",this).attr("data-smartmenus-id",this.rootId).dataSM("level",1).on(getEventsNS({"mouseover focusin":$.proxy(this.rootOver,this),"mouseout focusout":$.proxy(this.rootOut,this),keydown:$.proxy(this.rootKeyDown,this)},i)).on(getEventsNS({mouseenter:$.proxy(this.itemEnter,this),mouseleave:$.proxy(this.itemLeave,this),mousedown:$.proxy(this.itemDown,this),focus:$.proxy(this.itemFocus,this),blur:$.proxy(this.itemBlur,this),click:$.proxy(this.itemClick,this)},i),"a"),i+=this.rootId,this.opts.hideOnClick&&$(document).on(getEventsNS({touchstart:$.proxy(this.docTouchStart,this),touchmove:$.proxy(this.docTouchMove,this),touchend:$.proxy(this.docTouchEnd,this),click:$.proxy(this.docClick,this)},i)),$(window).on(getEventsNS({"resize orientationchange":$.proxy(this.winResize,this)},i)),this.opts.subIndicators&&(this.$subArrow=$("").addClass("sub-arrow"),this.opts.subIndicatorsText&&this.$subArrow.html(this.opts.subIndicatorsText)),initMouseDetection()}if(this.$firstSub=this.$root.find("ul").each(function(){e.menuInit($(this))}).eq(0),this.$firstLink=this.$root.find("a").eq(0),this.opts.markCurrentItem){var s=/(index|default)\.[^#\?\/]*/i,o=/#.*/,a=window.location.href.replace(s,""),n=a.replace(o,"");this.$root.find("a").each(function(){var t=this.href.replace(s,""),i=$(this);(t==a||t==n)&&(i.addClass("current"),e.opts.markCurrentTree&&i.parentsUntil("[data-smartmenus-id]","ul").each(function(){$(this).dataSM("parent-a").addClass("current")}))})}this.wasCollapsible=this.isCollapsible()},destroy:function(t){if(!t){var e=".smartmenus";this.$root.removeData("smartmenus").removeAttr("data-smartmenus-id").removeDataSM("level").off(e),e+=this.rootId,$(document).off(e),$(window).off(e),this.opts.subIndicators&&(this.$subArrow=null)}this.menuHideAll();var i=this;this.$root.find("ul").each(function(){var t=$(this);t.dataSM("scroll-arrows")&&t.dataSM("scroll-arrows").remove(),t.dataSM("shown-before")&&((i.opts.subMenusMinWidth||i.opts.subMenusMaxWidth)&&t.css({width:"",minWidth:"",maxWidth:""}).removeClass("sm-nowrap"),t.dataSM("scroll-arrows")&&t.dataSM("scroll-arrows").remove(),t.css({zIndex:"",top:"",left:"",marginLeft:"",marginTop:"",display:""})),0==(t.attr("id")||"").indexOf(i.accessIdPrefix)&&t.removeAttr("id")}).removeDataSM("in-mega").removeDataSM("shown-before").removeDataSM("scroll-arrows").removeDataSM("parent-a").removeDataSM("level").removeDataSM("beforefirstshowfired").removeAttr("role").removeAttr("aria-hidden").removeAttr("aria-labelledby").removeAttr("aria-expanded"),this.$root.find("a.has-submenu").each(function(){var t=$(this);0==t.attr("id").indexOf(i.accessIdPrefix)&&t.removeAttr("id")}).removeClass("has-submenu").removeDataSM("sub").removeAttr("aria-haspopup").removeAttr("aria-controls").removeAttr("aria-expanded").closest("li").removeDataSM("sub"),this.opts.subIndicators&&this.$root.find("span.sub-arrow").remove(),this.opts.markCurrentItem&&this.$root.find("a.current").removeClass("current"),t||(this.$root=null,this.$firstLink=null,this.$firstSub=null,this.$disableOverlay&&(this.$disableOverlay.remove(),this.$disableOverlay=null),menuTrees.splice($.inArray(this,menuTrees),1))},disable:function(t){if(!this.disabled){if(this.menuHideAll(),!t&&!this.opts.isPopup&&this.$root.is(":visible")){var e=this.$root.offset();this.$disableOverlay=$('
').css({position:"absolute",top:e.top,left:e.left,width:this.$root.outerWidth(),height:this.$root.outerHeight(),zIndex:this.getStartZIndex(!0),opacity:0}).appendTo(document.body)}this.disabled=!0}},docClick:function(t){return this.$touchScrollingSub?(this.$touchScrollingSub=null,void 0):((this.visibleSubMenus.length&&!$.contains(this.$root[0],t.target)||$(t.target).closest("a").length)&&this.menuHideAll(),void 0)},docTouchEnd:function(){if(this.lastTouch){if(!(!this.visibleSubMenus.length||void 0!==this.lastTouch.x2&&this.lastTouch.x1!=this.lastTouch.x2||void 0!==this.lastTouch.y2&&this.lastTouch.y1!=this.lastTouch.y2||this.lastTouch.target&&$.contains(this.$root[0],this.lastTouch.target))){this.hideTimeout&&(clearTimeout(this.hideTimeout),this.hideTimeout=0);var t=this;this.hideTimeout=setTimeout(function(){t.menuHideAll()},350)}this.lastTouch=null}},docTouchMove:function(t){if(this.lastTouch){var e=t.originalEvent.touches[0];this.lastTouch.x2=e.pageX,this.lastTouch.y2=e.pageY}},docTouchStart:function(t){var e=t.originalEvent.touches[0];this.lastTouch={x1:e.pageX,y1:e.pageY,target:e.target}},enable:function(){this.disabled&&(this.$disableOverlay&&(this.$disableOverlay.remove(),this.$disableOverlay=null),this.disabled=!1)},getClosestMenu:function(t){for(var e=$(t).closest("ul");e.dataSM("in-mega");)e=e.parent().closest("ul");return e[0]||null},getHeight:function(t){return this.getOffset(t,!0)},getOffset:function(t,e){var i;"none"==t.css("display")&&(i={position:t[0].style.position,visibility:t[0].style.visibility},t.css({position:"absolute",visibility:"hidden"}).show());var s=t[0].getBoundingClientRect&&t[0].getBoundingClientRect(),o=s&&(e?s.height||s.bottom-s.top:s.width||s.right-s.left);return o||0===o||(o=e?t[0].offsetHeight:t[0].offsetWidth),i&&t.hide().css(i),o},getStartZIndex:function(t){var e=parseInt(this[t?"$root":"$firstSub"].css("z-index"));return!t&&isNaN(e)&&(e=parseInt(this.$root.css("z-index"))),isNaN(e)?1:e},getTouchPoint:function(t){return t.touches&&t.touches[0]||t.changedTouches&&t.changedTouches[0]||t},getViewport:function(t){var e=t?"Height":"Width",i=document.documentElement["client"+e],s=window["inner"+e];return s&&(i=Math.min(i,s)),i},getViewportHeight:function(){return this.getViewport(!0)},getViewportWidth:function(){return this.getViewport()},getWidth:function(t){return this.getOffset(t)},handleEvents:function(){return!this.disabled&&this.isCSSOn()},handleItemEvents:function(t){return this.handleEvents()&&!this.isLinkInMegaMenu(t)},isCollapsible:function(){return"static"==this.$firstSub.css("position")},isCSSOn:function(){return"inline"!=this.$firstLink.css("display")},isFixed:function(){var t="fixed"==this.$root.css("position");return t||this.$root.parentsUntil("body").each(function(){return"fixed"==$(this).css("position")?(t=!0,!1):void 0}),t},isLinkInMegaMenu:function(t){return $(this.getClosestMenu(t[0])).hasClass("mega-menu")},isTouchMode:function(){return!mouse||this.opts.noMouseOver||this.isCollapsible()},itemActivate:function(t,e){var i=t.closest("ul"),s=i.dataSM("level");if(s>1&&(!this.activatedItems[s-2]||this.activatedItems[s-2][0]!=i.dataSM("parent-a")[0])){var o=this;$(i.parentsUntil("[data-smartmenus-id]","ul").get().reverse()).add(i).each(function(){o.itemActivate($(this).dataSM("parent-a"))})}if((!this.isCollapsible()||e)&&this.menuHideSubMenus(this.activatedItems[s-1]&&this.activatedItems[s-1][0]==t[0]?s:s-1),this.activatedItems[s-1]=t,this.$root.triggerHandler("activate.smapi",t[0])!==!1){var a=t.dataSM("sub");a&&(this.isTouchMode()||!this.opts.showOnClick||this.clickActivated)&&this.menuShow(a)}},itemBlur:function(t){var e=$(t.currentTarget);this.handleItemEvents(e)&&this.$root.triggerHandler("blur.smapi",e[0])},itemClick:function(t){var e=$(t.currentTarget);if(this.handleItemEvents(e)){if(this.$touchScrollingSub&&this.$touchScrollingSub[0]==e.closest("ul")[0])return this.$touchScrollingSub=null,t.stopPropagation(),!1;if(this.$root.triggerHandler("click.smapi",e[0])===!1)return!1;var i=$(t.target).is(".sub-arrow"),s=e.dataSM("sub"),o=s?2==s.dataSM("level"):!1,a=this.isCollapsible(),n=/toggle$/.test(this.opts.collapsibleBehavior),r=/link$/.test(this.opts.collapsibleBehavior),h=/^accordion/.test(this.opts.collapsibleBehavior);if(s&&!s.is(":visible")){if((!r||!a||i)&&(this.opts.showOnClick&&o&&(this.clickActivated=!0),this.itemActivate(e,h),s.is(":visible")))return this.focusActivated=!0,!1}else if(a&&(n||i))return this.itemActivate(e,h),this.menuHide(s),n&&(this.focusActivated=!1),!1;return this.opts.showOnClick&&o||e.hasClass("disabled")||this.$root.triggerHandler("select.smapi",e[0])===!1?!1:void 0}},itemDown:function(t){var e=$(t.currentTarget);this.handleItemEvents(e)&&e.dataSM("mousedown",!0)},itemEnter:function(t){var e=$(t.currentTarget);if(this.handleItemEvents(e)){if(!this.isTouchMode()){this.showTimeout&&(clearTimeout(this.showTimeout),this.showTimeout=0);var i=this;this.showTimeout=setTimeout(function(){i.itemActivate(e)},this.opts.showOnClick&&1==e.closest("ul").dataSM("level")?1:this.opts.showTimeout)}this.$root.triggerHandler("mouseenter.smapi",e[0])}},itemFocus:function(t){var e=$(t.currentTarget);this.handleItemEvents(e)&&(!this.focusActivated||this.isTouchMode()&&e.dataSM("mousedown")||this.activatedItems.length&&this.activatedItems[this.activatedItems.length-1][0]==e[0]||this.itemActivate(e,!0),this.$root.triggerHandler("focus.smapi",e[0]))},itemLeave:function(t){var e=$(t.currentTarget);this.handleItemEvents(e)&&(this.isTouchMode()||(e[0].blur(),this.showTimeout&&(clearTimeout(this.showTimeout),this.showTimeout=0)),e.removeDataSM("mousedown"),this.$root.triggerHandler("mouseleave.smapi",e[0]))},menuHide:function(t){if(this.$root.triggerHandler("beforehide.smapi",t[0])!==!1&&(canAnimate&&t.stop(!0,!0),"none"!=t.css("display"))){var e=function(){t.css("z-index","")};this.isCollapsible()?canAnimate&&this.opts.collapsibleHideFunction?this.opts.collapsibleHideFunction.call(this,t,e):t.hide(this.opts.collapsibleHideDuration,e):canAnimate&&this.opts.hideFunction?this.opts.hideFunction.call(this,t,e):t.hide(this.opts.hideDuration,e),t.dataSM("scroll")&&(this.menuScrollStop(t),t.css({"touch-action":"","-ms-touch-action":"","-webkit-transform":"",transform:""}).off(".smartmenus_scroll").removeDataSM("scroll").dataSM("scroll-arrows").hide()),t.dataSM("parent-a").removeClass("highlighted").attr("aria-expanded","false"),t.attr({"aria-expanded":"false","aria-hidden":"true"});var i=t.dataSM("level");this.activatedItems.splice(i-1,1),this.visibleSubMenus.splice($.inArray(t,this.visibleSubMenus),1),this.$root.triggerHandler("hide.smapi",t[0])}},menuHideAll:function(){this.showTimeout&&(clearTimeout(this.showTimeout),this.showTimeout=0);for(var t=this.opts.isPopup?1:0,e=this.visibleSubMenus.length-1;e>=t;e--)this.menuHide(this.visibleSubMenus[e]);this.opts.isPopup&&(canAnimate&&this.$root.stop(!0,!0),this.$root.is(":visible")&&(canAnimate&&this.opts.hideFunction?this.opts.hideFunction.call(this,this.$root):this.$root.hide(this.opts.hideDuration))),this.activatedItems=[],this.visibleSubMenus=[],this.clickActivated=!1,this.focusActivated=!1,this.zIndexInc=0,this.$root.triggerHandler("hideAll.smapi")},menuHideSubMenus:function(t){for(var e=this.activatedItems.length-1;e>=t;e--){var i=this.activatedItems[e].dataSM("sub");i&&this.menuHide(i)}},menuInit:function(t){if(!t.dataSM("in-mega")){t.hasClass("mega-menu")&&t.find("ul").dataSM("in-mega",!0);for(var e=2,i=t[0];(i=i.parentNode.parentNode)!=this.$root[0];)e++;var s=t.prevAll("a").eq(-1);s.length||(s=t.prevAll().find("a").eq(-1)),s.addClass("has-submenu").dataSM("sub",t),t.dataSM("parent-a",s).dataSM("level",e).parent().dataSM("sub",t);var o=s.attr("id")||this.accessIdPrefix+ ++this.idInc,a=t.attr("id")||this.accessIdPrefix+ ++this.idInc;s.attr({id:o,"aria-haspopup":"true","aria-controls":a,"aria-expanded":"false"}),t.attr({id:a,role:"group","aria-hidden":"true","aria-labelledby":o,"aria-expanded":"false"}),this.opts.subIndicators&&s[this.opts.subIndicatorsPos](this.$subArrow.clone())}},menuPosition:function(t){var e,i,s=t.dataSM("parent-a"),o=s.closest("li"),a=o.parent(),n=t.dataSM("level"),r=this.getWidth(t),h=this.getHeight(t),u=s.offset(),l=u.left,c=u.top,d=this.getWidth(s),m=this.getHeight(s),p=$(window),f=p.scrollLeft(),v=p.scrollTop(),b=this.getViewportWidth(),S=this.getViewportHeight(),g=a.parent().is("[data-sm-horizontal-sub]")||2==n&&!a.hasClass("sm-vertical"),M=this.opts.rightToLeftSubMenus&&!o.is("[data-sm-reverse]")||!this.opts.rightToLeftSubMenus&&o.is("[data-sm-reverse]"),w=2==n?this.opts.mainMenuSubOffsetX:this.opts.subMenusSubOffsetX,T=2==n?this.opts.mainMenuSubOffsetY:this.opts.subMenusSubOffsetY;if(g?(e=M?d-r-w:w,i=this.opts.bottomToTopSubMenus?-h-T:m+T):(e=M?w-r:d-w,i=this.opts.bottomToTopSubMenus?m-T-h:T),this.opts.keepInViewport){var y=l+e,I=c+i;if(M&&f>y?e=g?f-y+e:d-w:!M&&y+r>f+b&&(e=g?f+b-r-y+e:w-r),g||(S>h&&I+h>v+S?i+=v+S-h-I:(h>=S||v>I)&&(i+=v-I)),g&&(I+h>v+S+.49||v>I)||!g&&h>S+.49){var x=this;t.dataSM("scroll-arrows")||t.dataSM("scroll-arrows",$([$('')[0],$('')[0]]).on({mouseenter:function(){t.dataSM("scroll").up=$(this).hasClass("scroll-up"),x.menuScroll(t)},mouseleave:function(e){x.menuScrollStop(t),x.menuScrollOut(t,e)},"mousewheel DOMMouseScroll":function(t){t.preventDefault()}}).insertAfter(t));var A=".smartmenus_scroll";if(t.dataSM("scroll",{y:this.cssTransforms3d?0:i-m,step:1,itemH:m,subH:h,arrowDownH:this.getHeight(t.dataSM("scroll-arrows").eq(1))}).on(getEventsNS({mouseover:function(e){x.menuScrollOver(t,e)},mouseout:function(e){x.menuScrollOut(t,e)},"mousewheel DOMMouseScroll":function(e){x.menuScrollMousewheel(t,e)}},A)).dataSM("scroll-arrows").css({top:"auto",left:"0",marginLeft:e+(parseInt(t.css("border-left-width"))||0),width:r-(parseInt(t.css("border-left-width"))||0)-(parseInt(t.css("border-right-width"))||0),zIndex:t.css("z-index")}).eq(g&&this.opts.bottomToTopSubMenus?0:1).show(),this.isFixed()){var C={};C[touchEvents?"touchstart touchmove touchend":"pointerdown pointermove pointerup MSPointerDown MSPointerMove MSPointerUp"]=function(e){x.menuScrollTouch(t,e)},t.css({"touch-action":"none","-ms-touch-action":"none"}).on(getEventsNS(C,A))}}}t.css({top:"auto",left:"0",marginLeft:e,marginTop:i-m})},menuScroll:function(t,e,i){var s,o=t.dataSM("scroll"),a=t.dataSM("scroll-arrows"),n=o.up?o.upEnd:o.downEnd;if(!e&&o.momentum){if(o.momentum*=.92,s=o.momentum,.5>s)return this.menuScrollStop(t),void 0}else s=i||(e||!this.opts.scrollAccelerate?this.opts.scrollStep:Math.floor(o.step));var r=t.dataSM("level");if(this.activatedItems[r-1]&&this.activatedItems[r-1].dataSM("sub")&&this.activatedItems[r-1].dataSM("sub").is(":visible")&&this.menuHideSubMenus(r-1),o.y=o.up&&o.y>=n||!o.up&&n>=o.y?o.y:Math.abs(n-o.y)>s?o.y+(o.up?s:-s):n,t.css(this.cssTransforms3d?{"-webkit-transform":"translate3d(0, "+o.y+"px, 0)",transform:"translate3d(0, "+o.y+"px, 0)"}:{marginTop:o.y}),mouse&&(o.up&&o.y>o.downEnd||!o.up&&o.y0;t.dataSM("scroll-arrows").eq(i?0:1).is(":visible")&&(t.dataSM("scroll").up=i,this.menuScroll(t,!0))}e.preventDefault()},menuScrollOut:function(t,e){mouse&&(/^scroll-(up|down)/.test((e.relatedTarget||"").className)||(t[0]==e.relatedTarget||$.contains(t[0],e.relatedTarget))&&this.getClosestMenu(e.relatedTarget)==t[0]||t.dataSM("scroll-arrows").css("visibility","hidden"))},menuScrollOver:function(t,e){if(mouse&&!/^scroll-(up|down)/.test(e.target.className)&&this.getClosestMenu(e.target)==t[0]){this.menuScrollRefreshData(t);var i=t.dataSM("scroll"),s=$(window).scrollTop()-t.dataSM("parent-a").offset().top-i.itemH;t.dataSM("scroll-arrows").eq(0).css("margin-top",s).end().eq(1).css("margin-top",s+this.getViewportHeight()-i.arrowDownH).end().css("visibility","visible")}},menuScrollRefreshData:function(t){var e=t.dataSM("scroll"),i=$(window).scrollTop()-t.dataSM("parent-a").offset().top-e.itemH;this.cssTransforms3d&&(i=-(parseFloat(t.css("margin-top"))-i)),$.extend(e,{upEnd:i,downEnd:i+this.getViewportHeight()-e.subH})},menuScrollStop:function(t){return this.scrollTimeout?(cancelAnimationFrame(this.scrollTimeout),this.scrollTimeout=0,t.dataSM("scroll").step=1,!0):void 0},menuScrollTouch:function(t,e){if(e=e.originalEvent,isTouchEvent(e)){var i=this.getTouchPoint(e);if(this.getClosestMenu(i.target)==t[0]){var s=t.dataSM("scroll");if(/(start|down)$/i.test(e.type))this.menuScrollStop(t)?(e.preventDefault(),this.$touchScrollingSub=t):this.$touchScrollingSub=null,this.menuScrollRefreshData(t),$.extend(s,{touchStartY:i.pageY,touchStartTime:e.timeStamp});else if(/move$/i.test(e.type)){var o=void 0!==s.touchY?s.touchY:s.touchStartY;if(void 0!==o&&o!=i.pageY){this.$touchScrollingSub=t;var a=i.pageY>o;void 0!==s.up&&s.up!=a&&$.extend(s,{touchStartY:i.pageY,touchStartTime:e.timeStamp}),$.extend(s,{up:a,touchY:i.pageY}),this.menuScroll(t,!0,Math.abs(i.pageY-o))}e.preventDefault()}else void 0!==s.touchY&&((s.momentum=15*Math.pow(Math.abs(i.pageY-s.touchStartY)/(e.timeStamp-s.touchStartTime),2))&&(this.menuScrollStop(t),this.menuScroll(t),e.preventDefault()),delete s.touchY)}}},menuShow:function(t){if((t.dataSM("beforefirstshowfired")||(t.dataSM("beforefirstshowfired",!0),this.$root.triggerHandler("beforefirstshow.smapi",t[0])!==!1))&&this.$root.triggerHandler("beforeshow.smapi",t[0])!==!1&&(t.dataSM("shown-before",!0),canAnimate&&t.stop(!0,!0),!t.is(":visible"))){var e=t.dataSM("parent-a"),i=this.isCollapsible();if((this.opts.keepHighlighted||i)&&e.addClass("highlighted"),i)t.removeClass("sm-nowrap").css({zIndex:"",width:"auto",minWidth:"",maxWidth:"",top:"",left:"",marginLeft:"",marginTop:""});else{if(t.css("z-index",this.zIndexInc=(this.zIndexInc||this.getStartZIndex())+1),(this.opts.subMenusMinWidth||this.opts.subMenusMaxWidth)&&(t.css({width:"auto",minWidth:"",maxWidth:""}).addClass("sm-nowrap"),this.opts.subMenusMinWidth&&t.css("min-width",this.opts.subMenusMinWidth),this.opts.subMenusMaxWidth)){var s=this.getWidth(t);t.css("max-width",this.opts.subMenusMaxWidth),s>this.getWidth(t)&&t.removeClass("sm-nowrap").css("width",this.opts.subMenusMaxWidth)}this.menuPosition(t)}var o=function(){t.css("overflow","")};i?canAnimate&&this.opts.collapsibleShowFunction?this.opts.collapsibleShowFunction.call(this,t,o):t.show(this.opts.collapsibleShowDuration,o):canAnimate&&this.opts.showFunction?this.opts.showFunction.call(this,t,o):t.show(this.opts.showDuration,o),e.attr("aria-expanded","true"),t.attr({"aria-expanded":"true","aria-hidden":"false"}),this.visibleSubMenus.push(t),this.$root.triggerHandler("show.smapi",t[0])}},popupHide:function(t){this.hideTimeout&&(clearTimeout(this.hideTimeout),this.hideTimeout=0);var e=this;this.hideTimeout=setTimeout(function(){e.menuHideAll()},t?1:this.opts.hideTimeout)},popupShow:function(t,e){if(!this.opts.isPopup)return alert('SmartMenus jQuery Error:\n\nIf you want to show this menu via the "popupShow" method, set the isPopup:true option.'),void 0;if(this.hideTimeout&&(clearTimeout(this.hideTimeout),this.hideTimeout=0),this.$root.dataSM("shown-before",!0),canAnimate&&this.$root.stop(!0,!0),!this.$root.is(":visible")){this.$root.css({left:t,top:e});var i=this,s=function(){i.$root.css("overflow","")};canAnimate&&this.opts.showFunction?this.opts.showFunction.call(this,this.$root,s):this.$root.show(this.opts.showDuration,s),this.visibleSubMenus[0]=this.$root}},refresh:function(){this.destroy(!0),this.init(!0)},rootKeyDown:function(t){if(this.handleEvents())switch(t.keyCode){case 27:var e=this.activatedItems[0];if(e){this.menuHideAll(),e[0].focus();var i=e.dataSM("sub");i&&this.menuHide(i)}break;case 32:var s=$(t.target);if(s.is("a")&&this.handleItemEvents(s)){var i=s.dataSM("sub");i&&!i.is(":visible")&&(this.itemClick({currentTarget:t.target}),t.preventDefault())}}},rootOut:function(t){if(this.handleEvents()&&!this.isTouchMode()&&t.target!=this.$root[0]&&(this.hideTimeout&&(clearTimeout(this.hideTimeout),this.hideTimeout=0),!this.opts.showOnClick||!this.opts.hideOnClick)){var e=this;this.hideTimeout=setTimeout(function(){e.menuHideAll()},this.opts.hideTimeout)}},rootOver:function(t){this.handleEvents()&&!this.isTouchMode()&&t.target!=this.$root[0]&&this.hideTimeout&&(clearTimeout(this.hideTimeout),this.hideTimeout=0)},winResize:function(t){if(this.handleEvents()){if(!("onorientationchange"in window)||"orientationchange"==t.type){var e=this.isCollapsible();this.wasCollapsible&&e||(this.activatedItems.length&&this.activatedItems[this.activatedItems.length-1][0].blur(),this.menuHideAll()),this.wasCollapsible=e}}else if(this.$disableOverlay){var i=this.$root.offset();this.$disableOverlay.css({top:i.top,left:i.left,width:this.$root.outerWidth(),height:this.$root.outerHeight()})}}}}),$.fn.dataSM=function(t,e){return e?this.data(t+"_smartmenus",e):this.data(t+"_smartmenus")},$.fn.removeDataSM=function(t){return this.removeData(t+"_smartmenus")},$.fn.smartmenus=function(options){if("string"==typeof options){var args=arguments,method=options;return Array.prototype.shift.call(args),this.each(function(){var t=$(this).data("smartmenus");t&&t[method]&&t[method].apply(t,args)})}return this.each(function(){var dataOpts=$(this).data("sm-options")||null;if(dataOpts)try{dataOpts=eval("("+dataOpts+")")}catch(e){dataOpts=null,alert('ERROR\n\nSmartMenus jQuery init:\nInvalid "data-sm-options" attribute value syntax.')}new $.SmartMenus(this,$.extend({},$.fn.smartmenus.defaults,options,dataOpts))})},$.fn.smartmenus.defaults={isPopup:!1,mainMenuSubOffsetX:0,mainMenuSubOffsetY:0,subMenusSubOffsetX:0,subMenusSubOffsetY:0,subMenusMinWidth:"10em",subMenusMaxWidth:"20em",subIndicators:!0,subIndicatorsPos:"append",subIndicatorsText:"",scrollStep:30,scrollAccelerate:!0,showTimeout:250,hideTimeout:500,showDuration:0,showFunction:null,hideDuration:0,hideFunction:function(t,e){t.fadeOut(200,e)},collapsibleShowDuration:0,collapsibleShowFunction:function(t,e){t.slideDown(200,e)},collapsibleHideDuration:0,collapsibleHideFunction:function(t,e){t.slideUp(200,e)},showOnClick:!1,hideOnClick:!0,noMouseOver:!1,keepInViewport:!0,keepHighlighted:!0,markCurrentItem:!1,markCurrentTree:!0,rightToLeftSubMenus:!1,bottomToTopSubMenus:!1,collapsibleBehavior:"default"},$}); \ No newline at end of file diff --git a/keyboard_8hpp_source.html b/keyboard_8hpp_source.html new file mode 100644 index 0000000000..ab97422707 --- /dev/null +++ b/keyboard_8hpp_source.html @@ -0,0 +1,126 @@ + + + + + + + +Topaz: src/tz/wsi/keyboard.hpp Source File + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.1.0.1 +
+
C++20 Graphics Engine
+
+
+ + + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+
keyboard.hpp
+
+
+
1#ifndef TZ_WSI_KEYBOARD_HPP
+
2#define TZ_WSI_KEYBOARD_HPP
+
3#include "tz/wsi/api/keyboard.hpp"
+
4#include <string>
+
5
+
6namespace tz::wsi
+
7{
+
12 std::string get_key_name(tz::wsi::key key);
+
13
+
20 std::string get_chars_typed(tz::wsi::key key, const keyboard_state& state);
+
28 bool is_key_down(const keyboard_state& kb, tz::wsi::key key);
+
29}
+
30
+
31#endif // TZ_WSI_KEYBOARD_HPP
+
bool is_key_down(const keyboard_state &kb, tz::wsi::key key)
Query as to whether a specific key is currently pressed for a keyboard state.
Definition keyboard.cpp:32
+
std::string get_chars_typed(tz::wsi::key key, const keyboard_state &state)
Retrieve a string representing the characters typed, after modifiers.
Definition keyboard.cpp:20
+
std::string get_key_name(tz::wsi::key key)
Retrieve a human-readable name for a key.
Definition keyboard.cpp:8
+
+ + + + diff --git a/keyboard_8inl_source.html b/keyboard_8inl_source.html new file mode 100644 index 0000000000..cbce586dce --- /dev/null +++ b/keyboard_8inl_source.html @@ -0,0 +1,373 @@ + + + + + + + +Topaz: src/tz/wsi/impl/windows/keyboard.inl Source File + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.1.0.1 +
+
C++20 Graphics Engine
+
+
+ + + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+
keyboard.inl
+
+
+
1#include "tz/wsi/impl/windows/detail/winapi.hpp"
+
2
+
3namespace tz::wsi::impl
+
4{
+
5 constexpr tz::wsi::key win_to_tge_key(int virtual_key_code)
+
6 {
+
7 tz::wsi::key k = tz::wsi::key::unknown;
+
8 switch(virtual_key_code)
+
9 {
+
10 case VK_ESCAPE:
+
11 k = tz::wsi::key::esc;
+
12 break;
+
13 case VK_F1:
+
14 k = tz::wsi::key::f1;
+
15 break;
+
16 case VK_F2:
+
17 k = tz::wsi::key::f2;
+
18 break;
+
19 case VK_F3:
+
20 k = tz::wsi::key::f3;
+
21 break;
+
22 case VK_F4:
+
23 k = tz::wsi::key::f4;
+
24 break;
+
25 case VK_F5:
+
26 k = tz::wsi::key::f5;
+
27 break;
+
28 case VK_F6:
+
29 k = tz::wsi::key::f6;
+
30 break;
+
31 case VK_F7:
+
32 k = tz::wsi::key::f7;
+
33 break;
+
34 case VK_F8:
+
35 k = tz::wsi::key::f8;
+
36 break;
+
37 case VK_F9:
+
38 k = tz::wsi::key::f9;
+
39 break;
+
40 case VK_F10:
+
41 k = tz::wsi::key::f10;
+
42 break;
+
43 case VK_F11:
+
44 k = tz::wsi::key::f11;
+
45 break;
+
46 case VK_F12:
+
47 k = tz::wsi::key::f12;
+
48 break;
+
49 case VK_DELETE:
+
50 k = tz::wsi::key::del;
+
51 break;
+
52 case VK_PRIOR:
+
53 k = tz::wsi::key::page_up;
+
54 break;
+
55 case VK_NEXT:
+
56 k = tz::wsi::key::page_down;
+
57 break;
+
58 case VK_SNAPSHOT:
+
59 k = tz::wsi::key::print_screen;
+
60 break;
+
61 case VK_SCROLL:
+
62 k = tz::wsi::key::scroll_lock;
+
63 break;
+
64 case VK_PAUSE:
+
65 k = tz::wsi::key::pause;
+
66 break;
+
67 case VK_INSERT:
+
68 k = tz::wsi::key::insert;
+
69 break;
+
70 case 0x31:
+
71 k = tz::wsi::key::one;
+
72 break;
+
73 case 0x32:
+
74 k = tz::wsi::key::two;
+
75 break;
+
76 case 0x33:
+
77 k = tz::wsi::key::three;
+
78 break;
+
79 case 0x34:
+
80 k = tz::wsi::key::four;
+
81 break;
+
82 case 0x35:
+
83 k = tz::wsi::key::five;
+
84 break;
+
85 case 0x36:
+
86 k = tz::wsi::key::six;
+
87 break;
+
88 case 0x37:
+
89 k = tz::wsi::key::seven;
+
90 break;
+
91 case 0x38:
+
92 k = tz::wsi::key::eight;
+
93 break;
+
94 case 0x39:
+
95 k = tz::wsi::key::nine;
+
96 break;
+
97 case 0x30:
+
98 k = tz::wsi::key::zero;
+
99 break;
+
100 case VK_OEM_MINUS:
+
101 k = tz::wsi::key::minus;
+
102 break;
+
103 case VK_OEM_PLUS:
+
104 k = tz::wsi::key::equals; // not a typo...
+
105 break;
+
106 case VK_BACK:
+
107 k = tz::wsi::key::backspace;
+
108 break;
+
109 case VK_TAB:
+
110 k = tz::wsi::key::tab;
+
111 break;
+
112 case 0x51:
+
113 k = tz::wsi::key::q;
+
114 break;
+
115 case 0x57:
+
116 k = tz::wsi::key::w;
+
117 break;
+
118 case 0x45:
+
119 k = tz::wsi::key::e;
+
120 break;
+
121 case 0x52:
+
122 k = tz::wsi::key::r;
+
123 break;
+
124 case 0x54:
+
125 k = tz::wsi::key::t;
+
126 break;
+
127 case 0x59:
+
128 k = tz::wsi::key::y;
+
129 break;
+
130 case 0x55:
+
131 k = tz::wsi::key::u;
+
132 break;
+
133 case 0x49:
+
134 k = tz::wsi::key::i;
+
135 break;
+
136 case 0x4F:
+
137 k = tz::wsi::key::o;
+
138 break;
+
139 case 0x50:
+
140 k = tz::wsi::key::p;
+
141 break;
+
142 case VK_OEM_4:
+
143 k = tz::wsi::key::left_bracket;
+
144 break;
+
145 case VK_OEM_6:
+
146 k = tz::wsi::key::right_bracket;
+
147 break;
+
148 case VK_RETURN:
+
149 k = tz::wsi::key::enter;
+
150 break;
+
151 case VK_CAPITAL:
+
152 k = tz::wsi::key::caps_lock;
+
153 break;
+
154 case 0x41:
+
155 k = tz::wsi::key::a;
+
156 break;
+
157 case 0x53:
+
158 k = tz::wsi::key::s;
+
159 break;
+
160 case 0x44:
+
161 k = tz::wsi::key::d;
+
162 break;
+
163 case 0x46:
+
164 k = tz::wsi::key::f;
+
165 break;
+
166 case 0x47:
+
167 k = tz::wsi::key::g;
+
168 break;
+
169 case 0x48:
+
170 k = tz::wsi::key::h;
+
171 break;
+
172 case 0x4A:
+
173 k = tz::wsi::key::j;
+
174 break;
+
175 case 0x4B:
+
176 k = tz::wsi::key::k;
+
177 break;
+
178 case 0x4C:
+
179 k = tz::wsi::key::l;
+
180 break;
+
181 case VK_OEM_1:
+
182 k = tz::wsi::key::semi_colon;
+
183 break;
+
184 case VK_OEM_3:
+
185 k = tz::wsi::key::apostrophe;
+
186 break;
+
187 case VK_OEM_7:
+
188 k = tz::wsi::key::hash;
+
189 break;
+
190 case VK_SHIFT:
+
191 k = tz::wsi::key::left_shift;
+
192 break;
+
193 case VK_OEM_5:
+
194 k = tz::wsi::key::backslash;
+
195 break;
+
196 case 0x5A:
+
197 k = tz::wsi::key::z;
+
198 break;
+
199 case 0x58:
+
200 k = tz::wsi::key::x;
+
201 break;
+
202 case 0x43:
+
203 k = tz::wsi::key::c;
+
204 break;
+
205 case 0x56:
+
206 k = tz::wsi::key::v;
+
207 break;
+
208 case 0x42:
+
209 k = tz::wsi::key::b;
+
210 break;
+
211 case 0x4E:
+
212 k = tz::wsi::key::n;
+
213 break;
+
214 case 0x4D:
+
215 k = tz::wsi::key::m;
+
216 break;
+
217 case VK_OEM_COMMA:
+
218 k = tz::wsi::key::comma;
+
219 break;
+
220 case VK_OEM_PERIOD:
+
221 k = tz::wsi::key::period;
+
222 break;
+
223 case VK_OEM_2:
+
224 k = tz::wsi::key::forward_slash;
+
225 break;
+
226 case VK_RSHIFT:
+
227 k = tz::wsi::key::right_shift;
+
228 break;
+
229 case VK_CONTROL:
+
230 k = tz::wsi::key::left_ctrl;
+
231 break;
+
232 case VK_LWIN:
+
233 k = tz::wsi::key::win_key;
+
234 break;
+
235 case VK_MENU:
+
236 k = tz::wsi::key::alt;
+
237 break;
+
238 case VK_SPACE:
+
239 k = tz::wsi::key::space;
+
240 break;
+
241 case VK_RMENU:
+
242 k = tz::wsi::key::alt_gr;
+
243 break;
+
244 case VK_RCONTROL:
+
245 k = tz::wsi::key::right_ctrl;
+
246 break;
+
247 }
+
248 return k;
+
249 }
+
250
+
251 constexpr int tge_to_win_key(tz::wsi::key key)
+
252 {
+
253 // We have a conversion the other way around, so let's cheat. We're constexpr so we're allowed to be mega slow.
+
254 for(int i = 0x01; i < 0xFF; i++)
+
255 {
+
256 if(win_to_tge_key(i) == key)
+
257 {
+
258 return i;
+
259 }
+
260 }
+
261 return 0x07; // there are a couple of virtual keycodes which are undefined. 0x07 is one of them.
+
262 }
+
263}
+
key
Contains all possible keyboard inputs that Topaz supports.
Definition keyboard.hpp:13
+
+ + + + diff --git a/linear_8hpp_source.html b/linear_8hpp_source.html new file mode 100644 index 0000000000..26ff272ce7 --- /dev/null +++ b/linear_8hpp_source.html @@ -0,0 +1,143 @@ + + + + + + + +Topaz: src/tz/core/memory/allocators/linear.hpp Source File + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.1.0.1 +
+
C++20 Graphics Engine
+
+
+ + + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+
linear.hpp
+
+
+
1#ifndef TOPAZ_CORE_ALLOCATORS_LINEAR_HPP
+
2#define TOPAZ_CORE_ALLOCATORS_LINEAR_HPP
+
3#include "tz/core/memory/memblk.hpp"
+
4#include "tz/core/types.hpp"
+
5#include <span>
+
6#include <cstddef>
+
7
+
8namespace tz
+
9{
+
+ +
17 {
+
18 public:
+
19 linear_allocator(std::span<std::byte> arena);
+
20 linear_allocator(tz::memblk arena = tz::nullblk);
+
21
+
22 tz::memblk allocate(std::size_t count);
+
23 void deallocate(tz::memblk blk);
+
24 bool owns(tz::memblk blk) const;
+
25 private:
+
26 std::byte* head();
+
27
+
28 std::span<std::byte> arena;
+
29 std::size_t cursor = 0;
+
30 };
+
+
31
+ +
33}
+
34
+
35#endif // TOPAZ_CORE_ALLOCATORS_LINEAR_HPP
+
An allocator which operates on a pre-allocated buffer of variable size.
Definition linear.hpp:17
+
Definition types.hpp:73
+
A non-owning, contiguous block of memory.
Definition memblk.hpp:12
+
+ + + + diff --git a/logical__device_8hpp_source.html b/logical__device_8hpp_source.html new file mode 100644 index 0000000000..0674e3790c --- /dev/null +++ b/logical__device_8hpp_source.html @@ -0,0 +1,243 @@ + + + + + + + +Topaz: src/tz/gl/impl/vulkan/detail/logical_device.hpp Source File + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.1.0.1 +
+
C++20 Graphics Engine
+
+
+ + + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+
logical_device.hpp
+
+
+
1#ifndef TOPAZ_GL_IMPL_BACKEND_VK2_LOGICAL_DEVICE_HPP
+
2#define TOPAZ_GL_IMPL_BACKEND_VK2_LOGICAL_DEVICE_HPP
+
3#if TZ_VULKAN
+
4#include "tz/gl/impl/vulkan/detail/hardware/physical_device.hpp"
+
5#include "tz/gl/impl/vulkan/detail/hardware/queue.hpp"
+
6
+
7namespace tz::gl::vk2
+
8{
+
13 enum class QueueFamilyType
+
14 {
+
16 graphics,
+
18 compute,
+
20 transfer
+
21 };
+
22
+
26 using QueueFamilyTypeField = tz::enum_field<QueueFamilyType>;
+
27
+
+ +
29 {
+
30 std::uint32_t family_size;
+
31 bool present_support;
+
32 QueueFamilyTypeField types;
+
33 };
+
+
34
+
+ +
40 {
+
42 PhysicalDevice physical_device = PhysicalDevice::null();
+
47 DeviceExtensionList extensions = {};
+
52 DeviceFeatureField features = {};
+
53 };
+
+
54
+
+ +
56 {
+
58 QueueFamilyTypeField field;
+ +
61 };
+
+
62
+
+ +
64 {
+
65 public:
+
66 QueueStorage() = default;
+
67 void init(std::span<const QueueFamilyInfo> queue_families, const LogicalDevice& device);
+
68 void notify_device_moved(const LogicalDevice& new_device);
+
69 const hardware::Queue* request_queue(QueueRequest request) const;
+
70 hardware::Queue* request_queue(QueueRequest request);
+
71 private:
+
72 struct QueueData
+
73 {
+
74 QueueData(hardware::QueueInfo queue_info, QueueFamilyInfo family_info);
+
75 QueueData(const QueueData& copy) = delete;
+
76 QueueData(QueueData&& move);
+
77 ~QueueData() = default;
+
78 QueueData& operator=(const QueueData& rhs) = delete;
+
79 QueueData& operator=(QueueData&& rhs);
+
80
+
81 hardware::Queue queue;
+
82 QueueFamilyInfo family;
+
83
+
84 bool operator==(const QueueData& rhs);
+
85 };
+
86 using List = tz::basic_list<QueueData>;
+
87 tz::basic_list<List> hardware_queue_families;
+
88 };
+
+
89
+
+ +
95 {
+
96 public:
+
101 LogicalDevice(LogicalDeviceInfo device_info);
+
102 LogicalDevice(const LogicalDevice& copy) = delete;
+ + +
105 LogicalDevice& operator=(const LogicalDevice& rhs) = delete;
+
106 LogicalDevice& operator=(LogicalDevice&& rhs);
+
111 const PhysicalDevice& get_hardware() const;
+
115 const DeviceExtensionList& get_extensions() const;
+
119 const DeviceFeatureField& get_features() const;
+
123 void wait_until_idle() const;
+
124
+
125 const hardware::Queue* get_hardware_queue(QueueRequest request) const;
+
126 hardware::Queue* get_hardware_queue(QueueRequest request);
+
127
+
128 using NativeType = VkDevice;
+
129 NativeType native() const;
+
130 VmaAllocator vma_native() const;
+
135 static LogicalDevice null();
+
140 bool is_null() const;
+
141 bool operator==(const LogicalDevice& rhs) const;
+
142 private:
+ +
144
+
145 VkDevice dev;
+
146 PhysicalDevice physical_device;
+
147 DeviceExtensionList enabled_extensions;
+
148 DeviceFeatureField enabled_features;
+
149 std::vector<QueueFamilyInfo> queue_families;
+
150 QueueStorage queue_storage;
+
151 VmaAllocator vma_allocator;
+
152 };
+
+
153}
+
154
+
155#endif // TZ_VULKAN
+
156#endif // TOPAZ_GL_IMPL_BACKEND_VK2_LOGICAL_DEVICE_HPP
+
Custom list, feature subset of std::vector.
Definition basic_list.hpp:21
+
Container for enum values, useful for vintage bitfield types.
Definition enum_field.hpp:16
+
Implements tz::gl::device_type.
Definition device.hpp:69
+
Logical interface to an existing PhysicalDevice.
Definition logical_device.hpp:95
+
static LogicalDevice null()
Create a LogicalDevice which doesn't do anything.
Definition logical_device.cpp:361
+
void wait_until_idle() const
Block the current thread until all queues associated with this device have become idle.
Definition logical_device.cpp:336
+
bool is_null() const
Query as to whether the LogicalDevice is null.
Definition logical_device.cpp:366
+
const DeviceFeatureField & get_features() const
Retrieve a list of all enabled features.
Definition logical_device.cpp:331
+
const DeviceExtensionList & get_extensions() const
Retrieve a list of all enabled extensions.
Definition logical_device.cpp:326
+
const PhysicalDevice & get_hardware() const
Retrieve the PhysicalDevice that this LogicalDevice derives from.
Definition logical_device.cpp:321
+
Represents something resembling a graphics card that can perform general graphical operations.
Definition physical_device.hpp:84
+
Definition logical_device.hpp:64
+
Represents a single hardware Queue.
Definition queue.hpp:70
+
Specifies parameters for a newly created LogicalDevice.
Definition logical_device.hpp:40
+
DeviceFeatureField features
features is a list of DeviceFeatures to be enabled.
Definition logical_device.hpp:52
+
DeviceExtensionList extensions
extensions is a list of DeviceExtensions to be enabled.
Definition logical_device.hpp:47
+
PhysicalDevice physical_device
physical_device is the PhysicalDevice that the LogicalDevice shall be based off.
Definition logical_device.hpp:42
+
Definition logical_device.hpp:29
+
Definition logical_device.hpp:56
+
bool present_support
If true, the returned Queue be able to present images.
Definition logical_device.hpp:60
+
QueueFamilyTypeField field
Field for all functionality that the Queue should be able to perform.
Definition logical_device.hpp:58
+
Definition queue.hpp:59
+
+ + + + diff --git a/lua_8hpp_source.html b/lua_8hpp_source.html new file mode 100644 index 0000000000..a8e178d3a7 --- /dev/null +++ b/lua_8hpp_source.html @@ -0,0 +1,113 @@ + + + + + + + +Topaz: src/tz/lua/lua.hpp Source File + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.1.0.1 +
+
C++20 Graphics Engine
+
+
+ + + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+
lua.hpp
+
+
+
1#ifndef TOPAZ_LUA_LUA_HPP
+
2#define TOPAZ_LUA_LUA_HPP
+
3
+
37#endif // TOPAZ_LUA_LUA_HPP
+
+ + + + diff --git a/macros_8hpp_source.html b/macros_8hpp_source.html new file mode 100644 index 0000000000..dbf8c80b1d --- /dev/null +++ b/macros_8hpp_source.html @@ -0,0 +1,110 @@ + + + + + + + +Topaz: src/tz/core/macros.hpp Source File + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.1.0.1 +
+
C++20 Graphics Engine
+
+
+ + + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+
macros.hpp
+
+
+
1#include "textc/imported_text.hpp"
+
+ + + + diff --git a/malloc_8hpp_source.html b/malloc_8hpp_source.html new file mode 100644 index 0000000000..c7cb5b4fcb --- /dev/null +++ b/malloc_8hpp_source.html @@ -0,0 +1,134 @@ + + + + + + + +Topaz: src/tz/core/memory/allocators/malloc.hpp Source File + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.1.0.1 +
+
C++20 Graphics Engine
+
+
+ + + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+
malloc.hpp
+
+
+
1#ifndef TOPAZ_CORE_ALLOCATORS_MALLOC_HPP
+
2#define TOPAZ_CORE_ALLOCATORS_MALLOC_HPP
+
3#include "tz/core/memory/memblk.hpp"
+
4#include "tz/core/types.hpp"
+
5
+
6namespace tz
+
7{
+
+ +
15 {
+
16 public:
+
17 constexpr mallocator() = default;
+
18 tz::memblk allocate(std::size_t count) const;
+
19 void deallocate(tz::memblk blk) const;
+
20 bool owns(tz::memblk blk) const;
+
21 };
+
+
22
+
23 static_assert(tz::allocator<mallocator>);
+
24}
+
25
+
26#endif // TOPAZ_CORE_ALLOCATORS_MALLOC_HPP
+
Implements tz:allocator.
Definition malloc.hpp:15
+
Definition types.hpp:73
+
A non-owning, contiguous block of memory.
Definition memblk.hpp:12
+
+ + + + diff --git a/matrix_8hpp_source.html b/matrix_8hpp_source.html new file mode 100644 index 0000000000..9f5069f49f --- /dev/null +++ b/matrix_8hpp_source.html @@ -0,0 +1,204 @@ + + + + + + + +Topaz: src/tz/core/matrix.hpp Source File + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.1.0.1 +
+
C++20 Graphics Engine
+
+
+ + + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+
matrix.hpp
+
+
+
1#ifndef TOPAZ_CORE_MATRIX_HPP
+
2#define TOPAZ_CORE_MATRIX_HPP
+
3#include "tz/core/data/vector.hpp"
+
4#include "tz/core/types.hpp"
+
5#include <array>
+
6
+
7namespace tz
+
8{
+
14 template<tz::number T, std::size_t R, std::size_t C>
+
+
15 class matrix
+
16 {
+
17 public:
+
22 matrix() = default;
+
27 matrix(std::array<std::array<T, R>, C> data);
+
+
34 static constexpr matrix<T, R, C> identity()
+
35 {
+
36 matrix<T, R, C> mat{{}};
+
37 for(std::size_t i = 0; i < R; i++)
+
38 {
+
39 for(std::size_t j = 0; j < C; j++)
+
40 {
+
41 if(i == j)
+
42 mat(i, j) = T{1};
+
43 else
+
44 mat(i, j) = T{0};
+
45 }
+
46 }
+
47 return mat;
+
48 }
+
+
50 using Row = std::array<T, R>;
+
52 using Column = std::array<T, C>;
+
59 const Row& operator[](std::size_t row_idx) const;
+
66 Row& operator[](std::size_t row_idx);
+
74 const T& operator()(std::size_t row, std::size_t column) const;
+
82 T& operator()(std::size_t row, std::size_t column);
+
88 matrix<T, R, C>& operator+=(T scalar);
+ +
100 matrix<T, R, C> operator+(T scalar) const;
+ +
112 matrix<T, R, C>& operator-=(T scalar);
+ +
124 matrix<T, R, C> operator-(T scalar) const;
+ +
136 matrix<T, R, C>& operator*=(T scalar);
+ +
148 matrix<T, R, C> operator*(T scalar) const;
+ + +
167 bool operator==(T scalar) const;
+
173 bool operator==(const matrix<T, R, C>& matrix) const;
+
180 matrix<T, R, C> inverse() const;
+
181 //template<std::size_t X = R, std::size_t Y = C, typename std::enable_if_t<std::conditional_t<X == Y>>>
+ +
188 #if TZ_DEBUG
+
193 void debug_print() const;
+
194 #endif
+
195 void dbgui();
+
196 private:
+
197 const T& internal_get(std::size_t row, std::size_t column) const;
+
198 T& internal_get(std::size_t row, std::size_t column);
+
199 std::array<Row, C> mat;
+
200 };
+
+
201
+ + + +
213
+
214 template<tz::number T = float>
+
215 T determinant(const matrix<T, 4, 4>& mat);
+
216
+
220}
+
221
+
222#include "tz/core/matrix.inl"
+
223#endif // TOPAZ_CORE_MATRIX_HPP
+
Represents a row-major matrix with R rows and C columns.
Definition matrix.hpp:16
+
matrix()=default
Default-intialised matrices have indeterminate values.
+
bool operator==(T scalar) const
Equate the given scalar with each value of the matrix.
Definition matrix.inl:190
+
matrix< T, R, C > transpose() const
Create a copy of the current matrix, and transpose the copy.
Definition matrix.inl:368
+
const Row & operator[](std::size_t row_idx) const
Retrieve the i'th row of the matrix.
Definition matrix.inl:14
+
const T & operator()(std::size_t row, std::size_t column) const
Retrieve the element at the given row and column of the matrix.
Definition matrix.inl:28
+
std::array< T, R > Row
Type alias for an array large enough to hold a single column of the matrix.
Definition matrix.hpp:50
+
matrix< T, R, C > operator-(T scalar) const
Subtract the scalar value from each element of the current matrix.
Definition matrix.inl:112
+
matrix< T, R, C > operator*(T scalar) const
Multiply the scalar value with each element of the current matrix.
Definition matrix.inl:162
+
matrix< T, R, C > inverse() const
Retrieves a new matrix such that the resultant matrix could be multiplied by the original matrix to r...
Definition matrix.inl:218
+
matrix< T, R, C > & operator-=(T scalar)
Subtract the scalar value from each element of the current matrix.
Definition matrix.inl:86
+
std::array< T, C > Column
Type alias for an array large enough to hold a single row of the matrix.
Definition matrix.hpp:52
+
matrix< T, R, C > operator+(T scalar) const
Add the scalar value to each element of the current matrix.
Definition matrix.inl:70
+
matrix< T, R, C > & operator+=(T scalar)
Add the scalar value to each element of the current matrix.
Definition matrix.inl:44
+
static constexpr matrix< T, R, C > identity()
Retrieve the identity matrix.
Definition matrix.hpp:34
+
matrix< T, R, C > & operator*=(T scalar)
Multiply the scalar value with each element of the current matrix.
Definition matrix.inl:128
+
Definition vector.hpp:18
+
+ + + + diff --git a/matrix_8inl_source.html b/matrix_8inl_source.html new file mode 100644 index 0000000000..7cbaf0f1e0 --- /dev/null +++ b/matrix_8inl_source.html @@ -0,0 +1,654 @@ + + + + + + + +Topaz: src/tz/core/matrix.inl Source File + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.1.0.1 +
+
C++20 Graphics Engine
+
+
+ + + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+
matrix.inl
+
+
+
1#include "tz/core/debug.hpp"
+
2#include "tz/core/profile.hpp"
+
3#include "tz/dbgui/dbgui.hpp"
+
4#if TOPAZ_DEBUG
+
5#include <cstdio>
+
6#endif
+
7
+
8namespace tz
+
9{
+
10 template<tz::number T, std::size_t R, std::size_t C>
+
11 matrix<T, R, C>::matrix(std::array<std::array<T, R>, C> data): mat(data){}
+
12
+
13 template<tz::number T, std::size_t R, std::size_t C>
+
+
14 const typename matrix<T, R, C>::Row& matrix<T, R, C>::operator[](std::size_t row_idx) const
+
15 {
+
16 tz::assert(row_idx < R, "tz::matrix<T, %zu, %zu>::operator[%zu]: Index out of range!", R, C, row_idx);
+
17 return this->mat[row_idx];
+
18 }
+
+
19
+
20 template<tz::number T, std::size_t R, std::size_t C>
+
+ +
22 {
+
23 tz::assert(row_idx < R, "tz::matrix<T, %zu, %zu>::operator[%zu]: Index out of range!", R, C, row_idx);
+
24 return this->mat[row_idx];
+
25 }
+
+
26
+
+
27 template<tz::number T, std::size_t R, std::size_t C>
+
+
28 const T& matrix<T, R, C>::operator()(std::size_t row, std::size_t column) const
+
29 {
+
30 tz::assert(row < R, "tz::matrix<T, %zu, %zu>::operator(%zu, %zu): Row index out of range!", R, C, row, column);
+
31 tz::assert(column < R, "tz::matrix<T, %zu, %zu>::operator(%zu, %zu): Column index out of range!", R, C, row, column);
+
32 return (*this)[column][row];
+
33 }
+
+
34
+
35 template<tz::number T, std::size_t R, std::size_t C>
+
+
36 T& matrix<T, R, C>::operator()(std::size_t row, std::size_t column)
+
37 {
+
38 tz::assert(row < R, "tz::matrix<T, %zu, %zu>::operator(%zu, %zu): Row index out of range!", R, C, row, column);
+
39 tz::assert(column < R, "tz::matrix<T, %zu, %zu>::operator(%zu, %zu): Column index out of range!", R, C, row, column);
+
40 return (*this)[column][row];
+
41 }
+
+
42
+
43 template<tz::number T, std::size_t R, std::size_t C>
+
+ +
45 {
+
46 for(std::size_t i = 0; i < R; i++)
+
47 {
+
48 for(std::size_t j = 0; j < C; j++)
+
49 {
+
50 (*this)(i, j) += scalar;
+
51 }
+
52 }
+
53 return *this;
+
54 }
+
+
55
+
56 template<tz::number T, std::size_t R, std::size_t C>
+
+ +
58 {
+
+
59 for(std::size_t i = 0; i < R; i++)
+
60 {
+
61 for(std::size_t j = 0; j < C; j++)
+
62 {
+
63 (*this)(i, j) += matrix(i, j);
+
64 }
+
65 }
+
+
66 return *this;
+
67 }
+
68
+
69 template<tz::number T, std::size_t R, std::size_t C>
+
+ +
71 {
+
72 matrix<T, R, C> copy = *this;
+
73 copy += scalar;
+
+
74 return std::move(copy);
+
75 }
+
76
+
77 template<tz::number T, std::size_t R, std::size_t C>
+
+ +
79 {
+
80 matrix<T, R, C> copy = *this;
+
81 copy += mat;
+
+
82 return std::move(copy);
+
83 }
+
84
+
85 template<tz::number T, std::size_t R, std::size_t C>
+
+ +
87 {
+
+
88 for(std::size_t i = 0; i < R; i++)
+
89 {
+
90 for(std::size_t j = 0; j < C; j++)
+
91 {
+
92 (*this)(i, j) -= scalar;
+
93 }
+
+
94 }
+
95 return *this;
+
96 }
+
97
+
98 template<tz::number T, std::size_t R, std::size_t C>
+
+ +
+ +
101 for(std::size_t i = 0; i < R; i++)
+
102 {
+
103 for(std::size_t j = 0; j < C; j++)
+
104 {
+
105 (*this)(i, j) -= matrix(i, j);
+
+ +
107 }
+
108 return *this;
+
109 }
+
110
+
111 template<tz::number T, std::size_t R, std::size_t C>
+
+ +
113 {
+
114 matrix<T, R, C> copy = *this;
+
115 copy -= scalar;
+
116 return std::move(copy);
+
117 }
+
+
+ +
119 template<tz::number T, std::size_t R, std::size_t C>
+
+ +
121 {
+
122 matrix<T, R, C> copy = *this;
+
123 copy -= mat;
+
+
124 return std::move(copy);
+
125 }
+
126
+
127 template<tz::number T, std::size_t R, std::size_t C>
+
+ +
129 {
+
+
130 TZ_PROFZONE("Matrix - Scalar Multiply", 0xFF0000AA);
+
131 for(std::size_t i = 0; i < R; i++)
+
132 {
+
133 for(std::size_t j = 0; j < C; j++)
+
134 {
+
135 (*this)(i, j) *= scalar;
+
+ +
137 }
+
138 return *this;
+
139 }
+
+
140
+
141 template<tz::number T, std::size_t R, std::size_t C>
+
+ +
143 {
+
144 TZ_PROFZONE("Matrix - Matrix Multiply", 0xFF0000AA);
+
145 matrix<T, R, C> m = *this;
+
146 for(std::size_t i = 0; i < R; i++)
+
147 {
+
+
148 for(std::size_t j = 0; j < C; j++)
+
149 {
+
150 T res_ele = T();
+
151 for(std::size_t k = 0; k < C; k++)
+
152 {
+
153 res_ele += (m.internal_get(i, k) * mat.internal_get(k, j));
+
+ +
155 this->internal_get(i, j) = res_ele;
+
156 }
+
157 }
+
158 return *this;
+
159 }
+
+ +
161 template<tz::number T, std::size_t R, std::size_t C>
+
+ +
163 {
+
164 matrix<T, R, C> copy = *this;
+
165 copy *= scalar;
+
166 return copy;
+ +
+
168
+
169 template<tz::number T, std::size_t R, std::size_t C>
+
+ +
171 {
+
172 matrix<T, R, C> copy = *this;
+
+
173 copy *= mat;
+
174 return copy;
+
175 }
+
176
+
177 template<tz::number T, std::size_t R, std::size_t C>
+
+ +
179 {
+
+
180 TZ_PROFZONE("Matrix - Vector Multiply", 0xFF0000AA);
+ +
182 for(std::size_t i = 0; i < R; i++)
+
183 {
+
184 ret[i] = tz::vec4{(*this)[i]}.dot(vec);
+
185 }
+
186 return ret;
+
+ +
188
+
189 template<tz::number T, std::size_t R, std::size_t C>
+
+
190 bool matrix<T, R, C>::operator==(T scalar) const
+
191 {
+
192 for(std::size_t i = 0; i < R; i++)
+
193 {
+
194 for(std::size_t j = 0; j < C; j++)
+
195 {
+
196 if(this->internal_get(i, j) != scalar)
+
197 return false;
+
198 }
+
199 }
+
200 return true;
+
201 }
+
+
202
+
203 template<tz::number T, std::size_t R, std::size_t C>
+
+ +
205 {
+
206 for(std::size_t i = 0; i < R; i++)
+
207 {
+
208 for(std::size_t j = 0; j < C; j++)
+
209 {
+
210 if(this->internal_get(i, j) != mat.internal_get(i, j))
+
211 return false;
+
212 }
+
213 }
+
214 return true;
+
215 }
+
+
216
+
217 template<tz::number T, std::size_t R, std::size_t C>
+
+ +
219 {
+
220 TZ_PROFZONE("Matrix - Inverse", 0xFF0000AA);
+
221 // Create copy of the current matrix to work with.
+ +
223 // TODO: Replace with Jacobi's Method.
+
224
+
225 // Column-major
+
226 auto at = [](matrix<T, R, C>& m, std::size_t idx)->T&
+
227 {
+
228 // 5 ==> (1, 1)
+
229 // row_id = 5 / 4 == 1
+
230 // column_id = (1*4)
+
231 std::size_t row_id = idx / C;
+
232 std::size_t column_id = idx - (row_id*C);
+
233 return m.internal_get(row_id, column_id);
+
234 };
+
235
+
236 auto cat = [](const matrix<T, R, C>& m, std::size_t idx)->const T&
+
237 {
+
238 // 5 ==> (1, 1)
+
239 // row_id = 5 / 4 == 1
+
240 // column_id = (1*4)
+
241 std::size_t row_id = idx / C;
+
242 std::size_t column_id = idx - (row_id*C);
+
243 return m.internal_get(row_id, column_id);
+
244 };
+
245
+
246 at(mat, 0) = cat(*this, 5) * cat(*this, 10) * cat(*this, 15) -
+
247 cat(*this, 5) * cat(*this, 11) * cat(*this, 14) -
+
248 cat(*this, 9) * cat(*this, 6) * cat(*this, 15) +
+
249 cat(*this, 9) * cat(*this, 7) * cat(*this, 14) +
+
250 cat(*this, 13) * cat(*this, 6) * cat(*this, 11) -
+
251 cat(*this, 13) * cat(*this, 7) * cat(*this, 10);
+
252
+
253 at(mat, 4) = -cat(*this, 4) * cat(*this, 10) * cat(*this, 15) +
+
254 cat(*this, 4) * cat(*this, 11) * cat(*this, 14) +
+
255 cat(*this, 8) * cat(*this, 6) * cat(*this, 15) -
+
256 cat(*this, 8) * cat(*this, 7) * cat(*this, 14) -
+
257 cat(*this, 12) * cat(*this, 6) * cat(*this, 11) +
+
258 cat(*this, 12) * cat(*this, 7) * cat(*this, 10);
+
259
+
260 at(mat, 8) = cat(*this, 4) * cat(*this, 9) * cat(*this, 15) -
+
261 cat(*this, 4) * cat(*this, 11) * cat(*this, 13) -
+
262 cat(*this, 8) * cat(*this, 5) * cat(*this, 15) +
+
263 cat(*this, 8) * cat(*this, 7) * cat(*this, 13) +
+
264 cat(*this, 12) * cat(*this, 5) * cat(*this, 11) -
+
265 cat(*this, 12) * cat(*this, 7) * cat(*this, 9);
+
266
+
267 at(mat, 12) = -cat(*this, 4) * cat(*this, 9) * cat(*this, 14) +
+
268 cat(*this, 4) * cat(*this, 10) * cat(*this, 13) +
+
269 cat(*this, 8) * cat(*this, 5) * cat(*this, 14) -
+
270 cat(*this, 8) * cat(*this, 6) * cat(*this, 13) -
+
271 cat(*this, 12) * cat(*this, 5) * cat(*this, 10) +
+
272 cat(*this, 12) * cat(*this, 6) * cat(*this, 9);
+
273
+
274 at(mat, 1) = -cat(*this, 1) * cat(*this, 10) * cat(*this, 15) +
+
275 cat(*this, 1) * cat(*this, 11) * cat(*this, 14) +
+
276 cat(*this, 9) * cat(*this, 2) * cat(*this, 15) -
+
277 cat(*this, 9) * cat(*this, 3) * cat(*this, 14) -
+
278 cat(*this, 13) * cat(*this, 2) * cat(*this, 11) +
+
279 cat(*this, 13) * cat(*this, 3) * cat(*this, 10);
+
280
+
281 at(mat, 5) = cat(*this, 0) * cat(*this, 10) * cat(*this, 15) -
+
282 cat(*this, 0) * cat(*this, 11) * cat(*this, 14) -
+
283 cat(*this, 8) * cat(*this, 2) * cat(*this, 15) +
+
284 cat(*this, 8) * cat(*this, 3) * cat(*this, 14) +
+
285 cat(*this, 12) * cat(*this, 2) * cat(*this, 11) -
+
286 cat(*this, 12) * cat(*this, 3) * cat(*this, 10);
+
287
+
288 at(mat, 9) = -cat(*this, 0) * cat(*this, 9) * cat(*this, 15) +
+
289 cat(*this, 0) * cat(*this, 11) * cat(*this, 13) +
+
290 cat(*this, 8) * cat(*this, 1) * cat(*this, 15) -
+
291 cat(*this, 8) * cat(*this, 3) * cat(*this, 13) -
+
292 cat(*this, 12) * cat(*this, 1) * cat(*this, 11) +
+
293 cat(*this, 12) * cat(*this, 3) * cat(*this, 9);
+
294
+
295 at(mat, 13) = cat(*this, 0) * cat(*this, 9) * cat(*this, 14) -
+
296 cat(*this, 0) * cat(*this, 10) * cat(*this, 13) -
+
297 cat(*this, 8) * cat(*this, 1) * cat(*this, 14) +
+
298 cat(*this, 8) * cat(*this, 2) * cat(*this, 13) +
+
299 cat(*this, 12) * cat(*this, 1) * cat(*this, 10) -
+
300 cat(*this, 12) * cat(*this, 2) * cat(*this, 9);
+
301
+
302 at(mat, 2) = cat(*this, 1) * cat(*this, 6) * cat(*this, 15) -
+
303 cat(*this, 1) * cat(*this, 7) * cat(*this, 14) -
+
304 cat(*this, 5) * cat(*this, 2) * cat(*this, 15) +
+
305 cat(*this, 5) * cat(*this, 3) * cat(*this, 14) +
+
306 cat(*this, 13) * cat(*this, 2) * cat(*this, 7) -
+
307 cat(*this, 13) * cat(*this, 3) * cat(*this, 6);
+
308
+
309 at(mat, 6) = -cat(*this, 0) * cat(*this, 6) * cat(*this, 15) +
+
310 cat(*this, 0) * cat(*this, 7) * cat(*this, 14) +
+
311 cat(*this, 4) * cat(*this, 2) * cat(*this, 15) -
+
312 cat(*this, 4) * cat(*this, 3) * cat(*this, 14) -
+
313 cat(*this, 12) * cat(*this, 2) * cat(*this, 7) +
+
314 cat(*this, 12) * cat(*this, 3) * cat(*this, 6);
+
315
+
316 at(mat, 10) = cat(*this, 0) * cat(*this, 5) * cat(*this, 15) -
+
317 cat(*this, 0) * cat(*this, 7) * cat(*this, 13) -
+
318 cat(*this, 4) * cat(*this, 1) * cat(*this, 15) +
+
319 cat(*this, 4) * cat(*this, 3) * cat(*this, 13) +
+
320 cat(*this, 12) * cat(*this, 1) * cat(*this, 7) -
+
321 cat(*this, 12) * cat(*this, 3) * cat(*this, 5);
+
322
+
323 at(mat, 14) = -cat(*this, 0) * cat(*this, 5) * cat(*this, 14) +
+
324 cat(*this, 0) * cat(*this, 6) * cat(*this, 13) +
+
325 cat(*this, 4) * cat(*this, 1) * cat(*this, 14) -
+
326 cat(*this, 4) * cat(*this, 2) * cat(*this, 13) -
+
327 cat(*this, 12) * cat(*this, 1) * cat(*this, 6) +
+
328 cat(*this, 12) * cat(*this, 2) * cat(*this, 5);
+
329
+
330 at(mat, 3) = -cat(*this, 1) * cat(*this, 6) * cat(*this, 11) +
+
331 cat(*this, 1) * cat(*this, 7) * cat(*this, 10) +
+
332 cat(*this, 5) * cat(*this, 2) * cat(*this, 11) -
+
333 cat(*this, 5) * cat(*this, 3) * cat(*this, 10) -
+
334 cat(*this, 9) * cat(*this, 2) * cat(*this, 7) +
+
335 cat(*this, 9) * cat(*this, 3) * cat(*this, 6);
+
336
+
337 at(mat, 7) = cat(*this, 0) * cat(*this, 6) * cat(*this, 11) -
+
338 cat(*this, 0) * cat(*this, 7) * cat(*this, 10) -
+
339 cat(*this, 4) * cat(*this, 2) * cat(*this, 11) +
+
340 cat(*this, 4) * cat(*this, 3) * cat(*this, 10) +
+
341 cat(*this, 8) * cat(*this, 2) * cat(*this, 7) -
+
342 cat(*this, 8) * cat(*this, 3) * cat(*this, 6);
+
343
+
344 at(mat, 11) = -cat(*this, 0) * cat(*this, 5) * cat(*this, 11) +
+
345 cat(*this, 0) * cat(*this, 7) * cat(*this, 9) +
+
346 cat(*this, 4) * cat(*this, 1) * cat(*this, 11) -
+
347 cat(*this, 4) * cat(*this, 3) * cat(*this, 9) -
+
348 cat(*this, 8) * cat(*this, 1) * cat(*this, 7) +
+
349 cat(*this, 8) * cat(*this, 3) * cat(*this, 5);
+
350
+
351 at(mat, 15) = cat(*this, 0) * cat(*this, 5) * cat(*this, 10) -
+
352 cat(*this, 0) * cat(*this, 6) * cat(*this, 9) -
+
353 cat(*this, 4) * cat(*this, 1) * cat(*this, 10) +
+
354 cat(*this, 4) * cat(*this, 2) * cat(*this, 9) +
+
355 cat(*this, 8) * cat(*this, 1) * cat(*this, 6) -
+
356 cat(*this, 8) * cat(*this, 2) * cat(*this, 5);
+
357
+
358 float determinant = cat(*this, 0) * cat(mat, 0) + cat(*this, 1) * cat(mat, 4) + cat(*this, 2) * cat(mat, 8) + cat(*this, 3) * cat(mat, 12);
+
359 tz::assert(determinant != 0, "tz::geo::matrix<T, %zu, %zu>::inverse(): Cannot get inverse because determinant is zero.", R, C);
+
360 determinant = 1.0f / determinant;
+
361 for(std::size_t i = 0; i < 16; i++)
+
362 at(mat, i) = cat(mat, i) * determinant;
+
363 return mat;
+
364 }
+
+
365
+
366 template<tz::number T, std::size_t R, std::size_t C>
+
367 //template<std::size_t X, std::size_t Y, typename std::enable_if_t<X == Y>>
+
+ +
369 {
+
370 TZ_PROFZONE("Matrix - Transpose", 0xFF0000AA);
+
371 matrix<T, R, C> m = *this;
+
372 for(std::size_t i = 0; i < R; i++)
+
373 {
+
374 for(std::size_t j = 0; j < C; j++)
+
375 {
+
376 if(i != j)
+
377 {
+
378 std::swap(m.internal_get(i, j), m.internal_get(j, i));
+
379 }
+
380 }
+
381 }
+
382 return m;
+
383 }
+
+
+
384
+
385 #if TZ_DEBUG
+
386 template<tz::number T, std::size_t R, std::size_t C>
+ +
388 {
+
389
+
390 for(std::size_t i = 0; i < R; i++)
+
391 {
+
392 std::printf("|");
+
393 for(std::size_t j = 0; j < C; j++)
+
394 {
+
395 if(j > 0 && j <= (C - 1))
+
396 {
+
397 std::printf(" ");
+
398 }
+
399 std::printf("%g", (*this)(i, j));
+
400 }
+
401 std::printf("|\n");
+
402 }
+
403 std::printf("\n");
+
404 }
+
405 #endif
+
406
+
407 template<tz::number T, std::size_t R, std::size_t C>
+
408 void matrix<T, R, C>::dbgui()
+
409 {
+
410 constexpr float matrix_cell_width = 35.0f;
+
411 for(std::size_t row = 0; row < R; row++)
+
412 {
+
413 for(std::size_t col = 0; col < C; col++)
+
414 {
+
415 std::string address = std::to_string((unsigned long long)(void**)this);
+
416 std::string label = "##m" + address + std::to_string(row) + std::to_string(col);
+
417 ImGui::SetNextItemWidth(matrix_cell_width);
+
418 ImGui::InputFloat(label.c_str(), &this->operator()(row, col));
+
419 ImGui::SameLine();
+
420 }
+
421 ImGui::NewLine();
+
422 }
+
423 }
+
424
+
425 template<tz::number T, std::size_t R, std::size_t C>
+
426 const T& matrix<T, R, C>::internal_get(std::size_t row, std::size_t column) const
+
427 {
+
428 return this->mat[column][row];
+
429 }
+
430
+
431 template<tz::number T, std::size_t R, std::size_t C>
+
432 T& matrix<T, R, C>::internal_get(std::size_t row, std::size_t column)
+
433 {
+
434 return this->mat[column][row];
+
435 }
+
436
+
437 template<tz::number T>
+
438 T determinant(const matrix<T, 4, 4>& m)
+
439 {
+
440
+
441 // Calculate 2x2 determinants
+
442 T det2_01 = m[0][0] * m[1][1] - m[0][1] * m[1][0];
+
443 T det2_02 = m[0][0] * m[1][2] - m[0][2] * m[1][0];
+
444 T det2_03 = m[0][0] * m[1][3] - m[0][3] * m[1][0];
+
445 T det2_12 = m[0][1] * m[1][2] - m[0][2] * m[1][1];
+
446 T det2_13 = m[0][1] * m[1][3] - m[0][3] * m[1][1];
+
447 T det2_23 = m[0][2] * m[1][3] - m[0][3] * m[1][2];
+
448
+
449 // Calculate 3x3 determinants
+
450 T det3_201 = m[2][0] * det2_01 - m[2][1] * det2_02 + m[2][2] * det2_12;
+
451 T det3_202 = m[2][0] * det2_01 - m[2][1] * det2_03 + m[2][3] * det2_13;
+
452 T det3_203 = m[2][0] * det2_02 - m[2][2] * det2_03 + m[2][3] * det2_23;
+
453 T det3_301 = m[3][0] * det2_01 - m[3][1] * det2_02 + m[3][2] * det2_12;
+
454 T det3_302 = m[3][0] * det2_01 - m[3][1] * det2_03 + m[3][3] * det2_13;
+
455 T det3_303 = m[3][0] * det2_02 - m[3][2] * det2_03 + m[3][3] * det2_23;
+
456
+
457 // Calculate the final determinant
+
458 return m[0][0] * det3_303 - m[0][1] * det3_302 + m[0][2] * det3_301 - m[0][3] * det3_203;
+
459 }
+
460}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Represents a row-major matrix with R rows and C columns.
Definition matrix.hpp:16
+
Definition vector.hpp:18
+
T dot(const vector< T, S > &rhs) const
Compute a dot-product (otherwise known as the scalar-product) of the current vector against another g...
Definition vector.inl:143
+
void assert(bool condition, detail::format_string fmt="<No message>", Args &&... args)
Assert on a condition.
Definition debug.inl:33
+
vector< float, 4 > vec4
A vector of four floats.
Definition vector.hpp:219
+
+ + + + diff --git a/matrix__transform_8hpp_source.html b/matrix__transform_8hpp_source.html new file mode 100644 index 0000000000..23a1e3a2bd --- /dev/null +++ b/matrix__transform_8hpp_source.html @@ -0,0 +1,142 @@ + + + + + + + +Topaz: src/tz/core/matrix_transform.hpp Source File + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.1.0.1 +
+
C++20 Graphics Engine
+
+
+ + + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+
matrix_transform.hpp
+
+
+
1//
+
2// Created by Harrand on 19/01/2020.
+
3//
+
4
+
5#ifndef TOPAZ_CORE_MATRIX_TRANSFORM_HPP
+
6#define TOPAZ_CORE_MATRIX_TRANSFORM_HPP
+
7#include "tz/core/matrix.hpp"
+
8#include "tz/core/data/vector.hpp"
+
9
+
10namespace tz
+
11{
+
19 mat4 translate(tz::vec3 position);
+
27 mat4 rotate(tz::vec3 rotation);
+
35 mat4 scale(tz::vec3 scale);
+
41 mat4 model(tz::vec3 position, tz::vec3 rotation, tz::vec3 scale);
+
47 mat4 view(tz::vec3 position, tz::vec3 rotation);
+
53 mat4 perspective(float fov, float aspect_ratio, float near, float far);
+
58 mat4 orthographic(float left, float right, float top, float bottom, float near, float far);
+
59
+
60 void dbgui_model(tz::mat4& mat);
+
61 void dbgui_view(tz::mat4& mat);
+
62 void dbgui_perspective(tz::mat4& mat);
+
63}
+
64
+
65#endif // TOPAZ_CORE_MATRIX_TRANSFORM_HPP
+
matrix< float, 4, 4 > mat4
Definition matrix.hpp:208
+
mat4 orthographic(float left, float right, float top, float bottom, float nearval, float farval)
Generates an orthographic projection matrix using the given camera properties.
Definition matrix_transform.cpp:131
+
mat4 view(tz::vec3 position, tz::vec3 rotation)
Generates a view matrix using the given view position and rotation.
Definition matrix_transform.cpp:109
+
mat4 model(tz::vec3 position, tz::vec3 rotation, tz::vec3 scale)
Generates a model matrix using the given position, euler-rotation and scale vectors.
Definition matrix_transform.cpp:103
+
mat4 perspective(float fov, float aspect_ratio, float nearval, float farval)
Generates a perspective projection matrix using the given camera properties.
Definition matrix_transform.cpp:115
+
mat4 rotate(tz::vec3 rotation)
Generates a matrix which performs the following three transformations, in chronological order:
Definition matrix_transform.cpp:82
+
mat4 scale(tz::vec3 scale)
Generates a matrix which performs the following transformations at once:
Definition matrix_transform.cpp:92
+
mat4 translate(tz::vec3 position)
Generate a matrix which performs the following transformations at once:
Definition matrix_transform.cpp:7
+
+ + + + diff --git a/maybe__owned__ptr_8hpp_source.html b/maybe__owned__ptr_8hpp_source.html new file mode 100644 index 0000000000..910f9b0ac5 --- /dev/null +++ b/maybe__owned__ptr_8hpp_source.html @@ -0,0 +1,169 @@ + + + + + + + +Topaz: src/tz/core/memory/maybe_owned_ptr.hpp Source File + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.1.0.1 +
+
C++20 Graphics Engine
+
+
+ + + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+
maybe_owned_ptr.hpp
+
+
+
1#ifndef TOPAZ_CORE_MEMORY_MAYBE_OWNED_PTR_HPP
+
2#define TOPAZ_CORE_MEMORY_MAYBE_OWNED_PTR_HPP
+
3#include "tz/core/memory/memblk.hpp"
+
4
+
5namespace tz
+
6{
+
7 template<typename T>
+
+ +
9 {
+
10 public:
+
11 maybe_owned_ptr(std::nullptr_t);
+
12 maybe_owned_ptr(T* ptr);
+
13 maybe_owned_ptr(std::unique_ptr<T> owned);
+
14 template<typename P>
+
15 maybe_owned_ptr(maybe_owned_ptr<P>&& move) requires std::derived_from<P, T>;
+
16
+
17 maybe_owned_ptr(const maybe_owned_ptr<T>& copy) = default;
+
18 maybe_owned_ptr(maybe_owned_ptr<T>&& move) = default;
+
19 maybe_owned_ptr& operator=(const maybe_owned_ptr<T>& rhs) = default;
+
20 maybe_owned_ptr& operator=(maybe_owned_ptr<T>&& rhs) = default;
+
21 maybe_owned_ptr& operator=(std::nullptr_t);
+
22 maybe_owned_ptr& operator=(T* ptr);
+
23 maybe_owned_ptr& operator=(std::unique_ptr<T> ptr);
+
24
+
25 T* get();
+
26 const T* get() const;
+
27 bool owning() const;
+
28 void reset();
+
29 T* release();
+
30 void set_owning(bool should_own);
+
31
+
32 template<typename P>
+
33 P* as() requires std::derived_from<P, T>
+
34 {
+
35 return static_cast<P*>(this->get());
+
36 }
+
37
+
38 template<typename P>
+
39 const P* as() const requires std::derived_from<P, T>
+
40 {
+
41 return static_cast<const P*>(this->get());
+
42 }
+
43
+
44 T* operator->();
+
45 const T* operator->() const;
+
46 bool operator==(const T* t) const;
+
47 private:
+
48 using variant = std::variant<T*, std::unique_ptr<T>>;
+
49 variant ptr;
+
50 };
+
+
51
+
52 template<typename T, typename... Args>
+
53 maybe_owned_ptr<T> make_owned(Args&&... args);
+
54}
+
55
+
56#include "tz/core/memory/maybe_owned_ptr.inl"
+
57#endif // TOPAZ_CORE_MEMORY_MAYBE_OWNED_PTR_HPP
+
Definition maybe_owned_ptr.hpp:9
+
+ + + + diff --git a/maybe__owned__ptr_8inl_source.html b/maybe__owned__ptr_8inl_source.html new file mode 100644 index 0000000000..62e137288f --- /dev/null +++ b/maybe__owned__ptr_8inl_source.html @@ -0,0 +1,255 @@ + + + + + + + +Topaz: src/tz/core/memory/maybe_owned_ptr.inl Source File + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.1.0.1 +
+
C++20 Graphics Engine
+
+
+ + + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+
maybe_owned_ptr.inl
+
+
+
1#include <utility>
+
2
+
3namespace tz
+
4{
+
5 template<typename T>
+
6 maybe_owned_ptr<T>::maybe_owned_ptr(std::nullptr_t):
+
7 ptr(nullptr)
+
8 {
+
9
+
10 }
+
11
+
12 template<typename T>
+
13 maybe_owned_ptr<T>::maybe_owned_ptr(T* ptr):
+
14 ptr(ptr)
+
15 {
+
16
+
17 }
+
18
+
19 template<typename T>
+
20 maybe_owned_ptr<T>::maybe_owned_ptr(std::unique_ptr<T> owned):
+
21 ptr(std::move(owned)){}
+
22
+
23 template<typename T>
+
24 template<typename P>
+
25 maybe_owned_ptr<T>::maybe_owned_ptr(maybe_owned_ptr<P>&& move) requires std::derived_from<P, T>:
+
26 maybe_owned_ptr<T>(nullptr)
+
27 {
+
28 if(move.owning())
+
29 {
+
30 *this = static_cast<T*>(move.get());
+
31 move.set_owning(false);
+
32 this->set_owning(true);
+
33 }
+
34 else
+
35 {
+
36 *this = static_cast<T*>(move.get());
+
37 }
+
38 }
+
39
+
40 template<typename T>
+
41 maybe_owned_ptr<T>& maybe_owned_ptr<T>::operator=(std::nullptr_t)
+
42 {
+
43 this->ptr = nullptr;
+
44 return *this;
+
45 }
+
46
+
47 template<typename T>
+
48 maybe_owned_ptr<T>& maybe_owned_ptr<T>::operator=(T* ptr)
+
49 {
+
50 this->ptr = ptr;
+
51 return *this;
+
52 }
+
53
+
54 template<typename T>
+
55 maybe_owned_ptr<T>& maybe_owned_ptr<T>::operator=(std::unique_ptr<T> ptr)
+
56 {
+
57 this->ptr = std::move(ptr);
+
58 return *this;
+
59 }
+
60
+
61 template<typename T>
+
62 T* maybe_owned_ptr<T>::get()
+
63 {
+
64 if(this->owning())
+
65 {
+
66 return std::get<std::unique_ptr<T>>(this->ptr).get();
+
67 }
+
68 return std::get<T*>(this->ptr);
+
69 }
+
70
+
71 template<typename T>
+
72 const T* maybe_owned_ptr<T>::get() const
+
73 {
+
74 if(this->owning())
+
75 {
+
76 return std::get<std::unique_ptr<T>>(this->ptr).get();
+
77 }
+
78 return std::get<T*>(this->ptr);
+
79 }
+
80
+
81 template<typename T>
+
82 bool maybe_owned_ptr<T>::owning() const
+
83 {
+
84 return std::holds_alternative<std::unique_ptr<T>>(this->ptr);
+
85 }
+
86
+
87 template<typename T>
+
88 T* maybe_owned_ptr<T>::release()
+
89 {
+
90 if(this->owning())
+
91 {
+
92 T* p = std::get<std::unique_ptr<T>>(this->ptr).release();
+
93 *this = nullptr;
+
94 return p;
+
95 }
+
96 return this->get();
+
97 }
+
98
+
99 template<typename T>
+
100 void maybe_owned_ptr<T>::reset()
+
101 {
+
102 *this = nullptr;
+
103 }
+
104
+
105 template<typename T>
+
106 void maybe_owned_ptr<T>::set_owning(bool should_own)
+
107 {
+
108 if(should_own == this->owning())
+
109 {
+
110 return;
+
111 }
+
112 if(should_own)
+
113 {
+
114 std::unique_ptr<T> new_owning(this->get());
+
115 *this = std::move(new_owning);
+
116 }
+
117 else
+
118 {
+
119 *this = this->release();
+
120 }
+
121 }
+
122
+
123 template<typename T>
+
124 T* maybe_owned_ptr<T>::operator->()
+
125 {
+
126 return this->get();
+
127 }
+
128
+
129 template<typename T>
+
130 const T* maybe_owned_ptr<T>::operator->() const
+
131 {
+
132 return this->get();
+
133 }
+
134
+
135 template<typename T>
+
136 bool maybe_owned_ptr<T>::operator==(const T* t) const
+
137 {
+
138 return this->get() == t;
+
139 }
+
140
+
141 template<typename T, typename... Args>
+
142 maybe_owned_ptr<T> make_owned(Args&&... args)
+
143 {
+
144 return {std::make_unique<T>(std::forward<Args>(args)...)};
+
145 }
+
146}
+
+ + + + diff --git a/memblk_8hpp_source.html b/memblk_8hpp_source.html new file mode 100644 index 0000000000..660802085f --- /dev/null +++ b/memblk_8hpp_source.html @@ -0,0 +1,131 @@ + + + + + + + +Topaz: src/tz/core/memory/memblk.hpp Source File + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.1.0.1 +
+
C++20 Graphics Engine
+
+
+ + + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+
memblk.hpp
+
+
+
1#ifndef TZ_MEMORY_MEMBLK_HPP
+
2#define TZ_MEMORY_MEMBLK_HPP
+
3#include <cstddef>
+
4
+
5namespace tz
+
6{
+
+
11 struct memblk
+
12 {
+
14 void* ptr;
+
16 std::size_t size;
+
17
+
18 bool operator==(const memblk& rhs) const = default;
+
19 };
+
+
21 constexpr memblk nullblk{.ptr = nullptr, .size = 0};
+
22}
+
23
+
24#endif // TZ_MEMORY_MEMBLK_HPP
+
A non-owning, contiguous block of memory.
Definition memblk.hpp:12
+
void * ptr
Start address of the block.
Definition memblk.hpp:14
+
std::size_t size
Size of the block, in bytes.
Definition memblk.hpp:16
+
+ + + + diff --git a/menudata.js b/menudata.js new file mode 100644 index 0000000000..b6d442dea2 --- /dev/null +++ b/menudata.js @@ -0,0 +1,30 @@ +/* + @licstart The following is the entire license notice for the JavaScript code in this file. + + The MIT License (MIT) + + Copyright (C) 1997-2020 by Dimitri van Heesch + + Permission is hereby granted, free of charge, to any person obtaining a copy of this software + and associated documentation files (the "Software"), to deal in the Software without restriction, + including without limitation the rights to use, copy, modify, merge, publish, distribute, + sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is + furnished to do so, subject to the following conditions: + + The above copyright notice and this permission notice shall be included in all copies or + substantial portions of the Software. + + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING + BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND + NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, + DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + + @licend The above is the entire license notice for the JavaScript code in this file +*/ +var menudata={children:[ +{text:"Topaz Home",url:"index.html"}, +{text:"C++ API",url:"group__tz__cpp.html"}, +{text:"Lua API",url:"tz_lua.html"}, +{text:"TZSL API",url:"group__tzsl.html"}, +{text:"Wiki",url:"^https://github.com/harrand/Topaz/wiki"}]} diff --git a/mesh_8hpp_source.html b/mesh_8hpp_source.html new file mode 100644 index 0000000000..ec1d1c8bac --- /dev/null +++ b/mesh_8hpp_source.html @@ -0,0 +1,320 @@ + + + + + + + +Topaz: src/tz/ren/mesh.hpp Source File + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.1.0.1 +
+
C++20 Graphics Engine
+
+
+ + + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+
mesh.hpp
+
+
+
1#ifndef TOPAZ_REN_MESH_HPP
+
2#define TOPAZ_REN_MESH_HPP
+
3#include "tz/gl/renderer.hpp"
+
4#include "tz/core/data/vector.hpp"
+
5#include "tz/core/matrix.hpp"
+
6#include "tz/core/data/transform_hierarchy.hpp"
+
7#include <cstdint>
+
8#include <array>
+
9
+
10namespace tz::ren
+
11{
+
12 template<unsigned int max_tex_count = 8, unsigned int max_joint4_count = 1>
+
13 struct vertex
+
14 {
+
15 tz::vec3 position = tz::vec3::zero();
+
16 float pad;
+
17 std::array<tz::vec4, max_tex_count> texcoordn = {};
+
18 tz::vec3 normal;
+
19 float pad0;
+
20 tz::vec3 tangent;
+
21 float pad1;
+
22 std::array<tz::vec4ui32, max_joint4_count> joint_indices = {};
+
23 std::array<tz::vec4, max_joint4_count> joint_weights = {};
+
24 };
+
25
+
26 using index = std::uint32_t;
+
27
+
28 template<unsigned int max_tex_count = 8, unsigned int max_joint4_count = 1>
+
29 struct mesh
+
30 {
+
31 std::vector<vertex<max_tex_count, max_joint4_count>> vertices = {};
+
32 std::vector<index> indices = {};
+
33 };
+
34
+
35 // describes the location and dimensions of a mesh within the giant vertex and index buffers.
+
36 struct mesh_locator
+
37 {
+
38 // how far into the vertex buffer does this mesh's vertices live?
+
39 std::uint32_t vertex_offset = 0;
+
40 // how many vertices does this mesh have?
+
41 std::uint32_t vertex_count = 0;
+
42 // how far into the index buffer does this mesh's indices live?
+
43 std::uint32_t index_offset = 0;
+
44 // how many indices does this mesh have?
+
45 std::uint32_t index_count = 0;
+
46 // X, where all indices of this mesh are between 0 and X.
+
47 std::uint32_t max_index_value = 0;
+
48 bool operator==(const mesh_locator& rhs) const = default;
+
49 };
+
50
+
51 namespace detail
+
52 {
+
53 struct texture_tag_t{};
+
54 using texture_handle = tz::handle<detail::texture_tag_t>;
+
55 }
+
56
+
57
+
58 // represents one of the textures bound to an object (drawable)
+
59 struct texture_locator
+
60 {
+
61 bool is_null() const{return this->texture == tz::nullhand;}
+
62 // colour multiplier on the sampled texel
+
63 tz::vec3 colour_tint = tz::vec3::filled(1.0f);
+
64 // id within the overarching texture resource array to be sampled.
+
65 detail::texture_handle texture = tz::nullhand;
+
66 };
+
67
+
68 constexpr unsigned int mesh_renderer_max_tex_count = 8;
+
69 constexpr unsigned int mesh_renderer_max_weight_count = 4;
+
70
+
71 // represents the data of an object (drawable).
+
72 struct object_data
+
73 {
+
74 // represents the transform of the drawable, in world space.
+
75 tz::mat4 global_transform = tz::mat4::identity();
+
76 // extra matrix space. unused in mesh_renderer.
+
77 tz::mat4 extra = tz::mat4::identity();
+
78 // array of bound textures. they all do not have to be used. no indication on whether they are colour, normal map, etc...
+
79 std::array<texture_locator, mesh_renderer_max_tex_count> bound_textures = {};
+
80 tz::vec4ui32 extra_indices = tz::vec4ui32::zero();
+
81 };
+
82
+
+ +
89 {
+
90 struct object_tag_t{};
+
91 public:
+
92 mesh_renderer(unsigned int total_textures = 128, tz::gl::renderer_options options = {});
+
93 using vertex_t = vertex<mesh_renderer_max_tex_count, mesh_renderer_max_weight_count / 4>;
+
94 using mesh_t = mesh<mesh_renderer_max_tex_count, mesh_renderer_max_weight_count / 4>;
+
95 using mesh_handle = tz::handle<mesh_t>;
+
96 using object_handle = tz::handle<object_tag_t>;
+
97 using texture_handle = detail::texture_handle;
+
98
+
+ +
100 {
+
101 tz::trs trs = {};
+
102 mesh_handle mesh = tz::nullhand;
+
103 std::array<texture_locator, mesh_renderer_max_tex_count> bound_textures = {};
+
104 object_handle parent = tz::nullhand;
+
105 };
+
+
+ +
107 {
+
108 tz::trs local_transform;
+
109 tz::trs global_transform;
+
110 object_handle parent;
+
111 std::vector<object_handle> children;
+
112 };
+
+
113
+
114 std::size_t mesh_count() const;
+
115 std::size_t draw_count() const;
+
116 virtual void update();
+
117 virtual void dbgui();
+
118 void clear();
+
119 void clear_draws();
+
120 mesh_handle add_mesh(mesh_t m);
+
121 virtual object_handle add_object(object_init_data init);
+
122 object_out_data get_object(object_handle h) const;
+
123
+
124 void remove_object(object_handle oh);
+
125 texture_handle add_texture(tz::vec2ui dimensions, std::span<const std::byte> image_data);
+
126 void append_to_render_graph();
+
127
+
128 tz::trs get_camera_transform() const;
+
129 void set_camera_transform(tz::trs camera_transform);
+
130 private:
+
131 struct compute_pass_t
+
132 {
+
133 compute_pass_t();
+
134 std::span<const mesh_locator> get_draw_list_meshes() const;
+
135 std::span<mesh_locator> get_draw_list_meshes();
+
136 std::uint32_t get_draw_count() const;
+
137 void set_draw_count(std::uint32_t new_draw_count);
+
138 void dbgui();
+
139
+
140 tz::gl::resource_handle draw_indirect_buffer = tz::nullhand;
+
141 tz::gl::resource_handle draw_list_buffer = tz::nullhand;
+
142 tz::gl::renderer_handle handle = tz::nullhand;
+
143 };
+
144 struct render_pass_t
+
145 {
+
146 render_pass_t(tz::gl::renderer_handle compute_pass, tz::gl::resource_handle compute_draw_indirect_buffer, std::string_view vertex_spirv, std::string_view fragment_spirv, unsigned int total_textures = 128, tz::gl::renderer_options options = {});
+
147 void dbgui();
+
148 std::span<const object_data> get_object_datas() const;
+
149 std::span<object_data> get_object_datas();
+
150
+
151 tz::gl::resource_handle index_buffer = tz::nullhand;
+
152 tz::gl::resource_handle vertex_buffer = tz::nullhand;
+
153 tz::gl::resource_handle object_buffer = tz::nullhand;
+
154 tz::gl::resource_handle camera_buffer = tz::nullhand;
+
155 tz::gl::resource_handle draw_indirect_buffer_ref = tz::nullhand;
+
156 static constexpr std::size_t extra_buffer_count = 1u;
+
157 std::array<tz::gl::resource_handle, extra_buffer_count> extra_buffers = {tz::nullhand};
+
158 std::vector<tz::gl::resource_handle> textures = {};
+
159 tz::gl::renderer_handle handle = tz::nullhand;
+
160
+
161 // not to be confused with the draw-list (part of the compute pass), which only contains the mesh locators that are gonna be drawn. this contains every mesh ever added.
+
162 std::vector<mesh_locator> meshes = {};
+
163 std::size_t cumulative_vertex_count = 0;
+
164 std::size_t texture_cursor = 0;
+
165 };
+
166
+
167 using node_type = tz::transform_node<std::uint32_t>;
+
168
+
169 std::optional<std::uint32_t> try_find_index_section(std::size_t index_count) const;
+
170 std::optional<std::uint32_t> try_find_vertex_section(std::size_t vertex_count) const;
+
171 mesh_locator add_mesh_impl(const mesh_renderer::mesh_t& m);
+
172 protected:
+
173 mesh_renderer(unsigned int total_textures, std::string_view vertex_spirv, std::string_view fragment_spirv, tz::gl::renderer_options options);
+
174 const mesh_locator& get_mesh_locator(mesh_handle mesh) const;
+
175 std::span<const vertex_t> read_vertices(const mesh_locator& mloc) const;
+
176 tz::gl::resource_handle render_pass_get_vertex_buffer_handle() const;
+
177 object_data& get_object_data(object_handle h);
+
178 std::size_t get_extra_buffer_count() const;
+
179 tz::gl::resource_handle get_extra_buffer_handle(std::size_t extra_buf_id) const;
+
180
+
181 const tz::gl::iresource& render_pass_get_resource(tz::gl::resource_handle rh) const;
+
182 void render_pass_edit(const tz::gl::RendererEditBuilder& builder);
+
183 void dbgui_tab_overview();
+
184 void dbgui_tab_render();
+
185
+ +
187 private:
+
188 compute_pass_t compute_pass = {};
+
189 render_pass_t render_pass;
+
190 };
+
+
191}
+
192
+
193#endif // TOPAZ_REN_MESH_HPP
+
Helper class which can be used to generate a renderer_edit_request.
Definition renderer.hpp:305
+
Interface for a renderer or Processor resource.
Definition resource.hpp:80
+
Definition handle.hpp:17
+
todo: document a two-pass (compute gpu command generation => render) mesh renderer.
Definition mesh.hpp:89
+
Represents a hierarchy of 3D transformations, with a payload applied.
Definition transform_hierarchy.hpp:34
+
matrix< float, 4, 4 > mat4
Definition matrix.hpp:208
+
vector< std::uint32_t, 4 > vec4ui32
A vector of four 32-bit unsigned ints.
Definition vector.hpp:262
+
vector< float, 3 > vec3
A vector of three floats.
Definition vector.hpp:217
+
tz::handle< detail::renderer_tag > renderer_handle
Represents a handle for a renderer owned by an existing device.
Definition renderer.hpp:27
+
Definition anim.compute.tzsl:14
+
Definition anim.fragment.tzsl:6
+ + +
Definition anim.hpp:30
+
Definition anim.hpp:14
+
Represents a node within a transform hierarchy.
Definition transform_hierarchy.hpp:16
+
Definition trs.hpp:8
+
+ + + + diff --git a/minus.svg b/minus.svg new file mode 100644 index 0000000000..f70d0c1a18 --- /dev/null +++ b/minus.svg @@ -0,0 +1,8 @@ + + + + + + + + diff --git a/minusd.svg b/minusd.svg new file mode 100644 index 0000000000..5f8e879628 --- /dev/null +++ b/minusd.svg @@ -0,0 +1,8 @@ + + + + + + + + diff --git a/monitor_8hpp_source.html b/monitor_8hpp_source.html new file mode 100644 index 0000000000..dc25dadee7 --- /dev/null +++ b/monitor_8hpp_source.html @@ -0,0 +1,121 @@ + + + + + + + +Topaz: src/tz/wsi/monitor.hpp Source File + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.1.0.1 +
+
C++20 Graphics Engine
+
+
+ + + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+
monitor.hpp
+
+
+
1#ifndef TZ_WSI_MONITOR_HPP
+
2#define TZ_WSI_MONITOR_HPP
+
3#include "tz/wsi/api/monitor.hpp"
+
4#include <vector>
+
5
+
6namespace tz::wsi
+
7{
+
13 std::vector<tz::wsi::monitor> get_monitors();
+
14}
+
15
+
16#endif // TZ_WSI_MONITOR_HPP
+
std::vector< tz::wsi::monitor > get_monitors()
Retrieve a list of all hardware monitors currently connected to the machine.
Definition monitor.cpp:7
+
+ + + + diff --git a/mouse_8hpp_source.html b/mouse_8hpp_source.html new file mode 100644 index 0000000000..572416e851 --- /dev/null +++ b/mouse_8hpp_source.html @@ -0,0 +1,121 @@ + + + + + + + +Topaz: src/tz/wsi/mouse.hpp Source File + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.1.0.1 +
+
C++20 Graphics Engine
+
+
+ + + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+
mouse.hpp
+
+
+
1#ifndef TOPAZ_WSI_MOUSE_HPP
+
2#define TOPAZ_WSI_MOUSE_HPP
+
3#include "tz/wsi/api/mouse.hpp"
+
4
+
5namespace tz::wsi
+
6{
+
14 bool is_mouse_button_down(const tz::wsi::mouse_state& ms, tz::wsi::mouse_button b);
+
15}
+
16
+
17#endif // TOPAZ_WSI_MOUSE_HPP
+
bool is_mouse_button_down(const tz::wsi::mouse_state &ms, tz::wsi::mouse_button b)
Query as to whether a specific mouse button is currently pressed for a mouse state (clicked or double...
Definition mouse.cpp:6
+
Represents the total state of the mouse for a single window.
Definition mouse.hpp:42
+
+ + + + diff --git a/mstile-150x150.png b/mstile-150x150.png new file mode 100644 index 0000000000..20c45e7a44 Binary files /dev/null and b/mstile-150x150.png differ diff --git a/namespacetz_1_1atomic.html b/namespacetz_1_1atomic.html new file mode 100644 index 0000000000..88b9707181 --- /dev/null +++ b/namespacetz_1_1atomic.html @@ -0,0 +1,147 @@ + + + + + + + +Topaz: tz::atomic Namespace Reference + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.1.0.1 +
+
C++20 Graphics Engine
+
+
+ + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+ +
tz::atomic Namespace Reference
+
+
+ +

Contains atomic operations as functions. +More...

+ + + + + + + + + + + + + + + + + + + + + + + + + + +

+Functions

+int add (int &mem, int data)
 Performs an atomic add operation.
 
+int and (int &mem, int data)
 Performs an atomic and operation.
 
+int or (int &mem, int data)
 Performs an atomic or operation.
 
+int xor (int &mem, int data)
 Performs an atomic xor operation.
 
+int min (int &mem, int data)
 Performs an atomic min operation.
 
+int max (int &mem, int data)
 Performs an atomic max operation.
 
+int exchange (int &mem, int data)
 Performs an atomic exhange operation.
 
+int cas (int &mem, uint compare, uint data)
 Performs an atomic compare-exchange operation.
 
+

Detailed Description

+

Contains atomic operations as functions.

+
+ + + + diff --git a/namespacetz_1_1debug.html b/namespacetz_1_1debug.html new file mode 100644 index 0000000000..daa551f121 --- /dev/null +++ b/namespacetz_1_1debug.html @@ -0,0 +1,121 @@ + + + + + + + +Topaz: tz::debug Namespace Reference + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.1.0.1 +
+
C++20 Graphics Engine
+
+
+ + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+ +
tz::debug Namespace Reference
+
+
+ +

Contains debug-only operations as functions. +More...

+ + + + + + + + +

+Functions

void printf (const char *fmt,...)
 Print formatted output to CPU-side stdout.
 
void assert (bool condition)
 Assert that a condition is true.
 
+

Detailed Description

+

Contains debug-only operations as functions.

+
+ + + + diff --git a/namespacetz_1_1gl_1_1vk2_1_1format__traits.html b/namespacetz_1_1gl_1_1vk2_1_1format__traits.html new file mode 100644 index 0000000000..1eeeafff14 --- /dev/null +++ b/namespacetz_1_1gl_1_1vk2_1_1format__traits.html @@ -0,0 +1,209 @@ + + + + + + + +Topaz: tz::gl::vk2::format_traits Namespace Reference + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.1.0.1 +
+
C++20 Graphics Engine
+
+
+ + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+ +
tz::gl::vk2::format_traits Namespace Reference
+
+
+ +

Meta information about image_formats. +More...

+ + + + + + + + + + + +

+Functions

constexpr std::span< const image_formatget_mandatory_colour_attachment_formats ()
 Retrieve a span of all image_formats which are guaranteed to be supported for a colour attachment for any framebuffer.
 
constexpr std::span< const image_formatget_mandatory_depth_attachment_formats ()
 Retrieve a span of all image_formats which are guaranteed to be supported for a depth attachment for any framebuffer.
 
constexpr std::span< const image_formatget_mandatory_sampled_image_formats ()
 Retrieve a span of all image_formats which are guaranteed to be supported for a sampled image within a shader resource.
 
+

Detailed Description

+

Meta information about image_formats.

+

Function Documentation

+ +

◆ get_mandatory_colour_attachment_formats()

+ +
+
+ + + + + +
+ + + + + + + +
constexpr std::span< const image_format > tz::gl::vk2::format_traits::get_mandatory_colour_attachment_formats ()
+
+constexpr
+
+ +

Retrieve a span of all image_formats which are guaranteed to be supported for a colour attachment for any framebuffer.

+

An Image can safely use these as a Framebuffer colour attachment format without ensuring its corresponding PhysicalDevice supports it via PhysicalDevice::supports_image_colour_format.

+ +
+
+ +

◆ get_mandatory_depth_attachment_formats()

+ +
+
+ + + + + +
+ + + + + + + +
constexpr std::span< const image_format > tz::gl::vk2::format_traits::get_mandatory_depth_attachment_formats ()
+
+constexpr
+
+ +

Retrieve a span of all image_formats which are guaranteed to be supported for a depth attachment for any framebuffer.

+

An Image can safely use these as a Framebuffer depth attachment format without ensuring its corresponding PhysicalDevice supports it via PhysicalDevice::supports_image_depth_format.

+ +
+
+ +

◆ get_mandatory_sampled_image_formats()

+ +
+
+ + + + + +
+ + + + + + + +
constexpr std::span< const image_format > tz::gl::vk2::format_traits::get_mandatory_sampled_image_formats ()
+
+constexpr
+
+ +

Retrieve a span of all image_formats which are guaranteed to be supported for a sampled image within a shader resource.

+

An Image can safely use these as a shader resource image format without ensuring its corresponding PhysicalDevice supports it via PhysicalDevice::supports_image_sampled_format.

+ +
+
+
+ + + + diff --git a/namespacetz_1_1gl_1_1vk2_1_1present__traits.html b/namespacetz_1_1gl_1_1vk2_1_1present__traits.html new file mode 100644 index 0000000000..fcbcb63764 --- /dev/null +++ b/namespacetz_1_1gl_1_1vk2_1_1present__traits.html @@ -0,0 +1,147 @@ + + + + + + + +Topaz: tz::gl::vk2::present_traits Namespace Reference + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.1.0.1 +
+
C++20 Graphics Engine
+
+
+ + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+ +
+ +

Meta behaviour related to presentation and surfaces. +More...

+ + + + + +

+Functions

constexpr std::span< const SurfacePresentModeget_mandatory_present_modes ()
 Retrieve a span of all SurfacePresentModes which are guaranteed to be supported on any machine.
 
+

Detailed Description

+

Meta behaviour related to presentation and surfaces.

+

Function Documentation

+ +

◆ get_mandatory_present_modes()

+ +
+
+ + + + + +
+ + + + + + + +
constexpr std::span< const SurfacePresentMode > tz::gl::vk2::present_traits::get_mandatory_present_modes ()
+
+constexpr
+
+ +

Retrieve a span of all SurfacePresentModes which are guaranteed to be supported on any machine.

+

You can safely use these in a Swapchain without ensuring its corresponding PhysicalDevice supports it via PhysicalDevice::get_supported_surface_present_modes.

+ +
+
+
+ + + + diff --git a/namespacetz_1_1math.html b/namespacetz_1_1math.html new file mode 100644 index 0000000000..10b23a13b2 --- /dev/null +++ b/namespacetz_1_1math.html @@ -0,0 +1,257 @@ + + + + + + + +Topaz: tz::math Namespace Reference + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.1.0.1 +
+
C++20 Graphics Engine
+
+
+ + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+ +
tz::math Namespace Reference
+
+
+ +

Contains generic mathematical functions. +More...

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Functions

+generic_number_t abs (generic_number_t x)
 Return the absolute value of the parameter.
 
+generic_number_t cos (generic_number_t angle)
 Return the cosine of the provided value, in radians.
 
+generic_number_t sin (generic_number_t angle)
 Return the sine of the provided value, in radians.
 
+generic_number_t tan (generic_number_t angle)
 Return the tangent of the provided value, in radians.
 
generic_number_t acos (generic_number_t value)
 Return the arc-cosine of the provided value.
 
generic_number_t acosh (generic_number_t value)
 Return the arc-hyperbolic-cosine of the provided value.
 
generic_number_t asin (generic_number_t value)
 Return the arc-sine of the provided value.
 
generic_number_t asinh (generic_number_t value)
 Return the arc-hyperbolic-sine of the provided value.
 
generic_number_t atan (generic_number_t value)
 Return the arc-tangent of the provided value.
 
generic_number_t atanh (generic_number_t value)
 Return the arc-hyperbolic-tangent of the provided value.
 
+generic_number_t ceil (generic_number_t value)
 Return a value equal to the nearest integer that is greater than or equal to the parameter.
 
+generic_number_t floor (generic_number_t value)
 Return a value equal to the nearest integer that is less than or equal to the parameter.
 
+generic_number_t round (generic_number_t value)
 Return a value equal to the value, rounded to the nearest integer.
 
+generic_number_t trunc (generic_number_t value)
 Return a value equal to the nearest integer to the parameter whose absolute value is not larger than the absolute value of the parameter.
 
+generic_number_t fract (generic_number_t value)
 Return the fractional component of the argument.
 
generic_number_t sign (generic_number_t value)
 Extract the sign of the parameter.
 
+generic_number_t clamp (generic_number_t value, generic_number_t min_val, generic_number_t max_val)
 Constrain a value to lie between two further values.
 
+vec3 cross (vec3 x, vec3 y)
 Calculate the cross-product of two vectors.
 
+float distance (generic_number_t x, generic_number_t y)
 Calculate the distance between two points.
 
+float dot (generic_number_t x, generic_number_t y)
 Calculate the dot product of two vectors.
 
+generic_number_t exp (generic_number_t x)
 Retrieve the natural exponentiation of the parameter i.e e^x
 
+generic_number_t exp2 (generic_number_t x)
 Retrieve 2^x
 
generic_number_t sqrt (generic_number_t x)
 Retrieve the square-root of the parameter.
 
generic_number_t inverse_sqrt (generic_number_t x)
 Retrieve the inverse of the square-root of the parameter.
 
+bool is_infinity (generic_number_t x)
 Determine whether the parameter is positive of negative infinity.
 
+bool is_nan (generic_number_t x)
 Determine whether the parameter is not-a-number.
 
generic_number_t step (generic_number_t edge, generic_number_t x)
 Generates a step function by comparing two values.
 
+generic_number_t smooth_step (generic_number_t edge0, generic_number_t edge1, generic_number_t x)
 Perform Hermite interpolation between two values.
 
+float magnitude (vecn x)
 Calculate the length of a vector.
 
+vecn normalise (vecn x)
 Calculate the unit-vector in the same direction as the parameter vector.
 
+generic_number_t ln (generic_number_t x)
 Retrieve the natural logarithm o fthe parameter.
 
+generic_number_t log (generic_number_t x)
 Retrieve the base-2 logarithm of the parameter.
 
generic_number_t pow (generic_number_t x, generic_number_t y)
 Retrieve the value of the first parameter raised to the power of the second.
 
+generic_number_t max (generic_number_t x, generic_number_t y)
 Retrieve the greater of two values.
 
+generic_number_t min (generic_number_t x, generic_number_t y)
 Retrieve the min of two values.
 
generic_number_t lerp (generic_number_t x, generic_number_t y, generic_number_t v)
 Linearly interpolate between two values.
 
+generic_number_t mod (generic_number_t x, generic_number_t y)
 Compute value of one parameter modulo another.
 
vecn reflect (vecn i, vecn n)
 Calculate the reflection direction for an incident vector and a normal vector.
 
vecn refract (vecn i, vecn n, float eta)
 Calculate the refraction direction for an incident vector, a normal vector and a ratio of indices of refraction.
 
+

Detailed Description

+

Contains generic mathematical functions.

+
+ + + + diff --git a/namespacetz_1_1matrix.html b/namespacetz_1_1matrix.html new file mode 100644 index 0000000000..a65d350a78 --- /dev/null +++ b/namespacetz_1_1matrix.html @@ -0,0 +1,130 @@ + + + + + + + +Topaz: tz::matrix Namespace Reference + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.1.0.1 +
+
C++20 Graphics Engine
+
+
+ + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+ +
tz::matrix Namespace Reference
+
+
+ +

Contains matrix-specific mathematical functions. +More...

+ + + + + + + + + + + + + + +

+Functions

mat4 decompose_quaternion (vec4 quat)
 Given the quaternion parameter, retrieve a rotational 4x4 matrix which represents a similar rotation in 3D space.
 
+float determinant (matn m)
 Calculate the determinant of a matrix.
 
+matn inverse (matn m)
 Calculate the inverse of a matrix.
 
+matnm transpose (matmn m)
 Calculate the transpose of a matrix.
 
+

Detailed Description

+

Contains matrix-specific mathematical functions.

+
+ + + + diff --git a/namespacetz_1_1mesh.html b/namespacetz_1_1mesh.html new file mode 100644 index 0000000000..a284d2bc28 --- /dev/null +++ b/namespacetz_1_1mesh.html @@ -0,0 +1,127 @@ + + + + + + + +Topaz: tz::mesh Namespace Reference + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.1.0.1 +
+
C++20 Graphics Engine
+
+
+ + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+ +
tz::mesh Namespace Reference
+
+
+ +

Contains pre-computed mesh data. +More...

+ + + + + + + + + + + +

+Variables

+vec3[] fullscreen_triangle [3]
 A single triangle which fills the entire screen, in clip-space.
 
+vec3[] fullscreen_quad [6]
 A quad comprised of two triangles which exactly fills the entire screen, in clip-space.
 
+vec3[] fullscreen_cube [36]
 A cube which fills the entire screen and depth -1.0 to 1.0, in clip-space.
 
+

Detailed Description

+

Contains pre-computed mesh data.

+
+ + + + diff --git a/namespacetz_1_1noise.html b/namespacetz_1_1noise.html new file mode 100644 index 0000000000..4bf642bab1 --- /dev/null +++ b/namespacetz_1_1noise.html @@ -0,0 +1,121 @@ + + + + + + + +Topaz: tz::noise Namespace Reference + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.1.0.1 +
+
C++20 Graphics Engine
+
+
+ + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+ +
tz::noise Namespace Reference
+
+
+ +

Contains noise functions. +More...

+ + + + + + + + +

+Functions

float gold (vec2 uv)
 Gold Noise.
 
float simplex (vec2 uv)
 Simplex Noise.
 
+

Detailed Description

+

Contains noise functions.

+
+ + + + diff --git a/namespacetz_1_1wsi_1_1window__flag.html b/namespacetz_1_1wsi_1_1window__flag.html new file mode 100644 index 0000000000..87fe53ae33 --- /dev/null +++ b/namespacetz_1_1wsi_1_1window__flag.html @@ -0,0 +1,110 @@ + + + + + + + +Topaz: tz::wsi::window_flag Namespace Reference + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.1.0.1 +
+
C++20 Graphics Engine
+
+
+ + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+
tz::wsi::window_flag Namespace Reference
+
+
+ +

Represents an optional setting for a tz::wsi::window. +More...

+

Detailed Description

+

Represents an optional setting for a tz::wsi::window.

+

For default behaviour, refer to window_flag::none

+
+ + + + diff --git a/nav_f.png b/nav_f.png new file mode 100644 index 0000000000..72a58a529e Binary files /dev/null and b/nav_f.png differ diff --git a/nav_fd.png b/nav_fd.png new file mode 100644 index 0000000000..032fbdd4c5 Binary files /dev/null and b/nav_fd.png differ diff --git a/nav_g.png b/nav_g.png new file mode 100644 index 0000000000..2093a237a9 Binary files /dev/null and b/nav_g.png differ diff --git a/nav_h.png b/nav_h.png new file mode 100644 index 0000000000..33389b101d Binary files /dev/null and b/nav_h.png differ diff --git a/nav_hd.png b/nav_hd.png new file mode 100644 index 0000000000..de80f18ad6 Binary files /dev/null and b/nav_hd.png differ diff --git a/null_8hpp_source.html b/null_8hpp_source.html new file mode 100644 index 0000000000..395e19df15 --- /dev/null +++ b/null_8hpp_source.html @@ -0,0 +1,134 @@ + + + + + + + +Topaz: src/tz/core/memory/allocators/null.hpp Source File + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.1.0.1 +
+
C++20 Graphics Engine
+
+
+ + + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+
null.hpp
+
+
+
1#ifndef TOPAZ_CORE_ALLOCATORS_NULL_HPP
+
2#define TOPAZ_CORE_ALLOCATORS_NULL_HPP
+
3#include "tz/core/memory/memblk.hpp"
+
4#include "tz/core/types.hpp"
+
5
+
6namespace tz
+
7{
+
+ +
13 {
+
14 public:
+
15 constexpr null_allocator() = default;
+
16 constexpr tz::memblk allocate(std::size_t count) const{return tz::nullblk;}
+
17 constexpr void deallocate(tz::memblk blk) const{}
+
18 constexpr bool owns(tz::memblk blk) const{return blk == tz::nullblk;}
+
19 };
+
+
20
+
21 static_assert(tz::allocator<null_allocator>);
+
22}
+
23
+
24#endif // TOPAZ_CORE_ALLOCATORS_NULL_HPP
+
An allocator which always returns nullptr.
Definition null.hpp:13
+
Definition types.hpp:73
+
A non-owning, contiguous block of memory.
Definition memblk.hpp:12
+
+ + + + diff --git a/open.png b/open.png new file mode 100644 index 0000000000..30f75c7efe Binary files /dev/null and b/open.png differ diff --git a/opengl_2convert_8hpp_source.html b/opengl_2convert_8hpp_source.html new file mode 100644 index 0000000000..85d9a5130d --- /dev/null +++ b/opengl_2convert_8hpp_source.html @@ -0,0 +1,125 @@ + + + + + + + +Topaz: src/tz/gl/impl/opengl/convert.hpp Source File + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.1.0.1 +
+
C++20 Graphics Engine
+
+
+ + + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+
convert.hpp
+
+
+
1#ifndef TOPAZ_GL_IMPL_FRONTEND_OGL2_CONVERT_HPP
+
2#define TOPAZ_GL_IMPL_FRONTEND_OGL2_CONVERT_HPP
+
3#if TZ_OGL
+
4#include "tz/gl/declare/image_format.hpp"
+
5#include "tz/gl/impl/opengl/detail/image_format.hpp"
+
6
+
7namespace tz::gl
+
8{
+
9 constexpr tz::gl::ogl2::image_format to_ogl2(image_format fmt);
+
10 constexpr image_format from_ogl2(tz::gl::ogl2::image_format fmt);
+
11}
+
12#include "tz/gl/impl/opengl/convert.inl"
+
13
+
14#endif // TZ_OGL
+
15#endif // TOPAZ_GL_IMPL_FRONTEND_OGL2_CONVERT_HPP
+
image_format
Various image formats are supported in Topaz.
Definition image_format.hpp:33
+
+ + + + diff --git a/opengl_2convert_8inl_source.html b/opengl_2convert_8inl_source.html new file mode 100644 index 0000000000..e336e9581d --- /dev/null +++ b/opengl_2convert_8inl_source.html @@ -0,0 +1,210 @@ + + + + + + + +Topaz: src/tz/gl/impl/opengl/convert.inl Source File + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.1.0.1 +
+
C++20 Graphics Engine
+
+
+ + + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+
convert.inl
+
+
+
1#if TZ_OGL
+
2#include <tuple>
+
3#include <cstdint>
+
4#include <optional>
+
5
+
6namespace tz::gl
+
7{
+
8 using image_formatTuple = std::tuple<image_format, tz::gl::ogl2::image_format>;
+
9 using namespace tz::gl;
+
10
+
11 constexpr image_formatTuple tuple_map[] =
+
12 {
+
13 {image_format::undefined, ogl2::image_format::undefined},
+
14 {image_format::R8, ogl2::image_format::R8},
+
15 {image_format::R8_UNorm, ogl2::image_format::R8_UNorm},
+
16 {image_format::R8_SNorm, ogl2::image_format::R8_SNorm},
+
17 {image_format::R8_UInt, ogl2::image_format::R8_UInt},
+
18 {image_format::R8_SInt, ogl2::image_format::R8_SInt},
+
19 {image_format::R8_sRGB, ogl2::image_format::R8_sRGB},
+
20 {image_format::R16, ogl2::image_format::R16},
+
21 {image_format::R16_UNorm, ogl2::image_format::R16_UNorm},
+
22 {image_format::R16_SNorm, ogl2::image_format::R16_SNorm},
+
23 {image_format::R16_UInt, ogl2::image_format::R16_UInt},
+
24 {image_format::R16_SInt, ogl2::image_format::R16_SInt},
+
25 {image_format::RG16, ogl2::image_format::RG16},
+
26 {image_format::RG16_UNorm, ogl2::image_format::RG16_UNorm},
+
27 {image_format::RG16_SNorm, ogl2::image_format::RG16_SNorm},
+
28 {image_format::RG16_UInt, ogl2::image_format::RG16_UInt},
+
29 {image_format::RG16_SInt, ogl2::image_format::RG16_SInt},
+
30 {image_format::RG16_sRGB, ogl2::image_format::RG16_sRGB},
+
31 {image_format::RG32, ogl2::image_format::RG32},
+
32 {image_format::RG32_UNorm, ogl2::image_format::RG32_UNorm},
+
33 {image_format::RG32_SNorm, ogl2::image_format::RG32_SNorm},
+
34 {image_format::RG32_UInt, ogl2::image_format::RG32_UInt},
+
35 {image_format::RG32_SInt, ogl2::image_format::RG32_SInt},
+
36 {image_format::RGB24, ogl2::image_format::RGB24},
+
37 {image_format::RGB24_UNorm, ogl2::image_format::RGB24_UNorm},
+
38 {image_format::RGB24_SNorm, ogl2::image_format::RGB24_SNorm},
+
39 {image_format::RGB24_UInt, ogl2::image_format::RGB24_UInt},
+
40 {image_format::RGB24_SInt, ogl2::image_format::RGB24_SInt},
+
41 {image_format::RGB24_sRGB, ogl2::image_format::RGB24_sRGB},
+
42 {image_format::BGR24, ogl2::image_format::BGR24},
+
43 {image_format::BGR24_UNorm, ogl2::image_format::BGR24_UNorm},
+
44 {image_format::BGR24_SNorm, ogl2::image_format::BGR24_SNorm},
+
45 {image_format::BGR24_UInt, ogl2::image_format::BGR24_UInt},
+
46 {image_format::BGR24_SInt, ogl2::image_format::BGR24_SInt},
+
47 {image_format::BGR24_sRGB, ogl2::image_format::BGR24_sRGB},
+
48 {image_format::RGBA32, ogl2::image_format::RGBA32},
+
49 {image_format::RGBA32_UNorm, ogl2::image_format::RGBA32_UNorm},
+
50 {image_format::RGBA32_SNorm, ogl2::image_format::RGBA32_SNorm},
+
51 {image_format::RGBA32_UInt, ogl2::image_format::RGBA32_UInt},
+
52 {image_format::RGBA32_SInt, ogl2::image_format::RGBA32_SInt},
+
53 {image_format::RGBA32_sRGB, ogl2::image_format::RGBA32_sRGB},
+
54 {image_format::BGRA32, ogl2::image_format::BGRA32},
+
55 {image_format::BGRA32_UNorm, ogl2::image_format::BGRA32_UNorm},
+
56 {image_format::BGRA32_SNorm, ogl2::image_format::BGRA32_SNorm},
+
57 {image_format::BGRA32_UInt, ogl2::image_format::BGRA32_UInt},
+
58 {image_format::BGRA32_SInt, ogl2::image_format::BGRA32_SInt},
+
59 {image_format::BGRA32_sRGB, ogl2::image_format::BGRA32_sRGB},
+
60 {image_format::RGBA64_SFloat, ogl2::image_format::RGBA64_SFloat},
+
61 {image_format::RGBA128_SFloat, ogl2::image_format::RGBA128_SFloat},
+
62 {image_format::Depth16_UNorm, ogl2::image_format::Depth16_UNorm}
+
63 };
+
64
+
65 template<typename image_formatType>
+
66 constexpr std::optional<std::size_t> tuple_map_index_of(image_formatType type)
+
67 {
+
68 constexpr std::size_t map_len = sizeof(tuple_map) / sizeof(tuple_map[0]);
+
69 for(std::size_t i = 0; i < map_len; i++)
+
70 {
+
71 if(std::get<image_formatType>(tuple_map[i]) == type)
+
72 {
+
73 return i;
+
74 }
+
75 }
+
76 return std::nullopt;
+
77 }
+
78
+
79 constexpr ogl2::image_format to_ogl2(image_format fmt)
+
80 {
+
81 std::optional<std::size_t> index = tuple_map_index_of(fmt);
+
82 if(index.has_value())
+
83 {
+
84 return std::get<ogl2::image_format>(tuple_map[index.value()]);
+
85 }
+
86 return ogl2::image_format::undefined;
+
87 }
+
88
+
89 constexpr image_format from_ogl2(ogl2::image_format fmt)
+
90 {
+
91 std::optional<std::size_t> index = tuple_map_index_of(fmt);
+
92 if(index.has_value())
+
93 {
+
94 return std::get<image_format>(tuple_map[index.value()]);
+
95 }
+
96 return image_format::undefined;
+
97 }
+
98}
+
99
+
100#endif // TZ_OGL
+
image_format
Various image formats are supported in Topaz.
Definition image_format.hpp:33
+
+ + + + diff --git a/opengl_2detail_2buffer_8hpp_source.html b/opengl_2detail_2buffer_8hpp_source.html new file mode 100644 index 0000000000..420ed9dd50 --- /dev/null +++ b/opengl_2detail_2buffer_8hpp_source.html @@ -0,0 +1,226 @@ + + + + + + + +Topaz: src/tz/gl/impl/opengl/detail/buffer.hpp Source File + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.1.0.1 +
+
C++20 Graphics Engine
+
+
+ + + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+
buffer.hpp
+
+
+
1#ifndef TOPAZ_GL_IMPL_BACKEND_OGL2_BUFFER_HPP
+
2#define TOPAZ_GL_IMPL_BACKEND_OGL2_BUFFER_HPP
+
3#if TZ_OGL
+
4#include "tz/gl/impl/opengl/detail/tz_opengl.hpp"
+
5
+
6namespace tz::gl::ogl2
+
7{
+
+
12 enum class buffer_target : GLenum
+
13 {
+
15 index = GL_ELEMENT_ARRAY_BUFFER,
+
17 draw_indirect = GL_DRAW_INDIRECT_BUFFER,
+
19 uniform = GL_UNIFORM_BUFFER,
+
21 shader_storage = GL_SHADER_STORAGE_BUFFER,
+
23 parameter = GL_PARAMETER_BUFFER_ARB,
+
24 };
+
+
25
+
+ +
31 {
+ + +
36 };
+
+
37
+
+ +
43 {
+ + +
49 std::size_t size_bytes;
+
50 };
+
+
51
+
+
56 class buffer
+
57 {
+
58 public:
+
63 buffer(buffer_info info);
+
64 buffer(const buffer& copy) = delete;
+
65 buffer(buffer&& move);
+
66 ~buffer();
+
67 buffer& operator=(const buffer& copy) = delete;
+
68 buffer& operator=(buffer&& move);
+
69
+ + +
83 std::size_t size() const;
+
89 void* map();
+
95 const void* map() const;
+
100 void unmap();
+
107 template<typename T>
+
+
108 std::span<T> map_as()
+
109 {
+
110 return {reinterpret_cast<T*>(this->map()), this->size() / sizeof(T)};
+
111 }
+
+
118 template<tz::const_type T>
+
+
119 std::span<T> map_as() const
+
120 {
+
121 return {reinterpret_cast<T*>(this->map()), this->size() / sizeof(T)};
+
122 }
+
+
126 void basic_bind() const;
+
127 void custom_bind(buffer_target tar) const;
+
131 void bind_to_resource_id(unsigned int shader_resource_id) const;
+
136 static buffer null();
+
140 bool is_null() const;
+
141
+
142 using NativeType = GLuint;
+
143 NativeType native() const;
+
144
+
145 std::string debug_get_name() const;
+
146 void debug_set_name(std::string name);
+
147 private:
+
148 buffer();
+
149
+
150 GLuint buf;
+
151 buffer_info info;
+
152 mutable void* mapped_ptr = nullptr;
+
153 std::string debug_name = "";
+
154 };
+
+
155
+
156 namespace buffer_helper
+
157 {
+
163 void copy(const buffer& source, buffer& destination);
+
168 buffer clone_resized(const buffer& buf, std::size_t new_size);
+
169 }
+
170}
+
171
+
172#endif // TZ_OGL
+
173#endif // TOPAZ_GL_IMPL_BACKEND_OGL2_BUFFER_HPP
+
Documentation for OpenGL buffers.
Definition buffer.hpp:57
+
std::size_t size() const
Retrieve the size of the buffer's data-store, in bytes.
Definition buffer.cpp:56
+
void unmap()
Unmap the buffer.
Definition buffer.cpp:89
+
void * map()
Map the buffer, receiving a CPU-visible pointer.
Definition buffer.cpp:61
+
std::span< T > map_as()
Map the buffer as an array of some type.
Definition buffer.hpp:108
+
buffer_target get_target() const
Retrieves the target to which the buffer is bound.
Definition buffer.cpp:46
+
buffer_residency get_residency() const
Retrieves the residency of the buffer.
Definition buffer.cpp:51
+
std::span< T > map_as() const
Map the buffer as an array of some type.
Definition buffer.hpp:119
+ +
buffer_target
Specifies the target to which the buffer is bound for its data store.
Definition buffer.hpp:13
+
buffer_residency
Specifies the expected behaviour of the data store contents.
Definition buffer.hpp:31
+ + + + + + +
Specifies creation flags for a buffer.
Definition buffer.hpp:43
+
buffer_target target
Specifies the target to which the buffer is bound. Only one buffer can be bound to a target at a time...
Definition buffer.hpp:45
+
buffer_residency residency
Describes the usage and behaviour of the buffer's data store.
Definition buffer.hpp:47
+
std::size_t size_bytes
Specifies the size of the buffer, in bytes. buffers cannot be resized.
Definition buffer.hpp:49
+
+ + + + diff --git a/opengl_2detail_2framebuffer_8hpp_source.html b/opengl_2detail_2framebuffer_8hpp_source.html new file mode 100644 index 0000000000..53b1766e87 --- /dev/null +++ b/opengl_2detail_2framebuffer_8hpp_source.html @@ -0,0 +1,181 @@ + + + + + + + +Topaz: src/tz/gl/impl/opengl/detail/framebuffer.hpp Source File + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.1.0.1 +
+
C++20 Graphics Engine
+
+
+ + + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+
framebuffer.hpp
+
+
+
1#ifndef TOPAZ_GL_IMPL_BACKEND_OGL2_FRAMEBUFFER_HPP
+
2#define TOPAZ_GL_IMPL_BACKEND_OGL2_FRAMEBUFFER_HPP
+
3#if TZ_OGL
+
4#include "tz/core/data/vector.hpp"
+
5#include "tz/core/data/basic_list.hpp"
+
6#include "tz/gl/impl/opengl/detail/tz_opengl.hpp"
+
7#include "tz/gl/impl/opengl/detail/image.hpp"
+
8#include "tz/gl/impl/opengl/detail/renderbuffer.hpp"
+
9#include <variant>
+
10
+
11namespace tz::gl::ogl2
+
12{
+
17 using framebuffer_texture = std::variant<const image*, const render_buffer*>;
+
+ +
23 {
+ +
27 std::optional<framebuffer_texture> maybe_depth_attachment = std::nullopt;
+ +
30 };
+
+
31
+
+ +
37 {
+
38 public:
+ +
44 framebuffer(const framebuffer& copy) = delete;
+ + +
47
+
48 framebuffer& operator=(const framebuffer& rhs) = delete;
+
49 framebuffer& operator=(framebuffer&& rhs);
+
50
+
55 bool has_depth_attachment() const;
+
60 unsigned int colour_attachment_count() const;
+ +
66
+
70 void bind() const;
+
74 void clear() const;
+
75
+
80 static framebuffer null();
+
85 bool is_null() const;
+
86
+
87 using NativeType = GLuint;
+
88 NativeType native() const;
+
89 private:
+
90 framebuffer(std::nullptr_t);
+
91
+
92 GLuint fb;
+ +
94 };
+
+
95}
+
96
+
97#endif // TZ_OGL
+
98#endif // TOPAZ_GL_IMPL_BACKEND_OGL2_FRAMEBUFFER_HPP
+
Custom list, feature subset of std::vector.
Definition basic_list.hpp:21
+
Represents an OpenGL framebuffer object.
Definition framebuffer.hpp:37
+
static framebuffer null()
Retrieve the null framebuffer.
Definition framebuffer.cpp:122
+
void clear() const
Clear the framebuffer attachments, setting them to known values.
Definition framebuffer.cpp:111
+
tz::vec2ui get_dimensions() const
Retrieve the dimensions {width, height}, in pixels, of every framebuffer attachment.
Definition framebuffer.cpp:93
+
unsigned int colour_attachment_count() const
Retrieve the number of colour attachments associated with the framebuffer.
Definition framebuffer.cpp:88
+
bool has_depth_attachment() const
Query as to whether the framebuffer has a depth attachment.
Definition framebuffer.cpp:79
+
void bind() const
Bind the framebuffer, causing subsequent draw calls to render into the framebuffer instead of its pre...
Definition framebuffer.cpp:102
+
bool is_null() const
Query as to whether this is the null framebuffer.
Definition framebuffer.cpp:127
+
vector< unsigned int, 2 > vec2ui
A vector of two unsigned ints.
Definition vector.hpp:244
+
std::variant< const image *, const render_buffer * > framebuffer_texture
Describes a reference to either an image or renderbuffer.
Definition framebuffer.hpp:17
+
Specifies creation flags for a framebuffer.
Definition framebuffer.hpp:23
+
tz::basic_list< framebuffer_texture > colour_attachments
List of colour attachments in-order. Default empty.
Definition framebuffer.hpp:29
+
std::optional< framebuffer_texture > maybe_depth_attachment
Depth attachment, if one exists. Default nullopt.
Definition framebuffer.hpp:27
+
tz::vec2ui dimensions
{width, height}, in pixels.
Definition framebuffer.hpp:25
+
+ + + + diff --git a/opengl_2detail_2sampler_8hpp_source.html b/opengl_2detail_2sampler_8hpp_source.html new file mode 100644 index 0000000000..641c75ba1d --- /dev/null +++ b/opengl_2detail_2sampler_8hpp_source.html @@ -0,0 +1,162 @@ + + + + + + + +Topaz: src/tz/gl/impl/opengl/detail/sampler.hpp Source File + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.1.0.1 +
+
C++20 Graphics Engine
+
+
+ + + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+
sampler.hpp
+
+
+
1#ifndef TOPAZ_GL_IMPL_BACKEND_OGL2_SAMPLER_HPP
+
2#define TOPAZ_GL_IMPL_BACKEND_OGL2_SAMPLER_HPP
+
3#if TZ_OGL
+
4#include "tz/gl/impl/opengl/detail/tz_opengl.hpp"
+
5
+
6namespace tz::gl::ogl2
+
7{
+
+
12 enum class lookup_filter : GLint
+
13 {
+
15 nearest = GL_NEAREST,
+
17 linear = GL_LINEAR
+
18 };
+
+
19
+
+
24 enum class address_mode : GLint
+
25 {
+
27 clamp_to_edge = GL_CLAMP_TO_EDGE,
+
29 repeat = GL_REPEAT,
+
31 mirrored_repeat = GL_MIRRORED_REPEAT
+
32
+
33 };
+
+
34
+ +
53}
+
54
+
55#endif // TZ_OGL
+
56#endif // TOPAZ_GL_IMPL_BACKEND_OGL2_SAMPLER_HPP
+
address_mode
Determines the value retrieved from a texture lookup if the texture coordinate is out of range.
Definition sampler.hpp:25
+
lookup_filter
Determines how sub-pixel colours are filtered.
Definition sampler.hpp:13
+ + + + + +
Describes various details about texture lookups from a sampled image.
Definition sampler.hpp:40
+
address_mode address_mode_t
Addressing mode used when out of range on the t (y) axis.
Definition sampler.hpp:49
+
address_mode address_mode_s
Addressing mode used when out of range on the s (x) axis.
Definition sampler.hpp:47
+
address_mode address_mode_r
Addressing mode used when out of range on the r (z) axis. When not in the dark ages this would be nam...
Definition sampler.hpp:51
+
lookup_filter mag_filter
Filter used when texels are smaller than screen pixels.
Definition sampler.hpp:44
+
lookup_filter min_filter
Filter used when texels are larger than screen pixels.
Definition sampler.hpp:42
+
+ + + + diff --git a/output_8hpp_source.html b/output_8hpp_source.html new file mode 100644 index 0000000000..5c95473268 --- /dev/null +++ b/output_8hpp_source.html @@ -0,0 +1,187 @@ + + + + + + + +Topaz: src/tz/gl/output.hpp Source File + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.1.0.1 +
+
C++20 Graphics Engine
+
+
+ + + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+
output.hpp
+
+
+
1#ifndef TOPAZ_GL2_OUTPUT_HPP
+
2#define TOPAZ_GL2_OUTPUT_HPP
+
3#include "tz/core/data/basic_list.hpp"
+
4#include "tz/wsi/window.hpp"
+
5#include "tz/gl/api/output.hpp"
+
6#include "tz/gl/component.hpp"
+
7
+
8namespace tz::gl
+
9{
+
+ +
11 {
+ +
13 icomponent* depth = nullptr;
+
14 };
+
+
15
+
+
16 class image_output final : public ioutput
+
17 {
+
18 public:
+ +
20 constexpr virtual output_target get_target() const override
+
21 {
+
22 return output_target::offscreen_image;
+
23 }
+
24
+
25 virtual std::unique_ptr<ioutput> unique_clone() const override
+
26 {
+
27 return std::make_unique<image_output>(*this);
+
28 }
+
29
+
30 std::size_t colour_attachment_count() const;
+
31 bool has_depth_attachment() const;
+
32
+
33 const image_component& get_colour_attachment(std::size_t colour_attachment_idx) const;
+
34 image_component& get_colour_attachment(std::size_t colour_attachment_idx);
+
35
+
36 const image_component& get_depth_attachment() const;
+
37 image_component& get_depth_attachment();
+
38 private:
+
39 std::vector<image_component*> colour_attachments;
+
40 image_component* depth_attachment;
+
41 };
+
+
42
+
+
43 class window_output final : public ioutput
+
44 {
+
45 public:
+ +
47 constexpr virtual output_target get_target() const override
+
48 {
+
49 return output_target::window;
+
50 }
+
51
+
52 virtual std::unique_ptr<ioutput> unique_clone() const override
+
53 {
+
54 return std::make_unique<window_output>(*this);
+
55 }
+
56
+
57 const tz::wsi::window& get_window() const;
+
58 private:
+
59 const tz::wsi::window* wnd;
+
60 };
+
+
61}
+
62
+
63#endif // TOPAZ_GL2_OUTPUT_HPP
+
Custom list, feature subset of std::vector.
Definition basic_list.hpp:21
+
Definition component.hpp:10
+
Definition component.hpp:34
+
Definition output.hpp:17
+
Definition output.hpp:43
+
Definition output.hpp:44
+
tz::wsi::window & window()
Retrieve the application window.
Definition tz.cpp:125
+
Definition output.hpp:11
+
Represents an application window.
Definition window.hpp:40
+
+ + + + diff --git a/physical__device_8hpp_source.html b/physical__device_8hpp_source.html new file mode 100644 index 0000000000..ed09ebdd03 --- /dev/null +++ b/physical__device_8hpp_source.html @@ -0,0 +1,260 @@ + + + + + + + +Topaz: src/tz/gl/impl/vulkan/detail/hardware/physical_device.hpp Source File + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.1.0.1 +
+
C++20 Graphics Engine
+
+
+ + + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+
physical_device.hpp
+
+
+
1#ifndef TOPAZ_GL_IMPL_BACKEND_VK2_HARDWARE_PHYSICAL_DEVICE_HPP
+
2#define TOPAZ_GL_IMPL_BACKEND_VK2_HARDWARE_PHYSICAL_DEVICE_HPP
+
3#if TZ_VULKAN
+
4#include "tz/core/data/vector.hpp"
+
5#include "tz/core/data/basic_list.hpp"
+
6#include "tz/core/data/enum_field.hpp"
+
7#include "tz/gl/impl/vulkan/detail/tz_vulkan.hpp"
+
8#include "tz/gl/impl/vulkan/detail/image_format.hpp"
+
9#include "tz/gl/impl/vulkan/detail/features.hpp"
+
10
+
11namespace tz::gl::vk2
+
12{
+
+ +
18 {
+
19 Nvidia,
+
20 AMD,
+
21 Intel,
+
22 Other
+
23 };
+
+
24
+
25 enum class PhysicalDeviceType
+
26 {
+
27 IntegratedGPU,
+
28 DiscreteGPU,
+
29 VirtualGPU,
+
30 CPU,
+
31 Unknown
+
32 };
+
33
+
+ +
35 {
+
36 VkPhysicalDeviceMemoryProperties memory;
+
37 VkPhysicalDeviceLimits limits;
+
38 };
+
+
39
+
+ +
41 {
+ +
43 PhysicalDeviceType type;
+
44 std::string name;
+
45 InternalDeviceInfo internal;
+
46 };
+
+
47
+
+ +
49 {
+
50 PhysicalDeviceSurfaceCapabilityInfo(VkSurfaceCapabilitiesKHR vk_capabilities);
+
+ +
52 {
+
53 tz::vector<std::uint32_t, 2> current_extent;
+
54 tz::vector<std::uint32_t, 2> min_image_extent;
+
55 tz::vector<std::uint32_t, 2> max_image_extent;
+
56 };
+
+
57 std::uint32_t min_image_count;
+
58 std::uint32_t max_image_count;
+
59 VkSurfaceTransformFlagBitsKHR current_transform;
+
60 std::optional<SwapchainExtent> maybe_surface_dimensions;
+
61 };
+
+
62
+
63 namespace detail
+
64 {
+
65 /*
+
66 * Convert a vkPhysicalDeviceFeatures to a Topaz Vulkan feature.
+
67 * Note: If none of the enabled features are Topaz Vulkan features, the resultant field will be empty.
+
68 */
+
69 DeviceFeatureField to_feature_field(DeviceFeatureInfo vulkan_features);
+
70 /*
+
71 * Convert a Topaz Vulkan feature into its vulkan-api-friendly variant.
+
72 */
+
73 DeviceFeatureInfo from_feature_field(const DeviceFeatureField& feature_field);
+
74
+
75 PhysicalDeviceVendor to_tz_vendor(VkDriverId driver_id);
+
76 PhysicalDeviceType to_tz_type(VkPhysicalDeviceType type);
+
77 }
+
78
+
+ +
84 {
+
85 public:
+
89 PhysicalDevice(VkPhysicalDevice native, const VulkanInstance& instance);
+
94 DeviceFeatureField get_supported_features() const;
+
99 DeviceExtensionList get_supported_extensions() const;
+ + + +
116 PhysicalDeviceSurfaceCapabilityInfo get_surface_capabilities() const;
+
122 bool supports_image_colour_format(image_format colour_format) const;
+
127 bool supports_image_sampled_format(image_format sampled_format) const;
+
132 bool supports_image_depth_format(image_format depth_format) const;
+
136 const VulkanInstance& get_instance() const;
+
137
+
138 using NativeType = VkPhysicalDevice;
+
139 NativeType native() const;
+
140 static PhysicalDevice null();
+
141 bool is_null() const;
+
142 bool operator==(const PhysicalDevice& rhs) const;
+
143 private:
+
144 struct DeviceProps
+
145 {
+
146 VkPhysicalDeviceProperties2 props = {};
+
147 VkPhysicalDeviceDriverProperties driver_props = {};
+
148 };
+ +
150 DeviceProps get_internal_device_props() const;
+
151 bool supports_image_format(image_format format, VkFormatFeatureFlagBits feature_type) const;
+
152
+
153 VkPhysicalDevice dev;
+
154 const VulkanInstance* instance;
+
155 };
+
+
156
+
157 using PhysicalDeviceList = tz::basic_list<PhysicalDevice>;
+
158
+
159 /*
+
160 * @ingroup tz_gl_vk
+
161 */
+
162 PhysicalDeviceList get_all_devices();
+
169 PhysicalDeviceList get_all_devices(const VulkanInstance& instance);
+
170}
+
171
+
172#endif // TZ_VULKAN
+
173#endif // TOPAZ_GL_IMPL_BACKEND_VK2_HARDWARE_PHYSICAL_DEVICE_HPP
+
Custom list, feature subset of std::vector.
Definition basic_list.hpp:21
+
Represents something resembling a graphics card that can perform general graphical operations.
Definition physical_device.hpp:84
+
PhysicalDeviceInfo get_info() const
Retrieve the vendor.
Definition physical_device.cpp:209
+
tz::basic_list< SurfacePresentMode > get_supported_surface_present_modes() const
Retrieve a list of all SurfacePresentModes that could be used to present images to the WindowSurface ...
Definition physical_device.cpp:247
+
bool supports_image_depth_format(image_format depth_format) const
Query as to whether the given image_format can be used as a framebuffer depth/stencil attachment and ...
Definition physical_device.cpp:293
+
bool supports_image_sampled_format(image_format sampled_format) const
Query as to whether an ImageView using this format can be sampled from within a shader.
Definition physical_device.cpp:287
+
tz::basic_list< image_format > get_supported_surface_formats() const
Retrieve a list of all image_formats that could represent the given window surface.
Definition physical_device.cpp:225
+
bool supports_image_colour_format(image_format colour_format) const
Query as to whether the given image_format can be used as a framebuffer colour attachment and as an i...
Definition physical_device.cpp:281
+
DeviceExtensionList get_supported_extensions() const
PhysicalDevices support various extensions, but not necessarily all of them.
Definition physical_device.cpp:184
+
const VulkanInstance & get_instance() const
Retrieve the VulkanInstance to which this physical device belongs.
Definition physical_device.cpp:299
+
DeviceFeatureField get_supported_features() const
PhysicalDevices do not necessarily support all available DeviceFeatures.
Definition physical_device.cpp:175
+
Represents a vulkan instance, which acts as a reference to all per-application state.
Definition tz_vulkan.hpp:200
+
Definition vector.hpp:18
+
image_format
Various image formats are supported.
Definition image_format.hpp:35
+
PhysicalDeviceVendor
Represents a PhysicalDevice manufacturer.
Definition physical_device.hpp:18
+
PhysicalDeviceList get_all_devices(const VulkanInstance &instance)
Retrieve a list of all physical devices available on the machine for the given VulkanInstance.
Definition physical_device.cpp:353
+
Definition physical_device.hpp:35
+
Definition physical_device.hpp:41
+ +
Definition physical_device.hpp:49
+
+ + + + diff --git a/pipeline__layout_8hpp_source.html b/pipeline__layout_8hpp_source.html new file mode 100644 index 0000000000..24954b802e --- /dev/null +++ b/pipeline__layout_8hpp_source.html @@ -0,0 +1,159 @@ + + + + + + + +Topaz: src/tz/gl/impl/vulkan/detail/pipeline_layout.hpp Source File + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.1.0.1 +
+
C++20 Graphics Engine
+
+
+ + + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+
pipeline_layout.hpp
+
+
+
1#ifndef TOPAZ_GL_IMPL_BACKEND_VK2_PIPELINE_LAYOUT_HPP
+
2#define TOPAZ_GL_IMPL_BACKEND_VK2_PIPELINE_LAYOUT_HPP
+
3#if TZ_VULKAN
+
4#include "tz/gl/impl/vulkan/detail/descriptors.hpp"
+
5
+
6namespace tz::gl::vk2
+
7{
+
+ +
13 {
+
15 std::vector<const DescriptorLayout*> descriptor_layouts;
+ +
18 };
+
+
19
+
+ +
25 {
+
26 public:
+ +
28 PipelineLayout(const PipelineLayout& copy) = delete;
+ + +
31
+
32 PipelineLayout& operator=(const PipelineLayout& rhs) = delete;
+
33 PipelineLayout& operator=(PipelineLayout&& rhs);
+
34
+
35 const LogicalDevice& get_device() const;
+
36
+
37 using NativeType = VkPipelineLayout;
+
38 NativeType native() const;
+
39
+
40 static PipelineLayout null();
+
41 bool is_null() const;
+
42 private:
+ +
44
+
45 VkPipelineLayout pipeline_layout;
+
46 const LogicalDevice* logical_device;
+
47 };
+
+
48}
+
49
+
50#endif // TZ_VULKAN
+
51#endif // TOPAZ_GL_IMPL_BACKEND_VK2_PIPELINE_LAYOUT_HPP
+
Logical interface to an existing PhysicalDevice.
Definition logical_device.hpp:95
+
Represents an interface between shader stages and shader resources in terms of the layout of a group ...
Definition pipeline_layout.hpp:25
+
Specifies creation flags for a PipelineLayout.
Definition pipeline_layout.hpp:13
+
const LogicalDevice * logical_device
Owning LogicalDevice. Must not be nullptr or null device.
Definition pipeline_layout.hpp:17
+
std::vector< const DescriptorLayout * > descriptor_layouts
List of layouts, in order.
Definition pipeline_layout.hpp:15
+
+ + + + diff --git a/plus.svg b/plus.svg new file mode 100644 index 0000000000..0752016553 --- /dev/null +++ b/plus.svg @@ -0,0 +1,9 @@ + + + + + + + + + diff --git a/plusd.svg b/plusd.svg new file mode 100644 index 0000000000..0c65bfe946 --- /dev/null +++ b/plusd.svg @@ -0,0 +1,9 @@ + + + + + + + + + diff --git a/polymorphic__list_8hpp_source.html b/polymorphic__list_8hpp_source.html new file mode 100644 index 0000000000..eeea5714ab --- /dev/null +++ b/polymorphic__list_8hpp_source.html @@ -0,0 +1,178 @@ + + + + + + + +Topaz: src/tz/core/data/polymorphic_list.hpp Source File + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.1.0.1 +
+
C++20 Graphics Engine
+
+
+ + + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+
polymorphic_list.hpp
+
+
+
1#ifndef TOPAZ_GL_VK_COMMON_POLYMORPHIC_LIST_HPP
+
2#define TOPAZ_GL_VK_COMMON_POLYMORPHIC_LIST_HPP
+
3#include "tz/core/data/basic_list.hpp"
+
4#include <memory>
+
5
+
6namespace tz
+
7{
+
8 template<typename T>
+
9 class InterfaceIterator;
+
10
+
16 template<typename T, typename Allocator = std::allocator<std::unique_ptr<T>>>
+
+ +
18 {
+
19 public:
+
20 using Pointer = T*;
+
21 using Reference = T&;
+ +
23
+
27 PolymorphicList() = default;
+
34 template<typename Derived, typename... Args>
+
35 Reference emplace(Args&&... args);
+ +
43 Iterator end();
+
47 Iterator begin() const;
+
51 Iterator end() const;
+
56 std::size_t size() const;
+
60 void clear();
+
65 const T& operator[](std::size_t idx) const;
+
70 T& operator[](std::size_t idx);
+
71 private:
+
72 using SmartPointer = std::unique_ptr<T>;
+
73 using SmartPointerConst = std::unique_ptr<const T>;
+ +
75 };
+
+
76
+
77 template<typename T>
+
+ +
79 {
+
80 public:
+
81 InterfaceIterator(const std::unique_ptr<T>* loc);
+
82
+
83 T& operator*();
+
84 const T& operator*() const;
+
85 T* operator->();
+
86 const T* operator->() const;
+
87 InterfaceIterator<T>& operator++();
+
88 InterfaceIterator<T>& operator++(int);
+
89 bool operator==(const InterfaceIterator<T>& rhs) const;
+
90 private:
+
91 const std::unique_ptr<T>* loc;
+
92 };
+
+
93}
+
94
+
95#include "tz/core/data/polymorphic_list.inl"
+
96#endif // TOPAZ_GL_VK_COMMON_POLYMORPHIC_LIST_HPP
+
Definition polymorphic_list.hpp:79
+
Definition polymorphic_list.hpp:18
+
Iterator end()
Retrieve the end interator.
Definition polymorphic_list.inl:21
+
void clear()
Remove all elements from the list.
Definition polymorphic_list.inl:45
+
std::size_t size() const
Retrieve the number of elements.
Definition polymorphic_list.inl:39
+
Iterator begin()
Retrieve the begin interator.
Definition polymorphic_list.inl:15
+
PolymorphicList()=default
Create an empty list.
+
Reference emplace(Args &&... args)
Add a new element to the back of the list.
Definition polymorphic_list.inl:7
+
const T & operator[](std::size_t idx) const
Retrieve a base-class reference to the element at the given index.
Definition polymorphic_list.inl:51
+
Custom list, feature subset of std::vector.
Definition basic_list.hpp:21
+
+ + + + diff --git a/polymorphic__list_8inl_source.html b/polymorphic__list_8inl_source.html new file mode 100644 index 0000000000..6b945b9a5b --- /dev/null +++ b/polymorphic__list_8inl_source.html @@ -0,0 +1,243 @@ + + + + + + + +Topaz: src/tz/core/data/polymorphic_list.inl Source File + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.1.0.1 +
+
C++20 Graphics Engine
+
+
+ + + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+
polymorphic_list.inl
+
+
+
1#include <utility>
+
2
+
3namespace tz
+
4{
+
5 template<typename T, typename Allocator>
+
6 template<typename Derived, typename... Args>
+
+
7 typename PolymorphicList<T, Allocator>::Reference PolymorphicList<T, Allocator>::emplace(Args&&... args)
+
8 {
+
9 auto ptr = static_cast<SmartPointer>(std::make_unique<Derived>(std::forward<Args>(args)...));
+
10 this->elements.add(std::move(ptr));
+
11 return *this->elements.back();
+
12 }
+
+
13
+
14 template<typename T, typename Allocator>
+
+ +
16 {
+
17 return {this->elements.data()};
+
18 }
+
+
19
+
20 template<typename T, typename Allocator>
+
+ +
22 {
+
23 return {this->elements.data() + this->elements.length()};
+
24 }
+
+
25
+
26 template<typename T, typename Allocator>
+
+ +
28 {
+
29 return {this->elements.data()};
+
30 }
+
+
31
+
32 template<typename T, typename Allocator>
+
+ +
34 {
+
35 return {this->elements.data() + this->elements.length()};
+
36 }
+
+
37
+
38 template<typename T, typename Allocator>
+
+ +
40 {
+
41 return this->elements.length();
+
42 }
+
+
43
+
44 template<typename T, typename Allocator>
+
+ +
46 {
+
47 this->elements.clear();
+
48 }
+
+
49
+
50 template<typename T, typename Allocator>
+
+
51 const T& PolymorphicList<T, Allocator>::operator[](std::size_t idx) const
+
52 {
+
53 tz::assert(idx < this->size(), "Index %zu out of range, size = %zu", idx, this->size());
+
54 return *this->elements[idx];
+
55 }
+
+
56
+
57 template<typename T, typename Allocator>
+
+ +
59 {
+
60 tz::assert(idx < this->size(), "Index %zu out of range, size = %zu", idx, this->size());
+
61 return *this->elements[idx];
+
62 }
+
+
63
+
64 template<typename T>
+
65 InterfaceIterator<T>::InterfaceIterator(const std::unique_ptr<T>* loc):
+
66 loc(loc)
+
67 {}
+
68
+
69 template<typename T>
+
70 T& InterfaceIterator<T>::operator*()
+
71 {
+
72 return **this->loc;
+
73 }
+
74
+
75 template<typename T>
+
76 const T& InterfaceIterator<T>::operator*() const
+
77 {
+
78 return **this->loc;
+
79 }
+
80
+
81 template<typename T>
+
82 T* InterfaceIterator<T>::operator->()
+
83 {
+
84 return this->loc->get();
+
85 }
+
86
+
87 template<typename T>
+
88 const T* InterfaceIterator<T>::operator->() const
+
89 {
+
90 return this->loc->get();
+
91 }
+
92
+
93 template<typename T>
+
94 InterfaceIterator<T>& InterfaceIterator<T>::operator++()
+
95 {
+
96 loc++;
+
97 return *this;
+
98 }
+
99
+
100 template<typename T>
+
101 InterfaceIterator<T>& InterfaceIterator<T>::operator++(int)
+
102 {
+
103 ++loc;
+
104 return *this;
+
105 }
+
106
+
107 template<typename T>
+
108 bool InterfaceIterator<T>::operator==(const InterfaceIterator<T>& rhs) const
+
109 {
+
110 return this->loc->get() == rhs.loc->get();
+
111 }
+
112}
+
Definition polymorphic_list.hpp:79
+
Definition polymorphic_list.hpp:18
+
void clear()
Remove all elements from the list.
Definition polymorphic_list.inl:45
+
void assert(bool condition, detail::format_string fmt="<No message>", Args &&... args)
Assert on a condition.
Definition debug.inl:33
+
+ + + + diff --git a/profile_8hpp_source.html b/profile_8hpp_source.html new file mode 100644 index 0000000000..26ff8b4ce2 --- /dev/null +++ b/profile_8hpp_source.html @@ -0,0 +1,137 @@ + + + + + + + +Topaz: src/tz/core/profile.hpp Source File + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.1.0.1 +
+
C++20 Graphics Engine
+
+
+ + + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+
profile.hpp
+
+
+
1#ifndef TZ_PROFILE_HPP
+
2#define TZ_PROFILE_HPP
+
3#if TZ_PROFILE
+
4#include "tracy/Tracy.hpp"
+
5#include "common/TracySystem.hpp"
+
6#include "client/TracyProfiler.hpp"
+
7#endif
+
8#undef assert
+
9
+
10#if TZ_PROFILE
+
11 #define CONCAT_tzPROF(a, b) CONCAT_INNER_tzPROF(a, b)
+
12 #define CONCAT_INNER_tzPROF(a, b) a ## b
+
13
+
14 #define TZ_UNIQUE_NAME(base) CONCAT_tzPROF(base, __LINE__)
+
15 #define TZ_PROFZONE(name, colour) ZoneNamedNC(TZ_UNIQUE_NAME(tracy_profvar), name, colour, true)
+
16 #define TZ_THREAD(name) tracy::SetThreadName(name)
+
17 #define TZ_FRAME FrameMark
+
18 #define TZ_FRAME_BEGIN FrameMarkStart("Frame Loop")
+
19 #define TZ_FRAME_END FrameMarkEnd("Frame Loop")
+
20#else
+
21 #define TZ_PROFZONE(name, colour)
+
22 #define TZ_THREAD(name)
+
23 #define TZ_FRAME
+
24 #define TZ_FRAME_BEGIN
+
25 #define TZ_FRAME_END
+
26#endif
+
27
+
28#endif // TZ_PROFILE_HPP
+
+ + + + diff --git a/quat_8hpp_source.html b/quat_8hpp_source.html new file mode 100644 index 0000000000..a0c278d2bd --- /dev/null +++ b/quat_8hpp_source.html @@ -0,0 +1,154 @@ + + + + + + + +Topaz: src/tz/core/data/quat.hpp Source File + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.1.0.1 +
+
C++20 Graphics Engine
+
+
+ + + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+
quat.hpp
+
+
+
1#ifndef TOPAZ_CORE_DATA_QUAT_HPP
+
2#define TOPAZ_CORE_DATA_QUAT_HPP
+
3#include "tz/core/data/vector.hpp"
+
4#include "tz/core/matrix.hpp"
+
5
+
6namespace tz
+
7{
+
+
8 class quat : public tz::vec4
+
9 {
+
10 public:
+
11 using tz::vec4::vec4;
+
12 quat(const tz::vec4& vec);
+
13 static quat from_axis_angle(tz::vec3 axis, float angle);
+
14 tz::mat4 matrix() const;
+
15 quat& inverse();
+
16 quat inversed() const;
+
17 void combine(const quat& rhs);
+
18 quat combined(const quat& rhs) const;
+
19 tz::vec3 rotate(tz::vec3 position) const;
+
20 void normalise();
+
21 quat normalised() const;
+
22 quat slerp(const quat& rhs, float factor) const;
+
23
+
24 quat& operator*=(const quat& rhs);
+
25 quat operator*(const quat& rhs) const;
+
26
+
27 static quat zero(){return {0.0f, 0.0f, 0.0f, 0.0f};}
+
28 static quat filled(float f){return {f, f, f, f};}
+
29 };
+
+
30};
+
31
+
32namespace std
+
33{
+
34 template<>
+
35 struct hash<tz::quat> : public hash<tz::vec4>{};
+
36}
+
37
+
38#endif // TOPAZ_CORE_DATA_QUAT_HPP
+
Represents a row-major matrix with R rows and C columns.
Definition matrix.hpp:16
+
Definition quat.hpp:9
+
matrix< float, 4, 4 > mat4
Definition matrix.hpp:208
+
vector< float, 4 > vec4
A vector of four floats.
Definition vector.hpp:219
+
vector< float, 3 > vec3
A vector of three floats.
Definition vector.hpp:217
+
+ + + + diff --git a/queue_8hpp_source.html b/queue_8hpp_source.html new file mode 100644 index 0000000000..3cc4d21469 --- /dev/null +++ b/queue_8hpp_source.html @@ -0,0 +1,279 @@ + + + + + + + +Topaz: src/tz/gl/impl/vulkan/detail/hardware/queue.hpp Source File + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.1.0.1 +
+
C++20 Graphics Engine
+
+
+ + + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+
queue.hpp
+
+
+
1#ifndef TOPAZ_GL_IMPL_BACKEND_VK2_HARDWARE_QUEUE_HPP
+
2#define TOPAZ_GL_IMPL_BACKEND_VK2_HARDWARE_QUEUE_HPP
+
3#if TZ_VULKAN
+
4#include "tz/core/data/basic_list.hpp"
+
5#include "vulkan/vulkan.h"
+
6#include <cstdint>
+
7
+
8namespace tz::gl::vk2
+
9{
+
10 class LogicalDevice;
+
11 class CommandBuffer;
+
12 class BinarySemaphore;
+
13 class Swapchain;
+
14 class Fence;
+
15
+
+
20 enum class PipelineStage
+
21 {
+
23 Top = VK_PIPELINE_STAGE_TOP_OF_PIPE_BIT,
+
25 Bottom = VK_PIPELINE_STAGE_BOTTOM_OF_PIPE_BIT,
+
27 AllCommands = VK_PIPELINE_STAGE_ALL_COMMANDS_BIT,
+
29 AllGraphics = VK_PIPELINE_STAGE_ALL_GRAPHICS_BIT,
+
31 DrawIndirect = VK_PIPELINE_STAGE_DRAW_INDIRECT_BIT,
+
33 VertexIndexInput = VK_PIPELINE_STAGE_VERTEX_INPUT_BIT,
+
35 VertexShader = VK_PIPELINE_STAGE_VERTEX_SHADER_BIT,
+
37 TessellationControlShader = VK_PIPELINE_STAGE_TESSELLATION_CONTROL_SHADER_BIT,
+
39 TessellationEvaluationShader = VK_PIPELINE_STAGE_TESSELLATION_EVALUATION_SHADER_BIT,
+
41 GeometryShader = VK_PIPELINE_STAGE_GEOMETRY_SHADER_BIT,
+
43 FragmentShader = VK_PIPELINE_STAGE_FRAGMENT_SHADER_BIT,
+
45 EarlyFragmentTests = VK_PIPELINE_STAGE_EARLY_FRAGMENT_TESTS_BIT,
+
47 LateFragmentTests = VK_PIPELINE_STAGE_LATE_FRAGMENT_TESTS_BIT,
+
49 ColourAttachmentOutput = VK_PIPELINE_STAGE_COLOR_ATTACHMENT_OUTPUT_BIT,
+
50 ComputeShader = VK_PIPELINE_STAGE_COMPUTE_SHADER_BIT,
+
52 TransferCommands = VK_PIPELINE_STAGE_TRANSFER_BIT,
+
53 };
+
+
54
+
55
+
56 namespace hardware
+
57 {
+
+
58 struct QueueInfo
+
59 {
+
60 const LogicalDevice* dev;
+
61 std::uint32_t queue_family_idx;
+
62 std::uint32_t queue_idx;
+
63 };
+
+
64
+
+
69 class Queue
+
70 {
+
71 public:
+
+ +
76 {
+
+
77 struct WaitInfo
+
78 {
+ + +
83 std::uint64_t timeline = 0;
+
84 };
+
+
85
+
+ +
87 {
+
88 const BinarySemaphore* signal_semaphore;
+
89 std::uint64_t timeline = 0;
+
90 };
+
+
91
+ + + + +
100 };
+
+
101
+
+
103 enum class PresentResult
+
104 {
+
106 Success_NoIssue,
+
108 Success_Suboptimal,
+
110 Fail_OutOfDate,
+
112 Fail_AccessDenied,
+
114 Fail_SurfaceLost,
+
116 Fail_FatalError
+
117 };
+
+
118
+ +
131
+
132 Queue(QueueInfo info);
+
133
+
134 const QueueInfo& get_info() const;
+
135 const LogicalDevice& get_device() const;
+
136 void set_logical_device(const LogicalDevice& device);
+
141 void submit(SubmitInfo submit_info);
+
147 [[nodiscard]] PresentResult present(PresentInfo present_info);
+
148
+
149 using NativeType = VkQueue;
+
150 NativeType native() const;
+
151
+
152 static Queue null();
+
153 bool is_null() const;
+
154
+
155 bool operator==(const Queue& rhs) const;
+
156 private:
+
157 Queue();
+
158 void execute_cpu_side_command_buffer(const CommandBuffer& command_buffer) const;
+
159
+
160 VkQueue queue;
+
161 QueueInfo info;
+
162 };
+
+
163 }
+
164}
+
165
+
166#endif // TZ_VULKAN
+
167#endif // TOPAZ_GL_IMPL_BACKEND_VK2_HARDWARE_QUEUE_HPP
+
Custom list, feature subset of std::vector.
Definition basic_list.hpp:21
+
Implements tz::gl::device_type.
Definition device.hpp:69
+
Synchronisation primitive which is not interactable on the host and which has two states:
Definition semaphore.hpp:22
+
Represents storage for vulkan commands, such as draw calls, binds, transfers etc.....
Definition command.hpp:427
+
Synchronisation primitive which is useful to detect completion of a GPU operation,...
Definition fence.hpp:26
+
Logical interface to an existing PhysicalDevice.
Definition logical_device.hpp:95
+
Swapchains are infrastructures which represent GPU images we will render to before they can be presen...
Definition swapchain.hpp:32
+
Represents a single hardware Queue.
Definition queue.hpp:70
+
PresentResult
Describes the result of a presentation request. See Queue::present.
Definition queue.hpp:104
+
void submit(SubmitInfo submit_info)
Submit the queue, including any associated command buffers and perform necessary synchronisation.
Definition queue.cpp:35
+
PresentResult present(PresentInfo present_info)
Queue an image for presentation.
Definition queue.cpp:130
+
PipelineStage
Specifies a certain stage (point of execution) during the invocation of a graphics pipeline.
Definition queue.hpp:21
+ + + + + + + + + + + + + + + +
Specifies information about a present request issued to a Queue.
Definition queue.hpp:123
+
const Swapchain * swapchain
Pointer to a swapchain from which an image will be sourced. This must not be nullptr.
Definition queue.hpp:127
+
tz::basic_list< const BinarySemaphore * > wait_semaphores
List of wait semaphores. The present request will not be issued until all of these semaphores are sig...
Definition queue.hpp:125
+
std::uint32_t swapchain_image_index
Index to the swapchain's images which will be presented to the surface. The index must have value suc...
Definition queue.hpp:129
+ + +
const BinarySemaphore * wait_semaphore
Semaphore which will be waited on.
Definition queue.hpp:80
+
PipelineStage wait_stage
Information about when specifically the semaphore will be waited on.
Definition queue.hpp:82
+
Specifies information about a submission of GPU work to a Queue.
Definition queue.hpp:76
+
const Fence * execution_complete_fence
Optional fence which is signalled once all command buffers have finished execution....
Definition queue.hpp:99
+
tz::basic_list< WaitInfo > waits
List of wait semaphores. Command buffers for this submission batch will not begin execution until the...
Definition queue.hpp:95
+
tz::basic_list< SignalInfo > signals
List of signal semaphores. Once the command buffers associated with this submission have completed ex...
Definition queue.hpp:97
+
tz::basic_list< const CommandBuffer * > command_buffers
List of command buffers to submit.
Definition queue.hpp:93
+
Definition queue.hpp:59
+
+ + + + diff --git a/render__pass_8hpp_source.html b/render__pass_8hpp_source.html new file mode 100644 index 0000000000..d6dd9c2c98 --- /dev/null +++ b/render__pass_8hpp_source.html @@ -0,0 +1,367 @@ + + + + + + + +Topaz: src/tz/gl/impl/vulkan/detail/render_pass.hpp Source File + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.1.0.1 +
+
C++20 Graphics Engine
+
+
+ + + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+
render_pass.hpp
+
+
+
1#ifndef TOPAZ_GL_IMPL_BACKEND_VK2_RENDER_PASS_HPP
+
2#define TOPAZ_GL_IMPL_BACKEND_VK2_RENDER_PASS_HPP
+
3#if TZ_VULKAN
+
4#include "tz/gl/impl/vulkan/detail/logical_device.hpp"
+
5#include "tz/gl/impl/vulkan/detail/image.hpp"
+
6
+
7namespace tz::gl::vk2
+
8{
+
+
13 enum class LoadOp
+
14 {
+
16 Load = VK_ATTACHMENT_LOAD_OP_LOAD,
+
18 Clear = VK_ATTACHMENT_LOAD_OP_CLEAR,
+
20 DontCare = VK_ATTACHMENT_LOAD_OP_DONT_CARE
+
21 };
+
+
22
+
+
27 enum class StoreOp
+
28 {
+
30 Store = VK_ATTACHMENT_STORE_OP_STORE,
+
32 DontCare = VK_ATTACHMENT_STORE_OP_DONT_CARE
+
33 };
+
+
34
+
+
39 enum class PipelineContext
+
40 {
+
41 graphics = VK_PIPELINE_BIND_POINT_GRAPHICS,
+
42 compute = VK_PIPELINE_BIND_POINT_COMPUTE,
+
43 };
+
+
44
+
45
+
+
50 enum class AccessFlag
+
51 {
+
53 NoneNeeded = VK_ACCESS_NONE_KHR,
+
55 AllReads = VK_ACCESS_MEMORY_READ_BIT,
+
57 AllWrites = VK_ACCESS_MEMORY_WRITE_BIT,
+
58
+
60 IndirectBufferRead = VK_ACCESS_INDIRECT_COMMAND_READ_BIT,
+
62 IndexBufferRead = VK_ACCESS_INDEX_READ_BIT,
+
64 VertexBufferRead = VK_ACCESS_VERTEX_ATTRIBUTE_READ_BIT,
+
66 UniformBufferRead = VK_ACCESS_UNIFORM_READ_BIT,
+
67
+
69 InputAttachmentRead = VK_ACCESS_INPUT_ATTACHMENT_READ_BIT,
+
71 ShaderResourceRead = VK_ACCESS_SHADER_READ_BIT,
+
73 ShaderResourceWrite = VK_ACCESS_SHADER_WRITE_BIT,
+
75 ColourAttachmentRead = VK_ACCESS_COLOR_ATTACHMENT_READ_BIT,
+
77 ColourAttachmentWrite = VK_ACCESS_COLOR_ATTACHMENT_WRITE_BIT,
+
79 DepthStencilAttachmentRead = VK_ACCESS_DEPTH_STENCIL_ATTACHMENT_READ_BIT,
+
81 DepthStencilAttachmentWrite = VK_ACCESS_DEPTH_STENCIL_ATTACHMENT_WRITE_BIT,
+
83 TransferOperationRead = VK_ACCESS_TRANSFER_READ_BIT,
+
85 TransferOperationWrite = VK_ACCESS_TRANSFER_WRITE_BIT,
+
87 HostRead = VK_ACCESS_HOST_READ_BIT,
+
89 HostWrite = VK_ACCESS_HOST_WRITE_BIT,
+
90
+
91 };
+
+
92
+
93 using AccessFlagField = tz::enum_field<AccessFlag>;
+
94
+
+ +
100 {
+
102 image_format format = image_format::undefined;
+
104 SampleCount sample_count = SampleCount::One;
+
106 LoadOp colour_depth_load = LoadOp::Clear;
+
108 StoreOp colour_depth_store = StoreOp::Store;
+
110 LoadOp stencil_load = LoadOp::DontCare;
+
112 StoreOp stencil_store = StoreOp::DontCare;
+
114 ImageLayout initial_layout = ImageLayout::Undefined;
+
116 ImageLayout final_layout = ImageLayout::Undefined;
+
117
+
118 bool operator==(const Attachment& rhs) const = default;
+
119 };
+
+
120
+
+ +
128 {
+
130 std::size_t total_input_attachment_count() const;
+
132 std::size_t total_colour_attachment_count() const;
+
134 bool has_valid_device() const;
+
136 bool values_make_sense() const;
+
137
+
+ +
142 {
+
144 std::uint32_t attachment_idx;
+ +
147 };
+
+
148
+
+ +
153 {
+
154 AttachmentReference attachment_ref;
+
155 ImageAspectFlags aspect_flags;
+
156 };
+
+
157
+
+
163 struct Subpass
+
164 {
+
166 PipelineContext context = PipelineContext::graphics;
+ + +
172 std::optional<AttachmentReference> depth_stencil_attachment = std::nullopt;
+
173 };
+
+
174
+ + + +
181 };
+
+
182
+
+ +
188 {
+
189 public:
+ +
194 RenderPass(const RenderPass& copy) = delete;
+
195 RenderPass(RenderPass&& move);
+
196 ~RenderPass();
+
197
+
198 RenderPass& operator=(const RenderPass& rhs) = delete;
+
199 RenderPass& operator=(RenderPass&& rhs);
+
200
+
201 const LogicalDevice& get_device() const;
+
202 const RenderPassInfo& get_info() const;
+
203
+
204 static RenderPass null();
+
205 bool is_null() const;
+
206
+
207 using NativeType = VkRenderPass;
+
208 NativeType native() const;
+
209 private:
+
210 RenderPass();
+
211
+
212 VkRenderPass pass;
+
213 RenderPassInfo info;
+
214 };
+
+
215
+
+ +
221 {
+
222 public:
+
223 SubpassBuilder() = default;
+ + + +
239
+ + +
253 const RenderPassInfo::Subpass& build() const;
+
254 private:
+ +
256 };
+
+
257
+
+ +
263 {
+
264 public:
+
265 RenderPassBuilder() = default;
+ + +
276
+
281 const LogicalDevice* get_device() const;
+
286 void set_device(const LogicalDevice& device);
+
287
+
292 RenderPass build() const;
+
293 private:
+
294 RenderPassInfo info;
+
295 };
+
+
296
+
297}
+
298
+
299#endif // TZ_VULKAN
+
300#endif // TOPAZ_GL_IMPL_BACKEND_VK2_RENDER_PASS_HPP
+
Custom list, feature subset of std::vector.
Definition basic_list.hpp:21
+
Container for enum values, useful for vintage bitfield types.
Definition enum_field.hpp:16
+
Implements tz::gl::device_type.
Definition device.hpp:69
+
Logical interface to an existing PhysicalDevice.
Definition logical_device.hpp:95
+
Helper class to create a RenderPass.
Definition render_pass.hpp:263
+
const LogicalDevice * get_device() const
Retrieve the LogicalDevice which will be used to construct the RenderPass.
Definition render_pass.cpp:321
+
RenderPassBuilder & with_subpass(RenderPassInfo::Subpass subpass)
Add a new subpass to the render pass.
Definition render_pass.cpp:315
+
RenderPassBuilder & with_attachment(Attachment attachment)
Add a new attachment to the pass.
Definition render_pass.cpp:309
+
void set_device(const LogicalDevice &device)
Set which LogicalDevice will be used to construct the RenderPass.
Definition render_pass.cpp:326
+
RenderPass build() const
Create a new RenderPass based upon this builder.
Definition render_pass.cpp:331
+
Represents a collection of attachments and subpasses and describes how the attachments are used throu...
Definition render_pass.hpp:188
+
Helper class to create a RenderPassInfo::Subpass.
Definition render_pass.hpp:221
+
const RenderPassInfo::Subpass & build() const
Return a subpass info structure based upon this builder.
Definition render_pass.cpp:304
+
SubpassBuilder & with_input_attachment(RenderPassInfo::InputAttachmentReference input_attachment)
Have the subpass reference an existing attachment as an input attachment.
Definition render_pass.cpp:276
+
SubpassBuilder & with_colour_attachment(RenderPassInfo::AttachmentReference colour_attachment)
Have the subpass reference an existing attachment as a colour attachment.
Definition render_pass.cpp:282
+
void set_pipeline_context(PipelineContext context)
Specify how the subpass binds to the graphics pipeline.
Definition render_pass.cpp:294
+
const PipelineContext & get_pipeline_context() const
Query what the current bind point to the graphics pipeline is.
Definition render_pass.cpp:299
+
SubpassBuilder & with_depth_stencil_attachment(RenderPassInfo::AttachmentReference depth_stencil_attachment)
Have the subpass reference an existing attachment as the depth-stencil attachment.
Definition render_pass.cpp:288
+
PipelineContext
Specifies which pipeline type a RenderPass subpass is expected to bind to.
Definition render_pass.hpp:40
+
LoadOp
Represents how some resource is loaded.
Definition render_pass.hpp:14
+
AccessFlag
Specifies specific events during which a memory dependency takes place.
Definition render_pass.hpp:51
+
StoreOp
Represents how some resource is stored.
Definition render_pass.hpp:28
+ + + + + + + + + + + + + + + + + + + + + + +
ImageLayout
Images are always in a layout.
Definition image.hpp:20
+
SampleCount
Specifies the number of samples stored per image pixel.
Definition image.hpp:44
+
image_format
Various image formats are supported.
Definition image_format.hpp:35
+
Specifies some data about an attachment.
Definition render_pass.hpp:100
+
SampleCount sample_count
Specifies the number of samples per pixel. See SampleCount.
Definition render_pass.hpp:104
+
image_format format
Specifies the format of the attachment. When used in a RenderPass, its LogicalDevice must support thi...
Definition render_pass.hpp:102
+
StoreOp stencil_store
Specifies store operation for stencil when it is last used at the end of the subpass....
Definition render_pass.hpp:112
+
LoadOp colour_depth_load
Specifies load operation for colour and depth when it is first used at the beginning of the subpass....
Definition render_pass.hpp:106
+
StoreOp colour_depth_store
Specifies store operation for colour and depth when it is last used at the end of the subpass....
Definition render_pass.hpp:108
+
LoadOp stencil_load
Specifies load operation for stencil when it is first used at the beginning of the subpass....
Definition render_pass.hpp:110
+
ImageLayout final_layout
Specifies what the layout the attached image will be in when the render pass ends.
Definition render_pass.hpp:116
+
ImageLayout initial_layout
Specifies what the layout the attached image will be in when render pass begins.
Definition render_pass.hpp:114
+
Structure which specifies a reference to an existing RenderPassInfo attachment, and the layout it sho...
Definition render_pass.hpp:142
+
ImageLayout current_layout
Specifies the layout which the attachment will be in during the subpass.
Definition render_pass.hpp:146
+
std::uint32_t attachment_idx
Reference to the attachment such that we refer to RenderPassInfo::attachments[attachment_idx]....
Definition render_pass.hpp:144
+
A specialised AttachmentReference which is suitable to reference input attachments.
Definition render_pass.hpp:153
+
Specifies information about a RenderPass subpass.
Definition render_pass.hpp:164
+
tz::basic_list< InputAttachmentReference > input_attachments
List of all attachments which will be input attachments during this subpass.
Definition render_pass.hpp:168
+
PipelineContext context
Specifies how this subpass binds to the graphics pipeline.
Definition render_pass.hpp:166
+
tz::basic_list< AttachmentReference > colour_attachments
List of all attachments which will be colour attachments during this subpass.
Definition render_pass.hpp:170
+
std::optional< AttachmentReference > depth_stencil_attachment
Optional reference to an attachment which will be the depth-stencil attachment during this subpass.
Definition render_pass.hpp:172
+
Specifies creation flags for a RenderPass.
Definition render_pass.hpp:128
+
std::size_t total_input_attachment_count() const
Retrieve the total number of times an input attachment is referenced throughout all subpasses.
Definition render_pass.cpp:8
+
const LogicalDevice * logical_device
LogicalDevice which will be used to create the RenderPass. It must point to a valid device.
Definition render_pass.hpp:180
+
tz::basic_list< Subpass > subpasses
List of all subpasses, in order.
Definition render_pass.hpp:178
+
std::size_t total_colour_attachment_count() const
Retrieve the total number of times a colour attachment is refererenced throughout all subpasses.
Definition render_pass.cpp:17
+
bool values_make_sense() const
Iterate through the subpasses and ensure they reference attachments which exist. If this returns fals...
Definition render_pass.cpp:31
+
bool has_valid_device() const
Query as to whether this->logical_device is a non-nullptr and non-null LogicalDevice which is suitabl...
Definition render_pass.cpp:26
+
tz::basic_list< Attachment > attachments
List of all attachments. These attachments are referenced throughout the subpasses.
Definition render_pass.hpp:176
+
+ + + + diff --git a/renderbuffer_8hpp_source.html b/renderbuffer_8hpp_source.html new file mode 100644 index 0000000000..c77c024471 --- /dev/null +++ b/renderbuffer_8hpp_source.html @@ -0,0 +1,161 @@ + + + + + + + +Topaz: src/tz/gl/impl/opengl/detail/renderbuffer.hpp Source File + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.1.0.1 +
+
C++20 Graphics Engine
+
+
+ + + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+
renderbuffer.hpp
+
+
+
1#ifndef TOPAZ_GL_IMPL_BACKEND_OGL2_RENDERBUFFER_HPP
+
2#define TOPAZ_GL_IMPL_BACKEND_OGL2_RENDERBUFFER_HPP
+
3#if TZ_OGL
+
4#include "tz/core/data/vector.hpp"
+
5#include "tz/gl/impl/opengl/detail/tz_opengl.hpp"
+
6#include "tz/gl/impl/opengl/detail/image_format.hpp"
+
7
+
8namespace tz::gl::ogl2
+
9{
+
+ +
11 {
+
13 image_format format;
+ +
16 };
+
+
17
+
+ +
19 {
+
20 public:
+ +
22 render_buffer(const render_buffer& copy) = delete;
+ + +
25
+
26 render_buffer& operator=(const render_buffer& rhs) = delete;
+
27 render_buffer& operator=(render_buffer&& rhs);
+
28
+
29 image_format get_format() const;
+
30 tz::vec2ui get_dimensions() const;
+
31 using NativeType = GLuint;
+
32 NativeType native() const;
+
33
+
34 static render_buffer null();
+
35 bool is_null() const;
+
36 private:
+ +
38
+
39 GLuint renderbuffer;
+ +
41 };
+
+
42}
+
43
+
44#endif // TZ_OGL
+
45#endif // TOPAZ_GL_IMPL_BACKEND_OGL2_RENDERBUFFER_HPP
+
Definition renderbuffer.hpp:19
+
vector< unsigned int, 2 > vec2ui
A vector of two unsigned ints.
Definition vector.hpp:244
+
Definition renderbuffer.hpp:11
+
tz::vec2ui dimensions
{Width, Height} of the image, in pixels.
Definition renderbuffer.hpp:15
+
image_format format
Format of the image data.
Definition renderbuffer.hpp:13
+
+ + + + diff --git a/renderer2_8hpp_source.html b/renderer2_8hpp_source.html new file mode 100644 index 0000000000..0b3b15d627 --- /dev/null +++ b/renderer2_8hpp_source.html @@ -0,0 +1,396 @@ + + + + + + + +Topaz: src/tz/gl/impl/vulkan/renderer2.hpp Source File + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.1.0.1 +
+
C++20 Graphics Engine
+
+
+ + + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+
renderer2.hpp
+
+
+
1#ifndef TZ_GL_IMPL_VULKAN_RENDERER2_HPP
+
2#define TZ_GL_IMPL_VULKAN_RENDERER2_HPP
+
3#if TZ_VULKAN
+
4#include "tz/gl/api/renderer.hpp"
+
5#include "tz/core/memory/maybe_owned_ptr.hpp"
+
6#include "tz/gl/impl/vulkan/component.hpp"
+
7#include "tz/gl/impl/common/renderer.hpp"
+
8#include <functional>
+
9
+
10#include "tz/gl/impl/vulkan/detail/descriptors.hpp"
+
11#include "tz/gl/impl/vulkan/detail/command.hpp"
+
12#include "tz/gl/impl/vulkan/detail/fence.hpp"
+
13#include "tz/gl/impl/vulkan/detail/semaphore.hpp"
+
14
+
15namespace tz::gl
+
16{
+
17 // to encapsulate the whole state of a vulkan renderer leads to *alot* of code.
+
18 // to make this alot more palatable, each "major feature" of a vulkan renderer is its own class, and they form an inheritance branch leading to the fully-featured renderer_vulkan2.
+
19 // i.e renderer_resource_manager -> renderer_descriptor_manager -> ... -> renderer_vulkan2
+
20 // each of these "major feature" classes are unaware of the functionality of the next-level in the chain. this means that the classes get more and more access to things.
+
21 // note: this also means that the implementation of renderer_type is done piecemeal - as we use public inheritance, eventually renderer_vulkan2 will inherit all the api impls from its lower-level components.
+
22
+
+ +
24 {
+
25 protected:
+
26 // devices have this concept of renderer handles, but they are not guaranteed to be unique (e.g if renderer handle 2 is deleted and a new renderer is created, that will also have handle 2.)
+
27 // this is a uid which will uniquely identify ths current renderer. renderers need to have their own identity because other manager classes (mainly device_vulkan2) does bookkeeping for renderers and needs to know who is who.
+
28 static unsigned int uid_counter;
+
29 unsigned int uid = uid_counter++;
+
30 public:
+
31 unsigned int vk_get_uid() const{return this->uid;}
+
32 };
+
+
33
+
34 // represents topaz-level resource management.
+
35 // the majority of this code is not specific to vulkan, however setting up dynamic-resource-spans is.
+
36 // possible todo: bring most of this class out into a common impl for opengl?
+
+ +
38 {
+
39 public:
+ + + +
43 renderer_resource_manager() = default;
+
44 renderer_resource_manager& operator=(const renderer_resource_manager& copy) = delete;
+
45 renderer_resource_manager& operator=(renderer_resource_manager&& move) = default;
+
46
+
47 unsigned int resource_count() const;
+
48 const iresource* get_resource(tz::gl::resource_handle rh) const;
+
49 iresource* get_resource(tz::gl::resource_handle rh);
+
50 const icomponent* get_component(tz::gl::resource_handle rh) const;
+
51 icomponent* get_component(tz::gl::resource_handle rh);
+
52 protected:
+
53 std::span<vk2::ImageView> get_image_resource_views();
+
54 std::span<vk2::Sampler> get_image_resource_samplers();
+
55 void notify_image_dirty(tz::gl::resource_handle rh);
+
56 void reseat_resource(tz::gl::renderer_edit::resource_reference resref);
+
57 private:
+
58 void patch_resource_references(const tz::gl::renderer_info& rinfo);
+
59 void debug_name_resources(std::string renderer_debug_name);
+
60 void setup_dynamic_resource_spans();
+
61 void populate_image_resource_views();
+
62 void populate_image_resource_samplers();
+
63 static vk2::SamplerInfo make_fitting_sampler(const iresource& res);
+ +
65 std::vector<tz::maybe_owned_ptr<icomponent>> components = {};
+
66 // one entry per component - symmetrical to this->components. if component is a buffer though, the view is vk2::ImageView::null()
+
67 std::vector<vk2::ImageView> image_resource_views = {};
+
68 std::vector<vk2::Sampler> image_resource_samplers = {};
+
69 };
+
+
70
+
71 // responsible for making sure our topaz-level resources are represented as descriptor sets correctly.
+
+ +
73 {
+
74 public:
+ + + + +
79 renderer_descriptor_manager& operator=(const renderer_descriptor_manager& copy) = delete;
+ +
81 protected:
+
82 const vk2::DescriptorLayout& get_descriptor_layout() const;
+
83 std::span<const vk2::DescriptorSet> get_descriptor_sets() const;
+
84 // descriptor manager is empty if there are no descriptors to bind.
+
85 bool empty() const;
+
86 void write_descriptors(const tz::gl::render_state& state);
+
87 private:
+
88 void deduce_descriptor_layout(const tz::gl::render_state& state);
+
89 void allocate_descriptors();
+
90 vk2::DescriptorData descriptors = {};
+
91 };
+
+
92
+
+ +
94 {
+
95 public:
+ +
97 renderer_output_manager() = default;
+
98
+
+ +
100 {
+
101 std::vector<vk2::ImageView> colour_attachments = {};
+
102 vk2::ImageView depth_attachment = vk2::ImageView::null();
+
103 };
+
+
104 const ioutput* get_output() const;
+
105 protected:
+
106 ioutput* get_output_mutable();
+
107 std::span<render_target_t> get_render_targets();
+
108 tz::vec2ui get_render_target_dimensions() const;
+
109 bool targets_window() const;
+
110 void populate_render_targets(const tz::gl::renderer_options& options);
+
111 private:
+
112 std::unique_ptr<tz::gl::ioutput> output = nullptr;
+
113 std::vector<render_target_t> render_targets = {};
+
114 };
+
+
115
+
+ +
117 {
+
118 public:
+ +
120 renderer_pipeline(const renderer_pipeline& copy) = delete;
+
121 renderer_pipeline(renderer_pipeline&& move) = default;
+
122 renderer_pipeline() = default;
+
123 renderer_pipeline& operator=(const renderer_pipeline& copy) = delete;
+
124 renderer_pipeline& operator=(renderer_pipeline&& move) = default;
+
125 enum class pipeline_type_t
+
126 {
+
127 graphics,
+
128 compute
+
129 };
+
130 protected:
+
131 pipeline_type_t get_pipeline_type() const;
+
132 const vk2::Pipeline& get_pipeline() const;
+
133 const vk2::PipelineLayout& get_pipeline_layout() const;
+
134 void update_pipeline(const tz::gl::render_state& state);
+
135 private:
+
136 struct pipeline_invariant_config_t
+
137 {
+
138 bool depth_testing = false;
+
139 bool alpha_blending = false;
+
140 pipeline_type_t type = pipeline_type_t::graphics;
+
141 // all of these cannot change for a renderer. wireframe mode can be disabled/enabled, so we don't want to cache that. have to query that every time.
+
142 bool valid = true;
+
143 static pipeline_invariant_config_t null(){return {.valid = false};}
+
144 };
+
145 void deduce_pipeline_config(const tz::gl::renderer_info& rinfo);
+
146 void deduce_pipeline_layout();
+
147 void create_shader(const tz::gl::renderer_info& rinfo);
+
148 vk2::Shader shader = vk2::Shader::null();
+
149 vk2::PipelineData pipeline = {};
+
150 vk2::PipelineCache pipeline_cache = vk2::PipelineCache::null();
+
151 // depends purely on renderer options so this should never change.
+
152 pipeline_invariant_config_t pipeline_config = pipeline_invariant_config_t::null();
+
153 };
+
+
154
+
+ +
156 {
+
157 public:
+ + + +
161 // potential bug: command buffers retrieved from a move may have pool owner reference that is invalid?
+ +
163 renderer_command_processor& operator=(const renderer_command_processor& copy) = delete;
+
164 renderer_command_processor& operator=(renderer_command_processor&& move) = default;
+
165 renderer_command_processor() = default;
+
166
+
167 enum class command_type
+
168 {
+
169 work,
+
170 scratch,
+
171 both
+
172 };
+
173 protected:
+
174 void do_scratch_work(std::function<void(vk2::CommandBufferRecording&)> record_commands);
+
175 void do_frame();
+
176 void set_work_commands(std::function<void(vk2::CommandBufferRecording&, unsigned int)> work_record_commands);
+
177 void record_commands(const tz::gl::render_state& state, const tz::gl::renderer_options& options, std::string label);
+
178 void scratch_initialise_static_resources();
+
179 void queue_resource_write(tz::gl::renderer_edit::resource_write rwrite);
+
180 void submit_resource_writes();
+
181 void reset_resource_write_buffers();
+
182 private:
+
183 void record_render_commands(const tz::gl::render_state& state, const tz::gl::renderer_options& options, std::string label);
+
184 void record_compute_commands(const tz::gl::render_state& state, const tz::gl::renderer_options& options, std::string label);
+
185 void allocate_commands(command_type t = command_type::both);
+
186 void free_commands(command_type t = command_type::both);
+
187 void do_static_resource_transfers(std::span<vk2::Buffer> resource_staging_buffers);
+
188
+
189 std::span<vk2::CommandBuffer> work_command_buffers();
+
190 vk2::CommandBuffer& scratch_command_buffer();
+
191 bool render_wait_enabled = false;
+
192 bool no_present_enabled = false;
+
193 std::vector<vk2::CommandPool::AllocationResult> command_allocations = {};
+
194 vk2::Fence render_wait_fence = vk2::Fence::null();
+
195 vk2::BinarySemaphore present_sync_semaphore = vk2::BinarySemaphore::null();
+
196 std::vector<vk2::Buffer> pending_resource_write_staging_buffers = {};
+
197 };
+
+
198
+
+ +
200 {
+
201 public:
+ +
203 renderer_vulkan2(const renderer_vulkan2& copy) = delete;
+
204 renderer_vulkan2(renderer_vulkan2&& move) = default;
+ +
206 renderer_vulkan2& operator=(const renderer_vulkan2& copy) = delete;
+
207 renderer_vulkan2& operator=(renderer_vulkan2&& move) = default;
+
208 // NYI
+
209 const tz::gl::renderer_options& get_options() const;
+
210 const tz::gl::render_state& get_state() const;
+
211 void render();
+
212 void edit(tz::gl::renderer_edit_request req);
+
213 void dbgui();
+
214 // NYI
+
215 std::string_view debug_get_name() const;
+
216
+
217 // Satisfies tz::nullable
+
218 static renderer_vulkan2 null();
+
219 bool is_null() const;
+
220 private:
+
221 renderer_vulkan2() = default;
+
222 bool check_and_handle_resize();
+
223 void do_resize();
+
224
+
225 tz::gl::renderer_options options = {};
+
226 tz::gl::render_state state = {};
+
227 tz::vec2ui window_cache_dims = {};
+
228 bool null_flag = true;
+
229 std::string debug_name = "Untitled Renderer";
+
230 };
+
+ +
232}
+
233
+
234#endif // TZ_VULKAN
+
235#endif // TZ_GL_IMPL_VULKAN_RENDERER2_HPP
+
Definition renderer.hpp:13
+
Definition component.hpp:10
+
Definition output.hpp:43
+
Interface for a renderer or Processor resource.
Definition resource.hpp:80
+
Definition renderer2.hpp:156
+
Definition renderer2.hpp:73
+
Helper struct which the user can use to specify which inputs, resources they want and where they want...
Definition renderer.hpp:112
+
Definition renderer2.hpp:94
+
Definition renderer2.hpp:117
+
Definition renderer2.hpp:38
+
Definition renderer2.hpp:200
+
Definition resource.hpp:13
+
Synchronisation primitive which is not interactable on the host and which has two states:
Definition semaphore.hpp:22
+
Represents storage for vulkan commands, such as draw calls, binds, transfers etc.....
Definition command.hpp:427
+
Represents the full duration of the recording process of an existing CommandBuffer.
Definition command.hpp:292
+
Specifies the types of resources that will be accessed by a graphics or compute pipeline via a Shader...
Definition descriptors.hpp:86
+
Synchronisation primitive which is useful to detect completion of a GPU operation,...
Definition fence.hpp:26
+
Definition image_view.hpp:18
+
Definition graphics_pipeline.hpp:13
+
Definition graphics_pipeline.hpp:125
+
Represents an interface between shader stages and shader resources in terms of the layout of a group ...
Definition pipeline_layout.hpp:25
+
Represents a Shader program.
Definition shader.hpp:94
+
Definition maybe_owned_ptr.hpp:9
+
Named requirement for a renderer.
Definition renderer.hpp:341
+
vector< unsigned int, 2 > vec2ui
A vector of two unsigned ints.
Definition vector.hpp:244
+
tz::enum_field< renderer_option > renderer_options
Represents a collection of renderer options.
Definition renderer.hpp:105
+
std::vector< renderer_edit::variant > renderer_edit_request
Represents an edit to an existing renderer.
Definition renderer.hpp:298
+ +
Stores renderer-specific state, which drives the behaviour of the rendering.
Definition renderer.hpp:72
+ +
Definition renderer.hpp:244
+ +
Definition renderer2.hpp:24
+
Definition descriptors.hpp:483
+
Definition graphics_pipeline.hpp:147
+
Specifies creation flags for a Sampler.
Definition sampler.hpp:49
+
+ + + + diff --git a/renderer_8hpp_source.html b/renderer_8hpp_source.html new file mode 100644 index 0000000000..3420a6e263 --- /dev/null +++ b/renderer_8hpp_source.html @@ -0,0 +1,128 @@ + + + + + + + +Topaz: src/tz/gl/renderer.hpp Source File + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.1.0.1 +
+
C++20 Graphics Engine
+
+
+ + + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+
renderer.hpp
+
+
+
1#ifndef TOPAZ_GL2_RENDERER_HPP
+
2#define TOPAZ_GL2_RENDERER_HPP
+
3
+
4#if TZ_VULKAN
+
5#include "tz/gl/impl/vulkan/renderer2.hpp"
+
6#elif TZ_OGL
+
7#include "tz/gl/impl/opengl/renderer.hpp"
+
8#endif
+
9
+
10namespace tz::gl
+
11{
+
12 #if TZ_VULKAN
+
13 using renderer = renderer_vulkan2;
+
14 #elif TZ_OGL
+
15 using renderer = renderer_ogl;
+
16 #endif
+
17}
+
18
+
19#endif // TOPAZ_GL2_RENDERER_HPP
+
+ + + + diff --git a/resource_8hpp_source.html b/resource_8hpp_source.html new file mode 100644 index 0000000000..501c2edb7f --- /dev/null +++ b/resource_8hpp_source.html @@ -0,0 +1,279 @@ + + + + + + + +Topaz: src/tz/gl/resource.hpp Source File + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.1.0.1 +
+
C++20 Graphics Engine
+
+
+ + + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+
resource.hpp
+
+
+
1#ifndef TOPAZ_GL2_RESOURCE_HPP
+
2#define TOPAZ_GL2_RESOURCE_HPP
+
3#include "tz/gl/api/resource.hpp"
+
4#include "tz/gl/declare/image_format.hpp"
+
5#include "tz/core/types.hpp"
+
6#include "tz/core/data/vector.hpp"
+
7#include <ranges>
+
8#include <optional>
+
9
+
10namespace tz::gl
+
11{
+
+
12 class resource : public iresource
+
13 {
+
14 public:
+
15 virtual ~resource() = default;
+
16 // iresource
+
17 virtual resource_type get_type() const final;
+
18 virtual resource_access get_access() const final;
+
19 virtual const resource_flags& get_flags() const final;
+
20 virtual std::span<const std::byte> data() const final;
+
21 virtual std::span<std::byte> data() final;
+
22 virtual void dbgui() override;
+
23
+
24 void resize_data(std::size_t new_size);
+
25 protected:
+
26 resource(resource_access access, std::vector<std::byte> resource_data, std::size_t initial_alignment_offset, resource_type type, resource_flags flags = {});
+
27 virtual void set_mapped_data(std::span<std::byte> mapped_resource_data) override;
+
28 resource_access access;
+
29 std::vector<std::byte> resource_data;
+
30 private:
+
31 std::optional<std::span<std::byte>> mapped_resource_data;
+
32 std::size_t initial_alignment_offset;
+
33 resource_type type;
+
34 resource_flags flags;
+
35 };
+
+
36
+
+ +
38 {
+
39 resource_access access = resource_access::static_access;
+
40 resource_flags flags = {};
+
41 };
+
+
42
+
+ +
48 {
+
49 public:
+
50 virtual ~buffer_resource() = default;
+
59 template<tz::trivially_copyable T>
+
60 static buffer_resource from_one(const T& data, buffer_info info = {});
+
61
+
62 template<tz::trivially_copyable T>
+
63 static buffer_resource from_many(std::initializer_list<T> ts, buffer_info info = {})
+
64 {
+
65 return from_many(std::span<const T>(ts), info);
+
66 }
+
74 template<std::ranges::contiguous_range R>
+
75 static buffer_resource from_many(R&& data, buffer_info info = {});
+
+ +
82 {
+
83 return from_one(std::byte{255}, {});
+
84 }
+
+
85
+
86 bool is_null() const;
+
87 virtual std::unique_ptr<iresource> unique_clone() const final;
+
88 virtual void dbgui() final;
+
89 private:
+
90 buffer_resource(resource_access access, std::vector<std::byte> resource_data, std::size_t initial_alignment_offset, resource_flags flags);
+
91 };
+
+
92
+
93
+
+ +
98 {
+ + +
104 resource_access access = resource_access::static_access;
+
106 resource_flags flags = {};
+
107 };
+
+
108
+
+ +
114 {
+
115 public:
+
116 virtual ~image_resource() = default;
+
121 static image_resource from_uninitialised(image_info info = {});
+
122
+
123 template<tz::trivially_copyable T>
+
124 static image_resource from_memory(std::initializer_list<T> ts, image_info info = {})
+
125 {
+
126 return from_memory(std::span<const T>(ts), info);
+
127 }
+
133 static image_resource from_memory(std::ranges::contiguous_range auto data, image_info info = {});
+
+ +
140 {
+
141 return from_memory
+
142 (
+
143 {
+
144 // Missingno purple
+
145 (unsigned char)0b1111'1111,
+
146 (unsigned char)0b0000'0000,
+
147 (unsigned char)0b1111'1111,
+
148 (unsigned char)0b1111'1111,
+
149 // Black
+
150 (unsigned char)0b0000'0000,
+
151 (unsigned char)0b0000'0000,
+
152 (unsigned char)0b0000'0000,
+
153 (unsigned char)0b1111'1111,
+
154 // Black
+
155 (unsigned char)0b0000'0000,
+
156 (unsigned char)0b0000'0000,
+
157 (unsigned char)0b0000'0000,
+
158 (unsigned char)0b1111'1111,
+
159 // Missingno purple
+
160 (unsigned char)0b1111'1111,
+
161 (unsigned char)0b0000'0000,
+
162 (unsigned char)0b1111'1111,
+
163 (unsigned char)0b1111'1111
+
164 },
+
165 {.format = image_format::RGBA32, .dimensions = {2u, 2u}}
+
166 );
+
167 }
+
+
168
+
169 bool is_null() const;
+
170
+
171 virtual std::unique_ptr<iresource> unique_clone() const final;
+
172 virtual void dbgui() final;
+
173 image_format get_format() const;
+
174 tz::vec2ui get_dimensions() const;
+
175 void set_dimensions(tz::vec2ui dims);
+
176 private:
+
177 image_resource(resource_access access, std::vector<std::byte> resource_data, std::size_t initial_alignment_offset, image_format format, tz::vec2ui dimensions, resource_flags flags);
+
178 image_format format;
+
179 tz::vec2ui dimensions;
+
180 };
+
+
181}
+
182#include "tz/gl/resource.inl"
+
183
+
184#endif // TOPAZ_GL2_RESOURCE_HPP
+
Represents a fixed-size, static Buffer to be used by a renderer or Processor.
Definition resource.hpp:48
+
static buffer_resource from_one(const T &data, buffer_info info={})
Create a buffer_resource where the underlying data is a single object.
Definition resource.inl:9
+
static buffer_resource null()
Create a null buffer_resource.
Definition resource.hpp:81
+
Represents a fixed-size, static Image to be used by a renderer or Processor.
Definition resource.hpp:114
+
static image_resource null()
Create a null image_resource.
Definition resource.hpp:139
+
Interface for a renderer or Processor resource.
Definition resource.hpp:80
+
Definition resource.hpp:13
+
virtual resource_type get_type() const final
Retrieve the type of the resource.
Definition resource.cpp:30
+
virtual const resource_flags & get_flags() const final
Retrieve a field containing all flags applied to this resource.
Definition resource.cpp:40
+
virtual std::span< const std::byte > data() const final
Retrieve a read-only view into the resource data.
Definition resource.cpp:45
+
virtual void dbgui() override
Display debug information about the resource.
Definition resource.cpp:65
+
virtual resource_access get_access() const final
Retrieve access information about this resource when used in a renderer or Processor.
Definition resource.cpp:35
+
Definition vector.hpp:18
+
vector< unsigned int, 2 > vec2ui
A vector of two unsigned ints.
Definition vector.hpp:244
+
resource_type
Specifies the type of the resource; which is how a renderer or Processor will interpret the usage of ...
Definition resource.hpp:17
+
resource_access
Describes the manner in which a resource can be read or written to, when owned by a renderer or Proce...
Definition resource.hpp:61
+
image_format
Various image formats are supported in Topaz.
Definition image_format.hpp:33
+
Definition resource.hpp:38
+
Represents creation flags for an image.
Definition resource.hpp:98
+
tz::vec2ui dimensions
Image dimensions, in pixels.
Definition resource.hpp:102
+
image_format format
Image format.
Definition resource.hpp:100
+
+ + + + diff --git a/resource_8inl_source.html b/resource_8inl_source.html new file mode 100644 index 0000000000..c3ba3faacd --- /dev/null +++ b/resource_8inl_source.html @@ -0,0 +1,168 @@ + + + + + + + +Topaz: src/tz/gl/resource.inl Source File + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.1.0.1 +
+
C++20 Graphics Engine
+
+
+ + + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+
resource.inl
+
+
+
1#include "tz/core/types.hpp"
+
2#include "tz/core/debug.hpp"
+
3#include <cstring>
+
4#include <memory>
+
5
+
6namespace tz::gl
+
7{
+
8 template<tz::trivially_copyable T>
+
+
9 buffer_resource buffer_resource::from_one(const T& data, buffer_info info)
+
10 {
+
11 return buffer_resource::from_many<T>({data}, info);
+
12 }
+
+
13
+
14 template<std::ranges::contiguous_range R>
+
+
15 buffer_resource buffer_resource::from_many(R&& data, buffer_info info)
+
16 {
+
17 using T = decltype(*std::ranges::begin(data));
+
18 auto size = std::distance(std::ranges::begin(data), std::ranges::end(data));
+
19 std::vector<std::byte> resource_data;
+
20 std::size_t space = (sizeof(T) * size);
+
21 std::size_t space_copy = space;
+
22 resource_data.resize(space);
+
23 void* data_ptr = resource_data.data();
+
24 bool success = std::align(alignof(T), sizeof(T), data_ptr, space) != nullptr;
+
25 tz::assert(success, "Storage for a single T (sizeof T + alignof T) was too small! Please submit a bug report.");
+
26
+
27 std::memcpy(data_ptr, std::ranges::data(data), sizeof(T) * data.size());
+
28 tz::assert(space_copy >= space, "Alignment of pointer somehow increased space, this is a logic error. Please submit a bug report.");
+
29 std::size_t alignment_usage = space_copy - space;
+
30 // space is now reduced by `alignment_usage` bytes, meaning that when we resize the vector to `space` bytes it is guaranteed to be less than or equal to its initial size. C++ spec says that "Vector capacity is never reduced when resizing to a smaller size because that would invalidate all iterators..." meaning that no realloc took place and the memcpy'd object is still aligned properly.
+
31 resource_data.resize(space);
+
32 return {info.access, resource_data, alignment_usage, info.flags};
+
33 }
+
+
34
+
+
35 image_resource image_resource::from_memory(std::ranges::contiguous_range auto data, image_info info)
+
36 {
+
37 using T = std::decay_t<decltype(*std::ranges::begin(data))>;
+
38 auto size = std::distance(std::ranges::begin(data), std::ranges::end(data));
+
39 std::span<const std::byte> byte_data = std::as_bytes(std::span<const T>(std::ranges::data(data), size));
+
40 std::size_t pixel_size = tz::gl::pixel_size_bytes(info.format);
+
41 std::vector<std::byte> resource_data(pixel_size * info.dimensions[0] * info.dimensions[1]);
+
42 std::copy(byte_data.begin(), byte_data.end(), resource_data.begin());
+
43 // TODO: Sanity check? Is it correct to just not give a shit about alignment here?
+
44 return {info.access, resource_data, 0, info.format, info.dimensions, info.flags};
+
45 }
+
+
46
+
47}
+
Represents a fixed-size, static Buffer to be used by a renderer or Processor.
Definition resource.hpp:48
+
Represents a fixed-size, static Image to be used by a renderer or Processor.
Definition resource.hpp:114
+
virtual std::span< const std::byte > data() const final
Retrieve a read-only view into the resource data.
Definition resource.cpp:45
+
void assert(bool condition, detail::format_string fmt="<No message>", Args &&... args)
Assert on a condition.
Definition debug.inl:33
+
Definition resource.hpp:38
+
Represents creation flags for an image.
Definition resource.hpp:98
+
+ + + + diff --git a/safari-pinned-tab.svg b/safari-pinned-tab.svg new file mode 100644 index 0000000000..0e65db9486 --- /dev/null +++ b/safari-pinned-tab.svg @@ -0,0 +1,41 @@ + + + + +Created by potrace 1.14, written by Peter Selinger 2001-2017 + + + + + + + + + + diff --git a/schedule_8hpp_source.html b/schedule_8hpp_source.html new file mode 100644 index 0000000000..838be82316 --- /dev/null +++ b/schedule_8hpp_source.html @@ -0,0 +1,214 @@ + + + + + + + +Topaz: src/tz/gl/api/schedule.hpp Source File + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.1.0.1 +
+
C++20 Graphics Engine
+
+
+ + + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+
schedule.hpp
+
+
+
1#ifndef TZ_GL_API_SCHEDULE_HPP
+
2#define TZ_GL_API_SCHEDULE_HPP
+
3#include "tz/core/data/handle.hpp"
+
4#include "tz/core/debug.hpp"
+
5#include <vector>
+
6#include <span>
+
7#include <unordered_set>
+
8#include <optional>
+
9
+
10namespace tz::gl
+
11{
+
12 using eid_t = unsigned int;
+
13 constexpr eid_t nullevt = std::numeric_limits<eid_t>::max();
+
+
14 struct event
+
15 {
+
16 eid_t eid = nullevt;
+
17 std::vector<eid_t> dependencies = {};
+
18 };
+
+
19
+
+
20 struct timeline_t : public std::vector<eid_t>
+
21 {
+
22 timeline_t() = default;
+
23 template<typename... Is>
+
24 timeline_t(Is&&... is)
+
25 {
+
26 (this->push_back(static_cast<eid_t>(static_cast<tz::hanval>(is))), ...);
+
27 }
+
28 };
+
+
29
+
+
30 struct schedule
+
31 {
+
32 std::vector<event> events = {};
+
33 timeline_t timeline = {};
+
34
+
35 std::span<const eid_t> get_dependencies(eid_t evt) const;
+
36
+
37 template<typename T0, typename... T>
+
38 void add_dependencies(T0 evth, T... deps)
+
39 {
+
40 auto evt = static_cast<eid_t>(static_cast<tz::hanval>(evth));
+
41 auto iter = std::find_if(this->events.begin(), this->events.end(), [evt](const auto& event){return event.eid == evt;});
+
42 tz::assert(iter != this->events.end());
+
43 (iter->dependencies.push_back(static_cast<eid_t>(static_cast<tz::hanval>(deps))), ...);
+
44 }
+
45
+
46 template<typename H>
+
47 unsigned int chronological_rank(H handle) const
+
48 {
+
49 auto evt = static_cast<eid_t>(static_cast<tz::hanval>(handle));
+
50 return chronological_rank_eid(evt);
+
51 }
+
52
+
53 unsigned int max_chronological_rank() const
+
54 {
+
55 unsigned int maxrank = 0;
+
56 for(eid_t evt : this->timeline)
+
57 {
+
58 maxrank = std::max(maxrank, this->chronological_rank_eid(evt));
+
59 }
+
60 return maxrank;
+
61 }
+
62
+
63 std::optional<unsigned int> get_wait_rank(eid_t evt) const
+
64 {
+
65 if(this->chronological_rank_eid(evt) == 0)
+
66 {
+
67 return std::nullopt;
+
68 }
+
69 unsigned int max_wait_rank = 0;
+
70 for(eid_t dep : this->get_dependencies(evt))
+
71 {
+
72 max_wait_rank = std::max(max_wait_rank, this->chronological_rank_eid(dep));
+
73 }
+
74 return {max_wait_rank};
+
75 }
+
76
+
77 unsigned int chronological_rank_eid(eid_t evt) const
+
78 {
+
79 unsigned int rank = 0;
+
80 if(this->get_dependencies(evt).size())
+
81 {
+
82 for(std::size_t dep : this->get_dependencies(evt))
+
83 {
+
84 rank = std::max(rank, this->chronological_rank_eid(dep));
+
85 }
+
86 rank++;
+
87 }
+
88 return rank;
+
89 }
+
90 };
+
+
91
+
92}
+
93
+
94#endif // TZ_GL_API_SCHEDULE_HPP
+
Definition handle.hpp:17
+
void assert(bool condition, detail::format_string fmt="<No message>", Args &&... args)
Assert on a condition.
Definition debug.inl:33
+
Definition schedule.hpp:15
+
Definition schedule.hpp:31
+
Definition schedule.hpp:21
+
+ + + + diff --git a/search/all_0.js b/search/all_0.js new file mode 100644 index 0000000000..4e6b88ecc3 --- /dev/null +++ b/search/all_0.js @@ -0,0 +1,73 @@ +var searchData= +[ + ['abs_0',['abs',['../group__tzsl__math.html#gaea23f121347bc1e839b7b6ffd0a2fae1',1,'tz::math']]], + ['access_1',['access',['../structtz_1_1gl_1_1image__info.html#aa407bdacea90a99b4960995befeb2074',1,'tz::gl::image_info']]], + ['accessflag_2',['AccessFlag',['../group__tz__gl__vk__graphics__pipeline__render__pass.html#gaa5dd0142a36cd59d14dff54eed67c3df',1,'tz::gl::vk2']]], + ['acos_3',['acos',['../group__tzsl__math.html#ga75c1b4fe699f4acece8c43888870e5fb',1,'tz::math']]], + ['acosh_4',['acosh',['../group__tzsl__math.html#ga4d44f9362d7141ba65c9ab8b964e1ff8',1,'tz::math']]], + ['acquire_5fimage_5',['acquire_image',['../classtz_1_1gl_1_1device__window.html#a692cd28b2be1c18e04d60d2f834b2dc4',1,'tz::gl::device_window::acquire_image()'],['../classtz_1_1gl_1_1vk2_1_1_swapchain.html#a96bd4cf27464216c5294b65c939ae525',1,'tz::gl::vk2::Swapchain::acquire_image()']]], + ['add_6',['add',['../group__tzsl__atomic.html#ga89d32f0bbb6535185abe39b69fb39030',1,'tz::atomic::add()'],['../classtz_1_1basic__list.html#a3879564a08f0874bd34335a172fa8327',1,'tz::basic_list::add(T &&element)'],['../classtz_1_1basic__list.html#a4145934a925e6b0a6166396fe079e912',1,'tz::basic_list::add(const T &element)']]], + ['add_5fcallback_7',['add_callback',['../classtz_1_1callback.html#a9c2d992722fe82e5ee1c211348d7ff32',1,'tz::callback']]], + ['add_5fdependency_8',['add_dependency',['../classtz_1_1gl_1_1renderer__info.html#a67cee96b537c3155396b7e537648e208',1,'tz::gl::renderer_info']]], + ['add_5fhierarchy_9',['add_hierarchy',['../classtz_1_1transform__hierarchy.html#a1ee77288814244d347d1c9f9f718cbf1',1,'tz::transform_hierarchy']]], + ['add_5fhierarchy_5fonto_10',['add_hierarchy_onto',['../classtz_1_1transform__hierarchy.html#af9980e4f61e9442cd37e51aac4a9d76c',1,'tz::transform_hierarchy']]], + ['add_5fnode_11',['add_node',['../classtz_1_1transform__hierarchy.html#a3080a5dbadbc5dee46491867559d3452',1,'tz::transform_hierarchy']]], + ['add_5fresource_12',['add_resource',['../classtz_1_1gl_1_1renderer__info.html#a754e0e44d92be27ecf399501ba318d53',1,'tz::gl::renderer_info']]], + ['add_5fset_5fedit_13',['add_set_edit',['../classtz_1_1gl_1_1vk2_1_1_descriptor_pool_1_1_update_request.html#a9eadabf90c16c3d2cc228868752da65a',1,'tz::gl::vk2::DescriptorPool::UpdateRequest']]], + ['address_5fmode_14',['address_mode',['../group__tz__gl__ogl2__image.html#ga52bed615aea0b883aeb6702716f95e5b',1,'tz::gl::ogl2']]], + ['address_5fmode_5fr_15',['address_mode_r',['../structtz_1_1gl_1_1ogl2_1_1sampler.html#ad973088359ae025d62a9be56c499913f',1,'tz::gl::ogl2::sampler']]], + ['address_5fmode_5fs_16',['address_mode_s',['../structtz_1_1gl_1_1ogl2_1_1sampler.html#a9e5a13f2abc511e9e41a5c65a0ed543d',1,'tz::gl::ogl2::sampler']]], + ['address_5fmode_5ft_17',['address_mode_t',['../structtz_1_1gl_1_1ogl2_1_1sampler.html#a4eb3aac6c9f3f325b154b52227a589d7',1,'tz::gl::ogl2::sampler']]], + ['address_5fmode_5fu_18',['address_mode_u',['../structtz_1_1gl_1_1vk2_1_1_sampler_info.html#a3cddf0a741522a123deaaa4c6c5d3041',1,'tz::gl::vk2::SamplerInfo']]], + ['address_5fmode_5fv_19',['address_mode_v',['../structtz_1_1gl_1_1vk2_1_1_sampler_info.html#abdb13df130823a0b66af27234b2a414c',1,'tz::gl::vk2::SamplerInfo']]], + ['address_5fmode_5fw_20',['address_mode_w',['../structtz_1_1gl_1_1vk2_1_1_sampler_info.html#ab44f5074772b344c8307c561f98b2149',1,'tz::gl::vk2::SamplerInfo']]], + ['affected_5flayers_21',['affected_layers',['../structtz_1_1gl_1_1vk2_1_1_vulkan_command_1_1_transition_image_layout.html#ab94b377464d452abc15c8b0b5c373220',1,'tz::gl::vk2::VulkanCommand::TransitionImageLayout']]], + ['affected_5fmip_5flevels_22',['affected_mip_levels',['../structtz_1_1gl_1_1vk2_1_1_vulkan_command_1_1_transition_image_layout.html#a906c48efc0e54c1e325a2036e7324ccf',1,'tz::gl::vk2::VulkanCommand::TransitionImageLayout']]], + ['algorithms_23',['Algorithms',['../group__tz__core__algorithms.html',1,'']]], + ['allcommands_24',['AllCommands',['../group__tz__gl__vk__graphics__pipeline.html#ggaa581c5a329a76e48f41ca02bd263251aacf92f78ac1cdeee1e78e8b2866abe474',1,'tz::gl::vk2']]], + ['allgraphics_25',['AllGraphics',['../group__tz__gl__vk__graphics__pipeline.html#ggaa581c5a329a76e48f41ca02bd263251aa576ad90e86113d352899b3369a9c5b15',1,'tz::gl::vk2']]], + ['allocate_5fbuffers_26',['allocate_buffers',['../classtz_1_1gl_1_1vk2_1_1_command_pool.html#a791dba923c7069be7b684d58c62017fe',1,'tz::gl::vk2::CommandPool']]], + ['allocate_5fsets_27',['allocate_sets',['../classtz_1_1gl_1_1vk2_1_1_descriptor_pool.html#a08339d22389d1d308abbce0ea80a4be8',1,'tz::gl::vk2::DescriptorPool']]], + ['allocation_28',['allocation',['../structtz_1_1gl_1_1vk2_1_1_descriptor_pool_1_1_allocation.html',1,'tz::gl::vk2::DescriptorPool::Allocation'],['../structtz_1_1gl_1_1vk2_1_1_command_pool_1_1_allocation.html',1,'tz::gl::vk2::CommandPool::Allocation']]], + ['allocationresult_29',['allocationresult',['../structtz_1_1gl_1_1vk2_1_1_command_pool_1_1_allocation_result.html',1,'tz::gl::vk2::CommandPool::AllocationResult'],['../structtz_1_1gl_1_1vk2_1_1_descriptor_pool_1_1_allocation_result.html',1,'tz::gl::vk2::DescriptorPool::AllocationResult']]], + ['allocationresulttype_30',['allocationresulttype',['../structtz_1_1gl_1_1vk2_1_1_command_pool_1_1_allocation_result.html#adbfc6c7f0841a5e22dfe4c2c9237c893',1,'tz::gl::vk2::CommandPool::AllocationResult::AllocationResultType'],['../structtz_1_1gl_1_1vk2_1_1_descriptor_pool_1_1_allocation_result.html#abad85d19de3197a840dc5e69ad797c54',1,'tz::gl::vk2::DescriptorPool::AllocationResult::AllocationResultType']]], + ['allocationsuccess_31',['AllocationSuccess',['../structtz_1_1gl_1_1vk2_1_1_descriptor_pool_1_1_allocation_result.html#abad85d19de3197a840dc5e69ad797c54a6f8ab75df1f61fe1d74b80230950e6a0',1,'tz::gl::vk2::DescriptorPool::AllocationResult']]], + ['allocator_5fadapter_32',['allocator_adapter',['../classtz_1_1allocator__adapter.html',1,'tz']]], + ['allocators_33',['Allocators',['../group__tz__core__memory__allocator.html',1,'']]], + ['allreads_34',['AllReads',['../group__tz__gl__vk__graphics__pipeline__render__pass.html#ggaa5dd0142a36cd59d14dff54eed67c3dfa8ab0a7cae3cbaff41e05a64461e3d3dc',1,'tz::gl::vk2']]], + ['allwrites_35',['AllWrites',['../group__tz__gl__vk__graphics__pipeline__render__pass.html#ggaa5dd0142a36cd59d14dff54eed67c3dfa87c699210d01c41d2f2e4d26a26467b9',1,'tz::gl::vk2']]], + ['alpha_5fblending_36',['alpha_blending',['../group__tz__gl2__renderer.html#ggac6f74feb8cd57f49c051f5d83a12be5da9c2fd878595ad8136ed219ece90dfef9',1,'tz::gl']]], + ['alwaysfalse_37',['AlwaysFalse',['../group__tz__gl__vk__graphics__pipeline__fixed.html#gga93e2cb3a5e44484b0548e28496de69c7a8cec5cec7e1bd101eefe8dde47c99289',1,'tz::gl::vk2']]], + ['alwaystrue_38',['AlwaysTrue',['../group__tz__gl__vk__graphics__pipeline__fixed.html#gga93e2cb3a5e44484b0548e28496de69c7a65db12e33585aff2007aad58b62b7bcd',1,'tz::gl::vk2']]], + ['and_39',['and',['../group__tzsl__atomic.html#gafe35966b39ca9b843aee1df9bf0e8dcc',1,'tz::atomic']]], + ['and_20features_40',['Extensions and Features',['../group__tz__gl__vk__extension.html',1,'']]], + ['and_20formats_41',['and formats',['../group__tz__gl__vk__image.html',1,'Images, Samplers and Formats'],['../group__tz__gl__ogl2__image.html',1,'Images, Samplers and Formats']]], + ['and_20modules_42',['Shader Programs and Modules',['../group__tz__gl__vk__graphics__pipeline__shader.html',1,'']]], + ['and_20outputs_43',['Inputs and Outputs',['../group__tz__gl2__io.html',1,'']]], + ['and_20pools_44',['Command Buffers and Pools',['../group__tz__gl__vk__commands.html',1,'']]], + ['and_20sets_45',['Descriptor Layouts and Sets',['../group__tz__gl__vk__descriptors.html',1,'']]], + ['and_20window_20surface_20interation_20wsi_46',['Presentation and Window Surface Interation (WSI)',['../group__tz__gl__vk__presentation.html',1,'']]], + ['anim_5frenderer_47',['anim_renderer',['../classtz_1_1ren_1_1anim__renderer.html',1,'tz::ren']]], + ['animation_5fplayback_5ft_48',['animation_playback_t',['../structtz_1_1ren_1_1animation__renderer_1_1gltf__info_1_1animation__playback__t.html',1,'tz::ren::animation_renderer::gltf_info']]], + ['animation_5frenderer_49',['animation_renderer',['../classtz_1_1ren_1_1animation__renderer.html',1,'tz::ren']]], + ['api_20reference_50',['api reference',['../group__tz__cpp.html',1,'C++ API Reference'],['../tz_lua.html',1,'Lua API Reference'],['../group__tzsl.html',1,'TZSL API Reference']]], + ['append_51',['append',['../classtz_1_1basic__list.html#a2da568b03a98882cfd70dbc9ef726f29',1,'tz::basic_list']]], + ['append_5frange_52',['append_range',['../classtz_1_1basic__list.html#ae49735e774b1d312a5fbe8f383a54af5',1,'tz::basic_list']]], + ['application_5fflag_53',['application_flag',['../group__tz__core.html#gad12da2cb05946402335871d2e282cbf9',1,'tz']]], + ['array_5felement_54',['array_element',['../structtz_1_1gl_1_1vk2_1_1_descriptor_set_1_1_write.html#a7646cd399f52126271396f9693e69c94',1,'tz::gl::vk2::DescriptorSet::Write']]], + ['array_5flayers_55',['array_layers',['../structtz_1_1gl_1_1vk2_1_1image__info.html#a351c5165fd522daa256f8f9010672256',1,'tz::gl::vk2::image_info']]], + ['asin_56',['asin',['../group__tzsl__math.html#ga303ccf32c2a3bd51916059746e13d4fb',1,'tz::math']]], + ['asinh_57',['asinh',['../group__tzsl__math.html#ga3cea91edf9f9b37f5aaeb8b20eeed9a8',1,'tz::math']]], + ['assert_58',['assert',['../group__tzsl__debug.html#ga46aa856e72453e84675e0a867438b8d0',1,'tz::debug::assert()'],['../group__tz__core.html#ga35faea66fc04dfa33238c863eb740c34',1,'tz::assert()']]], + ['asset_5fpackage_59',['asset_package',['../structtz_1_1ren_1_1animation__renderer_1_1asset__package.html',1,'tz::ren::animation_renderer']]], + ['assetstoragecommon_60',['AssetStorageCommon',['../classtz_1_1gl_1_1_asset_storage_common.html',1,'tz::gl']]], + ['assetstoragecommon_3c_20iresource_20_3e_61',['AssetStorageCommon< iresource >',['../classtz_1_1gl_1_1_asset_storage_common.html',1,'tz::gl']]], + ['atan_62',['atan',['../group__tzsl__math.html#gab6513224bd4ea1a83d9e1e78083a5899',1,'tz::math']]], + ['atanh_63',['atanh',['../group__tzsl__math.html#ga6321494f7f16de62c6693d5ec61aafd0',1,'tz::math']]], + ['atomic_20operations_64',['Atomic Operations',['../group__tzsl__atomic.html',1,'']]], + ['attachment_65',['Attachment',['../structtz_1_1gl_1_1vk2_1_1_attachment.html',1,'tz::gl::vk2']]], + ['attachment_5fidx_66',['attachment_idx',['../structtz_1_1gl_1_1vk2_1_1_render_pass_info_1_1_attachment_reference.html#ae5b305155d4912ffe6cae8a8e593a7a5',1,'tz::gl::vk2::RenderPassInfo::AttachmentReference']]], + ['attachmentreference_67',['AttachmentReference',['../structtz_1_1gl_1_1vk2_1_1_render_pass_info_1_1_attachment_reference.html',1,'tz::gl::vk2::RenderPassInfo']]], + ['attachments_68',['attachments',['../structtz_1_1gl_1_1vk2_1_1_framebuffer_info.html#a73cc5483be237ed80cfe6e2545797120',1,'tz::gl::vk2::FramebufferInfo::attachments'],['../structtz_1_1gl_1_1vk2_1_1_render_pass_info.html#ae5e3e35f30d6ffc55b24b9da1bd516d9',1,'tz::gl::vk2::RenderPassInfo::attachments']]], + ['attribute_69',['Attribute',['../structtz_1_1gl_1_1vk2_1_1_vertex_input_state_1_1_attribute.html',1,'tz::gl::vk2::VertexInputState']]] +]; diff --git a/search/all_1.js b/search/all_1.js new file mode 100644 index 0000000000..0f6a4e63f1 --- /dev/null +++ b/search/all_1.js @@ -0,0 +1,83 @@ +var searchData= +[ + ['back_0',['back',['../classtz_1_1enum__field.html#ac7bf408eb8998817ef105243093e5edc',1,'tz::enum_field::back()'],['../classtz_1_1basic__list.html#a7997b2e322ea17998655cbbb4846ae69',1,'tz::basic_list::back() const'],['../classtz_1_1basic__list.html#ada048725d4c9628619d5fb8ff984c6d3',1,'tz::basic_list::back()'],['../structtz_1_1gl_1_1vk2_1_1_depth_stencil_state.html#ad0deeef78c7f2102fc60a1e12010bb6e',1,'tz::gl::vk2::DepthStencilState::back']]], + ['backculling_1',['BackCulling',['../group__tz__gl__vk__graphics__pipeline__fixed.html#ggaf55856ce9f281f90908bac12e0061e16ae801bd1e6bd89372f391535221e71cf3',1,'tz::gl::vk2']]], + ['backend_2',['backend',['../group__tz__gl__ogl2.html',1,'OpenGL Backend'],['../group__tz__gl__vk.html',1,'Vulkan Backend']]], + ['basic_5fbind_3',['basic_bind',['../classtz_1_1gl_1_1ogl2_1_1buffer.html#af4b9c7ba42660acf5cb50dc79117f2ae',1,'tz::gl::ogl2::buffer']]], + ['basic_5flist_4',['basic_list',['../classtz_1_1basic__list.html#aaf16b4ba68943da253217bfaf205eaeb',1,'tz::basic_list::basic_list()=default'],['../classtz_1_1basic__list.html#a9b24154d8d989de8f583fde2be983f8b',1,'tz::basic_list::basic_list(std::initializer_list< T > elements)'],['../classtz_1_1basic__list.html',1,'tz::basic_list< T, Allocator >']]], + ['basic_5flist_3c_20attachmentstate_20_3e_5',['basic_list< AttachmentState >',['../classtz_1_1basic__list.html',1,'tz']]], + ['basic_5flist_3c_20const_20tz_3a_3agl_3a_3avk2_3a_3abinarysemaphore_20_2a_20_3e_6',['basic_list< const tz::gl::vk2::BinarySemaphore * >',['../classtz_1_1basic__list.html',1,'tz']]], + ['basic_5flist_3c_20const_20tz_3a_3agl_3a_3avk2_3a_3acommandbuffer_20_2a_20_3e_7',['basic_list< const tz::gl::vk2::CommandBuffer * >',['../classtz_1_1basic__list.html',1,'tz']]], + ['basic_5flist_3c_20const_20tz_3a_3agl_3a_3avk2_3a_3adescriptorlayout_20_2a_20_3e_8',['basic_list< const tz::gl::vk2::DescriptorLayout * >',['../classtz_1_1basic__list.html',1,'tz']]], + ['basic_5flist_3c_20const_20tz_3a_3agl_3a_3avk2_3a_3adescriptorset_20_2a_20_3e_9',['basic_list< const tz::gl::vk2::DescriptorSet * >',['../classtz_1_1basic__list.html',1,'tz']]], + ['basic_5flist_3c_20framebuffer_5ftexture_20_3e_10',['basic_list< framebuffer_texture >',['../classtz_1_1basic__list.html',1,'tz']]], + ['basic_5flist_3c_20list_20_3e_11',['basic_list< List >',['../classtz_1_1basic__list.html',1,'tz']]], + ['basic_5flist_3c_20smartpointer_2c_20std_3a_3aallocator_3c_20std_3a_3aunique_5fptr_3c_20t_20_3e_20_3e_20_3e_12',['basic_list< SmartPointer, std::allocator< std::unique_ptr< T > > >',['../classtz_1_1basic__list.html',1,'tz']]], + ['basic_5flist_3c_20std_3a_3auint32_5ft_20_3e_13',['basic_list< std::uint32_t >',['../classtz_1_1basic__list.html',1,'tz']]], + ['basic_5flist_3c_20tz_3a_3agl_3a_3aicomponent_20_2a_20_3e_14',['basic_list< tz::gl::icomponent * >',['../classtz_1_1basic__list.html',1,'tz']]], + ['basic_5flist_3c_20tz_3a_3agl_3a_3aogl2_3a_3ashader_5fmodule_5finfo_20_3e_15',['basic_list< tz::gl::ogl2::shader_module_info >',['../classtz_1_1basic__list.html',1,'tz']]], + ['basic_5flist_3c_20tz_3a_3agl_3a_3avk2_3a_3aattachment_20_3e_16',['basic_list< tz::gl::vk2::Attachment >',['../classtz_1_1basic__list.html',1,'tz']]], + ['basic_5flist_3c_20tz_3a_3agl_3a_3avk2_3a_3acommandbuffer_20_3e_17',['basic_list< tz::gl::vk2::CommandBuffer >',['../classtz_1_1basic__list.html',1,'tz']]], + ['basic_5flist_3c_20tz_3a_3agl_3a_3avk2_3a_3adescriptorlayoutinfo_3a_3abindinginfo_20_3e_18',['basic_list< tz::gl::vk2::DescriptorLayoutInfo::BindingInfo >',['../classtz_1_1basic__list.html',1,'tz']]], + ['basic_5flist_3c_20tz_3a_3agl_3a_3avk2_3a_3adescriptorset_20_3e_19',['basic_list< tz::gl::vk2::DescriptorSet >',['../classtz_1_1basic__list.html',1,'tz']]], + ['basic_5flist_3c_20tz_3a_3agl_3a_3avk2_3a_3ahardware_3a_3aqueue_3a_3asubmitinfo_3a_3asignalinfo_20_3e_20',['basic_list< tz::gl::vk2::hardware::Queue::SubmitInfo::SignalInfo >',['../classtz_1_1basic__list.html',1,'tz']]], + ['basic_5flist_3c_20tz_3a_3agl_3a_3avk2_3a_3ahardware_3a_3aqueue_3a_3asubmitinfo_3a_3awaitinfo_20_3e_21',['basic_list< tz::gl::vk2::hardware::Queue::SubmitInfo::WaitInfo >',['../classtz_1_1basic__list.html',1,'tz']]], + ['basic_5flist_3c_20tz_3a_3agl_3a_3avk2_3a_3aimageview_20_2a_20_3e_22',['basic_list< tz::gl::vk2::ImageView * >',['../classtz_1_1basic__list.html',1,'tz']]], + ['basic_5flist_3c_20tz_3a_3agl_3a_3avk2_3a_3arenderpassinfo_3a_3aattachmentreference_20_3e_23',['basic_list< tz::gl::vk2::RenderPassInfo::AttachmentReference >',['../classtz_1_1basic__list.html',1,'tz']]], + ['basic_5flist_3c_20tz_3a_3agl_3a_3avk2_3a_3arenderpassinfo_3a_3ainputattachmentreference_20_3e_24',['basic_list< tz::gl::vk2::RenderPassInfo::InputAttachmentReference >',['../classtz_1_1basic__list.html',1,'tz']]], + ['basic_5flist_3c_20tz_3a_3agl_3a_3avk2_3a_3arenderpassinfo_3a_3asubpass_20_3e_25',['basic_list< tz::gl::vk2::RenderPassInfo::Subpass >',['../classtz_1_1basic__list.html',1,'tz']]], + ['basic_5flist_3c_20tz_3a_3agl_3a_3avk2_3a_3ashadermoduleinfo_20_3e_26',['basic_list< tz::gl::vk2::ShaderModuleInfo >',['../classtz_1_1basic__list.html',1,'tz']]], + ['basic_5flist_3c_20tz_3a_3agl_3a_3avk2_3a_3avertexinputstate_3a_3aattribute_20_3e_27',['basic_list< tz::gl::vk2::VertexInputState::Attribute >',['../classtz_1_1basic__list.html',1,'tz']]], + ['basic_5flist_3c_20tz_3a_3agl_3a_3avk2_3a_3avertexinputstate_3a_3abinding_20_3e_28',['basic_list< tz::gl::vk2::VertexInputState::Binding >',['../classtz_1_1basic__list.html',1,'tz']]], + ['basic_5flist_3c_20vkpipelineshaderstagecreateinfo_20_3e_29',['basic_list< VkPipelineShaderStageCreateInfo >',['../classtz_1_1basic__list.html',1,'tz']]], + ['basic_5flist_3c_20vkrect2d_20_3e_30',['basic_list< VkRect2D >',['../classtz_1_1basic__list.html',1,'tz']]], + ['basic_5flist_3c_20vkviewport_20_3e_31',['basic_list< VkViewport >',['../classtz_1_1basic__list.html',1,'tz']]], + ['basic_5flist_3c_20write_20_3e_32',['basic_list< Write >',['../classtz_1_1basic__list.html',1,'tz']]], + ['begin_33',['begin',['../classtz_1_1enum__field.html#ac167b735311acfe124dfb4c619bd6d1a',1,'tz::enum_field::begin()'],['../classtz_1_1basic__list.html#ac840df6f261cf90d09d979996b0df270',1,'tz::basic_list::begin()'],['../classtz_1_1basic__list.html#ab0aaf74450ac8ef20c0787cfb893db5a',1,'tz::basic_list::begin() const'],['../classtz_1_1enum__field.html#a1497269447babbdf90e3d705938c461c',1,'tz::enum_field::begin()'],['../classtz_1_1_polymorphic_list.html#a513535554bf5116e539e356764b812b3',1,'tz::PolymorphicList::begin()'],['../classtz_1_1_polymorphic_list.html#ad6f049474f8d35b6accbb19d6e66524b',1,'tz::PolymorphicList::begin() const']]], + ['begin_5fframe_34',['begin_frame',['../group__tz__core.html#gae00451643399562c92b48a05a40896b7',1,'tz']]], + ['begindynamicrendering_35',['BeginDynamicRendering',['../structtz_1_1gl_1_1vk2_1_1_vulkan_command_1_1_begin_dynamic_rendering.html',1,'tz::gl::vk2::VulkanCommand']]], + ['beginrenderpass_36',['BeginRenderPass',['../structtz_1_1gl_1_1vk2_1_1_vulkan_command_1_1_begin_render_pass.html',1,'tz::gl::vk2::VulkanCommand']]], + ['binarysemaphore_37',['BinarySemaphore',['../classtz_1_1gl_1_1vk2_1_1_binary_semaphore.html',1,'tz::gl::vk2']]], + ['bind_38',['bind',['../classtz_1_1gl_1_1ogl2_1_1framebuffer.html#ac35f4fd02a725fa84a6e3fbdeaec4e09',1,'tz::gl::ogl2::framebuffer::bind()'],['../classtz_1_1gl_1_1ogl2_1_1vertex__array.html#aaf01a3edf3e63668020174f78199b3b8',1,'tz::gl::ogl2::vertex_array::bind()']]], + ['bind_5fbuffer_39',['bind_buffer',['../classtz_1_1gl_1_1vk2_1_1_command_buffer_recording.html#aa015012eda3e9de92f3a5adbaff798bd',1,'tz::gl::vk2::CommandBufferRecording']]], + ['bind_5fbuffers_40',['bind_buffers',['../classtz_1_1gl_1_1_resource_storage.html#ad52eafd3a054c5e4489c026c94a6c81a',1,'tz::gl::ResourceStorage']]], + ['bind_5fdescriptor_5fsets_41',['bind_descriptor_sets',['../classtz_1_1gl_1_1vk2_1_1_command_buffer_recording.html#ac9e417b34e2a883b34ab2099a82acd54',1,'tz::gl::vk2::CommandBufferRecording']]], + ['bind_5fimage_5fbuffer_42',['bind_image_buffer',['../classtz_1_1gl_1_1_resource_storage.html#a71e4a2bb72688cea1a4849a8f0705a42',1,'tz::gl::ResourceStorage']]], + ['bind_5fpipeline_43',['bind_pipeline',['../classtz_1_1gl_1_1vk2_1_1_command_buffer_recording.html#a8bbeeef67dcb9b04b17bf5abde907e01',1,'tz::gl::vk2::CommandBufferRecording']]], + ['bind_5fto_5fresource_5fid_44',['bind_to_resource_id',['../classtz_1_1gl_1_1ogl2_1_1buffer.html#a2f38aa4dfb4a6f0504bee1a44e0bbee6',1,'tz::gl::ogl2::buffer']]], + ['bindbuffer_45',['BindBuffer',['../structtz_1_1gl_1_1vk2_1_1_vulkan_command_1_1_bind_buffer.html',1,'tz::gl::vk2::VulkanCommand']]], + ['binddescriptorsets_46',['BindDescriptorSets',['../structtz_1_1gl_1_1vk2_1_1_vulkan_command_1_1_bind_descriptor_sets.html',1,'tz::gl::vk2::VulkanCommand']]], + ['bindindexbuffer_47',['BindIndexBuffer',['../structtz_1_1gl_1_1vk2_1_1_vulkan_command_1_1_bind_index_buffer.html',1,'tz::gl::vk2::VulkanCommand']]], + ['binding_48',['binding',['../structtz_1_1gl_1_1vk2_1_1_vertex_input_state_1_1_binding.html',1,'tz::gl::vk2::VertexInputState::Binding'],['../structtz_1_1gl_1_1vk2_1_1_vertex_input_state_1_1_binding.html#a7022ed9b009dd3f047f594907b00de30',1,'tz::gl::vk2::VertexInputState::Binding::binding']]], + ['binding_5fcount_49',['binding_count',['../classtz_1_1gl_1_1vk2_1_1_descriptor_layout.html#a58c4419f2d78c1a6cc93100d3937480c',1,'tz::gl::vk2::DescriptorLayout::binding_count()'],['../structtz_1_1gl_1_1vk2_1_1_descriptor_layout_info.html#a8af57d3237c4127b4d5c16624aa44306',1,'tz::gl::vk2::DescriptorLayoutInfo::binding_count()']]], + ['binding_5fid_50',['binding_id',['../structtz_1_1gl_1_1vk2_1_1_vertex_input_state_1_1_attribute.html#a873f6b4ffe7c42812198a5191c13e523',1,'tz::gl::vk2::VertexInputState::Attribute::binding_id'],['../structtz_1_1gl_1_1vk2_1_1_descriptor_set_1_1_write.html#a7e29fad1b7b3a6f8170853f132d51ad1',1,'tz::gl::vk2::DescriptorSet::Write::binding_id']]], + ['bindinginfo_51',['BindingInfo',['../structtz_1_1gl_1_1vk2_1_1_descriptor_layout_info_1_1_binding_info.html',1,'tz::gl::vk2::DescriptorLayoutInfo']]], + ['bindings_52',['bindings',['../structtz_1_1gl_1_1vk2_1_1_descriptor_layout_info.html#a9612491e1802fd7a5d0812e80d25f332',1,'tz::gl::vk2::DescriptorLayoutInfo']]], + ['bindless_5fhandle_53',['bindless_handle',['../classtz_1_1gl_1_1ogl2_1_1image.html#a95cc3a29802146fa924deac10a64fc72',1,'tz::gl::ogl2::image']]], + ['bindlessdescriptors_54',['BindlessDescriptors',['../group__tz__gl__vk__extension.html#gga6744c8f7d1276d6d9ae861b21c489505aa470c5a1e7f7f5154881cbc29acff30c',1,'tz::gl::vk2']]], + ['bindpipeline_55',['BindPipeline',['../structtz_1_1gl_1_1vk2_1_1_vulkan_command_1_1_bind_pipeline.html',1,'tz::gl::vk2::VulkanCommand']]], + ['bothculling_56',['BothCulling',['../group__tz__gl__vk__graphics__pipeline__fixed.html#ggaf55856ce9f281f90908bac12e0061e16a41356deeb07cbbcf9da994b364f45374',1,'tz::gl::vk2']]], + ['bottom_57',['Bottom',['../group__tz__gl__vk__graphics__pipeline.html#ggaa581c5a329a76e48f41ca02bd263251aa2ad9d63b69c4a10a5cc9cad923133bc4',1,'tz::gl::vk2']]], + ['buffer_58',['buffer',['../classtz_1_1gl_1_1vk2_1_1_buffer.html',1,'tz::gl::vk2::Buffer'],['../classtz_1_1gl_1_1ogl2_1_1buffer.html',1,'tz::gl::ogl2::buffer'],['../structtz_1_1gl_1_1vk2_1_1_vulkan_command_1_1_bind_buffer.html#a39c702b7de862996bb627b65c485ffbd',1,'tz::gl::vk2::VulkanCommand::BindBuffer::buffer'],['../structtz_1_1gl_1_1vk2_1_1_descriptor_set_1_1_write_1_1_buffer_write_info.html#ad494c0b5a3a9d9d905b6b4b34ca04d10',1,'tz::gl::vk2::DescriptorSet::Write::BufferWriteInfo::buffer'],['../classtz_1_1gl_1_1ogl2_1_1buffer.html#ad983e40068db50252e23d62e928e17a1',1,'tz::gl::ogl2::buffer::buffer()'],['../group__tz__gl2__res.html#gga4a7818551bb2ef3d04edb95ec731d041a7f2db423a49b305459147332fb01cf87',1,'buffertz::gl']]], + ['buffer_5fcomponent_5fogl_59',['buffer_component_ogl',['../classtz_1_1gl_1_1buffer__component__ogl.html',1,'tz::gl']]], + ['buffer_5fcomponent_5fvulkan_60',['buffer_component_vulkan',['../classtz_1_1gl_1_1buffer__component__vulkan.html',1,'tz::gl']]], + ['buffer_5fcopy_5fbuffer_61',['buffer_copy_buffer',['../classtz_1_1gl_1_1vk2_1_1_command_buffer_recording.html#a42ed45f3524b6bfe1c98de341b8b88de',1,'tz::gl::vk2::CommandBufferRecording']]], + ['buffer_5fcopy_5fimage_62',['buffer_copy_image',['../classtz_1_1gl_1_1vk2_1_1_command_buffer_recording.html#a245b299b9c5cf4248e7ae19c63f63a8d',1,'tz::gl::vk2::CommandBufferRecording']]], + ['buffer_5fcount_63',['buffer_count',['../structtz_1_1gl_1_1vk2_1_1_command_pool_1_1_allocation.html#ab94d776ad949320f02660f68b6e73da9',1,'tz::gl::vk2::CommandPool::Allocation']]], + ['buffer_5fhandle_64',['buffer_handle',['../structtz_1_1gl_1_1renderer__edit_1_1buffer__resize.html#af0f17126f50ca0c604bb25ee0fc8caa8',1,'tz::gl::renderer_edit::buffer_resize']]], + ['buffer_5finfo_65',['buffer_info',['../structtz_1_1gl_1_1buffer__info.html',1,'tz::gl::buffer_info'],['../structtz_1_1gl_1_1vk2_1_1buffer__info.html',1,'tz::gl::vk2::buffer_info'],['../structtz_1_1gl_1_1ogl2_1_1buffer__info.html',1,'tz::gl::ogl2::buffer_info']]], + ['buffer_5foffset_66',['buffer_offset',['../structtz_1_1gl_1_1vk2_1_1_descriptor_set_1_1_write_1_1_buffer_write_info.html#a70e5b4893505eaf2e7fe5aecde6bb0cb',1,'tz::gl::vk2::DescriptorSet::Write::BufferWriteInfo']]], + ['buffer_5fresidency_67',['buffer_residency',['../group__tz__gl__ogl2__buffers.html#gae0f51febb963a7dc9fce3cc2208559a6',1,'tz::gl::ogl2']]], + ['buffer_5fresize_68',['buffer_resize',['../structtz_1_1gl_1_1renderer__edit_1_1buffer__resize.html',1,'tz::gl::renderer_edit::buffer_resize'],['../classtz_1_1gl_1_1_renderer_edit_builder.html#a1bac636b2eaad5c37e49d7dcf290dc04',1,'tz::gl::RendererEditBuilder::buffer_resize()']]], + ['buffer_5fresource_69',['buffer_resource',['../classtz_1_1gl_1_1buffer__resource.html',1,'tz::gl']]], + ['buffer_5ftarget_70',['buffer_target',['../group__tz__gl__ogl2__buffers.html#ga2d4cfcc22205d2276ef7347cf6e1c1ed',1,'tz::gl::ogl2']]], + ['buffer_5fwrite_5fsize_71',['buffer_write_size',['../structtz_1_1gl_1_1vk2_1_1_descriptor_set_1_1_write_1_1_buffer_write_info.html#a521bc8dee0042c71b776d1ede689532e',1,'tz::gl::vk2::DescriptorSet::Write::BufferWriteInfo']]], + ['buffercopybuffer_72',['BufferCopyBuffer',['../structtz_1_1gl_1_1vk2_1_1_vulkan_command_1_1_buffer_copy_buffer.html',1,'tz::gl::vk2::VulkanCommand']]], + ['buffercopyimage_73',['BufferCopyImage',['../structtz_1_1gl_1_1vk2_1_1_vulkan_command_1_1_buffer_copy_image.html',1,'tz::gl::vk2::VulkanCommand']]], + ['buffers_74',['buffers',['../group__tz__gl__vk__buffer.html',1,'Buffers'],['../group__tz__gl__ogl2__buffers.html',1,'Buffers'],['../structtz_1_1gl_1_1vk2_1_1_command_pool_1_1_allocation_result.html#a7090fa6999352b4a444cd22121c8ae45',1,'tz::gl::vk2::CommandPool::AllocationResult::buffers']]], + ['buffers_20and_20pools_75',['Command Buffers and Pools',['../group__tz__gl__vk__commands.html',1,'']]], + ['bufferusage_76',['BufferUsage',['../group__tz__gl__vk__buffer.html#ga0c6ff78fc058c3e209ba59dc1b2c02a6',1,'tz::gl::vk2']]], + ['bufferwriteinfo_77',['BufferWriteInfo',['../structtz_1_1gl_1_1vk2_1_1_descriptor_set_1_1_write_1_1_buffer_write_info.html',1,'tz::gl::vk2::DescriptorSet::Write']]], + ['build_78',['build',['../classtz_1_1gl_1_1vk2_1_1_render_pass_builder.html#ac2c1deaa48c76a66920eb7bd4bce8034',1,'tz::gl::vk2::RenderPassBuilder::build()'],['../classtz_1_1gl_1_1vk2_1_1_subpass_builder.html#a2f4293bd1783d6dd12a94126622d5f36',1,'tz::gl::vk2::SubpassBuilder::build()'],['../classtz_1_1gl_1_1vk2_1_1_descriptor_layout_builder.html#a255b1e89de7ebac50241ccef4f995aba',1,'tz::gl::vk2::DescriptorLayoutBuilder::build()'],['../classtz_1_1gl_1_1_renderer_edit_builder.html#a693855ee726f0d71eab5c0144f4016a8',1,'tz::gl::RendererEditBuilder::build()']]], + ['button_5fstate_79',['button_state',['../structtz_1_1wsi_1_1mouse__state.html#a5970edef7e036da4f2a8cb454278836e',1,'tz::wsi::mouse_state']]] +]; diff --git a/search/all_10.js b/search/all_10.js new file mode 100644 index 0000000000..a1b64da92d --- /dev/null +++ b/search/all_10.js @@ -0,0 +1,10 @@ +var searchData= +[ + ['quat_0',['quat',['../classtz_1_1quat.html',1,'tz']]], + ['queue_1',['queue',['../classtz_1_1gl_1_1vk2_1_1hardware_1_1_queue.html',1,'tz::gl::vk2::hardware::Queue'],['../structtz_1_1gl_1_1vk2_1_1_command_pool_info.html#ad61f2476a6a318a6c77e147c43b84e8c',1,'tz::gl::vk2::CommandPoolInfo::queue']]], + ['queued_5fanim_2',['queued_anim',['../structtz_1_1ren_1_1animation__renderer_1_1gltf__info_1_1animation__playback__t_1_1queued__anim.html',1,'tz::ren::animation_renderer::gltf_info::animation_playback_t']]], + ['queuefamilyinfo_3',['QueueFamilyInfo',['../structtz_1_1gl_1_1vk2_1_1_queue_family_info.html',1,'tz::gl::vk2']]], + ['queueinfo_4',['QueueInfo',['../structtz_1_1gl_1_1vk2_1_1hardware_1_1_queue_info.html',1,'tz::gl::vk2::hardware']]], + ['queuerequest_5',['QueueRequest',['../structtz_1_1gl_1_1vk2_1_1_queue_request.html',1,'tz::gl::vk2']]], + ['queuestorage_6',['QueueStorage',['../classtz_1_1gl_1_1vk2_1_1_queue_storage.html',1,'tz::gl::vk2']]] +]; diff --git a/search/all_11.js b/search/all_11.js new file mode 100644 index 0000000000..503455b353 --- /dev/null +++ b/search/all_11.js @@ -0,0 +1,69 @@ +var searchData= +[ + ['rasteriserstate_0',['RasteriserState',['../structtz_1_1gl_1_1vk2_1_1_rasteriser_state.html',1,'tz::gl::vk2']]], + ['record_1',['record',['../classtz_1_1gl_1_1vk2_1_1_command_buffer.html#ac914c5d21dc2fc919375b27fc1fc78f0',1,'tz::gl::vk2::CommandBuffer']]], + ['ref_5fresource_2',['ref_resource',['../classtz_1_1gl_1_1renderer__info.html#ac5855e1f47ad7293713337e80cec6d7a',1,'tz::gl::renderer_info::ref_resource(icomponent *component)'],['../classtz_1_1gl_1_1renderer__info.html#a53dd4d75cc0746b72e7f56adae703b53',1,'tz::gl::renderer_info::ref_resource(renderer_handle ren, resource_handle res)']]], + ['reference_3',['reference',['../group__tz__cpp.html',1,'C++ API Reference'],['../tz_lua.html',1,'Lua API Reference'],['../group__tzsl.html',1,'TZSL API Reference']]], + ['reflect_4',['reflect',['../group__tzsl__math.html#gafed4b19ac0c92a8be0c4423075a651cc',1,'tz::math']]], + ['refract_5',['refract',['../group__tzsl__math.html#ga9e6144cd5b477de94de1bca43421724f',1,'tz::math']]], + ['remove_6',['remove',['../classtz_1_1enum__field.html#a22968209e6c89b1c32e223de7f0b9dd2',1,'tz::enum_field']]], + ['remove_5fcallback_7',['remove_callback',['../classtz_1_1callback.html#ac1d0a29c2a313071132aceded7347619',1,'tz::callback']]], + ['remove_5fchildren_8',['remove_children',['../classtz_1_1transform__hierarchy.html#a03c95b250f14ac9f110b59eceb772222af68ad5a97e4322c39a182b75b4719967',1,'tz::transform_hierarchy']]], + ['remove_5fnode_9',['remove_node',['../classtz_1_1transform__hierarchy.html#aa0ced17908b8fd14298132668f1d45c9',1,'tz::transform_hierarchy']]], + ['remove_5fstrategy_10',['remove_strategy',['../classtz_1_1transform__hierarchy.html#a03c95b250f14ac9f110b59eceb772222',1,'tz::transform_hierarchy']]], + ['render_11',['render',['../classtz_1_1gl_1_1renderer.html#a5e5f72e20e10be732eb3a744e34058f3',1,'tz::gl::renderer::render()'],['../classtz_1_1gl_1_1renderer.html#a78496d2be55890b00a2b14767ac22bbc',1,'tz::gl::renderer::render(std::size_t tri_count)'],['../classtz_1_1gl_1_1renderer__ogl.html#a28e3f2beda21a1c597681760d3734ae4',1,'tz::gl::renderer_ogl::render()']]], + ['render_20passes_12',['Render Passes',['../group__tz__gl__vk__graphics__pipeline__render__pass.html',1,'']]], + ['render_5fbuffer_13',['render_buffer',['../classtz_1_1gl_1_1ogl2_1_1render__buffer.html',1,'tz::gl::ogl2']]], + ['render_5fbuffer_5finfo_14',['render_buffer_info',['../structtz_1_1gl_1_1ogl2_1_1render__buffer__info.html',1,'tz::gl::ogl2']]], + ['render_5fconfig_15',['render_config',['../structtz_1_1gl_1_1renderer__edit_1_1render__config.html',1,'tz::gl::renderer_edit']]], + ['render_5fpass_16',['render_pass',['../structtz_1_1gl_1_1vk2_1_1_framebuffer_info.html#ad7c9e83c24d89ff033a20bb08e07de8c',1,'tz::gl::vk2::FramebufferInfo']]], + ['render_5fstate_17',['render_state',['../structtz_1_1gl_1_1render__state.html',1,'tz::gl::render_state'],['../classtz_1_1gl_1_1_renderer_edit_builder.html#a93c4ffa0d35525ace09a54ce897f028d',1,'tz::gl::RendererEditBuilder::render_state()']]], + ['render_5ftarget_5ft_18',['render_target_t',['../structtz_1_1gl_1_1renderer__output__manager_1_1render__target__t.html',1,'tz::gl::renderer_output_manager']]], + ['render_5fwait_19',['render_wait',['../group__tz__gl2__renderer.html#ggac6f74feb8cd57f49c051f5d83a12be5da53620d781237787604432a229f2d8af7',1,'tz::gl']]], + ['renderer_20',['renderer',['../classtz_1_1gl_1_1renderer.html',1,'tz::gl']]], + ['renderer_20implementation_21',['renderer Implementation',['../group__tz__gl2__graphicsapi__ogl__frontend__renderer.html',1,'']]], + ['renderer_5fcommand_5fprocessor_22',['renderer_command_processor',['../classtz_1_1gl_1_1renderer__command__processor.html',1,'tz::gl']]], + ['renderer_5fcount_23',['renderer_count',['../classtz_1_1gl_1_1device.html#aa2adea5cb25d9712f1fe2b22dba3eec7',1,'tz::gl::device']]], + ['renderer_5fdescriptor_5fmanager_24',['renderer_descriptor_manager',['../classtz_1_1gl_1_1renderer__descriptor__manager.html',1,'tz::gl']]], + ['renderer_5fedit_25',['renderer_edit',['../structtz_1_1gl_1_1renderer__edit.html',1,'tz::gl']]], + ['renderer_5fedit_5frequest_26',['renderer_edit_request',['../group__tz__gl2__renderer.html#gaf8ed980ac9dca61a89e98615c27a8085',1,'tz::gl']]], + ['renderer_5fhandle_27',['renderer_handle',['../group__tz__gl2__renderer.html#gac87fead64cd4f4650e0315adb0841297',1,'tz::gl']]], + ['renderer_5finfo_28',['renderer_info',['../classtz_1_1gl_1_1renderer__info.html',1,'tz::gl']]], + ['renderer_5fogl_29',['renderer_ogl',['../classtz_1_1gl_1_1renderer__ogl.html#ad8f5c88c01550694021d6d15e8b1222b',1,'tz::gl::renderer_ogl::renderer_ogl()'],['../classtz_1_1gl_1_1renderer__ogl.html',1,'tz::gl::renderer_ogl']]], + ['renderer_5fogl_5fbase_30',['renderer_ogl_base',['../structtz_1_1gl_1_1renderer__ogl__base.html',1,'tz::gl']]], + ['renderer_5foption_31',['renderer_option',['../group__tz__gl2__renderer.html#gac6f74feb8cd57f49c051f5d83a12be5d',1,'tz::gl']]], + ['renderer_5foptions_32',['renderer_options',['../group__tz__gl2__renderer.html#ga73b4edabed4b0091a8b1fa6c8f618438',1,'tz::gl']]], + ['renderer_5foutput_33',['renderer_output',['../group__tz__gl2__res.html#ggaacaeec69fc5b83e204af317250a47eb8a8875c7873ad9469ba236f17af49ab331',1,'tz::gl']]], + ['renderer_5foutput_5fmanager_34',['renderer_output_manager',['../classtz_1_1gl_1_1renderer__output__manager.html',1,'tz::gl']]], + ['renderer_5fpipeline_35',['renderer_pipeline',['../classtz_1_1gl_1_1renderer__pipeline.html',1,'tz::gl']]], + ['renderer_5fresource_5fmanager_36',['renderer_resource_manager',['../classtz_1_1gl_1_1renderer__resource__manager.html',1,'tz::gl']]], + ['renderer_5ftag_37',['renderer_tag',['../structtz_1_1gl_1_1detail_1_1renderer__tag.html',1,'tz::gl::detail']]], + ['renderer_5fvulkan2_38',['renderer_vulkan2',['../classtz_1_1gl_1_1renderer__vulkan2.html',1,'tz::gl']]], + ['renderer_5fvulkan_5fbase_39',['renderer_vulkan_base',['../structtz_1_1gl_1_1renderer__vulkan__base.html',1,'tz::gl']]], + ['renderereditbuilder_40',['RendererEditBuilder',['../classtz_1_1gl_1_1_renderer_edit_builder.html',1,'tz::gl']]], + ['renderers_41',['Renderers',['../group__tz__gl2__renderer.html',1,'']]], + ['renderpass_42',['renderpass',['../classtz_1_1gl_1_1vk2_1_1_render_pass.html',1,'tz::gl::vk2::RenderPass'],['../classtz_1_1gl_1_1vk2_1_1_render_pass.html#ad43e05dd5535ca6430dbba0cfee87b01',1,'tz::gl::vk2::RenderPass::RenderPass()']]], + ['renderpassbuilder_43',['RenderPassBuilder',['../classtz_1_1gl_1_1vk2_1_1_render_pass_builder.html',1,'tz::gl::vk2']]], + ['renderpassinfo_44',['RenderPassInfo',['../structtz_1_1gl_1_1vk2_1_1_render_pass_info.html',1,'tz::gl::vk2']]], + ['renderpassrun_45',['renderpassrun',['../classtz_1_1gl_1_1vk2_1_1_command_buffer_recording_1_1_render_pass_run.html',1,'tz::gl::vk2::CommandBufferRecording::RenderPassRun'],['../classtz_1_1gl_1_1vk2_1_1_command_buffer_recording_1_1_render_pass_run.html#a4ad32a0a245c359f4c59f043b3565ff5',1,'tz::gl::vk2::CommandBufferRecording::RenderPassRun::RenderPassRun()']]], + ['repeat_46',['repeat',['../group__tz__gl__ogl2__image.html#gga52bed615aea0b883aeb6702716f95e5ba32cf6da134a8b268cf4ab6b79a9a5ad9',1,'repeattz::gl::ogl2'],['../group__tz__gl__vk__image.html#gga8d6daa8ff20537f40f5e1145342c2d4da7020426cfb0a204051be4b3053d2acc8',1,'Repeattz::gl::vk2']]], + ['report_47',['report',['../group__tz__core.html#gab9cfea70c99d9d2b1dd82bebee489377',1,'tz']]], + ['reset_48',['reset',['../classtz_1_1delay.html#ab4828a83cde0cd8739937a533dd91b60',1,'tz::delay']]], + ['residency_49',['residency',['../structtz_1_1gl_1_1vk2_1_1buffer__info.html#a70bc07d110c2ca518cab2eef097fa4a7',1,'tz::gl::vk2::buffer_info::residency'],['../structtz_1_1gl_1_1ogl2_1_1buffer__info.html#ae081fcea6ae41da602dce4fc8682b30a',1,'tz::gl::ogl2::buffer_info::residency'],['../structtz_1_1gl_1_1vk2_1_1image__info.html#aaf46fd5a595ef4843becc7ac80983130',1,'tz::gl::vk2::image_info::residency']]], + ['resize_50',['resize',['../classtz_1_1basic__list.html#a0a3896bd6babdbde094588b846fa8f5e',1,'tz::basic_list']]], + ['resource_51',['resource',['../classtz_1_1gl_1_1resource.html',1,'tz::gl']]], + ['resource_5faccess_52',['resource_access',['../group__tz__gl2__res.html#gac9293366fa49e7f476827595ca80fbbb',1,'tz::gl']]], + ['resource_5fcount_53',['resource_count',['../classtz_1_1gl_1_1renderer.html#a9761939bb33ca72dddf9c03d669eac8d',1,'tz::gl::renderer::resource_count()'],['../classtz_1_1gl_1_1renderer__ogl.html#a5b49989a7d61aa1ef55727206f1db63a',1,'tz::gl::renderer_ogl::resource_count()'],['../classtz_1_1gl_1_1renderer__info.html#a65c015b1bd2c1dbf9bddf72f2d2a22ee',1,'tz::gl::renderer_info::resource_count()']]], + ['resource_5fcount_5fof_54',['resource_count_of',['../classtz_1_1gl_1_1_resource_storage.html#a7434d0c28fc3e936ea2da36b6e5cd020',1,'tz::gl::ResourceStorage']]], + ['resource_5fflag_55',['resource_flag',['../group__tz__gl2__res.html#gaacaeec69fc5b83e204af317250a47eb8',1,'tz::gl']]], + ['resource_5freference_56',['resource_reference',['../structtz_1_1gl_1_1renderer__edit_1_1resource__reference.html',1,'tz::gl::renderer_edit']]], + ['resource_5ftype_57',['resource_type',['../group__tz__gl2__res.html#ga4a7818551bb2ef3d04edb95ec731d041',1,'tz::gl']]], + ['resource_5fwrite_58',['resource_write',['../structtz_1_1gl_1_1renderer__edit_1_1resource__write.html',1,'tz::gl::renderer_edit']]], + ['resources_59',['Resources',['../group__tz__gl2__res.html',1,'']]], + ['resourcestorage_60',['resourcestorage',['../classtz_1_1gl_1_1_resource_storage.html#ab57f9e4401a87f4fa877d0cdd69204ed',1,'tz::gl::ResourceStorage::ResourceStorage()'],['../classtz_1_1gl_1_1_resource_storage.html',1,'tz::gl::ResourceStorage']]], + ['right_61',['right',['../group__tz__wsi__mouse.html#ggaf90a65771c2d2d40e2d8a35f27288e23a7c4f29407893c334a6cb7a87bf045c0d',1,'tz::wsi']]], + ['rotate_62',['rotate',['../group__tz__core.html#gac0457238d0094915eda4df542774a9e8',1,'tz']]], + ['round_63',['round',['../group__tzsl__math.html#ga39cc0a661ddc88ab512b639cb38d4928',1,'tz::math']]], + ['row_64',['Row',['../classtz_1_1matrix.html#a6f7afc1df98e3a9a74430908f0db308a',1,'tz::matrix']]], + ['run_65',['run',['../group__tz__dbgui.html#gaf1315419d15da9d6793fc6182c3f0c78',1,'tz::dbgui']]] +]; diff --git a/search/all_12.js b/search/all_12.js new file mode 100644 index 0000000000..d27759aabc --- /dev/null +++ b/search/all_12.js @@ -0,0 +1,112 @@ +var searchData= +[ + ['sample_5fcount_0',['sample_count',['../structtz_1_1gl_1_1vk2_1_1_attachment.html#a3a45dac8d5587c7161a69f2e4431076e',1,'tz::gl::vk2::Attachment::sample_count'],['../structtz_1_1gl_1_1vk2_1_1image__info.html#a8d2aa7a0a435dd913d70be9713ca6eae',1,'tz::gl::vk2::image_info::sample_count']]], + ['samplecount_1',['SampleCount',['../group__tz__gl__vk__image.html#ga88492153134eeee9b8cb8c117b55473d',1,'tz::gl::vk2']]], + ['sampledimage_2',['SampledImage',['../group__tz__gl__vk__image.html#gga6ecb2d248a682aac08d93f4a7078161ea4520c597ce328c250d1ca5192047d71d',1,'tz::gl::vk2']]], + ['sampler_3',['sampler',['../classtz_1_1gl_1_1vk2_1_1_sampler.html',1,'tz::gl::vk2::Sampler'],['../structtz_1_1gl_1_1ogl2_1_1sampler.html',1,'tz::gl::ogl2::sampler'],['../structtz_1_1gl_1_1vk2_1_1_descriptor_set_1_1_write_1_1_image_write_info.html#a40c1f226010688408a26dd6eeef1957e',1,'tz::gl::vk2::DescriptorSet::Write::ImageWriteInfo::sampler']]], + ['sampleraddressmode_4',['SamplerAddressMode',['../group__tz__gl__vk__image.html#ga8d6daa8ff20537f40f5e1145342c2d4d',1,'tz::gl::vk2']]], + ['samplerinfo_5',['SamplerInfo',['../structtz_1_1gl_1_1vk2_1_1_sampler_info.html',1,'tz::gl::vk2']]], + ['samplers_20and_20formats_6',['samplers and formats',['../group__tz__gl__vk__image.html',1,'Images, Samplers and Formats'],['../group__tz__gl__ogl2__image.html',1,'Images, Samplers and Formats']]], + ['scale_7',['scale',['../group__tz__core.html#gac4e79331e3b84c5a36360169f7f6d4c8',1,'tz']]], + ['schedule_8',['schedule',['../structtz_1_1gl_1_1schedule.html',1,'tz::gl']]], + ['scissor_9',['scissor',['../structtz_1_1gl_1_1renderer__edit_1_1scissor.html',1,'tz::gl::renderer_edit']]], + ['scissor_5fregion_10',['scissor_region',['../structtz_1_1gl_1_1scissor__region.html',1,'tz::gl']]], + ['seconds_11',['seconds',['../classtz_1_1duration.html#adec2e357a7d098cbc4356752c3f188f5',1,'tz::duration']]], + ['semaphore_12',['Semaphore',['../group__tz__gl__vk__sync.html#ga608fdecfedaf4d554e90101fff400d4a',1,'tz::gl::vk2']]], + ['set_13',['set',['../structtz_1_1gl_1_1vk2_1_1_descriptor_set_1_1_write.html#a5c2a25ebc211daec9185f1079cb3eeb1',1,'tz::gl::vk2::DescriptorSet::Write']]], + ['set_5fbuffer_14',['set_buffer',['../classtz_1_1gl_1_1vk2_1_1_descriptor_set_1_1_edit_request.html#af6639d543f2c4a73fca182ca2209c5c5',1,'tz::gl::vk2::DescriptorSet::EditRequest']]], + ['set_5fdata_15',['set_data',['../classtz_1_1gl_1_1ogl2_1_1image.html#a7244f6f3bbb421d3f3a7f770ab70c886',1,'tz::gl::ogl2::image']]], + ['set_5fdevice_16',['set_device',['../classtz_1_1gl_1_1vk2_1_1_descriptor_layout_builder.html#a8718cf9f569caf8dac4d4a08741925d0',1,'tz::gl::vk2::DescriptorLayoutBuilder::set_device()'],['../classtz_1_1gl_1_1vk2_1_1_render_pass_builder.html#ab5db592cbee7e8e81892b8c46eaa1909',1,'tz::gl::vk2::RenderPassBuilder::set_device()']]], + ['set_5fimage_17',['set_image',['../classtz_1_1gl_1_1vk2_1_1_descriptor_set_1_1_edit_request.html#a668978b923a9ae87def22035f27e86e8',1,'tz::gl::vk2::DescriptorSet::EditRequest']]], + ['set_5flayouts_18',['set_layouts',['../structtz_1_1gl_1_1vk2_1_1_descriptor_pool_1_1_allocation.html#adfe5a4a22dc012db515ff70ff5e39b7d',1,'tz::gl::vk2::DescriptorPool::Allocation']]], + ['set_5foptions_19',['set_options',['../classtz_1_1gl_1_1renderer__info.html#acd63326412fa7a90e2abe5021f5202fb',1,'tz::gl::renderer_info']]], + ['set_5foutput_20',['set_output',['../classtz_1_1gl_1_1renderer__info.html#abbd793271fd70297cf47034425c09cc6',1,'tz::gl::renderer_info']]], + ['set_5fpipeline_5fcontext_21',['set_pipeline_context',['../classtz_1_1gl_1_1vk2_1_1_subpass_builder.html#aea69c768e6d657c9e4e25102c0031dec',1,'tz::gl::vk2::SubpassBuilder']]], + ['set_5frender_5ftarget_22',['set_render_target',['../classtz_1_1gl_1_1_output_manager.html#aab56ee1c79ecceba987b04b8e28b873b',1,'tz::gl::OutputManager']]], + ['sets_23',['sets',['../group__tz__gl__vk__descriptors.html',1,'Descriptor Layouts and Sets'],['../structtz_1_1gl_1_1vk2_1_1_descriptor_pool_1_1_allocation_result.html#a6181eaf11bd25e3b3819e2ea5112f3ea',1,'tz::gl::vk2::DescriptorPool::AllocationResult::sets']]], + ['setscissordynamic_24',['SetScissorDynamic',['../structtz_1_1gl_1_1vk2_1_1_vulkan_command_1_1_set_scissor_dynamic.html',1,'tz::gl::vk2::VulkanCommand']]], + ['shader_25',['shader',['../classtz_1_1gl_1_1vk2_1_1_shader.html',1,'tz::gl::vk2::Shader'],['../classtz_1_1gl_1_1renderer__info.html#aeb3875b54266b94702791aa71c4a6d85',1,'tz::gl::renderer_info::shader()'],['../classtz_1_1gl_1_1renderer__info.html#a42cf8fe8b97e01596794242ce9ecdaba',1,'tz::gl::renderer_info::shader() const'],['../classtz_1_1gl_1_1ogl2_1_1shader.html#a3bfa7cd0552e027f9cde2e1aee0287d7',1,'tz::gl::ogl2::shader::shader()'],['../classtz_1_1gl_1_1ogl2_1_1shader.html',1,'tz::gl::ogl2::shader']]], + ['shader_20programs_20and_20modules_26',['Shader Programs and Modules',['../group__tz__gl__vk__graphics__pipeline__shader.html',1,'']]], + ['shader_5finfo_27',['shader_info',['../structtz_1_1gl_1_1ogl2_1_1shader__info.html',1,'tz::gl::ogl2::shader_info'],['../classtz_1_1gl_1_1shader__info.html',1,'tz::gl::shader_info']]], + ['shader_5flocation_28',['shader_location',['../structtz_1_1gl_1_1vk2_1_1_vertex_input_state_1_1_attribute.html#af12be1b1d13b0658380dd1860902480c',1,'tz::gl::vk2::VertexInputState::Attribute']]], + ['shader_5fmeta_29',['shader_meta',['../structtz_1_1gl_1_1shader__meta.html',1,'tz::gl']]], + ['shader_5fmodule_30',['shader_module',['../classtz_1_1gl_1_1ogl2_1_1shader__module.html',1,'tz::gl::ogl2::shader_module'],['../classtz_1_1gl_1_1ogl2_1_1shader__module.html#a65e736dec375d272b4887010998e0647',1,'tz::gl::ogl2::shader_module::shader_module()']]], + ['shader_5fmodule_5finfo_31',['shader_module_info',['../structtz_1_1gl_1_1ogl2_1_1shader__module__info.html',1,'tz::gl::ogl2']]], + ['shader_5fsampler_32',['shader_sampler',['../structtz_1_1gl_1_1ogl2_1_1image__info.html#ade70efe048f382bcea0469c6aa5b71e5',1,'tz::gl::ogl2::image_info']]], + ['shader_5fstorage_33',['shader_storage',['../group__tz__gl__ogl2__buffers.html#gga2d4cfcc22205d2276ef7347cf6e1c1edad76cc0c2dd3511b4bbdddd8f00dd1a0c',1,'tz::gl::ogl2']]], + ['shader_5ftype_34',['shader_type',['../group__tz__gl__ogl2__shader.html#ga6f74da2ab2ba8d9a9e73815fa16ac5f4',1,'tz::gl::ogl2']]], + ['shaderdrawparameters_35',['ShaderDrawParameters',['../group__tz__gl__vk__extension.html#gga6744c8f7d1276d6d9ae861b21c489505a209aad0772152a5828a2dbbf9d63cd10',1,'tz::gl::vk2']]], + ['shaderinfo_36',['ShaderInfo',['../structtz_1_1gl_1_1vk2_1_1_shader_info.html',1,'tz::gl::vk2']]], + ['shadermanager_37',['shadermanager',['../classtz_1_1gl_1_1_shader_manager.html',1,'tz::gl::ShaderManager'],['../classtz_1_1gl_1_1_shader_manager.html#ae2b9fa51036eab3ed06803a31cdd3278',1,'tz::gl::ShaderManager::ShaderManager()'],['../classtz_1_1gl_1_1_shader_manager.html#a02c2d7d722419d8f8de9d48bbab4ab6a',1,'tz::gl::ShaderManager::ShaderManager(const shader_info &sinfo)']]], + ['shadermodule_38',['shadermodule',['../classtz_1_1gl_1_1vk2_1_1_shader_module.html',1,'tz::gl::vk2::ShaderModule'],['../classtz_1_1gl_1_1vk2_1_1_shader_module.html#a28f43a6e19604fc3034d5a95d16f6f96',1,'tz::gl::vk2::ShaderModule::ShaderModule()']]], + ['shadermoduleinfo_39',['ShaderModuleInfo',['../structtz_1_1gl_1_1vk2_1_1_shader_module_info.html',1,'tz::gl::vk2']]], + ['shaderpipelinedata_40',['ShaderPipelineData',['../structtz_1_1gl_1_1vk2_1_1_shader_pipeline_data.html',1,'tz::gl::vk2']]], + ['shaderresource_41',['ShaderResource',['../group__tz__gl__vk__image.html#gga4ca55be3d1c101900d800a78deeb595fada4ef1bdf2d2fce1cfc6fd62870a44ef',1,'tz::gl::vk2']]], + ['shaderresourceread_42',['ShaderResourceRead',['../group__tz__gl__vk__graphics__pipeline__render__pass.html#ggaa5dd0142a36cd59d14dff54eed67c3dfa0f723650d92d002ccabaac11c5ffa52a',1,'tz::gl::vk2']]], + ['shaderresourcewrite_43',['ShaderResourceWrite',['../group__tz__gl__vk__graphics__pipeline__render__pass.html#ggaa5dd0142a36cd59d14dff54eed67c3dfaefa1ac5bfa2d8083d613414fe67a03e6',1,'tz::gl::vk2']]], + ['shaders_44',['Shaders',['../group__tz__gl__ogl2__shader.html',1,'']]], + ['shadertype_45',['ShaderType',['../group__tz__gl__vk__graphics__pipeline__shader.html#gaa9de8cdcc58245f0d43c98fef1a1ddcb',1,'tz::gl::vk2']]], + ['sign_46',['sign',['../group__tzsl__math.html#ga456f66d300ef1a241332db1b3a4adc3f',1,'tz::math']]], + ['signal_47',['signal',['../classtz_1_1gl_1_1vk2_1_1_timeline_semaphore.html#a07294686a9c9007d9eea477648ddb307',1,'tz::gl::vk2::TimelineSemaphore']]], + ['signal_5ffence_48',['signal_fence',['../structtz_1_1gl_1_1vk2_1_1_swapchain_1_1_image_acquisition.html#a647f591e840a676dbcb5755ec6c0f940',1,'tz::gl::vk2::Swapchain::ImageAcquisition']]], + ['signal_5fsemaphore_49',['signal_semaphore',['../structtz_1_1gl_1_1vk2_1_1_swapchain_1_1_image_acquisition.html#ae57cd3f44536e214c569b1dc0e12a672',1,'tz::gl::vk2::Swapchain::ImageAcquisition']]], + ['signalinfo_50',['SignalInfo',['../structtz_1_1gl_1_1vk2_1_1hardware_1_1_queue_1_1_submit_info_1_1_signal_info.html',1,'tz::gl::vk2::hardware::Queue::SubmitInfo']]], + ['signals_51',['signals',['../structtz_1_1gl_1_1vk2_1_1hardware_1_1_queue_1_1_submit_info.html#a80303c2b95a558471b0ca674ac3537ed',1,'tz::gl::vk2::hardware::Queue::SubmitInfo']]], + ['simplex_52',['simplex',['../group__tzsl__noise.html#ga3281f996870e4b9f9a9173cd645d5be5',1,'tz::noise']]], + ['sin_53',['sin',['../group__tzsl__math.html#ga8c0f033ba72fe4acebee70271cfb2449',1,'tz::math']]], + ['size_54',['size',['../classtz_1_1gl_1_1ogl2_1_1buffer.html#a0d4d708c2123da8a7fe330d9d71c958f',1,'tz::gl::ogl2::buffer::size()'],['../classtz_1_1gl_1_1vk2_1_1_buffer.html#a64c97088f04d5773f96498281c9332f9',1,'tz::gl::vk2::Buffer::size()'],['../classtz_1_1transform__hierarchy.html#ac5d183738e59474c75fb18cb1d254464',1,'tz::transform_hierarchy::size()'],['../classtz_1_1_polymorphic_list.html#a4ff3d2bc56929abcbea5811bff6bdbd7',1,'tz::PolymorphicList::size()'],['../structtz_1_1gl_1_1renderer__edit_1_1buffer__resize.html#a4a85274a895df6d6b082757bebf00610',1,'tz::gl::renderer_edit::buffer_resize::size'],['../structtz_1_1memblk.html#ad796040227144bf5f5db10715574cffd',1,'tz::memblk::size']]], + ['size_5fbytes_55',['size_bytes',['../structtz_1_1gl_1_1vk2_1_1buffer__info.html#a6d5e43d4fa4bde6c5bf0569eafdb21b3',1,'tz::gl::vk2::buffer_info::size_bytes'],['../structtz_1_1gl_1_1ogl2_1_1buffer__info.html#aefd5fac590369ead83ea3c1e79fb8445',1,'tz::gl::ogl2::buffer_info::size_bytes']]], + ['smooth_5fstep_56',['smooth_step',['../group__tzsl__math.html#gae657986f8605cc005b02cbfdf92cd39c',1,'tz::math']]], + ['source_5faccess_57',['source_access',['../structtz_1_1gl_1_1vk2_1_1_vulkan_command_1_1_transition_image_layout.html#a16a08625b895a4a444b66e53a5a23410',1,'tz::gl::vk2::VulkanCommand::TransitionImageLayout']]], + ['source_5floc_58',['source_loc',['../structtz_1_1detail_1_1source__loc.html',1,'tz::detail']]], + ['source_5fstage_59',['source_stage',['../structtz_1_1gl_1_1vk2_1_1_vulkan_command_1_1_transition_image_layout.html#a51d5bddfc6bee5894166f297d44def18',1,'tz::gl::vk2::VulkanCommand::TransitionImageLayout']]], + ['span_60',['span',['../classtz_1_1grid__view.html#a3100812fc7c72fa1adc98472dfc7cf1d',1,'tz::grid_view::span()'],['../classtz_1_1grid__view.html#aa3adae7901af54ce2b0e502fa5da8858',1,'tz::grid_view::span() const']]], + ['sqrt_61',['sqrt',['../group__tzsl__math.html#gaa2770f89b7066b4c45909e272d9e0b36',1,'tz::math']]], + ['src_62',['src',['../structtz_1_1gl_1_1vk2_1_1_vulkan_command_1_1_image_copy_image.html#a63e806b78fd1b7055dfec0ab254397ab',1,'tz::gl::vk2::VulkanCommand::ImageCopyImage::src'],['../structtz_1_1gl_1_1vk2_1_1_vulkan_command_1_1_buffer_copy_buffer.html#a8259921b2c071f7edf4d7e2c6e0999cb',1,'tz::gl::vk2::VulkanCommand::BufferCopyBuffer::src'],['../structtz_1_1gl_1_1vk2_1_1_vulkan_command_1_1_buffer_copy_image.html#adc3f50815eeb1485c20706f14b8db96d',1,'tz::gl::vk2::VulkanCommand::BufferCopyImage::src']]], + ['src_5foffset_63',['src_offset',['../structtz_1_1gl_1_1vk2_1_1_vulkan_command_1_1_buffer_copy_buffer.html#a58cd37059874f6d410e920857f29677d',1,'tz::gl::vk2::VulkanCommand::BufferCopyBuffer']]], + ['stack_5fallocator_64',['stack_allocator',['../classtz_1_1stack__allocator.html',1,'tz']]], + ['state_65',['state',['../classtz_1_1lua_1_1state.html',1,'tz::lua::state'],['../classtz_1_1gl_1_1renderer__info.html#ae1be194d9378f3f5d2076255533d4136',1,'tz::gl::renderer_info::state()'],['../classtz_1_1gl_1_1renderer__info.html#a9668d8e987599dab6ba1817a42b32f9f',1,'tz::gl::renderer_info::state() const']]], + ['state_20values_66',['Fixed Pipeline State Values',['../group__tz__gl__vk__graphics__pipeline__fixed.html',1,'']]], + ['static_5faccess_67',['static_access',['../group__tz__gl2__res.html#ggac9293366fa49e7f476827595ca80fbbba79479f45c4b1b3b8a03b386762040a4a',1,'tz::gl']]], + ['static_5ffind_68',['static_find',['../group__tz__core__algorithms.html#gac864efe5932f846519806594da168044',1,'tz']]], + ['static_5ffixed_69',['static_fixed',['../group__tz__gl__ogl2__buffers.html#ggae0f51febb963a7dc9fce3cc2208559a6acef5a454d703f41abcc7b138d3739664',1,'tz::gl::ogl2']]], + ['static_5ffor_5ft_70',['static_for_t',['../structtz_1_1static__for__t.html',1,'tz']]], + ['static_5ffor_5ft_3c_20n_2c_20n_20_3e_71',['static_for_t< N, N >',['../structtz_1_1static__for__t_3_01_n_00_01_n_01_4.html',1,'tz']]], + ['stencil_5fload_72',['stencil_load',['../structtz_1_1gl_1_1vk2_1_1_attachment.html#ab30984f9945e854206e4bf29e38af63a',1,'tz::gl::vk2::Attachment']]], + ['stencil_5fstore_73',['stencil_store',['../structtz_1_1gl_1_1vk2_1_1_attachment.html#a706230ac490e18b82c21130bc887de78',1,'tz::gl::vk2::Attachment']]], + ['stencil_5ftesting_74',['stencil_testing',['../structtz_1_1gl_1_1vk2_1_1_depth_stencil_state.html#aec62502ba4fdab19d6223e9e87eac2e5',1,'tz::gl::vk2::DepthStencilState']]], + ['step_75',['step',['../group__tzsl__math.html#ga2d878b167178a4a3a07fc30818195451',1,'tz::math']]], + ['storagebuffer_76',['StorageBuffer',['../group__tz__gl__vk__buffer.html#gga0c6ff78fc058c3e209ba59dc1b2c02a6a439f57c2c466c89db942b3de48298b2b',1,'tz::gl::vk2']]], + ['storageimage_77',['StorageImage',['../group__tz__gl__vk__image.html#gga6ecb2d248a682aac08d93f4a7078161eaa078fa7ad769f9e7b53b8c42e3b7bbab',1,'tz::gl::vk2']]], + ['store_78',['Store',['../group__tz__gl__vk__graphics__pipeline__render__pass.html#ggab92f36711ba7bb90caf0e4a39748ed7dafdb0c388de01d545017cdf9ccf00eb72',1,'tz::gl::vk2']]], + ['stored_5fassets_79',['stored_assets',['../structtz_1_1ren_1_1anim__renderer_1_1stored__assets.html',1,'tz::ren::anim_renderer']]], + ['storeop_80',['StoreOp',['../group__tz__gl__vk__graphics__pipeline__render__pass.html#gab92f36711ba7bb90caf0e4a39748ed7d',1,'tz::gl::vk2']]], + ['stride_81',['stride',['../structtz_1_1gl_1_1vk2_1_1_vertex_input_state_1_1_binding.html#a8e55514231fa7e83201c3c66d91e95ad',1,'tz::gl::vk2::VertexInputState::Binding']]], + ['submesh_82',['submesh',['../structtz_1_1io_1_1gltf__mesh_1_1submesh.html',1,'tz::io::gltf_mesh']]], + ['submit_83',['submit',['../classtz_1_1gl_1_1vk2_1_1hardware_1_1_queue.html#a8a26295a1157308783f3606ddd47922e',1,'tz::gl::vk2::hardware::Queue']]], + ['submitinfo_84',['SubmitInfo',['../structtz_1_1gl_1_1vk2_1_1hardware_1_1_queue_1_1_submit_info.html',1,'tz::gl::vk2::hardware::Queue']]], + ['subpass_85',['Subpass',['../structtz_1_1gl_1_1vk2_1_1_render_pass_info_1_1_subpass.html',1,'tz::gl::vk2::RenderPassInfo']]], + ['subpassbuilder_86',['SubpassBuilder',['../classtz_1_1gl_1_1vk2_1_1_subpass_builder.html',1,'tz::gl::vk2']]], + ['subpasses_87',['subpasses',['../structtz_1_1gl_1_1vk2_1_1_render_pass_info.html#a2846060954915fb968c33e096f599ed8',1,'tz::gl::vk2::RenderPassInfo']]], + ['success_88',['success',['../structtz_1_1gl_1_1ogl2_1_1shader__module_1_1compile__result.html#a3e535f459659f236fc6fb31e7e94fc66',1,'tz::gl::ogl2::shader_module::compile_result::success'],['../structtz_1_1gl_1_1ogl2_1_1shader_1_1link__result.html#adb1150f9cd51b32eb6cc1447bedc617d',1,'tz::gl::ogl2::shader::link_result::success'],['../structtz_1_1gl_1_1vk2_1_1_command_pool_1_1_allocation_result.html#acff115e3d6b614f7cd176afcf1f430a5',1,'tz::gl::vk2::CommandPool::AllocationResult::success()'],['../structtz_1_1gl_1_1vk2_1_1_descriptor_pool_1_1_allocation_result.html#a424868084bfa9a4cb8f3eb6e81bcb1cc',1,'tz::gl::vk2::DescriptorPool::AllocationResult::success()']]], + ['success_5fnoissue_89',['Success_NoIssue',['../classtz_1_1gl_1_1vk2_1_1hardware_1_1_queue.html#a85b458bfb664176d140abf3b6b627e67a87f6de9428b91fd7feaecc6df574ad08',1,'tz::gl::vk2::hardware::Queue']]], + ['success_5fsuboptimal_90',['Success_Suboptimal',['../classtz_1_1gl_1_1vk2_1_1hardware_1_1_queue.html#a85b458bfb664176d140abf3b6b627e67a2debf81c3d7e76f030f7d7577971f530',1,'tz::gl::vk2::hardware::Queue']]], + ['supported_91',['supported',['../classtz_1_1gl_1_1vk2_1_1_timeline_semaphore.html#af457dd163f8a75cf2f136cc49cf5d3bd',1,'tz::gl::vk2::TimelineSemaphore']]], + ['supports_5fimage_5fcolour_5fformat_92',['supports_image_colour_format',['../classtz_1_1gl_1_1vk2_1_1_physical_device.html#a988cc3ea73caa2a2e772db01d056afd0',1,'tz::gl::vk2::PhysicalDevice']]], + ['supports_5fimage_5fdepth_5fformat_93',['supports_image_depth_format',['../classtz_1_1gl_1_1vk2_1_1_physical_device.html#a768d8f636ffe994ccbe90dd05534d86c',1,'tz::gl::vk2::PhysicalDevice']]], + ['supports_5fimage_5fsampled_5fformat_94',['supports_image_sampled_format',['../classtz_1_1gl_1_1vk2_1_1_physical_device.html#a7ccfe2ddbd54d7fade6451e6bb037d4b',1,'tz::gl::vk2::PhysicalDevice']]], + ['supports_5fupdate_5fafter_5fbind_95',['supports_update_after_bind',['../structtz_1_1gl_1_1vk2_1_1_descriptor_pool_info_1_1_pool_limits.html#a8d9e0851e07c03c4cc7b5ec1d4a9d3f0',1,'tz::gl::vk2::DescriptorPoolInfo::PoolLimits']]], + ['surface_20interation_20wsi_96',['Presentation and Window Surface Interation (WSI)',['../group__tz__gl__vk__presentation.html',1,'']]], + ['surfacepresentmode_97',['SurfacePresentMode',['../group__tz__gl__vk__presentation.html#ga8e6e925d93013e81273325bc8764577a',1,'tz::gl::vk2']]], + ['swapchain_98',['swapchain',['../classtz_1_1gl_1_1vk2_1_1_swapchain.html',1,'tz::gl::vk2::Swapchain'],['../structtz_1_1gl_1_1vk2_1_1_swapchain_image_info.html#a52a6891ccfa077153ff0a0a2f1ec4de5',1,'tz::gl::vk2::SwapchainImageInfo::swapchain'],['../structtz_1_1gl_1_1vk2_1_1hardware_1_1_queue_1_1_present_info.html#a588d339e32335bc14df6785b5a53e285',1,'tz::gl::vk2::hardware::Queue::PresentInfo::swapchain'],['../classtz_1_1gl_1_1vk2_1_1_swapchain.html#a21e69ef871b919a44c4b7d998170c298',1,'tz::gl::vk2::Swapchain::Swapchain()']]], + ['swapchain_5fimage_5fcount_5fminimum_99',['swapchain_image_count_minimum',['../structtz_1_1gl_1_1vk2_1_1_swapchain_info.html#a9526addcd9a0a9a5b1d54ef5905ad91c',1,'tz::gl::vk2::SwapchainInfo']]], + ['swapchain_5fimage_5findex_100',['swapchain_image_index',['../structtz_1_1gl_1_1vk2_1_1hardware_1_1_queue_1_1_present_info.html#a6aedbfffad39d0b167d57187a5637c10',1,'tz::gl::vk2::hardware::Queue::PresentInfo']]], + ['swapchainextent_101',['SwapchainExtent',['../structtz_1_1gl_1_1vk2_1_1_physical_device_surface_capability_info_1_1_swapchain_extent.html',1,'tz::gl::vk2::PhysicalDeviceSurfaceCapabilityInfo']]], + ['swapchainimageinfo_102',['SwapchainImageInfo',['../structtz_1_1gl_1_1vk2_1_1_swapchain_image_info.html',1,'tz::gl::vk2']]], + ['swapchaininfo_103',['SwapchainInfo',['../structtz_1_1gl_1_1vk2_1_1_swapchain_info.html',1,'tz::gl::vk2']]], + ['swizzle_104',['swizzle',['../classtz_1_1vector.html#a8eb40003afd7a439c49c08810da3d119',1,'tz::vector']]], + ['synchronisation_20primitives_105',['Synchronisation Primitives',['../group__tz__gl__vk__sync.html',1,'']]], + ['system_106',['Job System',['../group__tz__core__job.html',1,'']]], + ['system_20integration_107',['Window System Integration',['../group__tz__wsi.html',1,'']]], + ['system_5ftime_108',['system_time',['../group__tz__core.html#ga57c5c4c9d059495d76bb70ac7632755e',1,'tz']]] +]; diff --git a/search/all_13.js b/search/all_13.js new file mode 100644 index 0000000000..3bc1db44bd --- /dev/null +++ b/search/all_13.js @@ -0,0 +1,70 @@ +var searchData= +[ + ['tan_0',['tan',['../group__tzsl__math.html#ga58a5baa37cf0de905b3317b5db676f41',1,'tz::math']]], + ['target_1',['target',['../structtz_1_1gl_1_1ogl2_1_1buffer__info.html#aa5c1b17213c136ff8878733aa22e7fa2',1,'tz::gl::ogl2::buffer_info']]], + ['target_5flayout_2',['target_layout',['../structtz_1_1gl_1_1vk2_1_1_vulkan_command_1_1_transition_image_layout.html#a8094be6bc811b9a3b58e1277bc2cd303',1,'tz::gl::vk2::VulkanCommand::TransitionImageLayout']]], + ['terminate_3',['terminate',['../group__tz__gl__ogl2.html#ga3bfa0731aaf82a7e55316d369e9a33bd',1,'tz::gl::ogl2::terminate()'],['../group__tz__gl__vk.html#gaafdb9b852a823c44fc8cb962b494040f',1,'tz::gl::vk2::terminate()'],['../group__tz__core.html#ga0a5d1e375e7e82fcd12a8b74b8012bae',1,'tz::terminate()']]], + ['tessellation_5fcontrol_4',['tessellation_control',['../group__tz__gl__ogl2__shader.html#gga6f74da2ab2ba8d9a9e73815fa16ac5f4a020b3c0169faf87abaa8931b92883373',1,'tz::gl::ogl2']]], + ['tessellation_5fevaluation_5',['tessellation_evaluation',['../group__tz__gl__ogl2__shader.html#gga6f74da2ab2ba8d9a9e73815fa16ac5f4a2859aa43f543537a942fcca51e45b974',1,'tz::gl::ogl2']]], + ['tessellationcontrolshader_6',['TessellationControlShader',['../group__tz__gl__vk__graphics__pipeline.html#ggaa581c5a329a76e48f41ca02bd263251aae1bc6b887951aa3ad70f1cdebd02aa7c',1,'tz::gl::vk2']]], + ['tessellationevaluationshader_7',['TessellationEvaluationShader',['../group__tz__gl__vk__graphics__pipeline.html#ggaa581c5a329a76e48f41ca02bd263251aa8dbef1b4099311308f1297f6fb54c1b8',1,'tz::gl::vk2']]], + ['tessellationshaders_8',['TessellationShaders',['../group__tz__gl__vk__extension.html#gga6744c8f7d1276d6d9ae861b21c489505a0fc969c0579e0ecc3324615f8eff626d',1,'tz::gl::vk2']]], + ['texture_5flocator_9',['texture_locator',['../structtexture__locator.html',1,'texture_locator'],['../structtz_1_1ren_1_1texture__locator.html',1,'tz::ren::texture_locator']]], + ['texture_5ftag_5ft_10',['texture_tag_t',['../structtz_1_1ren_1_1detail_1_1texture__tag__t.html',1,'tz::ren::detail']]], + ['timeline_5ft_11',['timeline_t',['../structtz_1_1gl_1_1timeline__t.html',1,'tz::gl']]], + ['timelinesemaphore_12',['timelinesemaphore',['../classtz_1_1gl_1_1vk2_1_1_timeline_semaphore.html',1,'tz::gl::vk2::TimelineSemaphore'],['../classtz_1_1gl_1_1vk2_1_1_timeline_semaphore.html#ae4480f9d0ce9716aadc581aa0769c2ea',1,'tz::gl::vk2::TimelineSemaphore::TimelineSemaphore()']]], + ['timelinesemaphores_13',['TimelineSemaphores',['../group__tz__gl__vk__extension.html#gga6744c8f7d1276d6d9ae861b21c489505a2ba71b83fa5ce2f8870a1259a92cd76b',1,'tz::gl::vk2']]], + ['timeout_14',['timeout',['../structtz_1_1gl_1_1vk2_1_1_swapchain_1_1_image_acquisition.html#a61c55696db6f8a36d378df188bada03a',1,'tz::gl::vk2::Swapchain::ImageAcquisition']]], + ['title_15',['title',['../structtz_1_1wsi_1_1window__info.html#a0395b7dd58ed3b717fb8be002439c637',1,'tz::wsi::window_info']]], + ['to_5ffit_5flayout_16',['to_fit_layout',['../structtz_1_1gl_1_1vk2_1_1_descriptor_pool_info.html#ac78c3e3e5641dd67c83df522f8b2ed36',1,'tz::gl::vk2::DescriptorPoolInfo']]], + ['to_5fstring_17',['to_string',['../structtz_1_1version.html#acf190799527d83a0aa13f31533b9a61e',1,'tz::version::to_string()'],['../structtz_1_1engine__info.html#ae525f220090f75d39410072151bbb47f',1,'tz::engine_info::to_string()'],['../structtz_1_1game__info.html#a2f9afa9909fef88c043bd648c26b8cb5',1,'tz::game_info::to_string()']]], + ['to_5fwrite_5flist_18',['to_write_list',['../classtz_1_1gl_1_1vk2_1_1_descriptor_set_1_1_edit_request.html#a9c1d0d78df69b3ea2317e07bddb925b9',1,'tz::gl::vk2::DescriptorSet::EditRequest']]], + ['top_19',['Top',['../group__tz__gl__vk__graphics__pipeline.html#ggaa581c5a329a76e48f41ca02bd263251aaa4ffdcf0dc1f31b9acaf295d75b51d00',1,'tz::gl::vk2']]], + ['topazplatformdata_20',['TopazPlatformData',['../structtz_1_1dbgui_1_1_topaz_platform_data.html',1,'tz::dbgui']]], + ['topazrenderdata_21',['TopazRenderData',['../structtz_1_1dbgui_1_1_topaz_render_data.html',1,'tz::dbgui']]], + ['topazshaderrenderdata_22',['TopazShaderRenderData',['../structtz_1_1dbgui_1_1_topaz_shader_render_data.html',1,'tz::dbgui']]], + ['total_5fcolour_5fattachment_5fcount_23',['total_colour_attachment_count',['../structtz_1_1gl_1_1vk2_1_1_render_pass_info.html#a6b297fd26ffa2f186988fc661cdc40e4',1,'tz::gl::vk2::RenderPassInfo']]], + ['total_5finput_5fattachment_5fcount_24',['total_input_attachment_count',['../structtz_1_1gl_1_1vk2_1_1_render_pass_info.html#a05532d112562a54c89eb7ad4ce722b01',1,'tz::gl::vk2::RenderPassInfo']]], + ['transfercommands_25',['TransferCommands',['../group__tz__gl__vk__graphics__pipeline.html#ggaa581c5a329a76e48f41ca02bd263251aa6ceeb738294823c48050af12328d0606',1,'tz::gl::vk2']]], + ['transferdestination_26',['transferdestination',['../group__tz__gl__vk__buffer.html#gga0c6ff78fc058c3e209ba59dc1b2c02a6a9cecc9065ff3b79e09391fcbfb7b9ce9',1,'TransferDestinationtz::gl::vk2'],['../group__tz__gl__vk__image.html#gga4ca55be3d1c101900d800a78deeb595fa9cecc9065ff3b79e09391fcbfb7b9ce9',1,'TransferDestinationtz::gl::vk2'],['../group__tz__gl__vk__image.html#gga6ecb2d248a682aac08d93f4a7078161ea9cecc9065ff3b79e09391fcbfb7b9ce9',1,'TransferDestinationtz::gl::vk2']]], + ['transferoperationread_27',['TransferOperationRead',['../group__tz__gl__vk__graphics__pipeline__render__pass.html#ggaa5dd0142a36cd59d14dff54eed67c3dfa9e73033c1e7e3a919d6bc35d007c5fdd',1,'tz::gl::vk2']]], + ['transferoperationwrite_28',['TransferOperationWrite',['../group__tz__gl__vk__graphics__pipeline__render__pass.html#ggaa5dd0142a36cd59d14dff54eed67c3dfac3de85a886292aa73480d52a5cfeb2df',1,'tz::gl::vk2']]], + ['transfersource_29',['transfersource',['../group__tz__gl__vk__buffer.html#gga0c6ff78fc058c3e209ba59dc1b2c02a6a8c4df84c9e73cf86122034f85efac361',1,'TransferSourcetz::gl::vk2'],['../group__tz__gl__vk__image.html#gga4ca55be3d1c101900d800a78deeb595fa8c4df84c9e73cf86122034f85efac361',1,'TransferSourcetz::gl::vk2'],['../group__tz__gl__vk__image.html#gga6ecb2d248a682aac08d93f4a7078161ea8c4df84c9e73cf86122034f85efac361',1,'TransferSourcetz::gl::vk2']]], + ['transform_5fhierarchy_30',['transform_hierarchy',['../classtz_1_1transform__hierarchy.html',1,'tz::transform_hierarchy< T >'],['../classtz_1_1transform__hierarchy.html#a5b8574b1ca6fc383eee2129b6b929f96',1,'tz::transform_hierarchy::transform_hierarchy()']]], + ['transform_5fhierarchy_3c_20std_3a_3auint32_5ft_20_3e_31',['transform_hierarchy< std::uint32_t >',['../classtz_1_1transform__hierarchy.html',1,'tz']]], + ['transform_5fnode_32',['transform_node',['../structtz_1_1transform__node.html',1,'tz']]], + ['transitionimagelayout_33',['TransitionImageLayout',['../structtz_1_1gl_1_1vk2_1_1_vulkan_command_1_1_transition_image_layout.html',1,'tz::gl::vk2::VulkanCommand']]], + ['translate_34',['translate',['../group__tz__core.html#gacea5d629885bd9192ee6e9325a236707',1,'tz']]], + ['transpose_35',['transpose',['../group__tzsl__matrix.html#ga96a675595f89d8f83464db22e7d54b4d',1,'tz::matrix::transpose()'],['../classtz_1_1matrix.html#a438a39d4cab41797bcab3df105e66d3a',1,'tz::matrix::transpose()']]], + ['tri_5fcount_36',['tri_count',['../structtz_1_1gl_1_1render__state_1_1_graphics.html#a0e082f315122781cecfbc7063397c063',1,'tz::gl::render_state::Graphics']]], + ['trs_37',['trs',['../structtz_1_1trs.html',1,'tz']]], + ['trunc_38',['trunc',['../group__tzsl__math.html#ga2bff4ac0c236ad62c302464b9eb35c74',1,'tz::math']]], + ['type_39',['type',['../structtz_1_1gl_1_1vk2_1_1_descriptor_pool_1_1_allocation_result.html#afa1e03133a62e1d9bd2ecc66cd349230',1,'tz::gl::vk2::DescriptorPool::AllocationResult::type'],['../structtz_1_1gl_1_1vk2_1_1_shader_module_info.html#abeabe0b864600f592c31a022538d898e',1,'tz::gl::vk2::ShaderModuleInfo::type'],['../structtz_1_1gl_1_1vk2_1_1_command_pool_1_1_allocation_result.html#a1faad41ec78d1f46edab28ffa5111be2',1,'tz::gl::vk2::CommandPool::AllocationResult::type'],['../structtz_1_1gl_1_1vk2_1_1_descriptor_layout_info_1_1_binding_info.html#a29e3f9c37d34a7b8b0ed73dc98ea2314',1,'tz::gl::vk2::DescriptorLayoutInfo::BindingInfo::type'],['../structtz_1_1version.html#acde759e7b128ad3328a28d76a0e8f3de',1,'tz::version::type'],['../structtz_1_1gl_1_1ogl2_1_1shader__module__info.html#a10c80d992130144523e94c91856ece1d',1,'tz::gl::ogl2::shader_module_info::type']]], + ['tz_3a_3aaction_40',['action',['../concepttz_1_1action.html',1,'tz']]], + ['tz_3a_3aallocator_41',['allocator',['../concepttz_1_1allocator.html',1,'tz']]], + ['tz_3a_3aarithmetic_42',['arithmetic',['../concepttz_1_1arithmetic.html',1,'tz']]], + ['tz_3a_3aatomic_43',['atomic',['../namespacetz_1_1atomic.html',1,'tz']]], + ['tz_3a_3aconst_5ftype_44',['const_type',['../concepttz_1_1const__type.html',1,'tz']]], + ['tz_3a_3adebug_45',['debug',['../namespacetz_1_1debug.html',1,'tz']]], + ['tz_3a_3aenum_5fclass_46',['enum_class',['../concepttz_1_1enum__class.html',1,'tz']]], + ['tz_3a_3afunction_47',['function',['../concepttz_1_1function.html',1,'tz']]], + ['tz_3a_3agl_3a_3abuffer_5fcomponent_5ftype_48',['buffer_component_type',['../concepttz_1_1gl_1_1buffer__component__type.html',1,'tz::gl']]], + ['tz_3a_3agl_3a_3adevice_5ftype_49',['device_type',['../concepttz_1_1gl_1_1device__type.html',1,'tz::gl']]], + ['tz_3a_3agl_3a_3aimage_5fcomponent_5ftype_50',['image_component_type',['../concepttz_1_1gl_1_1image__component__type.html',1,'tz::gl']]], + ['tz_3a_3agl_3a_3arenderer_5ftype_51',['renderer_type',['../concepttz_1_1gl_1_1renderer__type.html',1,'tz::gl']]], + ['tz_3a_3agl_3a_3avk2_3a_3aformat_5ftraits_52',['format_traits',['../namespacetz_1_1gl_1_1vk2_1_1format__traits.html',1,'tz::gl::vk2']]], + ['tz_3a_3agl_3a_3avk2_3a_3apresent_5ftraits_53',['present_traits',['../namespacetz_1_1gl_1_1vk2_1_1present__traits.html',1,'tz::gl::vk2']]], + ['tz_3a_3ahas_5fdbgui_5fmethod_54',['has_dbgui_method',['../concepttz_1_1has__dbgui__method.html',1,'tz']]], + ['tz_3a_3ais_5fprintable_55',['is_printable',['../concepttz_1_1is__printable.html',1,'tz']]], + ['tz_3a_3amath_56',['math',['../namespacetz_1_1math.html',1,'tz']]], + ['tz_3a_3amatrix_57',['matrix',['../namespacetz_1_1matrix.html',1,'tz']]], + ['tz_3a_3amesh_58',['mesh',['../namespacetz_1_1mesh.html',1,'tz']]], + ['tz_3a_3anative_5favailable_59',['native_available',['../concepttz_1_1native__available.html',1,'tz']]], + ['tz_3a_3anoise_60',['noise',['../namespacetz_1_1noise.html',1,'tz']]], + ['tz_3a_3anullable_61',['nullable',['../concepttz_1_1nullable.html',1,'tz']]], + ['tz_3a_3anumber_62',['number',['../concepttz_1_1number.html',1,'tz']]], + ['tz_3a_3atrivially_5fcopyable_63',['trivially_copyable',['../concepttz_1_1trivially__copyable.html',1,'tz']]], + ['tz_3a_3awsi_3a_3awindow_5fapi_64',['window_api',['../concepttz_1_1wsi_1_1window__api.html',1,'tz::wsi']]], + ['tz_3a_3awsi_3a_3awindow_5fflag_65',['window_flag',['../namespacetz_1_1wsi_1_1window__flag.html',1,'tz::wsi']]], + ['tzsl_20api_20reference_66',['TZSL API Reference',['../group__tzsl.html',1,'']]] +]; diff --git a/search/all_14.js b/search/all_14.js new file mode 100644 index 0000000000..99a3a54913 --- /dev/null +++ b/search/all_14.js @@ -0,0 +1,20 @@ +var searchData= +[ + ['ui_0',['Debug UI',['../group__tz__dbgui.html',1,'']]], + ['undefined_1',['undefined',['../group__tz__gl__vk__image.html#gga4ca55be3d1c101900d800a78deeb595faec0fc0100c4fc1ce4eea230c3dc10360',1,'Undefinedtz::gl::vk2'],['../group__tz__gl__vk__image.html#ggaf7d399489dcebca1c95d5852c8d7ec6ea5e543256c480ac577d30f76f9120eb74',1,'undefinedtz::gl::vk2'],['../group__tz__gl2.html#gga79b99b79311ee4f6dd10a6dfada3a235a5e543256c480ac577d30f76f9120eb74',1,'undefinedtz::gl']]], + ['uniform_2',['uniform',['../group__tz__gl__ogl2__buffers.html#gga2d4cfcc22205d2276ef7347cf6e1c1edaa489ffed938ef1b9e86889bc413501ee',1,'tz::gl::ogl2']]], + ['uniformbuffer_3',['UniformBuffer',['../group__tz__gl__vk__buffer.html#gga0c6ff78fc058c3e209ba59dc1b2c02a6a88f133adfed6c854e5731cdffbf208cf',1,'tz::gl::vk2']]], + ['uniformbufferread_4',['UniformBufferRead',['../group__tz__gl__vk__graphics__pipeline__render__pass.html#ggaa5dd0142a36cd59d14dff54eed67c3dfa1f13b30fd405557096bb743af090f50d',1,'tz::gl::vk2']]], + ['unique_5fcloneable_5',['unique_cloneable',['../classtz_1_1unique__cloneable.html',1,'tz']]], + ['unique_5fcloneable_3c_20ioutput_20_3e_6',['unique_cloneable< ioutput >',['../classtz_1_1unique__cloneable.html',1,'tz']]], + ['unique_5fcloneable_3c_20iresource_20_3e_7',['unique_cloneable< iresource >',['../classtz_1_1unique__cloneable.html',1,'tz']]], + ['unmap_8',['unmap',['../classtz_1_1gl_1_1vk2_1_1_buffer.html#aaa1d3c3487d41c2ee041f6f2d054edf2',1,'tz::gl::vk2::Buffer::unmap()'],['../classtz_1_1gl_1_1ogl2_1_1buffer.html#a481748197cd593bb075e007b84bfba79',1,'tz::gl::ogl2::buffer::unmap()']]], + ['unsignal_9',['unsignal',['../classtz_1_1gl_1_1vk2_1_1_fence.html#a080cf8b09fac04e088098854772d9951',1,'tz::gl::vk2::Fence']]], + ['update_5fsets_10',['update_sets',['../classtz_1_1gl_1_1vk2_1_1_descriptor_pool.html#ab99505bc197bd835c0a7026f5591138a',1,'tz::gl::vk2::DescriptorPool::update_sets(const DescriptorSet::WriteList &writes)'],['../classtz_1_1gl_1_1vk2_1_1_descriptor_pool.html#a4b369fb5533bf5c1faccde6b2e4065fb',1,'tz::gl::vk2::DescriptorPool::update_sets(UpdateRequest update_request)']]], + ['updateafterbind_11',['UpdateAfterBind',['../group__tz__gl__vk__descriptors.html#ggaf15b5e240b6c64c9dad040171f553123a4b8308424b6fb4b70803778cfc461015',1,'tz::gl::vk2']]], + ['updaterequest_12',['UpdateRequest',['../classtz_1_1gl_1_1vk2_1_1_descriptor_pool_1_1_update_request.html',1,'tz::gl::vk2::DescriptorPool']]], + ['updateunusedwhilepending_13',['UpdateUnusedWhilePending',['../group__tz__gl__vk__descriptors.html#ggaf15b5e240b6c64c9dad040171f553123a74985606c2a8d95e3aa784b1f882ba44',1,'tz::gl::vk2']]], + ['usage_14',['usage',['../structtz_1_1gl_1_1vk2_1_1image__info.html#a3af56255762adba4570abd348f3eca62',1,'tz::gl::vk2::image_info::usage'],['../structtz_1_1gl_1_1vk2_1_1buffer__info.html#ace18d8d8f8032d2ed6e5b5fc0edf4bcb',1,'tz::gl::vk2::buffer_info::usage']]], + ['use_15',['use',['../classtz_1_1gl_1_1ogl2_1_1shader.html#aa2fe4a134158ffbd322f513cf3ad5521',1,'tz::gl::ogl2::shader::use()'],['../classtz_1_1gl_1_1_shader_manager.html#a5e03637f5d12b0734ec1688442e757a0',1,'tz::gl::ShaderManager::use()']]], + ['utility_16',['Memory Utility',['../group__tz__core__memory.html',1,'']]] +]; diff --git a/search/all_15.js b/search/all_15.js new file mode 100644 index 0000000000..f08c09d0c0 --- /dev/null +++ b/search/all_15.js @@ -0,0 +1,67 @@ +var searchData= +[ + ['valid_0',['valid',['../structtz_1_1gl_1_1vk2_1_1_framebuffer_info.html#a13d747ebb95030a11b81a5b8ada449a0',1,'tz::gl::vk2::FramebufferInfo::valid()'],['../structtz_1_1gl_1_1vk2_1_1_graphics_pipeline_info.html#ac8f560b25cb670c3cb4a41121c542d5c',1,'tz::gl::vk2::GraphicsPipelineInfo::valid()'],['../classtz_1_1lua_1_1state.html#afbfa250b94bfd4abfd9bc9e14dbaa4d0',1,'tz::lua::state::valid()']]], + ['valid_5fdevice_1',['valid_device',['../structtz_1_1gl_1_1vk2_1_1_graphics_pipeline_info.html#a8537647952eb07d190af2c496290435c',1,'tz::gl::vk2::GraphicsPipelineInfo']]], + ['values_2',['Fixed Pipeline State Values',['../group__tz__gl__vk__graphics__pipeline__fixed.html',1,'']]], + ['values_5fmake_5fsense_3',['values_make_sense',['../structtz_1_1gl_1_1vk2_1_1_render_pass_info.html#a6e0f6d3e4801750361964ec51d5f3072',1,'tz::gl::vk2::RenderPassInfo']]], + ['variablecount_4',['VariableCount',['../group__tz__gl__vk__descriptors.html#ggaf15b5e240b6c64c9dad040171f553123a0a4625b183e121c4198d645f0a9bf07e',1,'tz::gl::vk2']]], + ['variant_5',['variant',['../structtz_1_1gl_1_1vk2_1_1_vulkan_command.html#a41188385317ac161eb0b239259bdb8b0',1,'tz::gl::vk2::VulkanCommand']]], + ['vec1float16_6',['Vec1Float16',['../group__tz__gl__vk__graphics__pipeline__fixed.html#gga486655233c597343f461a27c5316d087a42e64b5b4480aa1d3d11cb1bfd2ee012',1,'tz::gl::vk2']]], + ['vec1float32_7',['Vec1Float32',['../group__tz__gl__vk__graphics__pipeline__fixed.html#gga486655233c597343f461a27c5316d087a619665b33f0fe33e3c277f0191a3f7d6',1,'tz::gl::vk2']]], + ['vec2_8',['vec2',['../group__tz__core.html#ga4b500b8666e760063edc172cb280f4f2',1,'tz']]], + ['vec2float32_9',['Vec2Float32',['../group__tz__gl__vk__graphics__pipeline__fixed.html#gga486655233c597343f461a27c5316d087a63264646c58c78cb27b293519e3d0dbb',1,'tz::gl::vk2']]], + ['vec2float64_10',['Vec2Float64',['../group__tz__gl__vk__graphics__pipeline__fixed.html#gga486655233c597343f461a27c5316d087ad173987eb549e79990c7a167421f6db7',1,'tz::gl::vk2']]], + ['vec2i_11',['vec2i',['../group__tz__core.html#gaeb673c77ceb1e2d5289ac7bc977e66d7',1,'tz']]], + ['vec2i32_12',['vec2i32',['../group__tz__core.html#ga1c967bba7c2027b7738b6a0798c18c15',1,'tz']]], + ['vec2s_13',['vec2s',['../group__tz__core.html#ga1c0a5988696c6d117bb86b1330c9a302',1,'tz']]], + ['vec2ui_14',['vec2ui',['../group__tz__core.html#gabce09c8b4e26d90dc635bac270409446',1,'tz']]], + ['vec2ui32_15',['vec2ui32',['../group__tz__core.html#ga1763b2b7362903f95550f53ff600ad41',1,'tz']]], + ['vec2us_16',['vec2us',['../group__tz__core.html#gac39a2678966888ab4d46dcfd1322c42a',1,'tz']]], + ['vec3_17',['vec3',['../group__tz__core.html#gac1b06779454378269e26ff4ed1c7dae1',1,'tz']]], + ['vec3float48_18',['Vec3Float48',['../group__tz__gl__vk__graphics__pipeline__fixed.html#gga486655233c597343f461a27c5316d087a0ac49216ffcaddb289c055a77cda7470',1,'tz::gl::vk2']]], + ['vec3float96_19',['Vec3Float96',['../group__tz__gl__vk__graphics__pipeline__fixed.html#gga486655233c597343f461a27c5316d087aa83f4627a492b41eb080400fd6af72fa',1,'tz::gl::vk2']]], + ['vec3i_20',['vec3i',['../group__tz__core.html#gaf7a85653724742ec760ce7b235da6129',1,'tz']]], + ['vec3i32_21',['vec3i32',['../group__tz__core.html#gaa2f4237a48572fed764fab053fc886c9',1,'tz']]], + ['vec3s_22',['vec3s',['../group__tz__core.html#ga02bad2bd197eb39e726af5d0b81619b2',1,'tz']]], + ['vec3ui_23',['vec3ui',['../group__tz__core.html#ga19dd8bf4ec1e7bc5fdebd46be0a05a24',1,'tz']]], + ['vec3ui32_24',['vec3ui32',['../group__tz__core.html#ga1c71a24411b5ee614390bceb07fbaf15',1,'tz']]], + ['vec3us_25',['vec3us',['../group__tz__core.html#ga58be45354b2199340729c07b1b7a1824',1,'tz']]], + ['vec4_26',['vec4',['../group__tz__core.html#gaae09d3e76514192ebe00d5a551a61326',1,'tz']]], + ['vec4float128_27',['Vec4Float128',['../group__tz__gl__vk__graphics__pipeline__fixed.html#gga486655233c597343f461a27c5316d087aeb8909da84a3e8acc08c00ad1c61f9b7',1,'tz::gl::vk2']]], + ['vec4float64_28',['Vec4Float64',['../group__tz__gl__vk__graphics__pipeline__fixed.html#gga486655233c597343f461a27c5316d087a39af6f9354b09edb13fbd0c1c77130f9',1,'tz::gl::vk2']]], + ['vec4i_29',['vec4i',['../group__tz__core.html#ga7752a7bdae2b4e236f3137656785b211',1,'tz']]], + ['vec4i32_30',['vec4i32',['../group__tz__core.html#gab092759570d8b1513cc23e0c216042f7',1,'tz']]], + ['vec4s_31',['vec4s',['../group__tz__core.html#ga05bb140a53c038dc9ce7473b972ec9df',1,'tz']]], + ['vec4ui_32',['vec4ui',['../group__tz__core.html#gab8a3005166aaed11a1867c89f69026a0',1,'tz']]], + ['vec4ui32_33',['vec4ui32',['../group__tz__core.html#ga41b71720e61b245bed6d6aaddb17a906',1,'tz']]], + ['vec4us_34',['vec4us',['../group__tz__core.html#ga21e3088d55b87a92d4a91c04241b3462',1,'tz']]], + ['vector_35',['vector',['../classtz_1_1vector.html#a1da36184e32badfd9843e01def06bb36',1,'tz::vector::vector()=default'],['../classtz_1_1vector.html#a49c817041f4f5dcd9fc1d91d20e2f3e9',1,'tz::vector::vector(std::array< T, S > data)'],['../classtz_1_1vector.html#a5efa543162acadcb85301793704f8906',1,'tz::vector::vector(Ts &&... ts)'],['../classtz_1_1vector.html',1,'tz::vector< T, S >']]], + ['vector_3c_20float_2c_203_20_3e_36',['vector< float, 3 >',['../classtz_1_1vector.html',1,'tz']]], + ['vector_3c_20float_2c_204_20_3e_37',['vector< float, 4 >',['../classtz_1_1vector.html',1,'tz']]], + ['vector_3c_20std_3a_3auint32_5ft_2c_202_20_3e_38',['vector< std::uint32_t, 2 >',['../classtz_1_1vector.html',1,'tz']]], + ['vector_3c_20std_3a_3auint32_5ft_2c_204_20_3e_39',['vector< std::uint32_t, 4 >',['../classtz_1_1vector.html',1,'tz']]], + ['vector_3c_20unsigned_20int_2c_202_20_3e_40',['vector< unsigned int, 2 >',['../classtz_1_1vector.html',1,'tz']]], + ['vector_3c_20unsigned_20int_2c_203_20_3e_41',['vector< unsigned int, 3 >',['../classtz_1_1vector.html',1,'tz']]], + ['version_42',['version',['../structtz_1_1initialise__info.html#ad869820ee345fd5b23e8afe5ef4bf40d',1,'tz::initialise_info::version'],['../structtz_1_1version.html',1,'tz::version']]], + ['vertex_43',['vertex',['../group__tz__gl__ogl2__shader.html#gga6f74da2ab2ba8d9a9e73815fa16ac5f4a2b5bc093b09bd81f51de433bde9d202a',1,'vertextz::gl::ogl2'],['../structtz_1_1ren_1_1vertex.html',1,'tz::ren::vertex< max_tex_count, max_joint4_count >']]], + ['vertex_5farray_44',['vertex_array',['../classtz_1_1gl_1_1ogl2_1_1vertex__array.html#a5f965b5a60d0a2cc1c0623d63a81fd26',1,'tz::gl::ogl2::vertex_array::vertex_array()'],['../classtz_1_1gl_1_1ogl2_1_1vertex__array.html',1,'tz::gl::ogl2::vertex_array']]], + ['vertex_5fcount_45',['vertex_count',['../structtz_1_1gl_1_1vk2_1_1_vulkan_command_1_1_draw.html#aa20ea4668944d738431db311f2a67ea5',1,'tz::gl::vk2::VulkanCommand::Draw']]], + ['vertex_5ft_46',['vertex_t',['../structvertex__t.html',1,'']]], + ['vertexbuffer_47',['VertexBuffer',['../group__tz__gl__vk__buffer.html#gga0c6ff78fc058c3e209ba59dc1b2c02a6a10461f19cdb5aadba2fc9986be6400bd',1,'tz::gl::vk2']]], + ['vertexbufferread_48',['VertexBufferRead',['../group__tz__gl__vk__graphics__pipeline__render__pass.html#ggaa5dd0142a36cd59d14dff54eed67c3dfaec21703627e9de694102e22b1f2542c0',1,'tz::gl::vk2']]], + ['vertexindexinput_49',['VertexIndexInput',['../group__tz__gl__vk__graphics__pipeline.html#ggaa581c5a329a76e48f41ca02bd263251aa1311d08fb1f8b78c1be3ebb4c53c0e80',1,'tz::gl::vk2']]], + ['vertexinputformat_50',['VertexInputFormat',['../group__tz__gl__vk__graphics__pipeline__fixed.html#ga486655233c597343f461a27c5316d087',1,'tz::gl::vk2']]], + ['vertexinputstate_51',['VertexInputState',['../structtz_1_1gl_1_1vk2_1_1_vertex_input_state.html',1,'tz::gl::vk2']]], + ['vertexpipelineresourcewrite_52',['VertexPipelineResourceWrite',['../group__tz__gl__vk__extension.html#gga6744c8f7d1276d6d9ae861b21c489505ab77badc545def5f132a116dcfab8e272',1,'tz::gl::vk2']]], + ['vertexshader_53',['VertexShader',['../group__tz__gl__vk__graphics__pipeline.html#ggaa581c5a329a76e48f41ca02bd263251aaeb3ca4dac3e206977e0b7d998eefcc33',1,'tz::gl::vk2']]], + ['view_54',['view',['../group__tz__core.html#ga26c5e69afcfbedae7d168b332682483f',1,'tz']]], + ['viewport_5fregion_55',['viewport_region',['../structtz_1_1gl_1_1viewport__region.html',1,'tz::gl']]], + ['viewportstate_56',['ViewportState',['../structtz_1_1gl_1_1vk2_1_1_viewport_state.html',1,'tz::gl::vk2']]], + ['vulkan_57',['Vulkan',['../group__tz__gl2__graphicsapi__vk.html',1,'']]], + ['vulkan_20backend_58',['Vulkan Backend',['../group__tz__gl__vk.html',1,'']]], + ['vulkan_20frontend_59',['Vulkan Frontend',['../group__tz__gl2__graphicsapi__vk__frontend.html',1,'']]], + ['vulkancommand_60',['VulkanCommand',['../structtz_1_1gl_1_1vk2_1_1_vulkan_command.html',1,'tz::gl::vk2']]], + ['vulkandebugmessenger_61',['VulkanDebugMessenger',['../classtz_1_1gl_1_1vk2_1_1_vulkan_debug_messenger.html',1,'tz::gl::vk2']]], + ['vulkaninstance_62',['VulkanInstance',['../classtz_1_1gl_1_1vk2_1_1_vulkan_instance.html',1,'tz::gl::vk2']]], + ['vulkaninstanceinfo_63',['VulkanInstanceInfo',['../structtz_1_1gl_1_1vk2_1_1_vulkan_instance_info.html',1,'tz::gl::vk2']]] +]; diff --git a/search/all_16.js b/search/all_16.js new file mode 100644 index 0000000000..d023483838 --- /dev/null +++ b/search/all_16.js @@ -0,0 +1,40 @@ +var searchData= +[ + ['wait_5ffor_0',['wait_for',['../classtz_1_1gl_1_1vk2_1_1_timeline_semaphore.html#a2e0c459f3ba40c42be24886a3ee51102',1,'tz::gl::vk2::TimelineSemaphore']]], + ['wait_5fsemaphore_1',['wait_semaphore',['../structtz_1_1gl_1_1vk2_1_1hardware_1_1_queue_1_1_submit_info_1_1_wait_info.html#a0a4757e6b992ea078cad8039d08ec587',1,'tz::gl::vk2::hardware::Queue::SubmitInfo::WaitInfo']]], + ['wait_5fsemaphores_2',['wait_semaphores',['../structtz_1_1gl_1_1vk2_1_1hardware_1_1_queue_1_1_present_info.html#a6699fa9470d7024c02992fc2b3dc081f',1,'tz::gl::vk2::hardware::Queue::PresentInfo']]], + ['wait_5fstage_3',['wait_stage',['../structtz_1_1gl_1_1vk2_1_1hardware_1_1_queue_1_1_submit_info_1_1_wait_info.html#a526d5799de8b0b4a49a1f381d3ef1e27',1,'tz::gl::vk2::hardware::Queue::SubmitInfo::WaitInfo']]], + ['wait_5funtil_5fidle_4',['wait_until_idle',['../classtz_1_1gl_1_1vk2_1_1_logical_device.html#a467dc1131247e4bb9e97e5274e860bc7',1,'tz::gl::vk2::LogicalDevice']]], + ['wait_5funtil_5fsignalled_5',['wait_until_signalled',['../classtz_1_1gl_1_1vk2_1_1_fence.html#a89b2a5c13856021cc045c2223d4d9539',1,'tz::gl::vk2::Fence']]], + ['waitinfo_6',['WaitInfo',['../structtz_1_1gl_1_1vk2_1_1hardware_1_1_queue_1_1_submit_info_1_1_wait_info.html',1,'tz::gl::vk2::hardware::Queue::SubmitInfo']]], + ['waits_7',['waits',['../structtz_1_1gl_1_1vk2_1_1hardware_1_1_queue_1_1_submit_info.html#a538ac451b89295ebc6a8676d69d00ec8',1,'tz::gl::vk2::hardware::Queue::SubmitInfo']]], + ['wgl_5ffunction_5fdata_8',['wgl_function_data',['../structtz_1_1wsi_1_1impl_1_1wgl__function__data.html',1,'tz::wsi::impl']]], + ['wheel_5fposition_9',['wheel_position',['../structtz_1_1wsi_1_1mouse__state.html#aef55527a57293ce0b106fa7967d31a16',1,'tz::wsi::mouse_state']]], + ['window_10',['window',['../structtz_1_1wsi_1_1window.html',1,'tz::wsi::window'],['../group__tz__wsi__window.html',1,'Window'],['../group__tz__core.html#gab3acf7c6e5c5d2d15ac34272799744f0',1,'tz::window()'],['../structtz_1_1gl_1_1vk2_1_1_vulkan_instance_info.html#a281575d59314c0a2b9d40fa5a41da37d',1,'tz::gl::vk2::VulkanInstanceInfo::window']]], + ['window_20surface_20interation_20wsi_11',['Presentation and Window Surface Interation (WSI)',['../group__tz__gl__vk__presentation.html',1,'']]], + ['window_20system_20integration_12',['Window System Integration',['../group__tz__wsi.html',1,'']]], + ['window_5fcount_13',['window_count',['../group__tz__wsi__window.html#ga3d49f486afecfee1fe0739a193267915',1,'tz::wsi']]], + ['window_5fflags_14',['window_flags',['../structtz_1_1wsi_1_1window__info.html#a2bf6cc2849715ae0470c560db1a7678a',1,'tz::wsi::window_info']]], + ['window_5fhandle_15',['window_handle',['../group__tz__wsi__window.html#gaa8a7c8f4b4100e13296148889dacc02d',1,'tz::wsi']]], + ['window_5fhandle_5ftag_16',['window_handle_tag',['../structtz_1_1wsi_1_1detail_1_1window__handle__tag.html',1,'tz::wsi::detail']]], + ['window_5fhidden_17',['window_hidden',['../group__tz__core.html#ggad12da2cb05946402335871d2e282cbf9a1425bc6356c345ad2056f57cacf44ac4',1,'tz']]], + ['window_5finfo_18',['window_info',['../structtz_1_1wsi_1_1window__info.html',1,'tz::wsi']]], + ['window_5fmanager_19',['window_manager',['../structtz_1_1wsi_1_1window__manager.html',1,'tz::wsi']]], + ['window_5fnoresize_20',['window_noresize',['../group__tz__core.html#ggad12da2cb05946402335871d2e282cbf9a0d043ffc8c61373723263480302c143d',1,'tz']]], + ['window_5foutput_21',['window_output',['../classtz_1_1gl_1_1window__output.html',1,'tz::gl']]], + ['window_5ftransparent_22',['window_transparent',['../group__tz__core.html#ggad12da2cb05946402335871d2e282cbf9a7861ae15fcf4eb409057db8c14e8c10a',1,'tz']]], + ['window_5fwinapi_23',['window_winapi',['../classtz_1_1wsi_1_1impl_1_1window__winapi.html',1,'tz::wsi::impl']]], + ['window_5fx11_24',['window_x11',['../classtz_1_1wsi_1_1impl_1_1window__x11.html',1,'tz::wsi::impl']]], + ['windowsurface_25',['windowsurface',['../classtz_1_1gl_1_1vk2_1_1_window_surface.html',1,'tz::gl::vk2::WindowSurface'],['../classtz_1_1gl_1_1vk2_1_1_window_surface.html#adc8f618fa1ee901c61e87f02ae7f3445',1,'tz::gl::vk2::WindowSurface::WindowSurface()']]], + ['wireframe_5fmode_26',['wireframe_mode',['../structtz_1_1gl_1_1renderer__edit_1_1render__config.html#a1f284abaf7a4ca67423539505b8b572c',1,'tz::gl::renderer_edit::render_config::wireframe_mode'],['../structtz_1_1gl_1_1render__state_1_1_graphics.html#a5289b1d526838e9d3e855ec3ea0b7b55',1,'tz::gl::render_state::Graphics::wireframe_mode']]], + ['with_5fattachment_27',['with_attachment',['../classtz_1_1gl_1_1vk2_1_1_render_pass_builder.html#aacae02f036f07e6f321ac35420819ffe',1,'tz::gl::vk2::RenderPassBuilder']]], + ['with_5fbinding_28',['with_binding',['../classtz_1_1gl_1_1vk2_1_1_descriptor_layout_builder.html#a35bee4b07c0c343b53520a5f9c693691',1,'tz::gl::vk2::DescriptorLayoutBuilder']]], + ['with_5fcolour_5fattachment_29',['with_colour_attachment',['../classtz_1_1gl_1_1vk2_1_1_subpass_builder.html#ae944eb1b322cc08eb4a9f7105cdab265',1,'tz::gl::vk2::SubpassBuilder']]], + ['with_5fdepth_5fstencil_5fattachment_30',['with_depth_stencil_attachment',['../classtz_1_1gl_1_1vk2_1_1_subpass_builder.html#af3b5e86fed158d329db4b084556eab85',1,'tz::gl::vk2::SubpassBuilder']]], + ['with_5finput_5fattachment_31',['with_input_attachment',['../classtz_1_1gl_1_1vk2_1_1_subpass_builder.html#a732e8dc67451e314bae38faf24cd1fa6',1,'tz::gl::vk2::SubpassBuilder']]], + ['with_5fmore_32',['with_more',['../classtz_1_1vector.html#a2ca6acb21aba2f36f341688ffa7e7101',1,'tz::vector::with_more(T &&end) const'],['../classtz_1_1vector.html#ac484780fbef820de4004781a119a56d1',1,'tz::vector::with_more(const vector< T, S2 > &end) const']]], + ['with_5fsubpass_33',['with_subpass',['../classtz_1_1gl_1_1vk2_1_1_render_pass_builder.html#a2d7d398247571d6314e727923d8f7160',1,'tz::gl::vk2::RenderPassBuilder']]], + ['write_34',['Write',['../structtz_1_1gl_1_1vk2_1_1_descriptor_set_1_1_write.html',1,'tz::gl::vk2::DescriptorSet']]], + ['write_5finfos_35',['write_infos',['../structtz_1_1gl_1_1vk2_1_1_descriptor_set_1_1_write.html#af4094e04b87ad5da6c8c8861bf9dfb73',1,'tz::gl::vk2::DescriptorSet::Write']]], + ['wsi_36',['Presentation and Window Surface Interation (WSI)',['../group__tz__gl__vk__presentation.html',1,'']]] +]; diff --git a/search/all_17.js b/search/all_17.js new file mode 100644 index 0000000000..207616941f --- /dev/null +++ b/search/all_17.js @@ -0,0 +1,5 @@ +var searchData= +[ + ['x11_5fdisplay_5fdata_0',['x11_display_data',['../structtz_1_1wsi_1_1impl_1_1x11__display__data.html',1,'tz::wsi::impl']]], + ['xor_1',['xor',['../group__tzsl__atomic.html#ga7be1a0f30393cbdf216e5515d6fde1b0',1,'tz::atomic']]] +]; diff --git a/search/all_18.js b/search/all_18.js new file mode 100644 index 0000000000..306644b951 --- /dev/null +++ b/search/all_18.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['zero_0',['zero',['../classtz_1_1vector.html#a0b3b989ec3fc4a0af094f76e1d2204b2',1,'tz::vector']]] +]; diff --git a/search/all_2.js b/search/all_2.js new file mode 100644 index 0000000000..533fc58219 --- /dev/null +++ b/search/all_2.js @@ -0,0 +1,60 @@ +var searchData= +[ + ['c_20api_20reference_0',['C++ API Reference',['../group__tz__cpp.html',1,'']]], + ['callback_1',['callback',['../classtz_1_1callback.html',1,'tz::callback< Args >'],['../classtz_1_1callback.html#a85749b9e53db2369605d02d48bd9d967',1,'tz::callback::callback()']]], + ['callback_5fhandle_2',['callback_handle',['../group__tz__core.html#gac216f70e5e67728d93138613a7e03f4b',1,'tz']]], + ['callback_5ftype_3',['callback_type',['../structtz_1_1detail_1_1callback__type.html',1,'tz::detail']]], + ['camera_5fdata_4',['camera_data',['../structtz_1_1ren_1_1camera__data.html',1,'tz::ren']]], + ['cas_5',['cas',['../group__tzsl__atomic.html#ga17a4dea83f60906651d0b557ad770bbc',1,'tz::atomic']]], + ['ceil_6',['ceil',['../group__tzsl__math.html#ga8028220d2f0dd80f9111d54f1079bcc7',1,'tz::math']]], + ['children_7',['children',['../structtz_1_1transform__node.html#a733eb37970410891c90b5bc2f5684760',1,'tz::transform_node']]], + ['claims_5fkeyboard_8',['claims_keyboard',['../group__tz__dbgui.html#gae9289fba934f3184929dea07db97e28f',1,'tz::dbgui']]], + ['claims_5fmouse_9',['claims_mouse',['../group__tz__dbgui.html#ga36e08fae37ee7e26149c1ba247f54ce9',1,'tz::dbgui']]], + ['clamp_10',['clamp',['../group__tzsl__math.html#ga42282f727b67dab6da08e0366ba7787e',1,'tz::math']]], + ['clamp_5fto_5fedge_11',['clamp_to_edge',['../group__tz__gl__ogl2__image.html#gga52bed615aea0b883aeb6702716f95e5ba7ff5ead6fef18ca5f63119754ac76c3e',1,'tz::gl::ogl2']]], + ['clamptoborder_12',['ClampToBorder',['../group__tz__gl__vk__image.html#gga8d6daa8ff20537f40f5e1145342c2d4dafb07f88f6f11cc5ab9c951290716f147',1,'tz::gl::vk2']]], + ['clamptoedge_13',['ClampToEdge',['../group__tz__gl__vk__image.html#gga8d6daa8ff20537f40f5e1145342c2d4da74556551231333c36debc3d373261134',1,'tz::gl::vk2']]], + ['clear_14',['clear',['../group__tz__gl__vk__graphics__pipeline__render__pass.html#ggaa1e0e627270d80ef86624590afc5a03fadc30bc0c7914db5918da4263fce93ad2',1,'Cleartz::gl::vk2'],['../classtz_1_1basic__list.html#a5a9fe1832b83930a03bdc598b6f48f42',1,'tz::basic_list::clear()'],['../classtz_1_1_polymorphic_list.html#a4b4801429d2e32a6d7a7c6c25ac26adc',1,'tz::PolymorphicList::clear()'],['../classtz_1_1transform__hierarchy.html#ab0ae10f7b4c12537f4f2de6eab91933d',1,'tz::transform_hierarchy::clear()'],['../classtz_1_1gl_1_1ogl2_1_1framebuffer.html#a1e682cc908ff6243ac981746c88de982',1,'tz::gl::ogl2::framebuffer::clear()'],['../classtz_1_1gl_1_1vk2_1_1_descriptor_layout_builder.html#a9859251d15b9bbe21a08b13855b075fa',1,'tz::gl::vk2::DescriptorLayoutBuilder::clear()'],['../classtz_1_1gl_1_1vk2_1_1_descriptor_pool.html#acd851070777e0879bfd7054ce510ed8d',1,'tz::gl::vk2::DescriptorPool::clear()']]], + ['clear_5fcolour_15',['clear_colour',['../structtz_1_1gl_1_1render__state_1_1_graphics.html#afdbf39b5e5e727154eb35092a5f3329e',1,'tz::gl::render_state::Graphics']]], + ['clicked_16',['clicked',['../group__tz__wsi__mouse.html#gga089bafa0df7fa17353dbf27087a1f65ba90c655064697116004fbac6936e898d1',1,'tz::wsi']]], + ['clone_5fresized_17',['clone_resized',['../group__tz__gl__ogl2__buffers.html#ga66311328d0ac73108c1dac80a670255b',1,'tz::gl::ogl2::buffer_helper']]], + ['code_18',['code',['../structtz_1_1gl_1_1ogl2_1_1shader__module__info.html#ae9eee1b9e85c34856416a88c90be88ce',1,'tz::gl::ogl2::shader_module_info::code'],['../structtz_1_1gl_1_1vk2_1_1_shader_module_info.html#a95eaea2da553bf1bc88d071d90830cbb',1,'tz::gl::vk2::ShaderModuleInfo::code']]], + ['colour_5fattachment_5fcount_19',['colour_attachment_count',['../classtz_1_1gl_1_1ogl2_1_1framebuffer.html#a899e633ce1e2005e942c7e417d8208ce',1,'tz::gl::ogl2::framebuffer']]], + ['colour_5fattachments_20',['colour_attachments',['../structtz_1_1gl_1_1ogl2_1_1framebuffer__info.html#a0324e63f72ec4d93575ccb38fadd7de1',1,'tz::gl::ogl2::framebuffer_info::colour_attachments'],['../structtz_1_1gl_1_1vk2_1_1_render_pass_info_1_1_subpass.html#a78935dad7d990fd89a296c5413c5e785',1,'tz::gl::vk2::RenderPassInfo::Subpass::colour_attachments']]], + ['colour_5fdepth_5fload_21',['colour_depth_load',['../structtz_1_1gl_1_1vk2_1_1_attachment.html#a9628702d918a421bec8187e149534448',1,'tz::gl::vk2::Attachment']]], + ['colour_5fdepth_5fstore_22',['colour_depth_store',['../structtz_1_1gl_1_1vk2_1_1_attachment.html#a9979e498a459dc213e34d613f2d5c9be',1,'tz::gl::vk2::Attachment']]], + ['colourattachment_23',['colourattachment',['../group__tz__gl__vk__image.html#gga4ca55be3d1c101900d800a78deeb595fa19c3378429e6e0fce64ea1de4290a6d5',1,'ColourAttachmenttz::gl::vk2'],['../group__tz__gl__vk__image.html#gga6ecb2d248a682aac08d93f4a7078161ea19c3378429e6e0fce64ea1de4290a6d5',1,'ColourAttachmenttz::gl::vk2']]], + ['colourattachmentoutput_24',['ColourAttachmentOutput',['../group__tz__gl__vk__graphics__pipeline.html#ggaa581c5a329a76e48f41ca02bd263251aaec356eeffd7d26280475eadca9140604',1,'tz::gl::vk2']]], + ['colourattachmentread_25',['ColourAttachmentRead',['../group__tz__gl__vk__graphics__pipeline__render__pass.html#ggaa5dd0142a36cd59d14dff54eed67c3dfa94913a4c01c391312dd5de73eda8f3e2',1,'tz::gl::vk2']]], + ['colourattachmentwrite_26',['ColourAttachmentWrite',['../group__tz__gl__vk__graphics__pipeline__render__pass.html#ggaa5dd0142a36cd59d14dff54eed67c3dfa2f4e5868ed1ef1abb6e450f2040633f7',1,'tz::gl::vk2']]], + ['colourblendlogicaloperations_27',['ColourBlendLogicalOperations',['../group__tz__gl__vk__extension.html#gga6744c8f7d1276d6d9ae861b21c489505a5c5e6dcae77164cee63d668af3b3bc9e',1,'tz::gl::vk2']]], + ['colourblendstate_28',['ColourBlendState',['../structtz_1_1gl_1_1vk2_1_1_colour_blend_state.html',1,'tz::gl::vk2']]], + ['column_29',['Column',['../classtz_1_1matrix.html#a9e61aa087f278ef2733ad65644796e80',1,'tz::matrix']]], + ['command_20buffers_20and_20pools_30',['Command Buffers and Pools',['../group__tz__gl__vk__commands.html',1,'']]], + ['command_5fbuffers_31',['command_buffers',['../structtz_1_1gl_1_1vk2_1_1hardware_1_1_queue_1_1_submit_info.html#aebd484c0d32a01070e7974c448094de4',1,'tz::gl::vk2::hardware::Queue::SubmitInfo']]], + ['command_5fcount_32',['command_count',['../classtz_1_1gl_1_1vk2_1_1_command_buffer.html#a67c7bfe9c4368600d35d8b8484b06972',1,'tz::gl::vk2::CommandBuffer']]], + ['commandbuffer_33',['CommandBuffer',['../classtz_1_1gl_1_1vk2_1_1_command_buffer.html',1,'tz::gl::vk2']]], + ['commandbufferdata_34',['CommandBufferData',['../structtz_1_1gl_1_1vk2_1_1_command_buffer_data.html',1,'tz::gl::vk2']]], + ['commandbufferrecording_35',['CommandBufferRecording',['../classtz_1_1gl_1_1vk2_1_1_command_buffer_recording.html',1,'tz::gl::vk2']]], + ['commandpool_36',['CommandPool',['../classtz_1_1gl_1_1vk2_1_1_command_pool.html',1,'tz::gl::vk2']]], + ['commandpoolinfo_37',['CommandPoolInfo',['../structtz_1_1gl_1_1vk2_1_1_command_pool_info.html',1,'tz::gl::vk2']]], + ['common_5frenderer_5fdbgui_38',['common_renderer_dbgui',['../group__tz__gl2__renderer.html#ga9c3b9173cecb5e05ffa86811213c5ab0',1,'tz::gl']]], + ['compile_39',['compile',['../classtz_1_1gl_1_1ogl2_1_1shader__module.html#a0566183e70bb23740967df9e69c5afd4',1,'tz::gl::ogl2::shader_module']]], + ['compile_5fresult_40',['compile_result',['../structtz_1_1gl_1_1ogl2_1_1shader__module_1_1compile__result.html',1,'tz::gl::ogl2::shader_module']]], + ['compute_41',['compute',['../structtz_1_1gl_1_1render__state.html#a359f1ee9b0b8fbe9ebed30bb7b37e709',1,'tz::gl::render_state::compute'],['../group__tz__gl__ogl2__shader.html#gga6f74da2ab2ba8d9a9e73815fa16ac5f4a77e73f3a185e16d1f08ca5e057710b9d',1,'computetz::gl::ogl2'],['../classtz_1_1gl_1_1_renderer_edit_builder.html#a34deef028a6a13e0c17055174e3ea9c1',1,'tz::gl::RendererEditBuilder::compute()'],['../structtz_1_1gl_1_1render__state_1_1_compute.html',1,'tz::gl::render_state::Compute']]], + ['compute_5fconfig_42',['compute_config',['../structtz_1_1gl_1_1renderer__edit_1_1compute__config.html',1,'tz::gl::renderer_edit']]], + ['computepipeline_43',['ComputePipeline',['../classtz_1_1gl_1_1vk2_1_1_compute_pipeline.html',1,'tz::gl::vk2']]], + ['computepipelineinfo_44',['ComputePipelineInfo',['../structtz_1_1gl_1_1vk2_1_1_compute_pipeline_info.html',1,'tz::gl::vk2']]], + ['contains_45',['contains',['../classtz_1_1enum__field.html#ae84e799eabd0c60f79eafdfa86b3d0d7',1,'tz::enum_field::contains()'],['../classtz_1_1gl_1_1vk2_1_1_descriptor_pool.html#ab3ba99062df8e90d09abccd6c0f6e6c6',1,'tz::gl::vk2::DescriptorPool::contains()'],['../classtz_1_1enum__field.html#abec7d6a4a2b4b81600760dd74f5b23c3',1,'tz::enum_field::contains()'],['../classtz_1_1basic__list.html#a296a4bc78b4a32394ee4e7c4f7d5140b',1,'tz::basic_list::contains()']]], + ['context_46',['context',['../structtz_1_1gl_1_1vk2_1_1_render_pass_info_1_1_subpass.html#a281d5c3c591828e87bc3405bd2911ecd',1,'tz::gl::vk2::RenderPassInfo::Subpass::context'],['../structtz_1_1gl_1_1vk2_1_1_vulkan_command_1_1_bind_descriptor_sets.html#a86f62f989223c979fc35e98b4d88bcd1',1,'tz::gl::vk2::VulkanCommand::BindDescriptorSets::context']]], + ['copy_47',['copy',['../group__tz__gl__ogl2__buffers.html#ga20a62c3c2f993f7680765d90634a7584',1,'tz::gl::ogl2::buffer_helper']]], + ['core_20functionality_48',['Core Functionality',['../group__tz__core.html',1,'']]], + ['cos_49',['cos',['../group__tzsl__math.html#ga2001fa3e32e884b9923308b485da6702',1,'tz::math']]], + ['count_50',['count',['../classtz_1_1enum__field.html#a74cd18aeadeffdaa17bd22068e34dc59',1,'tz::enum_field::count()'],['../structtz_1_1gl_1_1vk2_1_1_descriptor_layout_info_1_1_binding_info.html#ad41f8b98daabff26fc3692e064a1cf7b',1,'tz::gl::vk2::DescriptorLayoutInfo::BindingInfo::count']]], + ['create_5frenderer_51',['create_renderer',['../classtz_1_1gl_1_1device.html#a8ac3063b712ef664852318e14830e64d',1,'tz::gl::device']]], + ['create_5fwindow_52',['create_window',['../group__tz__wsi__window.html#gac6059674ffff19966225cea5a7367a38',1,'tz::wsi']]], + ['cross_53',['cross',['../group__tzsl__math.html#ga7fd37ee5cfa25fcc727390773273eb88',1,'tz::math']]], + ['cull_5fmode_54',['cull_mode',['../structtz_1_1gl_1_1vk2_1_1_rasteriser_state.html#aaa4460c60b44ffb1f3e80197ac4fcc28',1,'tz::gl::vk2::RasteriserState']]], + ['cullmode_55',['CullMode',['../group__tz__gl__vk__graphics__pipeline__fixed.html#gaf55856ce9f281f90908bac12e0061e16',1,'tz::gl::vk2']]], + ['current_5flayout_56',['current_layout',['../structtz_1_1gl_1_1vk2_1_1_render_pass_info_1_1_attachment_reference.html#acae49fa7dc339f1ec0023e1e1c8495e4',1,'tz::gl::vk2::RenderPassInfo::AttachmentReference']]] +]; diff --git a/search/all_3.js b/search/all_3.js new file mode 100644 index 0000000000..039df4d3e0 --- /dev/null +++ b/search/all_3.js @@ -0,0 +1,102 @@ +var searchData= +[ + ['data_0',['data',['../structtz_1_1transform__node.html#ac532a4cca52f3d000e20bad9a10fb33a',1,'tz::transform_node::data'],['../group__tz__core__data.html',1,'Data'],['../classtz_1_1gl_1_1resource.html#a21ab68fe797184ae314b626f72a98062',1,'tz::gl::resource::data() final'],['../classtz_1_1gl_1_1resource.html#a9578c37147e86fe368e4b4191d8dd8fc',1,'tz::gl::resource::data() const final'],['../classtz_1_1gl_1_1iresource.html#a2034c319803f53dc374f4dc57f7e89e7',1,'tz::gl::iresource::data()=0'],['../classtz_1_1gl_1_1iresource.html#a4efedec0ff8764ec37a647a6b34cc27b',1,'tz::gl::iresource::data() const =0'],['../classtz_1_1vector.html#a58f744948751f1306d7e95ae61273b74',1,'tz::vector::data()'],['../classtz_1_1vector.html#a0efc07fae32cc2bfa2b2150f30bf7bc8',1,'tz::vector::data() const'],['../classtz_1_1basic__list.html#af8197a468d2e4ca683280b99eb2c83b4',1,'tz::basic_list::data()'],['../classtz_1_1basic__list.html#a32759f2f577643e9e013c4f16dd4f78f',1,'tz::basic_list::data() const']]], + ['data_5fas_1',['data_as',['../classtz_1_1gl_1_1iresource.html#a1031b5190ca48fc22b1ac0dbe4b29dcd',1,'tz::gl::iresource::data_as() const'],['../classtz_1_1gl_1_1iresource.html#a9ca9a48d880b6cb785f24639a206ca6c',1,'tz::gl::iresource::data_as()']]], + ['days_2',['days',['../classtz_1_1duration.html#a9ebbab08c04bf01f2a14d6f65dc795f0',1,'tz::duration']]], + ['dbgui_3',['dbgui',['../classtz_1_1gl_1_1iresource.html#a3a908f4cbc961b740062f5d001cfe1ee',1,'tz::gl::iresource::dbgui()'],['../classtz_1_1gl_1_1resource.html#aab282aa2e01daa9fec11e78a4895033c',1,'tz::gl::resource::dbgui()'],['../classtz_1_1gl_1_1buffer__resource.html#a1a9a921e465982e11da32771c35d5199',1,'tz::gl::buffer_resource::dbgui()'],['../classtz_1_1gl_1_1image__resource.html#a2c23cc9b2996385456e84a3b89b5301a',1,'tz::gl::image_resource::dbgui()']]], + ['debug_20ui_4',['Debug UI',['../group__tz__dbgui.html',1,'']]], + ['debug_5fget_5fname_5',['debug_get_name',['../classtz_1_1gl_1_1renderer__info.html#aad262d25b64ee45c5cd79faf8c6d5af0',1,'tz::gl::renderer_info']]], + ['debug_5fname_6',['debug_name',['../classtz_1_1gl_1_1renderer__info.html#a92f4e4d9f25acb3151987066df17db48',1,'tz::gl::renderer_info']]], + ['debugbeginlabel_7',['DebugBeginLabel',['../structtz_1_1gl_1_1vk2_1_1_vulkan_command_1_1_debug_begin_label.html',1,'tz::gl::vk2::VulkanCommand']]], + ['debugendlabel_8',['DebugEndLabel',['../structtz_1_1gl_1_1vk2_1_1_vulkan_command_1_1_debug_end_label.html',1,'tz::gl::vk2::VulkanCommand']]], + ['debugging_9',['Debugging',['../group__tzsl__debug.html',1,'']]], + ['debugmessenger_10',['DebugMessenger',['../group__tz__gl__vk__extension.html#ggaab3eb58740575c989d5eab8c3fd877a7ad69051b615fff4b893472a8289678385',1,'tz::gl::vk2']]], + ['debugnameable_11',['DebugNameable',['../classtz_1_1gl_1_1vk2_1_1_debug_nameable.html',1,'tz::gl::vk2']]], + ['debugnameable_3c_20vk_5fobject_5ftype_5fbuffer_20_3e_12',['DebugNameable< VK_OBJECT_TYPE_BUFFER >',['../classtz_1_1gl_1_1vk2_1_1_debug_nameable.html',1,'tz::gl::vk2']]], + ['debugnameable_3c_20vk_5fobject_5ftype_5ffence_20_3e_13',['DebugNameable< VK_OBJECT_TYPE_FENCE >',['../classtz_1_1gl_1_1vk2_1_1_debug_nameable.html',1,'tz::gl::vk2']]], + ['debugnameable_3c_20vk_5fobject_5ftype_5fimage_20_3e_14',['DebugNameable< VK_OBJECT_TYPE_IMAGE >',['../classtz_1_1gl_1_1vk2_1_1_debug_nameable.html',1,'tz::gl::vk2']]], + ['debugnameable_3c_20vk_5fobject_5ftype_5fimage_5fview_20_3e_15',['DebugNameable< VK_OBJECT_TYPE_IMAGE_VIEW >',['../classtz_1_1gl_1_1vk2_1_1_debug_nameable.html',1,'tz::gl::vk2']]], + ['debugnameable_3c_20vk_5fobject_5ftype_5fsemaphore_20_3e_16',['DebugNameable< VK_OBJECT_TYPE_SEMAPHORE >',['../classtz_1_1gl_1_1vk2_1_1_debug_nameable.html',1,'tz::gl::vk2']]], + ['decompose_5fquaternion_17',['decompose_quaternion',['../group__tzsl__matrix.html#ga382271ea9bd62c983a9cc777d6c0baad',1,'tz::matrix']]], + ['delay_18',['delay',['../classtz_1_1delay.html#a8b18e64689f16949afe24964e132fe58',1,'tz::delay::delay()'],['../classtz_1_1delay.html',1,'tz::delay']]], + ['depth_5fbounds_5ftesting_19',['depth_bounds_testing',['../structtz_1_1gl_1_1vk2_1_1_depth_stencil_state.html#a8a69c0546708e59f2d62a97eb84dad78',1,'tz::gl::vk2::DepthStencilState']]], + ['depth_5fclamp_20',['depth_clamp',['../structtz_1_1gl_1_1vk2_1_1_rasteriser_state.html#ae4a83452fed0f5066719116dc1ccf1e5',1,'tz::gl::vk2::RasteriserState']]], + ['depth_5fcompare_5foperation_21',['depth_compare_operation',['../structtz_1_1gl_1_1vk2_1_1_depth_stencil_state.html#a0b4a3e700422e3e61fd80f022b474cd1',1,'tz::gl::vk2::DepthStencilState']]], + ['depth_5fstencil_5fattachment_22',['depth_stencil_attachment',['../structtz_1_1gl_1_1vk2_1_1_render_pass_info_1_1_subpass.html#a906565d089e012b5ee05dc5c2fa68472',1,'tz::gl::vk2::RenderPassInfo::Subpass']]], + ['depth_5ftesting_23',['depth_testing',['../structtz_1_1gl_1_1vk2_1_1_depth_stencil_state.html#a6e3b509c9f2df1bd154f1e0f8b42ef41',1,'tz::gl::vk2::DepthStencilState']]], + ['depth_5fwrites_24',['depth_writes',['../structtz_1_1gl_1_1vk2_1_1_depth_stencil_state.html#ab60dc72d87d3d376e30395f7aea9877b',1,'tz::gl::vk2::DepthStencilState']]], + ['depthcomparator_25',['DepthComparator',['../group__tz__gl__vk__graphics__pipeline__fixed.html#ga93e2cb3a5e44484b0548e28496de69c7',1,'tz::gl::vk2']]], + ['depthstencilattachment_26',['depthstencilattachment',['../group__tz__gl__vk__image.html#gga4ca55be3d1c101900d800a78deeb595fa652fd1408b3de263e32147770a48931e',1,'DepthStencilAttachmenttz::gl::vk2'],['../group__tz__gl__vk__image.html#gga6ecb2d248a682aac08d93f4a7078161ea652fd1408b3de263e32147770a48931e',1,'DepthStencilAttachmenttz::gl::vk2']]], + ['depthstencilattachmentread_27',['DepthStencilAttachmentRead',['../group__tz__gl__vk__graphics__pipeline__render__pass.html#ggaa5dd0142a36cd59d14dff54eed67c3dfa35a30e5a6da75a4db202f65938e5189a',1,'tz::gl::vk2']]], + ['depthstencilattachmentwrite_28',['DepthStencilAttachmentWrite',['../group__tz__gl__vk__graphics__pipeline__render__pass.html#ggaa5dd0142a36cd59d14dff54eed67c3dfae2b1f5924289699c44b8ecba300a5de0',1,'tz::gl::vk2']]], + ['depthstencilstate_29',['DepthStencilState',['../structtz_1_1gl_1_1vk2_1_1_depth_stencil_state.html',1,'tz::gl::vk2']]], + ['descriptor_20layouts_20and_20sets_30',['Descriptor Layouts and Sets',['../group__tz__gl__vk__descriptors.html',1,'']]], + ['descriptor_5fcount_31',['descriptor_count',['../classtz_1_1gl_1_1vk2_1_1_descriptor_layout.html#accc746a50caa61641bb14fc4f8fadc6a',1,'tz::gl::vk2::DescriptorLayout']]], + ['descriptor_5fcount_5fof_32',['descriptor_count_of',['../classtz_1_1gl_1_1vk2_1_1_descriptor_layout.html#a4dcee1b2805e6163351ea0aefbcc3305',1,'tz::gl::vk2::DescriptorLayout']]], + ['descriptor_5flayouts_33',['descriptor_layouts',['../structtz_1_1gl_1_1vk2_1_1_pipeline_layout_info.html#a747cfdac10080e957c45d92c229d7578',1,'tz::gl::vk2::PipelineLayoutInfo']]], + ['descriptor_5fsets_34',['descriptor_sets',['../structtz_1_1gl_1_1vk2_1_1_vulkan_command_1_1_bind_descriptor_sets.html#ab897daa22d30e812d65a5d1cbc8e3805',1,'tz::gl::vk2::VulkanCommand::BindDescriptorSets']]], + ['descriptordata_35',['DescriptorData',['../structtz_1_1gl_1_1vk2_1_1_descriptor_data.html',1,'tz::gl::vk2']]], + ['descriptorflag_36',['DescriptorFlag',['../group__tz__gl__vk__descriptors.html#gaf15b5e240b6c64c9dad040171f553123',1,'tz::gl::vk2']]], + ['descriptorlayout_37',['descriptorlayout',['../classtz_1_1gl_1_1vk2_1_1_descriptor_layout.html',1,'tz::gl::vk2::DescriptorLayout'],['../classtz_1_1gl_1_1vk2_1_1_descriptor_layout.html#a9ef5579debbf8a3d6d758c714edaf3b8',1,'tz::gl::vk2::DescriptorLayout::DescriptorLayout()']]], + ['descriptorlayoutbuilder_38',['descriptorlayoutbuilder',['../classtz_1_1gl_1_1vk2_1_1_descriptor_layout_builder.html',1,'tz::gl::vk2::DescriptorLayoutBuilder'],['../classtz_1_1gl_1_1vk2_1_1_descriptor_layout_builder.html#a44093ba76ad98d8c6209143c8f4de242',1,'tz::gl::vk2::DescriptorLayoutBuilder::DescriptorLayoutBuilder()=default'],['../classtz_1_1gl_1_1vk2_1_1_descriptor_layout_builder.html#ab2892131f4b7b43aed19eda352dfef81',1,'tz::gl::vk2::DescriptorLayoutBuilder::DescriptorLayoutBuilder(DescriptorLayoutInfo existing_info)']]], + ['descriptorlayoutinfo_39',['DescriptorLayoutInfo',['../structtz_1_1gl_1_1vk2_1_1_descriptor_layout_info.html',1,'tz::gl::vk2']]], + ['descriptorpool_40',['DescriptorPool',['../classtz_1_1gl_1_1vk2_1_1_descriptor_pool.html',1,'tz::gl::vk2']]], + ['descriptorpoolinfo_41',['DescriptorPoolInfo',['../structtz_1_1gl_1_1vk2_1_1_descriptor_pool_info.html',1,'tz::gl::vk2']]], + ['descriptorset_42',['DescriptorSet',['../classtz_1_1gl_1_1vk2_1_1_descriptor_set.html',1,'tz::gl::vk2']]], + ['destination_5faccess_43',['destination_access',['../structtz_1_1gl_1_1vk2_1_1_vulkan_command_1_1_transition_image_layout.html#a71a41f1c921b44f196c2b62e6fcc86e7',1,'tz::gl::vk2::VulkanCommand::TransitionImageLayout']]], + ['destination_5fstage_44',['destination_stage',['../structtz_1_1gl_1_1vk2_1_1_vulkan_command_1_1_transition_image_layout.html#aa80a64c77476bf86fe4c7af2c2523119',1,'tz::gl::vk2::VulkanCommand::TransitionImageLayout']]], + ['destroy_5frenderer_45',['destroy_renderer',['../classtz_1_1gl_1_1device.html#a6e5026b0eafd4a9bd7e8f5242b7c4899',1,'tz::gl::device']]], + ['destroy_5fwindow_46',['destroy_window',['../group__tz__wsi__window.html#ga54f16c6122b5d08eef234586de422eef',1,'tz::wsi']]], + ['detach_5fchildren_47',['detach_children',['../classtz_1_1transform__hierarchy.html#a03c95b250f14ac9f110b59eceb772222aa0dd84f469d573546155b02538698177',1,'tz::transform_hierarchy']]], + ['determinant_48',['determinant',['../group__tzsl__matrix.html#ga8da6239534e090803b41e5c853042977',1,'tz::matrix']]], + ['device_49',['device',['../structtz_1_1gl_1_1vk2_1_1buffer__info.html#a9ee00dcfed5edbd0e9e67fc5625d64fe',1,'tz::gl::vk2::buffer_info::device'],['../structtz_1_1gl_1_1vk2_1_1_fence_info.html#a18b3aa2916e1759baf8ec26eacacba2c',1,'tz::gl::vk2::FenceInfo::device'],['../structtz_1_1gl_1_1vk2_1_1image__info.html#a14b73086e1e3c1a8247663adec181527',1,'tz::gl::vk2::image_info::device'],['../classtz_1_1gl_1_1device.html',1,'tz::gl::device'],['../structtz_1_1gl_1_1vk2_1_1_sampler_info.html#ae7a557f6dedbc5ce99635b0fd62691ee',1,'tz::gl::vk2::SamplerInfo::device'],['../structtz_1_1gl_1_1vk2_1_1_shader_module_info.html#a22e8867e9dbaaad59cbe3e628f45208e',1,'tz::gl::vk2::ShaderModuleInfo::device'],['../structtz_1_1gl_1_1vk2_1_1_swapchain_info.html#a490e12cda3859fe94bb1211db4d694e7',1,'tz::gl::vk2::SwapchainInfo::device'],['../structtz_1_1gl_1_1vk2_1_1_shader_info.html#a36ba7947e26d7eb6559950f6243b8c52',1,'tz::gl::vk2::ShaderInfo::device']]], + ['device_5fcommand_5fpool_50',['device_command_pool',['../classtz_1_1gl_1_1device__command__pool.html',1,'tz::gl']]], + ['device_5fcommon_51',['device_common',['../classtz_1_1gl_1_1device__common.html',1,'tz::gl']]], + ['device_5fcommon_3c_20renderer_5fogl_20_3e_52',['device_common< renderer_ogl >',['../classtz_1_1gl_1_1device__common.html',1,'tz::gl']]], + ['device_5fcommon_3c_20renderer_5fvulkan2_20_3e_53',['device_common< renderer_vulkan2 >',['../classtz_1_1gl_1_1device__common.html',1,'tz::gl']]], + ['device_5fdescriptor_5fpool_54',['device_descriptor_pool',['../classtz_1_1gl_1_1device__descriptor__pool.html',1,'tz::gl']]], + ['device_5fogl_55',['device_ogl',['../classtz_1_1gl_1_1device__ogl.html',1,'tz::gl']]], + ['device_5frender_5fscheduler_5fogl_56',['device_render_scheduler_ogl',['../classtz_1_1gl_1_1device__render__scheduler__ogl.html',1,'tz::gl']]], + ['device_5frender_5fsync_57',['device_render_sync',['../classtz_1_1gl_1_1device__render__sync.html',1,'tz::gl']]], + ['device_5fsupports_5fflags_58',['device_supports_flags',['../structtz_1_1gl_1_1vk2_1_1_descriptor_layout_info.html#a2e5cab5844cce37fcc8a06c1436f33e6',1,'tz::gl::vk2::DescriptorLayoutInfo']]], + ['device_5fvulkan2_59',['device_vulkan2',['../classtz_1_1gl_1_1device__vulkan2.html',1,'tz::gl']]], + ['device_5fvulkan_5fbase_60',['device_vulkan_base',['../classtz_1_1gl_1_1device__vulkan__base.html',1,'tz::gl']]], + ['device_5fwindow_61',['device_window',['../classtz_1_1gl_1_1device__window.html',1,'tz::gl']]], + ['deviceextension_62',['DeviceExtension',['../group__tz__gl__vk__extension.html#ga56bb45f4b48b35c621dc90ea70227158',1,'tz::gl::vk2']]], + ['devicefeature_63',['DeviceFeature',['../group__tz__gl__vk__extension.html#ga6744c8f7d1276d6d9ae861b21c489505',1,'tz::gl::vk2']]], + ['devicefeatureinfo_64',['DeviceFeatureInfo',['../structtz_1_1gl_1_1vk2_1_1detail_1_1_device_feature_info.html',1,'tz::gl::vk2::detail']]], + ['dimensions_65',['dimensions',['../structtz_1_1wsi_1_1window__info.html#a9a9be15bc17a5d71fb31b89eb8f7d13b',1,'tz::wsi::window_info::dimensions'],['../structtz_1_1wsi_1_1monitor.html#aab9b77f0a9ab9b9f8f417b7cf8c8d09c',1,'tz::wsi::monitor::dimensions'],['../structtz_1_1gl_1_1renderer__edit_1_1image__resize.html#a80b3e618fd1d8f8c1f26490c6260f204',1,'tz::gl::renderer_edit::image_resize::dimensions'],['../structtz_1_1initialise__info.html#aa1b701a1fbe1219e58ca9e4257834b10',1,'tz::initialise_info::dimensions'],['../structtz_1_1gl_1_1image__info.html#a62eb6099efbe4416fbc20c45a06fb38b',1,'tz::gl::image_info::dimensions'],['../structtz_1_1gl_1_1vk2_1_1image__info.html#af8102f2b0bda5a33254c6213950e67a6',1,'tz::gl::vk2::image_info::dimensions'],['../structtz_1_1gl_1_1vk2_1_1_framebuffer_info.html#a8e99742083bfc0c1e4d98f696323dea7',1,'tz::gl::vk2::FramebufferInfo::dimensions'],['../structtz_1_1gl_1_1ogl2_1_1image__info.html#ab18980b7a33a40df21a39473793482c6',1,'tz::gl::ogl2::image_info::dimensions'],['../structtz_1_1gl_1_1ogl2_1_1framebuffer__info.html#aecc4286ec0828ee80ebfb992946732b3',1,'tz::gl::ogl2::framebuffer_info::dimensions'],['../structtz_1_1gl_1_1ogl2_1_1render__buffer__info.html#a19bd3ca678419ccb8443b1be18a79fe8',1,'tz::gl::ogl2::render_buffer_info::dimensions']]], + ['dispatch_66',['dispatch',['../structtz_1_1gl_1_1vk2_1_1_vulkan_command_1_1_dispatch.html',1,'tz::gl::vk2::VulkanCommand::Dispatch'],['../classtz_1_1gl_1_1vk2_1_1_command_buffer_recording.html#a3c305e3576f093dad51bd911c6dbab60',1,'tz::gl::vk2::CommandBufferRecording::dispatch()']]], + ['distance_67',['distance',['../group__tzsl__math.html#ga81780532b6bb411b2b550c09b76b7f93',1,'tz::math']]], + ['done_68',['done',['../classtz_1_1delay.html#abecd402d7755f73c4a61a33b77af4963',1,'tz::delay']]], + ['dontcare_69',['dontcare',['../group__tz__gl__vk__graphics__pipeline__render__pass.html#ggaa1e0e627270d80ef86624590afc5a03fa60a3629ef6a8f991f45d7a85f2458544',1,'DontCaretz::gl::vk2'],['../group__tz__gl__vk__graphics__pipeline__render__pass.html#ggab92f36711ba7bb90caf0e4a39748ed7da60a3629ef6a8f991f45d7a85f2458544',1,'DontCaretz::gl::vk2']]], + ['dot_70',['dot',['../classtz_1_1vector.html#a074e671fe11952ee602c6b60d542fc75',1,'tz::vector::dot()'],['../group__tzsl__math.html#gae3a061e3c170f530fbc99969abdeb333',1,'tz::math::dot()']]], + ['double_5fclicked_71',['double_clicked',['../group__tz__wsi__mouse.html#gga089bafa0df7fa17353dbf27087a1f65bac587d5d54676217aeecb4b993c3186cf',1,'tz::wsi']]], + ['draw_72',['draw',['../classtz_1_1gl_1_1ogl2_1_1vertex__array.html#ad53896fed3856db5c3a2fce42fb120bf',1,'tz::gl::ogl2::vertex_array::draw()'],['../classtz_1_1gl_1_1vk2_1_1_command_buffer_recording.html#acd2074bf1faa8b35502ec823cfde1abf',1,'tz::gl::vk2::CommandBufferRecording::draw()'],['../structtz_1_1gl_1_1vk2_1_1_vulkan_command_1_1_draw.html',1,'tz::gl::vk2::VulkanCommand::Draw']]], + ['draw_5fbuffer_73',['draw_buffer',['../structtz_1_1gl_1_1render__state_1_1_graphics.html#a3f7566566d5ad5403bdfc19813b85126',1,'tz::gl::render_state::Graphics']]], + ['draw_5findexed_74',['draw_indexed',['../classtz_1_1gl_1_1ogl2_1_1vertex__array.html#a0866c26d8a2d6e47b1e14d86cef0500f',1,'tz::gl::ogl2::vertex_array::draw_indexed()'],['../classtz_1_1gl_1_1vk2_1_1_command_buffer_recording.html#ad5539795d16fdb9fc6d507d38a45123c',1,'tz::gl::vk2::CommandBufferRecording::draw_indexed(VulkanCommand::DrawIndexed draw)']]], + ['draw_5findexed_5findirect_75',['draw_indexed_indirect',['../classtz_1_1gl_1_1vk2_1_1_command_buffer_recording.html#a883d311ab6e1f1c1f29260129179d0e0',1,'tz::gl::vk2::CommandBufferRecording']]], + ['draw_5findexed_5findirect_5fcommand_76',['draw_indexed_indirect_command',['../structtz_1_1gl_1_1ogl2_1_1draw__indexed__indirect__command.html',1,'tz::gl::ogl2::draw_indexed_indirect_command'],['../structtz_1_1gl_1_1vk2_1_1draw__indexed__indirect__command.html',1,'tz::gl::vk2::draw_indexed_indirect_command']]], + ['draw_5findirect_77',['draw_indirect',['../group__tz__gl__ogl2__buffers.html#gga2d4cfcc22205d2276ef7347cf6e1c1edabe98195f011ff22c0afcb8e499f015bf',1,'draw_indirecttz::gl::ogl2'],['../classtz_1_1gl_1_1vk2_1_1_command_buffer_recording.html#a3eebf5124e99fc760f29698edcda6577',1,'tz::gl::vk2::CommandBufferRecording::draw_indirect()']]], + ['draw_5findirect_5fbuffer_78',['draw_indirect_buffer',['../group__tz__gl2__res.html#ggaacaeec69fc5b83e204af317250a47eb8a728c7ac13a50ff63ede85d62daaea87d',1,'draw_indirect_buffertz::gl'],['../group__tz__gl__vk__buffer.html#gga0c6ff78fc058c3e209ba59dc1b2c02a6a728c7ac13a50ff63ede85d62daaea87d',1,'draw_indirect_buffertz::gl::vk2']]], + ['draw_5findirect_5fcommand_79',['draw_indirect_command',['../structtz_1_1gl_1_1ogl2_1_1draw__indirect__command.html',1,'tz::gl::ogl2::draw_indirect_command'],['../structtz_1_1gl_1_1vk2_1_1draw__indirect__command.html',1,'tz::gl::vk2::draw_indirect_command']]], + ['draw_5findirect_5fcount_80',['draw_indirect_count',['../group__tz__gl2__renderer.html#ggac6f74feb8cd57f49c051f5d83a12be5da33cd60667ba40af9abe3d4c9346ea1eb',1,'tz::gl']]], + ['draw_5flist_81',['draw_list',['../structtz_1_1ren_1_1draw__list.html',1,'tz::ren']]], + ['drawindexed_82',['DrawIndexed',['../structtz_1_1gl_1_1vk2_1_1_vulkan_command_1_1_draw_indexed.html',1,'tz::gl::vk2::VulkanCommand']]], + ['drawindexedindirect_83',['DrawIndexedIndirect',['../structtz_1_1gl_1_1vk2_1_1_vulkan_command_1_1_draw_indexed_indirect.html',1,'tz::gl::vk2::VulkanCommand']]], + ['drawindexedindirectcommand_84',['DrawIndexedIndirectCommand',['../structtz_1_1draw_1_1_draw_indexed_indirect_command.html',1,'tz::draw']]], + ['drawindexedindirectcount_85',['DrawIndexedIndirectCount',['../structtz_1_1gl_1_1vk2_1_1_vulkan_command_1_1_draw_indexed_indirect_count.html',1,'tz::gl::vk2::VulkanCommand']]], + ['drawindirect_86',['drawindirect',['../structtz_1_1gl_1_1vk2_1_1_vulkan_command_1_1_draw_indirect.html',1,'tz::gl::vk2::VulkanCommand::DrawIndirect'],['../group__tz__gl__vk__graphics__pipeline.html#ggaa581c5a329a76e48f41ca02bd263251aa95b0e6b8c7aa6af632295afda7a926bc',1,'DrawIndirecttz::gl::vk2']]], + ['drawindirectcommand_87',['DrawIndirectCommand',['../structtz_1_1draw_1_1_draw_indirect_command.html',1,'tz::draw']]], + ['drawindirectcount_88',['drawindirectcount',['../group__tz__gl__vk__extension.html#gga6744c8f7d1276d6d9ae861b21c489505a215e219c44e85364464e51a55db84847',1,'DrawIndirectCounttz::gl::vk2'],['../structtz_1_1gl_1_1vk2_1_1_vulkan_command_1_1_draw_indirect_count.html',1,'tz::gl::vk2::VulkanCommand::DrawIndirectCount']]], + ['dst_89',['dst',['../structtz_1_1gl_1_1vk2_1_1_vulkan_command_1_1_image_copy_image.html#aa59748f1bcde9666d172ec07c7f92654',1,'tz::gl::vk2::VulkanCommand::ImageCopyImage::dst'],['../structtz_1_1gl_1_1vk2_1_1_vulkan_command_1_1_buffer_copy_image.html#ae77ba4232185e07315aba61908c4e58c',1,'tz::gl::vk2::VulkanCommand::BufferCopyImage::dst'],['../structtz_1_1gl_1_1vk2_1_1_vulkan_command_1_1_buffer_copy_buffer.html#ab25083e4d84c146bfb7cf38f5f37dc0b',1,'tz::gl::vk2::VulkanCommand::BufferCopyBuffer::dst']]], + ['dst_5foffset_90',['dst_offset',['../structtz_1_1gl_1_1vk2_1_1_vulkan_command_1_1_buffer_copy_buffer.html#a612fd1cb0f69df661f25a84225fbf325',1,'tz::gl::vk2::VulkanCommand::BufferCopyBuffer']]], + ['duration_91',['duration',['../classtz_1_1duration.html',1,'tz']]], + ['dynamic_92',['dynamic',['../group__tz__gl__ogl2__buffers.html#ggae0f51febb963a7dc9fce3cc2208559a6ab72f3bd391ba731a35708bfd8cd8a68f',1,'tz::gl::ogl2']]], + ['dynamic_5faccess_93',['dynamic_access',['../group__tz__gl2__res.html#ggac9293366fa49e7f476827595ca80fbbba4d2d126e5a776af51934638915e14737',1,'tz::gl']]], + ['dynamicrendering_94',['DynamicRendering',['../group__tz__gl__vk__extension.html#gga6744c8f7d1276d6d9ae861b21c489505a25013a5dfa918c9d7f1ad4e596648514',1,'tz::gl::vk2']]], + ['dynamicrenderingrun_95',['DynamicRenderingRun',['../classtz_1_1gl_1_1vk2_1_1_command_buffer_recording_1_1_dynamic_rendering_run.html',1,'tz::gl::vk2::CommandBufferRecording']]], + ['dynamicrenderingruninfo_96',['DynamicRenderingRunInfo',['../structtz_1_1gl_1_1vk2_1_1_dynamic_rendering_run_info.html',1,'tz::gl::vk2']]], + ['dynamicrenderingstate_97',['DynamicRenderingState',['../structtz_1_1gl_1_1vk2_1_1_graphics_pipeline_info_1_1_dynamic_rendering_state.html',1,'tz::gl::vk2::GraphicsPipelineInfo']]], + ['dynamicstate_98',['DynamicState',['../structtz_1_1gl_1_1vk2_1_1_dynamic_state.html',1,'tz::gl::vk2']]] +]; diff --git a/search/all_4.js b/search/all_4.js new file mode 100644 index 0000000000..2f00690c6d --- /dev/null +++ b/search/all_4.js @@ -0,0 +1,48 @@ +var searchData= +[ + ['earlyfragmenttests_0',['EarlyFragmentTests',['../group__tz__gl__vk__graphics__pipeline.html#ggaa581c5a329a76e48f41ca02bd263251aa5ad09049db5ad41b32b78a92294484c7',1,'tz::gl::vk2']]], + ['edit_1',['edit',['../classtz_1_1gl_1_1renderer__ogl.html#a191c8012bb11868f5934fd61fbacf168',1,'tz::gl::renderer_ogl']]], + ['edit_5fside_5feffects_2',['edit_side_effects',['../structtz_1_1gl_1_1edit__side__effects.html',1,'tz::gl']]], + ['editrequest_3',['EditRequest',['../classtz_1_1gl_1_1vk2_1_1_descriptor_set_1_1_edit_request.html',1,'tz::gl::vk2::DescriptorSet']]], + ['elapsed_4',['elapsed',['../classtz_1_1delay.html#a58f202ee61907e36e13d89e2c8c4d950',1,'tz::delay']]], + ['element_5foffset_5',['element_offset',['../structtz_1_1gl_1_1vk2_1_1_vertex_input_state_1_1_attribute.html#afd7569bdf329b77573d60fc6cd44cced',1,'tz::gl::vk2::VertexInputState::Attribute']]], + ['emplace_6',['emplace',['../classtz_1_1_polymorphic_list.html#abcd45264b9a32adcfde7d7469d526bac',1,'tz::PolymorphicList::emplace()'],['../classtz_1_1basic__list.html#af3feb8b0f4a28360f8cb2b79550c9eb5',1,'tz::basic_list::emplace(Args &&... args)']]], + ['empty_7',['empty',['../classtz_1_1basic__list.html#a7dd603cfac91d0de0a80fa7a3f92ad5e',1,'tz::basic_list::empty()'],['../classtz_1_1transform__hierarchy.html#a98feb2361bfda5351a3396f26a09e614',1,'tz::transform_hierarchy::empty()'],['../classtz_1_1enum__field.html#abfb91b134d35e4f0454cd6eecf859b88',1,'tz::enum_field::empty()']]], + ['enable_5fvalidation_5flayers_8',['enable_validation_layers',['../structtz_1_1gl_1_1vk2_1_1_vulkan_instance_info.html#ae57359ac237cb9596e822af3a6478b7f',1,'tz::gl::vk2::VulkanInstanceInfo']]], + ['end_9',['end',['../classtz_1_1basic__list.html#a647d9ad1f6dcfb9e86d5a98da3e6d90e',1,'tz::basic_list::end() const'],['../classtz_1_1basic__list.html#a2eabfdf0380450d59fff93772dbe9761',1,'tz::basic_list::end()'],['../classtz_1_1enum__field.html#a23110e1ac51df35ef76022ba30bd2a24',1,'tz::enum_field::end() const'],['../classtz_1_1enum__field.html#a92f4bc051ebc80adea4dab7424b8676d',1,'tz::enum_field::end()'],['../classtz_1_1_polymorphic_list.html#a005d33c6203712c5304224285b389c50',1,'tz::PolymorphicList::end()'],['../classtz_1_1_polymorphic_list.html#a01e936a09d95b4898311f84ddc356e97',1,'tz::PolymorphicList::end() const']]], + ['end_5fframe_10',['end_frame',['../group__tz__core.html#ga3444884fd2ee290340864428de1df82f',1,'tz']]], + ['enddynamicrendering_11',['EndDynamicRendering',['../structtz_1_1gl_1_1vk2_1_1_vulkan_command_1_1_end_dynamic_rendering.html',1,'tz::gl::vk2::VulkanCommand']]], + ['endrenderpass_12',['EndRenderPass',['../structtz_1_1gl_1_1vk2_1_1_vulkan_command_1_1_end_render_pass.html',1,'tz::gl::vk2::VulkanCommand']]], + ['engine_5finfo_13',['engine_info',['../structtz_1_1engine__info.html',1,'tz']]], + ['enum_5ffield_14',['enum_field',['../classtz_1_1enum__field.html#a991dd804357b394f7036c3c86ffd2649',1,'tz::enum_field::enum_field()=default'],['../classtz_1_1enum__field.html#a5454e8b8f31861b47b412554d4e2a9df',1,'tz::enum_field::enum_field(std::initializer_list< E > types)'],['../classtz_1_1enum__field.html#ab03fd94decf6143e89651bbe5eaa0c02',1,'tz::enum_field::enum_field(E type)'],['../classtz_1_1enum__field.html',1,'tz::enum_field< E >']]], + ['enum_5ffield_3c_20accessflag_20_3e_15',['enum_field< AccessFlag >',['../classtz_1_1enum__field.html',1,'tz']]], + ['enum_5ffield_3c_20application_5fflag_20_3e_16',['enum_field< application_flag >',['../classtz_1_1enum__field.html',1,'tz']]], + ['enum_5ffield_3c_20bufferusage_20_3e_17',['enum_field< BufferUsage >',['../classtz_1_1enum__field.html',1,'tz']]], + ['enum_5ffield_3c_20commandpoolflag_20_3e_18',['enum_field< CommandPoolFlag >',['../classtz_1_1enum__field.html',1,'tz']]], + ['enum_5ffield_3c_20descriptorflag_20_3e_19',['enum_field< DescriptorFlag >',['../classtz_1_1enum__field.html',1,'tz']]], + ['enum_5ffield_3c_20deviceextension_20_3e_20',['enum_field< DeviceExtension >',['../classtz_1_1enum__field.html',1,'tz']]], + ['enum_5ffield_3c_20devicefeature_20_3e_21',['enum_field< DeviceFeature >',['../classtz_1_1enum__field.html',1,'tz']]], + ['enum_5ffield_3c_20dynamicstatetype_20_3e_22',['enum_field< DynamicStateType >',['../classtz_1_1enum__field.html',1,'tz']]], + ['enum_5ffield_3c_20gltf_5fattribute_20_3e_23',['enum_field< gltf_attribute >',['../classtz_1_1enum__field.html',1,'tz']]], + ['enum_5ffield_3c_20imageaspectflag_20_3e_24',['enum_field< ImageAspectFlag >',['../classtz_1_1enum__field.html',1,'tz']]], + ['enum_5ffield_3c_20imageusage_20_3e_25',['enum_field< ImageUsage >',['../classtz_1_1enum__field.html',1,'tz']]], + ['enum_5ffield_3c_20instanceextension_20_3e_26',['enum_field< InstanceExtension >',['../classtz_1_1enum__field.html',1,'tz']]], + ['enum_5ffield_3c_20override_5fflag_20_3e_27',['enum_field< override_flag >',['../classtz_1_1enum__field.html',1,'tz']]], + ['enum_5ffield_3c_20queuefamilytype_20_3e_28',['enum_field< QueueFamilyType >',['../classtz_1_1enum__field.html',1,'tz']]], + ['enum_5ffield_3c_20renderer_5foption_20_3e_29',['enum_field< renderer_option >',['../classtz_1_1enum__field.html',1,'tz']]], + ['enum_5ffield_3c_20resource_5fflag_20_3e_30',['enum_field< resource_flag >',['../classtz_1_1enum__field.html',1,'tz']]], + ['equalto_31',['EqualTo',['../group__tz__gl__vk__graphics__pipeline__fixed.html#gga93e2cb3a5e44484b0548e28496de69c7a0242c502bd906e05171e64bad31c7c21',1,'tz::gl::vk2']]], + ['erase_32',['erase',['../classtz_1_1basic__list.html#af77955ee7383d5cae6bb09fae8a104e6',1,'tz::basic_list::erase(Iterator position)'],['../classtz_1_1basic__list.html#a68e81beb140765454649325ea15418b9',1,'tz::basic_list::erase(Iterator first, Iterator last)']]], + ['error_33',['error',['../group__tz__core.html#ga51d5f1707ccebf785a59cbb6a90b0fad',1,'tz']]], + ['event_34',['event',['../structtz_1_1gl_1_1event.html',1,'tz::gl']]], + ['exchange_35',['exchange',['../group__tzsl__atomic.html#gac66c88e078d10e049838618e5c5d80f6',1,'tz::atomic']]], + ['execute_36',['execute',['../classtz_1_1impl_1_1job__system__threadpool__lfq.html#a9fbeca926d2535f22497bf8e07e47afa',1,'tz::impl::job_system_threadpool_lfq::execute()'],['../classtz_1_1lua_1_1state.html#ae8e976c4fa717f9abe13757cfc63379d',1,'tz::lua::state::execute(const char *lua_src, bool assert_on_failure=true) const']]], + ['execute_5ffile_37',['execute_file',['../classtz_1_1lua_1_1state.html#a15bbc3a9526837cd15a4550ab562488f',1,'tz::lua::state']]], + ['execution_5fcomplete_5ffence_38',['execution_complete_fence',['../structtz_1_1gl_1_1vk2_1_1hardware_1_1_queue_1_1_submit_info.html#a31872f3076d704954546232c562b4467',1,'tz::gl::vk2::hardware::Queue::SubmitInfo']]], + ['execution_5finfo_39',['execution_info',['../structtz_1_1execution__info.html',1,'tz']]], + ['exp_40',['exp',['../group__tzsl__math.html#ga0b3e83e179fee3b947ff6725d85ea9bc',1,'tz::math']]], + ['exp2_41',['exp2',['../group__tzsl__math.html#ga62b92e38309339005fea6213dfda3454',1,'tz::math']]], + ['export_5fnode_42',['export_node',['../classtz_1_1transform__hierarchy.html#a55b86e9dd702eefbacbc478895485263',1,'tz::transform_hierarchy']]], + ['extensions_43',['extensions',['../structtz_1_1gl_1_1vk2_1_1_vulkan_instance_info.html#ac0600b7dfc2ae1e5322f413626c2269d',1,'tz::gl::vk2::VulkanInstanceInfo::extensions'],['../structtz_1_1gl_1_1vk2_1_1_logical_device_info.html#ac6e1aabf78d0e11a8cbb420ceb1a4136',1,'tz::gl::vk2::LogicalDeviceInfo::extensions']]], + ['extensions_20and_20features_44',['Extensions and Features',['../group__tz__gl__vk__extension.html',1,'']]] +]; diff --git a/search/all_5.js b/search/all_5.js new file mode 100644 index 0000000000..44469f3561 --- /dev/null +++ b/search/all_5.js @@ -0,0 +1,56 @@ +var searchData= +[ + ['fail_5faccessdenied_0',['Fail_AccessDenied',['../classtz_1_1gl_1_1vk2_1_1hardware_1_1_queue.html#a85b458bfb664176d140abf3b6b627e67aaea27d8b72d8ffa293cbf65f97b70e30',1,'tz::gl::vk2::hardware::Queue']]], + ['fail_5ffatalerror_1',['Fail_FatalError',['../classtz_1_1gl_1_1vk2_1_1hardware_1_1_queue.html#a85b458bfb664176d140abf3b6b627e67aca1a7c2d3dbabec931605566d7db0117',1,'tz::gl::vk2::hardware::Queue']]], + ['fail_5foutofdate_2',['Fail_OutOfDate',['../classtz_1_1gl_1_1vk2_1_1hardware_1_1_queue.html#a85b458bfb664176d140abf3b6b627e67a840624fba8a877312dbd12ff0481e17d',1,'tz::gl::vk2::hardware::Queue']]], + ['fail_5fsurfacelost_3',['Fail_SurfaceLost',['../classtz_1_1gl_1_1vk2_1_1hardware_1_1_queue.html#a85b458bfb664176d140abf3b6b627e67a33ac27a04865222ea13822bd532d6973',1,'tz::gl::vk2::hardware::Queue']]], + ['fallback_5fallocator_4',['fallback_allocator',['../classtz_1_1fallback__allocator.html',1,'tz']]], + ['fatalerror_5',['FatalError',['../structtz_1_1gl_1_1vk2_1_1_descriptor_pool_1_1_allocation_result.html#abad85d19de3197a840dc5e69ad797c54af245a0dc66dc8cd7d835771034eb4b86',1,'tz::gl::vk2::DescriptorPool::AllocationResult']]], + ['features_6',['features',['../group__tz__gl__vk__extension.html',1,'Extensions and Features'],['../structtz_1_1gl_1_1vk2_1_1_logical_device_info.html#a3b5dc703c3eb8b8be92a16ce9a566741',1,'tz::gl::vk2::LogicalDeviceInfo::features']]], + ['fence_7',['Fence',['../classtz_1_1gl_1_1vk2_1_1_fence.html',1,'tz::gl::vk2']]], + ['fenceinfo_8',['FenceInfo',['../structtz_1_1gl_1_1vk2_1_1_fence_info.html',1,'tz::gl::vk2']]], + ['field_9',['field',['../structtz_1_1gl_1_1vk2_1_1_queue_request.html#abba7d549a963a57d7733ed196dd6859b',1,'tz::gl::vk2::QueueRequest']]], + ['fifo_10',['Fifo',['../group__tz__gl__vk__presentation.html#gga8e6e925d93013e81273325bc8764577aaa0476ca4d7283b340d24c53c16270958',1,'tz::gl::vk2']]], + ['fiforelaxed_11',['FifoRelaxed',['../group__tz__gl__vk__presentation.html#gga8e6e925d93013e81273325bc8764577aa492bb3d1da50c48c7ae3a1f699f4c3ed',1,'tz::gl::vk2']]], + ['fill_12',['Fill',['../group__tz__gl__vk__graphics__pipeline__fixed.html#ggaaeda985d06849d890d7ba2902688cd01adb3e3f51c9107e26c9bccf9a188ce2ed',1,'tz::gl::vk2']]], + ['filled_13',['filled',['../classtz_1_1vector.html#a0f398914ccdf06e34a58a8b07f09374c',1,'tz::vector']]], + ['final_5flayout_14',['final_layout',['../structtz_1_1gl_1_1vk2_1_1_attachment.html#acae8a7a40a8b5dd37361a3060e1c01c6',1,'tz::gl::vk2::Attachment']]], + ['find_5fnode_15',['find_node',['../classtz_1_1transform__hierarchy.html#a8d4f93f5921acea712b42577cb0a4cba',1,'tz::transform_hierarchy']]], + ['find_5fnode_5fif_16',['find_node_if',['../classtz_1_1transform__hierarchy.html#a219b15462f4cb4e145d6fcdc3f376320',1,'tz::transform_hierarchy']]], + ['fingerprint_5finfo_5ft_17',['fingerprint_info_t',['../structtz_1_1gl_1_1device__command__pool_1_1fingerprint__info__t.html',1,'tz::gl::device_command_pool']]], + ['first_5finstance_18',['first_instance',['../structtz_1_1gl_1_1vk2_1_1_vulkan_command_1_1_draw.html#a2fdd5ea4ef43f85f57e99d5c8b0258c2',1,'tz::gl::vk2::VulkanCommand::Draw']]], + ['first_5fset_5fid_19',['first_set_id',['../structtz_1_1gl_1_1vk2_1_1_vulkan_command_1_1_bind_descriptor_sets.html#a0e83b6b02e05f5a4278be3f8476df2be',1,'tz::gl::vk2::VulkanCommand::BindDescriptorSets']]], + ['first_5fvertex_20',['first_vertex',['../structtz_1_1gl_1_1vk2_1_1_vulkan_command_1_1_draw.html#a3bc0139c63d58bcbc3fada3a6ee79453',1,'tz::gl::vk2::VulkanCommand::Draw']]], + ['fixed_20pipeline_20state_20values_21',['Fixed Pipeline State Values',['../group__tz__gl__vk__graphics__pipeline__fixed.html',1,'']]], + ['flags_22',['flags',['../structtz_1_1gl_1_1image__info.html#ad1b7fff82183a8638589b483c9638cda',1,'tz::gl::image_info::flags'],['../structtz_1_1initialise__info.html#a89af26827dda938bd57fcca7bf874cec',1,'tz::initialise_info::flags'],['../structtz_1_1gl_1_1vk2_1_1_descriptor_layout_info_1_1_binding_info.html#a06f2b7aa17d264e627442222e0906e59',1,'tz::gl::vk2::DescriptorLayoutInfo::BindingInfo::flags'],['../structtz_1_1gl_1_1vk2_1_1_command_pool_info.html#a65a1ed6987db2de397e3131ee431a7ca',1,'tz::gl::vk2::CommandPoolInfo::flags']]], + ['floor_23',['floor',['../group__tzsl__math.html#ga1c27f29cb88aa0f88b330125c402290f',1,'tz::math']]], + ['format_24',['format',['../structtz_1_1gl_1_1ogl2_1_1image__info.html#ac43acae706fbe92099ed75cdf7d4d5b6',1,'tz::gl::ogl2::image_info::format'],['../structtz_1_1gl_1_1ogl2_1_1render__buffer__info.html#adda029c134e8821bef830de0d623aa4e',1,'tz::gl::ogl2::render_buffer_info::format'],['../structtz_1_1gl_1_1vk2_1_1_vertex_input_state_1_1_attribute.html#a1d378c3169ddde3c6ebe95ce5af6e1b5',1,'tz::gl::vk2::VertexInputState::Attribute::format'],['../structtz_1_1gl_1_1vk2_1_1image__info.html#a9dd894dd0eadbbaffdde5009b277aef0',1,'tz::gl::vk2::image_info::format'],['../structtz_1_1gl_1_1vk2_1_1_attachment.html#a54ef773663f34f07254b54e709255de7',1,'tz::gl::vk2::Attachment::format'],['../structtz_1_1gl_1_1vk2_1_1_swapchain_info.html#ab0f057d31857809bce53bc0998e8e0f4',1,'tz::gl::vk2::SwapchainInfo::format'],['../structtz_1_1gl_1_1image__info.html#a7db4cf98b345a62b03ce302bca51ee67',1,'tz::gl::image_info::format']]], + ['format_5fstring_25',['format_string',['../structtz_1_1detail_1_1format__string.html',1,'tz::detail']]], + ['formatdata_26',['FormatData',['../structtz_1_1gl_1_1ogl2_1_1_format_data.html',1,'tz::gl::ogl2']]], + ['formats_27',['formats',['../group__tz__gl__ogl2__image.html',1,'Images, Samplers and Formats'],['../group__tz__gl__vk__image.html',1,'Images, Samplers and Formats']]], + ['fract_28',['fract',['../group__tzsl__math.html#gae4a7499ca85d03fd9f68e58f378227d6',1,'tz::math']]], + ['fragment_29',['fragment',['../group__tz__gl__ogl2__shader.html#gga6f74da2ab2ba8d9a9e73815fa16ac5f4a02e918fc72837d7c2689be88684dceb1',1,'tz::gl::ogl2']]], + ['fragmentedpool_30',['FragmentedPool',['../structtz_1_1gl_1_1vk2_1_1_descriptor_pool_1_1_allocation_result.html#abad85d19de3197a840dc5e69ad797c54ae95f85b8630e52cf6e5f6aa542bec654',1,'tz::gl::vk2::DescriptorPool::AllocationResult']]], + ['fragmentshader_31',['FragmentShader',['../group__tz__gl__vk__graphics__pipeline.html#ggaa581c5a329a76e48f41ca02bd263251aa90a9bb4e665932b1781da33fc2f32922',1,'tz::gl::vk2']]], + ['fragmentshaderresourcewrite_32',['FragmentShaderResourceWrite',['../group__tz__gl__vk__extension.html#gga6744c8f7d1276d6d9ae861b21c489505a70e29cc30c58871bc15535cb09d4ee87',1,'tz::gl::vk2']]], + ['framebuffer_33',['framebuffer',['../classtz_1_1gl_1_1ogl2_1_1framebuffer.html',1,'tz::gl::ogl2::framebuffer'],['../classtz_1_1gl_1_1vk2_1_1_framebuffer.html',1,'tz::gl::vk2::Framebuffer'],['../classtz_1_1gl_1_1ogl2_1_1framebuffer.html#af1250568a185e34b802fbe5cc5f86f8d',1,'tz::gl::ogl2::framebuffer::framebuffer()'],['../structtz_1_1gl_1_1vk2_1_1_vulkan_command_1_1_end_render_pass.html#ac32dec8f9c51d60004dd2844a17a3692',1,'tz::gl::vk2::VulkanCommand::EndRenderPass::framebuffer'],['../structtz_1_1gl_1_1vk2_1_1_vulkan_command_1_1_begin_render_pass.html#a0d726e5259950517b292d3a0620db647',1,'tz::gl::vk2::VulkanCommand::BeginRenderPass::framebuffer']]], + ['framebuffer_5finfo_34',['framebuffer_info',['../structtz_1_1gl_1_1ogl2_1_1framebuffer__info.html',1,'tz::gl::ogl2']]], + ['framebuffer_5ftexture_35',['framebuffer_texture',['../group__tz__gl__ogl2__framebuffer.html#ga0fa9020fa6ae934e10f13a3793ec6c46',1,'tz::gl::ogl2']]], + ['framebufferdata_36',['FramebufferData',['../structtz_1_1gl_1_1vk2_1_1_framebuffer_data.html',1,'tz::gl::vk2']]], + ['framebufferinfo_37',['FramebufferInfo',['../structtz_1_1gl_1_1vk2_1_1_framebuffer_info.html',1,'tz::gl::vk2']]], + ['framebuffers_38',['Framebuffers',['../group__tz__gl__ogl2__framebuffer.html',1,'']]], + ['from_5fbinary_5fstring_39',['from_binary_string',['../structtz_1_1version.html#a5a2056c19ee809ab7d8fffb346861544',1,'tz::version']]], + ['from_5fmany_40',['from_many',['../classtz_1_1gl_1_1buffer__resource.html#aa2d8aea7debdaf9f6dcdc92ac9c96cf0',1,'tz::gl::buffer_resource']]], + ['from_5fmemory_41',['from_memory',['../classtz_1_1io_1_1gltf.html#a90deb07299daa35f3d977c57823c6aae',1,'tz::io::gltf::from_memory()'],['../classtz_1_1gl_1_1image__resource.html#ac0f3c710c722dc14defca36b10d2397c',1,'tz::gl::image_resource::from_memory()']]], + ['from_5fone_42',['from_one',['../classtz_1_1gl_1_1buffer__resource.html#ab407ea843abea43d94853c2711b109bb',1,'tz::gl::buffer_resource']]], + ['from_5fstring_43',['from_string',['../structtz_1_1version.html#a922d87bd7d64534660e3209313992f8b',1,'tz::version']]], + ['from_5funinitialised_44',['from_uninitialised',['../classtz_1_1gl_1_1image__resource.html#abcfde01f8ab68048439810a68248f10c',1,'tz::gl::image_resource']]], + ['front_45',['front',['../classtz_1_1enum__field.html#a12e8aef51551fef43b8b6aaf28d46de5',1,'tz::enum_field::front()'],['../classtz_1_1basic__list.html#aa0d28f5edea40afa101b1a3ccddcc57c',1,'tz::basic_list::front() const'],['../classtz_1_1basic__list.html#ab6527e144764014dd2f77cb3ffbe8670',1,'tz::basic_list::front()'],['../structtz_1_1gl_1_1vk2_1_1_depth_stencil_state.html#a4208d7ae144e8c483e6166e0d71d9009',1,'tz::gl::vk2::DepthStencilState::front']]], + ['frontculling_46',['FrontCulling',['../group__tz__gl__vk__graphics__pipeline__fixed.html#ggaf55856ce9f281f90908bac12e0061e16a1292c8b012a45fb6b03a5354925777e2',1,'tz::gl::vk2']]], + ['frontend_47',['frontend',['../group__tz__gl2__graphicsapi__ogl__frontend.html',1,'OpenGL Frontend'],['../group__tz__gl2__graphicsapi__vk__frontend.html',1,'Vulkan Frontend']]], + ['fullscreen_5fcube_48',['fullscreen_cube',['../group__tzsl__mesh.html#ga8e7cfc30c9609b6b3bfe041cd39dae19',1,'tz::mesh']]], + ['fullscreen_5fquad_49',['fullscreen_quad',['../group__tzsl__mesh.html#ga58bd542614c3571580c36e49cbad8081',1,'tz::mesh']]], + ['fullscreen_5ftriangle_50',['fullscreen_triangle',['../group__tzsl__mesh.html#ga250af04d0386c860d1a2e202ca77de6c',1,'tz::mesh']]], + ['functionality_51',['Core Functionality',['../group__tz__core.html',1,'']]], + ['functions_52',['Noise Functions',['../group__tzsl__noise.html',1,'']]] +]; diff --git a/search/all_6.js b/search/all_6.js new file mode 100644 index 0000000000..723fa07b30 --- /dev/null +++ b/search/all_6.js @@ -0,0 +1,91 @@ +var searchData= +[ + ['game_5finfo_0',['game_info',['../structtz_1_1game__info.html',1,'tz::game_info'],['../structtz_1_1gl_1_1vk2_1_1_vulkan_instance_info.html#a7f4f6b78d9dc91c26ddbb71c5ac89676',1,'tz::gl::vk2::VulkanInstanceInfo::game_info'],['../structtz_1_1dbgui_1_1init__info.html#a004b821a277cfa2ea7e52a97a905b3f9',1,'tz::dbgui::init_info::game_info']]], + ['game_5fmenu_1',['game_menu',['../group__tz__dbgui.html#ga518691e82438163cf313898a842f02df',1,'tz::dbgui']]], + ['general_2',['General',['../group__tz__gl__vk__image.html#gga4ca55be3d1c101900d800a78deeb595fa0db377921f4ce762c62526131097968f',1,'tz::gl::vk2']]], + ['geometryshader_3',['GeometryShader',['../group__tz__gl__vk__graphics__pipeline.html#ggaa581c5a329a76e48f41ca02bd263251aa87fd5b66e314d52345d46590e7124805',1,'tz::gl::vk2']]], + ['get_4',['get',['../group__tz__gl__vk.html#ga6b2997a4d85a7a421f621c046553eb9e',1,'tz::gl::vk2']]], + ['get_5faccess_5',['get_access',['../classtz_1_1gl_1_1iresource.html#a054af6f7995a7faed0be74939673020f',1,'tz::gl::iresource::get_access()'],['../classtz_1_1gl_1_1resource.html#ad764c68472eddf7fee03644eaa2beb70',1,'tz::gl::resource::get_access()']]], + ['get_5fall_5fdevices_6',['get_all_devices',['../group__tz__gl__vk.html#gaa3cb0c8cac3957bc69faeed650da8e5b',1,'tz::gl::vk2']]], + ['get_5fattachment_5fviews_7',['get_attachment_views',['../classtz_1_1gl_1_1vk2_1_1_framebuffer.html#a9304c07d1bca779bc5b8863a0e41125a',1,'tz::gl::vk2::Framebuffer::get_attachment_views()'],['../classtz_1_1gl_1_1vk2_1_1_framebuffer.html#a2d5cb498b767d8c327318b3fc0994498',1,'tz::gl::vk2::Framebuffer::get_attachment_views() const']]], + ['get_5fbindings_8',['get_bindings',['../classtz_1_1gl_1_1vk2_1_1_descriptor_layout.html#a553861e3a7facb291f5de6a2c518aea1',1,'tz::gl::vk2::DescriptorLayout']]], + ['get_5fbindless_5fhandle_9',['get_bindless_handle',['../classtz_1_1gl_1_1ogl2_1_1image.html#a82ae5c9ca2e7230cd4a6eb68bed34de0',1,'tz::gl::ogl2::image']]], + ['get_5fchars_5ftyped_10',['get_chars_typed',['../group__tz__wsi__keyboard.html#ga68b8d4b1bb580c2d72d35901e31e9bb5',1,'tz::wsi']]], + ['get_5fcommand_5fbuffer_11',['get_command_buffer',['../classtz_1_1gl_1_1vk2_1_1_command_buffer_recording.html#a6678f3d4ee65c534f273547942dbc208',1,'tz::gl::vk2::CommandBufferRecording']]], + ['get_5fcomponent_12',['get_component',['../classtz_1_1gl_1_1renderer__ogl.html#a437b2e68e0af94193d6310191fb3e770',1,'tz::gl::renderer_ogl::get_component(resource_handle handle)'],['../classtz_1_1gl_1_1renderer__ogl.html#a4536f9408510194599a41fe7d983cfad',1,'tz::gl::renderer_ogl::get_component(resource_handle handle) const'],['../classtz_1_1gl_1_1_resource_storage.html#af7948e8b4db9633cda6fd2e48ed4f1f6',1,'tz::gl::ResourceStorage::get_component(resource_handle handle) const'],['../classtz_1_1gl_1_1_resource_storage.html#ae859e1b772545ac79cf1541c651823c8',1,'tz::gl::ResourceStorage::get_component(resource_handle handle)']]], + ['get_5fdevice_13',['get_device',['../classtz_1_1gl_1_1vk2_1_1_descriptor_layout_builder.html#ae53402ebbe109aeee79e1a9f7272244f',1,'tz::gl::vk2::DescriptorLayoutBuilder::get_device()'],['../classtz_1_1gl_1_1vk2_1_1_buffer.html#ad3210893be0901d09f53d94648362b9b',1,'tz::gl::vk2::Buffer::get_device()'],['../classtz_1_1gl_1_1vk2_1_1_command_buffer.html#a123b44fb90533da0c9285a7dd1f7fe52',1,'tz::gl::vk2::CommandBuffer::get_device()'],['../classtz_1_1gl_1_1vk2_1_1_descriptor_pool.html#ac2721cb1eeb043e531ceeeceadc318f9',1,'tz::gl::vk2::DescriptorPool::get_device()'],['../group__tz__gl2.html#gad7664ebf0e7dba60c61f1f711a60863b',1,'tz::gl::get_device()'],['../classtz_1_1gl_1_1vk2_1_1_framebuffer.html#a5ac49b6a1f5126e55e2d44e86733aea2',1,'tz::gl::vk2::Framebuffer::get_device()'],['../classtz_1_1gl_1_1vk2_1_1_image.html#a049cd08ea548cf18a48359df5439f790',1,'tz::gl::vk2::Image::get_device()'],['../classtz_1_1gl_1_1vk2_1_1_render_pass_builder.html#a0c8a6e7ff8cf14acd4121ed10008f32e',1,'tz::gl::vk2::RenderPassBuilder::get_device()'],['../classtz_1_1gl_1_1vk2_1_1_sampler.html#a2f50c7294da0e3af598c0e3eea7e002a',1,'tz::gl::vk2::Sampler::get_device()']]], + ['get_5fdimensions_14',['get_dimensions',['../classtz_1_1gl_1_1ogl2_1_1image.html#a34bdb1917898f67e8c8f919febe9dbd1',1,'tz::gl::ogl2::image::get_dimensions()'],['../classtz_1_1gl_1_1vk2_1_1_framebuffer.html#ae9c90abe38622c91b95fdb8ce73670d7',1,'tz::gl::vk2::Framebuffer::get_dimensions()'],['../classtz_1_1gl_1_1vk2_1_1_image.html#ab86308630123a604d436f4d25f87066e',1,'tz::gl::vk2::Image::get_dimensions()'],['../classtz_1_1gl_1_1vk2_1_1_swapchain.html#aa4bc2e3f56802d15f6de066d24ee3e6d',1,'tz::gl::vk2::Swapchain::get_dimensions()'],['../classtz_1_1grid__view.html#aff54dec99ee4b951d188216597bf6ccc',1,'tz::grid_view::get_dimensions()'],['../classtz_1_1gl_1_1ogl2_1_1framebuffer.html#a46f104a52a55fedc7f4ca7653ac54cb4',1,'tz::gl::ogl2::framebuffer::get_dimensions()']]], + ['get_5fextensions_15',['get_extensions',['../classtz_1_1gl_1_1vk2_1_1_logical_device.html#aa8e581e0199c5ed305291e569c3196be',1,'tz::gl::vk2::LogicalDevice']]], + ['get_5ffeatures_16',['get_features',['../classtz_1_1gl_1_1vk2_1_1_logical_device.html#aa8d935b7f0b3783f17c3093cce7b86e7',1,'tz::gl::vk2::LogicalDevice']]], + ['get_5fflags_17',['get_flags',['../classtz_1_1gl_1_1resource.html#a55bd3e603dbf280dcdca33f614e4bd6d',1,'tz::gl::resource::get_flags()'],['../classtz_1_1gl_1_1iresource.html#a3b1b6a30f2554e43d806fb5d5210d9be',1,'tz::gl::iresource::get_flags()']]], + ['get_5fformat_18',['get_format',['../classtz_1_1gl_1_1vk2_1_1_image.html#ae297678ee7676e19c89767fc8de77c1f',1,'tz::gl::vk2::Image::get_format()'],['../classtz_1_1gl_1_1ogl2_1_1image.html#a26ac283997ded3fa47999bfab0fcc66b',1,'tz::gl::ogl2::image::get_format()']]], + ['get_5fglobal_5ftransform_19',['get_global_transform',['../classtz_1_1transform__hierarchy.html#a10789865b93b68da39ee793d470b88e7',1,'tz::transform_hierarchy']]], + ['get_5fhardware_20',['get_hardware',['../classtz_1_1gl_1_1vk2_1_1_logical_device.html#acda5876065dd357359b3528553dac464',1,'tz::gl::vk2::LogicalDevice']]], + ['get_5fimage_5fformat_21',['get_image_format',['../classtz_1_1gl_1_1vk2_1_1_swapchain.html#a01d41578f33880b720b3b7217db994ea',1,'tz::gl::vk2::Swapchain']]], + ['get_5fimage_5fviews_22',['get_image_views',['../classtz_1_1gl_1_1vk2_1_1_swapchain.html#a9a069aadd6476ab2b89ab07b32ca929a',1,'tz::gl::vk2::Swapchain::get_image_views() const'],['../classtz_1_1gl_1_1vk2_1_1_swapchain.html#adbd9b4c388fd8100536a66ad2d1e0b3d',1,'tz::gl::vk2::Swapchain::get_image_views()']]], + ['get_5fimages_23',['get_images',['../classtz_1_1gl_1_1vk2_1_1_swapchain.html#a96c1b6e9908255c892041e61f4ce2f66',1,'tz::gl::vk2::Swapchain::get_images()'],['../classtz_1_1gl_1_1vk2_1_1_swapchain.html#afe252ffdbcd30be51991b2cab05c8833',1,'tz::gl::vk2::Swapchain::get_images() const']]], + ['get_5finfo_24',['get_info',['../classtz_1_1gl_1_1vk2_1_1_descriptor_layout_builder.html#a412428cf619428455121135e27094117',1,'tz::gl::vk2::DescriptorLayoutBuilder::get_info()'],['../classtz_1_1gl_1_1vk2_1_1_physical_device.html#a137b5674d71035b2e60524cb15aefbe5',1,'tz::gl::vk2::PhysicalDevice::get_info() const']]], + ['get_5finstance_25',['get_instance',['../classtz_1_1gl_1_1vk2_1_1_physical_device.html#aa07d19e3e31cfd8d5d40ed83d01b4dcd',1,'tz::gl::vk2::PhysicalDevice']]], + ['get_5fkey_5fname_26',['get_key_name',['../group__tz__wsi__keyboard.html#ga71b029972073b41a5e63b852262af5be',1,'tz::wsi']]], + ['get_5flayout_27',['get_layout',['../classtz_1_1gl_1_1vk2_1_1_descriptor_set.html#a8655f41149275ec1624eb38740b55086',1,'tz::gl::vk2::DescriptorSet::get_layout()'],['../classtz_1_1gl_1_1vk2_1_1_image.html#a245936d112b069e1e36da99391af5476',1,'tz::gl::vk2::Image::get_layout()']]], + ['get_5fmandatory_5fcolour_5fattachment_5fformats_28',['get_mandatory_colour_attachment_formats',['../namespacetz_1_1gl_1_1vk2_1_1format__traits.html#a9c8094e1421c45565fa9d5cf504b4b6a',1,'tz::gl::vk2::format_traits']]], + ['get_5fmandatory_5fdepth_5fattachment_5fformats_29',['get_mandatory_depth_attachment_formats',['../namespacetz_1_1gl_1_1vk2_1_1format__traits.html#a1cbe6840d7b592f0f30cf98b400f39b8',1,'tz::gl::vk2::format_traits']]], + ['get_5fmandatory_5fpresent_5fmodes_30',['get_mandatory_present_modes',['../namespacetz_1_1gl_1_1vk2_1_1present__traits.html#a8adc3d9ac1c32a9741e53297195174f0',1,'tz::gl::vk2::present_traits']]], + ['get_5fmandatory_5fsampled_5fimage_5fformats_31',['get_mandatory_sampled_image_formats',['../namespacetz_1_1gl_1_1vk2_1_1format__traits.html#abe8f1c1644982b2e797f9445c5f62636',1,'tz::gl::vk2::format_traits']]], + ['get_5fmonitors_32',['get_monitors',['../group__tz__wsi__monitor.html#gaf49b534da37be19431f74183eacfe56a',1,'tz::wsi']]], + ['get_5fnode_33',['get_node',['../classtz_1_1transform__hierarchy.html#a35e63b9956f057fd109840e5f436499a',1,'tz::transform_hierarchy']]], + ['get_5foptions_34',['get_options',['../classtz_1_1gl_1_1renderer__info.html#a490e84a63a8528f125f1517826881f0e',1,'tz::gl::renderer_info::get_options()'],['../classtz_1_1gl_1_1renderer.html#a8912cf4a9b5359b55b3a8728f7623b19',1,'tz::gl::renderer::get_options()'],['../classtz_1_1gl_1_1renderer__ogl.html#a6ac9d207a073e051fe979adf47a1c7cd',1,'tz::gl::renderer_ogl::get_options()']]], + ['get_5foutput_35',['get_output',['../classtz_1_1gl_1_1renderer__info.html#a977778c921d2c7dc53177af58f722f91',1,'tz::gl::renderer_info::get_output()'],['../classtz_1_1gl_1_1renderer.html#a99aec0f5f60ec5bd7ba09ab787892158',1,'tz::gl::renderer::get_output() const'],['../classtz_1_1gl_1_1renderer.html#aab07a9b72cfc7ab37421755d85c90113',1,'tz::gl::renderer::get_output()']]], + ['get_5fpass_36',['get_pass',['../classtz_1_1gl_1_1vk2_1_1_framebuffer.html#ab59610c1f9b168a6f133232a0e6d98b9',1,'tz::gl::vk2::Framebuffer']]], + ['get_5fpipeline_5fcontext_37',['get_pipeline_context',['../classtz_1_1gl_1_1vk2_1_1_subpass_builder.html#af18ad5c9a271c11f597ea08dcfd615d8',1,'tz::gl::vk2::SubpassBuilder']]], + ['get_5fpresent_5fmode_38',['get_present_mode',['../classtz_1_1gl_1_1vk2_1_1_swapchain.html#a4b1fdde7f90b64fb7f9f094fa08dac05',1,'tz::gl::vk2::Swapchain']]], + ['get_5frenderer_39',['get_renderer',['../classtz_1_1gl_1_1device.html#a69c08e8c47168e75301ea9a1e3154a69',1,'tz::gl::device::get_renderer(tz::gl::renderer_handle rh) const'],['../classtz_1_1gl_1_1device.html#aadf1c59383bf22d41ad88f866f59df28',1,'tz::gl::device::get_renderer(tz::gl::renderer_handle rh)']]], + ['get_5fresidency_40',['get_residency',['../classtz_1_1gl_1_1ogl2_1_1buffer.html#a9ef0c8930de36d6b11d1ec5fe820e15e',1,'tz::gl::ogl2::buffer::get_residency()'],['../classtz_1_1gl_1_1vk2_1_1_buffer.html#a410043be11f04c500704a8fb0956d5cc',1,'tz::gl::vk2::Buffer::get_residency()']]], + ['get_5fresource_41',['get_resource',['../classtz_1_1gl_1_1renderer__info.html#ad50e1153d25e16c91a5dcb6f4201ec51',1,'tz::gl::renderer_info::get_resource()'],['../classtz_1_1gl_1_1renderer.html#a5c3320f862a5e3fd2de7482698a6038b',1,'tz::gl::renderer::get_resource(tz::gl::resource_handle rh) const'],['../classtz_1_1gl_1_1renderer.html#ae3ecf1274073c37779559badd1872fd9',1,'tz::gl::renderer::get_resource(tz::gl::resource_handle rh)'],['../classtz_1_1gl_1_1renderer__ogl.html#a75bf5e8fb1a40adbf0569c59720fc47f',1,'tz::gl::renderer_ogl::get_resource(resource_handle handle) const'],['../classtz_1_1gl_1_1renderer__ogl.html#a983661fb15999c0b43ff72f449d6bf48',1,'tz::gl::renderer_ogl::get_resource(resource_handle handle)']]], + ['get_5fresources_42',['get_resources',['../classtz_1_1gl_1_1renderer__info.html#aad33d729130cc8619cc736850ea91525',1,'tz::gl::renderer_info']]], + ['get_5froot_5fnode_5fids_43',['get_root_node_ids',['../classtz_1_1transform__hierarchy.html#a51f167da906d1903cf6265344d14c3b9',1,'tz::transform_hierarchy']]], + ['get_5fsampler_44',['get_sampler',['../classtz_1_1gl_1_1ogl2_1_1image.html#a96efa74dba6d1ba2af2a5125f16a05c3',1,'tz::gl::ogl2::image']]], + ['get_5fset_45',['get_set',['../classtz_1_1gl_1_1vk2_1_1_descriptor_set_1_1_edit_request.html#a281052e52ef1343f6769bce6b2159420',1,'tz::gl::vk2::DescriptorSet::EditRequest']]], + ['get_5fset_5fedits_46',['get_set_edits',['../classtz_1_1gl_1_1vk2_1_1_descriptor_pool_1_1_update_request.html#ae70b5908cb95506dd0af648ee6c34501',1,'tz::gl::vk2::DescriptorPool::UpdateRequest']]], + ['get_5fstate_47',['get_state',['../classtz_1_1gl_1_1renderer.html#a964d9415ecb24b8c3d8f99542acc6ffb',1,'tz::gl::renderer::get_state()'],['../group__tz__lua__cpp.html#ga9a602c5f2589ea1c21846afbda7bbe29',1,'tz::lua::get_state()'],['../classtz_1_1gl_1_1renderer__ogl.html#aac4e76798fc197ebfa7790607da7d0af',1,'tz::gl::renderer_ogl::get_state()']]], + ['get_5fsupported_5fextensions_48',['get_supported_extensions',['../classtz_1_1gl_1_1vk2_1_1_physical_device.html#a9bbd0557b43b2c2605e36c0e5a70a59c',1,'tz::gl::vk2::PhysicalDevice']]], + ['get_5fsupported_5ffeatures_49',['get_supported_features',['../classtz_1_1gl_1_1vk2_1_1_physical_device.html#af8c939fb4265bf1c015f987d9c4c0380',1,'tz::gl::vk2::PhysicalDevice']]], + ['get_5fsupported_5fsurface_5fformats_50',['get_supported_surface_formats',['../classtz_1_1gl_1_1vk2_1_1_physical_device.html#a82c0bb8a3ae825acf9fa4894fe8bd326',1,'tz::gl::vk2::PhysicalDevice']]], + ['get_5fsupported_5fsurface_5fpresent_5fmodes_51',['get_supported_surface_present_modes',['../classtz_1_1gl_1_1vk2_1_1_physical_device.html#a3136ce2d7b7d952609e2ea9404f26335',1,'tz::gl::vk2::PhysicalDevice']]], + ['get_5ftarget_52',['get_target',['../classtz_1_1gl_1_1ogl2_1_1buffer.html#a88865542c959df85656e7b449468c8c1',1,'tz::gl::ogl2::buffer']]], + ['get_5ftype_53',['get_type',['../classtz_1_1gl_1_1resource.html#a1ce1477776828a3bec4e957d2c908a18',1,'tz::gl::resource::get_type()'],['../classtz_1_1gl_1_1vk2_1_1_shader_module.html#a7e6c83e267b4bd1c7bc502211aee08d5',1,'tz::gl::vk2::ShaderModule::get_type()'],['../classtz_1_1gl_1_1iresource.html#a1511ed9713102a7b141271c75b1b4633',1,'tz::gl::iresource::get_type()']]], + ['get_5fusage_54',['get_usage',['../classtz_1_1gl_1_1vk2_1_1_buffer.html#ac84676ea5d9d5f459cb9c385a1032729',1,'tz::gl::vk2::Buffer']]], + ['get_5fvalue_55',['get_value',['../classtz_1_1gl_1_1vk2_1_1_timeline_semaphore.html#a31afde1d634e5b7e5e2ae3292e9ace1b',1,'tz::gl::vk2::TimelineSemaphore']]], + ['get_5fversion_56',['get_version',['../group__tz__core.html#gabed61701bea0790680354d9793946583',1,'tz']]], + ['get_5fwindow_57',['get_window',['../group__tz__wsi__window.html#ga9e50b4d537b0154de05ba6de39042b2b',1,'tz::wsi']]], + ['get_5fwindow_5fformat_58',['get_window_format',['../classtz_1_1gl_1_1device.html#af3bb467ad3c470d6f4352b4ff1a63607',1,'tz::gl::device']]], + ['gltf_59',['gltf',['../classtz_1_1io_1_1gltf.html',1,'tz::io']]], + ['gltf_5faccessor_60',['gltf_accessor',['../structtz_1_1io_1_1gltf__accessor.html',1,'tz::io']]], + ['gltf_5fanimation_61',['gltf_animation',['../structtz_1_1io_1_1gltf__animation.html',1,'tz::io']]], + ['gltf_5fanimation_5fchannel_62',['gltf_animation_channel',['../structtz_1_1io_1_1gltf__animation__channel.html',1,'tz::io']]], + ['gltf_5fanimation_5fchannel_5ftarget_63',['gltf_animation_channel_target',['../structtz_1_1io_1_1gltf__animation__channel__target.html',1,'tz::io']]], + ['gltf_5fanimation_5fsampler_64',['gltf_animation_sampler',['../structtz_1_1io_1_1gltf__animation__sampler.html',1,'tz::io']]], + ['gltf_5fbuffer_65',['gltf_buffer',['../structtz_1_1io_1_1gltf__buffer.html',1,'tz::io']]], + ['gltf_5fbuffer_5fview_66',['gltf_buffer_view',['../structtz_1_1io_1_1gltf__buffer__view.html',1,'tz::io']]], + ['gltf_5fchunk_5fdata_67',['gltf_chunk_data',['../structtz_1_1io_1_1gltf__chunk__data.html',1,'tz::io']]], + ['gltf_5fheader_68',['gltf_header',['../structtz_1_1io_1_1gltf__header.html',1,'tz::io']]], + ['gltf_5fimage_69',['gltf_image',['../structtz_1_1io_1_1gltf__image.html',1,'tz::io']]], + ['gltf_5fmaterial_70',['gltf_material',['../structtz_1_1io_1_1gltf__material.html',1,'tz::io']]], + ['gltf_5fmesh_71',['gltf_mesh',['../structtz_1_1io_1_1gltf__mesh.html',1,'tz::io']]], + ['gltf_5fnode_72',['gltf_node',['../structtz_1_1io_1_1gltf__node.html',1,'tz::io']]], + ['gltf_5fscene_73',['gltf_scene',['../structtz_1_1io_1_1gltf__scene.html',1,'tz::io']]], + ['gltf_5fskin_74',['gltf_skin',['../structtz_1_1io_1_1gltf__skin.html',1,'tz::io']]], + ['gltf_5fsubmesh_5fdata_75',['gltf_submesh_data',['../structtz_1_1io_1_1gltf__submesh__data.html',1,'tz::io']]], + ['gltf_5fsubmesh_5ftexture_5fdata_76',['gltf_submesh_texture_data',['../structtz_1_1io_1_1gltf__submesh__texture__data.html',1,'tz::io']]], + ['gltf_5fvertex_5fdata_77',['gltf_vertex_data',['../structtz_1_1io_1_1gltf__vertex__data.html',1,'tz::io']]], + ['gold_78',['gold',['../group__tzsl__noise.html#gaf2147086d053b3049440a65a705e3841',1,'tz::noise']]], + ['graphics_79',['graphics',['../structtz_1_1gl_1_1render__state.html#a48bc0d47e4ce6f6bc9d3889d0045b2fc',1,'tz::gl::render_state::graphics'],['../structtz_1_1gl_1_1render__state_1_1_graphics.html',1,'tz::gl::render_state::Graphics']]], + ['graphics_20library_80',['Graphics Library',['../group__tz__gl2.html',1,'']]], + ['graphics_20pipeline_81',['Graphics Pipeline',['../group__tz__gl__vk__graphics__pipeline.html',1,'']]], + ['graphicspipeline_82',['GraphicsPipeline',['../classtz_1_1gl_1_1vk2_1_1_graphics_pipeline.html',1,'tz::gl::vk2']]], + ['graphicspipelineinfo_83',['GraphicsPipelineInfo',['../structtz_1_1gl_1_1vk2_1_1_graphics_pipeline_info.html',1,'tz::gl::vk2']]], + ['greaterthan_84',['GreaterThan',['../group__tz__gl__vk__graphics__pipeline__fixed.html#gga93e2cb3a5e44484b0548e28496de69c7af6d044fe1f01fb0c956b80099e2a3072',1,'tz::gl::vk2']]], + ['greaterthanorequal_85',['GreaterThanOrEqual',['../group__tz__gl__vk__graphics__pipeline__fixed.html#gga93e2cb3a5e44484b0548e28496de69c7a25c44812e9d75f685d2a0b815dea1ebe',1,'tz::gl::vk2']]], + ['grid_5fview_86',['grid_view',['../classtz_1_1grid__view.html#ae011be6078a7b9b6a35ec4de5367670c',1,'tz::grid_view::grid_view(std::span< T > data, unsigned int length)'],['../classtz_1_1grid__view.html#a55938dc4566d1435fd2362e3bef7a4ae',1,'tz::grid_view::grid_view(std::span< T > data, tz::vec2ui dimensions)'],['../classtz_1_1grid__view.html',1,'tz::grid_view< T, N >']]], + ['guide_87',['Maintainer Guide',['../group__tz__gl2__graphicsapi.html',1,'']]] +]; diff --git a/search/all_7.js b/search/all_7.js new file mode 100644 index 0000000000..be7c4e004d --- /dev/null +++ b/search/all_7.js @@ -0,0 +1,21 @@ +var searchData= +[ + ['handle_0',['handle',['../classtz_1_1handle.html',1,'tz']]], + ['handle_3c_20detail_3a_3ajob_5fhandle_5ftag_20_3e_1',['handle< detail::job_handle_tag >',['../classtz_1_1handle.html',1,'tz']]], + ['handle_3c_20detail_3a_3arenderer_5ftag_20_3e_2',['handle< detail::renderer_tag >',['../classtz_1_1handle.html',1,'tz']]], + ['handle_3c_20detail_3a_3atexture_5ftag_5ft_20_3e_3',['handle< detail::texture_tag_t >',['../classtz_1_1handle.html',1,'tz']]], + ['handle_3c_20iresource_20_3e_4',['handle< iresource >',['../classtz_1_1handle.html',1,'tz']]], + ['handle_3c_20mesh_5ft_20_3e_5',['handle< mesh_t >',['../classtz_1_1handle.html',1,'tz']]], + ['handle_3c_20object_5ftag_5ft_20_3e_6',['handle< object_tag_t >',['../classtz_1_1handle.html',1,'tz']]], + ['handle_3c_20tz_3a_3aio_3a_3agltf_20_3e_7',['handle< tz::io::gltf >',['../classtz_1_1handle.html',1,'tz']]], + ['has_5fdepth_5fattachment_8',['has_depth_attachment',['../classtz_1_1gl_1_1ogl2_1_1framebuffer.html#a9bffd7e6b5321dbeba5ff1055b5f47f2',1,'tz::gl::ogl2::framebuffer']]], + ['has_5fever_5frecorded_9',['has_ever_recorded',['../classtz_1_1gl_1_1vk2_1_1_command_buffer.html#af1184d8a0d83461bf90fc04dcd62d3bb',1,'tz::gl::vk2::CommandBuffer']]], + ['has_5fvalid_5fdevice_10',['has_valid_device',['../structtz_1_1gl_1_1vk2_1_1_descriptor_layout_info.html#aedc42a2278d1afcd8b542fa1ce2ade0c',1,'tz::gl::vk2::DescriptorLayoutInfo::has_valid_device()'],['../structtz_1_1gl_1_1vk2_1_1_descriptor_pool_info.html#a51692a2e9f8a598c7ee5d90b84ddd1ea',1,'tz::gl::vk2::DescriptorPoolInfo::has_valid_device()'],['../structtz_1_1gl_1_1vk2_1_1_render_pass_info.html#a7ccf96ec76452a363bc1d490754d5ba0',1,'tz::gl::vk2::RenderPassInfo::has_valid_device()']]], + ['has_5fwindow_11',['has_window',['../group__tz__wsi__window.html#ga17b7e39ac40d1f9b2c39c6b536049442',1,'tz::wsi']]], + ['hash_3c_20tz_3a_3aquat_20_3e_12',['hash< tz::quat >',['../structstd_1_1hash_3_01tz_1_1quat_01_4.html',1,'std']]], + ['hash_3c_20tz_3a_3atrs_20_3e_13',['hash< tz::trs >',['../structstd_1_1hash_3_01tz_1_1trs_01_4.html',1,'std']]], + ['home_14',['Home',['../index.html',1,'']]], + ['hostread_15',['HostRead',['../group__tz__gl__vk__graphics__pipeline__render__pass.html#ggaa5dd0142a36cd59d14dff54eed67c3dfaa43bd7aae3f6e001a2ee1490421f8d90',1,'tz::gl::vk2']]], + ['hostwrite_16',['HostWrite',['../group__tz__gl__vk__graphics__pipeline__render__pass.html#ggaa5dd0142a36cd59d14dff54eed67c3dfa509b9f909831ef70e6c1ec59a3b340e9',1,'tz::gl::vk2']]], + ['hours_17',['hours',['../classtz_1_1duration.html#a9abef28fbe6122cce28c0948f606e549',1,'tz::duration']]] +]; diff --git a/search/all_8.js b/search/all_8.js new file mode 100644 index 0000000000..f1c363aaa9 --- /dev/null +++ b/search/all_8.js @@ -0,0 +1,86 @@ +var searchData= +[ + ['i_5fjob_5fsystem_0',['i_job_system',['../classtz_1_1i__job__system.html',1,'tz']]], + ['icomponent_1',['icomponent',['../classtz_1_1gl_1_1icomponent.html',1,'tz::gl']]], + ['identity_2',['identity',['../classtz_1_1matrix.html#ac3c2819f55748e942c0b31473befba0f',1,'tz::matrix']]], + ['image_3',['image',['../group__tz__gl2__res.html#gga4a7818551bb2ef3d04edb95ec731d041a78805a221a988e79ef3f42d7c5bfd418',1,'imagetz::gl'],['../classtz_1_1gl_1_1ogl2_1_1image.html#ac20bf3b1847956d4b3b56160e3c0fa8d',1,'tz::gl::ogl2::image::image()'],['../structtz_1_1gl_1_1vk2_1_1_vulkan_command_1_1_transition_image_layout.html#a1e8990d656299ed2c114569299dccc2c',1,'tz::gl::vk2::VulkanCommand::TransitionImageLayout::image'],['../classtz_1_1gl_1_1vk2_1_1_image.html#a9749cb054c3afbc18d56331793c7c247',1,'tz::gl::vk2::Image::Image()'],['../classtz_1_1gl_1_1ogl2_1_1image.html',1,'tz::gl::ogl2::image'],['../classtz_1_1gl_1_1vk2_1_1_image.html',1,'tz::gl::vk2::Image'],['../structtz_1_1io_1_1image.html',1,'tz::io::image']]], + ['image_5faspects_4',['image_aspects',['../structtz_1_1gl_1_1vk2_1_1_vulkan_command_1_1_image_copy_image.html#a0e407b294c7e6ee5ef34c9cc7ee4aa13',1,'tz::gl::vk2::VulkanCommand::ImageCopyImage::image_aspects'],['../structtz_1_1gl_1_1vk2_1_1_vulkan_command_1_1_buffer_copy_image.html#a6e202dd142f2048d57785500b0764373',1,'tz::gl::vk2::VulkanCommand::BufferCopyImage::image_aspects'],['../structtz_1_1gl_1_1vk2_1_1_vulkan_command_1_1_transition_image_layout.html#a222df56b11ad097bb6f2db067220b636',1,'tz::gl::vk2::VulkanCommand::TransitionImageLayout::image_aspects']]], + ['image_5fcomponent_5fogl_5',['image_component_ogl',['../classtz_1_1gl_1_1image__component__ogl.html',1,'tz::gl']]], + ['image_5fcomponent_5fvulkan_6',['image_component_vulkan',['../classtz_1_1gl_1_1image__component__vulkan.html',1,'tz::gl']]], + ['image_5fcopy_5fimage_7',['image_copy_image',['../classtz_1_1gl_1_1vk2_1_1_command_buffer_recording.html#a25b7a8e42401dd2af896c3c9459e112e',1,'tz::gl::vk2::CommandBufferRecording']]], + ['image_5ffilter_5flinear_8',['image_filter_linear',['../group__tz__gl2__res.html#ggaacaeec69fc5b83e204af317250a47eb8a8a9b1b3e43c4113ad451ec193bd68017',1,'tz::gl']]], + ['image_5ffilter_5fnearest_9',['image_filter_nearest',['../group__tz__gl2__res.html#ggaacaeec69fc5b83e204af317250a47eb8ad63423e4b6b9917dff5b8aa8fe18d037',1,'tz::gl']]], + ['image_5fformat_10',['image_format',['../group__tz__gl2.html#ga79b99b79311ee4f6dd10a6dfada3a235',1,'tz::gl::image_format'],['../group__tz__gl__vk__image.html#gaf7d399489dcebca1c95d5852c8d7ec6e',1,'tz::gl::vk2::image_format']]], + ['image_5fhandle_11',['image_handle',['../structtz_1_1gl_1_1renderer__edit_1_1image__resize.html#aa8671b845a680750c4ba6f65a5baca78',1,'tz::gl::renderer_edit::image_resize']]], + ['image_5findex_12',['image_index',['../structtz_1_1gl_1_1vk2_1_1_swapchain_image_info.html#adf625a0862f94f5073b0615b7a069361',1,'tz::gl::vk2::SwapchainImageInfo']]], + ['image_5finfo_13',['image_info',['../structtz_1_1gl_1_1image__info.html',1,'tz::gl::image_info'],['../structtz_1_1gl_1_1vk2_1_1image__info.html',1,'tz::gl::vk2::image_info'],['../structtz_1_1gl_1_1ogl2_1_1image__info.html',1,'tz::gl::ogl2::image_info']]], + ['image_5fmip_5flinear_14',['image_mip_linear',['../group__tz__gl2__res.html#ggaacaeec69fc5b83e204af317250a47eb8ae25261ba757fcd9064544e84356773b8',1,'tz::gl']]], + ['image_5fmip_5fnearest_15',['image_mip_nearest',['../group__tz__gl2__res.html#ggaacaeec69fc5b83e204af317250a47eb8a69dc2a032867f1fbbdbe7902a7a9c318',1,'tz::gl']]], + ['image_5foutput_16',['image_output',['../classtz_1_1gl_1_1image__output.html',1,'tz::gl']]], + ['image_5foutput_5finfo_17',['image_output_info',['../structtz_1_1gl_1_1image__output__info.html',1,'tz::gl']]], + ['image_5fresize_18',['image_resize',['../classtz_1_1gl_1_1_renderer_edit_builder.html#ae26ce64c12ecca5c355f85869e666ded',1,'tz::gl::RendererEditBuilder::image_resize()'],['../structtz_1_1gl_1_1renderer__edit_1_1image__resize.html',1,'tz::gl::renderer_edit::image_resize']]], + ['image_5fresource_19',['image_resource',['../classtz_1_1gl_1_1image__resource.html',1,'tz::gl']]], + ['image_5ftiling_20',['image_tiling',['../structtz_1_1gl_1_1vk2_1_1image__info.html#a3ff1e5d047eaaacc299e3327b9cd9a91',1,'tz::gl::vk2::image_info']]], + ['image_5fview_21',['image_view',['../structtz_1_1gl_1_1vk2_1_1_descriptor_set_1_1_write_1_1_image_write_info.html#a3b747e9212ea29c23972219815b4e0e2',1,'tz::gl::vk2::DescriptorSet::Write::ImageWriteInfo']]], + ['image_5fwrap_5fclamp_5fedge_22',['image_wrap_clamp_edge',['../group__tz__gl2__res.html#ggaacaeec69fc5b83e204af317250a47eb8abd6818f6b1e5e41a1f1169b95f55b328',1,'tz::gl']]], + ['image_5fwrap_5fmirrored_5frepeat_23',['image_wrap_mirrored_repeat',['../group__tz__gl2__res.html#ggaacaeec69fc5b83e204af317250a47eb8a3f3f8f65235766b00d473480e8eecaa7',1,'tz::gl']]], + ['image_5fwrap_5frepeat_24',['image_wrap_repeat',['../group__tz__gl2__res.html#ggaacaeec69fc5b83e204af317250a47eb8a51625ecb1d2582b8ba7de2809f6a0de6',1,'tz::gl']]], + ['imageacquisition_25',['ImageAcquisition',['../structtz_1_1gl_1_1vk2_1_1_swapchain_1_1_image_acquisition.html',1,'tz::gl::vk2::Swapchain']]], + ['imageacquisitionresult_26',['ImageAcquisitionResult',['../structtz_1_1gl_1_1vk2_1_1_swapchain_1_1_image_acquisition_result.html',1,'tz::gl::vk2::Swapchain']]], + ['imageaspectflag_27',['ImageAspectFlag',['../group__tz__gl__vk__image.html#ga93db24e9eb1cffe51979bd8a141ddc77',1,'tz::gl::vk2']]], + ['imagecopyimage_28',['ImageCopyImage',['../structtz_1_1gl_1_1vk2_1_1_vulkan_command_1_1_image_copy_image.html',1,'tz::gl::vk2::VulkanCommand']]], + ['imagelayout_29',['ImageLayout',['../group__tz__gl__vk__image.html#ga4ca55be3d1c101900d800a78deeb595f',1,'tz::gl::vk2']]], + ['images_20samplers_20and_20formats_30',['images samplers and formats',['../group__tz__gl__vk__image.html',1,'Images, Samplers and Formats'],['../group__tz__gl__ogl2__image.html',1,'Images, Samplers and Formats']]], + ['imagetiling_31',['ImageTiling',['../group__tz__gl__vk__image.html#ga41ec6a06ba8bf8e03f80cf81eb99b46a',1,'tz::gl::vk2']]], + ['imageusage_32',['ImageUsage',['../group__tz__gl__vk__image.html#ga6ecb2d248a682aac08d93f4a7078161e',1,'tz::gl::vk2']]], + ['imageview_33',['ImageView',['../classtz_1_1gl_1_1vk2_1_1_image_view.html',1,'tz::gl::vk2']]], + ['imageviewinfo_34',['ImageViewInfo',['../structtz_1_1gl_1_1vk2_1_1_image_view_info.html',1,'tz::gl::vk2']]], + ['imagewriteinfo_35',['ImageWriteInfo',['../structtz_1_1gl_1_1vk2_1_1_descriptor_set_1_1_write_1_1_image_write_info.html',1,'tz::gl::vk2::DescriptorSet::Write']]], + ['imguitabtz_36',['ImGuiTabTZ',['../structtz_1_1dbgui_1_1_im_gui_tab_t_z.html',1,'tz::dbgui']]], + ['imguivertex_37',['ImGuiVertex',['../struct_im_gui_vertex.html',1,'']]], + ['immediate_38',['Immediate',['../group__tz__gl__vk__presentation.html#gga8e6e925d93013e81273325bc8764577aa43f6615bbb2c40a5306ff804094420b1',1,'tz::gl::vk2']]], + ['implementation_39',['renderer Implementation',['../group__tz__gl2__graphicsapi__ogl__frontend__renderer.html',1,'']]], + ['index_40',['index',['../group__tz__gl__ogl2__buffers.html#gga2d4cfcc22205d2276ef7347cf6e1c1eda6a992d5529f459a44fee58c733255e86',1,'tz::gl::ogl2']]], + ['index_5fbuffer_41',['index_buffer',['../structtz_1_1gl_1_1render__state_1_1_graphics.html#a64ef20d768cadd103a1d45e814683008',1,'tz::gl::render_state::Graphics::index_buffer'],['../group__tz__gl2__res.html#ggaacaeec69fc5b83e204af317250a47eb8aab150dddbaa3966d354cc6dcd7418ea9',1,'index_buffertz::gl'],['../group__tz__gl__vk__buffer.html#gga0c6ff78fc058c3e209ba59dc1b2c02a6aab150dddbaa3966d354cc6dcd7418ea9',1,'index_buffertz::gl::vk2']]], + ['indexbufferread_42',['IndexBufferRead',['../group__tz__gl__vk__graphics__pipeline__render__pass.html#ggaa5dd0142a36cd59d14dff54eed67c3dfac52fe3a67d19e52c2d8be1c1085af208',1,'tz::gl::vk2']]], + ['indirectbufferread_43',['IndirectBufferRead',['../group__tz__gl__vk__graphics__pipeline__render__pass.html#ggaa5dd0142a36cd59d14dff54eed67c3dfa4656386f11c44452e8d3dd44b23c8bc2',1,'tz::gl::vk2']]], + ['info_44',['info',['../group__tz__core.html#ga1134f9d409701427b780589ca9fd48e5',1,'tz::engine_info']]], + ['info_5flog_45',['info_log',['../structtz_1_1gl_1_1ogl2_1_1shader__module_1_1compile__result.html#a7698f71c6e802dd4d4c4af91163d42b8',1,'tz::gl::ogl2::shader_module::compile_result::info_log'],['../structtz_1_1gl_1_1ogl2_1_1shader_1_1link__result.html#a7460fb4eb85c75f115b5c71608ff12f3',1,'tz::gl::ogl2::shader::link_result::info_log']]], + ['init_5finfo_46',['init_info',['../structtz_1_1dbgui_1_1init__info.html',1,'tz::dbgui']]], + ['init_5fstate_47',['init_state',['../structtz_1_1core_1_1detail_1_1init__state.html',1,'tz::core::detail']]], + ['initial_5flayout_48',['initial_layout',['../structtz_1_1gl_1_1vk2_1_1_attachment.html#aecb5fd7bb6dac0c3e07a4877da865bec',1,'tz::gl::vk2::Attachment']]], + ['initialise_49',['initialise',['../group__tz__core.html#ga96f115f23731621af2e77904b1115fad',1,'tz::initialise()'],['../group__tz__gl__vk.html#ga008f58719ad31f39af59d4f017aaea9e',1,'tz::gl::vk2::initialise()'],['../group__tz__gl__ogl2.html#ga191a25d7af220adb7cbecb11c18aba9d',1,'tz::gl::ogl2::initialise()']]], + ['initialise_5finfo_50',['initialise_info',['../structtz_1_1initialise__info.html',1,'tz']]], + ['initially_5fsignalled_51',['initially_signalled',['../structtz_1_1gl_1_1vk2_1_1_fence_info.html#a22f2ab9e2e0152fde4949ea49dbd0cc4',1,'tz::gl::vk2::FenceInfo']]], + ['input_52',['input',['../group__tz__wsi__keyboard.html',1,'Keyboard Input'],['../group__tz__wsi__mouse.html',1,'Mouse Input']]], + ['input_5fattachments_53',['input_attachments',['../structtz_1_1gl_1_1vk2_1_1_render_pass_info_1_1_subpass.html#a13ad7749e9612be5d0e8221c7d14288d',1,'tz::gl::vk2::RenderPassInfo::Subpass']]], + ['input_5frate_54',['input_rate',['../structtz_1_1gl_1_1vk2_1_1_vertex_input_state_1_1_binding.html#a37caf3785a283d47e9e9b5f8eea0cd60',1,'tz::gl::vk2::VertexInputState::Binding']]], + ['inputattachment_55',['InputAttachment',['../group__tz__gl__vk__image.html#gga6ecb2d248a682aac08d93f4a7078161ea261d965f5dd43c6873489b68730dbe57',1,'tz::gl::vk2']]], + ['inputattachmentread_56',['InputAttachmentRead',['../group__tz__gl__vk__graphics__pipeline__render__pass.html#ggaa5dd0142a36cd59d14dff54eed67c3dfa37bc3fb1753f31a1bfd76b475531d179',1,'tz::gl::vk2']]], + ['inputattachmentreference_57',['InputAttachmentReference',['../structtz_1_1gl_1_1vk2_1_1_render_pass_info_1_1_input_attachment_reference.html',1,'tz::gl::vk2::RenderPassInfo']]], + ['inputdelta_58',['InputDelta',['../structtz_1_1dbgui_1_1_input_delta.html',1,'tz::dbgui']]], + ['inputs_20and_20outputs_59',['Inputs and Outputs',['../group__tz__gl2__io.html',1,'']]], + ['instance_5fcount_60',['instance_count',['../structtz_1_1gl_1_1vk2_1_1_vulkan_command_1_1_draw.html#a365324b668b406ae92f340c15ecd30cb',1,'tz::gl::vk2::VulkanCommand::Draw']]], + ['instanceextension_61',['InstanceExtension',['../group__tz__gl__vk__extension.html#gaab3eb58740575c989d5eab8c3fd877a7',1,'tz::gl::vk2']]], + ['integration_62',['integration',['../group__tz__lua__cpp.html',1,'Lua Integration'],['../group__tz__wsi.html',1,'Window System Integration']]], + ['interation_20wsi_63',['Presentation and Window Surface Interation (WSI)',['../group__tz__gl__vk__presentation.html',1,'']]], + ['interfaceiterator_64',['InterfaceIterator',['../classtz_1_1_interface_iterator.html',1,'tz']]], + ['internaldeviceinfo_65',['InternalDeviceInfo',['../structtz_1_1gl_1_1vk2_1_1_internal_device_info.html',1,'tz::gl::vk2']]], + ['inverse_66',['inverse',['../classtz_1_1matrix.html#a7e433fe3e699b5408379853e995047d7',1,'tz::matrix::inverse()'],['../group__tzsl__matrix.html#ga5acabab4299f3a83255b29951529b723',1,'tz::matrix::inverse()']]], + ['inverse_5fsqrt_67',['inverse_sqrt',['../group__tzsl__math.html#gada52dfc780717ed2093173a1d7fc2756',1,'tz::math']]], + ['ioutput_68',['ioutput',['../classtz_1_1gl_1_1ioutput.html',1,'tz::gl']]], + ['iresource_69',['iresource',['../classtz_1_1gl_1_1iresource.html',1,'tz::gl']]], + ['is_5fbindless_70',['is_bindless',['../classtz_1_1gl_1_1ogl2_1_1image.html#abbbbeecb6616cc854440f88583e11739',1,'tz::gl::ogl2::image']]], + ['is_5finfinity_71',['is_infinity',['../group__tzsl__math.html#ga9fad99521b5db2890038926308391384',1,'tz::math']]], + ['is_5finitialised_72',['is_initialised',['../group__tz__core.html#ga4197bca3cce79edb5652963d5bd7c1f0',1,'tz::is_initialised()'],['../group__tz__gl__ogl2.html#gadb3c9422dbeed2aa29746cc76e69595f',1,'tz::gl::ogl2::is_initialised()']]], + ['is_5fkey_5fdown_73',['is_key_down',['../group__tz__wsi__keyboard.html#ga5e31e075f6fd53e6c03dce80ea5f3b7e',1,'tz::wsi']]], + ['is_5fmouse_5fbutton_5fdown_74',['is_mouse_button_down',['../group__tz__wsi__mouse.html#ga922f648e394c766866b9f09677f52a97',1,'tz::wsi']]], + ['is_5fnan_75',['is_nan',['../group__tzsl__math.html#gafb0b592c454e7f033ea85f46819d149a',1,'tz::math']]], + ['is_5fnull_76',['is_null',['../classtz_1_1gl_1_1vk2_1_1_swapchain.html#a3b79708061815cb17a57911986fc267f',1,'tz::gl::vk2::Swapchain::is_null()'],['../classtz_1_1gl_1_1ogl2_1_1shader.html#a51d7596169244c8fb6414302e2f1b1ef',1,'tz::gl::ogl2::shader::is_null()'],['../classtz_1_1gl_1_1ogl2_1_1image.html#ac0f5d8d365b93ee6282751e94f8973e8',1,'tz::gl::ogl2::image::is_null()'],['../classtz_1_1gl_1_1ogl2_1_1framebuffer.html#adf2c7cbf8d99d4989162683c264a49f5',1,'tz::gl::ogl2::framebuffer::is_null()'],['../classtz_1_1gl_1_1ogl2_1_1buffer.html#a6b58eda5496da5d8bd70a05fe2bbad6e',1,'tz::gl::ogl2::buffer::is_null()'],['../classtz_1_1gl_1_1ogl2_1_1vertex__array.html#a8dda442e0b38c14f4c091073b431c87d',1,'tz::gl::ogl2::vertex_array::is_null()'],['../classtz_1_1gl_1_1vk2_1_1_logical_device.html#aa47297f3958f89e97c01eef4e37167b0',1,'tz::gl::vk2::LogicalDevice::is_null()']]], + ['is_5frecording_77',['is_recording',['../classtz_1_1gl_1_1vk2_1_1_command_buffer.html#a721538a81ab301429e1eea581ca9a012',1,'tz::gl::vk2::CommandBuffer']]], + ['is_5fsignalled_78',['is_signalled',['../classtz_1_1gl_1_1vk2_1_1_fence.html#ac7ef0b27a987a0522a39a6bbdb071a90',1,'tz::gl::vk2::Fence']]], + ['iterate_5fancestors_79',['iterate_ancestors',['../classtz_1_1transform__hierarchy.html#a9c13eb5f585294602923ead2ba4c7813',1,'tz::transform_hierarchy']]], + ['iterate_5fchildren_80',['iterate_children',['../classtz_1_1transform__hierarchy.html#ab5301295fe1fe2c0cd788e06619e03f6',1,'tz::transform_hierarchy']]], + ['iterate_5fdescendants_81',['iterate_descendants',['../classtz_1_1transform__hierarchy.html#a2ec9894e8c6cab1d1988a970efe16667',1,'tz::transform_hierarchy']]], + ['iterate_5fnodes_82',['iterate_nodes',['../classtz_1_1transform__hierarchy.html#a46599bc9cad16ed84124a2e06d88162e',1,'tz::transform_hierarchy']]] +]; diff --git a/search/all_9.js b/search/all_9.js new file mode 100644 index 0000000000..bfa80dc7f2 --- /dev/null +++ b/search/all_9.js @@ -0,0 +1,11 @@ +var searchData= +[ + ['job_20system_0',['Job System',['../group__tz__core__job.html',1,'']]], + ['job_5fhandle_1',['job_handle',['../structtz_1_1job__handle.html',1,'tz']]], + ['job_5fhandle_5fdata_2',['job_handle_data',['../group__tz__core__job.html#ga9ccaab220ef5fce03c01bc886fbf8423',1,'tz']]], + ['job_5fhandle_5ftag_3',['job_handle_tag',['../structtz_1_1detail_1_1job__handle__tag.html',1,'tz::detail']]], + ['job_5fsystem_4',['job_system',['../group__tz__core__job.html#ga32270a811cb4a5c1229ee22ce3d62cd7',1,'tz']]], + ['job_5fsystem_5ft_5',['job_system_t',['../group__tz__core__job.html#ga039d3352a9976c2d496c4c6f020633ad',1,'tz']]], + ['job_5fsystem_5fthreadpool_5flfq_6',['job_system_threadpool_lfq',['../classtz_1_1impl_1_1job__system__threadpool__lfq.html',1,'tz::impl']]], + ['job_5ft_7',['job_t',['../group__tz__core__job.html#ga086493d1ebc9430b0a89b1ed4c5a6ad1',1,'tz']]] +]; diff --git a/search/all_a.js b/search/all_a.js new file mode 100644 index 0000000000..a535c676f1 --- /dev/null +++ b/search/all_a.js @@ -0,0 +1,9 @@ +var searchData= +[ + ['kernel_0',['kernel',['../structtz_1_1gl_1_1render__state_1_1_compute.html#ab24ad64cfe49f3dce8eeb8cf91cce48e',1,'tz::gl::render_state::Compute::kernel'],['../structtz_1_1gl_1_1renderer__edit_1_1compute__config.html#a7309d7bd259c9b449ca1e9f818d8189e',1,'tz::gl::renderer_edit::compute_config::kernel']]], + ['key_1',['key',['../group__tz__wsi__keyboard.html#ga6c853393f015f781b34a6f1cde094e85',1,'tz::wsi']]], + ['keyboard_20input_2',['Keyboard Input',['../group__tz__wsi__keyboard.html',1,'']]], + ['keyboard_5fstate_3',['keyboard_state',['../structtz_1_1wsi_1_1keyboard__state.html',1,'tz::wsi']]], + ['keyframe_5fdata_5felement_4',['keyframe_data_element',['../structtz_1_1io_1_1gltf__animation_1_1keyframe__data__element.html',1,'tz::io::gltf_animation']]], + ['keys_5fdown_5',['keys_down',['../structtz_1_1wsi_1_1keyboard__state.html#ad5daea270a32a5c90478336768d6fed3',1,'tz::wsi::keyboard_state']]] +]; diff --git a/search/all_b.js b/search/all_b.js new file mode 100644 index 0000000000..441799c981 --- /dev/null +++ b/search/all_b.js @@ -0,0 +1,30 @@ +var searchData= +[ + ['last_5fkey_0',['last_key',['../structtz_1_1wsi_1_1keyboard__state.html#ad0106b85346333b84bcf529b5547bc90',1,'tz::wsi::keyboard_state']]], + ['latefragmenttests_1',['LateFragmentTests',['../group__tz__gl__vk__graphics__pipeline.html#ggaa581c5a329a76e48f41ca02bd263251aaeada3dda11ce9944c5f92e0d721f9394',1,'tz::gl::vk2']]], + ['layouts_20and_20sets_2',['Descriptor Layouts and Sets',['../group__tz__gl__vk__descriptors.html',1,'']]], + ['left_3',['left',['../group__tz__wsi__mouse.html#ggaf90a65771c2d2d40e2d8a35f27288e23a811882fecd5c7618d7099ebbd39ea254',1,'tz::wsi']]], + ['length_4',['length',['../classtz_1_1basic__list.html#ad2ed5fb6f960712dc66a7dca73100b56',1,'tz::basic_list::length()'],['../classtz_1_1vector.html#ad21a340f4595f568eefe21d3038c8234',1,'tz::vector::length()']]], + ['lerp_5',['lerp',['../group__tzsl__math.html#gaa303ee7efac3c557a14203c3583656f6',1,'tz::math']]], + ['lessthan_6',['LessThan',['../group__tz__gl__vk__graphics__pipeline__fixed.html#gga93e2cb3a5e44484b0548e28496de69c7ac6d9d7bb9939f62f01c80f8b1251501c',1,'tz::gl::vk2']]], + ['lessthanorequal_7',['LessThanOrEqual',['../group__tz__gl__vk__graphics__pipeline__fixed.html#gga93e2cb3a5e44484b0548e28496de69c7a4ab671acbbaacb0db7d8477cfe4f4e0b',1,'tz::gl::vk2']]], + ['library_8',['Graphics Library',['../group__tz__gl2.html',1,'']]], + ['limits_9',['limits',['../structtz_1_1gl_1_1vk2_1_1_descriptor_pool_info_1_1_pool_limits.html#ab40cdfd71afa53843549b7d15a00487f',1,'tz::gl::vk2::DescriptorPoolInfo::PoolLimits::limits'],['../structtz_1_1gl_1_1vk2_1_1_descriptor_pool_info.html#aa6f231bec37b767f12357542a86a99f6',1,'tz::gl::vk2::DescriptorPoolInfo::limits']]], + ['line_10',['Line',['../group__tz__gl__vk__graphics__pipeline__fixed.html#ggaaeda985d06849d890d7ba2902688cd01a4803e6b9e63dabf04de980788d6a13c4',1,'tz::gl::vk2']]], + ['linear_11',['linear',['../group__tz__gl__vk__image.html#gga41ec6a06ba8bf8e03f80cf81eb99b46aa32a843da6ea40ab3b17a3421ccdf671b',1,'Lineartz::gl::vk2'],['../group__tz__gl__ogl2__image.html#ggadabff1825f7cf36d8fada93ee1164a31a9a932b3cb396238423eb2f33ec17d6aa',1,'lineartz::gl::ogl2']]], + ['linear_5fallocator_12',['linear_allocator',['../classtz_1_1linear__allocator.html',1,'tz']]], + ['link_13',['link',['../classtz_1_1gl_1_1ogl2_1_1shader.html#ae19573903c49062b248032857ec14355',1,'tz::gl::ogl2::shader']]], + ['link_5fresult_14',['link_result',['../structtz_1_1gl_1_1ogl2_1_1shader_1_1link__result.html',1,'tz::gl::ogl2::shader']]], + ['ln_15',['ln',['../group__tzsl__math.html#gaa3a474353fb7c18a671fb285c38f12fa',1,'tz::math']]], + ['load_16',['Load',['../group__tz__gl__vk__graphics__pipeline__render__pass.html#ggaa1e0e627270d80ef86624590afc5a03faf19dbf2edb3a0bd74b0524d960ff21eb',1,'tz::gl::vk2']]], + ['loadop_17',['LoadOp',['../group__tz__gl__vk__graphics__pipeline__render__pass.html#gaa1e0e627270d80ef86624590afc5a03f',1,'tz::gl::vk2']]], + ['local_5ftransform_18',['local_transform',['../structtz_1_1transform__node.html#ad6eba04c7e83f7ac3a57ffc5cd7d558e',1,'tz::transform_node']]], + ['log_19',['log',['../group__tzsl__math.html#gaa8fbf2fd8ac5c0c3e7a3ad51cfe5acca',1,'tz::math']]], + ['logical_5fdevice_20',['logical_device',['../structtz_1_1gl_1_1vk2_1_1_render_pass_info.html#a1dc269fba5204ec4558be348e043353e',1,'tz::gl::vk2::RenderPassInfo::logical_device'],['../structtz_1_1gl_1_1vk2_1_1_pipeline_layout_info.html#a54a3f0e47bb70c14d39bf1e57551e85d',1,'tz::gl::vk2::PipelineLayoutInfo::logical_device'],['../structtz_1_1gl_1_1vk2_1_1_descriptor_pool_info.html#aec347e650449b8bb1e4d2ddba4e7312e',1,'tz::gl::vk2::DescriptorPoolInfo::logical_device'],['../structtz_1_1gl_1_1vk2_1_1_descriptor_layout_info.html#af62a5ae0b0d0ecd5936c4efc36569cf7',1,'tz::gl::vk2::DescriptorLayoutInfo::logical_device']]], + ['logicaldevice_21',['logicaldevice',['../classtz_1_1gl_1_1vk2_1_1_logical_device.html#a2bee85f2a05cbf3653a887f471745cdb',1,'tz::gl::vk2::LogicalDevice::LogicalDevice()'],['../classtz_1_1gl_1_1vk2_1_1_logical_device.html',1,'tz::gl::vk2::LogicalDevice']]], + ['logicaldeviceinfo_22',['LogicalDeviceInfo',['../structtz_1_1gl_1_1vk2_1_1_logical_device_info.html',1,'tz::gl::vk2']]], + ['lookup_5ffilter_23',['lookup_filter',['../group__tz__gl__ogl2__image.html#gadabff1825f7cf36d8fada93ee1164a31',1,'tz::gl::ogl2']]], + ['lookupfilter_24',['LookupFilter',['../group__tz__gl__vk__image.html#ga24cb95974e796673bd262b86ee9cfa89',1,'tz::gl::vk2']]], + ['lua_20api_20reference_25',['Lua API Reference',['../tz_lua.html',1,'']]], + ['lua_20integration_26',['Lua Integration',['../group__tz__lua__cpp.html',1,'']]] +]; diff --git a/search/all_c.js b/search/all_c.js new file mode 100644 index 0000000000..a0032ea3fe --- /dev/null +++ b/search/all_c.js @@ -0,0 +1,60 @@ +var searchData= +[ + ['mag_5ffilter_0',['mag_filter',['../structtz_1_1gl_1_1vk2_1_1_sampler_info.html#ad8a132850a8b6922a8d9c095631bbb0c',1,'tz::gl::vk2::SamplerInfo::mag_filter'],['../structtz_1_1gl_1_1ogl2_1_1sampler.html#ae53d7cb6e1d68e05d954b00d9d72b466',1,'tz::gl::ogl2::sampler::mag_filter']]], + ['magnitude_1',['magnitude',['../group__tzsl__math.html#gac19fd8cac0bb9c24bc0c123b19527b20',1,'tz::math']]], + ['mailbox_2',['Mailbox',['../group__tz__gl__vk__presentation.html#gga8e6e925d93013e81273325bc8764577aa2dcff8c037093c5d3552ad532e603f9f',1,'tz::gl::vk2']]], + ['maintainer_20guide_3',['Maintainer Guide',['../group__tz__gl2__graphicsapi.html',1,'']]], + ['major_4',['major',['../structtz_1_1version.html#adf4eb32530f45de5e7ac1a37840a77ce',1,'tz::version']]], + ['make_5fbindless_5',['make_bindless',['../classtz_1_1gl_1_1ogl2_1_1image.html#a1db429d2f9d112084f5ff4a3dbf29111',1,'tz::gl::ogl2::image']]], + ['make_5fedit_5frequest_6',['make_edit_request',['../classtz_1_1gl_1_1vk2_1_1_descriptor_set.html#aad4dfda61c3b097013b675089501ddcb',1,'tz::gl::vk2::DescriptorSet']]], + ['make_5fupdate_5frequest_7',['make_update_request',['../classtz_1_1gl_1_1vk2_1_1_descriptor_pool.html#aa4ca5a9b707fa4a15e150105e7ce7d44',1,'tz::gl::vk2::DescriptorPool']]], + ['mallocator_8',['mallocator',['../classtz_1_1mallocator.html',1,'tz']]], + ['map_9',['map',['../classtz_1_1gl_1_1vk2_1_1_buffer.html#a6f7131c56890d0966bb2e3ea74bc2eb1',1,'tz::gl::vk2::Buffer::map()'],['../classtz_1_1gl_1_1ogl2_1_1buffer.html#a7b2564baa2398de6d15d056d9fc1df20',1,'tz::gl::ogl2::buffer::map() const'],['../classtz_1_1gl_1_1ogl2_1_1buffer.html#a6a152a5570d321dfaafb8622e4ec0e29',1,'tz::gl::ogl2::buffer::map()']]], + ['map_5fas_10',['map_as',['../classtz_1_1gl_1_1vk2_1_1_buffer.html#a238ec50ea5cc40a351e1ebe487ce86db',1,'tz::gl::vk2::Buffer::map_as()'],['../classtz_1_1gl_1_1ogl2_1_1buffer.html#ab7cb7eefd87892b60164efc34f878ee7',1,'tz::gl::ogl2::buffer::map_as() const'],['../classtz_1_1gl_1_1ogl2_1_1buffer.html#a7a362343c3222975998cb78e2b3d619c',1,'tz::gl::ogl2::buffer::map_as()']]], + ['mark_5fdirty_11',['mark_dirty',['../structtz_1_1gl_1_1renderer__edit_1_1mark__dirty.html',1,'tz::gl::renderer_edit']]], + ['mat2_12',['mat2',['../group__tz__core.html#ga668b6f90e97691172a3677c8519432b4',1,'tz']]], + ['mat3_13',['mat3',['../group__tz__core.html#ga3faadeb0d0e0fcd28ca591416d83fa84',1,'tz']]], + ['mat4_14',['mat4',['../group__tz__core.html#ga1f1e59ed90427ee9f69f95d8a2409bf0',1,'tz']]], + ['mathematical_20operations_15',['Mathematical Operations',['../group__tzsl__math.html',1,'']]], + ['matrix_16',['matrix',['../classtz_1_1matrix.html',1,'tz::matrix< T, R, C >'],['../classtz_1_1matrix.html#ab93aae54ae663d225ed18bed1dde22ef',1,'tz::matrix::matrix(std::array< std::array< T, R >, C > data)'],['../classtz_1_1matrix.html#a08597e418e20c292ea54f4b845a6a35a',1,'tz::matrix::matrix()=default']]], + ['matrix_20operations_17',['Matrix Operations',['../group__tzsl__matrix.html',1,'']]], + ['matrix_3c_20float_2c_204_2c_204_20_3e_18',['matrix< float, 4, 4 >',['../classtz_1_1matrix.html',1,'tz']]], + ['max_19',['max',['../group__tzsl__atomic.html#ga7be084073b7420420cd5f5b5b9f81db6',1,'tz::atomic::max()'],['../group__tzsl__math.html#gaace435adbf3045892fcff015ae6446ae',1,'tz::math::max()']]], + ['max_5fdepth_5fbounds_20',['max_depth_bounds',['../structtz_1_1gl_1_1vk2_1_1_depth_stencil_state.html#a58c3f50ea28733e7f2aa58925fa483ae',1,'tz::gl::vk2::DepthStencilState']]], + ['max_5fsets_21',['max_sets',['../structtz_1_1gl_1_1vk2_1_1_descriptor_pool_info_1_1_pool_limits.html#a54ef1c686c89f486b81016f907d26295',1,'tz::gl::vk2::DescriptorPoolInfo::PoolLimits']]], + ['maybe_5fdepth_5fattachment_22',['maybe_depth_attachment',['../structtz_1_1gl_1_1ogl2_1_1framebuffer__info.html#ae7762196e1cb2dca0e5906eda2e03c66',1,'tz::gl::ogl2::framebuffer_info']]], + ['maybe_5fowned_5fptr_23',['maybe_owned_ptr',['../classtz_1_1maybe__owned__ptr.html',1,'tz']]], + ['maybe_5fworker_5faffinity_24',['maybe_worker_affinity',['../structtz_1_1execution__info.html#a52e9c8fdfe60f00ff9e32ee506330554',1,'tz::execution_info']]], + ['memblk_25',['memblk',['../structtz_1_1memblk.html',1,'tz']]], + ['memory_20utility_26',['Memory Utility',['../group__tz__core__memory.html',1,'']]], + ['mesh_27',['mesh',['../structtz_1_1ren_1_1mesh.html',1,'tz::ren']]], + ['mesh_5flocator_28',['mesh_locator',['../structtz_1_1ren_1_1mesh__locator.html',1,'tz::ren::mesh_locator'],['../structmesh__locator.html',1,'mesh_locator']]], + ['mesh_5frenderer_29',['mesh_renderer',['../classtz_1_1ren_1_1mesh__renderer.html',1,'tz::ren']]], + ['meshes_30',['Precomputed Meshes',['../group__tzsl__mesh.html',1,'']]], + ['metadata_5ft_31',['metadata_t',['../structtz_1_1ren_1_1animation__renderer_1_1gltf__info_1_1metadata__t.html',1,'tz::ren::animation_renderer::gltf_info']]], + ['micros_32',['micros',['../classtz_1_1duration.html#a77132d356c4f747078fd4574e778a1a8',1,'tz::duration']]], + ['middle_33',['middle',['../group__tz__wsi__mouse.html#ggaf90a65771c2d2d40e2d8a35f27288e23a4a548addbfb239bbd12f5afe11a4b6dc',1,'tz::wsi']]], + ['millis_34',['millis',['../classtz_1_1duration.html#a7e77d183a8aeecf8e36a6a7b76947f8b',1,'tz::duration']]], + ['min_35',['min',['../group__tzsl__math.html#ga4bd7bdfcb0408f324b5e80a7c233a2ed',1,'tz::math::min()'],['../group__tzsl__atomic.html#ga86e1a113d8ee0dd644704f091bcb1b13',1,'tz::atomic::min()']]], + ['min_5fdepth_5fbounds_36',['min_depth_bounds',['../structtz_1_1gl_1_1vk2_1_1_depth_stencil_state.html#a61412b4f256eebf85bd2c8107925e9ea',1,'tz::gl::vk2::DepthStencilState']]], + ['min_5ffilter_37',['min_filter',['../structtz_1_1gl_1_1ogl2_1_1sampler.html#af36a7a7d1dacbfe3677125b80a6c02bb',1,'tz::gl::ogl2::sampler::min_filter'],['../structtz_1_1gl_1_1vk2_1_1_sampler_info.html#a26b190b5d299f701755da83412eed998',1,'tz::gl::vk2::SamplerInfo::min_filter']]], + ['minor_38',['minor',['../structtz_1_1version.html#a6d890f224c8f89f1c17856c894bb3796',1,'tz::version']]], + ['minutes_39',['minutes',['../classtz_1_1duration.html#a03ae7d13037cac61ff6c60852d1d20fc',1,'tz::duration']]], + ['mip_5flevels_40',['mip_levels',['../structtz_1_1gl_1_1vk2_1_1image__info.html#aa5d7724a2fdf258894349ed434c342f2',1,'tz::gl::vk2::image_info']]], + ['miplookupfilter_41',['MipLookupFilter',['../group__tz__gl__vk__image.html#ga4023d87f2b0f64e5fc17ededf9e1a712',1,'tz::gl::vk2']]], + ['mirrored_5frepeat_42',['mirrored_repeat',['../group__tz__gl__ogl2__image.html#gga52bed615aea0b883aeb6702716f95e5ba301defc6e7425fc63ef35c7827d43b44',1,'tz::gl::ogl2']]], + ['mirroredrepeat_43',['MirroredRepeat',['../group__tz__gl__vk__image.html#gga8d6daa8ff20537f40f5e1145342c2d4da12ce4a5977988214a6b098b8cb0bf695',1,'tz::gl::vk2']]], + ['mod_44',['mod',['../group__tzsl__math.html#ga9e6708981e516e127c8e7f9e078aa50a',1,'tz::math']]], + ['model_45',['model',['../group__tz__core.html#ga8eee7d1f58cb6eefcc220bc2026ba7e1',1,'tz']]], + ['modules_46',['modules',['../structtz_1_1gl_1_1vk2_1_1_shader_info.html#ad001f2e367292069e9993df2e02cebc7',1,'tz::gl::vk2::ShaderInfo::modules'],['../structtz_1_1gl_1_1ogl2_1_1shader__info.html#a756a0fe26b2d4ec298dabeae07d003ab',1,'tz::gl::ogl2::shader_info::modules'],['../group__tz__gl__vk__graphics__pipeline__shader.html',1,'Shader Programs and Modules']]], + ['monitor_47',['monitor',['../structtz_1_1wsi_1_1monitor.html',1,'tz::wsi']]], + ['monitors_48',['Monitors',['../group__tz__wsi__monitor.html',1,'']]], + ['mouse_20input_49',['Mouse Input',['../group__tz__wsi__mouse.html',1,'']]], + ['mouse_5fbutton_50',['mouse_button',['../group__tz__wsi__mouse.html#gaf90a65771c2d2d40e2d8a35f27288e23',1,'tz::wsi']]], + ['mouse_5fbutton_5fstate_51',['mouse_button_state',['../group__tz__wsi__mouse.html#ga089bafa0df7fa17353dbf27087a1f65b',1,'tz::wsi']]], + ['mouse_5fposition_52',['mouse_position',['../structtz_1_1wsi_1_1mouse__state.html#a20cc90fea16314dd5eff2dbc1c273427',1,'tz::wsi::mouse_state']]], + ['mouse_5fstate_53',['mouse_state',['../structtz_1_1wsi_1_1mouse__state.html',1,'tz::wsi']]], + ['multidrawindirect_54',['MultiDrawIndirect',['../group__tz__gl__vk__extension.html#gga6744c8f7d1276d6d9ae861b21c489505abea0d690193c82d29c896d859a91d8ff',1,'tz::gl::vk2']]], + ['multisamplestate_55',['MultisampleState',['../structtz_1_1gl_1_1vk2_1_1_multisample_state.html',1,'tz::gl::vk2']]], + ['mvp_56',['MVP',['../structtz_1_1space_1_1_m_v_p.html',1,'tz::space']]] +]; diff --git a/search/all_d.js b/search/all_d.js new file mode 100644 index 0000000000..064918c89f --- /dev/null +++ b/search/all_d.js @@ -0,0 +1,23 @@ +var searchData= +[ + ['name_0',['name',['../structtz_1_1initialise__info.html#a768e62c7d1e79dfb74783ab7088d8f7d',1,'tz::initialise_info::name'],['../structtz_1_1wsi_1_1monitor.html#ac3dd95c4ff12a83e5ee7dfc793d46fb3',1,'tz::wsi::monitor::name']]], + ['nanos_1',['nanos',['../classtz_1_1duration.html#a2a250959a205d0533fa459eb7635141d',1,'tz::duration']]], + ['nearest_2',['nearest',['../group__tz__gl__ogl2__image.html#ggadabff1825f7cf36d8fada93ee1164a31ad879c351426770bc0b13c3628db1e636',1,'tz::gl::ogl2']]], + ['no_5fclear_5foutput_3',['no_clear_output',['../group__tz__gl2__renderer.html#ggac6f74feb8cd57f49c051f5d83a12be5da2203bd6a7850fb82fd5e59beddc2533d',1,'tz::gl']]], + ['no_5fdbgui_4',['no_dbgui',['../group__tz__core.html#ggad12da2cb05946402335871d2e282cbf9ad9ca1f44f2854bcace7ddf018002c26f',1,'tz']]], + ['no_5fdepth_5ftesting_5',['no_depth_testing',['../group__tz__gl2__renderer.html#ggac6f74feb8cd57f49c051f5d83a12be5daee30a7f521c17e0d4e97d6b247540301',1,'tz::gl']]], + ['no_5fgraphics_6',['no_graphics',['../group__tz__core.html#ggad12da2cb05946402335871d2e282cbf9a5deafc826baa20fe6c136c1e928e8fc3',1,'tz']]], + ['no_5fpresent_7',['no_present',['../group__tz__gl2__renderer.html#ggac6f74feb8cd57f49c051f5d83a12be5da8c583826577e40349f4d932f07107a8e',1,'tz::gl']]], + ['noclicked_8',['noclicked',['../group__tz__wsi__mouse.html#gga089bafa0df7fa17353dbf27087a1f65bac40b9c441c245ba7a4537352a73f5b90',1,'tz::wsi']]], + ['noculling_9',['NoCulling',['../group__tz__gl__vk__graphics__pipeline__fixed.html#ggaf55856ce9f281f90908bac12e0061e16a6913ff808b22b8502cdcf790839eeaa0',1,'tz::gl::vk2']]], + ['node_10',['node',['../classtz_1_1transform__hierarchy.html#a09c124bb6f951116630fcbde000867e9',1,'tz::transform_hierarchy']]], + ['noise_20functions_11',['Noise Functions',['../group__tzsl__noise.html',1,'']]], + ['noneneeded_12',['NoneNeeded',['../group__tz__gl__vk__graphics__pipeline__render__pass.html#ggaa5dd0142a36cd59d14dff54eed67c3dfa8de1f22edd904226836321deb96d7f1d',1,'tz::gl::vk2']]], + ['nonsolidfillrasteriser_13',['NonSolidFillRasteriser',['../group__tz__gl__vk__extension.html#gga6744c8f7d1276d6d9ae861b21c489505a50df80e0d2daa3c2a0fbf8a994ad3a62',1,'tz::gl::vk2']]], + ['normalise_14',['normalise',['../group__tzsl__math.html#ga7e9161c4554681c9e3455f2044d74378',1,'tz::math::normalise()'],['../classtz_1_1vector.html#a6c5d76ac6e6c423a3939a68a104a2476',1,'tz::vector::normalise()']]], + ['normalised_15',['normalised',['../classtz_1_1vector.html#a7d3f52f2b2eee13ed28869b1d5775a40',1,'tz::vector']]], + ['notequalto_16',['NotEqualTo',['../group__tz__gl__vk__graphics__pipeline__fixed.html#gga93e2cb3a5e44484b0548e28496de69c7a0961129d84d9d8f6aa4138a3e5022a1d',1,'tz::gl::vk2']]], + ['null_17',['null',['../classtz_1_1gl_1_1buffer__resource.html#adc992b7120e61ca9e84236b84a96b760',1,'tz::gl::buffer_resource::null()'],['../classtz_1_1gl_1_1image__resource.html#ad7b2f90494cadde953d63ff92a1c7568',1,'tz::gl::image_resource::null()'],['../classtz_1_1gl_1_1vk2_1_1_swapchain.html#a4a22a47532955e0b373b671bf4e310dc',1,'tz::gl::vk2::Swapchain::null()'],['../classtz_1_1gl_1_1vk2_1_1_logical_device.html#a29a6419aa0f11bc338774da7ec9db6ed',1,'tz::gl::vk2::LogicalDevice::null()'],['../classtz_1_1gl_1_1ogl2_1_1vertex__array.html#a39da177cf71a9462d79fcc82230ee702',1,'tz::gl::ogl2::vertex_array::null()'],['../classtz_1_1gl_1_1ogl2_1_1shader.html#a189789a1dd30c80d8e0c1b8be0b0c7ee',1,'tz::gl::ogl2::shader::null()'],['../classtz_1_1gl_1_1ogl2_1_1image.html#a47abf1514f9156f568d16abfa09ceb64',1,'tz::gl::ogl2::image::null()'],['../classtz_1_1gl_1_1ogl2_1_1framebuffer.html#a1043574f330dd12e7bcc56bf41291e91',1,'tz::gl::ogl2::framebuffer::null()'],['../classtz_1_1gl_1_1ogl2_1_1buffer.html#a198db31e0a5081dca6a29fdedfcb2e7d',1,'tz::gl::ogl2::buffer::null()']]], + ['null_5fallocator_18',['null_allocator',['../classtz_1_1null__allocator.html',1,'tz']]], + ['nullhand_5ft_19',['nullhand_t',['../structtz_1_1nullhand__t.html',1,'tz']]] +]; diff --git a/search/all_e.js b/search/all_e.js new file mode 100644 index 0000000000..d55818afe7 --- /dev/null +++ b/search/all_e.js @@ -0,0 +1,36 @@ +var searchData= +[ + ['object_5fdata_0',['object_data',['../structtz_1_1ren_1_1object__data.html',1,'tz::ren']]], + ['object_5fimpl_5fdata_1',['object_impl_data',['../structtz_1_1ren_1_1object__impl__data.html',1,'tz::ren']]], + ['object_5finit_5fdata_2',['object_init_data',['../structtz_1_1ren_1_1mesh__renderer_1_1object__init__data.html',1,'tz::ren::mesh_renderer']]], + ['object_5fout_5fdata_3',['object_out_data',['../structtz_1_1ren_1_1mesh__renderer_1_1object__out__data.html',1,'tz::ren::mesh_renderer']]], + ['object_5ft_4',['object_t',['../structobject__t.html',1,'']]], + ['old_5fswapchain_5',['old_swapchain',['../structtz_1_1gl_1_1vk2_1_1_swapchain_info.html#a3250b11e92a4f4f5bc8ed7dd00c8a26d',1,'tz::gl::vk2::SwapchainInfo']]], + ['opengl_6',['OpenGL',['../group__tz__gl2__graphicsapi__ogl.html',1,'']]], + ['opengl_20backend_7',['OpenGL Backend',['../group__tz__gl__ogl2.html',1,'']]], + ['opengl_20frontend_8',['OpenGL Frontend',['../group__tz__gl2__graphicsapi__ogl__frontend.html',1,'']]], + ['operations_9',['operations',['../group__tzsl__atomic.html',1,'Atomic Operations'],['../group__tzsl__math.html',1,'Mathematical Operations'],['../group__tzsl__matrix.html',1,'Matrix Operations']]], + ['operator_20e_10',['operator E',['../classtz_1_1enum__field.html#a3327eb996a17b1b537c9dd0f4ca7b4ff',1,'tz::enum_field']]], + ['operator_20std_3a_3aspan_3c_20const_20t_20_3e_11',['span< const T >',['../classtz_1_1basic__list.html#a54c9f1226a0ac27cd0f51485e3991181',1,'tz::basic_list']]], + ['operator_20vector_3c_20x_2c_20s_20_3e_12',['operator vector< X, S >',['../classtz_1_1vector.html#a07e3d24a2740e69ab8d7b3d3fbf1cae9',1,'tz::vector']]], + ['operator_28_29_13',['operator()',['../classtz_1_1matrix.html#aae474887f82500aa4d0312332c74b8ab',1,'tz::matrix::operator()()'],['../classtz_1_1callback.html#ab12af6810976f9755c36e4f9d5cf6582',1,'tz::callback::operator()()'],['../classtz_1_1matrix.html#a69271cad2f464378de6b467b1e2eaac7',1,'tz::matrix::operator()()'],['../classtz_1_1grid__view.html#ae211069d23cb6535d2225175ae1e182e',1,'tz::grid_view::operator()()']]], + ['operator_2a_14',['operator*',['../classtz_1_1vector.html#a1376ec726cece78821351e04454f64e3',1,'tz::vector::operator*(T scalar) const'],['../classtz_1_1vector.html#acb4c4db5fc7d1bd3b01a987c632aa97a',1,'tz::vector::operator*(const vector< T, S > &rhs) const'],['../classtz_1_1matrix.html#a75498bf523552ad8c2be4c3f28c0001c',1,'tz::matrix::operator*(T scalar) const'],['../classtz_1_1matrix.html#ac4219cdde5e6e91a5b4caa2467880585',1,'tz::matrix::operator*(const matrix< T, R, C > &matrix) const'],['../classtz_1_1matrix.html#a84396c16d731c3149b28b25b30d336f8',1,'tz::matrix::operator*(const tz::vector< T, C > &vec) const']]], + ['operator_2a_3d_15',['operator*=',['../classtz_1_1vector.html#ab2a0d283be965ec4bb87b05ee3deb889',1,'tz::vector::operator*=(T scalar)'],['../classtz_1_1vector.html#afaf53deb9ba8e5d5a19abd6dc6637f15',1,'tz::vector::operator*=(const vector< T, S > &rhs)'],['../classtz_1_1matrix.html#af19be9672620b0e0b00e7df4a6d92779',1,'tz::matrix::operator*=(T scalar)'],['../classtz_1_1matrix.html#adfc1ddaf3f1eff63ec42a908a0e73ab1',1,'tz::matrix::operator*=(const matrix< T, R, C > &matrix)']]], + ['operator_2b_16',['operator+',['../classtz_1_1matrix.html#abfdc69934b31263ec0a6aed356d835a4',1,'tz::matrix::operator+(const matrix< T, R, C > &matrix) const'],['../classtz_1_1matrix.html#aa2f1224643d3fdb123795e16ba45d2ab',1,'tz::matrix::operator+(T scalar) const'],['../classtz_1_1vector.html#a0f4bd140a27d380e788e8571d7c2d21a',1,'tz::vector::operator+()']]], + ['operator_2b_3d_17',['operator+=',['../classtz_1_1matrix.html#ab54145d6da369b8f4c9b2845ea84e403',1,'tz::matrix::operator+=(T scalar)'],['../classtz_1_1matrix.html#a504360f587d49018d17bf69a8ea45b9c',1,'tz::matrix::operator+=(const matrix< T, R, C > &matrix)'],['../classtz_1_1vector.html#a11d6bfa11f0e2ff82a303c9a0db72453',1,'tz::vector::operator+=(const vector< T, S > &rhs)']]], + ['operator_2d_18',['operator-',['../classtz_1_1vector.html#acfd142fe7cde54b417bd39252f7c9b1a',1,'tz::vector::operator-()'],['../classtz_1_1matrix.html#a711f29498d5f14bc5f99aace71ebbc8f',1,'tz::matrix::operator-(T scalar) const'],['../classtz_1_1matrix.html#a2a47a5460741f8d28808af856bd917f3',1,'tz::matrix::operator-(const matrix< T, R, C > &matrix) const']]], + ['operator_2d_3d_19',['operator-=',['../classtz_1_1vector.html#af6a75286d40b914f9bbca886bdbbcaa6',1,'tz::vector::operator-=()'],['../classtz_1_1matrix.html#a8969d5837a080b67a520381b859ebbe6',1,'tz::matrix::operator-=(T scalar)'],['../classtz_1_1matrix.html#af1555e763f45c1f616f9d765257e84ae',1,'tz::matrix::operator-=(const matrix< T, R, C > &matrix)']]], + ['operator_2f_20',['operator/',['../classtz_1_1vector.html#a0258c2f1b18c602fa0d3e6f111d9a302',1,'tz::vector']]], + ['operator_2f_3d_21',['operator/=',['../classtz_1_1vector.html#a3bf18e76e10c2744051757ac69d28ea1',1,'tz::vector']]], + ['operator_3d_3d_22',['operator==',['../classtz_1_1matrix.html#af462cfddba89117392a4139793532ae7',1,'tz::matrix::operator==(const matrix< T, R, C > &matrix) const'],['../classtz_1_1matrix.html#a0c2dd3c87a7fcb66537e9dfb8b4f9f14',1,'tz::matrix::operator==(T scalar) const'],['../classtz_1_1enum__field.html#a773ab358cf2e747cdd3f8c0affe5e449',1,'tz::enum_field::operator==()'],['../classtz_1_1vector.html#afa7fface48176a78dbcb96e693da9618',1,'tz::vector::operator==()']]], + ['operator_5b_5d_23',['operator[]',['../classtz_1_1basic__list.html#a18c4f56a2797760ab7ab7a4ef3b65736',1,'tz::basic_list::operator[](std::size_t index) const'],['../classtz_1_1basic__list.html#ae1e36e4ebc67ca42f3549c8866a4f26d',1,'tz::basic_list::operator[](std::size_t index)'],['../classtz_1_1_polymorphic_list.html#ac9d9ca26cd70c5cdf6f45678fccdcfe1',1,'tz::PolymorphicList::operator[](std::size_t idx) const'],['../classtz_1_1_polymorphic_list.html#a1c35e09a69492845e176f0b4533fbc9d',1,'tz::PolymorphicList::operator[](std::size_t idx)'],['../classtz_1_1vector.html#a567ecbdc46da683e1e1fa1e140d57185',1,'tz::vector::operator[](std::size_t idx) const'],['../classtz_1_1vector.html#a2e0545e0185d4952cb6e0064ec292c7d',1,'tz::vector::operator[](std::size_t idx)'],['../classtz_1_1matrix.html#a473b176cd8b03837b3e904f4fa5c5d1d',1,'tz::matrix::operator[](std::size_t row_idx) const'],['../classtz_1_1matrix.html#a6cc8213a09be28cac68d613ed5633675',1,'tz::matrix::operator[](std::size_t row_idx)']]], + ['operator_7c_24',['operator|',['../classtz_1_1enum__field.html#a2aecfc1eb743a60eb38d612bee21797c',1,'tz::enum_field']]], + ['operator_7c_3d_25',['operator|=',['../classtz_1_1enum__field.html#a484cf0320debda7ec85f95424d4603a8',1,'tz::enum_field::operator|=(const enum_field< E > &field)'],['../classtz_1_1enum__field.html#a02e1d9f524594bf1539dfa08aab827aa',1,'tz::enum_field::operator|=(E type)']]], + ['optimal_26',['Optimal',['../group__tz__gl__vk__image.html#gga41ec6a06ba8bf8e03f80cf81eb99b46aacb61fef1e5e79e07a80421cb9a073a80',1,'tz::gl::vk2']]], + ['or_27',['or',['../group__tzsl__atomic.html#ga95e7e3ef54161ce397ae4496aa09be0c',1,'tz::atomic']]], + ['orthographic_28',['orthographic',['../group__tz__core.html#ga234891ef18cb4fd49558abc807e172e2',1,'tz']]], + ['outputmanager_29',['outputmanager',['../classtz_1_1gl_1_1_output_manager.html#adc7d95d64b3331d874c482a08b2471d5',1,'tz::gl::OutputManager::OutputManager()'],['../classtz_1_1gl_1_1_output_manager.html',1,'tz::gl::OutputManager']]], + ['outputs_30',['Inputs and Outputs',['../group__tz__gl2__io.html',1,'']]], + ['overloaded_31',['overloaded',['../structtz_1_1gl_1_1overloaded.html',1,'tz::gl']]], + ['override_5fpackage_32',['override_package',['../structtz_1_1ren_1_1animation__renderer_1_1override__package.html',1,'tz::ren::animation_renderer']]] +]; diff --git a/search/all_f.js b/search/all_f.js new file mode 100644 index 0000000000..75f5cd8977 --- /dev/null +++ b/search/all_f.js @@ -0,0 +1,46 @@ +var searchData= +[ + ['parameter_0',['parameter',['../group__tz__gl__ogl2__buffers.html#gga2d4cfcc22205d2276ef7347cf6e1c1eda03144cce1fcdacdbe993e5266c0bf3f3',1,'tz::gl::ogl2']]], + ['parent_1',['parent',['../structtz_1_1transform__node.html#a09587c211e0f6bbf596e1a93d2e8a617',1,'tz::transform_node']]], + ['partiallybound_2',['PartiallyBound',['../group__tz__gl__vk__descriptors.html#ggaf15b5e240b6c64c9dad040171f553123a16d008687eb1211c484cfc25158d727d',1,'tz::gl::vk2']]], + ['passes_3',['Render Passes',['../group__tz__gl__vk__graphics__pipeline__render__pass.html',1,'']]], + ['patch_4',['patch',['../structtz_1_1version.html#aeed66276a4fb0107ee681adcac5db10d',1,'tz::version']]], + ['patch_5fchildren_5fto_5fparent_5',['patch_children_to_parent',['../classtz_1_1transform__hierarchy.html#a03c95b250f14ac9f110b59eceb772222a643e392a473ae000537e2535d8793a5c',1,'tz::transform_hierarchy']]], + ['perspective_6',['perspective',['../group__tz__core.html#gab069a1e647b9e13ac337c87fa7b5a7cc',1,'tz']]], + ['physical_5fdevice_7',['physical_device',['../structtz_1_1gl_1_1vk2_1_1_logical_device_info.html#ad24f7891d2eee485a1a8cf01a1477f92',1,'tz::gl::vk2::LogicalDeviceInfo']]], + ['physicaldevice_8',['physicaldevice',['../classtz_1_1gl_1_1vk2_1_1_physical_device.html',1,'tz::gl::vk2::PhysicalDevice'],['../classtz_1_1gl_1_1vk2_1_1_physical_device.html#a1af757e82fdc5ebc851cf9489fdb5c25',1,'tz::gl::vk2::PhysicalDevice::PhysicalDevice()']]], + ['physicaldeviceinfo_9',['PhysicalDeviceInfo',['../structtz_1_1gl_1_1vk2_1_1_physical_device_info.html',1,'tz::gl::vk2']]], + ['physicaldevicesurfacecapabilityinfo_10',['PhysicalDeviceSurfaceCapabilityInfo',['../structtz_1_1gl_1_1vk2_1_1_physical_device_surface_capability_info.html',1,'tz::gl::vk2']]], + ['physicaldevicevendor_11',['PhysicalDeviceVendor',['../group__tz__gl__vk.html#ga50848b0c20c1ec0f873eddc129dbecd7',1,'tz::gl::vk2']]], + ['pipeline_12',['pipeline',['../group__tz__gl__vk__graphics__pipeline.html',1,'Graphics Pipeline'],['../structtz_1_1gl_1_1vk2_1_1_vulkan_command_1_1_bind_pipeline.html#af61bd11bebba3d7c26caaf05c5488b77',1,'tz::gl::vk2::VulkanCommand::BindPipeline::pipeline'],['../classtz_1_1gl_1_1vk2_1_1_pipeline.html',1,'tz::gl::vk2::Pipeline']]], + ['pipeline_20state_20values_13',['Fixed Pipeline State Values',['../group__tz__gl__vk__graphics__pipeline__fixed.html',1,'']]], + ['pipeline_5flayout_14',['pipeline_layout',['../structtz_1_1gl_1_1vk2_1_1_vulkan_command_1_1_bind_descriptor_sets.html#ab03d3609122fe1aff4120199add3d999',1,'tz::gl::vk2::VulkanCommand::BindDescriptorSets']]], + ['pipelinecache_15',['PipelineCache',['../classtz_1_1gl_1_1vk2_1_1_pipeline_cache.html',1,'tz::gl::vk2']]], + ['pipelinecontext_16',['PipelineContext',['../group__tz__gl__vk__graphics__pipeline__render__pass.html#ga58cefe5ecfeac91929d767bdb56f943b',1,'tz::gl::vk2']]], + ['pipelinedata_17',['PipelineData',['../structtz_1_1gl_1_1vk2_1_1_pipeline_data.html',1,'tz::gl::vk2']]], + ['pipelinelayout_18',['PipelineLayout',['../classtz_1_1gl_1_1vk2_1_1_pipeline_layout.html',1,'tz::gl::vk2']]], + ['pipelinelayoutinfo_19',['PipelineLayoutInfo',['../structtz_1_1gl_1_1vk2_1_1_pipeline_layout_info.html',1,'tz::gl::vk2']]], + ['pipelinestage_20',['PipelineStage',['../group__tz__gl__vk__graphics__pipeline.html#gaa581c5a329a76e48f41ca02bd263251a',1,'tz::gl::vk2']]], + ['pipelinestate_21',['PipelineState',['../structtz_1_1gl_1_1vk2_1_1_pipeline_state.html',1,'tz::gl::vk2']]], + ['point_22',['Point',['../group__tz__gl__vk__graphics__pipeline__fixed.html#ggaaeda985d06849d890d7ba2902688cd01a2a3cd5946cfd317eb99c3d32e35e2d4c',1,'tz::gl::vk2']]], + ['polygon_5fmode_23',['polygon_mode',['../structtz_1_1gl_1_1vk2_1_1_rasteriser_state.html#a791ff910d8069973e2ac715a7fbf0a34',1,'tz::gl::vk2::RasteriserState']]], + ['polygonmode_24',['PolygonMode',['../group__tz__gl__vk__graphics__pipeline__fixed.html#gaaeda985d06849d890d7ba2902688cd01',1,'tz::gl::vk2']]], + ['polymorphiclist_25',['polymorphiclist',['../classtz_1_1_polymorphic_list.html#abc16be83e1ee23b79e3f6025015cc036',1,'tz::PolymorphicList::PolymorphicList()'],['../classtz_1_1_polymorphic_list.html',1,'tz::PolymorphicList< T, Allocator >']]], + ['poollimits_26',['PoolLimits',['../structtz_1_1gl_1_1vk2_1_1_descriptor_pool_info_1_1_pool_limits.html',1,'tz::gl::vk2::DescriptorPoolInfo']]], + ['pooloutofmemory_27',['PoolOutOfMemory',['../structtz_1_1gl_1_1vk2_1_1_descriptor_pool_1_1_allocation_result.html#abad85d19de3197a840dc5e69ad797c54a59ea7060f6bf874416655509987eaa47',1,'tz::gl::vk2::DescriptorPool::AllocationResult']]], + ['pools_28',['Command Buffers and Pools',['../group__tz__gl__vk__commands.html',1,'']]], + ['pop_5flast_5fkey_29',['pop_last_key',['../structtz_1_1wsi_1_1keyboard__state.html#aff2a1e6ef218cd37ac2628ae96b20492',1,'tz::wsi::keyboard_state']]], + ['pow_30',['pow',['../group__tzsl__math.html#ga9f34e69d9b60f40eff093810b901758f',1,'tz::math']]], + ['precomputed_20meshes_31',['Precomputed Meshes',['../group__tzsl__mesh.html',1,'']]], + ['present_32',['present',['../classtz_1_1gl_1_1vk2_1_1hardware_1_1_queue.html#aa4f3d7a351fe699cd90ea6457c64caee',1,'tz::gl::vk2::hardware::Queue::present()'],['../group__tz__gl__vk__image.html#gga4ca55be3d1c101900d800a78deeb595fadd058df87f5c88e3285a28ad7406a3c6',1,'Presenttz::gl::vk2']]], + ['present_5fimage_33',['present_image',['../classtz_1_1gl_1_1device__command__pool.html#ab1098fdc258d74a3017f6eae5f2b2e18',1,'tz::gl::device_command_pool']]], + ['present_5fmode_34',['present_mode',['../structtz_1_1gl_1_1vk2_1_1_swapchain_info.html#a36db578d14d66370bc66718ef6ad9ebd',1,'tz::gl::vk2::SwapchainInfo']]], + ['present_5fsupport_35',['present_support',['../structtz_1_1gl_1_1vk2_1_1_queue_request.html#a14749d3d7e932216e42c76500bb4645a',1,'tz::gl::vk2::QueueRequest']]], + ['presentation_20and_20window_20surface_20interation_20wsi_36',['Presentation and Window Surface Interation (WSI)',['../group__tz__gl__vk__presentation.html',1,'']]], + ['presentinfo_37',['PresentInfo',['../structtz_1_1gl_1_1vk2_1_1hardware_1_1_queue_1_1_present_info.html',1,'tz::gl::vk2::hardware::Queue']]], + ['presentresult_38',['PresentResult',['../classtz_1_1gl_1_1vk2_1_1hardware_1_1_queue.html#a85b458bfb664176d140abf3b6b627e67',1,'tz::gl::vk2::hardware::Queue']]], + ['primitives_39',['Synchronisation Primitives',['../group__tz__gl__vk__sync.html',1,'']]], + ['printf_40',['printf',['../group__tzsl__debug.html#ga401528dfbbe8d1188886cc571d1265b6',1,'tz::debug']]], + ['programs_20and_20modules_41',['Shader Programs and Modules',['../group__tz__gl__vk__graphics__pipeline__shader.html',1,'']]], + ['ptr_42',['ptr',['../structtz_1_1memblk.html#a1fbc7ecd17b8e88fafd516f747371d5d',1,'tz::memblk']]] +]; diff --git a/search/classes_0.js b/search/classes_0.js new file mode 100644 index 0000000000..16d418964c --- /dev/null +++ b/search/classes_0.js @@ -0,0 +1,15 @@ +var searchData= +[ + ['allocation_0',['allocation',['../structtz_1_1gl_1_1vk2_1_1_command_pool_1_1_allocation.html',1,'tz::gl::vk2::CommandPool::Allocation'],['../structtz_1_1gl_1_1vk2_1_1_descriptor_pool_1_1_allocation.html',1,'tz::gl::vk2::DescriptorPool::Allocation']]], + ['allocationresult_1',['allocationresult',['../structtz_1_1gl_1_1vk2_1_1_command_pool_1_1_allocation_result.html',1,'tz::gl::vk2::CommandPool::AllocationResult'],['../structtz_1_1gl_1_1vk2_1_1_descriptor_pool_1_1_allocation_result.html',1,'tz::gl::vk2::DescriptorPool::AllocationResult']]], + ['allocator_5fadapter_2',['allocator_adapter',['../classtz_1_1allocator__adapter.html',1,'tz']]], + ['anim_5frenderer_3',['anim_renderer',['../classtz_1_1ren_1_1anim__renderer.html',1,'tz::ren']]], + ['animation_5fplayback_5ft_4',['animation_playback_t',['../structtz_1_1ren_1_1animation__renderer_1_1gltf__info_1_1animation__playback__t.html',1,'tz::ren::animation_renderer::gltf_info']]], + ['animation_5frenderer_5',['animation_renderer',['../classtz_1_1ren_1_1animation__renderer.html',1,'tz::ren']]], + ['asset_5fpackage_6',['asset_package',['../structtz_1_1ren_1_1animation__renderer_1_1asset__package.html',1,'tz::ren::animation_renderer']]], + ['assetstoragecommon_7',['AssetStorageCommon',['../classtz_1_1gl_1_1_asset_storage_common.html',1,'tz::gl']]], + ['assetstoragecommon_3c_20iresource_20_3e_8',['AssetStorageCommon< iresource >',['../classtz_1_1gl_1_1_asset_storage_common.html',1,'tz::gl']]], + ['attachment_9',['Attachment',['../structtz_1_1gl_1_1vk2_1_1_attachment.html',1,'tz::gl::vk2']]], + ['attachmentreference_10',['AttachmentReference',['../structtz_1_1gl_1_1vk2_1_1_render_pass_info_1_1_attachment_reference.html',1,'tz::gl::vk2::RenderPassInfo']]], + ['attribute_11',['Attribute',['../structtz_1_1gl_1_1vk2_1_1_vertex_input_state_1_1_attribute.html',1,'tz::gl::vk2::VertexInputState']]] +]; diff --git a/search/classes_1.js b/search/classes_1.js new file mode 100644 index 0000000000..ee23d5487a --- /dev/null +++ b/search/classes_1.js @@ -0,0 +1,50 @@ +var searchData= +[ + ['basic_5flist_0',['basic_list',['../classtz_1_1basic__list.html',1,'tz']]], + ['basic_5flist_3c_20attachmentstate_20_3e_1',['basic_list< AttachmentState >',['../classtz_1_1basic__list.html',1,'tz']]], + ['basic_5flist_3c_20const_20tz_3a_3agl_3a_3avk2_3a_3abinarysemaphore_20_2a_20_3e_2',['basic_list< const tz::gl::vk2::BinarySemaphore * >',['../classtz_1_1basic__list.html',1,'tz']]], + ['basic_5flist_3c_20const_20tz_3a_3agl_3a_3avk2_3a_3acommandbuffer_20_2a_20_3e_3',['basic_list< const tz::gl::vk2::CommandBuffer * >',['../classtz_1_1basic__list.html',1,'tz']]], + ['basic_5flist_3c_20const_20tz_3a_3agl_3a_3avk2_3a_3adescriptorlayout_20_2a_20_3e_4',['basic_list< const tz::gl::vk2::DescriptorLayout * >',['../classtz_1_1basic__list.html',1,'tz']]], + ['basic_5flist_3c_20const_20tz_3a_3agl_3a_3avk2_3a_3adescriptorset_20_2a_20_3e_5',['basic_list< const tz::gl::vk2::DescriptorSet * >',['../classtz_1_1basic__list.html',1,'tz']]], + ['basic_5flist_3c_20framebuffer_5ftexture_20_3e_6',['basic_list< framebuffer_texture >',['../classtz_1_1basic__list.html',1,'tz']]], + ['basic_5flist_3c_20list_20_3e_7',['basic_list< List >',['../classtz_1_1basic__list.html',1,'tz']]], + ['basic_5flist_3c_20smartpointer_2c_20std_3a_3aallocator_3c_20std_3a_3aunique_5fptr_3c_20t_20_3e_20_3e_20_3e_8',['basic_list< SmartPointer, std::allocator< std::unique_ptr< T > > >',['../classtz_1_1basic__list.html',1,'tz']]], + ['basic_5flist_3c_20std_3a_3auint32_5ft_20_3e_9',['basic_list< std::uint32_t >',['../classtz_1_1basic__list.html',1,'tz']]], + ['basic_5flist_3c_20tz_3a_3agl_3a_3aicomponent_20_2a_20_3e_10',['basic_list< tz::gl::icomponent * >',['../classtz_1_1basic__list.html',1,'tz']]], + ['basic_5flist_3c_20tz_3a_3agl_3a_3aogl2_3a_3ashader_5fmodule_5finfo_20_3e_11',['basic_list< tz::gl::ogl2::shader_module_info >',['../classtz_1_1basic__list.html',1,'tz']]], + ['basic_5flist_3c_20tz_3a_3agl_3a_3avk2_3a_3aattachment_20_3e_12',['basic_list< tz::gl::vk2::Attachment >',['../classtz_1_1basic__list.html',1,'tz']]], + ['basic_5flist_3c_20tz_3a_3agl_3a_3avk2_3a_3acommandbuffer_20_3e_13',['basic_list< tz::gl::vk2::CommandBuffer >',['../classtz_1_1basic__list.html',1,'tz']]], + ['basic_5flist_3c_20tz_3a_3agl_3a_3avk2_3a_3adescriptorlayoutinfo_3a_3abindinginfo_20_3e_14',['basic_list< tz::gl::vk2::DescriptorLayoutInfo::BindingInfo >',['../classtz_1_1basic__list.html',1,'tz']]], + ['basic_5flist_3c_20tz_3a_3agl_3a_3avk2_3a_3adescriptorset_20_3e_15',['basic_list< tz::gl::vk2::DescriptorSet >',['../classtz_1_1basic__list.html',1,'tz']]], + ['basic_5flist_3c_20tz_3a_3agl_3a_3avk2_3a_3ahardware_3a_3aqueue_3a_3asubmitinfo_3a_3asignalinfo_20_3e_16',['basic_list< tz::gl::vk2::hardware::Queue::SubmitInfo::SignalInfo >',['../classtz_1_1basic__list.html',1,'tz']]], + ['basic_5flist_3c_20tz_3a_3agl_3a_3avk2_3a_3ahardware_3a_3aqueue_3a_3asubmitinfo_3a_3awaitinfo_20_3e_17',['basic_list< tz::gl::vk2::hardware::Queue::SubmitInfo::WaitInfo >',['../classtz_1_1basic__list.html',1,'tz']]], + ['basic_5flist_3c_20tz_3a_3agl_3a_3avk2_3a_3aimageview_20_2a_20_3e_18',['basic_list< tz::gl::vk2::ImageView * >',['../classtz_1_1basic__list.html',1,'tz']]], + ['basic_5flist_3c_20tz_3a_3agl_3a_3avk2_3a_3arenderpassinfo_3a_3aattachmentreference_20_3e_19',['basic_list< tz::gl::vk2::RenderPassInfo::AttachmentReference >',['../classtz_1_1basic__list.html',1,'tz']]], + ['basic_5flist_3c_20tz_3a_3agl_3a_3avk2_3a_3arenderpassinfo_3a_3ainputattachmentreference_20_3e_20',['basic_list< tz::gl::vk2::RenderPassInfo::InputAttachmentReference >',['../classtz_1_1basic__list.html',1,'tz']]], + ['basic_5flist_3c_20tz_3a_3agl_3a_3avk2_3a_3arenderpassinfo_3a_3asubpass_20_3e_21',['basic_list< tz::gl::vk2::RenderPassInfo::Subpass >',['../classtz_1_1basic__list.html',1,'tz']]], + ['basic_5flist_3c_20tz_3a_3agl_3a_3avk2_3a_3ashadermoduleinfo_20_3e_22',['basic_list< tz::gl::vk2::ShaderModuleInfo >',['../classtz_1_1basic__list.html',1,'tz']]], + ['basic_5flist_3c_20tz_3a_3agl_3a_3avk2_3a_3avertexinputstate_3a_3aattribute_20_3e_23',['basic_list< tz::gl::vk2::VertexInputState::Attribute >',['../classtz_1_1basic__list.html',1,'tz']]], + ['basic_5flist_3c_20tz_3a_3agl_3a_3avk2_3a_3avertexinputstate_3a_3abinding_20_3e_24',['basic_list< tz::gl::vk2::VertexInputState::Binding >',['../classtz_1_1basic__list.html',1,'tz']]], + ['basic_5flist_3c_20vkpipelineshaderstagecreateinfo_20_3e_25',['basic_list< VkPipelineShaderStageCreateInfo >',['../classtz_1_1basic__list.html',1,'tz']]], + ['basic_5flist_3c_20vkrect2d_20_3e_26',['basic_list< VkRect2D >',['../classtz_1_1basic__list.html',1,'tz']]], + ['basic_5flist_3c_20vkviewport_20_3e_27',['basic_list< VkViewport >',['../classtz_1_1basic__list.html',1,'tz']]], + ['basic_5flist_3c_20write_20_3e_28',['basic_list< Write >',['../classtz_1_1basic__list.html',1,'tz']]], + ['begindynamicrendering_29',['BeginDynamicRendering',['../structtz_1_1gl_1_1vk2_1_1_vulkan_command_1_1_begin_dynamic_rendering.html',1,'tz::gl::vk2::VulkanCommand']]], + ['beginrenderpass_30',['BeginRenderPass',['../structtz_1_1gl_1_1vk2_1_1_vulkan_command_1_1_begin_render_pass.html',1,'tz::gl::vk2::VulkanCommand']]], + ['binarysemaphore_31',['BinarySemaphore',['../classtz_1_1gl_1_1vk2_1_1_binary_semaphore.html',1,'tz::gl::vk2']]], + ['bindbuffer_32',['BindBuffer',['../structtz_1_1gl_1_1vk2_1_1_vulkan_command_1_1_bind_buffer.html',1,'tz::gl::vk2::VulkanCommand']]], + ['binddescriptorsets_33',['BindDescriptorSets',['../structtz_1_1gl_1_1vk2_1_1_vulkan_command_1_1_bind_descriptor_sets.html',1,'tz::gl::vk2::VulkanCommand']]], + ['bindindexbuffer_34',['BindIndexBuffer',['../structtz_1_1gl_1_1vk2_1_1_vulkan_command_1_1_bind_index_buffer.html',1,'tz::gl::vk2::VulkanCommand']]], + ['binding_35',['Binding',['../structtz_1_1gl_1_1vk2_1_1_vertex_input_state_1_1_binding.html',1,'tz::gl::vk2::VertexInputState']]], + ['bindinginfo_36',['BindingInfo',['../structtz_1_1gl_1_1vk2_1_1_descriptor_layout_info_1_1_binding_info.html',1,'tz::gl::vk2::DescriptorLayoutInfo']]], + ['bindpipeline_37',['BindPipeline',['../structtz_1_1gl_1_1vk2_1_1_vulkan_command_1_1_bind_pipeline.html',1,'tz::gl::vk2::VulkanCommand']]], + ['buffer_38',['buffer',['../classtz_1_1gl_1_1ogl2_1_1buffer.html',1,'tz::gl::ogl2::buffer'],['../classtz_1_1gl_1_1vk2_1_1_buffer.html',1,'tz::gl::vk2::Buffer']]], + ['buffer_5fcomponent_5fogl_39',['buffer_component_ogl',['../classtz_1_1gl_1_1buffer__component__ogl.html',1,'tz::gl']]], + ['buffer_5fcomponent_5fvulkan_40',['buffer_component_vulkan',['../classtz_1_1gl_1_1buffer__component__vulkan.html',1,'tz::gl']]], + ['buffer_5finfo_41',['buffer_info',['../structtz_1_1gl_1_1buffer__info.html',1,'tz::gl::buffer_info'],['../structtz_1_1gl_1_1ogl2_1_1buffer__info.html',1,'tz::gl::ogl2::buffer_info'],['../structtz_1_1gl_1_1vk2_1_1buffer__info.html',1,'tz::gl::vk2::buffer_info']]], + ['buffer_5fresize_42',['buffer_resize',['../structtz_1_1gl_1_1renderer__edit_1_1buffer__resize.html',1,'tz::gl::renderer_edit']]], + ['buffer_5fresource_43',['buffer_resource',['../classtz_1_1gl_1_1buffer__resource.html',1,'tz::gl']]], + ['buffercopybuffer_44',['BufferCopyBuffer',['../structtz_1_1gl_1_1vk2_1_1_vulkan_command_1_1_buffer_copy_buffer.html',1,'tz::gl::vk2::VulkanCommand']]], + ['buffercopyimage_45',['BufferCopyImage',['../structtz_1_1gl_1_1vk2_1_1_vulkan_command_1_1_buffer_copy_image.html',1,'tz::gl::vk2::VulkanCommand']]], + ['bufferwriteinfo_46',['BufferWriteInfo',['../structtz_1_1gl_1_1vk2_1_1_descriptor_set_1_1_write_1_1_buffer_write_info.html',1,'tz::gl::vk2::DescriptorSet::Write']]] +]; diff --git a/search/classes_10.js b/search/classes_10.js new file mode 100644 index 0000000000..39a63bfd9b --- /dev/null +++ b/search/classes_10.js @@ -0,0 +1,10 @@ +var searchData= +[ + ['quat_0',['quat',['../classtz_1_1quat.html',1,'tz']]], + ['queue_1',['Queue',['../classtz_1_1gl_1_1vk2_1_1hardware_1_1_queue.html',1,'tz::gl::vk2::hardware']]], + ['queued_5fanim_2',['queued_anim',['../structtz_1_1ren_1_1animation__renderer_1_1gltf__info_1_1animation__playback__t_1_1queued__anim.html',1,'tz::ren::animation_renderer::gltf_info::animation_playback_t']]], + ['queuefamilyinfo_3',['QueueFamilyInfo',['../structtz_1_1gl_1_1vk2_1_1_queue_family_info.html',1,'tz::gl::vk2']]], + ['queueinfo_4',['QueueInfo',['../structtz_1_1gl_1_1vk2_1_1hardware_1_1_queue_info.html',1,'tz::gl::vk2::hardware']]], + ['queuerequest_5',['QueueRequest',['../structtz_1_1gl_1_1vk2_1_1_queue_request.html',1,'tz::gl::vk2']]], + ['queuestorage_6',['QueueStorage',['../classtz_1_1gl_1_1vk2_1_1_queue_storage.html',1,'tz::gl::vk2']]] +]; diff --git a/search/classes_11.js b/search/classes_11.js new file mode 100644 index 0000000000..d7e61007e6 --- /dev/null +++ b/search/classes_11.js @@ -0,0 +1,31 @@ +var searchData= +[ + ['rasteriserstate_0',['RasteriserState',['../structtz_1_1gl_1_1vk2_1_1_rasteriser_state.html',1,'tz::gl::vk2']]], + ['render_5fbuffer_1',['render_buffer',['../classtz_1_1gl_1_1ogl2_1_1render__buffer.html',1,'tz::gl::ogl2']]], + ['render_5fbuffer_5finfo_2',['render_buffer_info',['../structtz_1_1gl_1_1ogl2_1_1render__buffer__info.html',1,'tz::gl::ogl2']]], + ['render_5fconfig_3',['render_config',['../structtz_1_1gl_1_1renderer__edit_1_1render__config.html',1,'tz::gl::renderer_edit']]], + ['render_5fstate_4',['render_state',['../structtz_1_1gl_1_1render__state.html',1,'tz::gl']]], + ['render_5ftarget_5ft_5',['render_target_t',['../structtz_1_1gl_1_1renderer__output__manager_1_1render__target__t.html',1,'tz::gl::renderer_output_manager']]], + ['renderer_6',['renderer',['../classtz_1_1gl_1_1renderer.html',1,'tz::gl']]], + ['renderer_5fcommand_5fprocessor_7',['renderer_command_processor',['../classtz_1_1gl_1_1renderer__command__processor.html',1,'tz::gl']]], + ['renderer_5fdescriptor_5fmanager_8',['renderer_descriptor_manager',['../classtz_1_1gl_1_1renderer__descriptor__manager.html',1,'tz::gl']]], + ['renderer_5fedit_9',['renderer_edit',['../structtz_1_1gl_1_1renderer__edit.html',1,'tz::gl']]], + ['renderer_5finfo_10',['renderer_info',['../classtz_1_1gl_1_1renderer__info.html',1,'tz::gl']]], + ['renderer_5fogl_11',['renderer_ogl',['../classtz_1_1gl_1_1renderer__ogl.html',1,'tz::gl']]], + ['renderer_5fogl_5fbase_12',['renderer_ogl_base',['../structtz_1_1gl_1_1renderer__ogl__base.html',1,'tz::gl']]], + ['renderer_5foutput_5fmanager_13',['renderer_output_manager',['../classtz_1_1gl_1_1renderer__output__manager.html',1,'tz::gl']]], + ['renderer_5fpipeline_14',['renderer_pipeline',['../classtz_1_1gl_1_1renderer__pipeline.html',1,'tz::gl']]], + ['renderer_5fresource_5fmanager_15',['renderer_resource_manager',['../classtz_1_1gl_1_1renderer__resource__manager.html',1,'tz::gl']]], + ['renderer_5ftag_16',['renderer_tag',['../structtz_1_1gl_1_1detail_1_1renderer__tag.html',1,'tz::gl::detail']]], + ['renderer_5fvulkan2_17',['renderer_vulkan2',['../classtz_1_1gl_1_1renderer__vulkan2.html',1,'tz::gl']]], + ['renderer_5fvulkan_5fbase_18',['renderer_vulkan_base',['../structtz_1_1gl_1_1renderer__vulkan__base.html',1,'tz::gl']]], + ['renderereditbuilder_19',['RendererEditBuilder',['../classtz_1_1gl_1_1_renderer_edit_builder.html',1,'tz::gl']]], + ['renderpass_20',['RenderPass',['../classtz_1_1gl_1_1vk2_1_1_render_pass.html',1,'tz::gl::vk2']]], + ['renderpassbuilder_21',['RenderPassBuilder',['../classtz_1_1gl_1_1vk2_1_1_render_pass_builder.html',1,'tz::gl::vk2']]], + ['renderpassinfo_22',['RenderPassInfo',['../structtz_1_1gl_1_1vk2_1_1_render_pass_info.html',1,'tz::gl::vk2']]], + ['renderpassrun_23',['RenderPassRun',['../classtz_1_1gl_1_1vk2_1_1_command_buffer_recording_1_1_render_pass_run.html',1,'tz::gl::vk2::CommandBufferRecording']]], + ['resource_24',['resource',['../classtz_1_1gl_1_1resource.html',1,'tz::gl']]], + ['resource_5freference_25',['resource_reference',['../structtz_1_1gl_1_1renderer__edit_1_1resource__reference.html',1,'tz::gl::renderer_edit']]], + ['resource_5fwrite_26',['resource_write',['../structtz_1_1gl_1_1renderer__edit_1_1resource__write.html',1,'tz::gl::renderer_edit']]], + ['resourcestorage_27',['ResourceStorage',['../classtz_1_1gl_1_1_resource_storage.html',1,'tz::gl']]] +]; diff --git a/search/classes_12.js b/search/classes_12.js new file mode 100644 index 0000000000..bdbbc505ba --- /dev/null +++ b/search/classes_12.js @@ -0,0 +1,34 @@ +var searchData= +[ + ['sampler_0',['sampler',['../classtz_1_1gl_1_1vk2_1_1_sampler.html',1,'tz::gl::vk2::Sampler'],['../structtz_1_1gl_1_1ogl2_1_1sampler.html',1,'tz::gl::ogl2::sampler']]], + ['samplerinfo_1',['SamplerInfo',['../structtz_1_1gl_1_1vk2_1_1_sampler_info.html',1,'tz::gl::vk2']]], + ['schedule_2',['schedule',['../structtz_1_1gl_1_1schedule.html',1,'tz::gl']]], + ['scissor_3',['scissor',['../structtz_1_1gl_1_1renderer__edit_1_1scissor.html',1,'tz::gl::renderer_edit']]], + ['scissor_5fregion_4',['scissor_region',['../structtz_1_1gl_1_1scissor__region.html',1,'tz::gl']]], + ['setscissordynamic_5',['SetScissorDynamic',['../structtz_1_1gl_1_1vk2_1_1_vulkan_command_1_1_set_scissor_dynamic.html',1,'tz::gl::vk2::VulkanCommand']]], + ['shader_6',['shader',['../classtz_1_1gl_1_1ogl2_1_1shader.html',1,'tz::gl::ogl2::shader'],['../classtz_1_1gl_1_1vk2_1_1_shader.html',1,'tz::gl::vk2::Shader']]], + ['shader_5finfo_7',['shader_info',['../structtz_1_1gl_1_1ogl2_1_1shader__info.html',1,'tz::gl::ogl2::shader_info'],['../classtz_1_1gl_1_1shader__info.html',1,'tz::gl::shader_info']]], + ['shader_5fmeta_8',['shader_meta',['../structtz_1_1gl_1_1shader__meta.html',1,'tz::gl']]], + ['shader_5fmodule_9',['shader_module',['../classtz_1_1gl_1_1ogl2_1_1shader__module.html',1,'tz::gl::ogl2']]], + ['shader_5fmodule_5finfo_10',['shader_module_info',['../structtz_1_1gl_1_1ogl2_1_1shader__module__info.html',1,'tz::gl::ogl2']]], + ['shaderinfo_11',['ShaderInfo',['../structtz_1_1gl_1_1vk2_1_1_shader_info.html',1,'tz::gl::vk2']]], + ['shadermanager_12',['ShaderManager',['../classtz_1_1gl_1_1_shader_manager.html',1,'tz::gl']]], + ['shadermodule_13',['ShaderModule',['../classtz_1_1gl_1_1vk2_1_1_shader_module.html',1,'tz::gl::vk2']]], + ['shadermoduleinfo_14',['ShaderModuleInfo',['../structtz_1_1gl_1_1vk2_1_1_shader_module_info.html',1,'tz::gl::vk2']]], + ['shaderpipelinedata_15',['ShaderPipelineData',['../structtz_1_1gl_1_1vk2_1_1_shader_pipeline_data.html',1,'tz::gl::vk2']]], + ['signalinfo_16',['SignalInfo',['../structtz_1_1gl_1_1vk2_1_1hardware_1_1_queue_1_1_submit_info_1_1_signal_info.html',1,'tz::gl::vk2::hardware::Queue::SubmitInfo']]], + ['source_5floc_17',['source_loc',['../structtz_1_1detail_1_1source__loc.html',1,'tz::detail']]], + ['stack_5fallocator_18',['stack_allocator',['../classtz_1_1stack__allocator.html',1,'tz']]], + ['state_19',['state',['../classtz_1_1lua_1_1state.html',1,'tz::lua']]], + ['static_5ffor_5ft_20',['static_for_t',['../structtz_1_1static__for__t.html',1,'tz']]], + ['static_5ffor_5ft_3c_20n_2c_20n_20_3e_21',['static_for_t< N, N >',['../structtz_1_1static__for__t_3_01_n_00_01_n_01_4.html',1,'tz']]], + ['stored_5fassets_22',['stored_assets',['../structtz_1_1ren_1_1anim__renderer_1_1stored__assets.html',1,'tz::ren::anim_renderer']]], + ['submesh_23',['submesh',['../structtz_1_1io_1_1gltf__mesh_1_1submesh.html',1,'tz::io::gltf_mesh']]], + ['submitinfo_24',['SubmitInfo',['../structtz_1_1gl_1_1vk2_1_1hardware_1_1_queue_1_1_submit_info.html',1,'tz::gl::vk2::hardware::Queue']]], + ['subpass_25',['Subpass',['../structtz_1_1gl_1_1vk2_1_1_render_pass_info_1_1_subpass.html',1,'tz::gl::vk2::RenderPassInfo']]], + ['subpassbuilder_26',['SubpassBuilder',['../classtz_1_1gl_1_1vk2_1_1_subpass_builder.html',1,'tz::gl::vk2']]], + ['swapchain_27',['Swapchain',['../classtz_1_1gl_1_1vk2_1_1_swapchain.html',1,'tz::gl::vk2']]], + ['swapchainextent_28',['SwapchainExtent',['../structtz_1_1gl_1_1vk2_1_1_physical_device_surface_capability_info_1_1_swapchain_extent.html',1,'tz::gl::vk2::PhysicalDeviceSurfaceCapabilityInfo']]], + ['swapchainimageinfo_29',['SwapchainImageInfo',['../structtz_1_1gl_1_1vk2_1_1_swapchain_image_info.html',1,'tz::gl::vk2']]], + ['swapchaininfo_30',['SwapchainInfo',['../structtz_1_1gl_1_1vk2_1_1_swapchain_info.html',1,'tz::gl::vk2']]] +]; diff --git a/search/classes_13.js b/search/classes_13.js new file mode 100644 index 0000000000..57987c5116 --- /dev/null +++ b/search/classes_13.js @@ -0,0 +1,15 @@ +var searchData= +[ + ['texture_5flocator_0',['texture_locator',['../structtexture__locator.html',1,'texture_locator'],['../structtz_1_1ren_1_1texture__locator.html',1,'tz::ren::texture_locator']]], + ['texture_5ftag_5ft_1',['texture_tag_t',['../structtz_1_1ren_1_1detail_1_1texture__tag__t.html',1,'tz::ren::detail']]], + ['timeline_5ft_2',['timeline_t',['../structtz_1_1gl_1_1timeline__t.html',1,'tz::gl']]], + ['timelinesemaphore_3',['TimelineSemaphore',['../classtz_1_1gl_1_1vk2_1_1_timeline_semaphore.html',1,'tz::gl::vk2']]], + ['topazplatformdata_4',['TopazPlatformData',['../structtz_1_1dbgui_1_1_topaz_platform_data.html',1,'tz::dbgui']]], + ['topazrenderdata_5',['TopazRenderData',['../structtz_1_1dbgui_1_1_topaz_render_data.html',1,'tz::dbgui']]], + ['topazshaderrenderdata_6',['TopazShaderRenderData',['../structtz_1_1dbgui_1_1_topaz_shader_render_data.html',1,'tz::dbgui']]], + ['transform_5fhierarchy_7',['transform_hierarchy',['../classtz_1_1transform__hierarchy.html',1,'tz']]], + ['transform_5fhierarchy_3c_20std_3a_3auint32_5ft_20_3e_8',['transform_hierarchy< std::uint32_t >',['../classtz_1_1transform__hierarchy.html',1,'tz']]], + ['transform_5fnode_9',['transform_node',['../structtz_1_1transform__node.html',1,'tz']]], + ['transitionimagelayout_10',['TransitionImageLayout',['../structtz_1_1gl_1_1vk2_1_1_vulkan_command_1_1_transition_image_layout.html',1,'tz::gl::vk2::VulkanCommand']]], + ['trs_11',['trs',['../structtz_1_1trs.html',1,'tz']]] +]; diff --git a/search/classes_14.js b/search/classes_14.js new file mode 100644 index 0000000000..a81cba8e90 --- /dev/null +++ b/search/classes_14.js @@ -0,0 +1,7 @@ +var searchData= +[ + ['unique_5fcloneable_0',['unique_cloneable',['../classtz_1_1unique__cloneable.html',1,'tz']]], + ['unique_5fcloneable_3c_20ioutput_20_3e_1',['unique_cloneable< ioutput >',['../classtz_1_1unique__cloneable.html',1,'tz']]], + ['unique_5fcloneable_3c_20iresource_20_3e_2',['unique_cloneable< iresource >',['../classtz_1_1unique__cloneable.html',1,'tz']]], + ['updaterequest_3',['UpdateRequest',['../classtz_1_1gl_1_1vk2_1_1_descriptor_pool_1_1_update_request.html',1,'tz::gl::vk2::DescriptorPool']]] +]; diff --git a/search/classes_15.js b/search/classes_15.js new file mode 100644 index 0000000000..b6766eb4aa --- /dev/null +++ b/search/classes_15.js @@ -0,0 +1,21 @@ +var searchData= +[ + ['vector_0',['vector',['../classtz_1_1vector.html',1,'tz']]], + ['vector_3c_20float_2c_203_20_3e_1',['vector< float, 3 >',['../classtz_1_1vector.html',1,'tz']]], + ['vector_3c_20float_2c_204_20_3e_2',['vector< float, 4 >',['../classtz_1_1vector.html',1,'tz']]], + ['vector_3c_20std_3a_3auint32_5ft_2c_202_20_3e_3',['vector< std::uint32_t, 2 >',['../classtz_1_1vector.html',1,'tz']]], + ['vector_3c_20std_3a_3auint32_5ft_2c_204_20_3e_4',['vector< std::uint32_t, 4 >',['../classtz_1_1vector.html',1,'tz']]], + ['vector_3c_20unsigned_20int_2c_202_20_3e_5',['vector< unsigned int, 2 >',['../classtz_1_1vector.html',1,'tz']]], + ['vector_3c_20unsigned_20int_2c_203_20_3e_6',['vector< unsigned int, 3 >',['../classtz_1_1vector.html',1,'tz']]], + ['version_7',['version',['../structtz_1_1version.html',1,'tz']]], + ['vertex_8',['vertex',['../structtz_1_1ren_1_1vertex.html',1,'tz::ren']]], + ['vertex_5farray_9',['vertex_array',['../classtz_1_1gl_1_1ogl2_1_1vertex__array.html',1,'tz::gl::ogl2']]], + ['vertex_5ft_10',['vertex_t',['../structvertex__t.html',1,'']]], + ['vertexinputstate_11',['VertexInputState',['../structtz_1_1gl_1_1vk2_1_1_vertex_input_state.html',1,'tz::gl::vk2']]], + ['viewport_5fregion_12',['viewport_region',['../structtz_1_1gl_1_1viewport__region.html',1,'tz::gl']]], + ['viewportstate_13',['ViewportState',['../structtz_1_1gl_1_1vk2_1_1_viewport_state.html',1,'tz::gl::vk2']]], + ['vulkancommand_14',['VulkanCommand',['../structtz_1_1gl_1_1vk2_1_1_vulkan_command.html',1,'tz::gl::vk2']]], + ['vulkandebugmessenger_15',['VulkanDebugMessenger',['../classtz_1_1gl_1_1vk2_1_1_vulkan_debug_messenger.html',1,'tz::gl::vk2']]], + ['vulkaninstance_16',['VulkanInstance',['../classtz_1_1gl_1_1vk2_1_1_vulkan_instance.html',1,'tz::gl::vk2']]], + ['vulkaninstanceinfo_17',['VulkanInstanceInfo',['../structtz_1_1gl_1_1vk2_1_1_vulkan_instance_info.html',1,'tz::gl::vk2']]] +]; diff --git a/search/classes_16.js b/search/classes_16.js new file mode 100644 index 0000000000..b228df5765 --- /dev/null +++ b/search/classes_16.js @@ -0,0 +1,14 @@ +var searchData= +[ + ['waitinfo_0',['WaitInfo',['../structtz_1_1gl_1_1vk2_1_1hardware_1_1_queue_1_1_submit_info_1_1_wait_info.html',1,'tz::gl::vk2::hardware::Queue::SubmitInfo']]], + ['wgl_5ffunction_5fdata_1',['wgl_function_data',['../structtz_1_1wsi_1_1impl_1_1wgl__function__data.html',1,'tz::wsi::impl']]], + ['window_2',['window',['../structtz_1_1wsi_1_1window.html',1,'tz::wsi']]], + ['window_5fhandle_5ftag_3',['window_handle_tag',['../structtz_1_1wsi_1_1detail_1_1window__handle__tag.html',1,'tz::wsi::detail']]], + ['window_5finfo_4',['window_info',['../structtz_1_1wsi_1_1window__info.html',1,'tz::wsi']]], + ['window_5fmanager_5',['window_manager',['../structtz_1_1wsi_1_1window__manager.html',1,'tz::wsi']]], + ['window_5foutput_6',['window_output',['../classtz_1_1gl_1_1window__output.html',1,'tz::gl']]], + ['window_5fwinapi_7',['window_winapi',['../classtz_1_1wsi_1_1impl_1_1window__winapi.html',1,'tz::wsi::impl']]], + ['window_5fx11_8',['window_x11',['../classtz_1_1wsi_1_1impl_1_1window__x11.html',1,'tz::wsi::impl']]], + ['windowsurface_9',['WindowSurface',['../classtz_1_1gl_1_1vk2_1_1_window_surface.html',1,'tz::gl::vk2']]], + ['write_10',['Write',['../structtz_1_1gl_1_1vk2_1_1_descriptor_set_1_1_write.html',1,'tz::gl::vk2::DescriptorSet']]] +]; diff --git a/search/classes_17.js b/search/classes_17.js new file mode 100644 index 0000000000..01db355ace --- /dev/null +++ b/search/classes_17.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['x11_5fdisplay_5fdata_0',['x11_display_data',['../structtz_1_1wsi_1_1impl_1_1x11__display__data.html',1,'tz::wsi::impl']]] +]; diff --git a/search/classes_2.js b/search/classes_2.js new file mode 100644 index 0000000000..286ff12792 --- /dev/null +++ b/search/classes_2.js @@ -0,0 +1,17 @@ +var searchData= +[ + ['callback_0',['callback',['../classtz_1_1callback.html',1,'tz']]], + ['callback_5ftype_1',['callback_type',['../structtz_1_1detail_1_1callback__type.html',1,'tz::detail']]], + ['camera_5fdata_2',['camera_data',['../structtz_1_1ren_1_1camera__data.html',1,'tz::ren']]], + ['colourblendstate_3',['ColourBlendState',['../structtz_1_1gl_1_1vk2_1_1_colour_blend_state.html',1,'tz::gl::vk2']]], + ['commandbuffer_4',['CommandBuffer',['../classtz_1_1gl_1_1vk2_1_1_command_buffer.html',1,'tz::gl::vk2']]], + ['commandbufferdata_5',['CommandBufferData',['../structtz_1_1gl_1_1vk2_1_1_command_buffer_data.html',1,'tz::gl::vk2']]], + ['commandbufferrecording_6',['CommandBufferRecording',['../classtz_1_1gl_1_1vk2_1_1_command_buffer_recording.html',1,'tz::gl::vk2']]], + ['commandpool_7',['CommandPool',['../classtz_1_1gl_1_1vk2_1_1_command_pool.html',1,'tz::gl::vk2']]], + ['commandpoolinfo_8',['CommandPoolInfo',['../structtz_1_1gl_1_1vk2_1_1_command_pool_info.html',1,'tz::gl::vk2']]], + ['compile_5fresult_9',['compile_result',['../structtz_1_1gl_1_1ogl2_1_1shader__module_1_1compile__result.html',1,'tz::gl::ogl2::shader_module']]], + ['compute_10',['Compute',['../structtz_1_1gl_1_1render__state_1_1_compute.html',1,'tz::gl::render_state']]], + ['compute_5fconfig_11',['compute_config',['../structtz_1_1gl_1_1renderer__edit_1_1compute__config.html',1,'tz::gl::renderer_edit']]], + ['computepipeline_12',['ComputePipeline',['../classtz_1_1gl_1_1vk2_1_1_compute_pipeline.html',1,'tz::gl::vk2']]], + ['computepipelineinfo_13',['ComputePipelineInfo',['../structtz_1_1gl_1_1vk2_1_1_compute_pipeline_info.html',1,'tz::gl::vk2']]] +]; diff --git a/search/classes_3.js b/search/classes_3.js new file mode 100644 index 0000000000..58970d1f86 --- /dev/null +++ b/search/classes_3.js @@ -0,0 +1,50 @@ +var searchData= +[ + ['debugbeginlabel_0',['DebugBeginLabel',['../structtz_1_1gl_1_1vk2_1_1_vulkan_command_1_1_debug_begin_label.html',1,'tz::gl::vk2::VulkanCommand']]], + ['debugendlabel_1',['DebugEndLabel',['../structtz_1_1gl_1_1vk2_1_1_vulkan_command_1_1_debug_end_label.html',1,'tz::gl::vk2::VulkanCommand']]], + ['debugnameable_2',['DebugNameable',['../classtz_1_1gl_1_1vk2_1_1_debug_nameable.html',1,'tz::gl::vk2']]], + ['debugnameable_3c_20vk_5fobject_5ftype_5fbuffer_20_3e_3',['DebugNameable< VK_OBJECT_TYPE_BUFFER >',['../classtz_1_1gl_1_1vk2_1_1_debug_nameable.html',1,'tz::gl::vk2']]], + ['debugnameable_3c_20vk_5fobject_5ftype_5ffence_20_3e_4',['DebugNameable< VK_OBJECT_TYPE_FENCE >',['../classtz_1_1gl_1_1vk2_1_1_debug_nameable.html',1,'tz::gl::vk2']]], + ['debugnameable_3c_20vk_5fobject_5ftype_5fimage_20_3e_5',['DebugNameable< VK_OBJECT_TYPE_IMAGE >',['../classtz_1_1gl_1_1vk2_1_1_debug_nameable.html',1,'tz::gl::vk2']]], + ['debugnameable_3c_20vk_5fobject_5ftype_5fimage_5fview_20_3e_6',['DebugNameable< VK_OBJECT_TYPE_IMAGE_VIEW >',['../classtz_1_1gl_1_1vk2_1_1_debug_nameable.html',1,'tz::gl::vk2']]], + ['debugnameable_3c_20vk_5fobject_5ftype_5fsemaphore_20_3e_7',['DebugNameable< VK_OBJECT_TYPE_SEMAPHORE >',['../classtz_1_1gl_1_1vk2_1_1_debug_nameable.html',1,'tz::gl::vk2']]], + ['delay_8',['delay',['../classtz_1_1delay.html',1,'tz']]], + ['depthstencilstate_9',['DepthStencilState',['../structtz_1_1gl_1_1vk2_1_1_depth_stencil_state.html',1,'tz::gl::vk2']]], + ['descriptordata_10',['DescriptorData',['../structtz_1_1gl_1_1vk2_1_1_descriptor_data.html',1,'tz::gl::vk2']]], + ['descriptorlayout_11',['DescriptorLayout',['../classtz_1_1gl_1_1vk2_1_1_descriptor_layout.html',1,'tz::gl::vk2']]], + ['descriptorlayoutbuilder_12',['DescriptorLayoutBuilder',['../classtz_1_1gl_1_1vk2_1_1_descriptor_layout_builder.html',1,'tz::gl::vk2']]], + ['descriptorlayoutinfo_13',['DescriptorLayoutInfo',['../structtz_1_1gl_1_1vk2_1_1_descriptor_layout_info.html',1,'tz::gl::vk2']]], + ['descriptorpool_14',['DescriptorPool',['../classtz_1_1gl_1_1vk2_1_1_descriptor_pool.html',1,'tz::gl::vk2']]], + ['descriptorpoolinfo_15',['DescriptorPoolInfo',['../structtz_1_1gl_1_1vk2_1_1_descriptor_pool_info.html',1,'tz::gl::vk2']]], + ['descriptorset_16',['DescriptorSet',['../classtz_1_1gl_1_1vk2_1_1_descriptor_set.html',1,'tz::gl::vk2']]], + ['device_17',['device',['../classtz_1_1gl_1_1device.html',1,'tz::gl']]], + ['device_5fcommand_5fpool_18',['device_command_pool',['../classtz_1_1gl_1_1device__command__pool.html',1,'tz::gl']]], + ['device_5fcommon_19',['device_common',['../classtz_1_1gl_1_1device__common.html',1,'tz::gl']]], + ['device_5fcommon_3c_20renderer_5fogl_20_3e_20',['device_common< renderer_ogl >',['../classtz_1_1gl_1_1device__common.html',1,'tz::gl']]], + ['device_5fcommon_3c_20renderer_5fvulkan2_20_3e_21',['device_common< renderer_vulkan2 >',['../classtz_1_1gl_1_1device__common.html',1,'tz::gl']]], + ['device_5fdescriptor_5fpool_22',['device_descriptor_pool',['../classtz_1_1gl_1_1device__descriptor__pool.html',1,'tz::gl']]], + ['device_5fogl_23',['device_ogl',['../classtz_1_1gl_1_1device__ogl.html',1,'tz::gl']]], + ['device_5frender_5fscheduler_5fogl_24',['device_render_scheduler_ogl',['../classtz_1_1gl_1_1device__render__scheduler__ogl.html',1,'tz::gl']]], + ['device_5frender_5fsync_25',['device_render_sync',['../classtz_1_1gl_1_1device__render__sync.html',1,'tz::gl']]], + ['device_5fvulkan2_26',['device_vulkan2',['../classtz_1_1gl_1_1device__vulkan2.html',1,'tz::gl']]], + ['device_5fvulkan_5fbase_27',['device_vulkan_base',['../classtz_1_1gl_1_1device__vulkan__base.html',1,'tz::gl']]], + ['device_5fwindow_28',['device_window',['../classtz_1_1gl_1_1device__window.html',1,'tz::gl']]], + ['devicefeatureinfo_29',['DeviceFeatureInfo',['../structtz_1_1gl_1_1vk2_1_1detail_1_1_device_feature_info.html',1,'tz::gl::vk2::detail']]], + ['dispatch_30',['Dispatch',['../structtz_1_1gl_1_1vk2_1_1_vulkan_command_1_1_dispatch.html',1,'tz::gl::vk2::VulkanCommand']]], + ['draw_31',['Draw',['../structtz_1_1gl_1_1vk2_1_1_vulkan_command_1_1_draw.html',1,'tz::gl::vk2::VulkanCommand']]], + ['draw_5findexed_5findirect_5fcommand_32',['draw_indexed_indirect_command',['../structtz_1_1gl_1_1ogl2_1_1draw__indexed__indirect__command.html',1,'tz::gl::ogl2::draw_indexed_indirect_command'],['../structtz_1_1gl_1_1vk2_1_1draw__indexed__indirect__command.html',1,'tz::gl::vk2::draw_indexed_indirect_command']]], + ['draw_5findirect_5fcommand_33',['draw_indirect_command',['../structtz_1_1gl_1_1ogl2_1_1draw__indirect__command.html',1,'tz::gl::ogl2::draw_indirect_command'],['../structtz_1_1gl_1_1vk2_1_1draw__indirect__command.html',1,'tz::gl::vk2::draw_indirect_command']]], + ['draw_5flist_34',['draw_list',['../structtz_1_1ren_1_1draw__list.html',1,'tz::ren']]], + ['drawindexed_35',['DrawIndexed',['../structtz_1_1gl_1_1vk2_1_1_vulkan_command_1_1_draw_indexed.html',1,'tz::gl::vk2::VulkanCommand']]], + ['drawindexedindirect_36',['DrawIndexedIndirect',['../structtz_1_1gl_1_1vk2_1_1_vulkan_command_1_1_draw_indexed_indirect.html',1,'tz::gl::vk2::VulkanCommand']]], + ['drawindexedindirectcommand_37',['DrawIndexedIndirectCommand',['../structtz_1_1draw_1_1_draw_indexed_indirect_command.html',1,'tz::draw']]], + ['drawindexedindirectcount_38',['DrawIndexedIndirectCount',['../structtz_1_1gl_1_1vk2_1_1_vulkan_command_1_1_draw_indexed_indirect_count.html',1,'tz::gl::vk2::VulkanCommand']]], + ['drawindirect_39',['DrawIndirect',['../structtz_1_1gl_1_1vk2_1_1_vulkan_command_1_1_draw_indirect.html',1,'tz::gl::vk2::VulkanCommand']]], + ['drawindirectcommand_40',['DrawIndirectCommand',['../structtz_1_1draw_1_1_draw_indirect_command.html',1,'tz::draw']]], + ['drawindirectcount_41',['DrawIndirectCount',['../structtz_1_1gl_1_1vk2_1_1_vulkan_command_1_1_draw_indirect_count.html',1,'tz::gl::vk2::VulkanCommand']]], + ['duration_42',['duration',['../classtz_1_1duration.html',1,'tz']]], + ['dynamicrenderingrun_43',['DynamicRenderingRun',['../classtz_1_1gl_1_1vk2_1_1_command_buffer_recording_1_1_dynamic_rendering_run.html',1,'tz::gl::vk2::CommandBufferRecording']]], + ['dynamicrenderingruninfo_44',['DynamicRenderingRunInfo',['../structtz_1_1gl_1_1vk2_1_1_dynamic_rendering_run_info.html',1,'tz::gl::vk2']]], + ['dynamicrenderingstate_45',['DynamicRenderingState',['../structtz_1_1gl_1_1vk2_1_1_graphics_pipeline_info_1_1_dynamic_rendering_state.html',1,'tz::gl::vk2::GraphicsPipelineInfo']]], + ['dynamicstate_46',['DynamicState',['../structtz_1_1gl_1_1vk2_1_1_dynamic_state.html',1,'tz::gl::vk2']]] +]; diff --git a/search/classes_4.js b/search/classes_4.js new file mode 100644 index 0000000000..6a186aab43 --- /dev/null +++ b/search/classes_4.js @@ -0,0 +1,27 @@ +var searchData= +[ + ['edit_5fside_5feffects_0',['edit_side_effects',['../structtz_1_1gl_1_1edit__side__effects.html',1,'tz::gl']]], + ['editrequest_1',['EditRequest',['../classtz_1_1gl_1_1vk2_1_1_descriptor_set_1_1_edit_request.html',1,'tz::gl::vk2::DescriptorSet']]], + ['enddynamicrendering_2',['EndDynamicRendering',['../structtz_1_1gl_1_1vk2_1_1_vulkan_command_1_1_end_dynamic_rendering.html',1,'tz::gl::vk2::VulkanCommand']]], + ['endrenderpass_3',['EndRenderPass',['../structtz_1_1gl_1_1vk2_1_1_vulkan_command_1_1_end_render_pass.html',1,'tz::gl::vk2::VulkanCommand']]], + ['engine_5finfo_4',['engine_info',['../structtz_1_1engine__info.html',1,'tz']]], + ['enum_5ffield_5',['enum_field',['../classtz_1_1enum__field.html',1,'tz']]], + ['enum_5ffield_3c_20accessflag_20_3e_6',['enum_field< AccessFlag >',['../classtz_1_1enum__field.html',1,'tz']]], + ['enum_5ffield_3c_20application_5fflag_20_3e_7',['enum_field< application_flag >',['../classtz_1_1enum__field.html',1,'tz']]], + ['enum_5ffield_3c_20bufferusage_20_3e_8',['enum_field< BufferUsage >',['../classtz_1_1enum__field.html',1,'tz']]], + ['enum_5ffield_3c_20commandpoolflag_20_3e_9',['enum_field< CommandPoolFlag >',['../classtz_1_1enum__field.html',1,'tz']]], + ['enum_5ffield_3c_20descriptorflag_20_3e_10',['enum_field< DescriptorFlag >',['../classtz_1_1enum__field.html',1,'tz']]], + ['enum_5ffield_3c_20deviceextension_20_3e_11',['enum_field< DeviceExtension >',['../classtz_1_1enum__field.html',1,'tz']]], + ['enum_5ffield_3c_20devicefeature_20_3e_12',['enum_field< DeviceFeature >',['../classtz_1_1enum__field.html',1,'tz']]], + ['enum_5ffield_3c_20dynamicstatetype_20_3e_13',['enum_field< DynamicStateType >',['../classtz_1_1enum__field.html',1,'tz']]], + ['enum_5ffield_3c_20gltf_5fattribute_20_3e_14',['enum_field< gltf_attribute >',['../classtz_1_1enum__field.html',1,'tz']]], + ['enum_5ffield_3c_20imageaspectflag_20_3e_15',['enum_field< ImageAspectFlag >',['../classtz_1_1enum__field.html',1,'tz']]], + ['enum_5ffield_3c_20imageusage_20_3e_16',['enum_field< ImageUsage >',['../classtz_1_1enum__field.html',1,'tz']]], + ['enum_5ffield_3c_20instanceextension_20_3e_17',['enum_field< InstanceExtension >',['../classtz_1_1enum__field.html',1,'tz']]], + ['enum_5ffield_3c_20override_5fflag_20_3e_18',['enum_field< override_flag >',['../classtz_1_1enum__field.html',1,'tz']]], + ['enum_5ffield_3c_20queuefamilytype_20_3e_19',['enum_field< QueueFamilyType >',['../classtz_1_1enum__field.html',1,'tz']]], + ['enum_5ffield_3c_20renderer_5foption_20_3e_20',['enum_field< renderer_option >',['../classtz_1_1enum__field.html',1,'tz']]], + ['enum_5ffield_3c_20resource_5fflag_20_3e_21',['enum_field< resource_flag >',['../classtz_1_1enum__field.html',1,'tz']]], + ['event_22',['event',['../structtz_1_1gl_1_1event.html',1,'tz::gl']]], + ['execution_5finfo_23',['execution_info',['../structtz_1_1execution__info.html',1,'tz']]] +]; diff --git a/search/classes_5.js b/search/classes_5.js new file mode 100644 index 0000000000..91e20b8e52 --- /dev/null +++ b/search/classes_5.js @@ -0,0 +1,13 @@ +var searchData= +[ + ['fallback_5fallocator_0',['fallback_allocator',['../classtz_1_1fallback__allocator.html',1,'tz']]], + ['fence_1',['Fence',['../classtz_1_1gl_1_1vk2_1_1_fence.html',1,'tz::gl::vk2']]], + ['fenceinfo_2',['FenceInfo',['../structtz_1_1gl_1_1vk2_1_1_fence_info.html',1,'tz::gl::vk2']]], + ['fingerprint_5finfo_5ft_3',['fingerprint_info_t',['../structtz_1_1gl_1_1device__command__pool_1_1fingerprint__info__t.html',1,'tz::gl::device_command_pool']]], + ['format_5fstring_4',['format_string',['../structtz_1_1detail_1_1format__string.html',1,'tz::detail']]], + ['formatdata_5',['FormatData',['../structtz_1_1gl_1_1ogl2_1_1_format_data.html',1,'tz::gl::ogl2']]], + ['framebuffer_6',['framebuffer',['../classtz_1_1gl_1_1ogl2_1_1framebuffer.html',1,'tz::gl::ogl2::framebuffer'],['../classtz_1_1gl_1_1vk2_1_1_framebuffer.html',1,'tz::gl::vk2::Framebuffer']]], + ['framebuffer_5finfo_7',['framebuffer_info',['../structtz_1_1gl_1_1ogl2_1_1framebuffer__info.html',1,'tz::gl::ogl2']]], + ['framebufferdata_8',['FramebufferData',['../structtz_1_1gl_1_1vk2_1_1_framebuffer_data.html',1,'tz::gl::vk2']]], + ['framebufferinfo_9',['FramebufferInfo',['../structtz_1_1gl_1_1vk2_1_1_framebuffer_info.html',1,'tz::gl::vk2']]] +]; diff --git a/search/classes_6.js b/search/classes_6.js new file mode 100644 index 0000000000..bc09632368 --- /dev/null +++ b/search/classes_6.js @@ -0,0 +1,27 @@ +var searchData= +[ + ['game_5finfo_0',['game_info',['../structtz_1_1game__info.html',1,'tz']]], + ['gltf_1',['gltf',['../classtz_1_1io_1_1gltf.html',1,'tz::io']]], + ['gltf_5faccessor_2',['gltf_accessor',['../structtz_1_1io_1_1gltf__accessor.html',1,'tz::io']]], + ['gltf_5fanimation_3',['gltf_animation',['../structtz_1_1io_1_1gltf__animation.html',1,'tz::io']]], + ['gltf_5fanimation_5fchannel_4',['gltf_animation_channel',['../structtz_1_1io_1_1gltf__animation__channel.html',1,'tz::io']]], + ['gltf_5fanimation_5fchannel_5ftarget_5',['gltf_animation_channel_target',['../structtz_1_1io_1_1gltf__animation__channel__target.html',1,'tz::io']]], + ['gltf_5fanimation_5fsampler_6',['gltf_animation_sampler',['../structtz_1_1io_1_1gltf__animation__sampler.html',1,'tz::io']]], + ['gltf_5fbuffer_7',['gltf_buffer',['../structtz_1_1io_1_1gltf__buffer.html',1,'tz::io']]], + ['gltf_5fbuffer_5fview_8',['gltf_buffer_view',['../structtz_1_1io_1_1gltf__buffer__view.html',1,'tz::io']]], + ['gltf_5fchunk_5fdata_9',['gltf_chunk_data',['../structtz_1_1io_1_1gltf__chunk__data.html',1,'tz::io']]], + ['gltf_5fheader_10',['gltf_header',['../structtz_1_1io_1_1gltf__header.html',1,'tz::io']]], + ['gltf_5fimage_11',['gltf_image',['../structtz_1_1io_1_1gltf__image.html',1,'tz::io']]], + ['gltf_5fmaterial_12',['gltf_material',['../structtz_1_1io_1_1gltf__material.html',1,'tz::io']]], + ['gltf_5fmesh_13',['gltf_mesh',['../structtz_1_1io_1_1gltf__mesh.html',1,'tz::io']]], + ['gltf_5fnode_14',['gltf_node',['../structtz_1_1io_1_1gltf__node.html',1,'tz::io']]], + ['gltf_5fscene_15',['gltf_scene',['../structtz_1_1io_1_1gltf__scene.html',1,'tz::io']]], + ['gltf_5fskin_16',['gltf_skin',['../structtz_1_1io_1_1gltf__skin.html',1,'tz::io']]], + ['gltf_5fsubmesh_5fdata_17',['gltf_submesh_data',['../structtz_1_1io_1_1gltf__submesh__data.html',1,'tz::io']]], + ['gltf_5fsubmesh_5ftexture_5fdata_18',['gltf_submesh_texture_data',['../structtz_1_1io_1_1gltf__submesh__texture__data.html',1,'tz::io']]], + ['gltf_5fvertex_5fdata_19',['gltf_vertex_data',['../structtz_1_1io_1_1gltf__vertex__data.html',1,'tz::io']]], + ['graphics_20',['Graphics',['../structtz_1_1gl_1_1render__state_1_1_graphics.html',1,'tz::gl::render_state']]], + ['graphicspipeline_21',['GraphicsPipeline',['../classtz_1_1gl_1_1vk2_1_1_graphics_pipeline.html',1,'tz::gl::vk2']]], + ['graphicspipelineinfo_22',['GraphicsPipelineInfo',['../structtz_1_1gl_1_1vk2_1_1_graphics_pipeline_info.html',1,'tz::gl::vk2']]], + ['grid_5fview_23',['grid_view',['../classtz_1_1grid__view.html',1,'tz']]] +]; diff --git a/search/classes_7.js b/search/classes_7.js new file mode 100644 index 0000000000..4cfd27d0bc --- /dev/null +++ b/search/classes_7.js @@ -0,0 +1,13 @@ +var searchData= +[ + ['handle_0',['handle',['../classtz_1_1handle.html',1,'tz']]], + ['handle_3c_20detail_3a_3ajob_5fhandle_5ftag_20_3e_1',['handle< detail::job_handle_tag >',['../classtz_1_1handle.html',1,'tz']]], + ['handle_3c_20detail_3a_3arenderer_5ftag_20_3e_2',['handle< detail::renderer_tag >',['../classtz_1_1handle.html',1,'tz']]], + ['handle_3c_20detail_3a_3atexture_5ftag_5ft_20_3e_3',['handle< detail::texture_tag_t >',['../classtz_1_1handle.html',1,'tz']]], + ['handle_3c_20iresource_20_3e_4',['handle< iresource >',['../classtz_1_1handle.html',1,'tz']]], + ['handle_3c_20mesh_5ft_20_3e_5',['handle< mesh_t >',['../classtz_1_1handle.html',1,'tz']]], + ['handle_3c_20object_5ftag_5ft_20_3e_6',['handle< object_tag_t >',['../classtz_1_1handle.html',1,'tz']]], + ['handle_3c_20tz_3a_3aio_3a_3agltf_20_3e_7',['handle< tz::io::gltf >',['../classtz_1_1handle.html',1,'tz']]], + ['hash_3c_20tz_3a_3aquat_20_3e_8',['hash< tz::quat >',['../structstd_1_1hash_3_01tz_1_1quat_01_4.html',1,'std']]], + ['hash_3c_20tz_3a_3atrs_20_3e_9',['hash< tz::trs >',['../structstd_1_1hash_3_01tz_1_1trs_01_4.html',1,'std']]] +]; diff --git a/search/classes_8.js b/search/classes_8.js new file mode 100644 index 0000000000..d69cb62fc3 --- /dev/null +++ b/search/classes_8.js @@ -0,0 +1,30 @@ +var searchData= +[ + ['i_5fjob_5fsystem_0',['i_job_system',['../classtz_1_1i__job__system.html',1,'tz']]], + ['icomponent_1',['icomponent',['../classtz_1_1gl_1_1icomponent.html',1,'tz::gl']]], + ['image_2',['image',['../classtz_1_1gl_1_1ogl2_1_1image.html',1,'tz::gl::ogl2::image'],['../classtz_1_1gl_1_1vk2_1_1_image.html',1,'tz::gl::vk2::Image'],['../structtz_1_1io_1_1image.html',1,'tz::io::image']]], + ['image_5fcomponent_5fogl_3',['image_component_ogl',['../classtz_1_1gl_1_1image__component__ogl.html',1,'tz::gl']]], + ['image_5fcomponent_5fvulkan_4',['image_component_vulkan',['../classtz_1_1gl_1_1image__component__vulkan.html',1,'tz::gl']]], + ['image_5finfo_5',['image_info',['../structtz_1_1gl_1_1image__info.html',1,'tz::gl::image_info'],['../structtz_1_1gl_1_1ogl2_1_1image__info.html',1,'tz::gl::ogl2::image_info'],['../structtz_1_1gl_1_1vk2_1_1image__info.html',1,'tz::gl::vk2::image_info']]], + ['image_5foutput_6',['image_output',['../classtz_1_1gl_1_1image__output.html',1,'tz::gl']]], + ['image_5foutput_5finfo_7',['image_output_info',['../structtz_1_1gl_1_1image__output__info.html',1,'tz::gl']]], + ['image_5fresize_8',['image_resize',['../structtz_1_1gl_1_1renderer__edit_1_1image__resize.html',1,'tz::gl::renderer_edit']]], + ['image_5fresource_9',['image_resource',['../classtz_1_1gl_1_1image__resource.html',1,'tz::gl']]], + ['imageacquisition_10',['ImageAcquisition',['../structtz_1_1gl_1_1vk2_1_1_swapchain_1_1_image_acquisition.html',1,'tz::gl::vk2::Swapchain']]], + ['imageacquisitionresult_11',['ImageAcquisitionResult',['../structtz_1_1gl_1_1vk2_1_1_swapchain_1_1_image_acquisition_result.html',1,'tz::gl::vk2::Swapchain']]], + ['imagecopyimage_12',['ImageCopyImage',['../structtz_1_1gl_1_1vk2_1_1_vulkan_command_1_1_image_copy_image.html',1,'tz::gl::vk2::VulkanCommand']]], + ['imageview_13',['ImageView',['../classtz_1_1gl_1_1vk2_1_1_image_view.html',1,'tz::gl::vk2']]], + ['imageviewinfo_14',['ImageViewInfo',['../structtz_1_1gl_1_1vk2_1_1_image_view_info.html',1,'tz::gl::vk2']]], + ['imagewriteinfo_15',['ImageWriteInfo',['../structtz_1_1gl_1_1vk2_1_1_descriptor_set_1_1_write_1_1_image_write_info.html',1,'tz::gl::vk2::DescriptorSet::Write']]], + ['imguitabtz_16',['ImGuiTabTZ',['../structtz_1_1dbgui_1_1_im_gui_tab_t_z.html',1,'tz::dbgui']]], + ['imguivertex_17',['ImGuiVertex',['../struct_im_gui_vertex.html',1,'']]], + ['init_5finfo_18',['init_info',['../structtz_1_1dbgui_1_1init__info.html',1,'tz::dbgui']]], + ['init_5fstate_19',['init_state',['../structtz_1_1core_1_1detail_1_1init__state.html',1,'tz::core::detail']]], + ['initialise_5finfo_20',['initialise_info',['../structtz_1_1initialise__info.html',1,'tz']]], + ['inputattachmentreference_21',['InputAttachmentReference',['../structtz_1_1gl_1_1vk2_1_1_render_pass_info_1_1_input_attachment_reference.html',1,'tz::gl::vk2::RenderPassInfo']]], + ['inputdelta_22',['InputDelta',['../structtz_1_1dbgui_1_1_input_delta.html',1,'tz::dbgui']]], + ['interfaceiterator_23',['InterfaceIterator',['../classtz_1_1_interface_iterator.html',1,'tz']]], + ['internaldeviceinfo_24',['InternalDeviceInfo',['../structtz_1_1gl_1_1vk2_1_1_internal_device_info.html',1,'tz::gl::vk2']]], + ['ioutput_25',['ioutput',['../classtz_1_1gl_1_1ioutput.html',1,'tz::gl']]], + ['iresource_26',['iresource',['../classtz_1_1gl_1_1iresource.html',1,'tz::gl']]] +]; diff --git a/search/classes_9.js b/search/classes_9.js new file mode 100644 index 0000000000..fa615e463b --- /dev/null +++ b/search/classes_9.js @@ -0,0 +1,6 @@ +var searchData= +[ + ['job_5fhandle_0',['job_handle',['../structtz_1_1job__handle.html',1,'tz']]], + ['job_5fhandle_5ftag_1',['job_handle_tag',['../structtz_1_1detail_1_1job__handle__tag.html',1,'tz::detail']]], + ['job_5fsystem_5fthreadpool_5flfq_2',['job_system_threadpool_lfq',['../classtz_1_1impl_1_1job__system__threadpool__lfq.html',1,'tz::impl']]] +]; diff --git a/search/classes_a.js b/search/classes_a.js new file mode 100644 index 0000000000..606c169000 --- /dev/null +++ b/search/classes_a.js @@ -0,0 +1,5 @@ +var searchData= +[ + ['keyboard_5fstate_0',['keyboard_state',['../structtz_1_1wsi_1_1keyboard__state.html',1,'tz::wsi']]], + ['keyframe_5fdata_5felement_1',['keyframe_data_element',['../structtz_1_1io_1_1gltf__animation_1_1keyframe__data__element.html',1,'tz::io::gltf_animation']]] +]; diff --git a/search/classes_b.js b/search/classes_b.js new file mode 100644 index 0000000000..fde749fd9a --- /dev/null +++ b/search/classes_b.js @@ -0,0 +1,7 @@ +var searchData= +[ + ['linear_5fallocator_0',['linear_allocator',['../classtz_1_1linear__allocator.html',1,'tz']]], + ['link_5fresult_1',['link_result',['../structtz_1_1gl_1_1ogl2_1_1shader_1_1link__result.html',1,'tz::gl::ogl2::shader']]], + ['logicaldevice_2',['LogicalDevice',['../classtz_1_1gl_1_1vk2_1_1_logical_device.html',1,'tz::gl::vk2']]], + ['logicaldeviceinfo_3',['LogicalDeviceInfo',['../structtz_1_1gl_1_1vk2_1_1_logical_device_info.html',1,'tz::gl::vk2']]] +]; diff --git a/search/classes_c.js b/search/classes_c.js new file mode 100644 index 0000000000..5971d1f351 --- /dev/null +++ b/search/classes_c.js @@ -0,0 +1,17 @@ +var searchData= +[ + ['mallocator_0',['mallocator',['../classtz_1_1mallocator.html',1,'tz']]], + ['mark_5fdirty_1',['mark_dirty',['../structtz_1_1gl_1_1renderer__edit_1_1mark__dirty.html',1,'tz::gl::renderer_edit']]], + ['matrix_2',['matrix',['../classtz_1_1matrix.html',1,'tz']]], + ['matrix_3c_20float_2c_204_2c_204_20_3e_3',['matrix< float, 4, 4 >',['../classtz_1_1matrix.html',1,'tz']]], + ['maybe_5fowned_5fptr_4',['maybe_owned_ptr',['../classtz_1_1maybe__owned__ptr.html',1,'tz']]], + ['memblk_5',['memblk',['../structtz_1_1memblk.html',1,'tz']]], + ['mesh_6',['mesh',['../structtz_1_1ren_1_1mesh.html',1,'tz::ren']]], + ['mesh_5flocator_7',['mesh_locator',['../structmesh__locator.html',1,'mesh_locator'],['../structtz_1_1ren_1_1mesh__locator.html',1,'tz::ren::mesh_locator']]], + ['mesh_5frenderer_8',['mesh_renderer',['../classtz_1_1ren_1_1mesh__renderer.html',1,'tz::ren']]], + ['metadata_5ft_9',['metadata_t',['../structtz_1_1ren_1_1animation__renderer_1_1gltf__info_1_1metadata__t.html',1,'tz::ren::animation_renderer::gltf_info']]], + ['monitor_10',['monitor',['../structtz_1_1wsi_1_1monitor.html',1,'tz::wsi']]], + ['mouse_5fstate_11',['mouse_state',['../structtz_1_1wsi_1_1mouse__state.html',1,'tz::wsi']]], + ['multisamplestate_12',['MultisampleState',['../structtz_1_1gl_1_1vk2_1_1_multisample_state.html',1,'tz::gl::vk2']]], + ['mvp_13',['MVP',['../structtz_1_1space_1_1_m_v_p.html',1,'tz::space']]] +]; diff --git a/search/classes_d.js b/search/classes_d.js new file mode 100644 index 0000000000..76b4dd2aed --- /dev/null +++ b/search/classes_d.js @@ -0,0 +1,5 @@ +var searchData= +[ + ['null_5fallocator_0',['null_allocator',['../classtz_1_1null__allocator.html',1,'tz']]], + ['nullhand_5ft_1',['nullhand_t',['../structtz_1_1nullhand__t.html',1,'tz']]] +]; diff --git a/search/classes_e.js b/search/classes_e.js new file mode 100644 index 0000000000..cc44b0e315 --- /dev/null +++ b/search/classes_e.js @@ -0,0 +1,11 @@ +var searchData= +[ + ['object_5fdata_0',['object_data',['../structtz_1_1ren_1_1object__data.html',1,'tz::ren']]], + ['object_5fimpl_5fdata_1',['object_impl_data',['../structtz_1_1ren_1_1object__impl__data.html',1,'tz::ren']]], + ['object_5finit_5fdata_2',['object_init_data',['../structtz_1_1ren_1_1mesh__renderer_1_1object__init__data.html',1,'tz::ren::mesh_renderer']]], + ['object_5fout_5fdata_3',['object_out_data',['../structtz_1_1ren_1_1mesh__renderer_1_1object__out__data.html',1,'tz::ren::mesh_renderer']]], + ['object_5ft_4',['object_t',['../structobject__t.html',1,'']]], + ['outputmanager_5',['OutputManager',['../classtz_1_1gl_1_1_output_manager.html',1,'tz::gl']]], + ['overloaded_6',['overloaded',['../structtz_1_1gl_1_1overloaded.html',1,'tz::gl']]], + ['override_5fpackage_7',['override_package',['../structtz_1_1ren_1_1animation__renderer_1_1override__package.html',1,'tz::ren::animation_renderer']]] +]; diff --git a/search/classes_f.js b/search/classes_f.js new file mode 100644 index 0000000000..372310a1de --- /dev/null +++ b/search/classes_f.js @@ -0,0 +1,15 @@ +var searchData= +[ + ['physicaldevice_0',['PhysicalDevice',['../classtz_1_1gl_1_1vk2_1_1_physical_device.html',1,'tz::gl::vk2']]], + ['physicaldeviceinfo_1',['PhysicalDeviceInfo',['../structtz_1_1gl_1_1vk2_1_1_physical_device_info.html',1,'tz::gl::vk2']]], + ['physicaldevicesurfacecapabilityinfo_2',['PhysicalDeviceSurfaceCapabilityInfo',['../structtz_1_1gl_1_1vk2_1_1_physical_device_surface_capability_info.html',1,'tz::gl::vk2']]], + ['pipeline_3',['Pipeline',['../classtz_1_1gl_1_1vk2_1_1_pipeline.html',1,'tz::gl::vk2']]], + ['pipelinecache_4',['PipelineCache',['../classtz_1_1gl_1_1vk2_1_1_pipeline_cache.html',1,'tz::gl::vk2']]], + ['pipelinedata_5',['PipelineData',['../structtz_1_1gl_1_1vk2_1_1_pipeline_data.html',1,'tz::gl::vk2']]], + ['pipelinelayout_6',['PipelineLayout',['../classtz_1_1gl_1_1vk2_1_1_pipeline_layout.html',1,'tz::gl::vk2']]], + ['pipelinelayoutinfo_7',['PipelineLayoutInfo',['../structtz_1_1gl_1_1vk2_1_1_pipeline_layout_info.html',1,'tz::gl::vk2']]], + ['pipelinestate_8',['PipelineState',['../structtz_1_1gl_1_1vk2_1_1_pipeline_state.html',1,'tz::gl::vk2']]], + ['polymorphiclist_9',['PolymorphicList',['../classtz_1_1_polymorphic_list.html',1,'tz']]], + ['poollimits_10',['PoolLimits',['../structtz_1_1gl_1_1vk2_1_1_descriptor_pool_info_1_1_pool_limits.html',1,'tz::gl::vk2::DescriptorPoolInfo']]], + ['presentinfo_11',['PresentInfo',['../structtz_1_1gl_1_1vk2_1_1hardware_1_1_queue_1_1_present_info.html',1,'tz::gl::vk2::hardware::Queue']]] +]; diff --git a/search/close.svg b/search/close.svg new file mode 100644 index 0000000000..337d6cc132 --- /dev/null +++ b/search/close.svg @@ -0,0 +1,18 @@ + + + + + + diff --git a/search/concepts_0.js b/search/concepts_0.js new file mode 100644 index 0000000000..c52ec2f799 --- /dev/null +++ b/search/concepts_0.js @@ -0,0 +1,20 @@ +var searchData= +[ + ['tz_3a_3aaction_0',['action',['../concepttz_1_1action.html',1,'tz']]], + ['tz_3a_3aallocator_1',['allocator',['../concepttz_1_1allocator.html',1,'tz']]], + ['tz_3a_3aarithmetic_2',['arithmetic',['../concepttz_1_1arithmetic.html',1,'tz']]], + ['tz_3a_3aconst_5ftype_3',['const_type',['../concepttz_1_1const__type.html',1,'tz']]], + ['tz_3a_3aenum_5fclass_4',['enum_class',['../concepttz_1_1enum__class.html',1,'tz']]], + ['tz_3a_3afunction_5',['function',['../concepttz_1_1function.html',1,'tz']]], + ['tz_3a_3agl_3a_3abuffer_5fcomponent_5ftype_6',['buffer_component_type',['../concepttz_1_1gl_1_1buffer__component__type.html',1,'tz::gl']]], + ['tz_3a_3agl_3a_3adevice_5ftype_7',['device_type',['../concepttz_1_1gl_1_1device__type.html',1,'tz::gl']]], + ['tz_3a_3agl_3a_3aimage_5fcomponent_5ftype_8',['image_component_type',['../concepttz_1_1gl_1_1image__component__type.html',1,'tz::gl']]], + ['tz_3a_3agl_3a_3arenderer_5ftype_9',['renderer_type',['../concepttz_1_1gl_1_1renderer__type.html',1,'tz::gl']]], + ['tz_3a_3ahas_5fdbgui_5fmethod_10',['has_dbgui_method',['../concepttz_1_1has__dbgui__method.html',1,'tz']]], + ['tz_3a_3ais_5fprintable_11',['is_printable',['../concepttz_1_1is__printable.html',1,'tz']]], + ['tz_3a_3anative_5favailable_12',['native_available',['../concepttz_1_1native__available.html',1,'tz']]], + ['tz_3a_3anullable_13',['nullable',['../concepttz_1_1nullable.html',1,'tz']]], + ['tz_3a_3anumber_14',['number',['../concepttz_1_1number.html',1,'tz']]], + ['tz_3a_3atrivially_5fcopyable_15',['trivially_copyable',['../concepttz_1_1trivially__copyable.html',1,'tz']]], + ['tz_3a_3awsi_3a_3awindow_5fapi_16',['window_api',['../concepttz_1_1wsi_1_1window__api.html',1,'tz::wsi']]] +]; diff --git a/search/enums_0.js b/search/enums_0.js new file mode 100644 index 0000000000..d9655549cf --- /dev/null +++ b/search/enums_0.js @@ -0,0 +1,7 @@ +var searchData= +[ + ['accessflag_0',['AccessFlag',['../group__tz__gl__vk__graphics__pipeline__render__pass.html#gaa5dd0142a36cd59d14dff54eed67c3df',1,'tz::gl::vk2']]], + ['address_5fmode_1',['address_mode',['../group__tz__gl__ogl2__image.html#ga52bed615aea0b883aeb6702716f95e5b',1,'tz::gl::ogl2']]], + ['allocationresulttype_2',['allocationresulttype',['../structtz_1_1gl_1_1vk2_1_1_command_pool_1_1_allocation_result.html#adbfc6c7f0841a5e22dfe4c2c9237c893',1,'tz::gl::vk2::CommandPool::AllocationResult::AllocationResultType'],['../structtz_1_1gl_1_1vk2_1_1_descriptor_pool_1_1_allocation_result.html#abad85d19de3197a840dc5e69ad797c54',1,'tz::gl::vk2::DescriptorPool::AllocationResult::AllocationResultType']]], + ['application_5fflag_3',['application_flag',['../group__tz__core.html#gad12da2cb05946402335871d2e282cbf9',1,'tz']]] +]; diff --git a/search/enums_1.js b/search/enums_1.js new file mode 100644 index 0000000000..9da6a2f424 --- /dev/null +++ b/search/enums_1.js @@ -0,0 +1,6 @@ +var searchData= +[ + ['buffer_5fresidency_0',['buffer_residency',['../group__tz__gl__ogl2__buffers.html#gae0f51febb963a7dc9fce3cc2208559a6',1,'tz::gl::ogl2']]], + ['buffer_5ftarget_1',['buffer_target',['../group__tz__gl__ogl2__buffers.html#ga2d4cfcc22205d2276ef7347cf6e1c1ed',1,'tz::gl::ogl2']]], + ['bufferusage_2',['BufferUsage',['../group__tz__gl__vk__buffer.html#ga0c6ff78fc058c3e209ba59dc1b2c02a6',1,'tz::gl::vk2']]] +]; diff --git a/search/enums_2.js b/search/enums_2.js new file mode 100644 index 0000000000..ae7c095bdc --- /dev/null +++ b/search/enums_2.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['cullmode_0',['CullMode',['../group__tz__gl__vk__graphics__pipeline__fixed.html#gaf55856ce9f281f90908bac12e0061e16',1,'tz::gl::vk2']]] +]; diff --git a/search/enums_3.js b/search/enums_3.js new file mode 100644 index 0000000000..38b84ab1b1 --- /dev/null +++ b/search/enums_3.js @@ -0,0 +1,7 @@ +var searchData= +[ + ['depthcomparator_0',['DepthComparator',['../group__tz__gl__vk__graphics__pipeline__fixed.html#ga93e2cb3a5e44484b0548e28496de69c7',1,'tz::gl::vk2']]], + ['descriptorflag_1',['DescriptorFlag',['../group__tz__gl__vk__descriptors.html#gaf15b5e240b6c64c9dad040171f553123',1,'tz::gl::vk2']]], + ['deviceextension_2',['DeviceExtension',['../group__tz__gl__vk__extension.html#ga56bb45f4b48b35c621dc90ea70227158',1,'tz::gl::vk2']]], + ['devicefeature_3',['DeviceFeature',['../group__tz__gl__vk__extension.html#ga6744c8f7d1276d6d9ae861b21c489505',1,'tz::gl::vk2']]] +]; diff --git a/search/enums_4.js b/search/enums_4.js new file mode 100644 index 0000000000..3fe205bfcc --- /dev/null +++ b/search/enums_4.js @@ -0,0 +1,9 @@ +var searchData= +[ + ['image_5fformat_0',['image_format',['../group__tz__gl2.html#ga79b99b79311ee4f6dd10a6dfada3a235',1,'tz::gl::image_format'],['../group__tz__gl__vk__image.html#gaf7d399489dcebca1c95d5852c8d7ec6e',1,'tz::gl::vk2::image_format']]], + ['imageaspectflag_1',['ImageAspectFlag',['../group__tz__gl__vk__image.html#ga93db24e9eb1cffe51979bd8a141ddc77',1,'tz::gl::vk2']]], + ['imagelayout_2',['ImageLayout',['../group__tz__gl__vk__image.html#ga4ca55be3d1c101900d800a78deeb595f',1,'tz::gl::vk2']]], + ['imagetiling_3',['ImageTiling',['../group__tz__gl__vk__image.html#ga41ec6a06ba8bf8e03f80cf81eb99b46a',1,'tz::gl::vk2']]], + ['imageusage_4',['ImageUsage',['../group__tz__gl__vk__image.html#ga6ecb2d248a682aac08d93f4a7078161e',1,'tz::gl::vk2']]], + ['instanceextension_5',['InstanceExtension',['../group__tz__gl__vk__extension.html#gaab3eb58740575c989d5eab8c3fd877a7',1,'tz::gl::vk2']]] +]; diff --git a/search/enums_5.js b/search/enums_5.js new file mode 100644 index 0000000000..a876095c1c --- /dev/null +++ b/search/enums_5.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['key_0',['key',['../group__tz__wsi__keyboard.html#ga6c853393f015f781b34a6f1cde094e85',1,'tz::wsi']]] +]; diff --git a/search/enums_6.js b/search/enums_6.js new file mode 100644 index 0000000000..02396e93a3 --- /dev/null +++ b/search/enums_6.js @@ -0,0 +1,6 @@ +var searchData= +[ + ['loadop_0',['LoadOp',['../group__tz__gl__vk__graphics__pipeline__render__pass.html#gaa1e0e627270d80ef86624590afc5a03f',1,'tz::gl::vk2']]], + ['lookup_5ffilter_1',['lookup_filter',['../group__tz__gl__ogl2__image.html#gadabff1825f7cf36d8fada93ee1164a31',1,'tz::gl::ogl2']]], + ['lookupfilter_2',['LookupFilter',['../group__tz__gl__vk__image.html#ga24cb95974e796673bd262b86ee9cfa89',1,'tz::gl::vk2']]] +]; diff --git a/search/enums_7.js b/search/enums_7.js new file mode 100644 index 0000000000..9b816b5d19 --- /dev/null +++ b/search/enums_7.js @@ -0,0 +1,6 @@ +var searchData= +[ + ['miplookupfilter_0',['MipLookupFilter',['../group__tz__gl__vk__image.html#ga4023d87f2b0f64e5fc17ededf9e1a712',1,'tz::gl::vk2']]], + ['mouse_5fbutton_1',['mouse_button',['../group__tz__wsi__mouse.html#gaf90a65771c2d2d40e2d8a35f27288e23',1,'tz::wsi']]], + ['mouse_5fbutton_5fstate_2',['mouse_button_state',['../group__tz__wsi__mouse.html#ga089bafa0df7fa17353dbf27087a1f65b',1,'tz::wsi']]] +]; diff --git a/search/enums_8.js b/search/enums_8.js new file mode 100644 index 0000000000..0210bc9572 --- /dev/null +++ b/search/enums_8.js @@ -0,0 +1,8 @@ +var searchData= +[ + ['physicaldevicevendor_0',['PhysicalDeviceVendor',['../group__tz__gl__vk.html#ga50848b0c20c1ec0f873eddc129dbecd7',1,'tz::gl::vk2']]], + ['pipelinecontext_1',['PipelineContext',['../group__tz__gl__vk__graphics__pipeline__render__pass.html#ga58cefe5ecfeac91929d767bdb56f943b',1,'tz::gl::vk2']]], + ['pipelinestage_2',['PipelineStage',['../group__tz__gl__vk__graphics__pipeline.html#gaa581c5a329a76e48f41ca02bd263251a',1,'tz::gl::vk2']]], + ['polygonmode_3',['PolygonMode',['../group__tz__gl__vk__graphics__pipeline__fixed.html#gaaeda985d06849d890d7ba2902688cd01',1,'tz::gl::vk2']]], + ['presentresult_4',['PresentResult',['../classtz_1_1gl_1_1vk2_1_1hardware_1_1_queue.html#a85b458bfb664176d140abf3b6b627e67',1,'tz::gl::vk2::hardware::Queue']]] +]; diff --git a/search/enums_9.js b/search/enums_9.js new file mode 100644 index 0000000000..d417972caa --- /dev/null +++ b/search/enums_9.js @@ -0,0 +1,8 @@ +var searchData= +[ + ['remove_5fstrategy_0',['remove_strategy',['../classtz_1_1transform__hierarchy.html#a03c95b250f14ac9f110b59eceb772222',1,'tz::transform_hierarchy']]], + ['renderer_5foption_1',['renderer_option',['../group__tz__gl2__renderer.html#gac6f74feb8cd57f49c051f5d83a12be5d',1,'tz::gl']]], + ['resource_5faccess_2',['resource_access',['../group__tz__gl2__res.html#gac9293366fa49e7f476827595ca80fbbb',1,'tz::gl']]], + ['resource_5fflag_3',['resource_flag',['../group__tz__gl2__res.html#gaacaeec69fc5b83e204af317250a47eb8',1,'tz::gl']]], + ['resource_5ftype_4',['resource_type',['../group__tz__gl2__res.html#ga4a7818551bb2ef3d04edb95ec731d041',1,'tz::gl']]] +]; diff --git a/search/enums_a.js b/search/enums_a.js new file mode 100644 index 0000000000..16d7852be9 --- /dev/null +++ b/search/enums_a.js @@ -0,0 +1,9 @@ +var searchData= +[ + ['samplecount_0',['SampleCount',['../group__tz__gl__vk__image.html#ga88492153134eeee9b8cb8c117b55473d',1,'tz::gl::vk2']]], + ['sampleraddressmode_1',['SamplerAddressMode',['../group__tz__gl__vk__image.html#ga8d6daa8ff20537f40f5e1145342c2d4d',1,'tz::gl::vk2']]], + ['shader_5ftype_2',['shader_type',['../group__tz__gl__ogl2__shader.html#ga6f74da2ab2ba8d9a9e73815fa16ac5f4',1,'tz::gl::ogl2']]], + ['shadertype_3',['ShaderType',['../group__tz__gl__vk__graphics__pipeline__shader.html#gaa9de8cdcc58245f0d43c98fef1a1ddcb',1,'tz::gl::vk2']]], + ['storeop_4',['StoreOp',['../group__tz__gl__vk__graphics__pipeline__render__pass.html#gab92f36711ba7bb90caf0e4a39748ed7d',1,'tz::gl::vk2']]], + ['surfacepresentmode_5',['SurfacePresentMode',['../group__tz__gl__vk__presentation.html#ga8e6e925d93013e81273325bc8764577a',1,'tz::gl::vk2']]] +]; diff --git a/search/enums_b.js b/search/enums_b.js new file mode 100644 index 0000000000..fab3021c31 --- /dev/null +++ b/search/enums_b.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['vertexinputformat_0',['VertexInputFormat',['../group__tz__gl__vk__graphics__pipeline__fixed.html#ga486655233c597343f461a27c5316d087',1,'tz::gl::vk2']]] +]; diff --git a/search/enumvalues_0.js b/search/enumvalues_0.js new file mode 100644 index 0000000000..b5f25eceaf --- /dev/null +++ b/search/enumvalues_0.js @@ -0,0 +1,11 @@ +var searchData= +[ + ['allcommands_0',['AllCommands',['../group__tz__gl__vk__graphics__pipeline.html#ggaa581c5a329a76e48f41ca02bd263251aacf92f78ac1cdeee1e78e8b2866abe474',1,'tz::gl::vk2']]], + ['allgraphics_1',['AllGraphics',['../group__tz__gl__vk__graphics__pipeline.html#ggaa581c5a329a76e48f41ca02bd263251aa576ad90e86113d352899b3369a9c5b15',1,'tz::gl::vk2']]], + ['allocationsuccess_2',['AllocationSuccess',['../structtz_1_1gl_1_1vk2_1_1_descriptor_pool_1_1_allocation_result.html#abad85d19de3197a840dc5e69ad797c54a6f8ab75df1f61fe1d74b80230950e6a0',1,'tz::gl::vk2::DescriptorPool::AllocationResult']]], + ['allreads_3',['AllReads',['../group__tz__gl__vk__graphics__pipeline__render__pass.html#ggaa5dd0142a36cd59d14dff54eed67c3dfa8ab0a7cae3cbaff41e05a64461e3d3dc',1,'tz::gl::vk2']]], + ['allwrites_4',['AllWrites',['../group__tz__gl__vk__graphics__pipeline__render__pass.html#ggaa5dd0142a36cd59d14dff54eed67c3dfa87c699210d01c41d2f2e4d26a26467b9',1,'tz::gl::vk2']]], + ['alpha_5fblending_5',['alpha_blending',['../group__tz__gl2__renderer.html#ggac6f74feb8cd57f49c051f5d83a12be5da9c2fd878595ad8136ed219ece90dfef9',1,'tz::gl']]], + ['alwaysfalse_6',['AlwaysFalse',['../group__tz__gl__vk__graphics__pipeline__fixed.html#gga93e2cb3a5e44484b0548e28496de69c7a8cec5cec7e1bd101eefe8dde47c99289',1,'tz::gl::vk2']]], + ['alwaystrue_7',['AlwaysTrue',['../group__tz__gl__vk__graphics__pipeline__fixed.html#gga93e2cb3a5e44484b0548e28496de69c7a65db12e33585aff2007aad58b62b7bcd',1,'tz::gl::vk2']]] +]; diff --git a/search/enumvalues_1.js b/search/enumvalues_1.js new file mode 100644 index 0000000000..5c10956e6c --- /dev/null +++ b/search/enumvalues_1.js @@ -0,0 +1,8 @@ +var searchData= +[ + ['backculling_0',['BackCulling',['../group__tz__gl__vk__graphics__pipeline__fixed.html#ggaf55856ce9f281f90908bac12e0061e16ae801bd1e6bd89372f391535221e71cf3',1,'tz::gl::vk2']]], + ['bindlessdescriptors_1',['BindlessDescriptors',['../group__tz__gl__vk__extension.html#gga6744c8f7d1276d6d9ae861b21c489505aa470c5a1e7f7f5154881cbc29acff30c',1,'tz::gl::vk2']]], + ['bothculling_2',['BothCulling',['../group__tz__gl__vk__graphics__pipeline__fixed.html#ggaf55856ce9f281f90908bac12e0061e16a41356deeb07cbbcf9da994b364f45374',1,'tz::gl::vk2']]], + ['bottom_3',['Bottom',['../group__tz__gl__vk__graphics__pipeline.html#ggaa581c5a329a76e48f41ca02bd263251aa2ad9d63b69c4a10a5cc9cad923133bc4',1,'tz::gl::vk2']]], + ['buffer_4',['buffer',['../group__tz__gl2__res.html#gga4a7818551bb2ef3d04edb95ec731d041a7f2db423a49b305459147332fb01cf87',1,'tz::gl']]] +]; diff --git a/search/enumvalues_10.js b/search/enumvalues_10.js new file mode 100644 index 0000000000..697c811640 --- /dev/null +++ b/search/enumvalues_10.js @@ -0,0 +1,15 @@ +var searchData= +[ + ['tessellation_5fcontrol_0',['tessellation_control',['../group__tz__gl__ogl2__shader.html#gga6f74da2ab2ba8d9a9e73815fa16ac5f4a020b3c0169faf87abaa8931b92883373',1,'tz::gl::ogl2']]], + ['tessellation_5fevaluation_1',['tessellation_evaluation',['../group__tz__gl__ogl2__shader.html#gga6f74da2ab2ba8d9a9e73815fa16ac5f4a2859aa43f543537a942fcca51e45b974',1,'tz::gl::ogl2']]], + ['tessellationcontrolshader_2',['TessellationControlShader',['../group__tz__gl__vk__graphics__pipeline.html#ggaa581c5a329a76e48f41ca02bd263251aae1bc6b887951aa3ad70f1cdebd02aa7c',1,'tz::gl::vk2']]], + ['tessellationevaluationshader_3',['TessellationEvaluationShader',['../group__tz__gl__vk__graphics__pipeline.html#ggaa581c5a329a76e48f41ca02bd263251aa8dbef1b4099311308f1297f6fb54c1b8',1,'tz::gl::vk2']]], + ['tessellationshaders_4',['TessellationShaders',['../group__tz__gl__vk__extension.html#gga6744c8f7d1276d6d9ae861b21c489505a0fc969c0579e0ecc3324615f8eff626d',1,'tz::gl::vk2']]], + ['timelinesemaphores_5',['TimelineSemaphores',['../group__tz__gl__vk__extension.html#gga6744c8f7d1276d6d9ae861b21c489505a2ba71b83fa5ce2f8870a1259a92cd76b',1,'tz::gl::vk2']]], + ['top_6',['Top',['../group__tz__gl__vk__graphics__pipeline.html#ggaa581c5a329a76e48f41ca02bd263251aaa4ffdcf0dc1f31b9acaf295d75b51d00',1,'tz::gl::vk2']]], + ['transfercommands_7',['TransferCommands',['../group__tz__gl__vk__graphics__pipeline.html#ggaa581c5a329a76e48f41ca02bd263251aa6ceeb738294823c48050af12328d0606',1,'tz::gl::vk2']]], + ['transferdestination_8',['transferdestination',['../group__tz__gl__vk__buffer.html#gga0c6ff78fc058c3e209ba59dc1b2c02a6a9cecc9065ff3b79e09391fcbfb7b9ce9',1,'TransferDestinationtz::gl::vk2'],['../group__tz__gl__vk__image.html#gga4ca55be3d1c101900d800a78deeb595fa9cecc9065ff3b79e09391fcbfb7b9ce9',1,'TransferDestinationtz::gl::vk2'],['../group__tz__gl__vk__image.html#gga6ecb2d248a682aac08d93f4a7078161ea9cecc9065ff3b79e09391fcbfb7b9ce9',1,'TransferDestinationtz::gl::vk2']]], + ['transferoperationread_9',['TransferOperationRead',['../group__tz__gl__vk__graphics__pipeline__render__pass.html#ggaa5dd0142a36cd59d14dff54eed67c3dfa9e73033c1e7e3a919d6bc35d007c5fdd',1,'tz::gl::vk2']]], + ['transferoperationwrite_10',['TransferOperationWrite',['../group__tz__gl__vk__graphics__pipeline__render__pass.html#ggaa5dd0142a36cd59d14dff54eed67c3dfac3de85a886292aa73480d52a5cfeb2df',1,'tz::gl::vk2']]], + ['transfersource_11',['transfersource',['../group__tz__gl__vk__buffer.html#gga0c6ff78fc058c3e209ba59dc1b2c02a6a8c4df84c9e73cf86122034f85efac361',1,'TransferSourcetz::gl::vk2'],['../group__tz__gl__vk__image.html#gga4ca55be3d1c101900d800a78deeb595fa8c4df84c9e73cf86122034f85efac361',1,'TransferSourcetz::gl::vk2'],['../group__tz__gl__vk__image.html#gga6ecb2d248a682aac08d93f4a7078161ea8c4df84c9e73cf86122034f85efac361',1,'TransferSourcetz::gl::vk2']]] +]; diff --git a/search/enumvalues_11.js b/search/enumvalues_11.js new file mode 100644 index 0000000000..8fdbf1b332 --- /dev/null +++ b/search/enumvalues_11.js @@ -0,0 +1,9 @@ +var searchData= +[ + ['undefined_0',['undefined',['../group__tz__gl2.html#gga79b99b79311ee4f6dd10a6dfada3a235a5e543256c480ac577d30f76f9120eb74',1,'undefinedtz::gl'],['../group__tz__gl__vk__image.html#ggaf7d399489dcebca1c95d5852c8d7ec6ea5e543256c480ac577d30f76f9120eb74',1,'undefinedtz::gl::vk2'],['../group__tz__gl__vk__image.html#gga4ca55be3d1c101900d800a78deeb595faec0fc0100c4fc1ce4eea230c3dc10360',1,'Undefinedtz::gl::vk2']]], + ['uniform_1',['uniform',['../group__tz__gl__ogl2__buffers.html#gga2d4cfcc22205d2276ef7347cf6e1c1edaa489ffed938ef1b9e86889bc413501ee',1,'tz::gl::ogl2']]], + ['uniformbuffer_2',['UniformBuffer',['../group__tz__gl__vk__buffer.html#gga0c6ff78fc058c3e209ba59dc1b2c02a6a88f133adfed6c854e5731cdffbf208cf',1,'tz::gl::vk2']]], + ['uniformbufferread_3',['UniformBufferRead',['../group__tz__gl__vk__graphics__pipeline__render__pass.html#ggaa5dd0142a36cd59d14dff54eed67c3dfa1f13b30fd405557096bb743af090f50d',1,'tz::gl::vk2']]], + ['updateafterbind_4',['UpdateAfterBind',['../group__tz__gl__vk__descriptors.html#ggaf15b5e240b6c64c9dad040171f553123a4b8308424b6fb4b70803778cfc461015',1,'tz::gl::vk2']]], + ['updateunusedwhilepending_5',['UpdateUnusedWhilePending',['../group__tz__gl__vk__descriptors.html#ggaf15b5e240b6c64c9dad040171f553123a74985606c2a8d95e3aa784b1f882ba44',1,'tz::gl::vk2']]] +]; diff --git a/search/enumvalues_12.js b/search/enumvalues_12.js new file mode 100644 index 0000000000..d12ed0f235 --- /dev/null +++ b/search/enumvalues_12.js @@ -0,0 +1,18 @@ +var searchData= +[ + ['variablecount_0',['VariableCount',['../group__tz__gl__vk__descriptors.html#ggaf15b5e240b6c64c9dad040171f553123a0a4625b183e121c4198d645f0a9bf07e',1,'tz::gl::vk2']]], + ['vec1float16_1',['Vec1Float16',['../group__tz__gl__vk__graphics__pipeline__fixed.html#gga486655233c597343f461a27c5316d087a42e64b5b4480aa1d3d11cb1bfd2ee012',1,'tz::gl::vk2']]], + ['vec1float32_2',['Vec1Float32',['../group__tz__gl__vk__graphics__pipeline__fixed.html#gga486655233c597343f461a27c5316d087a619665b33f0fe33e3c277f0191a3f7d6',1,'tz::gl::vk2']]], + ['vec2float32_3',['Vec2Float32',['../group__tz__gl__vk__graphics__pipeline__fixed.html#gga486655233c597343f461a27c5316d087a63264646c58c78cb27b293519e3d0dbb',1,'tz::gl::vk2']]], + ['vec2float64_4',['Vec2Float64',['../group__tz__gl__vk__graphics__pipeline__fixed.html#gga486655233c597343f461a27c5316d087ad173987eb549e79990c7a167421f6db7',1,'tz::gl::vk2']]], + ['vec3float48_5',['Vec3Float48',['../group__tz__gl__vk__graphics__pipeline__fixed.html#gga486655233c597343f461a27c5316d087a0ac49216ffcaddb289c055a77cda7470',1,'tz::gl::vk2']]], + ['vec3float96_6',['Vec3Float96',['../group__tz__gl__vk__graphics__pipeline__fixed.html#gga486655233c597343f461a27c5316d087aa83f4627a492b41eb080400fd6af72fa',1,'tz::gl::vk2']]], + ['vec4float128_7',['Vec4Float128',['../group__tz__gl__vk__graphics__pipeline__fixed.html#gga486655233c597343f461a27c5316d087aeb8909da84a3e8acc08c00ad1c61f9b7',1,'tz::gl::vk2']]], + ['vec4float64_8',['Vec4Float64',['../group__tz__gl__vk__graphics__pipeline__fixed.html#gga486655233c597343f461a27c5316d087a39af6f9354b09edb13fbd0c1c77130f9',1,'tz::gl::vk2']]], + ['vertex_9',['vertex',['../group__tz__gl__ogl2__shader.html#gga6f74da2ab2ba8d9a9e73815fa16ac5f4a2b5bc093b09bd81f51de433bde9d202a',1,'tz::gl::ogl2']]], + ['vertexbuffer_10',['VertexBuffer',['../group__tz__gl__vk__buffer.html#gga0c6ff78fc058c3e209ba59dc1b2c02a6a10461f19cdb5aadba2fc9986be6400bd',1,'tz::gl::vk2']]], + ['vertexbufferread_11',['VertexBufferRead',['../group__tz__gl__vk__graphics__pipeline__render__pass.html#ggaa5dd0142a36cd59d14dff54eed67c3dfaec21703627e9de694102e22b1f2542c0',1,'tz::gl::vk2']]], + ['vertexindexinput_12',['VertexIndexInput',['../group__tz__gl__vk__graphics__pipeline.html#ggaa581c5a329a76e48f41ca02bd263251aa1311d08fb1f8b78c1be3ebb4c53c0e80',1,'tz::gl::vk2']]], + ['vertexpipelineresourcewrite_13',['VertexPipelineResourceWrite',['../group__tz__gl__vk__extension.html#gga6744c8f7d1276d6d9ae861b21c489505ab77badc545def5f132a116dcfab8e272',1,'tz::gl::vk2']]], + ['vertexshader_14',['VertexShader',['../group__tz__gl__vk__graphics__pipeline.html#ggaa581c5a329a76e48f41ca02bd263251aaeb3ca4dac3e206977e0b7d998eefcc33',1,'tz::gl::vk2']]] +]; diff --git a/search/enumvalues_13.js b/search/enumvalues_13.js new file mode 100644 index 0000000000..ca838e0cbd --- /dev/null +++ b/search/enumvalues_13.js @@ -0,0 +1,6 @@ +var searchData= +[ + ['window_5fhidden_0',['window_hidden',['../group__tz__core.html#ggad12da2cb05946402335871d2e282cbf9a1425bc6356c345ad2056f57cacf44ac4',1,'tz']]], + ['window_5fnoresize_1',['window_noresize',['../group__tz__core.html#ggad12da2cb05946402335871d2e282cbf9a0d043ffc8c61373723263480302c143d',1,'tz']]], + ['window_5ftransparent_2',['window_transparent',['../group__tz__core.html#ggad12da2cb05946402335871d2e282cbf9a7861ae15fcf4eb409057db8c14e8c10a',1,'tz']]] +]; diff --git a/search/enumvalues_2.js b/search/enumvalues_2.js new file mode 100644 index 0000000000..bb8db063b8 --- /dev/null +++ b/search/enumvalues_2.js @@ -0,0 +1,14 @@ +var searchData= +[ + ['clamp_5fto_5fedge_0',['clamp_to_edge',['../group__tz__gl__ogl2__image.html#gga52bed615aea0b883aeb6702716f95e5ba7ff5ead6fef18ca5f63119754ac76c3e',1,'tz::gl::ogl2']]], + ['clamptoborder_1',['ClampToBorder',['../group__tz__gl__vk__image.html#gga8d6daa8ff20537f40f5e1145342c2d4dafb07f88f6f11cc5ab9c951290716f147',1,'tz::gl::vk2']]], + ['clamptoedge_2',['ClampToEdge',['../group__tz__gl__vk__image.html#gga8d6daa8ff20537f40f5e1145342c2d4da74556551231333c36debc3d373261134',1,'tz::gl::vk2']]], + ['clear_3',['Clear',['../group__tz__gl__vk__graphics__pipeline__render__pass.html#ggaa1e0e627270d80ef86624590afc5a03fadc30bc0c7914db5918da4263fce93ad2',1,'tz::gl::vk2']]], + ['clicked_4',['clicked',['../group__tz__wsi__mouse.html#gga089bafa0df7fa17353dbf27087a1f65ba90c655064697116004fbac6936e898d1',1,'tz::wsi']]], + ['colourattachment_5',['colourattachment',['../group__tz__gl__vk__image.html#gga4ca55be3d1c101900d800a78deeb595fa19c3378429e6e0fce64ea1de4290a6d5',1,'ColourAttachmenttz::gl::vk2'],['../group__tz__gl__vk__image.html#gga6ecb2d248a682aac08d93f4a7078161ea19c3378429e6e0fce64ea1de4290a6d5',1,'ColourAttachmenttz::gl::vk2']]], + ['colourattachmentoutput_6',['ColourAttachmentOutput',['../group__tz__gl__vk__graphics__pipeline.html#ggaa581c5a329a76e48f41ca02bd263251aaec356eeffd7d26280475eadca9140604',1,'tz::gl::vk2']]], + ['colourattachmentread_7',['ColourAttachmentRead',['../group__tz__gl__vk__graphics__pipeline__render__pass.html#ggaa5dd0142a36cd59d14dff54eed67c3dfa94913a4c01c391312dd5de73eda8f3e2',1,'tz::gl::vk2']]], + ['colourattachmentwrite_8',['ColourAttachmentWrite',['../group__tz__gl__vk__graphics__pipeline__render__pass.html#ggaa5dd0142a36cd59d14dff54eed67c3dfa2f4e5868ed1ef1abb6e450f2040633f7',1,'tz::gl::vk2']]], + ['colourblendlogicaloperations_9',['ColourBlendLogicalOperations',['../group__tz__gl__vk__extension.html#gga6744c8f7d1276d6d9ae861b21c489505a5c5e6dcae77164cee63d668af3b3bc9e',1,'tz::gl::vk2']]], + ['compute_10',['compute',['../group__tz__gl__ogl2__shader.html#gga6f74da2ab2ba8d9a9e73815fa16ac5f4a77e73f3a185e16d1f08ca5e057710b9d',1,'tz::gl::ogl2']]] +]; diff --git a/search/enumvalues_3.js b/search/enumvalues_3.js new file mode 100644 index 0000000000..759df9b5b8 --- /dev/null +++ b/search/enumvalues_3.js @@ -0,0 +1,18 @@ +var searchData= +[ + ['debugmessenger_0',['DebugMessenger',['../group__tz__gl__vk__extension.html#ggaab3eb58740575c989d5eab8c3fd877a7ad69051b615fff4b893472a8289678385',1,'tz::gl::vk2']]], + ['depthstencilattachment_1',['depthstencilattachment',['../group__tz__gl__vk__image.html#gga4ca55be3d1c101900d800a78deeb595fa652fd1408b3de263e32147770a48931e',1,'DepthStencilAttachmenttz::gl::vk2'],['../group__tz__gl__vk__image.html#gga6ecb2d248a682aac08d93f4a7078161ea652fd1408b3de263e32147770a48931e',1,'DepthStencilAttachmenttz::gl::vk2']]], + ['depthstencilattachmentread_2',['DepthStencilAttachmentRead',['../group__tz__gl__vk__graphics__pipeline__render__pass.html#ggaa5dd0142a36cd59d14dff54eed67c3dfa35a30e5a6da75a4db202f65938e5189a',1,'tz::gl::vk2']]], + ['depthstencilattachmentwrite_3',['DepthStencilAttachmentWrite',['../group__tz__gl__vk__graphics__pipeline__render__pass.html#ggaa5dd0142a36cd59d14dff54eed67c3dfae2b1f5924289699c44b8ecba300a5de0',1,'tz::gl::vk2']]], + ['detach_5fchildren_4',['detach_children',['../classtz_1_1transform__hierarchy.html#a03c95b250f14ac9f110b59eceb772222aa0dd84f469d573546155b02538698177',1,'tz::transform_hierarchy']]], + ['dontcare_5',['dontcare',['../group__tz__gl__vk__graphics__pipeline__render__pass.html#ggaa1e0e627270d80ef86624590afc5a03fa60a3629ef6a8f991f45d7a85f2458544',1,'DontCaretz::gl::vk2'],['../group__tz__gl__vk__graphics__pipeline__render__pass.html#ggab92f36711ba7bb90caf0e4a39748ed7da60a3629ef6a8f991f45d7a85f2458544',1,'DontCaretz::gl::vk2']]], + ['double_5fclicked_6',['double_clicked',['../group__tz__wsi__mouse.html#gga089bafa0df7fa17353dbf27087a1f65bac587d5d54676217aeecb4b993c3186cf',1,'tz::wsi']]], + ['draw_5findirect_7',['draw_indirect',['../group__tz__gl__ogl2__buffers.html#gga2d4cfcc22205d2276ef7347cf6e1c1edabe98195f011ff22c0afcb8e499f015bf',1,'tz::gl::ogl2']]], + ['draw_5findirect_5fbuffer_8',['draw_indirect_buffer',['../group__tz__gl2__res.html#ggaacaeec69fc5b83e204af317250a47eb8a728c7ac13a50ff63ede85d62daaea87d',1,'draw_indirect_buffertz::gl'],['../group__tz__gl__vk__buffer.html#gga0c6ff78fc058c3e209ba59dc1b2c02a6a728c7ac13a50ff63ede85d62daaea87d',1,'draw_indirect_buffertz::gl::vk2']]], + ['draw_5findirect_5fcount_9',['draw_indirect_count',['../group__tz__gl2__renderer.html#ggac6f74feb8cd57f49c051f5d83a12be5da33cd60667ba40af9abe3d4c9346ea1eb',1,'tz::gl']]], + ['drawindirect_10',['DrawIndirect',['../group__tz__gl__vk__graphics__pipeline.html#ggaa581c5a329a76e48f41ca02bd263251aa95b0e6b8c7aa6af632295afda7a926bc',1,'tz::gl::vk2']]], + ['drawindirectcount_11',['DrawIndirectCount',['../group__tz__gl__vk__extension.html#gga6744c8f7d1276d6d9ae861b21c489505a215e219c44e85364464e51a55db84847',1,'tz::gl::vk2']]], + ['dynamic_12',['dynamic',['../group__tz__gl__ogl2__buffers.html#ggae0f51febb963a7dc9fce3cc2208559a6ab72f3bd391ba731a35708bfd8cd8a68f',1,'tz::gl::ogl2']]], + ['dynamic_5faccess_13',['dynamic_access',['../group__tz__gl2__res.html#ggac9293366fa49e7f476827595ca80fbbba4d2d126e5a776af51934638915e14737',1,'tz::gl']]], + ['dynamicrendering_14',['DynamicRendering',['../group__tz__gl__vk__extension.html#gga6744c8f7d1276d6d9ae861b21c489505a25013a5dfa918c9d7f1ad4e596648514',1,'tz::gl::vk2']]] +]; diff --git a/search/enumvalues_4.js b/search/enumvalues_4.js new file mode 100644 index 0000000000..11b9f44bdb --- /dev/null +++ b/search/enumvalues_4.js @@ -0,0 +1,5 @@ +var searchData= +[ + ['earlyfragmenttests_0',['EarlyFragmentTests',['../group__tz__gl__vk__graphics__pipeline.html#ggaa581c5a329a76e48f41ca02bd263251aa5ad09049db5ad41b32b78a92294484c7',1,'tz::gl::vk2']]], + ['equalto_1',['EqualTo',['../group__tz__gl__vk__graphics__pipeline__fixed.html#gga93e2cb3a5e44484b0548e28496de69c7a0242c502bd906e05171e64bad31c7c21',1,'tz::gl::vk2']]] +]; diff --git a/search/enumvalues_5.js b/search/enumvalues_5.js new file mode 100644 index 0000000000..d0ec151e4b --- /dev/null +++ b/search/enumvalues_5.js @@ -0,0 +1,16 @@ +var searchData= +[ + ['fail_5faccessdenied_0',['Fail_AccessDenied',['../classtz_1_1gl_1_1vk2_1_1hardware_1_1_queue.html#a85b458bfb664176d140abf3b6b627e67aaea27d8b72d8ffa293cbf65f97b70e30',1,'tz::gl::vk2::hardware::Queue']]], + ['fail_5ffatalerror_1',['Fail_FatalError',['../classtz_1_1gl_1_1vk2_1_1hardware_1_1_queue.html#a85b458bfb664176d140abf3b6b627e67aca1a7c2d3dbabec931605566d7db0117',1,'tz::gl::vk2::hardware::Queue']]], + ['fail_5foutofdate_2',['Fail_OutOfDate',['../classtz_1_1gl_1_1vk2_1_1hardware_1_1_queue.html#a85b458bfb664176d140abf3b6b627e67a840624fba8a877312dbd12ff0481e17d',1,'tz::gl::vk2::hardware::Queue']]], + ['fail_5fsurfacelost_3',['Fail_SurfaceLost',['../classtz_1_1gl_1_1vk2_1_1hardware_1_1_queue.html#a85b458bfb664176d140abf3b6b627e67a33ac27a04865222ea13822bd532d6973',1,'tz::gl::vk2::hardware::Queue']]], + ['fatalerror_4',['FatalError',['../structtz_1_1gl_1_1vk2_1_1_descriptor_pool_1_1_allocation_result.html#abad85d19de3197a840dc5e69ad797c54af245a0dc66dc8cd7d835771034eb4b86',1,'tz::gl::vk2::DescriptorPool::AllocationResult']]], + ['fifo_5',['Fifo',['../group__tz__gl__vk__presentation.html#gga8e6e925d93013e81273325bc8764577aaa0476ca4d7283b340d24c53c16270958',1,'tz::gl::vk2']]], + ['fiforelaxed_6',['FifoRelaxed',['../group__tz__gl__vk__presentation.html#gga8e6e925d93013e81273325bc8764577aa492bb3d1da50c48c7ae3a1f699f4c3ed',1,'tz::gl::vk2']]], + ['fill_7',['Fill',['../group__tz__gl__vk__graphics__pipeline__fixed.html#ggaaeda985d06849d890d7ba2902688cd01adb3e3f51c9107e26c9bccf9a188ce2ed',1,'tz::gl::vk2']]], + ['fragment_8',['fragment',['../group__tz__gl__ogl2__shader.html#gga6f74da2ab2ba8d9a9e73815fa16ac5f4a02e918fc72837d7c2689be88684dceb1',1,'tz::gl::ogl2']]], + ['fragmentedpool_9',['FragmentedPool',['../structtz_1_1gl_1_1vk2_1_1_descriptor_pool_1_1_allocation_result.html#abad85d19de3197a840dc5e69ad797c54ae95f85b8630e52cf6e5f6aa542bec654',1,'tz::gl::vk2::DescriptorPool::AllocationResult']]], + ['fragmentshader_10',['FragmentShader',['../group__tz__gl__vk__graphics__pipeline.html#ggaa581c5a329a76e48f41ca02bd263251aa90a9bb4e665932b1781da33fc2f32922',1,'tz::gl::vk2']]], + ['fragmentshaderresourcewrite_11',['FragmentShaderResourceWrite',['../group__tz__gl__vk__extension.html#gga6744c8f7d1276d6d9ae861b21c489505a70e29cc30c58871bc15535cb09d4ee87',1,'tz::gl::vk2']]], + ['frontculling_12',['FrontCulling',['../group__tz__gl__vk__graphics__pipeline__fixed.html#ggaf55856ce9f281f90908bac12e0061e16a1292c8b012a45fb6b03a5354925777e2',1,'tz::gl::vk2']]] +]; diff --git a/search/enumvalues_6.js b/search/enumvalues_6.js new file mode 100644 index 0000000000..4a0233d4e4 --- /dev/null +++ b/search/enumvalues_6.js @@ -0,0 +1,7 @@ +var searchData= +[ + ['general_0',['General',['../group__tz__gl__vk__image.html#gga4ca55be3d1c101900d800a78deeb595fa0db377921f4ce762c62526131097968f',1,'tz::gl::vk2']]], + ['geometryshader_1',['GeometryShader',['../group__tz__gl__vk__graphics__pipeline.html#ggaa581c5a329a76e48f41ca02bd263251aa87fd5b66e314d52345d46590e7124805',1,'tz::gl::vk2']]], + ['greaterthan_2',['GreaterThan',['../group__tz__gl__vk__graphics__pipeline__fixed.html#gga93e2cb3a5e44484b0548e28496de69c7af6d044fe1f01fb0c956b80099e2a3072',1,'tz::gl::vk2']]], + ['greaterthanorequal_3',['GreaterThanOrEqual',['../group__tz__gl__vk__graphics__pipeline__fixed.html#gga93e2cb3a5e44484b0548e28496de69c7a25c44812e9d75f685d2a0b815dea1ebe',1,'tz::gl::vk2']]] +]; diff --git a/search/enumvalues_7.js b/search/enumvalues_7.js new file mode 100644 index 0000000000..6a41d58d5e --- /dev/null +++ b/search/enumvalues_7.js @@ -0,0 +1,5 @@ +var searchData= +[ + ['hostread_0',['HostRead',['../group__tz__gl__vk__graphics__pipeline__render__pass.html#ggaa5dd0142a36cd59d14dff54eed67c3dfaa43bd7aae3f6e001a2ee1490421f8d90',1,'tz::gl::vk2']]], + ['hostwrite_1',['HostWrite',['../group__tz__gl__vk__graphics__pipeline__render__pass.html#ggaa5dd0142a36cd59d14dff54eed67c3dfa509b9f909831ef70e6c1ec59a3b340e9',1,'tz::gl::vk2']]] +]; diff --git a/search/enumvalues_8.js b/search/enumvalues_8.js new file mode 100644 index 0000000000..694f975253 --- /dev/null +++ b/search/enumvalues_8.js @@ -0,0 +1,18 @@ +var searchData= +[ + ['image_0',['image',['../group__tz__gl2__res.html#gga4a7818551bb2ef3d04edb95ec731d041a78805a221a988e79ef3f42d7c5bfd418',1,'tz::gl']]], + ['image_5ffilter_5flinear_1',['image_filter_linear',['../group__tz__gl2__res.html#ggaacaeec69fc5b83e204af317250a47eb8a8a9b1b3e43c4113ad451ec193bd68017',1,'tz::gl']]], + ['image_5ffilter_5fnearest_2',['image_filter_nearest',['../group__tz__gl2__res.html#ggaacaeec69fc5b83e204af317250a47eb8ad63423e4b6b9917dff5b8aa8fe18d037',1,'tz::gl']]], + ['image_5fmip_5flinear_3',['image_mip_linear',['../group__tz__gl2__res.html#ggaacaeec69fc5b83e204af317250a47eb8ae25261ba757fcd9064544e84356773b8',1,'tz::gl']]], + ['image_5fmip_5fnearest_4',['image_mip_nearest',['../group__tz__gl2__res.html#ggaacaeec69fc5b83e204af317250a47eb8a69dc2a032867f1fbbdbe7902a7a9c318',1,'tz::gl']]], + ['image_5fwrap_5fclamp_5fedge_5',['image_wrap_clamp_edge',['../group__tz__gl2__res.html#ggaacaeec69fc5b83e204af317250a47eb8abd6818f6b1e5e41a1f1169b95f55b328',1,'tz::gl']]], + ['image_5fwrap_5fmirrored_5frepeat_6',['image_wrap_mirrored_repeat',['../group__tz__gl2__res.html#ggaacaeec69fc5b83e204af317250a47eb8a3f3f8f65235766b00d473480e8eecaa7',1,'tz::gl']]], + ['image_5fwrap_5frepeat_7',['image_wrap_repeat',['../group__tz__gl2__res.html#ggaacaeec69fc5b83e204af317250a47eb8a51625ecb1d2582b8ba7de2809f6a0de6',1,'tz::gl']]], + ['immediate_8',['Immediate',['../group__tz__gl__vk__presentation.html#gga8e6e925d93013e81273325bc8764577aa43f6615bbb2c40a5306ff804094420b1',1,'tz::gl::vk2']]], + ['index_9',['index',['../group__tz__gl__ogl2__buffers.html#gga2d4cfcc22205d2276ef7347cf6e1c1eda6a992d5529f459a44fee58c733255e86',1,'tz::gl::ogl2']]], + ['index_5fbuffer_10',['index_buffer',['../group__tz__gl2__res.html#ggaacaeec69fc5b83e204af317250a47eb8aab150dddbaa3966d354cc6dcd7418ea9',1,'index_buffertz::gl'],['../group__tz__gl__vk__buffer.html#gga0c6ff78fc058c3e209ba59dc1b2c02a6aab150dddbaa3966d354cc6dcd7418ea9',1,'index_buffertz::gl::vk2']]], + ['indexbufferread_11',['IndexBufferRead',['../group__tz__gl__vk__graphics__pipeline__render__pass.html#ggaa5dd0142a36cd59d14dff54eed67c3dfac52fe3a67d19e52c2d8be1c1085af208',1,'tz::gl::vk2']]], + ['indirectbufferread_12',['IndirectBufferRead',['../group__tz__gl__vk__graphics__pipeline__render__pass.html#ggaa5dd0142a36cd59d14dff54eed67c3dfa4656386f11c44452e8d3dd44b23c8bc2',1,'tz::gl::vk2']]], + ['inputattachment_13',['InputAttachment',['../group__tz__gl__vk__image.html#gga6ecb2d248a682aac08d93f4a7078161ea261d965f5dd43c6873489b68730dbe57',1,'tz::gl::vk2']]], + ['inputattachmentread_14',['InputAttachmentRead',['../group__tz__gl__vk__graphics__pipeline__render__pass.html#ggaa5dd0142a36cd59d14dff54eed67c3dfa37bc3fb1753f31a1bfd76b475531d179',1,'tz::gl::vk2']]] +]; diff --git a/search/enumvalues_9.js b/search/enumvalues_9.js new file mode 100644 index 0000000000..f0550d260f --- /dev/null +++ b/search/enumvalues_9.js @@ -0,0 +1,10 @@ +var searchData= +[ + ['latefragmenttests_0',['LateFragmentTests',['../group__tz__gl__vk__graphics__pipeline.html#ggaa581c5a329a76e48f41ca02bd263251aaeada3dda11ce9944c5f92e0d721f9394',1,'tz::gl::vk2']]], + ['left_1',['left',['../group__tz__wsi__mouse.html#ggaf90a65771c2d2d40e2d8a35f27288e23a811882fecd5c7618d7099ebbd39ea254',1,'tz::wsi']]], + ['lessthan_2',['LessThan',['../group__tz__gl__vk__graphics__pipeline__fixed.html#gga93e2cb3a5e44484b0548e28496de69c7ac6d9d7bb9939f62f01c80f8b1251501c',1,'tz::gl::vk2']]], + ['lessthanorequal_3',['LessThanOrEqual',['../group__tz__gl__vk__graphics__pipeline__fixed.html#gga93e2cb3a5e44484b0548e28496de69c7a4ab671acbbaacb0db7d8477cfe4f4e0b',1,'tz::gl::vk2']]], + ['line_4',['Line',['../group__tz__gl__vk__graphics__pipeline__fixed.html#ggaaeda985d06849d890d7ba2902688cd01a4803e6b9e63dabf04de980788d6a13c4',1,'tz::gl::vk2']]], + ['linear_5',['linear',['../group__tz__gl__ogl2__image.html#ggadabff1825f7cf36d8fada93ee1164a31a9a932b3cb396238423eb2f33ec17d6aa',1,'lineartz::gl::ogl2'],['../group__tz__gl__vk__image.html#gga41ec6a06ba8bf8e03f80cf81eb99b46aa32a843da6ea40ab3b17a3421ccdf671b',1,'Lineartz::gl::vk2']]], + ['load_6',['Load',['../group__tz__gl__vk__graphics__pipeline__render__pass.html#ggaa1e0e627270d80ef86624590afc5a03faf19dbf2edb3a0bd74b0524d960ff21eb',1,'tz::gl::vk2']]] +]; diff --git a/search/enumvalues_a.js b/search/enumvalues_a.js new file mode 100644 index 0000000000..cbced8c32d --- /dev/null +++ b/search/enumvalues_a.js @@ -0,0 +1,8 @@ +var searchData= +[ + ['mailbox_0',['Mailbox',['../group__tz__gl__vk__presentation.html#gga8e6e925d93013e81273325bc8764577aa2dcff8c037093c5d3552ad532e603f9f',1,'tz::gl::vk2']]], + ['middle_1',['middle',['../group__tz__wsi__mouse.html#ggaf90a65771c2d2d40e2d8a35f27288e23a4a548addbfb239bbd12f5afe11a4b6dc',1,'tz::wsi']]], + ['mirrored_5frepeat_2',['mirrored_repeat',['../group__tz__gl__ogl2__image.html#gga52bed615aea0b883aeb6702716f95e5ba301defc6e7425fc63ef35c7827d43b44',1,'tz::gl::ogl2']]], + ['mirroredrepeat_3',['MirroredRepeat',['../group__tz__gl__vk__image.html#gga8d6daa8ff20537f40f5e1145342c2d4da12ce4a5977988214a6b098b8cb0bf695',1,'tz::gl::vk2']]], + ['multidrawindirect_4',['MultiDrawIndirect',['../group__tz__gl__vk__extension.html#gga6744c8f7d1276d6d9ae861b21c489505abea0d690193c82d29c896d859a91d8ff',1,'tz::gl::vk2']]] +]; diff --git a/search/enumvalues_b.js b/search/enumvalues_b.js new file mode 100644 index 0000000000..71c22c00f1 --- /dev/null +++ b/search/enumvalues_b.js @@ -0,0 +1,14 @@ +var searchData= +[ + ['nearest_0',['nearest',['../group__tz__gl__ogl2__image.html#ggadabff1825f7cf36d8fada93ee1164a31ad879c351426770bc0b13c3628db1e636',1,'tz::gl::ogl2']]], + ['no_5fclear_5foutput_1',['no_clear_output',['../group__tz__gl2__renderer.html#ggac6f74feb8cd57f49c051f5d83a12be5da2203bd6a7850fb82fd5e59beddc2533d',1,'tz::gl']]], + ['no_5fdbgui_2',['no_dbgui',['../group__tz__core.html#ggad12da2cb05946402335871d2e282cbf9ad9ca1f44f2854bcace7ddf018002c26f',1,'tz']]], + ['no_5fdepth_5ftesting_3',['no_depth_testing',['../group__tz__gl2__renderer.html#ggac6f74feb8cd57f49c051f5d83a12be5daee30a7f521c17e0d4e97d6b247540301',1,'tz::gl']]], + ['no_5fgraphics_4',['no_graphics',['../group__tz__core.html#ggad12da2cb05946402335871d2e282cbf9a5deafc826baa20fe6c136c1e928e8fc3',1,'tz']]], + ['no_5fpresent_5',['no_present',['../group__tz__gl2__renderer.html#ggac6f74feb8cd57f49c051f5d83a12be5da8c583826577e40349f4d932f07107a8e',1,'tz::gl']]], + ['noclicked_6',['noclicked',['../group__tz__wsi__mouse.html#gga089bafa0df7fa17353dbf27087a1f65bac40b9c441c245ba7a4537352a73f5b90',1,'tz::wsi']]], + ['noculling_7',['NoCulling',['../group__tz__gl__vk__graphics__pipeline__fixed.html#ggaf55856ce9f281f90908bac12e0061e16a6913ff808b22b8502cdcf790839eeaa0',1,'tz::gl::vk2']]], + ['noneneeded_8',['NoneNeeded',['../group__tz__gl__vk__graphics__pipeline__render__pass.html#ggaa5dd0142a36cd59d14dff54eed67c3dfa8de1f22edd904226836321deb96d7f1d',1,'tz::gl::vk2']]], + ['nonsolidfillrasteriser_9',['NonSolidFillRasteriser',['../group__tz__gl__vk__extension.html#gga6744c8f7d1276d6d9ae861b21c489505a50df80e0d2daa3c2a0fbf8a994ad3a62',1,'tz::gl::vk2']]], + ['notequalto_10',['NotEqualTo',['../group__tz__gl__vk__graphics__pipeline__fixed.html#gga93e2cb3a5e44484b0548e28496de69c7a0961129d84d9d8f6aa4138a3e5022a1d',1,'tz::gl::vk2']]] +]; diff --git a/search/enumvalues_c.js b/search/enumvalues_c.js new file mode 100644 index 0000000000..619ea23068 --- /dev/null +++ b/search/enumvalues_c.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['optimal_0',['Optimal',['../group__tz__gl__vk__image.html#gga41ec6a06ba8bf8e03f80cf81eb99b46aacb61fef1e5e79e07a80421cb9a073a80',1,'tz::gl::vk2']]] +]; diff --git a/search/enumvalues_d.js b/search/enumvalues_d.js new file mode 100644 index 0000000000..6534739098 --- /dev/null +++ b/search/enumvalues_d.js @@ -0,0 +1,9 @@ +var searchData= +[ + ['parameter_0',['parameter',['../group__tz__gl__ogl2__buffers.html#gga2d4cfcc22205d2276ef7347cf6e1c1eda03144cce1fcdacdbe993e5266c0bf3f3',1,'tz::gl::ogl2']]], + ['partiallybound_1',['PartiallyBound',['../group__tz__gl__vk__descriptors.html#ggaf15b5e240b6c64c9dad040171f553123a16d008687eb1211c484cfc25158d727d',1,'tz::gl::vk2']]], + ['patch_5fchildren_5fto_5fparent_2',['patch_children_to_parent',['../classtz_1_1transform__hierarchy.html#a03c95b250f14ac9f110b59eceb772222a643e392a473ae000537e2535d8793a5c',1,'tz::transform_hierarchy']]], + ['point_3',['Point',['../group__tz__gl__vk__graphics__pipeline__fixed.html#ggaaeda985d06849d890d7ba2902688cd01a2a3cd5946cfd317eb99c3d32e35e2d4c',1,'tz::gl::vk2']]], + ['pooloutofmemory_4',['PoolOutOfMemory',['../structtz_1_1gl_1_1vk2_1_1_descriptor_pool_1_1_allocation_result.html#abad85d19de3197a840dc5e69ad797c54a59ea7060f6bf874416655509987eaa47',1,'tz::gl::vk2::DescriptorPool::AllocationResult']]], + ['present_5',['Present',['../group__tz__gl__vk__image.html#gga4ca55be3d1c101900d800a78deeb595fadd058df87f5c88e3285a28ad7406a3c6',1,'tz::gl::vk2']]] +]; diff --git a/search/enumvalues_e.js b/search/enumvalues_e.js new file mode 100644 index 0000000000..53bf69f3a8 --- /dev/null +++ b/search/enumvalues_e.js @@ -0,0 +1,8 @@ +var searchData= +[ + ['remove_5fchildren_0',['remove_children',['../classtz_1_1transform__hierarchy.html#a03c95b250f14ac9f110b59eceb772222af68ad5a97e4322c39a182b75b4719967',1,'tz::transform_hierarchy']]], + ['render_5fwait_1',['render_wait',['../group__tz__gl2__renderer.html#ggac6f74feb8cd57f49c051f5d83a12be5da53620d781237787604432a229f2d8af7',1,'tz::gl']]], + ['renderer_5foutput_2',['renderer_output',['../group__tz__gl2__res.html#ggaacaeec69fc5b83e204af317250a47eb8a8875c7873ad9469ba236f17af49ab331',1,'tz::gl']]], + ['repeat_3',['repeat',['../group__tz__gl__vk__image.html#gga8d6daa8ff20537f40f5e1145342c2d4da7020426cfb0a204051be4b3053d2acc8',1,'Repeattz::gl::vk2'],['../group__tz__gl__ogl2__image.html#gga52bed615aea0b883aeb6702716f95e5ba32cf6da134a8b268cf4ab6b79a9a5ad9',1,'repeattz::gl::ogl2']]], + ['right_4',['right',['../group__tz__wsi__mouse.html#ggaf90a65771c2d2d40e2d8a35f27288e23a7c4f29407893c334a6cb7a87bf045c0d',1,'tz::wsi']]] +]; diff --git a/search/enumvalues_f.js b/search/enumvalues_f.js new file mode 100644 index 0000000000..a3afd0d380 --- /dev/null +++ b/search/enumvalues_f.js @@ -0,0 +1,16 @@ +var searchData= +[ + ['sampledimage_0',['SampledImage',['../group__tz__gl__vk__image.html#gga6ecb2d248a682aac08d93f4a7078161ea4520c597ce328c250d1ca5192047d71d',1,'tz::gl::vk2']]], + ['shader_5fstorage_1',['shader_storage',['../group__tz__gl__ogl2__buffers.html#gga2d4cfcc22205d2276ef7347cf6e1c1edad76cc0c2dd3511b4bbdddd8f00dd1a0c',1,'tz::gl::ogl2']]], + ['shaderdrawparameters_2',['ShaderDrawParameters',['../group__tz__gl__vk__extension.html#gga6744c8f7d1276d6d9ae861b21c489505a209aad0772152a5828a2dbbf9d63cd10',1,'tz::gl::vk2']]], + ['shaderresource_3',['ShaderResource',['../group__tz__gl__vk__image.html#gga4ca55be3d1c101900d800a78deeb595fada4ef1bdf2d2fce1cfc6fd62870a44ef',1,'tz::gl::vk2']]], + ['shaderresourceread_4',['ShaderResourceRead',['../group__tz__gl__vk__graphics__pipeline__render__pass.html#ggaa5dd0142a36cd59d14dff54eed67c3dfa0f723650d92d002ccabaac11c5ffa52a',1,'tz::gl::vk2']]], + ['shaderresourcewrite_5',['ShaderResourceWrite',['../group__tz__gl__vk__graphics__pipeline__render__pass.html#ggaa5dd0142a36cd59d14dff54eed67c3dfaefa1ac5bfa2d8083d613414fe67a03e6',1,'tz::gl::vk2']]], + ['static_5faccess_6',['static_access',['../group__tz__gl2__res.html#ggac9293366fa49e7f476827595ca80fbbba79479f45c4b1b3b8a03b386762040a4a',1,'tz::gl']]], + ['static_5ffixed_7',['static_fixed',['../group__tz__gl__ogl2__buffers.html#ggae0f51febb963a7dc9fce3cc2208559a6acef5a454d703f41abcc7b138d3739664',1,'tz::gl::ogl2']]], + ['storagebuffer_8',['StorageBuffer',['../group__tz__gl__vk__buffer.html#gga0c6ff78fc058c3e209ba59dc1b2c02a6a439f57c2c466c89db942b3de48298b2b',1,'tz::gl::vk2']]], + ['storageimage_9',['StorageImage',['../group__tz__gl__vk__image.html#gga6ecb2d248a682aac08d93f4a7078161eaa078fa7ad769f9e7b53b8c42e3b7bbab',1,'tz::gl::vk2']]], + ['store_10',['Store',['../group__tz__gl__vk__graphics__pipeline__render__pass.html#ggab92f36711ba7bb90caf0e4a39748ed7dafdb0c388de01d545017cdf9ccf00eb72',1,'tz::gl::vk2']]], + ['success_5fnoissue_11',['Success_NoIssue',['../classtz_1_1gl_1_1vk2_1_1hardware_1_1_queue.html#a85b458bfb664176d140abf3b6b627e67a87f6de9428b91fd7feaecc6df574ad08',1,'tz::gl::vk2::hardware::Queue']]], + ['success_5fsuboptimal_12',['Success_Suboptimal',['../classtz_1_1gl_1_1vk2_1_1hardware_1_1_queue.html#a85b458bfb664176d140abf3b6b627e67a2debf81c3d7e76f030f7d7577971f530',1,'tz::gl::vk2::hardware::Queue']]] +]; diff --git a/search/functions_0.js b/search/functions_0.js new file mode 100644 index 0000000000..0a4243b1ed --- /dev/null +++ b/search/functions_0.js @@ -0,0 +1,25 @@ +var searchData= +[ + ['abs_0',['abs',['../group__tzsl__math.html#gaea23f121347bc1e839b7b6ffd0a2fae1',1,'tz::math']]], + ['acos_1',['acos',['../group__tzsl__math.html#ga75c1b4fe699f4acece8c43888870e5fb',1,'tz::math']]], + ['acosh_2',['acosh',['../group__tzsl__math.html#ga4d44f9362d7141ba65c9ab8b964e1ff8',1,'tz::math']]], + ['acquire_5fimage_3',['acquire_image',['../classtz_1_1gl_1_1device__window.html#a692cd28b2be1c18e04d60d2f834b2dc4',1,'tz::gl::device_window::acquire_image()'],['../classtz_1_1gl_1_1vk2_1_1_swapchain.html#a96bd4cf27464216c5294b65c939ae525',1,'tz::gl::vk2::Swapchain::acquire_image()']]], + ['add_4',['add',['../group__tzsl__atomic.html#ga89d32f0bbb6535185abe39b69fb39030',1,'tz::atomic::add()'],['../classtz_1_1basic__list.html#a3879564a08f0874bd34335a172fa8327',1,'tz::basic_list::add(T &&element)'],['../classtz_1_1basic__list.html#a4145934a925e6b0a6166396fe079e912',1,'tz::basic_list::add(const T &element)']]], + ['add_5fcallback_5',['add_callback',['../classtz_1_1callback.html#a9c2d992722fe82e5ee1c211348d7ff32',1,'tz::callback']]], + ['add_5fdependency_6',['add_dependency',['../classtz_1_1gl_1_1renderer__info.html#a67cee96b537c3155396b7e537648e208',1,'tz::gl::renderer_info']]], + ['add_5fhierarchy_7',['add_hierarchy',['../classtz_1_1transform__hierarchy.html#a1ee77288814244d347d1c9f9f718cbf1',1,'tz::transform_hierarchy']]], + ['add_5fhierarchy_5fonto_8',['add_hierarchy_onto',['../classtz_1_1transform__hierarchy.html#af9980e4f61e9442cd37e51aac4a9d76c',1,'tz::transform_hierarchy']]], + ['add_5fnode_9',['add_node',['../classtz_1_1transform__hierarchy.html#a3080a5dbadbc5dee46491867559d3452',1,'tz::transform_hierarchy']]], + ['add_5fresource_10',['add_resource',['../classtz_1_1gl_1_1renderer__info.html#a754e0e44d92be27ecf399501ba318d53',1,'tz::gl::renderer_info']]], + ['add_5fset_5fedit_11',['add_set_edit',['../classtz_1_1gl_1_1vk2_1_1_descriptor_pool_1_1_update_request.html#a9eadabf90c16c3d2cc228868752da65a',1,'tz::gl::vk2::DescriptorPool::UpdateRequest']]], + ['allocate_5fbuffers_12',['allocate_buffers',['../classtz_1_1gl_1_1vk2_1_1_command_pool.html#a791dba923c7069be7b684d58c62017fe',1,'tz::gl::vk2::CommandPool']]], + ['allocate_5fsets_13',['allocate_sets',['../classtz_1_1gl_1_1vk2_1_1_descriptor_pool.html#a08339d22389d1d308abbce0ea80a4be8',1,'tz::gl::vk2::DescriptorPool']]], + ['and_14',['and',['../group__tzsl__atomic.html#gafe35966b39ca9b843aee1df9bf0e8dcc',1,'tz::atomic']]], + ['append_15',['append',['../classtz_1_1basic__list.html#a2da568b03a98882cfd70dbc9ef726f29',1,'tz::basic_list']]], + ['append_5frange_16',['append_range',['../classtz_1_1basic__list.html#ae49735e774b1d312a5fbe8f383a54af5',1,'tz::basic_list']]], + ['asin_17',['asin',['../group__tzsl__math.html#ga303ccf32c2a3bd51916059746e13d4fb',1,'tz::math']]], + ['asinh_18',['asinh',['../group__tzsl__math.html#ga3cea91edf9f9b37f5aaeb8b20eeed9a8',1,'tz::math']]], + ['assert_19',['assert',['../group__tz__core.html#ga35faea66fc04dfa33238c863eb740c34',1,'tz::assert()'],['../group__tzsl__debug.html#ga46aa856e72453e84675e0a867438b8d0',1,'tz::debug::assert()']]], + ['atan_20',['atan',['../group__tzsl__math.html#gab6513224bd4ea1a83d9e1e78083a5899',1,'tz::math']]], + ['atanh_21',['atanh',['../group__tzsl__math.html#ga6321494f7f16de62c6693d5ec61aafd0',1,'tz::math']]] +]; diff --git a/search/functions_1.js b/search/functions_1.js new file mode 100644 index 0000000000..bb66dca2a7 --- /dev/null +++ b/search/functions_1.js @@ -0,0 +1,21 @@ +var searchData= +[ + ['back_0',['back',['../classtz_1_1basic__list.html#a7997b2e322ea17998655cbbb4846ae69',1,'tz::basic_list::back()'],['../classtz_1_1enum__field.html#ac7bf408eb8998817ef105243093e5edc',1,'tz::enum_field::back()'],['../classtz_1_1basic__list.html#ada048725d4c9628619d5fb8ff984c6d3',1,'tz::basic_list::back()']]], + ['basic_5fbind_1',['basic_bind',['../classtz_1_1gl_1_1ogl2_1_1buffer.html#af4b9c7ba42660acf5cb50dc79117f2ae',1,'tz::gl::ogl2::buffer']]], + ['basic_5flist_2',['basic_list',['../classtz_1_1basic__list.html#a9b24154d8d989de8f583fde2be983f8b',1,'tz::basic_list::basic_list(std::initializer_list< T > elements)'],['../classtz_1_1basic__list.html#aaf16b4ba68943da253217bfaf205eaeb',1,'tz::basic_list::basic_list()=default']]], + ['begin_3',['begin',['../classtz_1_1basic__list.html#ac840df6f261cf90d09d979996b0df270',1,'tz::basic_list::begin()'],['../classtz_1_1basic__list.html#ab0aaf74450ac8ef20c0787cfb893db5a',1,'tz::basic_list::begin() const'],['../classtz_1_1enum__field.html#a1497269447babbdf90e3d705938c461c',1,'tz::enum_field::begin() const'],['../classtz_1_1enum__field.html#ac167b735311acfe124dfb4c619bd6d1a',1,'tz::enum_field::begin()'],['../classtz_1_1_polymorphic_list.html#a513535554bf5116e539e356764b812b3',1,'tz::PolymorphicList::begin()'],['../classtz_1_1_polymorphic_list.html#ad6f049474f8d35b6accbb19d6e66524b',1,'tz::PolymorphicList::begin() const']]], + ['begin_5fframe_4',['begin_frame',['../group__tz__core.html#gae00451643399562c92b48a05a40896b7',1,'tz']]], + ['bind_5',['bind',['../classtz_1_1gl_1_1ogl2_1_1vertex__array.html#aaf01a3edf3e63668020174f78199b3b8',1,'tz::gl::ogl2::vertex_array::bind()'],['../classtz_1_1gl_1_1ogl2_1_1framebuffer.html#ac35f4fd02a725fa84a6e3fbdeaec4e09',1,'tz::gl::ogl2::framebuffer::bind()']]], + ['bind_5fbuffer_6',['bind_buffer',['../classtz_1_1gl_1_1vk2_1_1_command_buffer_recording.html#aa015012eda3e9de92f3a5adbaff798bd',1,'tz::gl::vk2::CommandBufferRecording']]], + ['bind_5fbuffers_7',['bind_buffers',['../classtz_1_1gl_1_1_resource_storage.html#ad52eafd3a054c5e4489c026c94a6c81a',1,'tz::gl::ResourceStorage']]], + ['bind_5fdescriptor_5fsets_8',['bind_descriptor_sets',['../classtz_1_1gl_1_1vk2_1_1_command_buffer_recording.html#ac9e417b34e2a883b34ab2099a82acd54',1,'tz::gl::vk2::CommandBufferRecording']]], + ['bind_5fimage_5fbuffer_9',['bind_image_buffer',['../classtz_1_1gl_1_1_resource_storage.html#a71e4a2bb72688cea1a4849a8f0705a42',1,'tz::gl::ResourceStorage']]], + ['bind_5fpipeline_10',['bind_pipeline',['../classtz_1_1gl_1_1vk2_1_1_command_buffer_recording.html#a8bbeeef67dcb9b04b17bf5abde907e01',1,'tz::gl::vk2::CommandBufferRecording']]], + ['bind_5fto_5fresource_5fid_11',['bind_to_resource_id',['../classtz_1_1gl_1_1ogl2_1_1buffer.html#a2f38aa4dfb4a6f0504bee1a44e0bbee6',1,'tz::gl::ogl2::buffer']]], + ['binding_5fcount_12',['binding_count',['../structtz_1_1gl_1_1vk2_1_1_descriptor_layout_info.html#a8af57d3237c4127b4d5c16624aa44306',1,'tz::gl::vk2::DescriptorLayoutInfo::binding_count()'],['../classtz_1_1gl_1_1vk2_1_1_descriptor_layout.html#a58c4419f2d78c1a6cc93100d3937480c',1,'tz::gl::vk2::DescriptorLayout::binding_count()']]], + ['buffer_13',['buffer',['../classtz_1_1gl_1_1ogl2_1_1buffer.html#ad983e40068db50252e23d62e928e17a1',1,'tz::gl::ogl2::buffer']]], + ['buffer_5fcopy_5fbuffer_14',['buffer_copy_buffer',['../classtz_1_1gl_1_1vk2_1_1_command_buffer_recording.html#a42ed45f3524b6bfe1c98de341b8b88de',1,'tz::gl::vk2::CommandBufferRecording']]], + ['buffer_5fcopy_5fimage_15',['buffer_copy_image',['../classtz_1_1gl_1_1vk2_1_1_command_buffer_recording.html#a245b299b9c5cf4248e7ae19c63f63a8d',1,'tz::gl::vk2::CommandBufferRecording']]], + ['buffer_5fresize_16',['buffer_resize',['../classtz_1_1gl_1_1_renderer_edit_builder.html#a1bac636b2eaad5c37e49d7dcf290dc04',1,'tz::gl::RendererEditBuilder']]], + ['build_17',['build',['../classtz_1_1gl_1_1_renderer_edit_builder.html#a693855ee726f0d71eab5c0144f4016a8',1,'tz::gl::RendererEditBuilder::build()'],['../classtz_1_1gl_1_1vk2_1_1_descriptor_layout_builder.html#a255b1e89de7ebac50241ccef4f995aba',1,'tz::gl::vk2::DescriptorLayoutBuilder::build()'],['../classtz_1_1gl_1_1vk2_1_1_subpass_builder.html#a2f4293bd1783d6dd12a94126622d5f36',1,'tz::gl::vk2::SubpassBuilder::build()'],['../classtz_1_1gl_1_1vk2_1_1_render_pass_builder.html#ac2c1deaa48c76a66920eb7bd4bce8034',1,'tz::gl::vk2::RenderPassBuilder::build()']]] +]; diff --git a/search/functions_10.js b/search/functions_10.js new file mode 100644 index 0000000000..941e1b37e9 --- /dev/null +++ b/search/functions_10.js @@ -0,0 +1,37 @@ +var searchData= +[ + ['scale_0',['scale',['../group__tz__core.html#gac4e79331e3b84c5a36360169f7f6d4c8',1,'tz']]], + ['seconds_1',['seconds',['../classtz_1_1duration.html#adec2e357a7d098cbc4356752c3f188f5',1,'tz::duration']]], + ['set_5fbuffer_2',['set_buffer',['../classtz_1_1gl_1_1vk2_1_1_descriptor_set_1_1_edit_request.html#af6639d543f2c4a73fca182ca2209c5c5',1,'tz::gl::vk2::DescriptorSet::EditRequest']]], + ['set_5fdata_3',['set_data',['../classtz_1_1gl_1_1ogl2_1_1image.html#a7244f6f3bbb421d3f3a7f770ab70c886',1,'tz::gl::ogl2::image']]], + ['set_5fdevice_4',['set_device',['../classtz_1_1gl_1_1vk2_1_1_render_pass_builder.html#ab5db592cbee7e8e81892b8c46eaa1909',1,'tz::gl::vk2::RenderPassBuilder::set_device()'],['../classtz_1_1gl_1_1vk2_1_1_descriptor_layout_builder.html#a8718cf9f569caf8dac4d4a08741925d0',1,'tz::gl::vk2::DescriptorLayoutBuilder::set_device()']]], + ['set_5fimage_5',['set_image',['../classtz_1_1gl_1_1vk2_1_1_descriptor_set_1_1_edit_request.html#a668978b923a9ae87def22035f27e86e8',1,'tz::gl::vk2::DescriptorSet::EditRequest']]], + ['set_5foptions_6',['set_options',['../classtz_1_1gl_1_1renderer__info.html#acd63326412fa7a90e2abe5021f5202fb',1,'tz::gl::renderer_info']]], + ['set_5foutput_7',['set_output',['../classtz_1_1gl_1_1renderer__info.html#abbd793271fd70297cf47034425c09cc6',1,'tz::gl::renderer_info']]], + ['set_5fpipeline_5fcontext_8',['set_pipeline_context',['../classtz_1_1gl_1_1vk2_1_1_subpass_builder.html#aea69c768e6d657c9e4e25102c0031dec',1,'tz::gl::vk2::SubpassBuilder']]], + ['set_5frender_5ftarget_9',['set_render_target',['../classtz_1_1gl_1_1_output_manager.html#aab56ee1c79ecceba987b04b8e28b873b',1,'tz::gl::OutputManager']]], + ['shader_10',['shader',['../classtz_1_1gl_1_1renderer__info.html#aeb3875b54266b94702791aa71c4a6d85',1,'tz::gl::renderer_info::shader()'],['../classtz_1_1gl_1_1renderer__info.html#a42cf8fe8b97e01596794242ce9ecdaba',1,'tz::gl::renderer_info::shader() const'],['../classtz_1_1gl_1_1ogl2_1_1shader.html#a3bfa7cd0552e027f9cde2e1aee0287d7',1,'tz::gl::ogl2::shader::shader()']]], + ['shader_5fmodule_11',['shader_module',['../classtz_1_1gl_1_1ogl2_1_1shader__module.html#a65e736dec375d272b4887010998e0647',1,'tz::gl::ogl2::shader_module']]], + ['shadermanager_12',['shadermanager',['../classtz_1_1gl_1_1_shader_manager.html#ae2b9fa51036eab3ed06803a31cdd3278',1,'tz::gl::ShaderManager::ShaderManager()'],['../classtz_1_1gl_1_1_shader_manager.html#a02c2d7d722419d8f8de9d48bbab4ab6a',1,'tz::gl::ShaderManager::ShaderManager(const shader_info &sinfo)']]], + ['shadermodule_13',['ShaderModule',['../classtz_1_1gl_1_1vk2_1_1_shader_module.html#a28f43a6e19604fc3034d5a95d16f6f96',1,'tz::gl::vk2::ShaderModule']]], + ['sign_14',['sign',['../group__tzsl__math.html#ga456f66d300ef1a241332db1b3a4adc3f',1,'tz::math']]], + ['signal_15',['signal',['../classtz_1_1gl_1_1vk2_1_1_timeline_semaphore.html#a07294686a9c9007d9eea477648ddb307',1,'tz::gl::vk2::TimelineSemaphore']]], + ['simplex_16',['simplex',['../group__tzsl__noise.html#ga3281f996870e4b9f9a9173cd645d5be5',1,'tz::noise']]], + ['sin_17',['sin',['../group__tzsl__math.html#ga8c0f033ba72fe4acebee70271cfb2449',1,'tz::math']]], + ['size_18',['size',['../classtz_1_1_polymorphic_list.html#a4ff3d2bc56929abcbea5811bff6bdbd7',1,'tz::PolymorphicList::size()'],['../classtz_1_1transform__hierarchy.html#ac5d183738e59474c75fb18cb1d254464',1,'tz::transform_hierarchy::size()'],['../classtz_1_1gl_1_1ogl2_1_1buffer.html#a0d4d708c2123da8a7fe330d9d71c958f',1,'tz::gl::ogl2::buffer::size()'],['../classtz_1_1gl_1_1vk2_1_1_buffer.html#a64c97088f04d5773f96498281c9332f9',1,'tz::gl::vk2::Buffer::size()']]], + ['smooth_5fstep_19',['smooth_step',['../group__tzsl__math.html#gae657986f8605cc005b02cbfdf92cd39c',1,'tz::math']]], + ['span_20',['span',['../classtz_1_1grid__view.html#a3100812fc7c72fa1adc98472dfc7cf1d',1,'tz::grid_view::span()'],['../classtz_1_1grid__view.html#aa3adae7901af54ce2b0e502fa5da8858',1,'tz::grid_view::span() const']]], + ['sqrt_21',['sqrt',['../group__tzsl__math.html#gaa2770f89b7066b4c45909e272d9e0b36',1,'tz::math']]], + ['state_22',['state',['../classtz_1_1gl_1_1renderer__info.html#a9668d8e987599dab6ba1817a42b32f9f',1,'tz::gl::renderer_info::state() const'],['../classtz_1_1gl_1_1renderer__info.html#ae1be194d9378f3f5d2076255533d4136',1,'tz::gl::renderer_info::state()']]], + ['static_5ffind_23',['static_find',['../group__tz__core__algorithms.html#gac864efe5932f846519806594da168044',1,'tz']]], + ['step_24',['step',['../group__tzsl__math.html#ga2d878b167178a4a3a07fc30818195451',1,'tz::math']]], + ['submit_25',['submit',['../classtz_1_1gl_1_1vk2_1_1hardware_1_1_queue.html#a8a26295a1157308783f3606ddd47922e',1,'tz::gl::vk2::hardware::Queue']]], + ['success_26',['success',['../structtz_1_1gl_1_1vk2_1_1_descriptor_pool_1_1_allocation_result.html#a424868084bfa9a4cb8f3eb6e81bcb1cc',1,'tz::gl::vk2::DescriptorPool::AllocationResult::success()'],['../structtz_1_1gl_1_1vk2_1_1_command_pool_1_1_allocation_result.html#acff115e3d6b614f7cd176afcf1f430a5',1,'tz::gl::vk2::CommandPool::AllocationResult::success()']]], + ['supported_27',['supported',['../classtz_1_1gl_1_1vk2_1_1_timeline_semaphore.html#af457dd163f8a75cf2f136cc49cf5d3bd',1,'tz::gl::vk2::TimelineSemaphore']]], + ['supports_5fimage_5fcolour_5fformat_28',['supports_image_colour_format',['../classtz_1_1gl_1_1vk2_1_1_physical_device.html#a988cc3ea73caa2a2e772db01d056afd0',1,'tz::gl::vk2::PhysicalDevice']]], + ['supports_5fimage_5fdepth_5fformat_29',['supports_image_depth_format',['../classtz_1_1gl_1_1vk2_1_1_physical_device.html#a768d8f636ffe994ccbe90dd05534d86c',1,'tz::gl::vk2::PhysicalDevice']]], + ['supports_5fimage_5fsampled_5fformat_30',['supports_image_sampled_format',['../classtz_1_1gl_1_1vk2_1_1_physical_device.html#a7ccfe2ddbd54d7fade6451e6bb037d4b',1,'tz::gl::vk2::PhysicalDevice']]], + ['swapchain_31',['Swapchain',['../classtz_1_1gl_1_1vk2_1_1_swapchain.html#a21e69ef871b919a44c4b7d998170c298',1,'tz::gl::vk2::Swapchain']]], + ['swizzle_32',['swizzle',['../classtz_1_1vector.html#a8eb40003afd7a439c49c08810da3d119',1,'tz::vector']]], + ['system_5ftime_33',['system_time',['../group__tz__core.html#ga57c5c4c9d059495d76bb70ac7632755e',1,'tz']]] +]; diff --git a/search/functions_11.js b/search/functions_11.js new file mode 100644 index 0000000000..01e35d9fd2 --- /dev/null +++ b/search/functions_11.js @@ -0,0 +1,15 @@ +var searchData= +[ + ['tan_0',['tan',['../group__tzsl__math.html#ga58a5baa37cf0de905b3317b5db676f41',1,'tz::math']]], + ['terminate_1',['terminate',['../group__tz__core.html#ga0a5d1e375e7e82fcd12a8b74b8012bae',1,'tz::terminate()'],['../group__tz__gl__ogl2.html#ga3bfa0731aaf82a7e55316d369e9a33bd',1,'tz::gl::ogl2::terminate()'],['../group__tz__gl__vk.html#gaafdb9b852a823c44fc8cb962b494040f',1,'tz::gl::vk2::terminate()']]], + ['timelinesemaphore_2',['TimelineSemaphore',['../classtz_1_1gl_1_1vk2_1_1_timeline_semaphore.html#ae4480f9d0ce9716aadc581aa0769c2ea',1,'tz::gl::vk2::TimelineSemaphore']]], + ['to_5ffit_5flayout_3',['to_fit_layout',['../structtz_1_1gl_1_1vk2_1_1_descriptor_pool_info.html#ac78c3e3e5641dd67c83df522f8b2ed36',1,'tz::gl::vk2::DescriptorPoolInfo']]], + ['to_5fstring_4',['to_string',['../structtz_1_1version.html#acf190799527d83a0aa13f31533b9a61e',1,'tz::version::to_string()'],['../structtz_1_1engine__info.html#ae525f220090f75d39410072151bbb47f',1,'tz::engine_info::to_string()'],['../structtz_1_1game__info.html#a2f9afa9909fef88c043bd648c26b8cb5',1,'tz::game_info::to_string()']]], + ['to_5fwrite_5flist_5',['to_write_list',['../classtz_1_1gl_1_1vk2_1_1_descriptor_set_1_1_edit_request.html#a9c1d0d78df69b3ea2317e07bddb925b9',1,'tz::gl::vk2::DescriptorSet::EditRequest']]], + ['total_5fcolour_5fattachment_5fcount_6',['total_colour_attachment_count',['../structtz_1_1gl_1_1vk2_1_1_render_pass_info.html#a6b297fd26ffa2f186988fc661cdc40e4',1,'tz::gl::vk2::RenderPassInfo']]], + ['total_5finput_5fattachment_5fcount_7',['total_input_attachment_count',['../structtz_1_1gl_1_1vk2_1_1_render_pass_info.html#a05532d112562a54c89eb7ad4ce722b01',1,'tz::gl::vk2::RenderPassInfo']]], + ['transform_5fhierarchy_8',['transform_hierarchy',['../classtz_1_1transform__hierarchy.html#a5b8574b1ca6fc383eee2129b6b929f96',1,'tz::transform_hierarchy']]], + ['translate_9',['translate',['../group__tz__core.html#gacea5d629885bd9192ee6e9325a236707',1,'tz']]], + ['transpose_10',['transpose',['../classtz_1_1matrix.html#a438a39d4cab41797bcab3df105e66d3a',1,'tz::matrix::transpose()'],['../group__tzsl__matrix.html#ga96a675595f89d8f83464db22e7d54b4d',1,'tz::matrix::transpose()']]], + ['trunc_11',['trunc',['../group__tzsl__math.html#ga2bff4ac0c236ad62c302464b9eb35c74',1,'tz::math']]] +]; diff --git a/search/functions_12.js b/search/functions_12.js new file mode 100644 index 0000000000..fbce6c3bc4 --- /dev/null +++ b/search/functions_12.js @@ -0,0 +1,7 @@ +var searchData= +[ + ['unmap_0',['unmap',['../classtz_1_1gl_1_1ogl2_1_1buffer.html#a481748197cd593bb075e007b84bfba79',1,'tz::gl::ogl2::buffer::unmap()'],['../classtz_1_1gl_1_1vk2_1_1_buffer.html#aaa1d3c3487d41c2ee041f6f2d054edf2',1,'tz::gl::vk2::Buffer::unmap()']]], + ['unsignal_1',['unsignal',['../classtz_1_1gl_1_1vk2_1_1_fence.html#a080cf8b09fac04e088098854772d9951',1,'tz::gl::vk2::Fence']]], + ['update_5fsets_2',['update_sets',['../classtz_1_1gl_1_1vk2_1_1_descriptor_pool.html#a4b369fb5533bf5c1faccde6b2e4065fb',1,'tz::gl::vk2::DescriptorPool::update_sets(UpdateRequest update_request)'],['../classtz_1_1gl_1_1vk2_1_1_descriptor_pool.html#ab99505bc197bd835c0a7026f5591138a',1,'tz::gl::vk2::DescriptorPool::update_sets(const DescriptorSet::WriteList &writes)']]], + ['use_3',['use',['../classtz_1_1gl_1_1ogl2_1_1shader.html#aa2fe4a134158ffbd322f513cf3ad5521',1,'tz::gl::ogl2::shader::use()'],['../classtz_1_1gl_1_1_shader_manager.html#a5e03637f5d12b0734ec1688442e757a0',1,'tz::gl::ShaderManager::use()']]] +]; diff --git a/search/functions_13.js b/search/functions_13.js new file mode 100644 index 0000000000..5312336b6d --- /dev/null +++ b/search/functions_13.js @@ -0,0 +1,9 @@ +var searchData= +[ + ['valid_0',['valid',['../structtz_1_1gl_1_1vk2_1_1_framebuffer_info.html#a13d747ebb95030a11b81a5b8ada449a0',1,'tz::gl::vk2::FramebufferInfo::valid()'],['../structtz_1_1gl_1_1vk2_1_1_graphics_pipeline_info.html#ac8f560b25cb670c3cb4a41121c542d5c',1,'tz::gl::vk2::GraphicsPipelineInfo::valid()'],['../classtz_1_1lua_1_1state.html#afbfa250b94bfd4abfd9bc9e14dbaa4d0',1,'tz::lua::state::valid()']]], + ['valid_5fdevice_1',['valid_device',['../structtz_1_1gl_1_1vk2_1_1_graphics_pipeline_info.html#a8537647952eb07d190af2c496290435c',1,'tz::gl::vk2::GraphicsPipelineInfo']]], + ['values_5fmake_5fsense_2',['values_make_sense',['../structtz_1_1gl_1_1vk2_1_1_render_pass_info.html#a6e0f6d3e4801750361964ec51d5f3072',1,'tz::gl::vk2::RenderPassInfo']]], + ['vector_3',['vector',['../classtz_1_1vector.html#a5efa543162acadcb85301793704f8906',1,'tz::vector::vector(Ts &&... ts)'],['../classtz_1_1vector.html#a49c817041f4f5dcd9fc1d91d20e2f3e9',1,'tz::vector::vector(std::array< T, S > data)'],['../classtz_1_1vector.html#a1da36184e32badfd9843e01def06bb36',1,'tz::vector::vector()=default']]], + ['vertex_5farray_4',['vertex_array',['../classtz_1_1gl_1_1ogl2_1_1vertex__array.html#a5f965b5a60d0a2cc1c0623d63a81fd26',1,'tz::gl::ogl2::vertex_array']]], + ['view_5',['view',['../group__tz__core.html#ga26c5e69afcfbedae7d168b332682483f',1,'tz']]] +]; diff --git a/search/functions_14.js b/search/functions_14.js new file mode 100644 index 0000000000..0ed02a8595 --- /dev/null +++ b/search/functions_14.js @@ -0,0 +1,16 @@ +var searchData= +[ + ['wait_5ffor_0',['wait_for',['../classtz_1_1gl_1_1vk2_1_1_timeline_semaphore.html#a2e0c459f3ba40c42be24886a3ee51102',1,'tz::gl::vk2::TimelineSemaphore']]], + ['wait_5funtil_5fidle_1',['wait_until_idle',['../classtz_1_1gl_1_1vk2_1_1_logical_device.html#a467dc1131247e4bb9e97e5274e860bc7',1,'tz::gl::vk2::LogicalDevice']]], + ['wait_5funtil_5fsignalled_2',['wait_until_signalled',['../classtz_1_1gl_1_1vk2_1_1_fence.html#a89b2a5c13856021cc045c2223d4d9539',1,'tz::gl::vk2::Fence']]], + ['window_3',['window',['../group__tz__core.html#gab3acf7c6e5c5d2d15ac34272799744f0',1,'tz']]], + ['window_5fcount_4',['window_count',['../group__tz__wsi__window.html#ga3d49f486afecfee1fe0739a193267915',1,'tz::wsi']]], + ['windowsurface_5',['WindowSurface',['../classtz_1_1gl_1_1vk2_1_1_window_surface.html#adc8f618fa1ee901c61e87f02ae7f3445',1,'tz::gl::vk2::WindowSurface']]], + ['with_5fattachment_6',['with_attachment',['../classtz_1_1gl_1_1vk2_1_1_render_pass_builder.html#aacae02f036f07e6f321ac35420819ffe',1,'tz::gl::vk2::RenderPassBuilder']]], + ['with_5fbinding_7',['with_binding',['../classtz_1_1gl_1_1vk2_1_1_descriptor_layout_builder.html#a35bee4b07c0c343b53520a5f9c693691',1,'tz::gl::vk2::DescriptorLayoutBuilder']]], + ['with_5fcolour_5fattachment_8',['with_colour_attachment',['../classtz_1_1gl_1_1vk2_1_1_subpass_builder.html#ae944eb1b322cc08eb4a9f7105cdab265',1,'tz::gl::vk2::SubpassBuilder']]], + ['with_5fdepth_5fstencil_5fattachment_9',['with_depth_stencil_attachment',['../classtz_1_1gl_1_1vk2_1_1_subpass_builder.html#af3b5e86fed158d329db4b084556eab85',1,'tz::gl::vk2::SubpassBuilder']]], + ['with_5finput_5fattachment_10',['with_input_attachment',['../classtz_1_1gl_1_1vk2_1_1_subpass_builder.html#a732e8dc67451e314bae38faf24cd1fa6',1,'tz::gl::vk2::SubpassBuilder']]], + ['with_5fmore_11',['with_more',['../classtz_1_1vector.html#a2ca6acb21aba2f36f341688ffa7e7101',1,'tz::vector::with_more(T &&end) const'],['../classtz_1_1vector.html#ac484780fbef820de4004781a119a56d1',1,'tz::vector::with_more(const vector< T, S2 > &end) const']]], + ['with_5fsubpass_12',['with_subpass',['../classtz_1_1gl_1_1vk2_1_1_render_pass_builder.html#a2d7d398247571d6314e727923d8f7160',1,'tz::gl::vk2::RenderPassBuilder']]] +]; diff --git a/search/functions_15.js b/search/functions_15.js new file mode 100644 index 0000000000..d120e86a39 --- /dev/null +++ b/search/functions_15.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['xor_0',['xor',['../group__tzsl__atomic.html#ga7be1a0f30393cbdf216e5515d6fde1b0',1,'tz::atomic']]] +]; diff --git a/search/functions_16.js b/search/functions_16.js new file mode 100644 index 0000000000..306644b951 --- /dev/null +++ b/search/functions_16.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['zero_0',['zero',['../classtz_1_1vector.html#a0b3b989ec3fc4a0af094f76e1d2204b2',1,'tz::vector']]] +]; diff --git a/search/functions_2.js b/search/functions_2.js new file mode 100644 index 0000000000..6d90e421fb --- /dev/null +++ b/search/functions_2.js @@ -0,0 +1,23 @@ +var searchData= +[ + ['callback_0',['callback',['../classtz_1_1callback.html#a85749b9e53db2369605d02d48bd9d967',1,'tz::callback']]], + ['cas_1',['cas',['../group__tzsl__atomic.html#ga17a4dea83f60906651d0b557ad770bbc',1,'tz::atomic']]], + ['ceil_2',['ceil',['../group__tzsl__math.html#ga8028220d2f0dd80f9111d54f1079bcc7',1,'tz::math']]], + ['claims_5fkeyboard_3',['claims_keyboard',['../group__tz__dbgui.html#gae9289fba934f3184929dea07db97e28f',1,'tz::dbgui']]], + ['claims_5fmouse_4',['claims_mouse',['../group__tz__dbgui.html#ga36e08fae37ee7e26149c1ba247f54ce9',1,'tz::dbgui']]], + ['clamp_5',['clamp',['../group__tzsl__math.html#ga42282f727b67dab6da08e0366ba7787e',1,'tz::math']]], + ['clear_6',['clear',['../classtz_1_1basic__list.html#a5a9fe1832b83930a03bdc598b6f48f42',1,'tz::basic_list::clear()'],['../classtz_1_1gl_1_1vk2_1_1_descriptor_pool.html#acd851070777e0879bfd7054ce510ed8d',1,'tz::gl::vk2::DescriptorPool::clear()'],['../classtz_1_1gl_1_1vk2_1_1_descriptor_layout_builder.html#a9859251d15b9bbe21a08b13855b075fa',1,'tz::gl::vk2::DescriptorLayoutBuilder::clear()'],['../classtz_1_1gl_1_1ogl2_1_1framebuffer.html#a1e682cc908ff6243ac981746c88de982',1,'tz::gl::ogl2::framebuffer::clear()'],['../classtz_1_1transform__hierarchy.html#ab0ae10f7b4c12537f4f2de6eab91933d',1,'tz::transform_hierarchy::clear()'],['../classtz_1_1_polymorphic_list.html#a4b4801429d2e32a6d7a7c6c25ac26adc',1,'tz::PolymorphicList::clear()']]], + ['clone_5fresized_7',['clone_resized',['../group__tz__gl__ogl2__buffers.html#ga66311328d0ac73108c1dac80a670255b',1,'tz::gl::ogl2::buffer_helper']]], + ['colour_5fattachment_5fcount_8',['colour_attachment_count',['../classtz_1_1gl_1_1ogl2_1_1framebuffer.html#a899e633ce1e2005e942c7e417d8208ce',1,'tz::gl::ogl2::framebuffer']]], + ['command_5fcount_9',['command_count',['../classtz_1_1gl_1_1vk2_1_1_command_buffer.html#a67c7bfe9c4368600d35d8b8484b06972',1,'tz::gl::vk2::CommandBuffer']]], + ['common_5frenderer_5fdbgui_10',['common_renderer_dbgui',['../group__tz__gl2__renderer.html#ga9c3b9173cecb5e05ffa86811213c5ab0',1,'tz::gl']]], + ['compile_11',['compile',['../classtz_1_1gl_1_1ogl2_1_1shader__module.html#a0566183e70bb23740967df9e69c5afd4',1,'tz::gl::ogl2::shader_module']]], + ['compute_12',['compute',['../classtz_1_1gl_1_1_renderer_edit_builder.html#a34deef028a6a13e0c17055174e3ea9c1',1,'tz::gl::RendererEditBuilder']]], + ['contains_13',['contains',['../classtz_1_1gl_1_1vk2_1_1_descriptor_pool.html#ab3ba99062df8e90d09abccd6c0f6e6c6',1,'tz::gl::vk2::DescriptorPool::contains()'],['../classtz_1_1enum__field.html#abec7d6a4a2b4b81600760dd74f5b23c3',1,'tz::enum_field::contains(const enum_field< E > &field) const'],['../classtz_1_1enum__field.html#ae84e799eabd0c60f79eafdfa86b3d0d7',1,'tz::enum_field::contains(E type) const'],['../classtz_1_1basic__list.html#a296a4bc78b4a32394ee4e7c4f7d5140b',1,'tz::basic_list::contains()']]], + ['copy_14',['copy',['../group__tz__gl__ogl2__buffers.html#ga20a62c3c2f993f7680765d90634a7584',1,'tz::gl::ogl2::buffer_helper']]], + ['cos_15',['cos',['../group__tzsl__math.html#ga2001fa3e32e884b9923308b485da6702',1,'tz::math']]], + ['count_16',['count',['../classtz_1_1enum__field.html#a74cd18aeadeffdaa17bd22068e34dc59',1,'tz::enum_field']]], + ['create_5frenderer_17',['create_renderer',['../classtz_1_1gl_1_1device.html#a8ac3063b712ef664852318e14830e64d',1,'tz::gl::device']]], + ['create_5fwindow_18',['create_window',['../group__tz__wsi__window.html#gac6059674ffff19966225cea5a7367a38',1,'tz::wsi']]], + ['cross_19',['cross',['../group__tzsl__math.html#ga7fd37ee5cfa25fcc727390773273eb88',1,'tz::math']]] +]; diff --git a/search/functions_3.js b/search/functions_3.js new file mode 100644 index 0000000000..5d01b9e183 --- /dev/null +++ b/search/functions_3.js @@ -0,0 +1,27 @@ +var searchData= +[ + ['data_0',['data',['../classtz_1_1basic__list.html#af8197a468d2e4ca683280b99eb2c83b4',1,'tz::basic_list::data()'],['../classtz_1_1vector.html#a0efc07fae32cc2bfa2b2150f30bf7bc8',1,'tz::vector::data() const'],['../classtz_1_1vector.html#a58f744948751f1306d7e95ae61273b74',1,'tz::vector::data()'],['../classtz_1_1gl_1_1iresource.html#a4efedec0ff8764ec37a647a6b34cc27b',1,'tz::gl::iresource::data() const =0'],['../classtz_1_1gl_1_1iresource.html#a2034c319803f53dc374f4dc57f7e89e7',1,'tz::gl::iresource::data()=0'],['../classtz_1_1gl_1_1resource.html#a9578c37147e86fe368e4b4191d8dd8fc',1,'tz::gl::resource::data() const final'],['../classtz_1_1gl_1_1resource.html#a21ab68fe797184ae314b626f72a98062',1,'tz::gl::resource::data() final'],['../classtz_1_1basic__list.html#a32759f2f577643e9e013c4f16dd4f78f',1,'tz::basic_list::data()']]], + ['data_5fas_1',['data_as',['../classtz_1_1gl_1_1iresource.html#a1031b5190ca48fc22b1ac0dbe4b29dcd',1,'tz::gl::iresource::data_as() const'],['../classtz_1_1gl_1_1iresource.html#a9ca9a48d880b6cb785f24639a206ca6c',1,'tz::gl::iresource::data_as()']]], + ['days_2',['days',['../classtz_1_1duration.html#a9ebbab08c04bf01f2a14d6f65dc795f0',1,'tz::duration']]], + ['dbgui_3',['dbgui',['../classtz_1_1gl_1_1iresource.html#a3a908f4cbc961b740062f5d001cfe1ee',1,'tz::gl::iresource::dbgui()'],['../classtz_1_1gl_1_1resource.html#aab282aa2e01daa9fec11e78a4895033c',1,'tz::gl::resource::dbgui()'],['../classtz_1_1gl_1_1buffer__resource.html#a1a9a921e465982e11da32771c35d5199',1,'tz::gl::buffer_resource::dbgui()'],['../classtz_1_1gl_1_1image__resource.html#a2c23cc9b2996385456e84a3b89b5301a',1,'tz::gl::image_resource::dbgui()']]], + ['debug_5fget_5fname_4',['debug_get_name',['../classtz_1_1gl_1_1renderer__info.html#aad262d25b64ee45c5cd79faf8c6d5af0',1,'tz::gl::renderer_info']]], + ['debug_5fname_5',['debug_name',['../classtz_1_1gl_1_1renderer__info.html#a92f4e4d9f25acb3151987066df17db48',1,'tz::gl::renderer_info']]], + ['decompose_5fquaternion_6',['decompose_quaternion',['../group__tzsl__matrix.html#ga382271ea9bd62c983a9cc777d6c0baad',1,'tz::matrix']]], + ['delay_7',['delay',['../classtz_1_1delay.html#a8b18e64689f16949afe24964e132fe58',1,'tz::delay']]], + ['descriptor_5fcount_8',['descriptor_count',['../classtz_1_1gl_1_1vk2_1_1_descriptor_layout.html#accc746a50caa61641bb14fc4f8fadc6a',1,'tz::gl::vk2::DescriptorLayout']]], + ['descriptor_5fcount_5fof_9',['descriptor_count_of',['../classtz_1_1gl_1_1vk2_1_1_descriptor_layout.html#a4dcee1b2805e6163351ea0aefbcc3305',1,'tz::gl::vk2::DescriptorLayout']]], + ['descriptorlayout_10',['DescriptorLayout',['../classtz_1_1gl_1_1vk2_1_1_descriptor_layout.html#a9ef5579debbf8a3d6d758c714edaf3b8',1,'tz::gl::vk2::DescriptorLayout']]], + ['descriptorlayoutbuilder_11',['descriptorlayoutbuilder',['../classtz_1_1gl_1_1vk2_1_1_descriptor_layout_builder.html#ab2892131f4b7b43aed19eda352dfef81',1,'tz::gl::vk2::DescriptorLayoutBuilder::DescriptorLayoutBuilder(DescriptorLayoutInfo existing_info)'],['../classtz_1_1gl_1_1vk2_1_1_descriptor_layout_builder.html#a44093ba76ad98d8c6209143c8f4de242',1,'tz::gl::vk2::DescriptorLayoutBuilder::DescriptorLayoutBuilder()=default']]], + ['destroy_5frenderer_12',['destroy_renderer',['../classtz_1_1gl_1_1device.html#a6e5026b0eafd4a9bd7e8f5242b7c4899',1,'tz::gl::device']]], + ['destroy_5fwindow_13',['destroy_window',['../group__tz__wsi__window.html#ga54f16c6122b5d08eef234586de422eef',1,'tz::wsi']]], + ['determinant_14',['determinant',['../group__tzsl__matrix.html#ga8da6239534e090803b41e5c853042977',1,'tz::matrix']]], + ['device_5fsupports_5fflags_15',['device_supports_flags',['../structtz_1_1gl_1_1vk2_1_1_descriptor_layout_info.html#a2e5cab5844cce37fcc8a06c1436f33e6',1,'tz::gl::vk2::DescriptorLayoutInfo']]], + ['dispatch_16',['dispatch',['../classtz_1_1gl_1_1vk2_1_1_command_buffer_recording.html#a3c305e3576f093dad51bd911c6dbab60',1,'tz::gl::vk2::CommandBufferRecording']]], + ['distance_17',['distance',['../group__tzsl__math.html#ga81780532b6bb411b2b550c09b76b7f93',1,'tz::math']]], + ['done_18',['done',['../classtz_1_1delay.html#abecd402d7755f73c4a61a33b77af4963',1,'tz::delay']]], + ['dot_19',['dot',['../group__tzsl__math.html#gae3a061e3c170f530fbc99969abdeb333',1,'tz::math::dot()'],['../classtz_1_1vector.html#a074e671fe11952ee602c6b60d542fc75',1,'tz::vector::dot()']]], + ['draw_20',['draw',['../classtz_1_1gl_1_1vk2_1_1_command_buffer_recording.html#acd2074bf1faa8b35502ec823cfde1abf',1,'tz::gl::vk2::CommandBufferRecording::draw()'],['../classtz_1_1gl_1_1ogl2_1_1vertex__array.html#ad53896fed3856db5c3a2fce42fb120bf',1,'tz::gl::ogl2::vertex_array::draw()']]], + ['draw_5findexed_21',['draw_indexed',['../classtz_1_1gl_1_1vk2_1_1_command_buffer_recording.html#ad5539795d16fdb9fc6d507d38a45123c',1,'tz::gl::vk2::CommandBufferRecording::draw_indexed()'],['../classtz_1_1gl_1_1ogl2_1_1vertex__array.html#a0866c26d8a2d6e47b1e14d86cef0500f',1,'tz::gl::ogl2::vertex_array::draw_indexed()']]], + ['draw_5findexed_5findirect_22',['draw_indexed_indirect',['../classtz_1_1gl_1_1vk2_1_1_command_buffer_recording.html#a883d311ab6e1f1c1f29260129179d0e0',1,'tz::gl::vk2::CommandBufferRecording']]], + ['draw_5findirect_23',['draw_indirect',['../classtz_1_1gl_1_1vk2_1_1_command_buffer_recording.html#a3eebf5124e99fc760f29698edcda6577',1,'tz::gl::vk2::CommandBufferRecording']]] +]; diff --git a/search/functions_4.js b/search/functions_4.js new file mode 100644 index 0000000000..73462dd375 --- /dev/null +++ b/search/functions_4.js @@ -0,0 +1,18 @@ +var searchData= +[ + ['edit_0',['edit',['../classtz_1_1gl_1_1renderer__ogl.html#a191c8012bb11868f5934fd61fbacf168',1,'tz::gl::renderer_ogl']]], + ['elapsed_1',['elapsed',['../classtz_1_1delay.html#a58f202ee61907e36e13d89e2c8c4d950',1,'tz::delay']]], + ['emplace_2',['emplace',['../classtz_1_1basic__list.html#af3feb8b0f4a28360f8cb2b79550c9eb5',1,'tz::basic_list::emplace()'],['../classtz_1_1_polymorphic_list.html#abcd45264b9a32adcfde7d7469d526bac',1,'tz::PolymorphicList::emplace()']]], + ['empty_3',['empty',['../classtz_1_1basic__list.html#a7dd603cfac91d0de0a80fa7a3f92ad5e',1,'tz::basic_list::empty()'],['../classtz_1_1enum__field.html#abfb91b134d35e4f0454cd6eecf859b88',1,'tz::enum_field::empty()'],['../classtz_1_1transform__hierarchy.html#a98feb2361bfda5351a3396f26a09e614',1,'tz::transform_hierarchy::empty()']]], + ['end_4',['end',['../classtz_1_1basic__list.html#a2eabfdf0380450d59fff93772dbe9761',1,'tz::basic_list::end()'],['../classtz_1_1basic__list.html#a647d9ad1f6dcfb9e86d5a98da3e6d90e',1,'tz::basic_list::end() const'],['../classtz_1_1enum__field.html#a23110e1ac51df35ef76022ba30bd2a24',1,'tz::enum_field::end() const'],['../classtz_1_1enum__field.html#a92f4bc051ebc80adea4dab7424b8676d',1,'tz::enum_field::end()'],['../classtz_1_1_polymorphic_list.html#a005d33c6203712c5304224285b389c50',1,'tz::PolymorphicList::end()'],['../classtz_1_1_polymorphic_list.html#a01e936a09d95b4898311f84ddc356e97',1,'tz::PolymorphicList::end() const']]], + ['end_5fframe_5',['end_frame',['../group__tz__core.html#ga3444884fd2ee290340864428de1df82f',1,'tz']]], + ['enum_5ffield_6',['enum_field',['../classtz_1_1enum__field.html#a991dd804357b394f7036c3c86ffd2649',1,'tz::enum_field::enum_field()=default'],['../classtz_1_1enum__field.html#ab03fd94decf6143e89651bbe5eaa0c02',1,'tz::enum_field::enum_field(E type)'],['../classtz_1_1enum__field.html#a5454e8b8f31861b47b412554d4e2a9df',1,'tz::enum_field::enum_field(std::initializer_list< E > types)']]], + ['erase_7',['erase',['../classtz_1_1basic__list.html#af77955ee7383d5cae6bb09fae8a104e6',1,'tz::basic_list::erase(Iterator position)'],['../classtz_1_1basic__list.html#a68e81beb140765454649325ea15418b9',1,'tz::basic_list::erase(Iterator first, Iterator last)']]], + ['error_8',['error',['../group__tz__core.html#ga51d5f1707ccebf785a59cbb6a90b0fad',1,'tz']]], + ['exchange_9',['exchange',['../group__tzsl__atomic.html#gac66c88e078d10e049838618e5c5d80f6',1,'tz::atomic']]], + ['execute_10',['execute',['../classtz_1_1impl_1_1job__system__threadpool__lfq.html#a9fbeca926d2535f22497bf8e07e47afa',1,'tz::impl::job_system_threadpool_lfq::execute()'],['../classtz_1_1lua_1_1state.html#ae8e976c4fa717f9abe13757cfc63379d',1,'tz::lua::state::execute(const char *lua_src, bool assert_on_failure=true) const']]], + ['execute_5ffile_11',['execute_file',['../classtz_1_1lua_1_1state.html#a15bbc3a9526837cd15a4550ab562488f',1,'tz::lua::state']]], + ['exp_12',['exp',['../group__tzsl__math.html#ga0b3e83e179fee3b947ff6725d85ea9bc',1,'tz::math']]], + ['exp2_13',['exp2',['../group__tzsl__math.html#ga62b92e38309339005fea6213dfda3454',1,'tz::math']]], + ['export_5fnode_14',['export_node',['../classtz_1_1transform__hierarchy.html#a55b86e9dd702eefbacbc478895485263',1,'tz::transform_hierarchy']]] +]; diff --git a/search/functions_5.js b/search/functions_5.js new file mode 100644 index 0000000000..78bdb4b48b --- /dev/null +++ b/search/functions_5.js @@ -0,0 +1,16 @@ +var searchData= +[ + ['filled_0',['filled',['../classtz_1_1vector.html#a0f398914ccdf06e34a58a8b07f09374c',1,'tz::vector']]], + ['find_5fnode_1',['find_node',['../classtz_1_1transform__hierarchy.html#a8d4f93f5921acea712b42577cb0a4cba',1,'tz::transform_hierarchy']]], + ['find_5fnode_5fif_2',['find_node_if',['../classtz_1_1transform__hierarchy.html#a219b15462f4cb4e145d6fcdc3f376320',1,'tz::transform_hierarchy']]], + ['floor_3',['floor',['../group__tzsl__math.html#ga1c27f29cb88aa0f88b330125c402290f',1,'tz::math']]], + ['fract_4',['fract',['../group__tzsl__math.html#gae4a7499ca85d03fd9f68e58f378227d6',1,'tz::math']]], + ['framebuffer_5',['framebuffer',['../classtz_1_1gl_1_1ogl2_1_1framebuffer.html#af1250568a185e34b802fbe5cc5f86f8d',1,'tz::gl::ogl2::framebuffer']]], + ['from_5fbinary_5fstring_6',['from_binary_string',['../structtz_1_1version.html#a5a2056c19ee809ab7d8fffb346861544',1,'tz::version']]], + ['from_5fmany_7',['from_many',['../classtz_1_1gl_1_1buffer__resource.html#aa2d8aea7debdaf9f6dcdc92ac9c96cf0',1,'tz::gl::buffer_resource']]], + ['from_5fmemory_8',['from_memory',['../classtz_1_1gl_1_1image__resource.html#ac0f3c710c722dc14defca36b10d2397c',1,'tz::gl::image_resource::from_memory()'],['../classtz_1_1io_1_1gltf.html#a90deb07299daa35f3d977c57823c6aae',1,'tz::io::gltf::from_memory()']]], + ['from_5fone_9',['from_one',['../classtz_1_1gl_1_1buffer__resource.html#ab407ea843abea43d94853c2711b109bb',1,'tz::gl::buffer_resource']]], + ['from_5fstring_10',['from_string',['../structtz_1_1version.html#a922d87bd7d64534660e3209313992f8b',1,'tz::version']]], + ['from_5funinitialised_11',['from_uninitialised',['../classtz_1_1gl_1_1image__resource.html#abcfde01f8ab68048439810a68248f10c',1,'tz::gl::image_resource']]], + ['front_12',['front',['../classtz_1_1basic__list.html#ab6527e144764014dd2f77cb3ffbe8670',1,'tz::basic_list::front()'],['../classtz_1_1basic__list.html#aa0d28f5edea40afa101b1a3ccddcc57c',1,'tz::basic_list::front() const'],['../classtz_1_1enum__field.html#a12e8aef51551fef43b8b6aaf28d46de5',1,'tz::enum_field::front()']]] +]; diff --git a/search/functions_6.js b/search/functions_6.js new file mode 100644 index 0000000000..05ea42c7f2 --- /dev/null +++ b/search/functions_6.js @@ -0,0 +1,61 @@ +var searchData= +[ + ['game_5fmenu_0',['game_menu',['../group__tz__dbgui.html#ga518691e82438163cf313898a842f02df',1,'tz::dbgui']]], + ['get_1',['get',['../group__tz__gl__vk.html#ga6b2997a4d85a7a421f621c046553eb9e',1,'tz::gl::vk2']]], + ['get_5faccess_2',['get_access',['../classtz_1_1gl_1_1resource.html#ad764c68472eddf7fee03644eaa2beb70',1,'tz::gl::resource::get_access()'],['../classtz_1_1gl_1_1iresource.html#a054af6f7995a7faed0be74939673020f',1,'tz::gl::iresource::get_access()']]], + ['get_5fall_5fdevices_3',['get_all_devices',['../group__tz__gl__vk.html#gaa3cb0c8cac3957bc69faeed650da8e5b',1,'tz::gl::vk2']]], + ['get_5fattachment_5fviews_4',['get_attachment_views',['../classtz_1_1gl_1_1vk2_1_1_framebuffer.html#a9304c07d1bca779bc5b8863a0e41125a',1,'tz::gl::vk2::Framebuffer::get_attachment_views()'],['../classtz_1_1gl_1_1vk2_1_1_framebuffer.html#a2d5cb498b767d8c327318b3fc0994498',1,'tz::gl::vk2::Framebuffer::get_attachment_views() const']]], + ['get_5fbindings_5',['get_bindings',['../classtz_1_1gl_1_1vk2_1_1_descriptor_layout.html#a553861e3a7facb291f5de6a2c518aea1',1,'tz::gl::vk2::DescriptorLayout']]], + ['get_5fbindless_5fhandle_6',['get_bindless_handle',['../classtz_1_1gl_1_1ogl2_1_1image.html#a82ae5c9ca2e7230cd4a6eb68bed34de0',1,'tz::gl::ogl2::image']]], + ['get_5fchars_5ftyped_7',['get_chars_typed',['../group__tz__wsi__keyboard.html#ga68b8d4b1bb580c2d72d35901e31e9bb5',1,'tz::wsi']]], + ['get_5fcommand_5fbuffer_8',['get_command_buffer',['../classtz_1_1gl_1_1vk2_1_1_command_buffer_recording.html#a6678f3d4ee65c534f273547942dbc208',1,'tz::gl::vk2::CommandBufferRecording']]], + ['get_5fcomponent_9',['get_component',['../classtz_1_1gl_1_1renderer__ogl.html#a437b2e68e0af94193d6310191fb3e770',1,'tz::gl::renderer_ogl::get_component()'],['../classtz_1_1gl_1_1_resource_storage.html#af7948e8b4db9633cda6fd2e48ed4f1f6',1,'tz::gl::ResourceStorage::get_component()'],['../classtz_1_1gl_1_1renderer__ogl.html#a4536f9408510194599a41fe7d983cfad',1,'tz::gl::renderer_ogl::get_component()'],['../classtz_1_1gl_1_1_resource_storage.html#ae859e1b772545ac79cf1541c651823c8',1,'tz::gl::ResourceStorage::get_component()']]], + ['get_5fdevice_10',['get_device',['../classtz_1_1gl_1_1vk2_1_1_buffer.html#ad3210893be0901d09f53d94648362b9b',1,'tz::gl::vk2::Buffer::get_device()'],['../classtz_1_1gl_1_1vk2_1_1_command_buffer.html#a123b44fb90533da0c9285a7dd1f7fe52',1,'tz::gl::vk2::CommandBuffer::get_device()'],['../classtz_1_1gl_1_1vk2_1_1_descriptor_layout_builder.html#ae53402ebbe109aeee79e1a9f7272244f',1,'tz::gl::vk2::DescriptorLayoutBuilder::get_device()'],['../classtz_1_1gl_1_1vk2_1_1_descriptor_pool.html#ac2721cb1eeb043e531ceeeceadc318f9',1,'tz::gl::vk2::DescriptorPool::get_device()'],['../classtz_1_1gl_1_1vk2_1_1_framebuffer.html#a5ac49b6a1f5126e55e2d44e86733aea2',1,'tz::gl::vk2::Framebuffer::get_device()'],['../classtz_1_1gl_1_1vk2_1_1_image.html#a049cd08ea548cf18a48359df5439f790',1,'tz::gl::vk2::Image::get_device()'],['../classtz_1_1gl_1_1vk2_1_1_render_pass_builder.html#a0c8a6e7ff8cf14acd4121ed10008f32e',1,'tz::gl::vk2::RenderPassBuilder::get_device()'],['../classtz_1_1gl_1_1vk2_1_1_sampler.html#a2f50c7294da0e3af598c0e3eea7e002a',1,'tz::gl::vk2::Sampler::get_device()'],['../group__tz__gl2.html#gad7664ebf0e7dba60c61f1f711a60863b',1,'tz::gl::get_device()']]], + ['get_5fdimensions_11',['get_dimensions',['../classtz_1_1gl_1_1vk2_1_1_image.html#ab86308630123a604d436f4d25f87066e',1,'tz::gl::vk2::Image::get_dimensions()'],['../classtz_1_1gl_1_1vk2_1_1_swapchain.html#aa4bc2e3f56802d15f6de066d24ee3e6d',1,'tz::gl::vk2::Swapchain::get_dimensions()'],['../classtz_1_1gl_1_1vk2_1_1_framebuffer.html#ae9c90abe38622c91b95fdb8ce73670d7',1,'tz::gl::vk2::Framebuffer::get_dimensions()'],['../classtz_1_1gl_1_1ogl2_1_1image.html#a34bdb1917898f67e8c8f919febe9dbd1',1,'tz::gl::ogl2::image::get_dimensions()'],['../classtz_1_1gl_1_1ogl2_1_1framebuffer.html#a46f104a52a55fedc7f4ca7653ac54cb4',1,'tz::gl::ogl2::framebuffer::get_dimensions()'],['../classtz_1_1grid__view.html#aff54dec99ee4b951d188216597bf6ccc',1,'tz::grid_view::get_dimensions()']]], + ['get_5fextensions_12',['get_extensions',['../classtz_1_1gl_1_1vk2_1_1_logical_device.html#aa8e581e0199c5ed305291e569c3196be',1,'tz::gl::vk2::LogicalDevice']]], + ['get_5ffeatures_13',['get_features',['../classtz_1_1gl_1_1vk2_1_1_logical_device.html#aa8d935b7f0b3783f17c3093cce7b86e7',1,'tz::gl::vk2::LogicalDevice']]], + ['get_5fflags_14',['get_flags',['../classtz_1_1gl_1_1iresource.html#a3b1b6a30f2554e43d806fb5d5210d9be',1,'tz::gl::iresource::get_flags()'],['../classtz_1_1gl_1_1resource.html#a55bd3e603dbf280dcdca33f614e4bd6d',1,'tz::gl::resource::get_flags()']]], + ['get_5fformat_15',['get_format',['../classtz_1_1gl_1_1ogl2_1_1image.html#a26ac283997ded3fa47999bfab0fcc66b',1,'tz::gl::ogl2::image::get_format()'],['../classtz_1_1gl_1_1vk2_1_1_image.html#ae297678ee7676e19c89767fc8de77c1f',1,'tz::gl::vk2::Image::get_format()']]], + ['get_5fglobal_5ftransform_16',['get_global_transform',['../classtz_1_1transform__hierarchy.html#a10789865b93b68da39ee793d470b88e7',1,'tz::transform_hierarchy']]], + ['get_5fhardware_17',['get_hardware',['../classtz_1_1gl_1_1vk2_1_1_logical_device.html#acda5876065dd357359b3528553dac464',1,'tz::gl::vk2::LogicalDevice']]], + ['get_5fimage_5fformat_18',['get_image_format',['../classtz_1_1gl_1_1vk2_1_1_swapchain.html#a01d41578f33880b720b3b7217db994ea',1,'tz::gl::vk2::Swapchain']]], + ['get_5fimage_5fviews_19',['get_image_views',['../classtz_1_1gl_1_1vk2_1_1_swapchain.html#a9a069aadd6476ab2b89ab07b32ca929a',1,'tz::gl::vk2::Swapchain::get_image_views() const'],['../classtz_1_1gl_1_1vk2_1_1_swapchain.html#adbd9b4c388fd8100536a66ad2d1e0b3d',1,'tz::gl::vk2::Swapchain::get_image_views()']]], + ['get_5fimages_20',['get_images',['../classtz_1_1gl_1_1vk2_1_1_swapchain.html#a96c1b6e9908255c892041e61f4ce2f66',1,'tz::gl::vk2::Swapchain::get_images()'],['../classtz_1_1gl_1_1vk2_1_1_swapchain.html#afe252ffdbcd30be51991b2cab05c8833',1,'tz::gl::vk2::Swapchain::get_images() const']]], + ['get_5finfo_21',['get_info',['../classtz_1_1gl_1_1vk2_1_1_descriptor_layout_builder.html#a412428cf619428455121135e27094117',1,'tz::gl::vk2::DescriptorLayoutBuilder::get_info()'],['../classtz_1_1gl_1_1vk2_1_1_physical_device.html#a137b5674d71035b2e60524cb15aefbe5',1,'tz::gl::vk2::PhysicalDevice::get_info() const']]], + ['get_5finstance_22',['get_instance',['../classtz_1_1gl_1_1vk2_1_1_physical_device.html#aa07d19e3e31cfd8d5d40ed83d01b4dcd',1,'tz::gl::vk2::PhysicalDevice']]], + ['get_5fkey_5fname_23',['get_key_name',['../group__tz__wsi__keyboard.html#ga71b029972073b41a5e63b852262af5be',1,'tz::wsi']]], + ['get_5flayout_24',['get_layout',['../classtz_1_1gl_1_1vk2_1_1_image.html#a245936d112b069e1e36da99391af5476',1,'tz::gl::vk2::Image::get_layout()'],['../classtz_1_1gl_1_1vk2_1_1_descriptor_set.html#a8655f41149275ec1624eb38740b55086',1,'tz::gl::vk2::DescriptorSet::get_layout()']]], + ['get_5fmandatory_5fcolour_5fattachment_5fformats_25',['get_mandatory_colour_attachment_formats',['../namespacetz_1_1gl_1_1vk2_1_1format__traits.html#a9c8094e1421c45565fa9d5cf504b4b6a',1,'tz::gl::vk2::format_traits']]], + ['get_5fmandatory_5fdepth_5fattachment_5fformats_26',['get_mandatory_depth_attachment_formats',['../namespacetz_1_1gl_1_1vk2_1_1format__traits.html#a1cbe6840d7b592f0f30cf98b400f39b8',1,'tz::gl::vk2::format_traits']]], + ['get_5fmandatory_5fpresent_5fmodes_27',['get_mandatory_present_modes',['../namespacetz_1_1gl_1_1vk2_1_1present__traits.html#a8adc3d9ac1c32a9741e53297195174f0',1,'tz::gl::vk2::present_traits']]], + ['get_5fmandatory_5fsampled_5fimage_5fformats_28',['get_mandatory_sampled_image_formats',['../namespacetz_1_1gl_1_1vk2_1_1format__traits.html#abe8f1c1644982b2e797f9445c5f62636',1,'tz::gl::vk2::format_traits']]], + ['get_5fmonitors_29',['get_monitors',['../group__tz__wsi__monitor.html#gaf49b534da37be19431f74183eacfe56a',1,'tz::wsi']]], + ['get_5fnode_30',['get_node',['../classtz_1_1transform__hierarchy.html#a35e63b9956f057fd109840e5f436499a',1,'tz::transform_hierarchy']]], + ['get_5foptions_31',['get_options',['../classtz_1_1gl_1_1renderer__info.html#a490e84a63a8528f125f1517826881f0e',1,'tz::gl::renderer_info::get_options()'],['../classtz_1_1gl_1_1renderer.html#a8912cf4a9b5359b55b3a8728f7623b19',1,'tz::gl::renderer::get_options()'],['../classtz_1_1gl_1_1renderer__ogl.html#a6ac9d207a073e051fe979adf47a1c7cd',1,'tz::gl::renderer_ogl::get_options()']]], + ['get_5foutput_32',['get_output',['../classtz_1_1gl_1_1renderer.html#a99aec0f5f60ec5bd7ba09ab787892158',1,'tz::gl::renderer::get_output() const'],['../classtz_1_1gl_1_1renderer.html#aab07a9b72cfc7ab37421755d85c90113',1,'tz::gl::renderer::get_output()'],['../classtz_1_1gl_1_1renderer__info.html#a977778c921d2c7dc53177af58f722f91',1,'tz::gl::renderer_info::get_output()']]], + ['get_5fpass_33',['get_pass',['../classtz_1_1gl_1_1vk2_1_1_framebuffer.html#ab59610c1f9b168a6f133232a0e6d98b9',1,'tz::gl::vk2::Framebuffer']]], + ['get_5fpipeline_5fcontext_34',['get_pipeline_context',['../classtz_1_1gl_1_1vk2_1_1_subpass_builder.html#af18ad5c9a271c11f597ea08dcfd615d8',1,'tz::gl::vk2::SubpassBuilder']]], + ['get_5fpresent_5fmode_35',['get_present_mode',['../classtz_1_1gl_1_1vk2_1_1_swapchain.html#a4b1fdde7f90b64fb7f9f094fa08dac05',1,'tz::gl::vk2::Swapchain']]], + ['get_5frenderer_36',['get_renderer',['../classtz_1_1gl_1_1device.html#a69c08e8c47168e75301ea9a1e3154a69',1,'tz::gl::device::get_renderer(tz::gl::renderer_handle rh) const'],['../classtz_1_1gl_1_1device.html#aadf1c59383bf22d41ad88f866f59df28',1,'tz::gl::device::get_renderer(tz::gl::renderer_handle rh)']]], + ['get_5fresidency_37',['get_residency',['../classtz_1_1gl_1_1ogl2_1_1buffer.html#a9ef0c8930de36d6b11d1ec5fe820e15e',1,'tz::gl::ogl2::buffer::get_residency()'],['../classtz_1_1gl_1_1vk2_1_1_buffer.html#a410043be11f04c500704a8fb0956d5cc',1,'tz::gl::vk2::Buffer::get_residency()']]], + ['get_5fresource_38',['get_resource',['../classtz_1_1gl_1_1renderer__ogl.html#a75bf5e8fb1a40adbf0569c59720fc47f',1,'tz::gl::renderer_ogl::get_resource()'],['../classtz_1_1gl_1_1renderer__info.html#ad50e1153d25e16c91a5dcb6f4201ec51',1,'tz::gl::renderer_info::get_resource()'],['../classtz_1_1gl_1_1renderer.html#a5c3320f862a5e3fd2de7482698a6038b',1,'tz::gl::renderer::get_resource(tz::gl::resource_handle rh) const'],['../classtz_1_1gl_1_1renderer.html#ae3ecf1274073c37779559badd1872fd9',1,'tz::gl::renderer::get_resource(tz::gl::resource_handle rh)'],['../classtz_1_1gl_1_1renderer__ogl.html#a983661fb15999c0b43ff72f449d6bf48',1,'tz::gl::renderer_ogl::get_resource()']]], + ['get_5fresources_39',['get_resources',['../classtz_1_1gl_1_1renderer__info.html#aad33d729130cc8619cc736850ea91525',1,'tz::gl::renderer_info']]], + ['get_5froot_5fnode_5fids_40',['get_root_node_ids',['../classtz_1_1transform__hierarchy.html#a51f167da906d1903cf6265344d14c3b9',1,'tz::transform_hierarchy']]], + ['get_5fsampler_41',['get_sampler',['../classtz_1_1gl_1_1ogl2_1_1image.html#a96efa74dba6d1ba2af2a5125f16a05c3',1,'tz::gl::ogl2::image']]], + ['get_5fset_42',['get_set',['../classtz_1_1gl_1_1vk2_1_1_descriptor_set_1_1_edit_request.html#a281052e52ef1343f6769bce6b2159420',1,'tz::gl::vk2::DescriptorSet::EditRequest']]], + ['get_5fset_5fedits_43',['get_set_edits',['../classtz_1_1gl_1_1vk2_1_1_descriptor_pool_1_1_update_request.html#ae70b5908cb95506dd0af648ee6c34501',1,'tz::gl::vk2::DescriptorPool::UpdateRequest']]], + ['get_5fstate_44',['get_state',['../group__tz__lua__cpp.html#ga9a602c5f2589ea1c21846afbda7bbe29',1,'tz::lua::get_state()'],['../classtz_1_1gl_1_1renderer__ogl.html#aac4e76798fc197ebfa7790607da7d0af',1,'tz::gl::renderer_ogl::get_state()'],['../classtz_1_1gl_1_1renderer.html#a964d9415ecb24b8c3d8f99542acc6ffb',1,'tz::gl::renderer::get_state()']]], + ['get_5fsupported_5fextensions_45',['get_supported_extensions',['../classtz_1_1gl_1_1vk2_1_1_physical_device.html#a9bbd0557b43b2c2605e36c0e5a70a59c',1,'tz::gl::vk2::PhysicalDevice']]], + ['get_5fsupported_5ffeatures_46',['get_supported_features',['../classtz_1_1gl_1_1vk2_1_1_physical_device.html#af8c939fb4265bf1c015f987d9c4c0380',1,'tz::gl::vk2::PhysicalDevice']]], + ['get_5fsupported_5fsurface_5fformats_47',['get_supported_surface_formats',['../classtz_1_1gl_1_1vk2_1_1_physical_device.html#a82c0bb8a3ae825acf9fa4894fe8bd326',1,'tz::gl::vk2::PhysicalDevice']]], + ['get_5fsupported_5fsurface_5fpresent_5fmodes_48',['get_supported_surface_present_modes',['../classtz_1_1gl_1_1vk2_1_1_physical_device.html#a3136ce2d7b7d952609e2ea9404f26335',1,'tz::gl::vk2::PhysicalDevice']]], + ['get_5ftarget_49',['get_target',['../classtz_1_1gl_1_1ogl2_1_1buffer.html#a88865542c959df85656e7b449468c8c1',1,'tz::gl::ogl2::buffer']]], + ['get_5ftype_50',['get_type',['../classtz_1_1gl_1_1resource.html#a1ce1477776828a3bec4e957d2c908a18',1,'tz::gl::resource::get_type()'],['../classtz_1_1gl_1_1vk2_1_1_shader_module.html#a7e6c83e267b4bd1c7bc502211aee08d5',1,'tz::gl::vk2::ShaderModule::get_type()'],['../classtz_1_1gl_1_1iresource.html#a1511ed9713102a7b141271c75b1b4633',1,'tz::gl::iresource::get_type()']]], + ['get_5fusage_51',['get_usage',['../classtz_1_1gl_1_1vk2_1_1_buffer.html#ac84676ea5d9d5f459cb9c385a1032729',1,'tz::gl::vk2::Buffer']]], + ['get_5fvalue_52',['get_value',['../classtz_1_1gl_1_1vk2_1_1_timeline_semaphore.html#a31afde1d634e5b7e5e2ae3292e9ace1b',1,'tz::gl::vk2::TimelineSemaphore']]], + ['get_5fversion_53',['get_version',['../group__tz__core.html#gabed61701bea0790680354d9793946583',1,'tz']]], + ['get_5fwindow_54',['get_window',['../group__tz__wsi__window.html#ga9e50b4d537b0154de05ba6de39042b2b',1,'tz::wsi']]], + ['get_5fwindow_5fformat_55',['get_window_format',['../classtz_1_1gl_1_1device.html#af3bb467ad3c470d6f4352b4ff1a63607',1,'tz::gl::device']]], + ['gold_56',['gold',['../group__tzsl__noise.html#gaf2147086d053b3049440a65a705e3841',1,'tz::noise']]], + ['grid_5fview_57',['grid_view',['../classtz_1_1grid__view.html#ae011be6078a7b9b6a35ec4de5367670c',1,'tz::grid_view::grid_view(std::span< T > data, unsigned int length)'],['../classtz_1_1grid__view.html#a55938dc4566d1435fd2362e3bef7a4ae',1,'tz::grid_view::grid_view(std::span< T > data, tz::vec2ui dimensions)']]] +]; diff --git a/search/functions_7.js b/search/functions_7.js new file mode 100644 index 0000000000..fed49ab5ea --- /dev/null +++ b/search/functions_7.js @@ -0,0 +1,8 @@ +var searchData= +[ + ['has_5fdepth_5fattachment_0',['has_depth_attachment',['../classtz_1_1gl_1_1ogl2_1_1framebuffer.html#a9bffd7e6b5321dbeba5ff1055b5f47f2',1,'tz::gl::ogl2::framebuffer']]], + ['has_5fever_5frecorded_1',['has_ever_recorded',['../classtz_1_1gl_1_1vk2_1_1_command_buffer.html#af1184d8a0d83461bf90fc04dcd62d3bb',1,'tz::gl::vk2::CommandBuffer']]], + ['has_5fvalid_5fdevice_2',['has_valid_device',['../structtz_1_1gl_1_1vk2_1_1_descriptor_layout_info.html#aedc42a2278d1afcd8b542fa1ce2ade0c',1,'tz::gl::vk2::DescriptorLayoutInfo::has_valid_device()'],['../structtz_1_1gl_1_1vk2_1_1_descriptor_pool_info.html#a51692a2e9f8a598c7ee5d90b84ddd1ea',1,'tz::gl::vk2::DescriptorPoolInfo::has_valid_device()'],['../structtz_1_1gl_1_1vk2_1_1_render_pass_info.html#a7ccf96ec76452a363bc1d490754d5ba0',1,'tz::gl::vk2::RenderPassInfo::has_valid_device()']]], + ['has_5fwindow_3',['has_window',['../group__tz__wsi__window.html#ga17b7e39ac40d1f9b2c39c6b536049442',1,'tz::wsi']]], + ['hours_4',['hours',['../classtz_1_1duration.html#a9abef28fbe6122cce28c0948f606e549',1,'tz::duration']]] +]; diff --git a/search/functions_8.js b/search/functions_8.js new file mode 100644 index 0000000000..aa10de29e9 --- /dev/null +++ b/search/functions_8.js @@ -0,0 +1,24 @@ +var searchData= +[ + ['identity_0',['identity',['../classtz_1_1matrix.html#ac3c2819f55748e942c0b31473befba0f',1,'tz::matrix']]], + ['image_1',['image',['../classtz_1_1gl_1_1vk2_1_1_image.html#a9749cb054c3afbc18d56331793c7c247',1,'tz::gl::vk2::Image::Image()'],['../classtz_1_1gl_1_1ogl2_1_1image.html#ac20bf3b1847956d4b3b56160e3c0fa8d',1,'tz::gl::ogl2::image::image()']]], + ['image_5fcopy_5fimage_2',['image_copy_image',['../classtz_1_1gl_1_1vk2_1_1_command_buffer_recording.html#a25b7a8e42401dd2af896c3c9459e112e',1,'tz::gl::vk2::CommandBufferRecording']]], + ['image_5fresize_3',['image_resize',['../classtz_1_1gl_1_1_renderer_edit_builder.html#ae26ce64c12ecca5c355f85869e666ded',1,'tz::gl::RendererEditBuilder']]], + ['info_4',['info',['../group__tz__core.html#ga1134f9d409701427b780589ca9fd48e5',1,'tz::engine_info']]], + ['initialise_5',['initialise',['../group__tz__gl__ogl2.html#ga191a25d7af220adb7cbecb11c18aba9d',1,'tz::gl::ogl2::initialise()'],['../group__tz__gl__vk.html#ga008f58719ad31f39af59d4f017aaea9e',1,'tz::gl::vk2::initialise()'],['../group__tz__core.html#ga96f115f23731621af2e77904b1115fad',1,'tz::initialise()']]], + ['inverse_6',['inverse',['../group__tzsl__matrix.html#ga5acabab4299f3a83255b29951529b723',1,'tz::matrix::inverse()'],['../classtz_1_1matrix.html#a7e433fe3e699b5408379853e995047d7',1,'tz::matrix::inverse()']]], + ['inverse_5fsqrt_7',['inverse_sqrt',['../group__tzsl__math.html#gada52dfc780717ed2093173a1d7fc2756',1,'tz::math']]], + ['is_5fbindless_8',['is_bindless',['../classtz_1_1gl_1_1ogl2_1_1image.html#abbbbeecb6616cc854440f88583e11739',1,'tz::gl::ogl2::image']]], + ['is_5finfinity_9',['is_infinity',['../group__tzsl__math.html#ga9fad99521b5db2890038926308391384',1,'tz::math']]], + ['is_5finitialised_10',['is_initialised',['../group__tz__core.html#ga4197bca3cce79edb5652963d5bd7c1f0',1,'tz::is_initialised()'],['../group__tz__gl__ogl2.html#gadb3c9422dbeed2aa29746cc76e69595f',1,'tz::gl::ogl2::is_initialised()']]], + ['is_5fkey_5fdown_11',['is_key_down',['../group__tz__wsi__keyboard.html#ga5e31e075f6fd53e6c03dce80ea5f3b7e',1,'tz::wsi']]], + ['is_5fmouse_5fbutton_5fdown_12',['is_mouse_button_down',['../group__tz__wsi__mouse.html#ga922f648e394c766866b9f09677f52a97',1,'tz::wsi']]], + ['is_5fnan_13',['is_nan',['../group__tzsl__math.html#gafb0b592c454e7f033ea85f46819d149a',1,'tz::math']]], + ['is_5fnull_14',['is_null',['../classtz_1_1gl_1_1vk2_1_1_swapchain.html#a3b79708061815cb17a57911986fc267f',1,'tz::gl::vk2::Swapchain::is_null()'],['../classtz_1_1gl_1_1vk2_1_1_logical_device.html#aa47297f3958f89e97c01eef4e37167b0',1,'tz::gl::vk2::LogicalDevice::is_null()'],['../classtz_1_1gl_1_1ogl2_1_1vertex__array.html#a8dda442e0b38c14f4c091073b431c87d',1,'tz::gl::ogl2::vertex_array::is_null()'],['../classtz_1_1gl_1_1ogl2_1_1shader.html#a51d7596169244c8fb6414302e2f1b1ef',1,'tz::gl::ogl2::shader::is_null()'],['../classtz_1_1gl_1_1ogl2_1_1image.html#ac0f5d8d365b93ee6282751e94f8973e8',1,'tz::gl::ogl2::image::is_null()'],['../classtz_1_1gl_1_1ogl2_1_1framebuffer.html#adf2c7cbf8d99d4989162683c264a49f5',1,'tz::gl::ogl2::framebuffer::is_null()'],['../classtz_1_1gl_1_1ogl2_1_1buffer.html#a6b58eda5496da5d8bd70a05fe2bbad6e',1,'tz::gl::ogl2::buffer::is_null()']]], + ['is_5frecording_15',['is_recording',['../classtz_1_1gl_1_1vk2_1_1_command_buffer.html#a721538a81ab301429e1eea581ca9a012',1,'tz::gl::vk2::CommandBuffer']]], + ['is_5fsignalled_16',['is_signalled',['../classtz_1_1gl_1_1vk2_1_1_fence.html#ac7ef0b27a987a0522a39a6bbdb071a90',1,'tz::gl::vk2::Fence']]], + ['iterate_5fancestors_17',['iterate_ancestors',['../classtz_1_1transform__hierarchy.html#a9c13eb5f585294602923ead2ba4c7813',1,'tz::transform_hierarchy']]], + ['iterate_5fchildren_18',['iterate_children',['../classtz_1_1transform__hierarchy.html#ab5301295fe1fe2c0cd788e06619e03f6',1,'tz::transform_hierarchy']]], + ['iterate_5fdescendants_19',['iterate_descendants',['../classtz_1_1transform__hierarchy.html#a2ec9894e8c6cab1d1988a970efe16667',1,'tz::transform_hierarchy']]], + ['iterate_5fnodes_20',['iterate_nodes',['../classtz_1_1transform__hierarchy.html#a46599bc9cad16ed84124a2e06d88162e',1,'tz::transform_hierarchy']]] +]; diff --git a/search/functions_9.js b/search/functions_9.js new file mode 100644 index 0000000000..d24684bbb4 --- /dev/null +++ b/search/functions_9.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['job_5fsystem_0',['job_system',['../group__tz__core__job.html#ga32270a811cb4a5c1229ee22ce3d62cd7',1,'tz']]] +]; diff --git a/search/functions_a.js b/search/functions_a.js new file mode 100644 index 0000000000..8450be0739 --- /dev/null +++ b/search/functions_a.js @@ -0,0 +1,9 @@ +var searchData= +[ + ['length_0',['length',['../classtz_1_1basic__list.html#ad2ed5fb6f960712dc66a7dca73100b56',1,'tz::basic_list::length()'],['../classtz_1_1vector.html#ad21a340f4595f568eefe21d3038c8234',1,'tz::vector::length()']]], + ['lerp_1',['lerp',['../group__tzsl__math.html#gaa303ee7efac3c557a14203c3583656f6',1,'tz::math']]], + ['link_2',['link',['../classtz_1_1gl_1_1ogl2_1_1shader.html#ae19573903c49062b248032857ec14355',1,'tz::gl::ogl2::shader']]], + ['ln_3',['ln',['../group__tzsl__math.html#gaa3a474353fb7c18a671fb285c38f12fa',1,'tz::math']]], + ['log_4',['log',['../group__tzsl__math.html#gaa8fbf2fd8ac5c0c3e7a3ad51cfe5acca',1,'tz::math']]], + ['logicaldevice_5',['LogicalDevice',['../classtz_1_1gl_1_1vk2_1_1_logical_device.html#a2bee85f2a05cbf3653a887f471745cdb',1,'tz::gl::vk2::LogicalDevice']]] +]; diff --git a/search/functions_b.js b/search/functions_b.js new file mode 100644 index 0000000000..7e0ea2527f --- /dev/null +++ b/search/functions_b.js @@ -0,0 +1,17 @@ +var searchData= +[ + ['magnitude_0',['magnitude',['../group__tzsl__math.html#gac19fd8cac0bb9c24bc0c123b19527b20',1,'tz::math']]], + ['make_5fbindless_1',['make_bindless',['../classtz_1_1gl_1_1ogl2_1_1image.html#a1db429d2f9d112084f5ff4a3dbf29111',1,'tz::gl::ogl2::image']]], + ['make_5fedit_5frequest_2',['make_edit_request',['../classtz_1_1gl_1_1vk2_1_1_descriptor_set.html#aad4dfda61c3b097013b675089501ddcb',1,'tz::gl::vk2::DescriptorSet']]], + ['make_5fupdate_5frequest_3',['make_update_request',['../classtz_1_1gl_1_1vk2_1_1_descriptor_pool.html#aa4ca5a9b707fa4a15e150105e7ce7d44',1,'tz::gl::vk2::DescriptorPool']]], + ['map_4',['map',['../classtz_1_1gl_1_1ogl2_1_1buffer.html#a6a152a5570d321dfaafb8622e4ec0e29',1,'tz::gl::ogl2::buffer::map()'],['../classtz_1_1gl_1_1ogl2_1_1buffer.html#a7b2564baa2398de6d15d056d9fc1df20',1,'tz::gl::ogl2::buffer::map() const'],['../classtz_1_1gl_1_1vk2_1_1_buffer.html#a6f7131c56890d0966bb2e3ea74bc2eb1',1,'tz::gl::vk2::Buffer::map()']]], + ['map_5fas_5',['map_as',['../classtz_1_1gl_1_1ogl2_1_1buffer.html#a7a362343c3222975998cb78e2b3d619c',1,'tz::gl::ogl2::buffer::map_as()'],['../classtz_1_1gl_1_1ogl2_1_1buffer.html#ab7cb7eefd87892b60164efc34f878ee7',1,'tz::gl::ogl2::buffer::map_as() const'],['../classtz_1_1gl_1_1vk2_1_1_buffer.html#a238ec50ea5cc40a351e1ebe487ce86db',1,'tz::gl::vk2::Buffer::map_as()']]], + ['matrix_6',['matrix',['../classtz_1_1matrix.html#ab93aae54ae663d225ed18bed1dde22ef',1,'tz::matrix::matrix(std::array< std::array< T, R >, C > data)'],['../classtz_1_1matrix.html#a08597e418e20c292ea54f4b845a6a35a',1,'tz::matrix::matrix()=default']]], + ['max_7',['max',['../group__tzsl__atomic.html#ga7be084073b7420420cd5f5b5b9f81db6',1,'tz::atomic::max()'],['../group__tzsl__math.html#gaace435adbf3045892fcff015ae6446ae',1,'tz::math::max()']]], + ['micros_8',['micros',['../classtz_1_1duration.html#a77132d356c4f747078fd4574e778a1a8',1,'tz::duration']]], + ['millis_9',['millis',['../classtz_1_1duration.html#a7e77d183a8aeecf8e36a6a7b76947f8b',1,'tz::duration']]], + ['min_10',['min',['../group__tzsl__atomic.html#ga86e1a113d8ee0dd644704f091bcb1b13',1,'tz::atomic::min()'],['../group__tzsl__math.html#ga4bd7bdfcb0408f324b5e80a7c233a2ed',1,'tz::math::min()']]], + ['minutes_11',['minutes',['../classtz_1_1duration.html#a03ae7d13037cac61ff6c60852d1d20fc',1,'tz::duration']]], + ['mod_12',['mod',['../group__tzsl__math.html#ga9e6708981e516e127c8e7f9e078aa50a',1,'tz::math']]], + ['model_13',['model',['../group__tz__core.html#ga8eee7d1f58cb6eefcc220bc2026ba7e1',1,'tz']]] +]; diff --git a/search/functions_c.js b/search/functions_c.js new file mode 100644 index 0000000000..c4edf50ab8 --- /dev/null +++ b/search/functions_c.js @@ -0,0 +1,7 @@ +var searchData= +[ + ['nanos_0',['nanos',['../classtz_1_1duration.html#a2a250959a205d0533fa459eb7635141d',1,'tz::duration']]], + ['normalise_1',['normalise',['../classtz_1_1vector.html#a6c5d76ac6e6c423a3939a68a104a2476',1,'tz::vector::normalise()'],['../group__tzsl__math.html#ga7e9161c4554681c9e3455f2044d74378',1,'tz::math::normalise()']]], + ['normalised_2',['normalised',['../classtz_1_1vector.html#a7d3f52f2b2eee13ed28869b1d5775a40',1,'tz::vector']]], + ['null_3',['null',['../classtz_1_1gl_1_1ogl2_1_1buffer.html#a198db31e0a5081dca6a29fdedfcb2e7d',1,'tz::gl::ogl2::buffer::null()'],['../classtz_1_1gl_1_1ogl2_1_1framebuffer.html#a1043574f330dd12e7bcc56bf41291e91',1,'tz::gl::ogl2::framebuffer::null()'],['../classtz_1_1gl_1_1ogl2_1_1image.html#a47abf1514f9156f568d16abfa09ceb64',1,'tz::gl::ogl2::image::null()'],['../classtz_1_1gl_1_1ogl2_1_1shader.html#a189789a1dd30c80d8e0c1b8be0b0c7ee',1,'tz::gl::ogl2::shader::null()'],['../classtz_1_1gl_1_1ogl2_1_1vertex__array.html#a39da177cf71a9462d79fcc82230ee702',1,'tz::gl::ogl2::vertex_array::null()'],['../classtz_1_1gl_1_1vk2_1_1_logical_device.html#a29a6419aa0f11bc338774da7ec9db6ed',1,'tz::gl::vk2::LogicalDevice::null()'],['../classtz_1_1gl_1_1vk2_1_1_swapchain.html#a4a22a47532955e0b373b671bf4e310dc',1,'tz::gl::vk2::Swapchain::null()'],['../classtz_1_1gl_1_1buffer__resource.html#adc992b7120e61ca9e84236b84a96b760',1,'tz::gl::buffer_resource::null()'],['../classtz_1_1gl_1_1image__resource.html#ad7b2f90494cadde953d63ff92a1c7568',1,'tz::gl::image_resource::null()']]] +]; diff --git a/search/functions_d.js b/search/functions_d.js new file mode 100644 index 0000000000..2e5cf10e0f --- /dev/null +++ b/search/functions_d.js @@ -0,0 +1,22 @@ +var searchData= +[ + ['operator_20e_0',['operator E',['../classtz_1_1enum__field.html#a3327eb996a17b1b537c9dd0f4ca7b4ff',1,'tz::enum_field']]], + ['operator_20std_3a_3aspan_3c_20const_20t_20_3e_1',['span< const T >',['../classtz_1_1basic__list.html#a54c9f1226a0ac27cd0f51485e3991181',1,'tz::basic_list']]], + ['operator_20vector_3c_20x_2c_20s_20_3e_2',['operator vector< X, S >',['../classtz_1_1vector.html#a07e3d24a2740e69ab8d7b3d3fbf1cae9',1,'tz::vector']]], + ['operator_28_29_3',['operator()',['../classtz_1_1callback.html#ab12af6810976f9755c36e4f9d5cf6582',1,'tz::callback::operator()()'],['../classtz_1_1grid__view.html#ae211069d23cb6535d2225175ae1e182e',1,'tz::grid_view::operator()()'],['../classtz_1_1matrix.html#a69271cad2f464378de6b467b1e2eaac7',1,'tz::matrix::operator()(std::size_t row, std::size_t column) const'],['../classtz_1_1matrix.html#aae474887f82500aa4d0312332c74b8ab',1,'tz::matrix::operator()(std::size_t row, std::size_t column)']]], + ['operator_2a_4',['operator*',['../classtz_1_1vector.html#a1376ec726cece78821351e04454f64e3',1,'tz::vector::operator*(T scalar) const'],['../classtz_1_1vector.html#acb4c4db5fc7d1bd3b01a987c632aa97a',1,'tz::vector::operator*(const vector< T, S > &rhs) const'],['../classtz_1_1matrix.html#a75498bf523552ad8c2be4c3f28c0001c',1,'tz::matrix::operator*(T scalar) const'],['../classtz_1_1matrix.html#ac4219cdde5e6e91a5b4caa2467880585',1,'tz::matrix::operator*(const matrix< T, R, C > &matrix) const'],['../classtz_1_1matrix.html#a84396c16d731c3149b28b25b30d336f8',1,'tz::matrix::operator*(const tz::vector< T, C > &vec) const']]], + ['operator_2a_3d_5',['operator*=',['../classtz_1_1vector.html#ab2a0d283be965ec4bb87b05ee3deb889',1,'tz::vector::operator*=()'],['../classtz_1_1matrix.html#adfc1ddaf3f1eff63ec42a908a0e73ab1',1,'tz::matrix::operator*=(const matrix< T, R, C > &matrix)'],['../classtz_1_1matrix.html#af19be9672620b0e0b00e7df4a6d92779',1,'tz::matrix::operator*=(T scalar)'],['../classtz_1_1vector.html#afaf53deb9ba8e5d5a19abd6dc6637f15',1,'tz::vector::operator*=(const vector< T, S > &rhs)']]], + ['operator_2b_6',['operator+',['../classtz_1_1vector.html#a0f4bd140a27d380e788e8571d7c2d21a',1,'tz::vector::operator+()'],['../classtz_1_1matrix.html#aa2f1224643d3fdb123795e16ba45d2ab',1,'tz::matrix::operator+(T scalar) const'],['../classtz_1_1matrix.html#abfdc69934b31263ec0a6aed356d835a4',1,'tz::matrix::operator+(const matrix< T, R, C > &matrix) const']]], + ['operator_2b_3d_7',['operator+=',['../classtz_1_1vector.html#a11d6bfa11f0e2ff82a303c9a0db72453',1,'tz::vector::operator+=()'],['../classtz_1_1matrix.html#ab54145d6da369b8f4c9b2845ea84e403',1,'tz::matrix::operator+=(T scalar)'],['../classtz_1_1matrix.html#a504360f587d49018d17bf69a8ea45b9c',1,'tz::matrix::operator+=(const matrix< T, R, C > &matrix)']]], + ['operator_2d_8',['operator-',['../classtz_1_1matrix.html#a2a47a5460741f8d28808af856bd917f3',1,'tz::matrix::operator-()'],['../classtz_1_1vector.html#acfd142fe7cde54b417bd39252f7c9b1a',1,'tz::vector::operator-()'],['../classtz_1_1matrix.html#a711f29498d5f14bc5f99aace71ebbc8f',1,'tz::matrix::operator-()']]], + ['operator_2d_3d_9',['operator-=',['../classtz_1_1vector.html#af6a75286d40b914f9bbca886bdbbcaa6',1,'tz::vector::operator-=()'],['../classtz_1_1matrix.html#a8969d5837a080b67a520381b859ebbe6',1,'tz::matrix::operator-=(T scalar)'],['../classtz_1_1matrix.html#af1555e763f45c1f616f9d765257e84ae',1,'tz::matrix::operator-=(const matrix< T, R, C > &matrix)']]], + ['operator_2f_10',['operator/',['../classtz_1_1vector.html#a0258c2f1b18c602fa0d3e6f111d9a302',1,'tz::vector']]], + ['operator_2f_3d_11',['operator/=',['../classtz_1_1vector.html#a3bf18e76e10c2744051757ac69d28ea1',1,'tz::vector']]], + ['operator_3d_3d_12',['operator==',['../classtz_1_1enum__field.html#a773ab358cf2e747cdd3f8c0affe5e449',1,'tz::enum_field::operator==()'],['../classtz_1_1vector.html#afa7fface48176a78dbcb96e693da9618',1,'tz::vector::operator==()'],['../classtz_1_1matrix.html#a0c2dd3c87a7fcb66537e9dfb8b4f9f14',1,'tz::matrix::operator==(T scalar) const'],['../classtz_1_1matrix.html#af462cfddba89117392a4139793532ae7',1,'tz::matrix::operator==(const matrix< T, R, C > &matrix) const']]], + ['operator_5b_5d_13',['operator[]',['../classtz_1_1basic__list.html#ae1e36e4ebc67ca42f3549c8866a4f26d',1,'tz::basic_list::operator[]()'],['../classtz_1_1matrix.html#a6cc8213a09be28cac68d613ed5633675',1,'tz::matrix::operator[](std::size_t row_idx)'],['../classtz_1_1matrix.html#a473b176cd8b03837b3e904f4fa5c5d1d',1,'tz::matrix::operator[](std::size_t row_idx) const'],['../classtz_1_1vector.html#a2e0545e0185d4952cb6e0064ec292c7d',1,'tz::vector::operator[](std::size_t idx)'],['../classtz_1_1vector.html#a567ecbdc46da683e1e1fa1e140d57185',1,'tz::vector::operator[](std::size_t idx) const'],['../classtz_1_1_polymorphic_list.html#a1c35e09a69492845e176f0b4533fbc9d',1,'tz::PolymorphicList::operator[](std::size_t idx)'],['../classtz_1_1_polymorphic_list.html#ac9d9ca26cd70c5cdf6f45678fccdcfe1',1,'tz::PolymorphicList::operator[](std::size_t idx) const'],['../classtz_1_1basic__list.html#a18c4f56a2797760ab7ab7a4ef3b65736',1,'tz::basic_list::operator[]()']]], + ['operator_7c_14',['operator|',['../classtz_1_1enum__field.html#a2aecfc1eb743a60eb38d612bee21797c',1,'tz::enum_field']]], + ['operator_7c_3d_15',['operator|=',['../classtz_1_1enum__field.html#a02e1d9f524594bf1539dfa08aab827aa',1,'tz::enum_field::operator|=(E type)'],['../classtz_1_1enum__field.html#a484cf0320debda7ec85f95424d4603a8',1,'tz::enum_field::operator|=(const enum_field< E > &field)']]], + ['or_16',['or',['../group__tzsl__atomic.html#ga95e7e3ef54161ce397ae4496aa09be0c',1,'tz::atomic']]], + ['orthographic_17',['orthographic',['../group__tz__core.html#ga234891ef18cb4fd49558abc807e172e2',1,'tz']]], + ['outputmanager_18',['OutputManager',['../classtz_1_1gl_1_1_output_manager.html#adc7d95d64b3331d874c482a08b2471d5',1,'tz::gl::OutputManager']]] +]; diff --git a/search/functions_e.js b/search/functions_e.js new file mode 100644 index 0000000000..85460d91bf --- /dev/null +++ b/search/functions_e.js @@ -0,0 +1,11 @@ +var searchData= +[ + ['perspective_0',['perspective',['../group__tz__core.html#gab069a1e647b9e13ac337c87fa7b5a7cc',1,'tz']]], + ['physicaldevice_1',['PhysicalDevice',['../classtz_1_1gl_1_1vk2_1_1_physical_device.html#a1af757e82fdc5ebc851cf9489fdb5c25',1,'tz::gl::vk2::PhysicalDevice']]], + ['polymorphiclist_2',['PolymorphicList',['../classtz_1_1_polymorphic_list.html#abc16be83e1ee23b79e3f6025015cc036',1,'tz::PolymorphicList']]], + ['pop_5flast_5fkey_3',['pop_last_key',['../structtz_1_1wsi_1_1keyboard__state.html#aff2a1e6ef218cd37ac2628ae96b20492',1,'tz::wsi::keyboard_state']]], + ['pow_4',['pow',['../group__tzsl__math.html#ga9f34e69d9b60f40eff093810b901758f',1,'tz::math']]], + ['present_5',['present',['../classtz_1_1gl_1_1vk2_1_1hardware_1_1_queue.html#aa4f3d7a351fe699cd90ea6457c64caee',1,'tz::gl::vk2::hardware::Queue']]], + ['present_5fimage_6',['present_image',['../classtz_1_1gl_1_1device__command__pool.html#ab1098fdc258d74a3017f6eae5f2b2e18',1,'tz::gl::device_command_pool']]], + ['printf_7',['printf',['../group__tzsl__debug.html#ga401528dfbbe8d1188886cc571d1265b6',1,'tz::debug']]] +]; diff --git a/search/functions_f.js b/search/functions_f.js new file mode 100644 index 0000000000..a056790aef --- /dev/null +++ b/search/functions_f.js @@ -0,0 +1,25 @@ +var searchData= +[ + ['record_0',['record',['../classtz_1_1gl_1_1vk2_1_1_command_buffer.html#ac914c5d21dc2fc919375b27fc1fc78f0',1,'tz::gl::vk2::CommandBuffer']]], + ['ref_5fresource_1',['ref_resource',['../classtz_1_1gl_1_1renderer__info.html#ac5855e1f47ad7293713337e80cec6d7a',1,'tz::gl::renderer_info::ref_resource(icomponent *component)'],['../classtz_1_1gl_1_1renderer__info.html#a53dd4d75cc0746b72e7f56adae703b53',1,'tz::gl::renderer_info::ref_resource(renderer_handle ren, resource_handle res)']]], + ['reflect_2',['reflect',['../group__tzsl__math.html#gafed4b19ac0c92a8be0c4423075a651cc',1,'tz::math']]], + ['refract_3',['refract',['../group__tzsl__math.html#ga9e6144cd5b477de94de1bca43421724f',1,'tz::math']]], + ['remove_4',['remove',['../classtz_1_1enum__field.html#a22968209e6c89b1c32e223de7f0b9dd2',1,'tz::enum_field']]], + ['remove_5fcallback_5',['remove_callback',['../classtz_1_1callback.html#ac1d0a29c2a313071132aceded7347619',1,'tz::callback']]], + ['remove_5fnode_6',['remove_node',['../classtz_1_1transform__hierarchy.html#aa0ced17908b8fd14298132668f1d45c9',1,'tz::transform_hierarchy']]], + ['render_7',['render',['../classtz_1_1gl_1_1renderer.html#a5e5f72e20e10be732eb3a744e34058f3',1,'tz::gl::renderer::render()'],['../classtz_1_1gl_1_1renderer.html#a78496d2be55890b00a2b14767ac22bbc',1,'tz::gl::renderer::render(std::size_t tri_count)'],['../classtz_1_1gl_1_1renderer__ogl.html#a28e3f2beda21a1c597681760d3734ae4',1,'tz::gl::renderer_ogl::render()']]], + ['render_5fstate_8',['render_state',['../classtz_1_1gl_1_1_renderer_edit_builder.html#a93c4ffa0d35525ace09a54ce897f028d',1,'tz::gl::RendererEditBuilder']]], + ['renderer_5fcount_9',['renderer_count',['../classtz_1_1gl_1_1device.html#aa2adea5cb25d9712f1fe2b22dba3eec7',1,'tz::gl::device']]], + ['renderer_5fogl_10',['renderer_ogl',['../classtz_1_1gl_1_1renderer__ogl.html#ad8f5c88c01550694021d6d15e8b1222b',1,'tz::gl::renderer_ogl']]], + ['renderpass_11',['RenderPass',['../classtz_1_1gl_1_1vk2_1_1_render_pass.html#ad43e05dd5535ca6430dbba0cfee87b01',1,'tz::gl::vk2::RenderPass']]], + ['renderpassrun_12',['RenderPassRun',['../classtz_1_1gl_1_1vk2_1_1_command_buffer_recording_1_1_render_pass_run.html#a4ad32a0a245c359f4c59f043b3565ff5',1,'tz::gl::vk2::CommandBufferRecording::RenderPassRun']]], + ['report_13',['report',['../group__tz__core.html#gab9cfea70c99d9d2b1dd82bebee489377',1,'tz']]], + ['reset_14',['reset',['../classtz_1_1delay.html#ab4828a83cde0cd8739937a533dd91b60',1,'tz::delay']]], + ['resize_15',['resize',['../classtz_1_1basic__list.html#a0a3896bd6babdbde094588b846fa8f5e',1,'tz::basic_list']]], + ['resource_5fcount_16',['resource_count',['../classtz_1_1gl_1_1renderer__info.html#a65c015b1bd2c1dbf9bddf72f2d2a22ee',1,'tz::gl::renderer_info::resource_count()'],['../classtz_1_1gl_1_1renderer.html#a9761939bb33ca72dddf9c03d669eac8d',1,'tz::gl::renderer::resource_count()'],['../classtz_1_1gl_1_1renderer__ogl.html#a5b49989a7d61aa1ef55727206f1db63a',1,'tz::gl::renderer_ogl::resource_count()']]], + ['resource_5fcount_5fof_17',['resource_count_of',['../classtz_1_1gl_1_1_resource_storage.html#a7434d0c28fc3e936ea2da36b6e5cd020',1,'tz::gl::ResourceStorage']]], + ['resourcestorage_18',['ResourceStorage',['../classtz_1_1gl_1_1_resource_storage.html#ab57f9e4401a87f4fa877d0cdd69204ed',1,'tz::gl::ResourceStorage']]], + ['rotate_19',['rotate',['../group__tz__core.html#gac0457238d0094915eda4df542774a9e8',1,'tz']]], + ['round_20',['round',['../group__tzsl__math.html#ga39cc0a661ddc88ab512b639cb38d4928',1,'tz::math']]], + ['run_21',['run',['../group__tz__dbgui.html#gaf1315419d15da9d6793fc6182c3f0c78',1,'tz::dbgui']]] +]; diff --git a/search/groups_0.js b/search/groups_0.js new file mode 100644 index 0000000000..91fdf896e3 --- /dev/null +++ b/search/groups_0.js @@ -0,0 +1,14 @@ +var searchData= +[ + ['algorithms_0',['Algorithms',['../group__tz__core__algorithms.html',1,'']]], + ['allocators_1',['Allocators',['../group__tz__core__memory__allocator.html',1,'']]], + ['and_20features_2',['Extensions and Features',['../group__tz__gl__vk__extension.html',1,'']]], + ['and_20formats_3',['and formats',['../group__tz__gl__vk__image.html',1,'Images, Samplers and Formats'],['../group__tz__gl__ogl2__image.html',1,'Images, Samplers and Formats']]], + ['and_20modules_4',['Shader Programs and Modules',['../group__tz__gl__vk__graphics__pipeline__shader.html',1,'']]], + ['and_20outputs_5',['Inputs and Outputs',['../group__tz__gl2__io.html',1,'']]], + ['and_20pools_6',['Command Buffers and Pools',['../group__tz__gl__vk__commands.html',1,'']]], + ['and_20sets_7',['Descriptor Layouts and Sets',['../group__tz__gl__vk__descriptors.html',1,'']]], + ['and_20window_20surface_20interation_20wsi_8',['Presentation and Window Surface Interation (WSI)',['../group__tz__gl__vk__presentation.html',1,'']]], + ['api_20reference_9',['api reference',['../group__tz__cpp.html',1,'C++ API Reference'],['../group__tzsl.html',1,'TZSL API Reference']]], + ['atomic_20operations_10',['Atomic Operations',['../group__tzsl__atomic.html',1,'']]] +]; diff --git a/search/groups_1.js b/search/groups_1.js new file mode 100644 index 0000000000..7e87b9417e --- /dev/null +++ b/search/groups_1.js @@ -0,0 +1,6 @@ +var searchData= +[ + ['backend_0',['backend',['../group__tz__gl__ogl2.html',1,'OpenGL Backend'],['../group__tz__gl__vk.html',1,'Vulkan Backend']]], + ['buffers_1',['buffers',['../group__tz__gl__vk__buffer.html',1,'Buffers'],['../group__tz__gl__ogl2__buffers.html',1,'Buffers']]], + ['buffers_20and_20pools_2',['Command Buffers and Pools',['../group__tz__gl__vk__commands.html',1,'']]] +]; diff --git a/search/groups_10.js b/search/groups_10.js new file mode 100644 index 0000000000..0f3b263d8e --- /dev/null +++ b/search/groups_10.js @@ -0,0 +1,12 @@ +var searchData= +[ + ['samplers_20and_20formats_0',['samplers and formats',['../group__tz__gl__vk__image.html',1,'Images, Samplers and Formats'],['../group__tz__gl__ogl2__image.html',1,'Images, Samplers and Formats']]], + ['sets_1',['Descriptor Layouts and Sets',['../group__tz__gl__vk__descriptors.html',1,'']]], + ['shader_20programs_20and_20modules_2',['Shader Programs and Modules',['../group__tz__gl__vk__graphics__pipeline__shader.html',1,'']]], + ['shaders_3',['Shaders',['../group__tz__gl__ogl2__shader.html',1,'']]], + ['state_20values_4',['Fixed Pipeline State Values',['../group__tz__gl__vk__graphics__pipeline__fixed.html',1,'']]], + ['surface_20interation_20wsi_5',['Presentation and Window Surface Interation (WSI)',['../group__tz__gl__vk__presentation.html',1,'']]], + ['synchronisation_20primitives_6',['Synchronisation Primitives',['../group__tz__gl__vk__sync.html',1,'']]], + ['system_7',['Job System',['../group__tz__core__job.html',1,'']]], + ['system_20integration_8',['Window System Integration',['../group__tz__wsi.html',1,'']]] +]; diff --git a/search/groups_11.js b/search/groups_11.js new file mode 100644 index 0000000000..b602985d14 --- /dev/null +++ b/search/groups_11.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['tzsl_20api_20reference_0',['TZSL API Reference',['../group__tzsl.html',1,'']]] +]; diff --git a/search/groups_12.js b/search/groups_12.js new file mode 100644 index 0000000000..04b4839f4d --- /dev/null +++ b/search/groups_12.js @@ -0,0 +1,5 @@ +var searchData= +[ + ['ui_0',['Debug UI',['../group__tz__dbgui.html',1,'']]], + ['utility_1',['Memory Utility',['../group__tz__core__memory.html',1,'']]] +]; diff --git a/search/groups_13.js b/search/groups_13.js new file mode 100644 index 0000000000..44a03a6dec --- /dev/null +++ b/search/groups_13.js @@ -0,0 +1,7 @@ +var searchData= +[ + ['values_0',['Fixed Pipeline State Values',['../group__tz__gl__vk__graphics__pipeline__fixed.html',1,'']]], + ['vulkan_1',['Vulkan',['../group__tz__gl2__graphicsapi__vk.html',1,'']]], + ['vulkan_20backend_2',['Vulkan Backend',['../group__tz__gl__vk.html',1,'']]], + ['vulkan_20frontend_3',['Vulkan Frontend',['../group__tz__gl2__graphicsapi__vk__frontend.html',1,'']]] +]; diff --git a/search/groups_14.js b/search/groups_14.js new file mode 100644 index 0000000000..5fddda04f0 --- /dev/null +++ b/search/groups_14.js @@ -0,0 +1,7 @@ +var searchData= +[ + ['window_0',['Window',['../group__tz__wsi__window.html',1,'']]], + ['window_20surface_20interation_20wsi_1',['Presentation and Window Surface Interation (WSI)',['../group__tz__gl__vk__presentation.html',1,'']]], + ['window_20system_20integration_2',['Window System Integration',['../group__tz__wsi.html',1,'']]], + ['wsi_3',['Presentation and Window Surface Interation (WSI)',['../group__tz__gl__vk__presentation.html',1,'']]] +]; diff --git a/search/groups_2.js b/search/groups_2.js new file mode 100644 index 0000000000..9e8aa7ef48 --- /dev/null +++ b/search/groups_2.js @@ -0,0 +1,6 @@ +var searchData= +[ + ['c_20api_20reference_0',['C++ API Reference',['../group__tz__cpp.html',1,'']]], + ['command_20buffers_20and_20pools_1',['Command Buffers and Pools',['../group__tz__gl__vk__commands.html',1,'']]], + ['core_20functionality_2',['Core Functionality',['../group__tz__core.html',1,'']]] +]; diff --git a/search/groups_3.js b/search/groups_3.js new file mode 100644 index 0000000000..566193bf3e --- /dev/null +++ b/search/groups_3.js @@ -0,0 +1,7 @@ +var searchData= +[ + ['data_0',['Data',['../group__tz__core__data.html',1,'']]], + ['debug_20ui_1',['Debug UI',['../group__tz__dbgui.html',1,'']]], + ['debugging_2',['Debugging',['../group__tzsl__debug.html',1,'']]], + ['descriptor_20layouts_20and_20sets_3',['Descriptor Layouts and Sets',['../group__tz__gl__vk__descriptors.html',1,'']]] +]; diff --git a/search/groups_4.js b/search/groups_4.js new file mode 100644 index 0000000000..5ebf1ec814 --- /dev/null +++ b/search/groups_4.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['extensions_20and_20features_0',['Extensions and Features',['../group__tz__gl__vk__extension.html',1,'']]] +]; diff --git a/search/groups_5.js b/search/groups_5.js new file mode 100644 index 0000000000..68f4eebec1 --- /dev/null +++ b/search/groups_5.js @@ -0,0 +1,10 @@ +var searchData= +[ + ['features_0',['Extensions and Features',['../group__tz__gl__vk__extension.html',1,'']]], + ['fixed_20pipeline_20state_20values_1',['Fixed Pipeline State Values',['../group__tz__gl__vk__graphics__pipeline__fixed.html',1,'']]], + ['formats_2',['formats',['../group__tz__gl__vk__image.html',1,'Images, Samplers and Formats'],['../group__tz__gl__ogl2__image.html',1,'Images, Samplers and Formats']]], + ['framebuffers_3',['Framebuffers',['../group__tz__gl__ogl2__framebuffer.html',1,'']]], + ['frontend_4',['frontend',['../group__tz__gl2__graphicsapi__ogl__frontend.html',1,'OpenGL Frontend'],['../group__tz__gl2__graphicsapi__vk__frontend.html',1,'Vulkan Frontend']]], + ['functionality_5',['Core Functionality',['../group__tz__core.html',1,'']]], + ['functions_6',['Noise Functions',['../group__tzsl__noise.html',1,'']]] +]; diff --git a/search/groups_6.js b/search/groups_6.js new file mode 100644 index 0000000000..fabdd10bd1 --- /dev/null +++ b/search/groups_6.js @@ -0,0 +1,6 @@ +var searchData= +[ + ['graphics_20library_0',['Graphics Library',['../group__tz__gl2.html',1,'']]], + ['graphics_20pipeline_1',['Graphics Pipeline',['../group__tz__gl__vk__graphics__pipeline.html',1,'']]], + ['guide_2',['Maintainer Guide',['../group__tz__gl2__graphicsapi.html',1,'']]] +]; diff --git a/search/groups_7.js b/search/groups_7.js new file mode 100644 index 0000000000..d3078ee63b --- /dev/null +++ b/search/groups_7.js @@ -0,0 +1,9 @@ +var searchData= +[ + ['images_20samplers_20and_20formats_0',['images samplers and formats',['../group__tz__gl__vk__image.html',1,'Images, Samplers and Formats'],['../group__tz__gl__ogl2__image.html',1,'Images, Samplers and Formats']]], + ['implementation_1',['renderer Implementation',['../group__tz__gl2__graphicsapi__ogl__frontend__renderer.html',1,'']]], + ['input_2',['input',['../group__tz__wsi__keyboard.html',1,'Keyboard Input'],['../group__tz__wsi__mouse.html',1,'Mouse Input']]], + ['inputs_20and_20outputs_3',['Inputs and Outputs',['../group__tz__gl2__io.html',1,'']]], + ['integration_4',['integration',['../group__tz__lua__cpp.html',1,'Lua Integration'],['../group__tz__wsi.html',1,'Window System Integration']]], + ['interation_20wsi_5',['Presentation and Window Surface Interation (WSI)',['../group__tz__gl__vk__presentation.html',1,'']]] +]; diff --git a/search/groups_8.js b/search/groups_8.js new file mode 100644 index 0000000000..b2f2d74101 --- /dev/null +++ b/search/groups_8.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['job_20system_0',['Job System',['../group__tz__core__job.html',1,'']]] +]; diff --git a/search/groups_9.js b/search/groups_9.js new file mode 100644 index 0000000000..b1311a6691 --- /dev/null +++ b/search/groups_9.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['keyboard_20input_0',['Keyboard Input',['../group__tz__wsi__keyboard.html',1,'']]] +]; diff --git a/search/groups_a.js b/search/groups_a.js new file mode 100644 index 0000000000..5af462e189 --- /dev/null +++ b/search/groups_a.js @@ -0,0 +1,6 @@ +var searchData= +[ + ['layouts_20and_20sets_0',['Descriptor Layouts and Sets',['../group__tz__gl__vk__descriptors.html',1,'']]], + ['library_1',['Graphics Library',['../group__tz__gl2.html',1,'']]], + ['lua_20integration_2',['Lua Integration',['../group__tz__lua__cpp.html',1,'']]] +]; diff --git a/search/groups_b.js b/search/groups_b.js new file mode 100644 index 0000000000..b4d8f19358 --- /dev/null +++ b/search/groups_b.js @@ -0,0 +1,11 @@ +var searchData= +[ + ['maintainer_20guide_0',['Maintainer Guide',['../group__tz__gl2__graphicsapi.html',1,'']]], + ['mathematical_20operations_1',['Mathematical Operations',['../group__tzsl__math.html',1,'']]], + ['matrix_20operations_2',['Matrix Operations',['../group__tzsl__matrix.html',1,'']]], + ['memory_20utility_3',['Memory Utility',['../group__tz__core__memory.html',1,'']]], + ['meshes_4',['Precomputed Meshes',['../group__tzsl__mesh.html',1,'']]], + ['modules_5',['Shader Programs and Modules',['../group__tz__gl__vk__graphics__pipeline__shader.html',1,'']]], + ['monitors_6',['Monitors',['../group__tz__wsi__monitor.html',1,'']]], + ['mouse_20input_7',['Mouse Input',['../group__tz__wsi__mouse.html',1,'']]] +]; diff --git a/search/groups_c.js b/search/groups_c.js new file mode 100644 index 0000000000..d0de9d01b8 --- /dev/null +++ b/search/groups_c.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['noise_20functions_0',['Noise Functions',['../group__tzsl__noise.html',1,'']]] +]; diff --git a/search/groups_d.js b/search/groups_d.js new file mode 100644 index 0000000000..6df66cedff --- /dev/null +++ b/search/groups_d.js @@ -0,0 +1,8 @@ +var searchData= +[ + ['opengl_0',['OpenGL',['../group__tz__gl2__graphicsapi__ogl.html',1,'']]], + ['opengl_20backend_1',['OpenGL Backend',['../group__tz__gl__ogl2.html',1,'']]], + ['opengl_20frontend_2',['OpenGL Frontend',['../group__tz__gl2__graphicsapi__ogl__frontend.html',1,'']]], + ['operations_3',['operations',['../group__tzsl__atomic.html',1,'Atomic Operations'],['../group__tzsl__math.html',1,'Mathematical Operations'],['../group__tzsl__matrix.html',1,'Matrix Operations']]], + ['outputs_4',['Inputs and Outputs',['../group__tz__gl2__io.html',1,'']]] +]; diff --git a/search/groups_e.js b/search/groups_e.js new file mode 100644 index 0000000000..07cec6c7e2 --- /dev/null +++ b/search/groups_e.js @@ -0,0 +1,11 @@ +var searchData= +[ + ['passes_0',['Render Passes',['../group__tz__gl__vk__graphics__pipeline__render__pass.html',1,'']]], + ['pipeline_1',['Graphics Pipeline',['../group__tz__gl__vk__graphics__pipeline.html',1,'']]], + ['pipeline_20state_20values_2',['Fixed Pipeline State Values',['../group__tz__gl__vk__graphics__pipeline__fixed.html',1,'']]], + ['pools_3',['Command Buffers and Pools',['../group__tz__gl__vk__commands.html',1,'']]], + ['precomputed_20meshes_4',['Precomputed Meshes',['../group__tzsl__mesh.html',1,'']]], + ['presentation_20and_20window_20surface_20interation_20wsi_5',['Presentation and Window Surface Interation (WSI)',['../group__tz__gl__vk__presentation.html',1,'']]], + ['primitives_6',['Synchronisation Primitives',['../group__tz__gl__vk__sync.html',1,'']]], + ['programs_20and_20modules_7',['Shader Programs and Modules',['../group__tz__gl__vk__graphics__pipeline__shader.html',1,'']]] +]; diff --git a/search/groups_f.js b/search/groups_f.js new file mode 100644 index 0000000000..bace789287 --- /dev/null +++ b/search/groups_f.js @@ -0,0 +1,8 @@ +var searchData= +[ + ['reference_0',['reference',['../group__tz__cpp.html',1,'C++ API Reference'],['../group__tzsl.html',1,'TZSL API Reference']]], + ['render_20passes_1',['Render Passes',['../group__tz__gl__vk__graphics__pipeline__render__pass.html',1,'']]], + ['renderer_20implementation_2',['renderer Implementation',['../group__tz__gl2__graphicsapi__ogl__frontend__renderer.html',1,'']]], + ['renderers_3',['Renderers',['../group__tz__gl2__renderer.html',1,'']]], + ['resources_4',['Resources',['../group__tz__gl2__res.html',1,'']]] +]; diff --git a/search/mag.svg b/search/mag.svg new file mode 100644 index 0000000000..ffb6cf0d02 --- /dev/null +++ b/search/mag.svg @@ -0,0 +1,24 @@ + + + + + + + diff --git a/search/mag_d.svg b/search/mag_d.svg new file mode 100644 index 0000000000..4122773f92 --- /dev/null +++ b/search/mag_d.svg @@ -0,0 +1,24 @@ + + + + + + + diff --git a/search/mag_sel.svg b/search/mag_sel.svg new file mode 100644 index 0000000000..553dba8773 --- /dev/null +++ b/search/mag_sel.svg @@ -0,0 +1,31 @@ + + + + + + + + + diff --git a/search/mag_seld.svg b/search/mag_seld.svg new file mode 100644 index 0000000000..c906f84c83 --- /dev/null +++ b/search/mag_seld.svg @@ -0,0 +1,31 @@ + + + + + + + + + diff --git a/search/namespaces_0.js b/search/namespaces_0.js new file mode 100644 index 0000000000..c8dd7c6b45 --- /dev/null +++ b/search/namespaces_0.js @@ -0,0 +1,12 @@ +var searchData= +[ + ['tz_3a_3aatomic_0',['atomic',['../namespacetz_1_1atomic.html',1,'tz']]], + ['tz_3a_3adebug_1',['debug',['../namespacetz_1_1debug.html',1,'tz']]], + ['tz_3a_3agl_3a_3avk2_3a_3aformat_5ftraits_2',['format_traits',['../namespacetz_1_1gl_1_1vk2_1_1format__traits.html',1,'tz::gl::vk2']]], + ['tz_3a_3agl_3a_3avk2_3a_3apresent_5ftraits_3',['present_traits',['../namespacetz_1_1gl_1_1vk2_1_1present__traits.html',1,'tz::gl::vk2']]], + ['tz_3a_3amath_4',['math',['../namespacetz_1_1math.html',1,'tz']]], + ['tz_3a_3amatrix_5',['matrix',['../namespacetz_1_1matrix.html',1,'tz']]], + ['tz_3a_3amesh_6',['mesh',['../namespacetz_1_1mesh.html',1,'tz']]], + ['tz_3a_3anoise_7',['noise',['../namespacetz_1_1noise.html',1,'tz']]], + ['tz_3a_3awsi_3a_3awindow_5fflag_8',['window_flag',['../namespacetz_1_1wsi_1_1window__flag.html',1,'tz::wsi']]] +]; diff --git a/search/pages_0.js b/search/pages_0.js new file mode 100644 index 0000000000..ed1099a584 --- /dev/null +++ b/search/pages_0.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['api_20reference_0',['Lua API Reference',['../tz_lua.html',1,'']]] +]; diff --git a/search/pages_1.js b/search/pages_1.js new file mode 100644 index 0000000000..d1067110b2 --- /dev/null +++ b/search/pages_1.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['home_0',['Home',['../index.html',1,'']]] +]; diff --git a/search/pages_2.js b/search/pages_2.js new file mode 100644 index 0000000000..219e8ea05f --- /dev/null +++ b/search/pages_2.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['lua_20api_20reference_0',['Lua API Reference',['../tz_lua.html',1,'']]] +]; diff --git a/search/pages_3.js b/search/pages_3.js new file mode 100644 index 0000000000..4fd5ee3790 --- /dev/null +++ b/search/pages_3.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['reference_0',['Lua API Reference',['../tz_lua.html',1,'']]] +]; diff --git a/search/search.css b/search/search.css new file mode 100644 index 0000000000..09d65c4d80 --- /dev/null +++ b/search/search.css @@ -0,0 +1,292 @@ +/*---------------- Search Box positioning */ + +#navrow1 .tablist > li:last-child { + /* This
  • object is the parent of the search bar */ + display: flex; + justify-content: center; + align-items: center; + height: 36px; + margin-right: 1em; + float: right; +} + +/*---------------- Search box styling */ + +.SRPage * { + font-weight: normal; + line-height: normal; +} + +dark-mode-toggle { + margin-left: 5px; + display: flex; + float: right; +} + +#MSearchBox { + display: inline-block; + white-space : nowrap; + background: var(--search-background-color); + border-radius: 0.65em; + box-shadow: var(--search-box-shadow); + z-index: 102; +} + +#MSearchBox .left { + display: inline-block; + vertical-align: middle; + height: 1.4em; +} + +#MSearchSelect { + display: inline-block; + vertical-align: middle; + width: 20px; + height: 19px; + background-image: var(--search-magnification-select-image); + margin: 0 0 0 0.3em; + padding: 0; +} + +#MSearchSelectExt { + display: inline-block; + vertical-align: middle; + width: 10px; + height: 19px; + background-image: var(--search-magnification-image); + margin: 0 0 0 0.5em; + padding: 0; +} + + +#MSearchField { + display: inline-block; + vertical-align: middle; + width: 7.5em; + height: 19px; + margin: 0 0.15em; + padding: 0; + line-height: 1em; + border:none; + color: var(--search-foreground-color); + outline: none; + font-family: var(--font-family-search); + -webkit-border-radius: 0px; + border-radius: 0px; + background: none; +} + +@media(hover: none) { + /* to avoid zooming on iOS */ + #MSearchField { + font-size: 16px; + } +} + +#MSearchBox .right { + display: inline-block; + vertical-align: middle; + width: 1.4em; + height: 1.4em; +} + +#MSearchClose { + display: none; + font-size: inherit; + background : none; + border: none; + margin: 0; + padding: 0; + outline: none; + +} + +#MSearchCloseImg { + padding: 0.3em; + margin: 0; +} + +.MSearchBoxActive #MSearchField { + color: var(--search-active-color); +} + + + +/*---------------- Search filter selection */ + +#MSearchSelectWindow { + display: none; + position: absolute; + left: 0; top: 0; + border: 1px solid var(--search-filter-border-color); + background-color: var(--search-filter-background-color); + z-index: 10001; + padding-top: 4px; + padding-bottom: 4px; + -moz-border-radius: 4px; + -webkit-border-top-left-radius: 4px; + -webkit-border-top-right-radius: 4px; + -webkit-border-bottom-left-radius: 4px; + -webkit-border-bottom-right-radius: 4px; + -webkit-box-shadow: 5px 5px 5px rgba(0, 0, 0, 0.15); +} + +.SelectItem { + font: 8pt var(--font-family-search); + padding-left: 2px; + padding-right: 12px; + border: 0px; +} + +span.SelectionMark { + margin-right: 4px; + font-family: var(--font-family-monospace); + outline-style: none; + text-decoration: none; +} + +a.SelectItem { + display: block; + outline-style: none; + color: var(--search-filter-foreground-color); + text-decoration: none; + padding-left: 6px; + padding-right: 12px; +} + +a.SelectItem:focus, +a.SelectItem:active { + color: var(--search-filter-foreground-color); + outline-style: none; + text-decoration: none; +} + +a.SelectItem:hover { + color: var(--search-filter-highlight-text-color); + background-color: var(--search-filter-highlight-bg-color); + outline-style: none; + text-decoration: none; + cursor: pointer; + display: block; +} + +/*---------------- Search results window */ + +iframe#MSearchResults { + /*width: 60ex;*/ + height: 15em; +} + +#MSearchResultsWindow { + display: none; + position: absolute; + left: 0; top: 0; + border: 1px solid var(--search-results-border-color); + background-color: var(--search-results-background-color); + z-index:10000; + width: 300px; + height: 400px; + overflow: auto; +} + +/* ----------------------------------- */ + + +#SRIndex { + clear:both; +} + +.SREntry { + font-size: 10pt; + padding-left: 1ex; +} + +.SRPage .SREntry { + font-size: 8pt; + padding: 1px 5px; +} + +div.SRPage { + margin: 5px 2px; + background-color: var(--search-results-background-color); +} + +.SRChildren { + padding-left: 3ex; padding-bottom: .5em +} + +.SRPage .SRChildren { + display: none; +} + +.SRSymbol { + font-weight: bold; + color: var(--search-results-foreground-color); + font-family: var(--font-family-search); + text-decoration: none; + outline: none; +} + +a.SRScope { + display: block; + color: var(--search-results-foreground-color); + font-family: var(--font-family-search); + font-size: 8pt; + text-decoration: none; + outline: none; +} + +a.SRSymbol:focus, a.SRSymbol:active, +a.SRScope:focus, a.SRScope:active { + text-decoration: underline; +} + +span.SRScope { + padding-left: 4px; + font-family: var(--font-family-search); +} + +.SRPage .SRStatus { + padding: 2px 5px; + font-size: 8pt; + font-style: italic; + font-family: var(--font-family-search); +} + +.SRResult { + display: none; +} + +div.searchresults { + margin-left: 10px; + margin-right: 10px; +} + +/*---------------- External search page results */ + +.pages b { + color: white; + padding: 5px 5px 3px 5px; + background-image: var(--nav-gradient-active-image-parent); + background-repeat: repeat-x; + text-shadow: 0 1px 1px #000000; +} + +.pages { + line-height: 17px; + margin-left: 4px; + text-decoration: none; +} + +.hl { + font-weight: bold; +} + +#searchresults { + margin-bottom: 20px; +} + +.searchpages { + margin-top: 10px; +} + diff --git a/search/search.js b/search/search.js new file mode 100644 index 0000000000..6fd40c6770 --- /dev/null +++ b/search/search.js @@ -0,0 +1,840 @@ +/* + @licstart The following is the entire license notice for the JavaScript code in this file. + + The MIT License (MIT) + + Copyright (C) 1997-2020 by Dimitri van Heesch + + Permission is hereby granted, free of charge, to any person obtaining a copy of this software + and associated documentation files (the "Software"), to deal in the Software without restriction, + including without limitation the rights to use, copy, modify, merge, publish, distribute, + sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is + furnished to do so, subject to the following conditions: + + The above copyright notice and this permission notice shall be included in all copies or + substantial portions of the Software. + + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING + BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND + NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, + DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + + @licend The above is the entire license notice for the JavaScript code in this file + */ +function convertToId(search) +{ + var result = ''; + for (i=0;i do a search + { + this.Search(); + } + } + + this.OnSearchSelectKey = function(evt) + { + var e = (evt) ? evt : window.event; // for IE + if (e.keyCode==40 && this.searchIndex0) // Up + { + this.searchIndex--; + this.OnSelectItem(this.searchIndex); + } + else if (e.keyCode==13 || e.keyCode==27) + { + e.stopPropagation(); + this.OnSelectItem(this.searchIndex); + this.CloseSelectionWindow(); + this.DOMSearchField().focus(); + } + return false; + } + + // --------- Actions + + // Closes the results window. + this.CloseResultsWindow = function() + { + this.DOMPopupSearchResultsWindow().style.display = 'none'; + this.DOMSearchClose().style.display = 'none'; + this.Activate(false); + } + + this.CloseSelectionWindow = function() + { + this.DOMSearchSelectWindow().style.display = 'none'; + } + + // Performs a search. + this.Search = function() + { + this.keyTimeout = 0; + + // strip leading whitespace + var searchValue = this.DOMSearchField().value.replace(/^ +/, ""); + + var code = searchValue.toLowerCase().charCodeAt(0); + var idxChar = searchValue.substr(0, 1).toLowerCase(); + if ( 0xD800 <= code && code <= 0xDBFF && searchValue > 1) // surrogate pair + { + idxChar = searchValue.substr(0, 2); + } + + var jsFile; + + var idx = indexSectionsWithContent[this.searchIndex].indexOf(idxChar); + if (idx!=-1) + { + var hexCode=idx.toString(16); + jsFile = this.resultsPath + indexSectionNames[this.searchIndex] + '_' + hexCode + '.js'; + } + + var loadJS = function(url, impl, loc){ + var scriptTag = document.createElement('script'); + scriptTag.src = url; + scriptTag.onload = impl; + scriptTag.onreadystatechange = impl; + loc.appendChild(scriptTag); + } + + var domPopupSearchResultsWindow = this.DOMPopupSearchResultsWindow(); + var domSearchBox = this.DOMSearchBox(); + var domPopupSearchResults = this.DOMPopupSearchResults(); + var domSearchClose = this.DOMSearchClose(); + var resultsPath = this.resultsPath; + + var handleResults = function() { + document.getElementById("Loading").style.display="none"; + if (typeof searchData !== 'undefined') { + createResults(resultsPath); + document.getElementById("NoMatches").style.display="none"; + } + + if (idx!=-1) { + searchResults.Search(searchValue); + } else { // no file with search results => force empty search results + searchResults.Search('===='); + } + + if (domPopupSearchResultsWindow.style.display!='block') + { + domSearchClose.style.display = 'inline-block'; + var left = getXPos(domSearchBox) + 150; + var top = getYPos(domSearchBox) + 20; + domPopupSearchResultsWindow.style.display = 'block'; + left -= domPopupSearchResults.offsetWidth; + var maxWidth = document.body.clientWidth; + var maxHeight = document.body.clientHeight; + var width = 300; + if (left<10) left=10; + if (width+left+8>maxWidth) width=maxWidth-left-8; + var height = 400; + if (height+top+8>maxHeight) height=maxHeight-top-8; + domPopupSearchResultsWindow.style.top = top + 'px'; + domPopupSearchResultsWindow.style.left = left + 'px'; + domPopupSearchResultsWindow.style.width = width + 'px'; + domPopupSearchResultsWindow.style.height = height + 'px'; + } + } + + if (jsFile) { + loadJS(jsFile, handleResults, this.DOMPopupSearchResultsWindow()); + } else { + handleResults(); + } + + this.lastSearchValue = searchValue; + } + + // -------- Activation Functions + + // Activates or deactivates the search panel, resetting things to + // their default values if necessary. + this.Activate = function(isActive) + { + if (isActive || // open it + this.DOMPopupSearchResultsWindow().style.display == 'block' + ) + { + this.DOMSearchBox().className = 'MSearchBoxActive'; + this.searchActive = true; + } + else if (!isActive) // directly remove the panel + { + this.DOMSearchBox().className = 'MSearchBoxInactive'; + this.searchActive = false; + this.lastSearchValue = '' + this.lastResultsPage = ''; + this.DOMSearchField().value = ''; + } + } +} + +// ----------------------------------------------------------------------- + +// The class that handles everything on the search results page. +function SearchResults(name) +{ + // The number of matches from the last run of . + this.lastMatchCount = 0; + this.lastKey = 0; + this.repeatOn = false; + + // Toggles the visibility of the passed element ID. + this.FindChildElement = function(id) + { + var parentElement = document.getElementById(id); + var element = parentElement.firstChild; + + while (element && element!=parentElement) + { + if (element.nodeName.toLowerCase() == 'div' && element.className == 'SRChildren') + { + return element; + } + + if (element.nodeName.toLowerCase() == 'div' && element.hasChildNodes()) + { + element = element.firstChild; + } + else if (element.nextSibling) + { + element = element.nextSibling; + } + else + { + do + { + element = element.parentNode; + } + while (element && element!=parentElement && !element.nextSibling); + + if (element && element!=parentElement) + { + element = element.nextSibling; + } + } + } + } + + this.Toggle = function(id) + { + var element = this.FindChildElement(id); + if (element) + { + if (element.style.display == 'block') + { + element.style.display = 'none'; + } + else + { + element.style.display = 'block'; + } + } + } + + // Searches for the passed string. If there is no parameter, + // it takes it from the URL query. + // + // Always returns true, since other documents may try to call it + // and that may or may not be possible. + this.Search = function(search) + { + if (!search) // get search word from URL + { + search = window.location.search; + search = search.substring(1); // Remove the leading '?' + search = unescape(search); + } + + search = search.replace(/^ +/, ""); // strip leading spaces + search = search.replace(/ +$/, ""); // strip trailing spaces + search = search.toLowerCase(); + search = convertToId(search); + + var resultRows = document.getElementsByTagName("div"); + var matches = 0; + + var i = 0; + while (i < resultRows.length) + { + var row = resultRows.item(i); + if (row.className == "SRResult") + { + var rowMatchName = row.id.toLowerCase(); + rowMatchName = rowMatchName.replace(/^sr\d*_/, ''); // strip 'sr123_' + + if (search.length<=rowMatchName.length && + rowMatchName.substr(0, search.length)==search) + { + row.style.display = 'block'; + matches++; + } + else + { + row.style.display = 'none'; + } + } + i++; + } + document.getElementById("Searching").style.display='none'; + if (matches == 0) // no results + { + document.getElementById("NoMatches").style.display='block'; + } + else // at least one result + { + document.getElementById("NoMatches").style.display='none'; + } + this.lastMatchCount = matches; + return true; + } + + // return the first item with index index or higher that is visible + this.NavNext = function(index) + { + var focusItem; + while (1) + { + var focusName = 'Item'+index; + focusItem = document.getElementById(focusName); + if (focusItem && focusItem.parentNode.parentNode.style.display=='block') + { + break; + } + else if (!focusItem) // last element + { + break; + } + focusItem=null; + index++; + } + return focusItem; + } + + this.NavPrev = function(index) + { + var focusItem; + while (1) + { + var focusName = 'Item'+index; + focusItem = document.getElementById(focusName); + if (focusItem && focusItem.parentNode.parentNode.style.display=='block') + { + break; + } + else if (!focusItem) // last element + { + break; + } + focusItem=null; + index--; + } + return focusItem; + } + + this.ProcessKeys = function(e) + { + if (e.type == "keydown") + { + this.repeatOn = false; + this.lastKey = e.keyCode; + } + else if (e.type == "keypress") + { + if (!this.repeatOn) + { + if (this.lastKey) this.repeatOn = true; + return false; // ignore first keypress after keydown + } + } + else if (e.type == "keyup") + { + this.lastKey = 0; + this.repeatOn = false; + } + return this.lastKey!=0; + } + + this.Nav = function(evt,itemIndex) + { + var e = (evt) ? evt : window.event; // for IE + if (e.keyCode==13) return true; + if (!this.ProcessKeys(e)) return false; + + if (this.lastKey==38) // Up + { + var newIndex = itemIndex-1; + var focusItem = this.NavPrev(newIndex); + if (focusItem) + { + var child = this.FindChildElement(focusItem.parentNode.parentNode.id); + if (child && child.style.display == 'block') // children visible + { + var n=0; + var tmpElem; + while (1) // search for last child + { + tmpElem = document.getElementById('Item'+newIndex+'_c'+n); + if (tmpElem) + { + focusItem = tmpElem; + } + else // found it! + { + break; + } + n++; + } + } + } + if (focusItem) + { + focusItem.focus(); + } + else // return focus to search field + { + document.getElementById("MSearchField").focus(); + } + } + else if (this.lastKey==40) // Down + { + var newIndex = itemIndex+1; + var focusItem; + var item = document.getElementById('Item'+itemIndex); + var elem = this.FindChildElement(item.parentNode.parentNode.id); + if (elem && elem.style.display == 'block') // children visible + { + focusItem = document.getElementById('Item'+itemIndex+'_c0'); + } + if (!focusItem) focusItem = this.NavNext(newIndex); + if (focusItem) focusItem.focus(); + } + else if (this.lastKey==39) // Right + { + var item = document.getElementById('Item'+itemIndex); + var elem = this.FindChildElement(item.parentNode.parentNode.id); + if (elem) elem.style.display = 'block'; + } + else if (this.lastKey==37) // Left + { + var item = document.getElementById('Item'+itemIndex); + var elem = this.FindChildElement(item.parentNode.parentNode.id); + if (elem) elem.style.display = 'none'; + } + else if (this.lastKey==27) // Escape + { + e.stopPropagation(); + searchBox.CloseResultsWindow(); + document.getElementById("MSearchField").focus(); + } + else if (this.lastKey==13) // Enter + { + return true; + } + return false; + } + + this.NavChild = function(evt,itemIndex,childIndex) + { + var e = (evt) ? evt : window.event; // for IE + if (e.keyCode==13) return true; + if (!this.ProcessKeys(e)) return false; + + if (this.lastKey==38) // Up + { + if (childIndex>0) + { + var newIndex = childIndex-1; + document.getElementById('Item'+itemIndex+'_c'+newIndex).focus(); + } + else // already at first child, jump to parent + { + document.getElementById('Item'+itemIndex).focus(); + } + } + else if (this.lastKey==40) // Down + { + var newIndex = childIndex+1; + var elem = document.getElementById('Item'+itemIndex+'_c'+newIndex); + if (!elem) // last child, jump to parent next parent + { + elem = this.NavNext(itemIndex+1); + } + if (elem) + { + elem.focus(); + } + } + else if (this.lastKey==27) // Escape + { + e.stopPropagation(); + searchBox.CloseResultsWindow(); + document.getElementById("MSearchField").focus(); + } + else if (this.lastKey==13) // Enter + { + return true; + } + return false; + } +} + +function setKeyActions(elem,action) +{ + elem.setAttribute('onkeydown',action); + elem.setAttribute('onkeypress',action); + elem.setAttribute('onkeyup',action); +} + +function setClassAttr(elem,attr) +{ + elem.setAttribute('class',attr); + elem.setAttribute('className',attr); +} + +function createResults(resultsPath) +{ + var results = document.getElementById("SRResults"); + results.innerHTML = ''; + for (var e=0; e + + + + + + +Topaz: src/tz/gl/impl/vulkan/detail/semaphore.hpp Source File + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    Topaz 4.1.0.1 +
    +
    C++20 Graphics Engine
    +
    +
    + + + + + + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + + +
    +
    +
    semaphore.hpp
    +
    +
    +
    1#ifndef TOPAZ_GL_IMPL_BACKEND_VK2_SEMAPHORE_HPP
    +
    2#define TOPAZ_GL_IMPL_BACKEND_VK2_SEMAPHORE_HPP
    +
    3#if TZ_VULKAN
    +
    4#include "tz/gl/impl/vulkan/detail/logical_device.hpp"
    +
    5#include "tz/gl/impl/vulkan/detail/debugname.hpp"
    +
    6
    +
    7namespace tz::gl::vk2
    +
    8{
    +
    9 enum class semaphore_type
    +
    10 {
    +
    11 binary,
    +
    12 timeline
    +
    13 };
    +
    +
    21 class BinarySemaphore : public DebugNameable<VK_OBJECT_TYPE_SEMAPHORE>
    +
    22 {
    +
    23 public:
    + +
    25 BinarySemaphore(const BinarySemaphore& copy) = delete;
    + +
    27 virtual ~BinarySemaphore();
    +
    28
    +
    29 BinarySemaphore& operator=(const BinarySemaphore& rhs) = delete;
    +
    30 BinarySemaphore& operator=(BinarySemaphore&& rhs);
    +
    31 virtual semaphore_type get_type() const{return semaphore_type::binary;}
    +
    32
    +
    33 const LogicalDevice& get_device() const;
    +
    34
    +
    35 using NativeType = VkSemaphore;
    +
    36 NativeType native() const;
    +
    37
    +
    38 static BinarySemaphore null();
    +
    39 bool is_null() const;
    +
    40 protected:
    + +
    42 VkSemaphore sem;
    +
    43 const LogicalDevice* device;
    +
    44 };
    +
    +
    45
    + +
    51
    +
    + +
    59 {
    +
    60 public:
    +
    65 TimelineSemaphore(const LogicalDevice& device, std::uint64_t value = 0);
    +
    66 TimelineSemaphore(const TimelineSemaphore& copy) = delete;
    + + +
    69 TimelineSemaphore& operator=(const TimelineSemaphore&& rhs) = delete;
    +
    70 TimelineSemaphore& operator=(TimelineSemaphore&& rhs);
    +
    71
    +
    72
    +
    73 virtual semaphore_type get_type() const{return semaphore_type::timeline;}
    +
    77 void signal(std::uint64_t value);
    +
    81 void wait_for(std::uint64_t value) const;
    +
    85 std::uint64_t get_value() const;
    +
    86
    +
    92 static bool supported(const LogicalDevice& device);
    +
    93 };
    +
    +
    94
    +
    95
    +
    96}
    +
    97
    +
    98#endif // TZ_VULKAN
    +
    99#endif // TOPAZ_GL_IMPL_BACKEND_VK2_SEMAPHORE_HPP
    +
    Implements tz::gl::device_type.
    Definition device.hpp:69
    +
    Synchronisation primitive which is not interactable on the host and which has two states:
    Definition semaphore.hpp:22
    +
    Definition debugname.hpp:10
    +
    Logical interface to an existing PhysicalDevice.
    Definition logical_device.hpp:95
    +
    Synchronisation primitive similar to BinarySemaphore.
    Definition semaphore.hpp:59
    +
    void signal(std::uint64_t value)
    Instantaneously set the semaphore to the given value.
    Definition semaphore.cpp:140
    +
    void wait_for(std::uint64_t value) const
    Blocks the current thread and waits until the semaphore has reached the provided value.
    Definition semaphore.cpp:152
    +
    std::uint64_t get_value() const
    Retrieve the current semaphore value.
    Definition semaphore.cpp:185
    +
    static bool supported(const LogicalDevice &device)
    Timeline Semaphores are optional features and must be enabled.
    Definition semaphore.cpp:192
    +
    + + + + diff --git a/shader_8hpp_source.html b/shader_8hpp_source.html new file mode 100644 index 0000000000..bc6e64ca98 --- /dev/null +++ b/shader_8hpp_source.html @@ -0,0 +1,109 @@ + + + + + + + +Topaz: src/tz/gl/shader.hpp Source File + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    Topaz 4.1.0.1 +
    +
    C++20 Graphics Engine
    +
    +
    + + + + + + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + + +
    +
    +
    shader.hpp
    +
    +
    +
    + + + + diff --git a/site.webmanifest b/site.webmanifest new file mode 100644 index 0000000000..de65106f48 --- /dev/null +++ b/site.webmanifest @@ -0,0 +1,19 @@ +{ + "name": "", + "short_name": "", + "icons": [ + { + "src": "/android-chrome-192x192.png", + "sizes": "192x192", + "type": "image/png" + }, + { + "src": "/android-chrome-256x256.png", + "sizes": "256x256", + "type": "image/png" + } + ], + "theme_color": "#ffffff", + "background_color": "#ffffff", + "display": "standalone" +} diff --git a/splitbar.png b/splitbar.png new file mode 100644 index 0000000000..fe895f2c58 Binary files /dev/null and b/splitbar.png differ diff --git a/splitbard.png b/splitbard.png new file mode 100644 index 0000000000..8367416d75 Binary files /dev/null and b/splitbard.png differ diff --git a/stack_8hpp_source.html b/stack_8hpp_source.html new file mode 100644 index 0000000000..7ecf52d1d5 --- /dev/null +++ b/stack_8hpp_source.html @@ -0,0 +1,134 @@ + + + + + + + +Topaz: src/tz/core/memory/allocators/stack.hpp Source File + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    Topaz 4.1.0.1 +
    +
    C++20 Graphics Engine
    +
    +
    + + + + + + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + + +
    +
    +
    stack.hpp
    +
    +
    +
    1#ifndef TOPAZ_CORE_ALLOCATORS_STACK_HPP
    +
    2#define TOPAZ_CORE_ALLOCATORS_STACK_HPP
    +
    3#include "tz/core/memory/allocators/linear.hpp"
    +
    4
    +
    5namespace tz
    +
    6{
    +
    14 template<std::size_t S>
    +
    + +
    16 {
    +
    17 public:
    + +
    19 private:
    +
    20 alignas(alignof(std::max_align_t)) char data[S];
    +
    21 };
    +
    +
    22
    + +
    24}
    +
    25
    +
    26#include "tz/core/memory/allocators/stack.inl"
    +
    27#endif // TOPAZ_CORE_ALLOCATORS_STACK_HPP
    +
    An allocator which operates on a pre-allocated buffer of variable size.
    Definition linear.hpp:17
    +
    An allocator which has its own fixed-size buffer on the stack from which memory is sub-allocated.
    Definition stack.hpp:16
    +
    Definition types.hpp:73
    +
    + + + + diff --git a/stack_8inl_source.html b/stack_8inl_source.html new file mode 100644 index 0000000000..86b9896bec --- /dev/null +++ b/stack_8inl_source.html @@ -0,0 +1,116 @@ + + + + + + + +Topaz: src/tz/core/memory/allocators/stack.inl Source File + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    Topaz 4.1.0.1 +
    +
    C++20 Graphics Engine
    +
    +
    + + + + + + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + + +
    +
    +
    stack.inl
    +
    +
    +
    1
    +
    2namespace tz
    +
    3{
    +
    4 template<std::size_t S>
    +
    5 stack_allocator<S>::stack_allocator():
    +
    6 linear_allocator(tz::memblk{.ptr = this->data, .size = S}){}
    +
    7}
    +
    + + + + diff --git a/state_8hpp_source.html b/state_8hpp_source.html new file mode 100644 index 0000000000..3bc3378a98 --- /dev/null +++ b/state_8hpp_source.html @@ -0,0 +1,221 @@ + + + + + + + +Topaz: src/tz/lua/state.hpp Source File + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    Topaz 4.1.0.1 +
    +
    C++20 Graphics Engine
    +
    +
    + + + + + + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + + +
    +
    +
    state.hpp
    +
    +
    +
    1#ifndef TZ_LUA_STATE_HPP
    +
    2#define TZ_LUA_STATE_HPP
    +
    3#include "tz/core/data/handle.hpp"
    +
    4#include "tz/core/memory/memblk.hpp"
    +
    5#include <string>
    +
    6#include <cstdint>
    +
    7#include <type_traits>
    +
    8#include <functional>
    +
    9#include <optional>
    +
    10#include <thread>
    +
    11
    +
    12namespace tz::lua
    +
    13{
    +
    +
    18 class state
    +
    19 {
    +
    20 public:
    +
    21 state() = default;
    +
    22 state(void* lstate);
    +
    27 bool valid() const;
    +
    34 bool execute_file(const char* path, bool assert_on_failure = true) const;
    +
    41 bool execute(const char* lua_src, bool assert_on_failure = true) const;
    +
    42
    +
    43 // assigning variables
    +
    44 bool assign_nil(const char* varname) const;
    +
    45 bool assign_emptytable(const char* varname) const;
    +
    46 bool assign_bool(const char* varname, bool b) const;
    +
    47 bool assign_float(const char* varname, float f) const;
    +
    48 bool assign_double(const char* varname, double d) const;
    +
    49 bool assign_int(const char* varname, std::int64_t i) const;
    +
    50 bool assign_uint(const char* varname, std::uint64_t u) const;
    +
    51 bool assign_func(const char* varname, auto anon_ptr) const
    +
    52 {
    +
    53 using T = std::decay_t<decltype(anon_ptr)>;
    +
    54 if constexpr(std::is_pointer_v<T>)
    +
    55 {
    +
    56 return this->assign_func(varname, reinterpret_cast<void*>(anon_ptr));
    +
    57 }
    +
    58 return false;
    +
    59 }
    +
    60 bool assign_func(const char* varname, void* func_ptr) const;
    +
    61 bool assign_string(const char* varname, std::string str) const;
    +
    62 // retrieving variable values
    +
    63 std::optional<bool> get_bool(const char* varname) const;
    +
    64 std::optional<float> get_float(const char* varname) const;
    +
    65 std::optional<double> get_double(const char* varname) const;
    +
    66 std::optional<std::int64_t> get_int(const char* varname) const;
    +
    67 std::optional<std::uint64_t> get_uint(const char* varname) const;
    +
    68 // stack operations
    +
    69 std::size_t stack_size() const;
    +
    70 void stack_pop(std::size_t count = 1);
    +
    71 // read a value off of the stack
    +
    72 bool stack_get_bool(std::size_t idx, bool type_check = true) const;
    +
    73 double stack_get_double(std::size_t idx, bool type_check = true) const;
    +
    74 float stack_get_float(std::size_t idx, bool type_check = true) const;
    +
    75 std::int64_t stack_get_int(std::size_t idx, bool type_check = true) const;
    +
    76 std::uint64_t stack_get_uint(std::size_t idx, bool type_check = true) const;
    +
    77 std::string stack_get_string(std::size_t idx, bool type_check = true) const;
    +
    78 void* stack_get_ptr(std::size_t idx, bool type_check = true) const;
    +
    79 template<typename T>
    +
    80 T& stack_get_userdata(std::size_t idx, bool type_check = true) const
    +
    81 {
    +
    82 return *reinterpret_cast<T*>(this->stack_get_ptr(idx, type_check));
    +
    83 }
    +
    84 // push a new value onto the stack
    +
    85 void stack_push_bool(bool b) const;
    +
    86 void stack_push_double(double d) const;
    +
    87 void stack_push_float(float f) const;
    +
    88 void stack_push_int(std::int64_t i) const;
    +
    89 void stack_push_uint(std::uint64_t u) const;
    +
    90 void stack_push_string(std::string_view sv) const;
    +
    91 // light user data
    +
    92 void stack_push_ptr(void* ptr) const;
    +
    93 template<typename T>
    +
    94 void stack_push_ref(T& t) const
    +
    95 {
    +
    96 stack_push_ptr(&t);
    +
    97 }
    +
    98 template<typename T>
    +
    99 void stack_push_userdata(const T& t)
    +
    100 {
    +
    101 constexpr std::size_t sz = sizeof(T);
    +
    102 auto blk = lua_userdata_stack_push(sz);
    +
    103 new (blk.ptr) T{t};
    +
    104 }
    +
    105
    +
    106 std::string collect_stack() const;
    +
    107 const std::string& get_last_error() const;
    +
    108 std::thread::id get_owner_thread_id() const;
    +
    109 void* operator()() const;
    +
    110 private:
    +
    111 tz::memblk lua_userdata_stack_push(std::size_t byte_count) const;
    +
    112 bool impl_check_stack(std::size_t sz) const;
    +
    113 mutable std::string last_error = "";
    +
    114 void* lstate = nullptr;
    +
    115 std::thread::id owner = std::this_thread::get_id();
    +
    116 };
    +
    +
    117
    +
    122 state& get_state();
    +
    123
    +
    124 using state_applicator = std::function<void(state&)>;
    +
    125 void for_all_states(state_applicator fn);
    +
    126}
    +
    127
    +
    128#endif // TZ_LUA_STATE_HPP
    +
    Represents a lua state.
    Definition state.hpp:19
    +
    bool execute_file(const char *path, bool assert_on_failure=true) const
    Attempt to execute a lua source file.
    Definition state.cpp:30
    +
    bool execute(const char *lua_src, bool assert_on_failure=true) const
    Attempt to execute a lua source string.
    Definition state.cpp:43
    +
    bool valid() const
    Query as to whether the state is valid.
    Definition state.cpp:25
    +
    state & get_state()
    Retrieve the main lua tz::lua::state.
    Definition state.cpp:401
    +
    A non-owning, contiguous block of memory.
    Definition memblk.hpp:12
    +
    + + + + diff --git a/static_8hpp_source.html b/static_8hpp_source.html new file mode 100644 index 0000000000..e0222fd92c --- /dev/null +++ b/static_8hpp_source.html @@ -0,0 +1,168 @@ + + + + + + + +Topaz: src/tz/core/algorithms/static.hpp Source File + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    Topaz 4.1.0.1 +
    +
    C++20 Graphics Engine
    +
    +
    + + + + + + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + + +
    +
    +
    static.hpp
    +
    +
    +
    1#include "tz/core/types.hpp"
    +
    2#include <cstdint>
    +
    3#include <tuple>
    +
    4#include <variant>
    +
    5
    +
    6namespace tz
    +
    7{
    +
    8 template<int F, int L>
    +
    + +
    10 {
    +
    11 template<typename Functor>
    +
    12 static inline constexpr void apply(const Functor& f)
    +
    13 {
    +
    14 if(F < L)
    +
    15 {
    +
    16 f(std::integral_constant<int, F>{});
    + +
    18 }
    +
    19 }
    +
    20
    +
    21 template<typename Functor>
    +
    22 void operator()(const Functor& f) const
    +
    23 {
    +
    24 apply(f);
    +
    25 }
    +
    26 };
    +
    +
    27
    +
    41 template<int N>
    +
    +
    42 struct static_for_t<N, N>
    +
    43 {
    +
    44 template<typename Functor>
    +
    45 static inline constexpr void apply([[maybe_unused]] const Functor& f){}
    +
    46 };
    +
    +
    47
    +
    48 template<int F, int L>
    +
    49 inline constexpr static_for_t<F, L> static_for = {};
    +
    50
    +
    58 template<typename needle, typename... haystack>
    +
    +
    59 constexpr bool static_find()
    +
    60 {
    +
    61 bool b = false;
    +
    62 static_for<0, sizeof...(haystack)>([&b]([[maybe_unused]] auto i) constexpr
    +
    63 {
    +
    64 if constexpr(std::is_same<std::decay_t<decltype(std::get<i.value>(std::declval<std::tuple<haystack...>>()))>, needle>::value)
    +
    65 {
    +
    66 b = true;
    +
    67 }
    +
    68 });
    +
    69 return b;
    +
    70 }
    +
    +
    71}
    +
    constexpr bool static_find()
    Check if a needle is found in a haystack at compile-time.
    Definition static.hpp:59
    +
    Definition static.hpp:10
    +
    + + + + diff --git a/struct_im_gui_vertex.html b/struct_im_gui_vertex.html new file mode 100644 index 0000000000..6924314a30 --- /dev/null +++ b/struct_im_gui_vertex.html @@ -0,0 +1,100 @@ + + + + + + + +Topaz: ImGuiVertex Struct Reference + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    Topaz 4.1.0.1 +
    +
    C++20 Graphics Engine
    +
    +
    + + + + + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    +
    ImGuiVertex Struct Reference
    +
    +
    +
    + + + + diff --git a/structmesh__locator.html b/structmesh__locator.html new file mode 100644 index 0000000000..93fb1f7e65 --- /dev/null +++ b/structmesh__locator.html @@ -0,0 +1,100 @@ + + + + + + + +Topaz: mesh_locator Struct Reference + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    Topaz 4.1.0.1 +
    +
    C++20 Graphics Engine
    +
    +
    + + + + + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    +
    mesh_locator Struct Reference
    +
    +
    +
    + + + + diff --git a/structobject__t.html b/structobject__t.html new file mode 100644 index 0000000000..620dfdc256 --- /dev/null +++ b/structobject__t.html @@ -0,0 +1,100 @@ + + + + + + + +Topaz: object_t Struct Reference + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    Topaz 4.1.0.1 +
    +
    C++20 Graphics Engine
    +
    +
    + + + + + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    +
    object_t Struct Reference
    +
    +
    +
    + + + + diff --git a/structstd_1_1hash_3_01tz_1_1quat_01_4.html b/structstd_1_1hash_3_01tz_1_1quat_01_4.html new file mode 100644 index 0000000000..e9406119cd --- /dev/null +++ b/structstd_1_1hash_3_01tz_1_1quat_01_4.html @@ -0,0 +1,110 @@ + + + + + + + +Topaz: std::hash< tz::quat > Struct Reference + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    Topaz 4.1.0.1 +
    +
    C++20 Graphics Engine
    +
    +
    + + + + + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + + +
    +
    +
    std::hash< tz::quat > Struct Reference
    +
    +
    +
    +Inheritance diagram for std::hash< tz::quat >:
    +
    +
    + +
    +
    + + + + diff --git a/structstd_1_1hash_3_01tz_1_1quat_01_4.png b/structstd_1_1hash_3_01tz_1_1quat_01_4.png new file mode 100644 index 0000000000..ec16363688 Binary files /dev/null and b/structstd_1_1hash_3_01tz_1_1quat_01_4.png differ diff --git a/structstd_1_1hash_3_01tz_1_1trs_01_4.html b/structstd_1_1hash_3_01tz_1_1trs_01_4.html new file mode 100644 index 0000000000..d52cac08a7 --- /dev/null +++ b/structstd_1_1hash_3_01tz_1_1trs_01_4.html @@ -0,0 +1,104 @@ + + + + + + + +Topaz: std::hash< tz::trs > Struct Reference + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    Topaz 4.1.0.1 +
    +
    C++20 Graphics Engine
    +
    +
    + + + + + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + + +
    +
    +
    std::hash< tz::trs > Struct Reference
    +
    +
    +
    + + + + diff --git a/structtexture__locator.html b/structtexture__locator.html new file mode 100644 index 0000000000..8f5ad3da4b --- /dev/null +++ b/structtexture__locator.html @@ -0,0 +1,100 @@ + + + + + + + +Topaz: texture_locator Struct Reference + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    Topaz 4.1.0.1 +
    +
    C++20 Graphics Engine
    +
    +
    + + + + + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    +
    texture_locator Struct Reference
    +
    +
    +
    + + + + diff --git a/structtz_1_1core_1_1detail_1_1init__state.html b/structtz_1_1core_1_1detail_1_1init__state.html new file mode 100644 index 0000000000..da67e24bd7 --- /dev/null +++ b/structtz_1_1core_1_1detail_1_1init__state.html @@ -0,0 +1,104 @@ + + + + + + + +Topaz: tz::core::detail::init_state Struct Reference + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    Topaz 4.1.0.1 +
    +
    C++20 Graphics Engine
    +
    +
    + + + + + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + + +
    +
    +
    tz::core::detail::init_state Struct Reference
    +
    +
    +
    + + + + diff --git a/structtz_1_1dbgui_1_1_im_gui_tab_t_z.html b/structtz_1_1dbgui_1_1_im_gui_tab_t_z.html new file mode 100644 index 0000000000..20ab0ff747 --- /dev/null +++ b/structtz_1_1dbgui_1_1_im_gui_tab_t_z.html @@ -0,0 +1,104 @@ + + + + + + + +Topaz: tz::dbgui::ImGuiTabTZ Struct Reference + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    Topaz 4.1.0.1 +
    +
    C++20 Graphics Engine
    +
    +
    + + + + + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + + +
    +
    +
    tz::dbgui::ImGuiTabTZ Struct Reference
    +
    +
    +
    + + + + diff --git a/structtz_1_1dbgui_1_1_input_delta.html b/structtz_1_1dbgui_1_1_input_delta.html new file mode 100644 index 0000000000..b4cb294287 --- /dev/null +++ b/structtz_1_1dbgui_1_1_input_delta.html @@ -0,0 +1,104 @@ + + + + + + + +Topaz: tz::dbgui::InputDelta Struct Reference + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    Topaz 4.1.0.1 +
    +
    C++20 Graphics Engine
    +
    +
    + + + + + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + + +
    +
    +
    tz::dbgui::InputDelta Struct Reference
    +
    +
    +
    + + + + diff --git a/structtz_1_1dbgui_1_1_topaz_platform_data.html b/structtz_1_1dbgui_1_1_topaz_platform_data.html new file mode 100644 index 0000000000..0bb9c7b112 --- /dev/null +++ b/structtz_1_1dbgui_1_1_topaz_platform_data.html @@ -0,0 +1,104 @@ + + + + + + + +Topaz: tz::dbgui::TopazPlatformData Struct Reference + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    Topaz 4.1.0.1 +
    +
    C++20 Graphics Engine
    +
    +
    + + + + + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + + +
    +
    +
    tz::dbgui::TopazPlatformData Struct Reference
    +
    +
    +
    + + + + diff --git a/structtz_1_1dbgui_1_1_topaz_render_data.html b/structtz_1_1dbgui_1_1_topaz_render_data.html new file mode 100644 index 0000000000..c4aae31cdc --- /dev/null +++ b/structtz_1_1dbgui_1_1_topaz_render_data.html @@ -0,0 +1,104 @@ + + + + + + + +Topaz: tz::dbgui::TopazRenderData Struct Reference + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    Topaz 4.1.0.1 +
    +
    C++20 Graphics Engine
    +
    +
    + + + + + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + + +
    +
    +
    tz::dbgui::TopazRenderData Struct Reference
    +
    +
    +
    + + + + diff --git a/structtz_1_1dbgui_1_1_topaz_shader_render_data.html b/structtz_1_1dbgui_1_1_topaz_shader_render_data.html new file mode 100644 index 0000000000..8b7212e6ee --- /dev/null +++ b/structtz_1_1dbgui_1_1_topaz_shader_render_data.html @@ -0,0 +1,104 @@ + + + + + + + +Topaz: tz::dbgui::TopazShaderRenderData Struct Reference + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    Topaz 4.1.0.1 +
    +
    C++20 Graphics Engine
    +
    +
    + + + + + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + + +
    +
    +
    tz::dbgui::TopazShaderRenderData Struct Reference
    +
    +
    +
    + + + + diff --git a/structtz_1_1dbgui_1_1init__info.html b/structtz_1_1dbgui_1_1init__info.html new file mode 100644 index 0000000000..1e6c61e501 --- /dev/null +++ b/structtz_1_1dbgui_1_1init__info.html @@ -0,0 +1,114 @@ + + + + + + + +Topaz: tz::dbgui::init_info Struct Reference + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    Topaz 4.1.0.1 +
    +
    C++20 Graphics Engine
    +
    +
    + + + + + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + + +
    +
    + +
    tz::dbgui::init_info Struct Reference
    +
    +
    + + + + + +

    +Data Fields

    +tz::game_info game_info
     Information about the running application.
     
    +
    + + + + diff --git a/structtz_1_1detail_1_1callback__type.html b/structtz_1_1detail_1_1callback__type.html new file mode 100644 index 0000000000..26e3609ad9 --- /dev/null +++ b/structtz_1_1detail_1_1callback__type.html @@ -0,0 +1,104 @@ + + + + + + + +Topaz: tz::detail::callback_type Struct Reference + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    Topaz 4.1.0.1 +
    +
    C++20 Graphics Engine
    +
    +
    + + + + + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + + +
    +
    +
    tz::detail::callback_type Struct Reference
    +
    +
    +
    + + + + diff --git a/structtz_1_1detail_1_1format__string.html b/structtz_1_1detail_1_1format__string.html new file mode 100644 index 0000000000..a8afdc650b --- /dev/null +++ b/structtz_1_1detail_1_1format__string.html @@ -0,0 +1,111 @@ + + + + + + + +Topaz: tz::detail::format_string Struct Reference + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    Topaz 4.1.0.1 +
    +
    C++20 Graphics Engine
    +
    +
    + + + + + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + + +
    +
    +
    tz::detail::format_string Struct Reference
    +
    +
    + +

    C-String wrapper with source-location information secretly present. From a user perspective, assume this is merely a const char*. + More...

    + +

    #include <debug.hpp>

    +

    Detailed Description

    +

    C-String wrapper with source-location information secretly present. From a user perspective, assume this is merely a const char*.

    +
    + + + + diff --git a/structtz_1_1detail_1_1job__handle__tag.html b/structtz_1_1detail_1_1job__handle__tag.html new file mode 100644 index 0000000000..9b2f7b5de7 --- /dev/null +++ b/structtz_1_1detail_1_1job__handle__tag.html @@ -0,0 +1,104 @@ + + + + + + + +Topaz: tz::detail::job_handle_tag Struct Reference + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    Topaz 4.1.0.1 +
    +
    C++20 Graphics Engine
    +
    +
    + + + + + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + + +
    +
    +
    tz::detail::job_handle_tag Struct Reference
    +
    +
    +
    + + + + diff --git a/structtz_1_1detail_1_1source__loc.html b/structtz_1_1detail_1_1source__loc.html new file mode 100644 index 0000000000..d8d9bbae05 --- /dev/null +++ b/structtz_1_1detail_1_1source__loc.html @@ -0,0 +1,104 @@ + + + + + + + +Topaz: tz::detail::source_loc Struct Reference + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    Topaz 4.1.0.1 +
    +
    C++20 Graphics Engine
    +
    +
    + + + + + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + + +
    +
    +
    tz::detail::source_loc Struct Reference
    +
    +
    +
    + + + + diff --git a/structtz_1_1draw_1_1_draw_indexed_indirect_command.html b/structtz_1_1draw_1_1_draw_indexed_indirect_command.html new file mode 100644 index 0000000000..6bf5595bd2 --- /dev/null +++ b/structtz_1_1draw_1_1_draw_indexed_indirect_command.html @@ -0,0 +1,104 @@ + + + + + + + +Topaz: tz::draw::DrawIndexedIndirectCommand Struct Reference + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    Topaz 4.1.0.1 +
    +
    C++20 Graphics Engine
    +
    +
    + + + + + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + + +
    +
    +
    tz::draw::DrawIndexedIndirectCommand Struct Reference
    +
    +
    +
    + + + + diff --git a/structtz_1_1draw_1_1_draw_indirect_command.html b/structtz_1_1draw_1_1_draw_indirect_command.html new file mode 100644 index 0000000000..e74eb55bc9 --- /dev/null +++ b/structtz_1_1draw_1_1_draw_indirect_command.html @@ -0,0 +1,104 @@ + + + + + + + +Topaz: tz::draw::DrawIndirectCommand Struct Reference + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    Topaz 4.1.0.1 +
    +
    C++20 Graphics Engine
    +
    +
    + + + + + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + + +
    +
    +
    tz::draw::DrawIndirectCommand Struct Reference
    +
    +
    +
    + + + + diff --git a/structtz_1_1engine__info.html b/structtz_1_1engine__info.html new file mode 100644 index 0000000000..5f41524ddc --- /dev/null +++ b/structtz_1_1engine__info.html @@ -0,0 +1,155 @@ + + + + + + + +Topaz: tz::engine_info Struct Reference + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    Topaz 4.1.0.1 +
    +
    C++20 Graphics Engine
    +
    +
    + + + + + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + + +
    +
    + +
    tz::engine_info Struct Reference
    +
    +
    + +

    Represents information about the current engine used. + More...

    + +

    #include <engine_info.hpp>

    + + + + + +

    +Public Member Functions

    std::string to_string () const
     Retrieve a string describing the engine.
     
    + + + + + +

    +Related Symbols

    (Note that these are not member symbols.)

    +
    engine_info info ()
     Retrieves the engine_info for this specific build of Topaz.
     
    +

    Detailed Description

    +

    Represents information about the current engine used.

    +
    Note
    This struct is within the Initial Group.
    +

    Member Function Documentation

    + +

    ◆ to_string()

    + +
    +
    + + + + + + + +
    std::string tz::engine_info::to_string () const
    +
    + +

    Retrieve a string describing the engine.

    +
      +
    • RENDERAPI is either "Vulkan" or "OpenGL" depending on CMake configuration.
    • +
    • BUILDCONFIG is either "Debug" or "Release" depending on CMake configuration.
      Returns
      'Topaz vX.Y.Z RENDERAPI BUILDCONFIG'
      +
    • +
    + +
    +
    +
    + + + + diff --git a/structtz_1_1execution__info.html b/structtz_1_1execution__info.html new file mode 100644 index 0000000000..2bf9b5303c --- /dev/null +++ b/structtz_1_1execution__info.html @@ -0,0 +1,139 @@ + + + + + + + +Topaz: tz::execution_info Struct Reference + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    Topaz 4.1.0.1 +
    +
    C++20 Graphics Engine
    +
    +
    + + + + + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + + +
    +
    + +
    tz::execution_info Struct Reference
    +
    +
    + +

    Additional optional data about how a job is to be executed. + More...

    + +

    #include <job.hpp>

    + + + + + +

    +Data Fields

    std::optional< worker_id_t > maybe_worker_affinity = std::nullopt
     Assign an affinity to the job execution, meaning that only the worker with the thread id matching the value will work on it.
     
    +

    Detailed Description

    +

    Additional optional data about how a job is to be executed.

    +

    You most likely don't want to change anything, unless you really know what you're doing.

    +

    Field Documentation

    + +

    ◆ maybe_worker_affinity

    + +
    +
    + + + + +
    std::optional<worker_id_t> tz::execution_info::maybe_worker_affinity = std::nullopt
    +
    + +

    Assign an affinity to the job execution, meaning that only the worker with the thread id matching the value will work on it.

    +
    Note
    This drastically increases contention and thus hurts performance, don't do this unless absolutely necessary.
    + +
    +
    +
    + + + + diff --git a/structtz_1_1game__info.html b/structtz_1_1game__info.html new file mode 100644 index 0000000000..0d7878d05e --- /dev/null +++ b/structtz_1_1game__info.html @@ -0,0 +1,153 @@ + + + + + + + +Topaz: tz::game_info Struct Reference + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    Topaz 4.1.0.1 +
    +
    C++20 Graphics Engine
    +
    +
    + + + + + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + + +
    +
    + +
    tz::game_info Struct Reference
    +
    +
    + +

    Contains basic information about the target game/application. + More...

    + +

    #include <game_info.hpp>

    + + + + + +

    +Public Member Functions

    std::string to_string () const
     Retrieve a string describing the game_info.
     
    +

    Detailed Description

    +

    Contains basic information about the target game/application.

    +
    Note
    This struct is within the Initial Group.
    +

    Member Function Documentation

    + +

    ◆ to_string()

    + +
    +
    + + + + + +
    + + + + + + + +
    std::string tz::game_info::to_string () const
    +
    +inline
    +
    + +

    Retrieve a string describing the game_info.

    + + +
    +
    +
    + + + + diff --git a/structtz_1_1gl_1_1buffer__info.html b/structtz_1_1gl_1_1buffer__info.html new file mode 100644 index 0000000000..627aecc38e --- /dev/null +++ b/structtz_1_1gl_1_1buffer__info.html @@ -0,0 +1,104 @@ + + + + + + + +Topaz: tz::gl::buffer_info Struct Reference + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    Topaz 4.1.0.1 +
    +
    C++20 Graphics Engine
    +
    +
    + + + + + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + + +
    +
    +
    tz::gl::buffer_info Struct Reference
    +
    +
    +
    + + + + diff --git a/structtz_1_1gl_1_1detail_1_1renderer__tag.html b/structtz_1_1gl_1_1detail_1_1renderer__tag.html new file mode 100644 index 0000000000..f51577c503 --- /dev/null +++ b/structtz_1_1gl_1_1detail_1_1renderer__tag.html @@ -0,0 +1,104 @@ + + + + + + + +Topaz: tz::gl::detail::renderer_tag Struct Reference + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    Topaz 4.1.0.1 +
    +
    C++20 Graphics Engine
    +
    +
    + + + + + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + + +
    +
    +
    tz::gl::detail::renderer_tag Struct Reference
    +
    +
    +
    + + + + diff --git a/structtz_1_1gl_1_1device__command__pool_1_1fingerprint__info__t.html b/structtz_1_1gl_1_1device__command__pool_1_1fingerprint__info__t.html new file mode 100644 index 0000000000..e7d8eb6bdc --- /dev/null +++ b/structtz_1_1gl_1_1device__command__pool_1_1fingerprint__info__t.html @@ -0,0 +1,104 @@ + + + + + + + +Topaz: tz::gl::device_command_pool::fingerprint_info_t Struct Reference + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    Topaz 4.1.0.1 +
    +
    C++20 Graphics Engine
    +
    +
    + + + + + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + + +
    +
    +
    tz::gl::device_command_pool::fingerprint_info_t Struct Reference
    +
    +
    +
    + + + + diff --git a/structtz_1_1gl_1_1edit__side__effects.html b/structtz_1_1gl_1_1edit__side__effects.html new file mode 100644 index 0000000000..2207fd764c --- /dev/null +++ b/structtz_1_1gl_1_1edit__side__effects.html @@ -0,0 +1,104 @@ + + + + + + + +Topaz: tz::gl::edit_side_effects Struct Reference + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    Topaz 4.1.0.1 +
    +
    C++20 Graphics Engine
    +
    +
    + + + + + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + + +
    +
    +
    tz::gl::edit_side_effects Struct Reference
    +
    +
    +
    + + + + diff --git a/structtz_1_1gl_1_1event.html b/structtz_1_1gl_1_1event.html new file mode 100644 index 0000000000..c7a1718bfe --- /dev/null +++ b/structtz_1_1gl_1_1event.html @@ -0,0 +1,104 @@ + + + + + + + +Topaz: tz::gl::event Struct Reference + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    Topaz 4.1.0.1 +
    +
    C++20 Graphics Engine
    +
    +
    + + + + + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + + +
    +
    +
    tz::gl::event Struct Reference
    +
    +
    +
    + + + + diff --git a/structtz_1_1gl_1_1image__info.html b/structtz_1_1gl_1_1image__info.html new file mode 100644 index 0000000000..fcbb2b924c --- /dev/null +++ b/structtz_1_1gl_1_1image__info.html @@ -0,0 +1,133 @@ + + + + + + + +Topaz: tz::gl::image_info Struct Reference + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    Topaz 4.1.0.1 +
    +
    C++20 Graphics Engine
    +
    +
    + + + + + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + + +
    +
    + +
    tz::gl::image_info Struct Reference
    +
    +
    + +

    Represents creation flags for an image. + More...

    + +

    #include <resource.hpp>

    + + + + + + + + + + + + + + +

    +Data Fields

    +image_format format
     Image format.
     
    +tz::vec2ui dimensions
     Image dimensions, in pixels.
     
    +resource_access access = resource_access::static_access
     Access specifier. By default this is static fixed.
     
    +resource_flags flags = {}
     Flags specifying any special usages for the image. By default there are no flags.
     
    +

    Detailed Description

    +

    Represents creation flags for an image.

    +
    + + + + diff --git a/structtz_1_1gl_1_1image__output__info.html b/structtz_1_1gl_1_1image__output__info.html new file mode 100644 index 0000000000..6ff1c606a2 --- /dev/null +++ b/structtz_1_1gl_1_1image__output__info.html @@ -0,0 +1,104 @@ + + + + + + + +Topaz: tz::gl::image_output_info Struct Reference + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    Topaz 4.1.0.1 +
    +
    C++20 Graphics Engine
    +
    +
    + + + + + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + + +
    +
    +
    tz::gl::image_output_info Struct Reference
    +
    +
    +
    + + + + diff --git a/structtz_1_1gl_1_1ogl2_1_1_format_data.html b/structtz_1_1gl_1_1ogl2_1_1_format_data.html new file mode 100644 index 0000000000..569dfe5a2f --- /dev/null +++ b/structtz_1_1gl_1_1ogl2_1_1_format_data.html @@ -0,0 +1,112 @@ + + + + + + + +Topaz: tz::gl::ogl2::FormatData Struct Reference + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    Topaz 4.1.0.1 +
    +
    C++20 Graphics Engine
    +
    +
    + + + + + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + + +
    +
    + +
    +
    + +

    OpenGL formats are pretty finnicky, especially when using them to initialise texture data-stores. + More...

    + +

    #include <image_format.hpp>

    +

    Detailed Description

    +

    OpenGL formats are pretty finnicky, especially when using them to initialise texture data-stores.

    +

    For this reason this helper struct exists which should encapsulate equivalent state which we will want to use in the frontend.

    +
    + + + + diff --git a/structtz_1_1gl_1_1ogl2_1_1buffer__info.html b/structtz_1_1gl_1_1ogl2_1_1buffer__info.html new file mode 100644 index 0000000000..1bb2cab11f --- /dev/null +++ b/structtz_1_1gl_1_1ogl2_1_1buffer__info.html @@ -0,0 +1,129 @@ + + + + + + + +Topaz: tz::gl::ogl2::buffer_info Struct Reference + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    Topaz 4.1.0.1 +
    +
    C++20 Graphics Engine
    +
    +
    + + + + + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + + +
    +
    + +
    tz::gl::ogl2::buffer_info Struct Reference
    +
    +
    + +

    Specifies creation flags for a buffer. + More...

    + +

    #include <buffer.hpp>

    + + + + + + + + + + + +

    +Data Fields

    +buffer_target target
     Specifies the target to which the buffer is bound. Only one buffer can be bound to a target at a time.
     
    +buffer_residency residency
     Describes the usage and behaviour of the buffer's data store.
     
    +std::size_t size_bytes
     Specifies the size of the buffer, in bytes. buffers cannot be resized.
     
    +

    Detailed Description

    +

    Specifies creation flags for a buffer.

    +
    + + + + diff --git a/structtz_1_1gl_1_1ogl2_1_1draw__indexed__indirect__command.html b/structtz_1_1gl_1_1ogl2_1_1draw__indexed__indirect__command.html new file mode 100644 index 0000000000..a595b80c70 --- /dev/null +++ b/structtz_1_1gl_1_1ogl2_1_1draw__indexed__indirect__command.html @@ -0,0 +1,104 @@ + + + + + + + +Topaz: tz::gl::ogl2::draw_indexed_indirect_command Struct Reference + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    Topaz 4.1.0.1 +
    +
    C++20 Graphics Engine
    +
    +
    + + + + + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + + +
    +
    +
    tz::gl::ogl2::draw_indexed_indirect_command Struct Reference
    +
    +
    +
    + + + + diff --git a/structtz_1_1gl_1_1ogl2_1_1draw__indirect__command.html b/structtz_1_1gl_1_1ogl2_1_1draw__indirect__command.html new file mode 100644 index 0000000000..21245c7f48 --- /dev/null +++ b/structtz_1_1gl_1_1ogl2_1_1draw__indirect__command.html @@ -0,0 +1,104 @@ + + + + + + + +Topaz: tz::gl::ogl2::draw_indirect_command Struct Reference + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    Topaz 4.1.0.1 +
    +
    C++20 Graphics Engine
    +
    +
    + + + + + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + + +
    +
    +
    tz::gl::ogl2::draw_indirect_command Struct Reference
    +
    +
    +
    + + + + diff --git a/structtz_1_1gl_1_1ogl2_1_1framebuffer__info.html b/structtz_1_1gl_1_1ogl2_1_1framebuffer__info.html new file mode 100644 index 0000000000..7ce840d8b1 --- /dev/null +++ b/structtz_1_1gl_1_1ogl2_1_1framebuffer__info.html @@ -0,0 +1,129 @@ + + + + + + + +Topaz: tz::gl::ogl2::framebuffer_info Struct Reference + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    Topaz 4.1.0.1 +
    +
    C++20 Graphics Engine
    +
    +
    + + + + + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + + +
    +
    + +
    tz::gl::ogl2::framebuffer_info Struct Reference
    +
    +
    + +

    Specifies creation flags for a framebuffer. + More...

    + +

    #include <framebuffer.hpp>

    + + + + + + + + + + + +

    +Data Fields

    +tz::vec2ui dimensions
     {width, height}, in pixels.
     
    +std::optional< framebuffer_texturemaybe_depth_attachment = std::nullopt
     Depth attachment, if one exists. Default nullopt.
     
    +tz::basic_list< framebuffer_texturecolour_attachments = {}
     List of colour attachments in-order. Default empty.
     
    +

    Detailed Description

    +

    Specifies creation flags for a framebuffer.

    +
    + + + + diff --git a/structtz_1_1gl_1_1ogl2_1_1image__info.html b/structtz_1_1gl_1_1ogl2_1_1image__info.html new file mode 100644 index 0000000000..f765955b25 --- /dev/null +++ b/structtz_1_1gl_1_1ogl2_1_1image__info.html @@ -0,0 +1,129 @@ + + + + + + + +Topaz: tz::gl::ogl2::image_info Struct Reference + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    Topaz 4.1.0.1 +
    +
    C++20 Graphics Engine
    +
    +
    + + + + + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + + +
    + +
    + +

    Specifies creation flags for a image. + More...

    + +

    #include <image.hpp>

    + + + + + + + + + + + +

    +Data Fields

    +image_format format
     Format of the image data.
     
    +tz::vec2ui dimensions
     {Width, Height} of the image, in pixels.
     
    +sampler shader_sampler
     Specifies how the image should be sampled in a shader.
     
    +

    Detailed Description

    +

    Specifies creation flags for a image.

    +
    + + + + diff --git a/structtz_1_1gl_1_1ogl2_1_1render__buffer__info.html b/structtz_1_1gl_1_1ogl2_1_1render__buffer__info.html new file mode 100644 index 0000000000..3b045d753f --- /dev/null +++ b/structtz_1_1gl_1_1ogl2_1_1render__buffer__info.html @@ -0,0 +1,118 @@ + + + + + + + +Topaz: tz::gl::ogl2::render_buffer_info Struct Reference + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    Topaz 4.1.0.1 +
    +
    C++20 Graphics Engine
    +
    +
    + + + + + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + + +
    +
    + +
    tz::gl::ogl2::render_buffer_info Struct Reference
    +
    +
    + + + + + + + + +

    +Data Fields

    +image_format format
     Format of the image data.
     
    +tz::vec2ui dimensions
     {Width, Height} of the image, in pixels.
     
    +
    + + + + diff --git a/structtz_1_1gl_1_1ogl2_1_1sampler.html b/structtz_1_1gl_1_1ogl2_1_1sampler.html new file mode 100644 index 0000000000..5c4d48c474 --- /dev/null +++ b/structtz_1_1gl_1_1ogl2_1_1sampler.html @@ -0,0 +1,137 @@ + + + + + + + +Topaz: tz::gl::ogl2::sampler Struct Reference + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    Topaz 4.1.0.1 +
    +
    C++20 Graphics Engine
    +
    +
    + + + + + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + + +
    + +
    + +

    Describes various details about texture lookups from a sampled image. + More...

    + +

    #include <sampler.hpp>

    + + + + + + + + + + + + + + + + + +

    +Data Fields

    +lookup_filter min_filter
     Filter used when texels are larger than screen pixels.
     
    +lookup_filter mag_filter
     Filter used when texels are smaller than screen pixels.
     
    +address_mode address_mode_s
     Addressing mode used when out of range on the s (x) axis.
     
    +address_mode address_mode_t
     Addressing mode used when out of range on the t (y) axis.
     
    +address_mode address_mode_r
     Addressing mode used when out of range on the r (z) axis. When not in the dark ages this would be named 'p', such as in OGL GLSL.
     
    +

    Detailed Description

    +

    Describes various details about texture lookups from a sampled image.

    +
    + + + + diff --git a/structtz_1_1gl_1_1ogl2_1_1shader_1_1link__result.html b/structtz_1_1gl_1_1ogl2_1_1shader_1_1link__result.html new file mode 100644 index 0000000000..93930b5273 --- /dev/null +++ b/structtz_1_1gl_1_1ogl2_1_1shader_1_1link__result.html @@ -0,0 +1,125 @@ + + + + + + + +Topaz: tz::gl::ogl2::shader::link_result Struct Reference + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    Topaz 4.1.0.1 +
    +
    C++20 Graphics Engine
    +
    +
    + + + + + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + + +
    +
    + +
    tz::gl::ogl2::shader::link_result Struct Reference
    +
    +
    + +

    State of a shader module compilation attempt. + More...

    + +

    #include <shader.hpp>

    + + + + + + + + +

    +Data Fields

    +bool success
     True if linkage + validation were successful, otherwise false.
     
    +ogl_string info_log
     String containing information about compilation. If compilation was successful, this is guaranteed to be the empty string.
     
    +

    Detailed Description

    +

    State of a shader module compilation attempt.

    +
    + + + + diff --git a/structtz_1_1gl_1_1ogl2_1_1shader__info.html b/structtz_1_1gl_1_1ogl2_1_1shader__info.html new file mode 100644 index 0000000000..90df8106bf --- /dev/null +++ b/structtz_1_1gl_1_1ogl2_1_1shader__info.html @@ -0,0 +1,121 @@ + + + + + + + +Topaz: tz::gl::ogl2::shader_info Struct Reference + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    Topaz 4.1.0.1 +
    +
    C++20 Graphics Engine
    +
    +
    + + + + + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + + +
    +
    + +
    tz::gl::ogl2::shader_info Struct Reference
    +
    +
    + +

    Specifies creation flags for a Shader. + More...

    + +

    #include <shader.hpp>

    + + + + + +

    +Data Fields

    +tz::basic_list< shader_module_infomodules
     List of all modules.
     
    +

    Detailed Description

    +

    Specifies creation flags for a Shader.

    +
    + + + + diff --git a/structtz_1_1gl_1_1ogl2_1_1shader__module_1_1compile__result.html b/structtz_1_1gl_1_1ogl2_1_1shader__module_1_1compile__result.html new file mode 100644 index 0000000000..2b835901ea --- /dev/null +++ b/structtz_1_1gl_1_1ogl2_1_1shader__module_1_1compile__result.html @@ -0,0 +1,125 @@ + + + + + + + +Topaz: tz::gl::ogl2::shader_module::compile_result Struct Reference + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    Topaz 4.1.0.1 +
    +
    C++20 Graphics Engine
    +
    +
    + + + + + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + + +
    +
    + +
    tz::gl::ogl2::shader_module::compile_result Struct Reference
    +
    +
    + +

    State of a shader module compilation attempt. + More...

    + +

    #include <shader.hpp>

    + + + + + + + + +

    +Data Fields

    +bool success
     True if compilation was successful, otherwise false.
     
    +ogl_string info_log
     String containing information about compilation. If compilation was successful, this is guaranteed to be the empty string.
     
    +

    Detailed Description

    +

    State of a shader module compilation attempt.

    +
    + + + + diff --git a/structtz_1_1gl_1_1ogl2_1_1shader__module__info.html b/structtz_1_1gl_1_1ogl2_1_1shader__module__info.html new file mode 100644 index 0000000000..266df3ba17 --- /dev/null +++ b/structtz_1_1gl_1_1ogl2_1_1shader__module__info.html @@ -0,0 +1,125 @@ + + + + + + + +Topaz: tz::gl::ogl2::shader_module_info Struct Reference + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    Topaz 4.1.0.1 +
    +
    C++20 Graphics Engine
    +
    +
    + + + + + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + + +
    +
    + +
    tz::gl::ogl2::shader_module_info Struct Reference
    +
    +
    + +

    Specifies creation flags for a shader_module. + More...

    + +

    #include <shader.hpp>

    + + + + + + + + +

    +Data Fields

    +shader_type type
     Type of this shader module.
     
    +ogl_string code
     GLSL source code.
     
    +

    Detailed Description

    +

    Specifies creation flags for a shader_module.

    +
    + + + + diff --git a/structtz_1_1gl_1_1overloaded.html b/structtz_1_1gl_1_1overloaded.html new file mode 100644 index 0000000000..88152345a5 --- /dev/null +++ b/structtz_1_1gl_1_1overloaded.html @@ -0,0 +1,110 @@ + + + + + + + +Topaz: tz::gl::overloaded< Ts > Struct Template Reference + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    Topaz 4.1.0.1 +
    +
    C++20 Graphics Engine
    +
    +
    + + + + + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + + +
    +
    +
    tz::gl::overloaded< Ts > Struct Template Reference
    +
    +
    +
    +Inheritance diagram for tz::gl::overloaded< Ts >:
    +
    +
    + +
    +
    + + + + diff --git a/structtz_1_1gl_1_1overloaded.png b/structtz_1_1gl_1_1overloaded.png new file mode 100644 index 0000000000..08354e987e Binary files /dev/null and b/structtz_1_1gl_1_1overloaded.png differ diff --git a/structtz_1_1gl_1_1render__state.html b/structtz_1_1gl_1_1render__state.html new file mode 100644 index 0000000000..e5e3b04972 --- /dev/null +++ b/structtz_1_1gl_1_1render__state.html @@ -0,0 +1,133 @@ + + + + + + + +Topaz: tz::gl::render_state Struct Reference + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    Topaz 4.1.0.1 +
    +
    C++20 Graphics Engine
    +
    +
    + + + + + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + + +
    +
    + +
    tz::gl::render_state Struct Reference
    +
    +
    + +

    Stores renderer-specific state, which drives the behaviour of the rendering. + More...

    + +

    #include <renderer.hpp>

    + + + + + + +

    +Data Structures

    struct  Compute
     
    struct  Graphics
     
    + + + + + + + +

    +Data Fields

    +Graphics graphics
     Graphics state.
     
    +Compute compute
     Compute state.
     
    +

    Detailed Description

    +

    Stores renderer-specific state, which drives the behaviour of the rendering.

    +
    + + + + diff --git a/structtz_1_1gl_1_1render__state_1_1_compute.html b/structtz_1_1gl_1_1render__state_1_1_compute.html new file mode 100644 index 0000000000..df1b0f2994 --- /dev/null +++ b/structtz_1_1gl_1_1render__state_1_1_compute.html @@ -0,0 +1,114 @@ + + + + + + + +Topaz: tz::gl::render_state::Compute Struct Reference + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    Topaz 4.1.0.1 +
    +
    C++20 Graphics Engine
    +
    +
    + + + + + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + + +
    +
    + +
    tz::gl::render_state::Compute Struct Reference
    +
    +
    + + + + + +

    +Data Fields

    +tz::vec3ui kernel = {1u, 1u, 1u}
     Represents the compute kernel, which contains the number of workgroups to be launched in the X, Y and Z dimensions.
     
    +
    + + + + diff --git a/structtz_1_1gl_1_1render__state_1_1_graphics.html b/structtz_1_1gl_1_1render__state_1_1_graphics.html new file mode 100644 index 0000000000..46f1866acb --- /dev/null +++ b/structtz_1_1gl_1_1render__state_1_1_graphics.html @@ -0,0 +1,130 @@ + + + + + + + +Topaz: tz::gl::render_state::Graphics Struct Reference + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    Topaz 4.1.0.1 +
    +
    C++20 Graphics Engine
    +
    +
    + + + + + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + + +
    +
    + +
    tz::gl::render_state::Graphics Struct Reference
    +
    +
    + + + + + + + + + + + + + + + + + +

    +Data Fields

    +resource_handle index_buffer = tz::nullhand
     If an index buffer is used, this refers to the buffer resource. It must have resource_flag::index_buffer. If there is no index buffer, this is nullhand.
     
    +resource_handle draw_buffer = tz::nullhand
     If a draw-indirect buffer is used, this refers to the buffer resource. It must have resource_flag::draw_indirect_buffer. If there is no draw buffer, this is nullhand.
     
    +tz::vec4 clear_colour = tz::vec4::zero()
     Normalised RGBA floating point colour.
     
    +std::size_t tri_count = 0
     number of triangles to be rendered in the next draw call. note@ if a draw_buffer has been specified, this is ignored.
     
    +bool wireframe_mode = false
     whether wireframe mode is enabled or not.
     
    +
    + + + + diff --git a/structtz_1_1gl_1_1renderer__edit.html b/structtz_1_1gl_1_1renderer__edit.html new file mode 100644 index 0000000000..5de1448cdf --- /dev/null +++ b/structtz_1_1gl_1_1renderer__edit.html @@ -0,0 +1,130 @@ + + + + + + + +Topaz: tz::gl::renderer_edit Struct Reference + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    Topaz 4.1.0.1 +
    +
    C++20 Graphics Engine
    +
    +
    + + + + + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + + +
    +
    + +
    tz::gl::renderer_edit Struct Reference
    +
    +
    + + + + + + + + + + + + + + + + + + + + + + +

    +Data Structures

    struct  buffer_resize
     Represents a resize operation for an existing buffer component. More...
     
    struct  compute_config
     Represents an edit, setting a new value for the compute kernel for a renderer. More...
     
    struct  image_resize
     Represents a resize operation for an existing image component. More...
     
    struct  mark_dirty
     
    struct  render_config
     Represents an edit to the fixed-function renderer state. More...
     
    struct  resource_reference
     
    struct  resource_write
     
    struct  scissor
     
    +
    + + + + diff --git a/structtz_1_1gl_1_1renderer__edit_1_1buffer__resize.html b/structtz_1_1gl_1_1renderer__edit_1_1buffer__resize.html new file mode 100644 index 0000000000..47625e6309 --- /dev/null +++ b/structtz_1_1gl_1_1renderer__edit_1_1buffer__resize.html @@ -0,0 +1,125 @@ + + + + + + + +Topaz: tz::gl::renderer_edit::buffer_resize Struct Reference + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    Topaz 4.1.0.1 +
    +
    C++20 Graphics Engine
    +
    +
    + + + + + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + + +
    +
    + +
    tz::gl::renderer_edit::buffer_resize Struct Reference
    +
    +
    + +

    Represents a resize operation for an existing buffer component. + More...

    + +

    #include <renderer.hpp>

    + + + + + + + + +

    +Data Fields

    +resource_handle buffer_handle
     Handle corresponding to the buffer to edit.
     
    +std::size_t size
     New size of the buffer, in bytes.
     
    +

    Detailed Description

    +

    Represents a resize operation for an existing buffer component.

    +
    + + + + diff --git a/structtz_1_1gl_1_1renderer__edit_1_1compute__config.html b/structtz_1_1gl_1_1renderer__edit_1_1compute__config.html new file mode 100644 index 0000000000..e07e479286 --- /dev/null +++ b/structtz_1_1gl_1_1renderer__edit_1_1compute__config.html @@ -0,0 +1,121 @@ + + + + + + + +Topaz: tz::gl::renderer_edit::compute_config Struct Reference + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    Topaz 4.1.0.1 +
    +
    C++20 Graphics Engine
    +
    +
    + + + + + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + + +
    +
    + +
    tz::gl::renderer_edit::compute_config Struct Reference
    +
    +
    + +

    Represents an edit, setting a new value for the compute kernel for a renderer. + More...

    + +

    #include <renderer.hpp>

    + + + + + +

    +Data Fields

    +tz::vec3ui kernel
     New compute kernel workgroup dimensions.
     
    +

    Detailed Description

    +

    Represents an edit, setting a new value for the compute kernel for a renderer.

    +
    + + + + diff --git a/structtz_1_1gl_1_1renderer__edit_1_1image__resize.html b/structtz_1_1gl_1_1renderer__edit_1_1image__resize.html new file mode 100644 index 0000000000..f8728c9ba4 --- /dev/null +++ b/structtz_1_1gl_1_1renderer__edit_1_1image__resize.html @@ -0,0 +1,125 @@ + + + + + + + +Topaz: tz::gl::renderer_edit::image_resize Struct Reference + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    Topaz 4.1.0.1 +
    +
    C++20 Graphics Engine
    +
    +
    + + + + + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + + +
    +
    + +
    tz::gl::renderer_edit::image_resize Struct Reference
    +
    +
    + +

    Represents a resize operation for an existing image component. + More...

    + +

    #include <renderer.hpp>

    + + + + + + + + +

    +Data Fields

    +resource_handle image_handle
     Handle corresponding to the image to edit.
     
    +tz::vec2ui dimensions
     New dimensions of the image, in pixels.
     
    +

    Detailed Description

    +

    Represents a resize operation for an existing image component.

    +
    + + + + diff --git a/structtz_1_1gl_1_1renderer__edit_1_1mark__dirty.html b/structtz_1_1gl_1_1renderer__edit_1_1mark__dirty.html new file mode 100644 index 0000000000..5ef66d3742 --- /dev/null +++ b/structtz_1_1gl_1_1renderer__edit_1_1mark__dirty.html @@ -0,0 +1,104 @@ + + + + + + + +Topaz: tz::gl::renderer_edit::mark_dirty Struct Reference + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    Topaz 4.1.0.1 +
    +
    C++20 Graphics Engine
    +
    +
    + + + + + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + + +
    +
    +
    tz::gl::renderer_edit::mark_dirty Struct Reference
    +
    +
    +
    + + + + diff --git a/structtz_1_1gl_1_1renderer__edit_1_1render__config.html b/structtz_1_1gl_1_1renderer__edit_1_1render__config.html new file mode 100644 index 0000000000..639d5c10ad --- /dev/null +++ b/structtz_1_1gl_1_1renderer__edit_1_1render__config.html @@ -0,0 +1,121 @@ + + + + + + + +Topaz: tz::gl::renderer_edit::render_config Struct Reference + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    Topaz 4.1.0.1 +
    +
    C++20 Graphics Engine
    +
    +
    + + + + + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + + +
    +
    + +
    tz::gl::renderer_edit::render_config Struct Reference
    +
    +
    + +

    Represents an edit to the fixed-function renderer state. + More...

    + +

    #include <renderer.hpp>

    + + + + + +

    +Data Fields

    +std::optional< bool > wireframe_mode = std::nullopt
     Whether triangles should only have their outlines drawn, instead of filled.
     
    +

    Detailed Description

    +

    Represents an edit to the fixed-function renderer state.

    +
    + + + + diff --git a/structtz_1_1gl_1_1renderer__edit_1_1resource__reference.html b/structtz_1_1gl_1_1renderer__edit_1_1resource__reference.html new file mode 100644 index 0000000000..2c502f1d7e --- /dev/null +++ b/structtz_1_1gl_1_1renderer__edit_1_1resource__reference.html @@ -0,0 +1,104 @@ + + + + + + + +Topaz: tz::gl::renderer_edit::resource_reference Struct Reference + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    Topaz 4.1.0.1 +
    +
    C++20 Graphics Engine
    +
    +
    + + + + + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + + +
    +
    +
    tz::gl::renderer_edit::resource_reference Struct Reference
    +
    +
    +
    + + + + diff --git a/structtz_1_1gl_1_1renderer__edit_1_1resource__write.html b/structtz_1_1gl_1_1renderer__edit_1_1resource__write.html new file mode 100644 index 0000000000..433b09820f --- /dev/null +++ b/structtz_1_1gl_1_1renderer__edit_1_1resource__write.html @@ -0,0 +1,104 @@ + + + + + + + +Topaz: tz::gl::renderer_edit::resource_write Struct Reference + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    Topaz 4.1.0.1 +
    +
    C++20 Graphics Engine
    +
    +
    + + + + + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + + +
    +
    +
    tz::gl::renderer_edit::resource_write Struct Reference
    +
    +
    +
    + + + + diff --git a/structtz_1_1gl_1_1renderer__edit_1_1scissor.html b/structtz_1_1gl_1_1renderer__edit_1_1scissor.html new file mode 100644 index 0000000000..fd3169c369 --- /dev/null +++ b/structtz_1_1gl_1_1renderer__edit_1_1scissor.html @@ -0,0 +1,104 @@ + + + + + + + +Topaz: tz::gl::renderer_edit::scissor Struct Reference + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    Topaz 4.1.0.1 +
    +
    C++20 Graphics Engine
    +
    +
    + + + + + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + + +
    +
    +
    tz::gl::renderer_edit::scissor Struct Reference
    +
    +
    +
    + + + + diff --git a/structtz_1_1gl_1_1renderer__ogl__base.html b/structtz_1_1gl_1_1renderer__ogl__base.html new file mode 100644 index 0000000000..e73e34a4bb --- /dev/null +++ b/structtz_1_1gl_1_1renderer__ogl__base.html @@ -0,0 +1,113 @@ + + + + + + + +Topaz: tz::gl::renderer_ogl_base Struct Reference + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    Topaz 4.1.0.1 +
    +
    C++20 Graphics Engine
    +
    +
    + + + + + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + + +
    +
    +
    tz::gl::renderer_ogl_base Struct Reference
    +
    +
    +
    +Inheritance diagram for tz::gl::renderer_ogl_base:
    +
    +
    + + +tz::gl::renderer_ogl + +
    +
    + + + + diff --git a/structtz_1_1gl_1_1renderer__ogl__base.png b/structtz_1_1gl_1_1renderer__ogl__base.png new file mode 100644 index 0000000000..9f7da8c9c6 Binary files /dev/null and b/structtz_1_1gl_1_1renderer__ogl__base.png differ diff --git a/structtz_1_1gl_1_1renderer__output__manager_1_1render__target__t.html b/structtz_1_1gl_1_1renderer__output__manager_1_1render__target__t.html new file mode 100644 index 0000000000..d9f74b71ec --- /dev/null +++ b/structtz_1_1gl_1_1renderer__output__manager_1_1render__target__t.html @@ -0,0 +1,104 @@ + + + + + + + +Topaz: tz::gl::renderer_output_manager::render_target_t Struct Reference + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    Topaz 4.1.0.1 +
    +
    C++20 Graphics Engine
    +
    +
    + + + + + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + + +
    +
    +
    tz::gl::renderer_output_manager::render_target_t Struct Reference
    +
    +
    +
    + + + + diff --git a/structtz_1_1gl_1_1renderer__vulkan__base.html b/structtz_1_1gl_1_1renderer__vulkan__base.html new file mode 100644 index 0000000000..e42c25f2cc --- /dev/null +++ b/structtz_1_1gl_1_1renderer__vulkan__base.html @@ -0,0 +1,118 @@ + + + + + + + +Topaz: tz::gl::renderer_vulkan_base Struct Reference + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    Topaz 4.1.0.1 +
    +
    C++20 Graphics Engine
    +
    +
    + + + + + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + + +
    +
    +
    tz::gl::renderer_vulkan_base Struct Reference
    +
    +
    +
    +Inheritance diagram for tz::gl::renderer_vulkan_base:
    +
    +
    + + +tz::gl::renderer_resource_manager +tz::gl::renderer_descriptor_manager +tz::gl::renderer_output_manager +tz::gl::renderer_pipeline +tz::gl::renderer_command_processor +tz::gl::renderer_vulkan2 + +
    +
    + + + + diff --git a/structtz_1_1gl_1_1renderer__vulkan__base.png b/structtz_1_1gl_1_1renderer__vulkan__base.png new file mode 100644 index 0000000000..58951714e4 Binary files /dev/null and b/structtz_1_1gl_1_1renderer__vulkan__base.png differ diff --git a/structtz_1_1gl_1_1schedule.html b/structtz_1_1gl_1_1schedule.html new file mode 100644 index 0000000000..9f496a0ba6 --- /dev/null +++ b/structtz_1_1gl_1_1schedule.html @@ -0,0 +1,104 @@ + + + + + + + +Topaz: tz::gl::schedule Struct Reference + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    Topaz 4.1.0.1 +
    +
    C++20 Graphics Engine
    +
    +
    + + + + + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + + +
    +
    +
    tz::gl::schedule Struct Reference
    +
    +
    +
    + + + + diff --git a/structtz_1_1gl_1_1scissor__region.html b/structtz_1_1gl_1_1scissor__region.html new file mode 100644 index 0000000000..4aa325db6f --- /dev/null +++ b/structtz_1_1gl_1_1scissor__region.html @@ -0,0 +1,104 @@ + + + + + + + +Topaz: tz::gl::scissor_region Struct Reference + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    Topaz 4.1.0.1 +
    +
    C++20 Graphics Engine
    +
    +
    + + + + + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + + +
    +
    +
    tz::gl::scissor_region Struct Reference
    +
    +
    +
    + + + + diff --git a/structtz_1_1gl_1_1shader__meta.html b/structtz_1_1gl_1_1shader__meta.html new file mode 100644 index 0000000000..ddff73302d --- /dev/null +++ b/structtz_1_1gl_1_1shader__meta.html @@ -0,0 +1,104 @@ + + + + + + + +Topaz: tz::gl::shader_meta Struct Reference + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    Topaz 4.1.0.1 +
    +
    C++20 Graphics Engine
    +
    +
    + + + + + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + + +
    +
    +
    tz::gl::shader_meta Struct Reference
    +
    +
    +
    + + + + diff --git a/structtz_1_1gl_1_1timeline__t.html b/structtz_1_1gl_1_1timeline__t.html new file mode 100644 index 0000000000..1469b5115f --- /dev/null +++ b/structtz_1_1gl_1_1timeline__t.html @@ -0,0 +1,110 @@ + + + + + + + +Topaz: tz::gl::timeline_t Struct Reference + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    Topaz 4.1.0.1 +
    +
    C++20 Graphics Engine
    +
    +
    + + + + + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + + +
    +
    +
    tz::gl::timeline_t Struct Reference
    +
    +
    +
    +Inheritance diagram for tz::gl::timeline_t:
    +
    +
    + +
    +
    + + + + diff --git a/structtz_1_1gl_1_1timeline__t.png b/structtz_1_1gl_1_1timeline__t.png new file mode 100644 index 0000000000..c7d4b5dd53 Binary files /dev/null and b/structtz_1_1gl_1_1timeline__t.png differ diff --git a/structtz_1_1gl_1_1viewport__region.html b/structtz_1_1gl_1_1viewport__region.html new file mode 100644 index 0000000000..5f7da1c716 --- /dev/null +++ b/structtz_1_1gl_1_1viewport__region.html @@ -0,0 +1,104 @@ + + + + + + + +Topaz: tz::gl::viewport_region Struct Reference + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    Topaz 4.1.0.1 +
    +
    C++20 Graphics Engine
    +
    +
    + + + + + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + + +
    +
    +
    tz::gl::viewport_region Struct Reference
    +
    +
    +
    + + + + diff --git a/structtz_1_1gl_1_1vk2_1_1_attachment.html b/structtz_1_1gl_1_1vk2_1_1_attachment.html new file mode 100644 index 0000000000..5d50351f58 --- /dev/null +++ b/structtz_1_1gl_1_1vk2_1_1_attachment.html @@ -0,0 +1,149 @@ + + + + + + + +Topaz: tz::gl::vk2::Attachment Struct Reference + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    Topaz 4.1.0.1 +
    +
    C++20 Graphics Engine
    +
    +
    + + + + + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + + +
    + +
    + +

    Specifies some data about an attachment. + More...

    + +

    #include <render_pass.hpp>

    + + + + + + + + + + + + + + + + + + + + + + + + + + +

    +Data Fields

    +image_format format = image_format::undefined
     Specifies the format of the attachment. When used in a RenderPass, its LogicalDevice must support this format. See PhysicalDevice::supports_image_colour_format.
     
    +SampleCount sample_count = SampleCount::One
     Specifies the number of samples per pixel. See SampleCount.
     
    +LoadOp colour_depth_load = LoadOp::Clear
     Specifies load operation for colour and depth when it is first used at the beginning of the subpass. See LoadOp.
     
    +StoreOp colour_depth_store = StoreOp::Store
     Specifies store operation for colour and depth when it is last used at the end of the subpass. See StoreOp.
     
    +LoadOp stencil_load = LoadOp::DontCare
     Specifies load operation for stencil when it is first used at the beginning of the subpass. See LoadOp.
     
    +StoreOp stencil_store = StoreOp::DontCare
     Specifies store operation for stencil when it is last used at the end of the subpass. See StoreOp.
     
    +ImageLayout initial_layout = ImageLayout::Undefined
     Specifies what the layout the attached image will be in when render pass begins.
     
    +ImageLayout final_layout = ImageLayout::Undefined
     Specifies what the layout the attached image will be in when the render pass ends.
     
    +

    Detailed Description

    +

    Specifies some data about an attachment.

    +
    + + + + diff --git a/structtz_1_1gl_1_1vk2_1_1_colour_blend_state.html b/structtz_1_1gl_1_1vk2_1_1_colour_blend_state.html new file mode 100644 index 0000000000..3591e626d7 --- /dev/null +++ b/structtz_1_1gl_1_1vk2_1_1_colour_blend_state.html @@ -0,0 +1,111 @@ + + + + + + + +Topaz: tz::gl::vk2::ColourBlendState Struct Reference + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    Topaz 4.1.0.1 +
    +
    C++20 Graphics Engine
    +
    +
    + + + + + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + + +
    + +
    + +

    Specifies how a new fragment colour is combined with the previous colour within the output. + More...

    + +

    #include <fixed_function.hpp>

    +

    Detailed Description

    +

    Specifies how a new fragment colour is combined with the previous colour within the output.

    +
    + + + + diff --git a/structtz_1_1gl_1_1vk2_1_1_command_buffer_data.html b/structtz_1_1gl_1_1vk2_1_1_command_buffer_data.html new file mode 100644 index 0000000000..2d281c20b1 --- /dev/null +++ b/structtz_1_1gl_1_1vk2_1_1_command_buffer_data.html @@ -0,0 +1,104 @@ + + + + + + + +Topaz: tz::gl::vk2::CommandBufferData Struct Reference + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    Topaz 4.1.0.1 +
    +
    C++20 Graphics Engine
    +
    +
    + + + + + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + + +
    +
    +
    tz::gl::vk2::CommandBufferData Struct Reference
    +
    +
    +
    + + + + diff --git a/structtz_1_1gl_1_1vk2_1_1_command_pool_1_1_allocation.html b/structtz_1_1gl_1_1vk2_1_1_command_pool_1_1_allocation.html new file mode 100644 index 0000000000..b6343181fd --- /dev/null +++ b/structtz_1_1gl_1_1vk2_1_1_command_pool_1_1_allocation.html @@ -0,0 +1,121 @@ + + + + + + + +Topaz: tz::gl::vk2::CommandPool::Allocation Struct Reference + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    Topaz 4.1.0.1 +
    +
    C++20 Graphics Engine
    +
    +
    + + + + + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + + +
    +
    + +
    tz::gl::vk2::CommandPool::Allocation Struct Reference
    +
    +
    + +

    Specifies information about an allocation of a CommandBuffer or many. + More...

    + +

    #include <command.hpp>

    + + + + + +

    +Data Fields

    +std::uint32_t buffer_count
     number of CommandBuffers to create.
     
    +

    Detailed Description

    +

    Specifies information about an allocation of a CommandBuffer or many.

    +
    + + + + diff --git a/structtz_1_1gl_1_1vk2_1_1_command_pool_1_1_allocation_result.html b/structtz_1_1gl_1_1vk2_1_1_command_pool_1_1_allocation_result.html new file mode 100644 index 0000000000..f06a233245 --- /dev/null +++ b/structtz_1_1gl_1_1vk2_1_1_command_pool_1_1_allocation_result.html @@ -0,0 +1,141 @@ + + + + + + + +Topaz: tz::gl::vk2::CommandPool::AllocationResult Struct Reference + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    Topaz 4.1.0.1 +
    +
    C++20 Graphics Engine
    +
    +
    + + + + + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + + +
    +
    + +
    tz::gl::vk2::CommandPool::AllocationResult Struct Reference
    +
    +
    + +

    Contains information about the result of a pool allocation. + More...

    + +

    #include <command.hpp>

    + + + + + +

    +Public Types

    enum class  AllocationResultType
     Describes how well an allocation went.
     
    + + + + +

    +Public Member Functions

    +bool success () const
     Query as to whether the allocation was successful or not.
     
    + + + + + + + +

    +Data Fields

    +tz::basic_list< CommandBufferbuffers
     List of newly-allocated buffers.
     
    +AllocationResultType type
     Result description for this specific allocation.
     
    +

    Detailed Description

    +

    Contains information about the result of a pool allocation.

    +

    See CommandPool::allocate_buffers.

    +
    + + + + diff --git a/structtz_1_1gl_1_1vk2_1_1_command_pool_info.html b/structtz_1_1gl_1_1vk2_1_1_command_pool_info.html new file mode 100644 index 0000000000..6dd026124f --- /dev/null +++ b/structtz_1_1gl_1_1vk2_1_1_command_pool_info.html @@ -0,0 +1,125 @@ + + + + + + + +Topaz: tz::gl::vk2::CommandPoolInfo Struct Reference + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    Topaz 4.1.0.1 +
    +
    C++20 Graphics Engine
    +
    +
    + + + + + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + + +
    +
    + +
    tz::gl::vk2::CommandPoolInfo Struct Reference
    +
    +
    + +

    Specifies creation flags for a CommandPool. + More...

    + +

    #include <command.hpp>

    + + + + + + + + +

    +Data Fields

    +const hardware::Queuequeue
     Specifies which hardware queue is expected to act as the executor for the CommandPool's buffers.
     
    +CommandPoolFlags flags = {}
     Specifies extra flags which affect the created command pool.
     
    +

    Detailed Description

    +

    Specifies creation flags for a CommandPool.

    +
    + + + + diff --git a/structtz_1_1gl_1_1vk2_1_1_compute_pipeline_info.html b/structtz_1_1gl_1_1vk2_1_1_compute_pipeline_info.html new file mode 100644 index 0000000000..2b8c16fb4d --- /dev/null +++ b/structtz_1_1gl_1_1vk2_1_1_compute_pipeline_info.html @@ -0,0 +1,104 @@ + + + + + + + +Topaz: tz::gl::vk2::ComputePipelineInfo Struct Reference + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    Topaz 4.1.0.1 +
    +
    C++20 Graphics Engine
    +
    +
    + + + + + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + + +
    +
    +
    tz::gl::vk2::ComputePipelineInfo Struct Reference
    +
    +
    +
    + + + + diff --git a/structtz_1_1gl_1_1vk2_1_1_depth_stencil_state.html b/structtz_1_1gl_1_1vk2_1_1_depth_stencil_state.html new file mode 100644 index 0000000000..94e3c091d7 --- /dev/null +++ b/structtz_1_1gl_1_1vk2_1_1_depth_stencil_state.html @@ -0,0 +1,153 @@ + + + + + + + +Topaz: tz::gl::vk2::DepthStencilState Struct Reference + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    Topaz 4.1.0.1 +
    +
    C++20 Graphics Engine
    +
    +
    + + + + + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + + +
    + +
    + +

    Specifies the state of the depth/stencil buffer, if any. + More...

    + +

    #include <fixed_function.hpp>

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

    +Data Fields

    +bool depth_testing = false
     Whether depth testing is enabled.
     
    +bool depth_writes = false
     If a fragment's value passes the depth test (that is, the depth compare operation returns true), this flag controls whether the depth attachment value is set to the sample's depth value.
     
    +DepthComparator depth_compare_operation = DepthComparator::LessThan
     Describes how two fragment depth values are compared. See DepthComparator for more information.
     
    +bool depth_bounds_testing = false
     Whether depth bounds testing should be enabled. If enabled, fragments with depth values < min_depth_bounds || >max_depth_bounds will have zero coverage.
     
    +bool stencil_testing = false
     Whether stencil testing is enabled.
     
    +VkStencilOpState front = {}
     Parameter of stencil testing.
     
    +VkStencilOpState back = {}
     Parameter of stencil testing.
     
    +float min_depth_bounds = 0.0f
     If depth bounds testing is enabled, this specifies the minimum depth boundary.
     
    +float max_depth_bounds = 1.0f
     If depth bounds testing is enabled, this specifies the maximum depth boundary.
     
    +

    Detailed Description

    +

    Specifies the state of the depth/stencil buffer, if any.

    +
    + + + + diff --git a/structtz_1_1gl_1_1vk2_1_1_descriptor_data.html b/structtz_1_1gl_1_1vk2_1_1_descriptor_data.html new file mode 100644 index 0000000000..f01125ce78 --- /dev/null +++ b/structtz_1_1gl_1_1vk2_1_1_descriptor_data.html @@ -0,0 +1,104 @@ + + + + + + + +Topaz: tz::gl::vk2::DescriptorData Struct Reference + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    Topaz 4.1.0.1 +
    +
    C++20 Graphics Engine
    +
    +
    + + + + + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + + +
    +
    +
    tz::gl::vk2::DescriptorData Struct Reference
    +
    +
    +
    + + + + diff --git a/structtz_1_1gl_1_1vk2_1_1_descriptor_layout_info.html b/structtz_1_1gl_1_1vk2_1_1_descriptor_layout_info.html new file mode 100644 index 0000000000..fb99ac09d4 --- /dev/null +++ b/structtz_1_1gl_1_1vk2_1_1_descriptor_layout_info.html @@ -0,0 +1,148 @@ + + + + + + + +Topaz: tz::gl::vk2::DescriptorLayoutInfo Struct Reference + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    Topaz 4.1.0.1 +
    +
    C++20 Graphics Engine
    +
    +
    + + + + + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + + +
    + +
    + +

    Specifies creation flags for a descriptor set layout. + More...

    + +

    #include <descriptors.hpp>

    + + + + +

    +Data Structures

    struct  BindingInfo
     
    + + + + + + + + + + +

    +Public Member Functions

    +std::size_t binding_count () const
     Retrieve the number of bindings.
     
    +bool has_valid_device () const
     Query as to whether the LogicalDevice logical_device is a valid device. That is, the device is not nullptr nor a null device.
     
    +bool device_supports_flags () const
     BindingInfos might contain flags that are only optionally supported. This method returns a bool as to whether the LogicalDevice supports all these flags.
     
    + + + + + + + +

    +Data Fields

    +tz::basic_list< BindingInfobindings
     List of all descriptor bindings in the layout.
     
    +const LogicalDevicelogical_device
     LogicalDevice which will be creating the resultant DescriptorLayout. This must not be null or a null LogicalDevice.
     
    +

    Detailed Description

    +

    Specifies creation flags for a descriptor set layout.

    +

    See DescriptorLayoutBuilder to help populate this structure.

    +
    + + + + diff --git a/structtz_1_1gl_1_1vk2_1_1_descriptor_layout_info_1_1_binding_info.html b/structtz_1_1gl_1_1vk2_1_1_descriptor_layout_info_1_1_binding_info.html new file mode 100644 index 0000000000..e8cfe7e538 --- /dev/null +++ b/structtz_1_1gl_1_1vk2_1_1_descriptor_layout_info_1_1_binding_info.html @@ -0,0 +1,122 @@ + + + + + + + +Topaz: tz::gl::vk2::DescriptorLayoutInfo::BindingInfo Struct Reference + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    Topaz 4.1.0.1 +
    +
    C++20 Graphics Engine
    +
    +
    + + + + + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + + +
    +
    + +
    tz::gl::vk2::DescriptorLayoutInfo::BindingInfo Struct Reference
    +
    +
    + + + + + + + + + + + +

    +Data Fields

    +DescriptorType type
     What is the type of the descriptor?
     
    +std::uint32_t count
     How many are at this binding? If more than 1, we are an array.
     
    +DescriptorFlags flags
     Do we have any extra flags?
     
    +
    + + + + diff --git a/structtz_1_1gl_1_1vk2_1_1_descriptor_pool_1_1_allocation.html b/structtz_1_1gl_1_1vk2_1_1_descriptor_pool_1_1_allocation.html new file mode 100644 index 0000000000..545cb03087 --- /dev/null +++ b/structtz_1_1gl_1_1vk2_1_1_descriptor_pool_1_1_allocation.html @@ -0,0 +1,121 @@ + + + + + + + +Topaz: tz::gl::vk2::DescriptorPool::Allocation Struct Reference + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    Topaz 4.1.0.1 +
    +
    C++20 Graphics Engine
    +
    +
    + + + + + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + + +
    +
    + +
    tz::gl::vk2::DescriptorPool::Allocation Struct Reference
    +
    +
    + +

    Specifies information about a DescriptorPool allocation. + More...

    + +

    #include <descriptors.hpp>

    + + + + + +

    +Data Fields

    +tz::basic_list< const DescriptorLayout * > set_layouts
     List of layouts for each set. When an allocation is performed, a list of DescriptorSets is returned. The list has size matching set_layouts.length() and the i'th element of the list will have layout matching set_layouts[i].
     
    +

    Detailed Description

    +

    Specifies information about a DescriptorPool allocation.

    +
    + + + + diff --git a/structtz_1_1gl_1_1vk2_1_1_descriptor_pool_1_1_allocation_result.html b/structtz_1_1gl_1_1vk2_1_1_descriptor_pool_1_1_allocation_result.html new file mode 100644 index 0000000000..6b2100a6f2 --- /dev/null +++ b/structtz_1_1gl_1_1vk2_1_1_descriptor_pool_1_1_allocation_result.html @@ -0,0 +1,192 @@ + + + + + + + +Topaz: tz::gl::vk2::DescriptorPool::AllocationResult Struct Reference + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    Topaz 4.1.0.1 +
    +
    C++20 Graphics Engine
    +
    +
    + + + + + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + + +
    +
    + +
    tz::gl::vk2::DescriptorPool::AllocationResult Struct Reference
    +
    +
    + +

    Specifies information about the resultant of an invocation to DescriptorPool::allocate_sets. + More...

    + +

    #include <descriptors.hpp>

    + + + + + +

    +Public Types

    enum class  AllocationResultType {
    +  AllocationSuccess +,
    +  FatalError +,
    +  FragmentedPool +,
    +  PoolOutOfMemory +
    + }
     Allocations can succeed, or fail in various ways. More...
     
    + + + + +

    +Public Member Functions

    +bool success () const
     Returns true if the allocation was successful.
     
    + + + + + + + +

    +Data Fields

    +tz::basic_list< DescriptorSetsets
     List of allocated sets. If type == AllocationResultType::Success, this contains a list of valid DescriptorSets which can now be used.
     
    +AllocationResultType type
     Describes how the allocation went. Allocations can fail.
     
    +

    Detailed Description

    +

    Specifies information about the resultant of an invocation to DescriptorPool::allocate_sets.

    +

    Member Enumeration Documentation

    + +

    ◆ AllocationResultType

    + +
    +
    + + + + + +
    + + + + +
    enum class tz::gl::vk2::DescriptorPool::AllocationResult::AllocationResultType
    +
    +strong
    +
    + +

    Allocations can succeed, or fail in various ways.

    + + + + + +
    Enumerator
    AllocationSuccess 
      +
    • Allocation succeeded. Valid DescriptorSets available within the returned list.
    • +
    +
    FatalError 
      +
    • Allocation failed. Fatal error occurred. No way of recovery.
    • +
    +
    FragmentedPool 
      +
    • Allocation failed. Pool technically had enough memory for the allocation, but it was fragmented.
    • +
    +
    PoolOutOfMemory 
      +
    • Allocation failed. Pool did not have enough memory for the allocation.
    • +
    +
    + +
    +
    +
    + + + + diff --git a/structtz_1_1gl_1_1vk2_1_1_descriptor_pool_info.html b/structtz_1_1gl_1_1vk2_1_1_descriptor_pool_info.html new file mode 100644 index 0000000000..d092e0b671 --- /dev/null +++ b/structtz_1_1gl_1_1vk2_1_1_descriptor_pool_info.html @@ -0,0 +1,212 @@ + + + + + + + +Topaz: tz::gl::vk2::DescriptorPoolInfo Struct Reference + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    Topaz 4.1.0.1 +
    +
    C++20 Graphics Engine
    +
    +
    + + + + + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + + +
    + +
    + +

    Specifies creation flags for a descriptor pool. + More...

    + +

    #include <descriptors.hpp>

    + + + + + +

    +Data Structures

    struct  PoolLimits
     Structure specifying limits for a DescriptorPool. More...
     
    + + + + +

    +Public Member Functions

    bool has_valid_device () const
     Query as to whether the provided LogicalDevice is valid.
     
    + + + + +

    +Static Public Member Functions

    static DescriptorPoolInfo to_fit_layout (const DescriptorLayout &descriptor_layout, std::size_t quantity)
     Create a PoolInfo large enough such that quantity descriptor sets each matching layout can be allocated.
     
    + + + + + + + +

    +Data Fields

    +PoolLimits limits
     Specifies the limits for the created pool.
     
    +const LogicalDevicelogical_device
     LogicalDevice which will be used to create the pool.
     
    +

    Detailed Description

    +

    Specifies creation flags for a descriptor pool.

    +

    Member Function Documentation

    + +

    ◆ has_valid_device()

    + +
    +
    + + + + + + + +
    bool tz::gl::vk2::DescriptorPoolInfo::has_valid_device () const
    +
    + +

    Query as to whether the provided LogicalDevice is valid.

    +

    This is the case if the LogicalDevice is not nullptr nor a null device.

    + +
    +
    + +

    ◆ to_fit_layout()

    + +
    +
    + + + + + +
    + + + + + + + + + + + + + + + + + + +
    DescriptorPoolInfo tz::gl::vk2::DescriptorPoolInfo::to_fit_layout (const DescriptorLayoutdescriptor_layout,
    std::size_t quantity 
    )
    +
    +static
    +
    + +

    Create a PoolInfo large enough such that quantity descriptor sets each matching layout can be allocated.

    +
    Parameters
    + + + +
    descriptor_layoutLayout from which the capacities of the pool will be specified.
    quantitynumber of sets using layout which can fit in the pool.
    +
    +
    + +
    +
    +
    + + + + diff --git a/structtz_1_1gl_1_1vk2_1_1_descriptor_pool_info_1_1_pool_limits.html b/structtz_1_1gl_1_1vk2_1_1_descriptor_pool_info_1_1_pool_limits.html new file mode 100644 index 0000000000..509e84a188 --- /dev/null +++ b/structtz_1_1gl_1_1vk2_1_1_descriptor_pool_info_1_1_pool_limits.html @@ -0,0 +1,129 @@ + + + + + + + +Topaz: tz::gl::vk2::DescriptorPoolInfo::PoolLimits Struct Reference + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    Topaz 4.1.0.1 +
    +
    C++20 Graphics Engine
    +
    +
    + + + + + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + + +
    +
    + +
    tz::gl::vk2::DescriptorPoolInfo::PoolLimits Struct Reference
    +
    +
    + +

    Structure specifying limits for a DescriptorPool. + More...

    + +

    #include <descriptors.hpp>

    + + + + + + + + + + + +

    +Data Fields

    +std::unordered_map< DescriptorType, std::uint32_t > limits
     Map of the maximum number of descriptors for each type. If a type does not exist within the map, no such descriptors can be allocated from the pool.
     
    +std::uint32_t max_sets = 0
     Maximum number of sets that can be allocated from the pool, regardless of layout.
     
    +bool supports_update_after_bind = false
     True if any of the descriptors should be able to be updated after bind. This is true if bindless descriptors are created.
     
    +

    Detailed Description

    +

    Structure specifying limits for a DescriptorPool.

    +
    + + + + diff --git a/structtz_1_1gl_1_1vk2_1_1_descriptor_set_1_1_write.html b/structtz_1_1gl_1_1vk2_1_1_descriptor_set_1_1_write.html new file mode 100644 index 0000000000..ac48f120f1 --- /dev/null +++ b/structtz_1_1gl_1_1vk2_1_1_descriptor_set_1_1_write.html @@ -0,0 +1,143 @@ + + + + + + + +Topaz: tz::gl::vk2::DescriptorSet::Write Struct Reference + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    Topaz 4.1.0.1 +
    +
    C++20 Graphics Engine
    +
    +
    + + + + + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + + +
    +
    + +
    tz::gl::vk2::DescriptorSet::Write Struct Reference
    +
    +
    + +

    Specifies information about writing to a specific element of the descriptor set via binding id. + More...

    + +

    #include <descriptors.hpp>

    + + + + + + + + +

    +Data Structures

    struct  BufferWriteInfo
     Specifies information about having a descriptor refer to an existing Buffer. More...
     
    struct  ImageWriteInfo
     Specifies information about having a descriptor refer to an existing Image. More...
     
    + + + + + + + + + + + + + +

    +Data Fields

    +const DescriptorSetset
     Specifies which set we are working on. Must not be null.
     
    +std::uint32_t binding_id
     Specifies the binding-id at which the descriptor/descriptor array will be written to.
     
    +std::uint32_t array_element
     Zero or the element of the descriptor array we would like to start writes to.
     
    +std::vector< WriteInfo > write_infos
     List of writes to the descriptor array.
     
    +

    Detailed Description

    +

    Specifies information about writing to a specific element of the descriptor set via binding id.

    +
    + + + + diff --git a/structtz_1_1gl_1_1vk2_1_1_descriptor_set_1_1_write_1_1_buffer_write_info.html b/structtz_1_1gl_1_1vk2_1_1_descriptor_set_1_1_write_1_1_buffer_write_info.html new file mode 100644 index 0000000000..f9d2048d3d --- /dev/null +++ b/structtz_1_1gl_1_1vk2_1_1_descriptor_set_1_1_write_1_1_buffer_write_info.html @@ -0,0 +1,129 @@ + + + + + + + +Topaz: tz::gl::vk2::DescriptorSet::Write::BufferWriteInfo Struct Reference + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    Topaz 4.1.0.1 +
    +
    C++20 Graphics Engine
    +
    +
    + + + + + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + + +
    +
    + +
    tz::gl::vk2::DescriptorSet::Write::BufferWriteInfo Struct Reference
    +
    +
    + +

    Specifies information about having a descriptor refer to an existing Buffer. + More...

    + +

    #include <descriptors.hpp>

    + + + + + + + + + + + +

    +Data Fields

    +const Bufferbuffer
     Buffer to refer to. Must not be nullptr.
     
    +std::size_t buffer_offset
     Offset, in bytes, from the start of the buffer data.
     
    +std::size_t buffer_write_size
     number of bytes from the buffer to associate with the descriptor.
     
    +

    Detailed Description

    +

    Specifies information about having a descriptor refer to an existing Buffer.

    +
    + + + + diff --git a/structtz_1_1gl_1_1vk2_1_1_descriptor_set_1_1_write_1_1_image_write_info.html b/structtz_1_1gl_1_1vk2_1_1_descriptor_set_1_1_write_1_1_image_write_info.html new file mode 100644 index 0000000000..bbb836bebd --- /dev/null +++ b/structtz_1_1gl_1_1vk2_1_1_descriptor_set_1_1_write_1_1_image_write_info.html @@ -0,0 +1,125 @@ + + + + + + + +Topaz: tz::gl::vk2::DescriptorSet::Write::ImageWriteInfo Struct Reference + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    Topaz 4.1.0.1 +
    +
    C++20 Graphics Engine
    +
    +
    + + + + + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + + +
    +
    + +
    tz::gl::vk2::DescriptorSet::Write::ImageWriteInfo Struct Reference
    +
    +
    + +

    Specifies information about having a descriptor refer to an existing Image. + More...

    + +

    #include <descriptors.hpp>

    + + + + + + + + +

    +Data Fields

    +const Samplersampler
     Sampler to use. Must not be nullptr.
     
    +const ImageViewimage_view
     ImageView to use. Must not be nullptr and must refer to a valid Image.
     
    +

    Detailed Description

    +

    Specifies information about having a descriptor refer to an existing Image.

    +
    + + + + diff --git a/structtz_1_1gl_1_1vk2_1_1_dynamic_rendering_run_info.html b/structtz_1_1gl_1_1vk2_1_1_dynamic_rendering_run_info.html new file mode 100644 index 0000000000..bda10060f9 --- /dev/null +++ b/structtz_1_1gl_1_1vk2_1_1_dynamic_rendering_run_info.html @@ -0,0 +1,104 @@ + + + + + + + +Topaz: tz::gl::vk2::DynamicRenderingRunInfo Struct Reference + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    Topaz 4.1.0.1 +
    +
    C++20 Graphics Engine
    +
    +
    + + + + + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + + +
    +
    +
    tz::gl::vk2::DynamicRenderingRunInfo Struct Reference
    +
    +
    +
    + + + + diff --git a/structtz_1_1gl_1_1vk2_1_1_dynamic_state.html b/structtz_1_1gl_1_1vk2_1_1_dynamic_state.html new file mode 100644 index 0000000000..50bac688db --- /dev/null +++ b/structtz_1_1gl_1_1vk2_1_1_dynamic_state.html @@ -0,0 +1,111 @@ + + + + + + + +Topaz: tz::gl::vk2::DynamicState Struct Reference + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    Topaz 4.1.0.1 +
    +
    C++20 Graphics Engine
    +
    +
    + + + + + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + + +
    + +
    + +

    At present, dynamic state is not supported, so this struct is not configurable. + More...

    + +

    #include <fixed_function.hpp>

    +

    Detailed Description

    +

    At present, dynamic state is not supported, so this struct is not configurable.

    +
    + + + + diff --git a/structtz_1_1gl_1_1vk2_1_1_fence_info.html b/structtz_1_1gl_1_1vk2_1_1_fence_info.html new file mode 100644 index 0000000000..2222b29c7b --- /dev/null +++ b/structtz_1_1gl_1_1vk2_1_1_fence_info.html @@ -0,0 +1,125 @@ + + + + + + + +Topaz: tz::gl::vk2::FenceInfo Struct Reference + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    Topaz 4.1.0.1 +
    +
    C++20 Graphics Engine
    +
    +
    + + + + + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + + +
    + +
    + +

    Specifies creation flags for a Fence. + More...

    + +

    #include <fence.hpp>

    + + + + + + + + +

    +Data Fields

    +const LogicalDevicedevice
     Owning LogicalDevice. Must not be null.
     
    +bool initially_signalled = false
     True if the Fence should initially be signalled, otherwise false. By default, this is false.
     
    +

    Detailed Description

    +

    Specifies creation flags for a Fence.

    +
    + + + + diff --git a/structtz_1_1gl_1_1vk2_1_1_framebuffer_data.html b/structtz_1_1gl_1_1vk2_1_1_framebuffer_data.html new file mode 100644 index 0000000000..6f2c6c5784 --- /dev/null +++ b/structtz_1_1gl_1_1vk2_1_1_framebuffer_data.html @@ -0,0 +1,104 @@ + + + + + + + +Topaz: tz::gl::vk2::FramebufferData Struct Reference + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    Topaz 4.1.0.1 +
    +
    C++20 Graphics Engine
    +
    +
    + + + + + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + + +
    +
    +
    tz::gl::vk2::FramebufferData Struct Reference
    +
    +
    +
    + + + + diff --git a/structtz_1_1gl_1_1vk2_1_1_framebuffer_info.html b/structtz_1_1gl_1_1vk2_1_1_framebuffer_info.html new file mode 100644 index 0000000000..fa85b85dd8 --- /dev/null +++ b/structtz_1_1gl_1_1vk2_1_1_framebuffer_info.html @@ -0,0 +1,137 @@ + + + + + + + +Topaz: tz::gl::vk2::FramebufferInfo Struct Reference + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    Topaz 4.1.0.1 +
    +
    C++20 Graphics Engine
    +
    +
    + + + + + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + + +
    + +
    + +

    Specifies creation flags for a Framebuffer. + More...

    + +

    #include <framebuffer.hpp>

    + + + + + +

    +Public Member Functions

    +bool valid () const
     Query as to whether this info is valid and can be used to create a Framebuffer.
     
    + + + + + + + + + + +

    +Data Fields

    +const RenderPassrender_pass
     RenderPass that will target the frame buffer.
     
    +tz::basic_list< ImageView * > attachments
     List of output attachments from the RenderPass.
     
    +tz::vector< std::uint32_t, 2 > dimensions
     Dimensions of the frame buffer.
     
    +

    Detailed Description

    +

    Specifies creation flags for a Framebuffer.

    +
    + + + + diff --git a/structtz_1_1gl_1_1vk2_1_1_graphics_pipeline_info.html b/structtz_1_1gl_1_1vk2_1_1_graphics_pipeline_info.html new file mode 100644 index 0000000000..5555c359cb --- /dev/null +++ b/structtz_1_1gl_1_1vk2_1_1_graphics_pipeline_info.html @@ -0,0 +1,131 @@ + + + + + + + +Topaz: tz::gl::vk2::GraphicsPipelineInfo Struct Reference + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    Topaz 4.1.0.1 +
    +
    C++20 Graphics Engine
    +
    +
    + + + + + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + + +
    +
    + +
    tz::gl::vk2::GraphicsPipelineInfo Struct Reference
    +
    +
    + +

    Specifies creation flags for a GraphicsPipeline. + More...

    + +

    #include <graphics_pipeline.hpp>

    + + + + +

    +Data Structures

    struct  DynamicRenderingState
     
    + + + + + + + +

    +Public Member Functions

    +bool valid () const
     Query as to whether the various state objects are valid and not-nullptr.
     
    +bool valid_device () const
     Query as to whether the LogicalDevice logical_device is a valid device. That is, the device is not nullptr nor a null device.
     
    +

    Detailed Description

    +

    Specifies creation flags for a GraphicsPipeline.

    +
    + + + + diff --git a/structtz_1_1gl_1_1vk2_1_1_graphics_pipeline_info_1_1_dynamic_rendering_state.html b/structtz_1_1gl_1_1vk2_1_1_graphics_pipeline_info_1_1_dynamic_rendering_state.html new file mode 100644 index 0000000000..09c391dcbe --- /dev/null +++ b/structtz_1_1gl_1_1vk2_1_1_graphics_pipeline_info_1_1_dynamic_rendering_state.html @@ -0,0 +1,104 @@ + + + + + + + +Topaz: tz::gl::vk2::GraphicsPipelineInfo::DynamicRenderingState Struct Reference + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    Topaz 4.1.0.1 +
    +
    C++20 Graphics Engine
    +
    +
    + + + + + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + + +
    +
    +
    tz::gl::vk2::GraphicsPipelineInfo::DynamicRenderingState Struct Reference
    +
    +
    +
    + + + + diff --git a/structtz_1_1gl_1_1vk2_1_1_image_view_info.html b/structtz_1_1gl_1_1vk2_1_1_image_view_info.html new file mode 100644 index 0000000000..50b4b63d2e --- /dev/null +++ b/structtz_1_1gl_1_1vk2_1_1_image_view_info.html @@ -0,0 +1,104 @@ + + + + + + + +Topaz: tz::gl::vk2::ImageViewInfo Struct Reference + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    Topaz 4.1.0.1 +
    +
    C++20 Graphics Engine
    +
    +
    + + + + + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + + +
    +
    +
    tz::gl::vk2::ImageViewInfo Struct Reference
    +
    +
    +
    + + + + diff --git a/structtz_1_1gl_1_1vk2_1_1_internal_device_info.html b/structtz_1_1gl_1_1vk2_1_1_internal_device_info.html new file mode 100644 index 0000000000..b01d6c3766 --- /dev/null +++ b/structtz_1_1gl_1_1vk2_1_1_internal_device_info.html @@ -0,0 +1,104 @@ + + + + + + + +Topaz: tz::gl::vk2::InternalDeviceInfo Struct Reference + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    Topaz 4.1.0.1 +
    +
    C++20 Graphics Engine
    +
    +
    + + + + + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + + +
    +
    +
    tz::gl::vk2::InternalDeviceInfo Struct Reference
    +
    +
    +
    + + + + diff --git a/structtz_1_1gl_1_1vk2_1_1_logical_device_info.html b/structtz_1_1gl_1_1vk2_1_1_logical_device_info.html new file mode 100644 index 0000000000..9f528c6725 --- /dev/null +++ b/structtz_1_1gl_1_1vk2_1_1_logical_device_info.html @@ -0,0 +1,162 @@ + + + + + + + +Topaz: tz::gl::vk2::LogicalDeviceInfo Struct Reference + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    Topaz 4.1.0.1 +
    +
    C++20 Graphics Engine
    +
    +
    + + + + + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + + +
    +
    + +
    tz::gl::vk2::LogicalDeviceInfo Struct Reference
    +
    +
    + +

    Specifies parameters for a newly created LogicalDevice. + More...

    + +

    #include <logical_device.hpp>

    + + + + + + + + + + + +

    +Data Fields

    +PhysicalDevice physical_device = PhysicalDevice::null()
     physical_device is the PhysicalDevice that the LogicalDevice shall be based off.
     
    DeviceExtensionList extensions = {}
     extensions is a list of DeviceExtensions to be enabled.
     
    DeviceFeatureField features = {}
     features is a list of DeviceFeatures to be enabled.
     
    +

    Detailed Description

    +

    Specifies parameters for a newly created LogicalDevice.

    +

    Field Documentation

    + +

    ◆ extensions

    + +
    +
    + + + + +
    DeviceExtensionList tz::gl::vk2::LogicalDeviceInfo::extensions = {}
    +
    + +

    extensions is a list of DeviceExtensions to be enabled.

    +
    Precondition
    For each element e, physical_device.get_supported_extensions().contains(e) must hold true.
    + +
    +
    + +

    ◆ features

    + +
    +
    + + + + +
    DeviceFeatureField tz::gl::vk2::LogicalDeviceInfo::features = {}
    +
    + +

    features is a list of DeviceFeatures to be enabled.

    +
    Precondition
    For each element e, physical_device.get_supported_features().contains(e) must hold true.
    + +
    +
    +
    + + + + diff --git a/structtz_1_1gl_1_1vk2_1_1_multisample_state.html b/structtz_1_1gl_1_1vk2_1_1_multisample_state.html new file mode 100644 index 0000000000..c104a2a23c --- /dev/null +++ b/structtz_1_1gl_1_1vk2_1_1_multisample_state.html @@ -0,0 +1,111 @@ + + + + + + + +Topaz: tz::gl::vk2::MultisampleState Struct Reference + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    Topaz 4.1.0.1 +
    +
    C++20 Graphics Engine
    +
    +
    + + + + + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + + +
    + +
    + +

    At present, multisampling is not supported, so this struct is not configurable. + More...

    + +

    #include <fixed_function.hpp>

    +

    Detailed Description

    +

    At present, multisampling is not supported, so this struct is not configurable.

    +
    + + + + diff --git a/structtz_1_1gl_1_1vk2_1_1_physical_device_info.html b/structtz_1_1gl_1_1vk2_1_1_physical_device_info.html new file mode 100644 index 0000000000..1e67cf71d2 --- /dev/null +++ b/structtz_1_1gl_1_1vk2_1_1_physical_device_info.html @@ -0,0 +1,104 @@ + + + + + + + +Topaz: tz::gl::vk2::PhysicalDeviceInfo Struct Reference + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    Topaz 4.1.0.1 +
    +
    C++20 Graphics Engine
    +
    +
    + + + + + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + + +
    +
    +
    tz::gl::vk2::PhysicalDeviceInfo Struct Reference
    +
    +
    +
    + + + + diff --git a/structtz_1_1gl_1_1vk2_1_1_physical_device_surface_capability_info.html b/structtz_1_1gl_1_1vk2_1_1_physical_device_surface_capability_info.html new file mode 100644 index 0000000000..b18cd0db6f --- /dev/null +++ b/structtz_1_1gl_1_1vk2_1_1_physical_device_surface_capability_info.html @@ -0,0 +1,112 @@ + + + + + + + +Topaz: tz::gl::vk2::PhysicalDeviceSurfaceCapabilityInfo Struct Reference + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    Topaz 4.1.0.1 +
    +
    C++20 Graphics Engine
    +
    +
    + + + + + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + + +
    +
    + +
    tz::gl::vk2::PhysicalDeviceSurfaceCapabilityInfo Struct Reference
    +
    +
    + + + + +

    +Data Structures

    struct  SwapchainExtent
     
    +
    + + + + diff --git a/structtz_1_1gl_1_1vk2_1_1_physical_device_surface_capability_info_1_1_swapchain_extent.html b/structtz_1_1gl_1_1vk2_1_1_physical_device_surface_capability_info_1_1_swapchain_extent.html new file mode 100644 index 0000000000..5daee26d8a --- /dev/null +++ b/structtz_1_1gl_1_1vk2_1_1_physical_device_surface_capability_info_1_1_swapchain_extent.html @@ -0,0 +1,104 @@ + + + + + + + +Topaz: tz::gl::vk2::PhysicalDeviceSurfaceCapabilityInfo::SwapchainExtent Struct Reference + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    Topaz 4.1.0.1 +
    +
    C++20 Graphics Engine
    +
    +
    + + + + + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + + +
    +
    +
    tz::gl::vk2::PhysicalDeviceSurfaceCapabilityInfo::SwapchainExtent Struct Reference
    +
    +
    +
    + + + + diff --git a/structtz_1_1gl_1_1vk2_1_1_pipeline_data.html b/structtz_1_1gl_1_1vk2_1_1_pipeline_data.html new file mode 100644 index 0000000000..4963ad4a88 --- /dev/null +++ b/structtz_1_1gl_1_1vk2_1_1_pipeline_data.html @@ -0,0 +1,104 @@ + + + + + + + +Topaz: tz::gl::vk2::PipelineData Struct Reference + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    Topaz 4.1.0.1 +
    +
    C++20 Graphics Engine
    +
    +
    + + + + + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + + +
    +
    +
    tz::gl::vk2::PipelineData Struct Reference
    +
    +
    +
    + + + + diff --git a/structtz_1_1gl_1_1vk2_1_1_pipeline_layout_info.html b/structtz_1_1gl_1_1vk2_1_1_pipeline_layout_info.html new file mode 100644 index 0000000000..da14b9092b --- /dev/null +++ b/structtz_1_1gl_1_1vk2_1_1_pipeline_layout_info.html @@ -0,0 +1,125 @@ + + + + + + + +Topaz: tz::gl::vk2::PipelineLayoutInfo Struct Reference + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    Topaz 4.1.0.1 +
    +
    C++20 Graphics Engine
    +
    +
    + + + + + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + + +
    +
    + +
    tz::gl::vk2::PipelineLayoutInfo Struct Reference
    +
    +
    + +

    Specifies creation flags for a PipelineLayout. + More...

    + +

    #include <pipeline_layout.hpp>

    + + + + + + + + +

    +Data Fields

    +std::vector< const DescriptorLayout * > descriptor_layouts
     List of layouts, in order.
     
    +const LogicalDevicelogical_device
     Owning LogicalDevice. Must not be nullptr or null device.
     
    +

    Detailed Description

    +

    Specifies creation flags for a PipelineLayout.

    +
    + + + + diff --git a/structtz_1_1gl_1_1vk2_1_1_pipeline_state.html b/structtz_1_1gl_1_1vk2_1_1_pipeline_state.html new file mode 100644 index 0000000000..786ec100a1 --- /dev/null +++ b/structtz_1_1gl_1_1vk2_1_1_pipeline_state.html @@ -0,0 +1,104 @@ + + + + + + + +Topaz: tz::gl::vk2::PipelineState Struct Reference + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    Topaz 4.1.0.1 +
    +
    C++20 Graphics Engine
    +
    +
    + + + + + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + + +
    +
    +
    tz::gl::vk2::PipelineState Struct Reference
    +
    +
    +
    + + + + diff --git a/structtz_1_1gl_1_1vk2_1_1_queue_family_info.html b/structtz_1_1gl_1_1vk2_1_1_queue_family_info.html new file mode 100644 index 0000000000..a3fddf3fb7 --- /dev/null +++ b/structtz_1_1gl_1_1vk2_1_1_queue_family_info.html @@ -0,0 +1,104 @@ + + + + + + + +Topaz: tz::gl::vk2::QueueFamilyInfo Struct Reference + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    Topaz 4.1.0.1 +
    +
    C++20 Graphics Engine
    +
    +
    + + + + + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + + +
    +
    +
    tz::gl::vk2::QueueFamilyInfo Struct Reference
    +
    +
    +
    + + + + diff --git a/structtz_1_1gl_1_1vk2_1_1_queue_request.html b/structtz_1_1gl_1_1vk2_1_1_queue_request.html new file mode 100644 index 0000000000..5ba7cb9d58 --- /dev/null +++ b/structtz_1_1gl_1_1vk2_1_1_queue_request.html @@ -0,0 +1,118 @@ + + + + + + + +Topaz: tz::gl::vk2::QueueRequest Struct Reference + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    Topaz 4.1.0.1 +
    +
    C++20 Graphics Engine
    +
    +
    + + + + + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + + +
    +
    + +
    tz::gl::vk2::QueueRequest Struct Reference
    +
    +
    + + + + + + + + +

    +Data Fields

    +QueueFamilyTypeField field
     Field for all functionality that the Queue should be able to perform.
     
    +bool present_support
     If true, the returned Queue be able to present images.
     
    +
    + + + + diff --git a/structtz_1_1gl_1_1vk2_1_1_rasteriser_state.html b/structtz_1_1gl_1_1vk2_1_1_rasteriser_state.html new file mode 100644 index 0000000000..d41965f34b --- /dev/null +++ b/structtz_1_1gl_1_1vk2_1_1_rasteriser_state.html @@ -0,0 +1,146 @@ + + + + + + + +Topaz: tz::gl::vk2::RasteriserState Struct Reference + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    Topaz 4.1.0.1 +
    +
    C++20 Graphics Engine
    +
    +
    + + + + + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + + +
    + +
    + +

    Configures how the geometry shaped by input data is transformed into fragments. + More...

    + +

    #include <fixed_function.hpp>

    + + + + + + + + + + + +

    +Data Fields

    bool depth_clamp = false
     Fragments that are beyond the near and far planes are clipped to them instead of being discarded. This may be useful for shadow mapping.
     
    +PolygonMode polygon_mode = PolygonMode::Fill
     Describe how fragments are generated from geometry. See PolygonMode for more information.
     
    +CullMode cull_mode = CullMode::NoCulling
     Describe the culling behaviour. See CullMode for more information.
     
    +

    Detailed Description

    +

    Configures how the geometry shaped by input data is transformed into fragments.

    +

    Field Documentation

    + +

    ◆ depth_clamp

    + +
    +
    + + + + +
    bool tz::gl::vk2::RasteriserState::depth_clamp = false
    +
    + +

    Fragments that are beyond the near and far planes are clipped to them instead of being discarded. This may be useful for shadow mapping.

    +
    Note
    This must be supported by the relevant PhysicalDevice.
    + +
    +
    +
    + + + + diff --git a/structtz_1_1gl_1_1vk2_1_1_render_pass_info.html b/structtz_1_1gl_1_1vk2_1_1_render_pass_info.html new file mode 100644 index 0000000000..36a4b4e4c4 --- /dev/null +++ b/structtz_1_1gl_1_1vk2_1_1_render_pass_info.html @@ -0,0 +1,163 @@ + + + + + + + +Topaz: tz::gl::vk2::RenderPassInfo Struct Reference + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    Topaz 4.1.0.1 +
    +
    C++20 Graphics Engine
    +
    +
    + + + + + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + + +
    + +
    + +

    Specifies creation flags for a RenderPass. + More...

    + +

    #include <render_pass.hpp>

    + + + + + + + + + + + +

    +Data Structures

    struct  AttachmentReference
     Structure which specifies a reference to an existing RenderPassInfo attachment, and the layout it should be in when referenced. More...
     
    struct  InputAttachmentReference
     A specialised AttachmentReference which is suitable to reference input attachments. More...
     
    struct  Subpass
     Specifies information about a RenderPass subpass. More...
     
    + + + + + + + + + + + + + +

    +Public Member Functions

    +std::size_t total_input_attachment_count () const
     Retrieve the total number of times an input attachment is referenced throughout all subpasses.
     
    +std::size_t total_colour_attachment_count () const
     Retrieve the total number of times a colour attachment is refererenced throughout all subpasses.
     
    +bool has_valid_device () const
     Query as to whether this->logical_device is a non-nullptr and non-null LogicalDevice which is suitable to create the resultant RenderPass.
     
    +bool values_make_sense () const
     Iterate through the subpasses and ensure they reference attachments which exist. If this returns false, the resultant RenderPass will almost certainly be invalid.
     
    + + + + + + + + + + +

    +Data Fields

    +tz::basic_list< Attachmentattachments
     List of all attachments. These attachments are referenced throughout the subpasses.
     
    +tz::basic_list< Subpasssubpasses
     List of all subpasses, in order.
     
    +const LogicalDevicelogical_device = nullptr
     LogicalDevice which will be used to create the RenderPass. It must point to a valid device.
     
    +

    Detailed Description

    +

    Specifies creation flags for a RenderPass.

    +

    See RenderPassBuilder to help populate this structure.

    +
    + + + + diff --git a/structtz_1_1gl_1_1vk2_1_1_render_pass_info_1_1_attachment_reference.html b/structtz_1_1gl_1_1vk2_1_1_render_pass_info_1_1_attachment_reference.html new file mode 100644 index 0000000000..80b5259c86 --- /dev/null +++ b/structtz_1_1gl_1_1vk2_1_1_render_pass_info_1_1_attachment_reference.html @@ -0,0 +1,125 @@ + + + + + + + +Topaz: tz::gl::vk2::RenderPassInfo::AttachmentReference Struct Reference + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    Topaz 4.1.0.1 +
    +
    C++20 Graphics Engine
    +
    +
    + + + + + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + + +
    +
    + +
    tz::gl::vk2::RenderPassInfo::AttachmentReference Struct Reference
    +
    +
    + +

    Structure which specifies a reference to an existing RenderPassInfo attachment, and the layout it should be in when referenced. + More...

    + +

    #include <render_pass.hpp>

    + + + + + + + + +

    +Data Fields

    +std::uint32_t attachment_idx
     Reference to the attachment such that we refer to RenderPassInfo::attachments[attachment_idx]. This must be less than the total number of attachments.
     
    +ImageLayout current_layout
     Specifies the layout which the attachment will be in during the subpass.
     
    +

    Detailed Description

    +

    Structure which specifies a reference to an existing RenderPassInfo attachment, and the layout it should be in when referenced.

    +
    + + + + diff --git a/structtz_1_1gl_1_1vk2_1_1_render_pass_info_1_1_input_attachment_reference.html b/structtz_1_1gl_1_1vk2_1_1_render_pass_info_1_1_input_attachment_reference.html new file mode 100644 index 0000000000..f29a50e0f3 --- /dev/null +++ b/structtz_1_1gl_1_1vk2_1_1_render_pass_info_1_1_input_attachment_reference.html @@ -0,0 +1,111 @@ + + + + + + + +Topaz: tz::gl::vk2::RenderPassInfo::InputAttachmentReference Struct Reference + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    Topaz 4.1.0.1 +
    +
    C++20 Graphics Engine
    +
    +
    + + + + + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + + +
    +
    +
    tz::gl::vk2::RenderPassInfo::InputAttachmentReference Struct Reference
    +
    +
    + +

    A specialised AttachmentReference which is suitable to reference input attachments. + More...

    + +

    #include <render_pass.hpp>

    +

    Detailed Description

    +

    A specialised AttachmentReference which is suitable to reference input attachments.

    +
    + + + + diff --git a/structtz_1_1gl_1_1vk2_1_1_render_pass_info_1_1_subpass.html b/structtz_1_1gl_1_1vk2_1_1_render_pass_info_1_1_subpass.html new file mode 100644 index 0000000000..f70dde1d9e --- /dev/null +++ b/structtz_1_1gl_1_1vk2_1_1_render_pass_info_1_1_subpass.html @@ -0,0 +1,134 @@ + + + + + + + +Topaz: tz::gl::vk2::RenderPassInfo::Subpass Struct Reference + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    Topaz 4.1.0.1 +
    +
    C++20 Graphics Engine
    +
    +
    + + + + + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + + +
    +
    + +
    tz::gl::vk2::RenderPassInfo::Subpass Struct Reference
    +
    +
    + +

    Specifies information about a RenderPass subpass. + More...

    + +

    #include <render_pass.hpp>

    + + + + + + + + + + + + + + +

    +Data Fields

    +PipelineContext context = PipelineContext::graphics
     Specifies how this subpass binds to the graphics pipeline.
     
    +tz::basic_list< InputAttachmentReferenceinput_attachments
     List of all attachments which will be input attachments during this subpass.
     
    +tz::basic_list< AttachmentReferencecolour_attachments
     List of all attachments which will be colour attachments during this subpass.
     
    +std::optional< AttachmentReferencedepth_stencil_attachment = std::nullopt
     Optional reference to an attachment which will be the depth-stencil attachment during this subpass.
     
    +

    Detailed Description

    +

    Specifies information about a RenderPass subpass.

    +

    See SubpassBuilder to help populate this structure.

    +
    + + + + diff --git a/structtz_1_1gl_1_1vk2_1_1_sampler_info.html b/structtz_1_1gl_1_1vk2_1_1_sampler_info.html new file mode 100644 index 0000000000..411badaf5c --- /dev/null +++ b/structtz_1_1gl_1_1vk2_1_1_sampler_info.html @@ -0,0 +1,141 @@ + + + + + + + +Topaz: tz::gl::vk2::SamplerInfo Struct Reference + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    Topaz 4.1.0.1 +
    +
    C++20 Graphics Engine
    +
    +
    + + + + + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + + +
    + +
    + +

    Specifies creation flags for a Sampler. + More...

    + +

    #include <sampler.hpp>

    + + + + + + + + + + + + + + + + + + + + +

    +Data Fields

    +const LogicalDevicedevice
     Owning LogicalDevice. This must not be null or nullptr.
     
    +LookupFilter min_filter
     Min filter.
     
    +LookupFilter mag_filter
     Mag filter.
     
    +SamplerAddressMode address_mode_u
     Addressing mode for U coordinates outside of the region of the texture.
     
    +SamplerAddressMode address_mode_v
     Addressing mode for V coordinates outside of the region of the texture.
     
    +SamplerAddressMode address_mode_w
     Addressing mode for W coordinates outside of the region of the texture.
     
    +

    Detailed Description

    +

    Specifies creation flags for a Sampler.

    +
    + + + + diff --git a/structtz_1_1gl_1_1vk2_1_1_shader_info.html b/structtz_1_1gl_1_1vk2_1_1_shader_info.html new file mode 100644 index 0000000000..811c40cd4b --- /dev/null +++ b/structtz_1_1gl_1_1vk2_1_1_shader_info.html @@ -0,0 +1,125 @@ + + + + + + + +Topaz: tz::gl::vk2::ShaderInfo Struct Reference + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    Topaz 4.1.0.1 +
    +
    C++20 Graphics Engine
    +
    +
    + + + + + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + + +
    + +
    + +

    Specifies parameters of a Shader, and all the modules that comprise it. + More...

    + +

    #include <shader.hpp>

    + + + + + + + + +

    +Data Fields

    +const LogicalDevicedevice
     LogicalDevice owner. Must not be null.
     
    +tz::basic_list< ShaderModuleInfomodules
     Information about the Shader's modules. Must be a valid combination of modules.
     
    +

    Detailed Description

    +

    Specifies parameters of a Shader, and all the modules that comprise it.

    +
    + + + + diff --git a/structtz_1_1gl_1_1vk2_1_1_shader_module_info.html b/structtz_1_1gl_1_1vk2_1_1_shader_module_info.html new file mode 100644 index 0000000000..5af1576c16 --- /dev/null +++ b/structtz_1_1gl_1_1vk2_1_1_shader_module_info.html @@ -0,0 +1,129 @@ + + + + + + + +Topaz: tz::gl::vk2::ShaderModuleInfo Struct Reference + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    Topaz 4.1.0.1 +
    +
    C++20 Graphics Engine
    +
    +
    + + + + + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + + +
    + +
    + +

    Specifies parameters of a single ShaderModule. + More...

    + +

    #include <shader.hpp>

    + + + + + + + + + + + +

    +Data Fields

    +const LogicalDevicedevice
     LogicalDevice owning the ShaderModule. Must not be null.
     
    +ShaderType type
     Type of the shader.
     
    +std::vector< char > code
     COntainer for valid SPIRV code.
     
    +

    Detailed Description

    +

    Specifies parameters of a single ShaderModule.

    +
    + + + + diff --git a/structtz_1_1gl_1_1vk2_1_1_shader_pipeline_data.html b/structtz_1_1gl_1_1vk2_1_1_shader_pipeline_data.html new file mode 100644 index 0000000000..31f72c57c0 --- /dev/null +++ b/structtz_1_1gl_1_1vk2_1_1_shader_pipeline_data.html @@ -0,0 +1,104 @@ + + + + + + + +Topaz: tz::gl::vk2::ShaderPipelineData Struct Reference + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    Topaz 4.1.0.1 +
    +
    C++20 Graphics Engine
    +
    +
    + + + + + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + + +
    +
    +
    tz::gl::vk2::ShaderPipelineData Struct Reference
    +
    +
    +
    + + + + diff --git a/structtz_1_1gl_1_1vk2_1_1_swapchain_1_1_image_acquisition.html b/structtz_1_1gl_1_1vk2_1_1_swapchain_1_1_image_acquisition.html new file mode 100644 index 0000000000..452d369a58 --- /dev/null +++ b/structtz_1_1gl_1_1vk2_1_1_swapchain_1_1_image_acquisition.html @@ -0,0 +1,130 @@ + + + + + + + +Topaz: tz::gl::vk2::Swapchain::ImageAcquisition Struct Reference + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    Topaz 4.1.0.1 +
    +
    C++20 Graphics Engine
    +
    +
    + + + + + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + + +
    +
    + +
    tz::gl::vk2::Swapchain::ImageAcquisition Struct Reference
    +
    +
    + +

    Specify information about a request to acquire the next available presentable image. + More...

    + +

    #include <swapchain.hpp>

    + + + + + + + + + + + +

    +Data Fields

    +const BinarySemaphoresignal_semaphore = nullptr
     Semaphore to signal when the image has been retrieved. If not required, this can be nullptr.
     
    +const Fencesignal_fence = nullptr
     Fence to signal when the image has been retrieved. If not required, this can be nullptr.
     
    +std::uint64_t timeout = std::numeric_limits<std::uint64_t>::max()
     Specifies number of nanoseconds which can pass before failing if no presentable images are available. By default, this is forever.
     
    +

    Detailed Description

    +

    Specify information about a request to acquire the next available presentable image.

    +

    See Swapchain::acquire_image for usage.

    +
    + + + + diff --git a/structtz_1_1gl_1_1vk2_1_1_swapchain_1_1_image_acquisition_result.html b/structtz_1_1gl_1_1vk2_1_1_swapchain_1_1_image_acquisition_result.html new file mode 100644 index 0000000000..7f922f00a4 --- /dev/null +++ b/structtz_1_1gl_1_1vk2_1_1_swapchain_1_1_image_acquisition_result.html @@ -0,0 +1,104 @@ + + + + + + + +Topaz: tz::gl::vk2::Swapchain::ImageAcquisitionResult Struct Reference + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    Topaz 4.1.0.1 +
    +
    C++20 Graphics Engine
    +
    +
    + + + + + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + + +
    +
    +
    tz::gl::vk2::Swapchain::ImageAcquisitionResult Struct Reference
    +
    +
    +
    + + + + diff --git a/structtz_1_1gl_1_1vk2_1_1_swapchain_image_info.html b/structtz_1_1gl_1_1vk2_1_1_swapchain_image_info.html new file mode 100644 index 0000000000..d714e690c9 --- /dev/null +++ b/structtz_1_1gl_1_1vk2_1_1_swapchain_image_info.html @@ -0,0 +1,125 @@ + + + + + + + +Topaz: tz::gl::vk2::SwapchainImageInfo Struct Reference + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    Topaz 4.1.0.1 +
    +
    C++20 Graphics Engine
    +
    +
    + + + + + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + + +
    +
    + +
    tz::gl::vk2::SwapchainImageInfo Struct Reference
    +
    +
    + +

    Specifies parameters of an Image referring to an existing Swapchain image. + More...

    + +

    #include <image.hpp>

    + + + + + + + + +

    +Data Fields

    +const Swapchainswapchain
     Swapchain owning this image. Must not be null.
     
    +std::uint32_t image_index
     Swapchains have a variable number of images. This is the index of the image collection owned by swapchain.
     
    +

    Detailed Description

    +

    Specifies parameters of an Image referring to an existing Swapchain image.

    +
    + + + + diff --git a/structtz_1_1gl_1_1vk2_1_1_swapchain_info.html b/structtz_1_1gl_1_1vk2_1_1_swapchain_info.html new file mode 100644 index 0000000000..d167726212 --- /dev/null +++ b/structtz_1_1gl_1_1vk2_1_1_swapchain_info.html @@ -0,0 +1,137 @@ + + + + + + + +Topaz: tz::gl::vk2::SwapchainInfo Struct Reference + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    Topaz 4.1.0.1 +
    +
    C++20 Graphics Engine
    +
    +
    + + + + + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + + +
    + +
    + +

    Specifies parameters of a newly created Swapchain. + More...

    + +

    #include <swapchain.hpp>

    + + + + + + + + + + + + + + + + + +

    +Data Fields

    +const LogicalDevicedevice
     Pointer to a valid LogicalDevice. This must not be null.
     
    +std::uint32_t swapchain_image_count_minimum
     Minimum number of swapchain images. This must be satisfied by the PhysicalDevice corresponding to device.get_hardware(). See PhysicalDevice::get_surface_capabilities for more information.
     
    +image_format format
     Specifies the format the swapchain image(s) will be created with.
     
    +SurfacePresentMode present_mode
     Specifies the presentation mode the Swapchain will use. This must be satisfied by the PhysicalDevice corresponding to device.get_hardware(). See PhysicalDevice::get_supported_surface_present_modes for more information.
     
    +const Swapchainold_swapchain = nullptr
     Pointer to swapchain which this will replace, if any. Defaults to nullptr.
     
    +

    Detailed Description

    +

    Specifies parameters of a newly created Swapchain.

    +
    + + + + diff --git a/structtz_1_1gl_1_1vk2_1_1_vertex_input_state.html b/structtz_1_1gl_1_1vk2_1_1_vertex_input_state.html new file mode 100644 index 0000000000..067d6918af --- /dev/null +++ b/structtz_1_1gl_1_1vk2_1_1_vertex_input_state.html @@ -0,0 +1,124 @@ + + + + + + + +Topaz: tz::gl::vk2::VertexInputState Struct Reference + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    Topaz 4.1.0.1 +
    +
    C++20 Graphics Engine
    +
    +
    + + + + + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + + +
    + +
    + +

    Specifies how the input vertex data is organised. + More...

    + +

    #include <fixed_function.hpp>

    + + + + + + + + +

    +Data Structures

    struct  Attribute
     Attributes describe data members of a vertex input element. More...
     
    struct  Binding
     Each binding has an index. Attributes refer to an existing binding via its index. More...
     
    +

    Detailed Description

    +

    Specifies how the input vertex data is organised.

    +

    Input state is comprised of zero or more bindings and attributes.

    +
    + + + + diff --git a/structtz_1_1gl_1_1vk2_1_1_vertex_input_state_1_1_attribute.html b/structtz_1_1gl_1_1vk2_1_1_vertex_input_state_1_1_attribute.html new file mode 100644 index 0000000000..a8de29fc77 --- /dev/null +++ b/structtz_1_1gl_1_1vk2_1_1_vertex_input_state_1_1_attribute.html @@ -0,0 +1,133 @@ + + + + + + + +Topaz: tz::gl::vk2::VertexInputState::Attribute Struct Reference + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    Topaz 4.1.0.1 +
    +
    C++20 Graphics Engine
    +
    +
    + + + + + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + + +
    +
    + +
    tz::gl::vk2::VertexInputState::Attribute Struct Reference
    +
    +
    + +

    Attributes describe data members of a vertex input element. + More...

    + +

    #include <fixed_function.hpp>

    + + + + + + + + + + + + + + +

    +Data Fields

    +std::uint32_t shader_location
     Shader Input Location number corresponding to this attribute.
     
    +std::uint32_t binding_id
     Binding id corresponding to this attribute. VertexInputState::bindings must contain an element VertexInputState::Binding such that binding.binding == this->binding_id, then this attribute refers to that binding.
     
    +VertexInputFormat format
     Describes the data components of the attribute are laid out.
     
    +std::uint32_t element_offset
     Distance (in bytes) from the beginning of the vertex input element to this attribute. If this is the first attribute of the vertex input, then this should be 0.
     
    +

    Detailed Description

    +

    Attributes describe data members of a vertex input element.

    +
    + + + + diff --git a/structtz_1_1gl_1_1vk2_1_1_vertex_input_state_1_1_binding.html b/structtz_1_1gl_1_1vk2_1_1_vertex_input_state_1_1_binding.html new file mode 100644 index 0000000000..2b56b886cc --- /dev/null +++ b/structtz_1_1gl_1_1vk2_1_1_vertex_input_state_1_1_binding.html @@ -0,0 +1,129 @@ + + + + + + + +Topaz: tz::gl::vk2::VertexInputState::Binding Struct Reference + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    Topaz 4.1.0.1 +
    +
    C++20 Graphics Engine
    +
    +
    + + + + + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + + +
    +
    + +
    tz::gl::vk2::VertexInputState::Binding Struct Reference
    +
    +
    + +

    Each binding has an index. Attributes refer to an existing binding via its index. + More...

    + +

    #include <fixed_function.hpp>

    + + + + + + + + + + + +

    +Data Fields

    +std::uint32_t binding
     Index of the binding.
     
    +std::uint32_t stride
     Distance (in bytes) between the same binding in the next vertex input element.
     
    +VertexInputRate input_rate
     Describes how often the binding appears throughout the vertex input.
     
    +

    Detailed Description

    +

    Each binding has an index. Attributes refer to an existing binding via its index.

    +
    + + + + diff --git a/structtz_1_1gl_1_1vk2_1_1_viewport_state.html b/structtz_1_1gl_1_1vk2_1_1_viewport_state.html new file mode 100644 index 0000000000..572e4fcd49 --- /dev/null +++ b/structtz_1_1gl_1_1vk2_1_1_viewport_state.html @@ -0,0 +1,112 @@ + + + + + + + +Topaz: tz::gl::vk2::ViewportState Struct Reference + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    Topaz 4.1.0.1 +
    +
    C++20 Graphics Engine
    +
    +
    + + + + + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + + +
    + +
    + +

    Specifies the region of the output that will be rendered to. + More...

    + +

    #include <fixed_function.hpp>

    +

    Detailed Description

    +

    Specifies the region of the output that will be rendered to.

    +

    See create_basic_viewport(tz::vec2) to create a ViewportState for a basic region.

    +
    + + + + diff --git a/structtz_1_1gl_1_1vk2_1_1_vulkan_command.html b/structtz_1_1gl_1_1vk2_1_1_vulkan_command.html new file mode 100644 index 0000000000..3e863fbfed --- /dev/null +++ b/structtz_1_1gl_1_1vk2_1_1_vulkan_command.html @@ -0,0 +1,183 @@ + + + + + + + +Topaz: tz::gl::vk2::VulkanCommand Struct Reference + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    Topaz 4.1.0.1 +
    +
    C++20 Graphics Engine
    +
    +
    + + + + + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + + +
    + +
    + +

    Contains all the possible commands which can be recorded within a CommandBuffer. + More...

    + +

    #include <command.hpp>

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

    +Data Structures

    struct  BeginDynamicRendering
     
    struct  BeginRenderPass
     Record a beginning of some RenderPass. More...
     
    struct  BindBuffer
     Bind a vertex or index Buffer. More...
     
    struct  BindDescriptorSets
     Record a bind of one of more DescriptorSet See CommandBufferRecording::bind_descriptor_sets for usage. More...
     
    struct  BindIndexBuffer
     Bind an index buffer. More...
     
    struct  BindPipeline
     Record a bind of a GraphicsPipeline. More...
     
    struct  BufferCopyBuffer
     Record a copy from one Buffer to another. More...
     
    struct  BufferCopyImage
     Record a copy from one Buffer to an Image. More...
     
    struct  DebugBeginLabel
     
    struct  DebugEndLabel
     
    struct  Dispatch
     
    struct  Draw
     Record a non-indexed draw. More...
     
    struct  DrawIndexed
     Record an indexed draw. More...
     
    struct  DrawIndexedIndirect
     Record an indexed indirect draw. More...
     
    struct  DrawIndexedIndirectCount
     
    struct  DrawIndirect
     Record an unindexed indirect draw. More...
     
    struct  DrawIndirectCount
     
    struct  EndDynamicRendering
     
    struct  EndRenderPass
     Record the ending of some RenderPass. More...
     
    struct  ImageCopyImage
     Copy data from one image to another. More...
     
    struct  SetScissorDynamic
     
    struct  TransitionImageLayout
     Transition an image layout via recording a pipeline barrier into the CommandBuffer. More...
     
    + + + + +

    +Public Types

    +using variant = std::variant< Dispatch, Draw, DrawIndexed, DrawIndirect, DrawIndirectCount, DrawIndexedIndirect, DrawIndexedIndirectCount, BindIndexBuffer, BindPipeline, BindDescriptorSets, BeginRenderPass, EndRenderPass, BeginDynamicRendering, EndDynamicRendering, BufferCopyBuffer, BufferCopyImage, ImageCopyImage, BindBuffer, TransitionImageLayout, SetScissorDynamic, DebugBeginLabel, DebugEndLabel >
     variant type which has alternatives for every single possible recordable command type.
     
    +

    Detailed Description

    +

    Contains all the possible commands which can be recorded within a CommandBuffer.

    +
    + + + + diff --git a/structtz_1_1gl_1_1vk2_1_1_vulkan_command_1_1_begin_dynamic_rendering.html b/structtz_1_1gl_1_1vk2_1_1_vulkan_command_1_1_begin_dynamic_rendering.html new file mode 100644 index 0000000000..8b576a0a51 --- /dev/null +++ b/structtz_1_1gl_1_1vk2_1_1_vulkan_command_1_1_begin_dynamic_rendering.html @@ -0,0 +1,104 @@ + + + + + + + +Topaz: tz::gl::vk2::VulkanCommand::BeginDynamicRendering Struct Reference + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    Topaz 4.1.0.1 +
    +
    C++20 Graphics Engine
    +
    +
    + + + + + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + + +
    +
    +
    tz::gl::vk2::VulkanCommand::BeginDynamicRendering Struct Reference
    +
    +
    +
    + + + + diff --git a/structtz_1_1gl_1_1vk2_1_1_vulkan_command_1_1_begin_render_pass.html b/structtz_1_1gl_1_1vk2_1_1_vulkan_command_1_1_begin_render_pass.html new file mode 100644 index 0000000000..08302267c3 --- /dev/null +++ b/structtz_1_1gl_1_1vk2_1_1_vulkan_command_1_1_begin_render_pass.html @@ -0,0 +1,122 @@ + + + + + + + +Topaz: tz::gl::vk2::VulkanCommand::BeginRenderPass Struct Reference + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    Topaz 4.1.0.1 +
    +
    C++20 Graphics Engine
    +
    +
    + + + + + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + + +
    +
    + +
    tz::gl::vk2::VulkanCommand::BeginRenderPass Struct Reference
    +
    +
    + +

    Record a beginning of some RenderPass. + More...

    + +

    #include <command.hpp>

    + + + + + +

    +Data Fields

    +Framebufferframebuffer
     Framebuffer containing the RenderPass.
     
    +

    Detailed Description

    +

    Record a beginning of some RenderPass.

    +

    See CommandBufferRecording::RenderPassRun for usage.

    +
    + + + + diff --git a/structtz_1_1gl_1_1vk2_1_1_vulkan_command_1_1_bind_buffer.html b/structtz_1_1gl_1_1vk2_1_1_vulkan_command_1_1_bind_buffer.html new file mode 100644 index 0000000000..2be77d7a3b --- /dev/null +++ b/structtz_1_1gl_1_1vk2_1_1_vulkan_command_1_1_bind_buffer.html @@ -0,0 +1,121 @@ + + + + + + + +Topaz: tz::gl::vk2::VulkanCommand::BindBuffer Struct Reference + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    Topaz 4.1.0.1 +
    +
    C++20 Graphics Engine
    +
    +
    + + + + + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + + +
    +
    + +
    tz::gl::vk2::VulkanCommand::BindBuffer Struct Reference
    +
    +
    + +

    Bind a vertex or index Buffer. + More...

    + +

    #include <command.hpp>

    + + + + + +

    +Data Fields

    +const Bufferbuffer
     Buffer to bind, usage must contain one of BufferUsage::VertexBuffer or BufferUsage::index_buffer.
     
    +

    Detailed Description

    +

    Bind a vertex or index Buffer.

    +
    + + + + diff --git a/structtz_1_1gl_1_1vk2_1_1_vulkan_command_1_1_bind_descriptor_sets.html b/structtz_1_1gl_1_1vk2_1_1_vulkan_command_1_1_bind_descriptor_sets.html new file mode 100644 index 0000000000..ce65aca8d9 --- /dev/null +++ b/structtz_1_1gl_1_1vk2_1_1_vulkan_command_1_1_bind_descriptor_sets.html @@ -0,0 +1,133 @@ + + + + + + + +Topaz: tz::gl::vk2::VulkanCommand::BindDescriptorSets Struct Reference + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    Topaz 4.1.0.1 +
    +
    C++20 Graphics Engine
    +
    +
    + + + + + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + + +
    +
    + +
    tz::gl::vk2::VulkanCommand::BindDescriptorSets Struct Reference
    +
    +
    + +

    Record a bind of one of more DescriptorSet See CommandBufferRecording::bind_descriptor_sets for usage. + More...

    + +

    #include <command.hpp>

    + + + + + + + + + + + + + + +

    +Data Fields

    +const PipelineLayoutpipeline_layout
     PipelineLayout representing the list of layouts matching each provided set.
     
    +PipelineContext context
     Pipeline bind point.
     
    +const tz::basic_list< const DescriptorSet * > descriptor_sets
     List of DescriptorSet to bind.
     
    +std::uint32_t first_set_id
     The operation causes the sets [first_set_id, first_set_id + descriptor_sets.length() + 1] to refer to the DescriptorSets within descriptor_sets.
     
    +

    Detailed Description

    +

    Record a bind of one of more DescriptorSet See CommandBufferRecording::bind_descriptor_sets for usage.

    +
    + + + + diff --git a/structtz_1_1gl_1_1vk2_1_1_vulkan_command_1_1_bind_index_buffer.html b/structtz_1_1gl_1_1vk2_1_1_vulkan_command_1_1_bind_index_buffer.html new file mode 100644 index 0000000000..0164069d2c --- /dev/null +++ b/structtz_1_1gl_1_1vk2_1_1_vulkan_command_1_1_bind_index_buffer.html @@ -0,0 +1,112 @@ + + + + + + + +Topaz: tz::gl::vk2::VulkanCommand::BindIndexBuffer Struct Reference + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    Topaz 4.1.0.1 +
    +
    C++20 Graphics Engine
    +
    +
    + + + + + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + + +
    +
    +
    tz::gl::vk2::VulkanCommand::BindIndexBuffer Struct Reference
    +
    +
    + +

    Bind an index buffer. + More...

    + +

    #include <command.hpp>

    +

    Detailed Description

    +

    Bind an index buffer.

    +

    See CommandBufferRecording::bind_index_buffer for usage.

    +
    + + + + diff --git a/structtz_1_1gl_1_1vk2_1_1_vulkan_command_1_1_bind_pipeline.html b/structtz_1_1gl_1_1vk2_1_1_vulkan_command_1_1_bind_pipeline.html new file mode 100644 index 0000000000..aba5476df0 --- /dev/null +++ b/structtz_1_1gl_1_1vk2_1_1_vulkan_command_1_1_bind_pipeline.html @@ -0,0 +1,122 @@ + + + + + + + +Topaz: tz::gl::vk2::VulkanCommand::BindPipeline Struct Reference + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    Topaz 4.1.0.1 +
    +
    C++20 Graphics Engine
    +
    +
    + + + + + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + + +
    +
    + +
    tz::gl::vk2::VulkanCommand::BindPipeline Struct Reference
    +
    +
    + +

    Record a bind of a GraphicsPipeline. + More...

    + +

    #include <command.hpp>

    + + + + + +

    +Data Fields

    +const Pipelinepipeline
     Pipeline to be bound. Must not be null.
     
    +

    Detailed Description

    +

    Record a bind of a GraphicsPipeline.

    +

    See CommandBufferRecording::bind_pipeline for usage.

    +
    + + + + diff --git a/structtz_1_1gl_1_1vk2_1_1_vulkan_command_1_1_buffer_copy_buffer.html b/structtz_1_1gl_1_1vk2_1_1_vulkan_command_1_1_buffer_copy_buffer.html new file mode 100644 index 0000000000..b8852bb7a6 --- /dev/null +++ b/structtz_1_1gl_1_1vk2_1_1_vulkan_command_1_1_buffer_copy_buffer.html @@ -0,0 +1,134 @@ + + + + + + + +Topaz: tz::gl::vk2::VulkanCommand::BufferCopyBuffer Struct Reference + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    Topaz 4.1.0.1 +
    +
    C++20 Graphics Engine
    +
    +
    + + + + + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + + +
    +
    + +
    tz::gl::vk2::VulkanCommand::BufferCopyBuffer Struct Reference
    +
    +
    + +

    Record a copy from one Buffer to another. + More...

    + +

    #include <command.hpp>

    + + + + + + + + + + + + + + +

    +Data Fields

    +const Buffersrc
     Buffer to copy data from. Must not be null.
     
    +Bufferdst
     Buffer to copy to. Must not be null.
     
    +std::size_t src_offset = 0
     Offset, in bytes, from the beginning of the source buffer to copy from.
     
    +std::size_t dst_offset = 0
     Offset, in bytes, from the beginning of the destination buffer to copy to.
     
    +

    Detailed Description

    +

    Record a copy from one Buffer to another.

    +

    The first N bytes will be copied from the source buffer to the destination buffer, where N == min(src->size(), dst->size())

    +
    + + + + diff --git a/structtz_1_1gl_1_1vk2_1_1_vulkan_command_1_1_buffer_copy_image.html b/structtz_1_1gl_1_1vk2_1_1_vulkan_command_1_1_buffer_copy_image.html new file mode 100644 index 0000000000..0ca4c10760 --- /dev/null +++ b/structtz_1_1gl_1_1vk2_1_1_vulkan_command_1_1_buffer_copy_image.html @@ -0,0 +1,130 @@ + + + + + + + +Topaz: tz::gl::vk2::VulkanCommand::BufferCopyImage Struct Reference + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    Topaz 4.1.0.1 +
    +
    C++20 Graphics Engine
    +
    +
    + + + + + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + + +
    +
    + +
    tz::gl::vk2::VulkanCommand::BufferCopyImage Struct Reference
    +
    +
    + +

    Record a copy from one Buffer to an Image. + More...

    + +

    #include <command.hpp>

    + + + + + + + + + + + +

    +Data Fields

    +const Buffersrc
     Buffer to copy data from. Must not be null.
     
    +Imagedst
     Buffer to copy to. Must not be null.
     
    +ImageAspectFlags image_aspects
     Aspect of image in this context.
     
    +

    Detailed Description

    +

    Record a copy from one Buffer to an Image.

    +

    The first N bytes will be copied from the source buffer to the destination image, there N == min(src->size(), dst->size()).

    +
    + + + + diff --git a/structtz_1_1gl_1_1vk2_1_1_vulkan_command_1_1_debug_begin_label.html b/structtz_1_1gl_1_1vk2_1_1_vulkan_command_1_1_debug_begin_label.html new file mode 100644 index 0000000000..9fe390e8b0 --- /dev/null +++ b/structtz_1_1gl_1_1vk2_1_1_vulkan_command_1_1_debug_begin_label.html @@ -0,0 +1,104 @@ + + + + + + + +Topaz: tz::gl::vk2::VulkanCommand::DebugBeginLabel Struct Reference + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    Topaz 4.1.0.1 +
    +
    C++20 Graphics Engine
    +
    +
    + + + + + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + + +
    +
    +
    tz::gl::vk2::VulkanCommand::DebugBeginLabel Struct Reference
    +
    +
    +
    + + + + diff --git a/structtz_1_1gl_1_1vk2_1_1_vulkan_command_1_1_debug_end_label.html b/structtz_1_1gl_1_1vk2_1_1_vulkan_command_1_1_debug_end_label.html new file mode 100644 index 0000000000..234105c22c --- /dev/null +++ b/structtz_1_1gl_1_1vk2_1_1_vulkan_command_1_1_debug_end_label.html @@ -0,0 +1,104 @@ + + + + + + + +Topaz: tz::gl::vk2::VulkanCommand::DebugEndLabel Struct Reference + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    Topaz 4.1.0.1 +
    +
    C++20 Graphics Engine
    +
    +
    + + + + + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + + +
    +
    +
    tz::gl::vk2::VulkanCommand::DebugEndLabel Struct Reference
    +
    +
    +
    + + + + diff --git a/structtz_1_1gl_1_1vk2_1_1_vulkan_command_1_1_dispatch.html b/structtz_1_1gl_1_1vk2_1_1_vulkan_command_1_1_dispatch.html new file mode 100644 index 0000000000..e6b4eda85c --- /dev/null +++ b/structtz_1_1gl_1_1vk2_1_1_vulkan_command_1_1_dispatch.html @@ -0,0 +1,104 @@ + + + + + + + +Topaz: tz::gl::vk2::VulkanCommand::Dispatch Struct Reference + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    Topaz 4.1.0.1 +
    +
    C++20 Graphics Engine
    +
    +
    + + + + + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + + +
    +
    +
    tz::gl::vk2::VulkanCommand::Dispatch Struct Reference
    +
    +
    +
    + + + + diff --git a/structtz_1_1gl_1_1vk2_1_1_vulkan_command_1_1_draw.html b/structtz_1_1gl_1_1vk2_1_1_vulkan_command_1_1_draw.html new file mode 100644 index 0000000000..f0a30aa80a --- /dev/null +++ b/structtz_1_1gl_1_1vk2_1_1_vulkan_command_1_1_draw.html @@ -0,0 +1,134 @@ + + + + + + + +Topaz: tz::gl::vk2::VulkanCommand::Draw Struct Reference + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    Topaz 4.1.0.1 +
    +
    C++20 Graphics Engine
    +
    +
    + + + + + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + + +
    +
    + +
    tz::gl::vk2::VulkanCommand::Draw Struct Reference
    +
    +
    + +

    Record a non-indexed draw. + More...

    + +

    #include <command.hpp>

    + + + + + + + + + + + + + + +

    +Data Fields

    +std::uint32_t vertex_count
     number of vertices to draw.
     
    +std::uint32_t instance_count = 1
     number of instances to draw (Default 1).
     
    +std::uint32_t first_vertex = 0
     Index of the first vertex to draw (Default 0).
     
    +std::uint32_t first_instance = 0
     Instance ID of the first instance to draw (Default 0).
     
    +

    Detailed Description

    +

    Record a non-indexed draw.

    +

    See CommandBufferRecording::draw for usage.

    +
    + + + + diff --git a/structtz_1_1gl_1_1vk2_1_1_vulkan_command_1_1_draw_indexed.html b/structtz_1_1gl_1_1vk2_1_1_vulkan_command_1_1_draw_indexed.html new file mode 100644 index 0000000000..de2f7991e1 --- /dev/null +++ b/structtz_1_1gl_1_1vk2_1_1_vulkan_command_1_1_draw_indexed.html @@ -0,0 +1,112 @@ + + + + + + + +Topaz: tz::gl::vk2::VulkanCommand::DrawIndexed Struct Reference + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    Topaz 4.1.0.1 +
    +
    C++20 Graphics Engine
    +
    +
    + + + + + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + + +
    +
    +
    tz::gl::vk2::VulkanCommand::DrawIndexed Struct Reference
    +
    +
    + +

    Record an indexed draw. + More...

    + +

    #include <command.hpp>

    +

    Detailed Description

    +

    Record an indexed draw.

    +

    See CommandBufferRecording::draw_indexed for usage.

    +
    + + + + diff --git a/structtz_1_1gl_1_1vk2_1_1_vulkan_command_1_1_draw_indexed_indirect.html b/structtz_1_1gl_1_1vk2_1_1_vulkan_command_1_1_draw_indexed_indirect.html new file mode 100644 index 0000000000..b2597160dd --- /dev/null +++ b/structtz_1_1gl_1_1vk2_1_1_vulkan_command_1_1_draw_indexed_indirect.html @@ -0,0 +1,112 @@ + + + + + + + +Topaz: tz::gl::vk2::VulkanCommand::DrawIndexedIndirect Struct Reference + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    Topaz 4.1.0.1 +
    +
    C++20 Graphics Engine
    +
    +
    + + + + + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + + +
    +
    +
    tz::gl::vk2::VulkanCommand::DrawIndexedIndirect Struct Reference
    +
    +
    + +

    Record an indexed indirect draw. + More...

    + +

    #include <command.hpp>

    +

    Detailed Description

    +

    Record an indexed indirect draw.

    +

    See COmmandBufferRecording::draw_indexed_indirect for usage.

    +
    + + + + diff --git a/structtz_1_1gl_1_1vk2_1_1_vulkan_command_1_1_draw_indexed_indirect_count.html b/structtz_1_1gl_1_1vk2_1_1_vulkan_command_1_1_draw_indexed_indirect_count.html new file mode 100644 index 0000000000..937186abee --- /dev/null +++ b/structtz_1_1gl_1_1vk2_1_1_vulkan_command_1_1_draw_indexed_indirect_count.html @@ -0,0 +1,104 @@ + + + + + + + +Topaz: tz::gl::vk2::VulkanCommand::DrawIndexedIndirectCount Struct Reference + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    Topaz 4.1.0.1 +
    +
    C++20 Graphics Engine
    +
    +
    + + + + + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + + +
    +
    +
    tz::gl::vk2::VulkanCommand::DrawIndexedIndirectCount Struct Reference
    +
    +
    +
    + + + + diff --git a/structtz_1_1gl_1_1vk2_1_1_vulkan_command_1_1_draw_indirect.html b/structtz_1_1gl_1_1vk2_1_1_vulkan_command_1_1_draw_indirect.html new file mode 100644 index 0000000000..65ec10e4ca --- /dev/null +++ b/structtz_1_1gl_1_1vk2_1_1_vulkan_command_1_1_draw_indirect.html @@ -0,0 +1,112 @@ + + + + + + + +Topaz: tz::gl::vk2::VulkanCommand::DrawIndirect Struct Reference + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    Topaz 4.1.0.1 +
    +
    C++20 Graphics Engine
    +
    +
    + + + + + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + + +
    +
    +
    tz::gl::vk2::VulkanCommand::DrawIndirect Struct Reference
    +
    +
    + +

    Record an unindexed indirect draw. + More...

    + +

    #include <command.hpp>

    +

    Detailed Description

    +

    Record an unindexed indirect draw.

    +

    See COmmandBufferRecording::draw_indirect for usage.

    +
    + + + + diff --git a/structtz_1_1gl_1_1vk2_1_1_vulkan_command_1_1_draw_indirect_count.html b/structtz_1_1gl_1_1vk2_1_1_vulkan_command_1_1_draw_indirect_count.html new file mode 100644 index 0000000000..f24f758b86 --- /dev/null +++ b/structtz_1_1gl_1_1vk2_1_1_vulkan_command_1_1_draw_indirect_count.html @@ -0,0 +1,104 @@ + + + + + + + +Topaz: tz::gl::vk2::VulkanCommand::DrawIndirectCount Struct Reference + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    Topaz 4.1.0.1 +
    +
    C++20 Graphics Engine
    +
    +
    + + + + + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + + +
    +
    +
    tz::gl::vk2::VulkanCommand::DrawIndirectCount Struct Reference
    +
    +
    +
    + + + + diff --git a/structtz_1_1gl_1_1vk2_1_1_vulkan_command_1_1_end_dynamic_rendering.html b/structtz_1_1gl_1_1vk2_1_1_vulkan_command_1_1_end_dynamic_rendering.html new file mode 100644 index 0000000000..349fa7180c --- /dev/null +++ b/structtz_1_1gl_1_1vk2_1_1_vulkan_command_1_1_end_dynamic_rendering.html @@ -0,0 +1,104 @@ + + + + + + + +Topaz: tz::gl::vk2::VulkanCommand::EndDynamicRendering Struct Reference + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    Topaz 4.1.0.1 +
    +
    C++20 Graphics Engine
    +
    +
    + + + + + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + + +
    +
    +
    tz::gl::vk2::VulkanCommand::EndDynamicRendering Struct Reference
    +
    +
    +
    + + + + diff --git a/structtz_1_1gl_1_1vk2_1_1_vulkan_command_1_1_end_render_pass.html b/structtz_1_1gl_1_1vk2_1_1_vulkan_command_1_1_end_render_pass.html new file mode 100644 index 0000000000..5d2615793c --- /dev/null +++ b/structtz_1_1gl_1_1vk2_1_1_vulkan_command_1_1_end_render_pass.html @@ -0,0 +1,122 @@ + + + + + + + +Topaz: tz::gl::vk2::VulkanCommand::EndRenderPass Struct Reference + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    Topaz 4.1.0.1 +
    +
    C++20 Graphics Engine
    +
    +
    + + + + + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + + +
    +
    + +
    tz::gl::vk2::VulkanCommand::EndRenderPass Struct Reference
    +
    +
    + +

    Record the ending of some RenderPass. + More...

    + +

    #include <command.hpp>

    + + + + + +

    +Data Fields

    +Framebufferframebuffer
     Framebuffer containing the RenderPass.
     
    +

    Detailed Description

    +

    Record the ending of some RenderPass.

    +

    See CommandBufferRecording::RenderPassRun for usage.

    +
    + + + + diff --git a/structtz_1_1gl_1_1vk2_1_1_vulkan_command_1_1_image_copy_image.html b/structtz_1_1gl_1_1vk2_1_1_vulkan_command_1_1_image_copy_image.html new file mode 100644 index 0000000000..f4a570df74 --- /dev/null +++ b/structtz_1_1gl_1_1vk2_1_1_vulkan_command_1_1_image_copy_image.html @@ -0,0 +1,130 @@ + + + + + + + +Topaz: tz::gl::vk2::VulkanCommand::ImageCopyImage Struct Reference + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    Topaz 4.1.0.1 +
    +
    C++20 Graphics Engine
    +
    +
    + + + + + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + + +
    +
    + +
    tz::gl::vk2::VulkanCommand::ImageCopyImage Struct Reference
    +
    +
    + +

    Copy data from one image to another. + More...

    + +

    #include <command.hpp>

    + + + + + + + + + + + +

    +Data Fields

    +const Imagesrc
     Image to copy from.
     
    +Imagedst
     Image to copy to.
     
    +ImageAspectFlags image_aspects
     Aspect of both images.
     
    +

    Detailed Description

    +

    Copy data from one image to another.

    +

    Note: If image sizes do not match, the minimums of their dimensions are represented as a subregion to copy over, starting at [0, 0] for each image.

    +
    + + + + diff --git a/structtz_1_1gl_1_1vk2_1_1_vulkan_command_1_1_set_scissor_dynamic.html b/structtz_1_1gl_1_1vk2_1_1_vulkan_command_1_1_set_scissor_dynamic.html new file mode 100644 index 0000000000..02024ba961 --- /dev/null +++ b/structtz_1_1gl_1_1vk2_1_1_vulkan_command_1_1_set_scissor_dynamic.html @@ -0,0 +1,104 @@ + + + + + + + +Topaz: tz::gl::vk2::VulkanCommand::SetScissorDynamic Struct Reference + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    Topaz 4.1.0.1 +
    +
    C++20 Graphics Engine
    +
    +
    + + + + + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + + +
    +
    +
    tz::gl::vk2::VulkanCommand::SetScissorDynamic Struct Reference
    +
    +
    +
    + + + + diff --git a/structtz_1_1gl_1_1vk2_1_1_vulkan_command_1_1_transition_image_layout.html b/structtz_1_1gl_1_1vk2_1_1_vulkan_command_1_1_transition_image_layout.html new file mode 100644 index 0000000000..e009d83a28 --- /dev/null +++ b/structtz_1_1gl_1_1vk2_1_1_vulkan_command_1_1_transition_image_layout.html @@ -0,0 +1,154 @@ + + + + + + + +Topaz: tz::gl::vk2::VulkanCommand::TransitionImageLayout Struct Reference + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    Topaz 4.1.0.1 +
    +
    C++20 Graphics Engine
    +
    +
    + + + + + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + + +
    +
    + +
    tz::gl::vk2::VulkanCommand::TransitionImageLayout Struct Reference
    +
    +
    + +

    Transition an image layout via recording a pipeline barrier into the CommandBuffer. + More...

    + +

    #include <command.hpp>

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

    +Data Fields

    +Imageimage
     Image to transition.
     
    +ImageLayout target_layout
     Desired ImageLayout of image after the command has finished execution.
     
    +AccessFlagField source_access
     All preceeding operations within the recorded CommandBuffer that satisfy an access method specified here will not be re-ordered (guaranteed to be before every candidate after the barrier)
     
    +AccessFlagField destination_access
     All succeding operations within the recorded CommandBuffer that satisfy an access method specified here will not be re-ordered (guaranteed to be after every candidate before the barrier).
     
    +PipelineStage source_stage
     Stage that the barrier blocks after.
     
    +PipelineStage destination_stage
     Stage that the barrier blocks before.
     
    +ImageAspectFlags image_aspects
     Aspect of image in this context.
     
    +tz::basic_list< std::uint32_t > affected_mip_levels = {0u}
     List of affected mip levels. Must be in ascending-order and with no gaps. E.g {0, 1, 2} is fine, {0, 2, 3} is not and neither is {0, 2, 1}. Default is {0}.
     
    +tz::basic_list< std::uint32_t > affected_layers = {0u}
     List of affected array layers. Must be in ascending-order and with no gaps. E.g {0, 1, 2} is fine, {0, 2, 3} is not and neither is {0, 2, 1}. Default is {0}.
     
    +

    Detailed Description

    +

    Transition an image layout via recording a pipeline barrier into the CommandBuffer.

    +
    Postcondition
    After submission, image->get_layout() == .target_layout is guaranteed to be true, however this may actually occur before some hardware::Queue has actually fully invoked this command. For that reason, if image->get_layout() is accessed before the submission of this command has fully finished (see hardware::Queue::SubmitInfo::execution_complete_fence), then the behaviour is undefined.
    +
    + + + + diff --git a/structtz_1_1gl_1_1vk2_1_1_vulkan_instance_info.html b/structtz_1_1gl_1_1vk2_1_1_vulkan_instance_info.html new file mode 100644 index 0000000000..2f31cfec93 --- /dev/null +++ b/structtz_1_1gl_1_1vk2_1_1_vulkan_instance_info.html @@ -0,0 +1,133 @@ + + + + + + + +Topaz: tz::gl::vk2::VulkanInstanceInfo Struct Reference + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    Topaz 4.1.0.1 +
    +
    C++20 Graphics Engine
    +
    +
    + + + + + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + + +
    +
    + +
    tz::gl::vk2::VulkanInstanceInfo Struct Reference
    +
    +
    + +

    Specifies creation flags for a VulkanInstance. + More...

    + +

    #include <tz_vulkan.hpp>

    + + + + + + + + + + + + + + +

    +Data Fields

    +tz::game_info game_info
     Information about the application.
     
    +InstanceExtensionList extensions = {}
     List of extensions to enable. Empty by default.
     
    +const tz::wsi::windowwindow = nullptr
     Window from which to create a WindowSurface. If nullptr is passed, no WindowSurface is created. Defaults to nullptr.
     
    +bool enable_validation_layers = true
     Whether we should attempt to load validation layers or not.
     
    +

    Detailed Description

    +

    Specifies creation flags for a VulkanInstance.

    +
    + + + + diff --git a/structtz_1_1gl_1_1vk2_1_1buffer__info.html b/structtz_1_1gl_1_1vk2_1_1buffer__info.html new file mode 100644 index 0000000000..58acc91f53 --- /dev/null +++ b/structtz_1_1gl_1_1vk2_1_1buffer__info.html @@ -0,0 +1,133 @@ + + + + + + + +Topaz: tz::gl::vk2::buffer_info Struct Reference + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    Topaz 4.1.0.1 +
    +
    C++20 Graphics Engine
    +
    +
    + + + + + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + + +
    +
    + +
    tz::gl::vk2::buffer_info Struct Reference
    +
    +
    + +

    Specifies creation flags for a Buffer. + More...

    + +

    #include <buffer.hpp>

    + + + + + + + + + + + + + + +

    +Data Fields

    +const LogicalDevicedevice
     Owning device. Must not be nullptr or null.
     
    +std::size_t size_bytes
     Size of the buffer, in bytes.
     
    +BufferUsageField usage
     Field containing all usages of the buffer.
     
    +MemoryResidency residency
     Describes where in memory buffer data will lie.
     
    +

    Detailed Description

    +

    Specifies creation flags for a Buffer.

    +
    + + + + diff --git a/structtz_1_1gl_1_1vk2_1_1detail_1_1_device_feature_info.html b/structtz_1_1gl_1_1vk2_1_1detail_1_1_device_feature_info.html new file mode 100644 index 0000000000..977985159f --- /dev/null +++ b/structtz_1_1gl_1_1vk2_1_1detail_1_1_device_feature_info.html @@ -0,0 +1,104 @@ + + + + + + + +Topaz: tz::gl::vk2::detail::DeviceFeatureInfo Struct Reference + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    Topaz 4.1.0.1 +
    +
    C++20 Graphics Engine
    +
    +
    + + + + + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + + +
    +
    +
    tz::gl::vk2::detail::DeviceFeatureInfo Struct Reference
    +
    +
    +
    + + + + diff --git a/structtz_1_1gl_1_1vk2_1_1draw__indexed__indirect__command.html b/structtz_1_1gl_1_1vk2_1_1draw__indexed__indirect__command.html new file mode 100644 index 0000000000..f6d9e0e7b2 --- /dev/null +++ b/structtz_1_1gl_1_1vk2_1_1draw__indexed__indirect__command.html @@ -0,0 +1,104 @@ + + + + + + + +Topaz: tz::gl::vk2::draw_indexed_indirect_command Struct Reference + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    Topaz 4.1.0.1 +
    +
    C++20 Graphics Engine
    +
    +
    + + + + + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + + +
    +
    +
    tz::gl::vk2::draw_indexed_indirect_command Struct Reference
    +
    +
    +
    + + + + diff --git a/structtz_1_1gl_1_1vk2_1_1draw__indirect__command.html b/structtz_1_1gl_1_1vk2_1_1draw__indirect__command.html new file mode 100644 index 0000000000..2cd3bf9978 --- /dev/null +++ b/structtz_1_1gl_1_1vk2_1_1draw__indirect__command.html @@ -0,0 +1,104 @@ + + + + + + + +Topaz: tz::gl::vk2::draw_indirect_command Struct Reference + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    Topaz 4.1.0.1 +
    +
    C++20 Graphics Engine
    +
    +
    + + + + + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + + +
    +
    +
    tz::gl::vk2::draw_indirect_command Struct Reference
    +
    +
    +
    + + + + diff --git a/structtz_1_1gl_1_1vk2_1_1hardware_1_1_queue_1_1_present_info.html b/structtz_1_1gl_1_1vk2_1_1hardware_1_1_queue_1_1_present_info.html new file mode 100644 index 0000000000..e1459eda53 --- /dev/null +++ b/structtz_1_1gl_1_1vk2_1_1hardware_1_1_queue_1_1_present_info.html @@ -0,0 +1,129 @@ + + + + + + + +Topaz: tz::gl::vk2::hardware::Queue::PresentInfo Struct Reference + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    Topaz 4.1.0.1 +
    +
    C++20 Graphics Engine
    +
    +
    + + + + + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + + +
    +
    + +
    tz::gl::vk2::hardware::Queue::PresentInfo Struct Reference
    +
    +
    + +

    Specifies information about a present request issued to a Queue. + More...

    + +

    #include <queue.hpp>

    + + + + + + + + + + + +

    +Data Fields

    +tz::basic_list< const BinarySemaphore * > wait_semaphores
     List of wait semaphores. The present request will not be issued until all of these semaphores are signalled. Note that once they are signalled, they are automatically set to unsignalled again.
     
    +const Swapchainswapchain
     Pointer to a swapchain from which an image will be sourced. This must not be nullptr.
     
    +std::uint32_t swapchain_image_index
     Index to the swapchain's images which will be presented to the surface. The index must have value such that swapchain_image_index < swapchain.get_image_views().size()
     
    +

    Detailed Description

    +

    Specifies information about a present request issued to a Queue.

    +
    + + + + diff --git a/structtz_1_1gl_1_1vk2_1_1hardware_1_1_queue_1_1_submit_info.html b/structtz_1_1gl_1_1vk2_1_1hardware_1_1_queue_1_1_submit_info.html new file mode 100644 index 0000000000..9e736c9678 --- /dev/null +++ b/structtz_1_1gl_1_1vk2_1_1hardware_1_1_queue_1_1_submit_info.html @@ -0,0 +1,141 @@ + + + + + + + +Topaz: tz::gl::vk2::hardware::Queue::SubmitInfo Struct Reference + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    Topaz 4.1.0.1 +
    +
    C++20 Graphics Engine
    +
    +
    + + + + + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + + +
    +
    + +
    tz::gl::vk2::hardware::Queue::SubmitInfo Struct Reference
    +
    +
    + +

    Specifies information about a submission of GPU work to a Queue. + More...

    + +

    #include <queue.hpp>

    + + + + + + +

    +Data Structures

    struct  SignalInfo
     
    struct  WaitInfo
     
    + + + + + + + + + + + + + +

    +Data Fields

    +tz::basic_list< const CommandBuffer * > command_buffers
     List of command buffers to submit.
     
    +tz::basic_list< WaitInfowaits
     List of wait semaphores. Command buffers for this submission batch will not begin execution until these semaphores are signalled. Note that when the wait is complete, each semaphore will be automatically set to unsignalled again.
     
    +tz::basic_list< SignalInfosignals
     List of signal semaphores. Once the command buffers associated with this submission have completed execution, these semaphores are signalled.
     
    +const Fenceexecution_complete_fence
     Optional fence which is signalled once all command buffers have finished execution. If this is nullptr, there is no way to verify that the command buffers associated with this submission have completed.
     
    +

    Detailed Description

    +

    Specifies information about a submission of GPU work to a Queue.

    +
    + + + + diff --git a/structtz_1_1gl_1_1vk2_1_1hardware_1_1_queue_1_1_submit_info_1_1_signal_info.html b/structtz_1_1gl_1_1vk2_1_1hardware_1_1_queue_1_1_submit_info_1_1_signal_info.html new file mode 100644 index 0000000000..46fd2c5994 --- /dev/null +++ b/structtz_1_1gl_1_1vk2_1_1hardware_1_1_queue_1_1_submit_info_1_1_signal_info.html @@ -0,0 +1,104 @@ + + + + + + + +Topaz: tz::gl::vk2::hardware::Queue::SubmitInfo::SignalInfo Struct Reference + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    Topaz 4.1.0.1 +
    +
    C++20 Graphics Engine
    +
    +
    + + + + + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + + +
    +
    +
    tz::gl::vk2::hardware::Queue::SubmitInfo::SignalInfo Struct Reference
    +
    +
    +
    + + + + diff --git a/structtz_1_1gl_1_1vk2_1_1hardware_1_1_queue_1_1_submit_info_1_1_wait_info.html b/structtz_1_1gl_1_1vk2_1_1hardware_1_1_queue_1_1_submit_info_1_1_wait_info.html new file mode 100644 index 0000000000..03a4a61a38 --- /dev/null +++ b/structtz_1_1gl_1_1vk2_1_1hardware_1_1_queue_1_1_submit_info_1_1_wait_info.html @@ -0,0 +1,118 @@ + + + + + + + +Topaz: tz::gl::vk2::hardware::Queue::SubmitInfo::WaitInfo Struct Reference + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    Topaz 4.1.0.1 +
    +
    C++20 Graphics Engine
    +
    +
    + + + + + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + + +
    +
    + +
    tz::gl::vk2::hardware::Queue::SubmitInfo::WaitInfo Struct Reference
    +
    +
    + + + + + + + + +

    +Data Fields

    +const BinarySemaphorewait_semaphore
     Semaphore which will be waited on.
     
    +PipelineStage wait_stage
     Information about when specifically the semaphore will be waited on.
     
    +
    + + + + diff --git a/structtz_1_1gl_1_1vk2_1_1hardware_1_1_queue_info.html b/structtz_1_1gl_1_1vk2_1_1hardware_1_1_queue_info.html new file mode 100644 index 0000000000..f31c0dd524 --- /dev/null +++ b/structtz_1_1gl_1_1vk2_1_1hardware_1_1_queue_info.html @@ -0,0 +1,104 @@ + + + + + + + +Topaz: tz::gl::vk2::hardware::QueueInfo Struct Reference + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    Topaz 4.1.0.1 +
    +
    C++20 Graphics Engine
    +
    +
    + + + + + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + + +
    +
    +
    tz::gl::vk2::hardware::QueueInfo Struct Reference
    +
    +
    +
    + + + + diff --git a/structtz_1_1gl_1_1vk2_1_1image__info.html b/structtz_1_1gl_1_1vk2_1_1image__info.html new file mode 100644 index 0000000000..3696434efa --- /dev/null +++ b/structtz_1_1gl_1_1vk2_1_1image__info.html @@ -0,0 +1,153 @@ + + + + + + + +Topaz: tz::gl::vk2::image_info Struct Reference + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    Topaz 4.1.0.1 +
    +
    C++20 Graphics Engine
    +
    +
    + + + + + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + + +
    + +
    + +

    Specifies creation flags for an Image. + More...

    + +

    #include <image.hpp>

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

    +Data Fields

    +const LogicalDevicedevice
     LogicalDevice owning this image. Must not be null.
     
    +image_format format
     Format of the image.
     
    +tz::vec2ui dimensions
     Dimensions of the image, in pixels.
     
    +ImageUsageField usage
     Field of expected usages of the image. For example, if you wish to transition the image to ImageLayout::TransferTo then this usage field must contain ImageUsage::TransferDestination.
     
    +MemoryResidency residency
     Describes where the image is laid out in memory.
     
    +std::uint32_t mip_levels = 1
     Specifies how many mip levels there are. Default 1.
     
    +std::uint32_t array_layers = 1
     Specifies how many layers there are. Default 1.
     
    +SampleCount sample_count = SampleCount::One
     Specifies how many times the image is sampled per pixel. Default 1.
     
    +ImageTiling image_tiling = ImageTiling::Optimal
     Specifies image tiling. Default ImageTiling::Optimal.
     
    +

    Detailed Description

    +

    Specifies creation flags for an Image.

    +
    + + + + diff --git a/structtz_1_1initialise__info.html b/structtz_1_1initialise__info.html new file mode 100644 index 0000000000..625cbf3ae0 --- /dev/null +++ b/structtz_1_1initialise__info.html @@ -0,0 +1,194 @@ + + + + + + + +Topaz: tz::initialise_info Struct Reference + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    Topaz 4.1.0.1 +
    +
    C++20 Graphics Engine
    +
    +
    + + + + + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + + +
    +
    + +
    tz::initialise_info Struct Reference
    +
    +
    + +

    Specifies everything needed to initialise the engine. + More...

    + +

    #include <tz.hpp>

    + + + + + + + + + + +

    +Data Fields

    const char * name = "Untitled"
     
    tz::version version = {1, 0, 0, tz::version_type::normal}
     
    tz::vec2ui dimensions = {800u, 600u}
     
    application_flags flags = {}
     
    +

    Detailed Description

    +

    Specifies everything needed to initialise the engine.

    +

    Field Documentation

    + +

    ◆ dimensions

    + +
    +
    + + + + +
    tz::vec2ui tz::initialise_info::dimensions = {800u, 600u}
    +
    +
      +
    • Specifies dimensions of the window, in pixels.
    • +
    + +
    +
    + +

    ◆ flags

    + +
    +
    + + + + +
    application_flags tz::initialise_info::flags = {}
    +
    +
      +
    • Describes some optional behaviours for the application. See application_flag for details.
    • +
    + +
    +
    + +

    ◆ name

    + +
    +
    + + + + +
    const char* tz::initialise_info::name = "Untitled"
    +
    +
      +
    • Name of the application. If initialisation spawns a window, the title will contain this string. Defaults to 'Untitled'.
    • +
    + +
    +
    + +

    ◆ version

    + +
    +
    + + + + +
    tz::version tz::initialise_info::version = {1, 0, 0, tz::version_type::normal}
    +
    +
      +
    • Version of the application. If you do not version your application, you can leave this. Defaults to 1.0.0.
    • +
    + +
    +
    +
    + + + + diff --git a/structtz_1_1io_1_1gltf__accessor.html b/structtz_1_1io_1_1gltf__accessor.html new file mode 100644 index 0000000000..0cc6052565 --- /dev/null +++ b/structtz_1_1io_1_1gltf__accessor.html @@ -0,0 +1,104 @@ + + + + + + + +Topaz: tz::io::gltf_accessor Struct Reference + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    Topaz 4.1.0.1 +
    +
    C++20 Graphics Engine
    +
    +
    + + + + + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + + +
    +
    +
    tz::io::gltf_accessor Struct Reference
    +
    +
    +
    + + + + diff --git a/structtz_1_1io_1_1gltf__animation.html b/structtz_1_1io_1_1gltf__animation.html new file mode 100644 index 0000000000..4b9daa72ac --- /dev/null +++ b/structtz_1_1io_1_1gltf__animation.html @@ -0,0 +1,112 @@ + + + + + + + +Topaz: tz::io::gltf_animation Struct Reference + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    Topaz 4.1.0.1 +
    +
    C++20 Graphics Engine
    +
    +
    + + + + + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + + +
    +
    + +
    tz::io::gltf_animation Struct Reference
    +
    +
    + + + + +

    +Data Structures

    struct  keyframe_data_element
     
    +
    + + + + diff --git a/structtz_1_1io_1_1gltf__animation_1_1keyframe__data__element.html b/structtz_1_1io_1_1gltf__animation_1_1keyframe__data__element.html new file mode 100644 index 0000000000..bebbe6c609 --- /dev/null +++ b/structtz_1_1io_1_1gltf__animation_1_1keyframe__data__element.html @@ -0,0 +1,104 @@ + + + + + + + +Topaz: tz::io::gltf_animation::keyframe_data_element Struct Reference + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    Topaz 4.1.0.1 +
    +
    C++20 Graphics Engine
    +
    +
    + + + + + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + + +
    +
    +
    tz::io::gltf_animation::keyframe_data_element Struct Reference
    +
    +
    +
    + + + + diff --git a/structtz_1_1io_1_1gltf__animation__channel.html b/structtz_1_1io_1_1gltf__animation__channel.html new file mode 100644 index 0000000000..39024f388d --- /dev/null +++ b/structtz_1_1io_1_1gltf__animation__channel.html @@ -0,0 +1,104 @@ + + + + + + + +Topaz: tz::io::gltf_animation_channel Struct Reference + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    Topaz 4.1.0.1 +
    +
    C++20 Graphics Engine
    +
    +
    + + + + + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + + +
    +
    +
    tz::io::gltf_animation_channel Struct Reference
    +
    +
    +
    + + + + diff --git a/structtz_1_1io_1_1gltf__animation__channel__target.html b/structtz_1_1io_1_1gltf__animation__channel__target.html new file mode 100644 index 0000000000..d0c380fab5 --- /dev/null +++ b/structtz_1_1io_1_1gltf__animation__channel__target.html @@ -0,0 +1,104 @@ + + + + + + + +Topaz: tz::io::gltf_animation_channel_target Struct Reference + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    Topaz 4.1.0.1 +
    +
    C++20 Graphics Engine
    +
    +
    + + + + + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + + +
    +
    +
    tz::io::gltf_animation_channel_target Struct Reference
    +
    +
    +
    + + + + diff --git a/structtz_1_1io_1_1gltf__animation__sampler.html b/structtz_1_1io_1_1gltf__animation__sampler.html new file mode 100644 index 0000000000..ba38ff8f9d --- /dev/null +++ b/structtz_1_1io_1_1gltf__animation__sampler.html @@ -0,0 +1,104 @@ + + + + + + + +Topaz: tz::io::gltf_animation_sampler Struct Reference + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    Topaz 4.1.0.1 +
    +
    C++20 Graphics Engine
    +
    +
    + + + + + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + + +
    +
    +
    tz::io::gltf_animation_sampler Struct Reference
    +
    +
    +
    + + + + diff --git a/structtz_1_1io_1_1gltf__buffer.html b/structtz_1_1io_1_1gltf__buffer.html new file mode 100644 index 0000000000..d84f4adf81 --- /dev/null +++ b/structtz_1_1io_1_1gltf__buffer.html @@ -0,0 +1,104 @@ + + + + + + + +Topaz: tz::io::gltf_buffer Struct Reference + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    Topaz 4.1.0.1 +
    +
    C++20 Graphics Engine
    +
    +
    + + + + + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + + +
    +
    +
    tz::io::gltf_buffer Struct Reference
    +
    +
    +
    + + + + diff --git a/structtz_1_1io_1_1gltf__buffer__view.html b/structtz_1_1io_1_1gltf__buffer__view.html new file mode 100644 index 0000000000..f426fdb8ea --- /dev/null +++ b/structtz_1_1io_1_1gltf__buffer__view.html @@ -0,0 +1,104 @@ + + + + + + + +Topaz: tz::io::gltf_buffer_view Struct Reference + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    Topaz 4.1.0.1 +
    +
    C++20 Graphics Engine
    +
    +
    + + + + + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + + +
    +
    +
    tz::io::gltf_buffer_view Struct Reference
    +
    +
    +
    + + + + diff --git a/structtz_1_1io_1_1gltf__chunk__data.html b/structtz_1_1io_1_1gltf__chunk__data.html new file mode 100644 index 0000000000..3962a91fec --- /dev/null +++ b/structtz_1_1io_1_1gltf__chunk__data.html @@ -0,0 +1,104 @@ + + + + + + + +Topaz: tz::io::gltf_chunk_data Struct Reference + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    Topaz 4.1.0.1 +
    +
    C++20 Graphics Engine
    +
    +
    + + + + + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + + +
    +
    +
    tz::io::gltf_chunk_data Struct Reference
    +
    +
    +
    + + + + diff --git a/structtz_1_1io_1_1gltf__header.html b/structtz_1_1io_1_1gltf__header.html new file mode 100644 index 0000000000..d7ec19c5ce --- /dev/null +++ b/structtz_1_1io_1_1gltf__header.html @@ -0,0 +1,104 @@ + + + + + + + +Topaz: tz::io::gltf_header Struct Reference + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    Topaz 4.1.0.1 +
    +
    C++20 Graphics Engine
    +
    +
    + + + + + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + + +
    +
    +
    tz::io::gltf_header Struct Reference
    +
    +
    +
    + + + + diff --git a/structtz_1_1io_1_1gltf__image.html b/structtz_1_1io_1_1gltf__image.html new file mode 100644 index 0000000000..420bbd8903 --- /dev/null +++ b/structtz_1_1io_1_1gltf__image.html @@ -0,0 +1,104 @@ + + + + + + + +Topaz: tz::io::gltf_image Struct Reference + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    Topaz 4.1.0.1 +
    +
    C++20 Graphics Engine
    +
    +
    + + + + + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + + +
    +
    +
    tz::io::gltf_image Struct Reference
    +
    +
    +
    + + + + diff --git a/structtz_1_1io_1_1gltf__material.html b/structtz_1_1io_1_1gltf__material.html new file mode 100644 index 0000000000..508e6c2f4a --- /dev/null +++ b/structtz_1_1io_1_1gltf__material.html @@ -0,0 +1,104 @@ + + + + + + + +Topaz: tz::io::gltf_material Struct Reference + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    Topaz 4.1.0.1 +
    +
    C++20 Graphics Engine
    +
    +
    + + + + + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + + +
    +
    +
    tz::io::gltf_material Struct Reference
    +
    +
    +
    + + + + diff --git a/structtz_1_1io_1_1gltf__mesh.html b/structtz_1_1io_1_1gltf__mesh.html new file mode 100644 index 0000000000..06142324e4 --- /dev/null +++ b/structtz_1_1io_1_1gltf__mesh.html @@ -0,0 +1,112 @@ + + + + + + + +Topaz: tz::io::gltf_mesh Struct Reference + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    Topaz 4.1.0.1 +
    +
    C++20 Graphics Engine
    +
    +
    + + + + + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + + +
    +
    + +
    tz::io::gltf_mesh Struct Reference
    +
    +
    + + + + +

    +Data Structures

    struct  submesh
     
    +
    + + + + diff --git a/structtz_1_1io_1_1gltf__mesh_1_1submesh.html b/structtz_1_1io_1_1gltf__mesh_1_1submesh.html new file mode 100644 index 0000000000..e56db5910f --- /dev/null +++ b/structtz_1_1io_1_1gltf__mesh_1_1submesh.html @@ -0,0 +1,104 @@ + + + + + + + +Topaz: tz::io::gltf_mesh::submesh Struct Reference + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    Topaz 4.1.0.1 +
    +
    C++20 Graphics Engine
    +
    +
    + + + + + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + + +
    +
    +
    tz::io::gltf_mesh::submesh Struct Reference
    +
    +
    +
    + + + + diff --git a/structtz_1_1io_1_1gltf__node.html b/structtz_1_1io_1_1gltf__node.html new file mode 100644 index 0000000000..74c57dcfed --- /dev/null +++ b/structtz_1_1io_1_1gltf__node.html @@ -0,0 +1,104 @@ + + + + + + + +Topaz: tz::io::gltf_node Struct Reference + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    Topaz 4.1.0.1 +
    +
    C++20 Graphics Engine
    +
    +
    + + + + + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + + +
    +
    +
    tz::io::gltf_node Struct Reference
    +
    +
    +
    + + + + diff --git a/structtz_1_1io_1_1gltf__scene.html b/structtz_1_1io_1_1gltf__scene.html new file mode 100644 index 0000000000..83c242e91a --- /dev/null +++ b/structtz_1_1io_1_1gltf__scene.html @@ -0,0 +1,104 @@ + + + + + + + +Topaz: tz::io::gltf_scene Struct Reference + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    Topaz 4.1.0.1 +
    +
    C++20 Graphics Engine
    +
    +
    + + + + + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + + +
    +
    +
    tz::io::gltf_scene Struct Reference
    +
    +
    +
    + + + + diff --git a/structtz_1_1io_1_1gltf__skin.html b/structtz_1_1io_1_1gltf__skin.html new file mode 100644 index 0000000000..dd1c84d0f3 --- /dev/null +++ b/structtz_1_1io_1_1gltf__skin.html @@ -0,0 +1,104 @@ + + + + + + + +Topaz: tz::io::gltf_skin Struct Reference + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    Topaz 4.1.0.1 +
    +
    C++20 Graphics Engine
    +
    +
    + + + + + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + + +
    +
    +
    tz::io::gltf_skin Struct Reference
    +
    +
    +
    + + + + diff --git a/structtz_1_1io_1_1gltf__submesh__data.html b/structtz_1_1io_1_1gltf__submesh__data.html new file mode 100644 index 0000000000..498aa29de6 --- /dev/null +++ b/structtz_1_1io_1_1gltf__submesh__data.html @@ -0,0 +1,104 @@ + + + + + + + +Topaz: tz::io::gltf_submesh_data Struct Reference + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    Topaz 4.1.0.1 +
    +
    C++20 Graphics Engine
    +
    +
    + + + + + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + + +
    +
    +
    tz::io::gltf_submesh_data Struct Reference
    +
    +
    +
    + + + + diff --git a/structtz_1_1io_1_1gltf__submesh__texture__data.html b/structtz_1_1io_1_1gltf__submesh__texture__data.html new file mode 100644 index 0000000000..b0526353dc --- /dev/null +++ b/structtz_1_1io_1_1gltf__submesh__texture__data.html @@ -0,0 +1,104 @@ + + + + + + + +Topaz: tz::io::gltf_submesh_texture_data Struct Reference + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    Topaz 4.1.0.1 +
    +
    C++20 Graphics Engine
    +
    +
    + + + + + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + + +
    +
    +
    tz::io::gltf_submesh_texture_data Struct Reference
    +
    +
    +
    + + + + diff --git a/structtz_1_1io_1_1gltf__vertex__data.html b/structtz_1_1io_1_1gltf__vertex__data.html new file mode 100644 index 0000000000..030618a353 --- /dev/null +++ b/structtz_1_1io_1_1gltf__vertex__data.html @@ -0,0 +1,104 @@ + + + + + + + +Topaz: tz::io::gltf_vertex_data Struct Reference + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    Topaz 4.1.0.1 +
    +
    C++20 Graphics Engine
    +
    +
    + + + + + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + + +
    +
    +
    tz::io::gltf_vertex_data Struct Reference
    +
    +
    +
    + + + + diff --git a/structtz_1_1io_1_1image.html b/structtz_1_1io_1_1image.html new file mode 100644 index 0000000000..e720aa4d3c --- /dev/null +++ b/structtz_1_1io_1_1image.html @@ -0,0 +1,104 @@ + + + + + + + +Topaz: tz::io::image Struct Reference + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    Topaz 4.1.0.1 +
    +
    C++20 Graphics Engine
    +
    +
    + + + + + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + + +
    +
    +
    tz::io::image Struct Reference
    +
    +
    +
    + + + + diff --git a/structtz_1_1job__handle.html b/structtz_1_1job__handle.html new file mode 100644 index 0000000000..4c54eea0a5 --- /dev/null +++ b/structtz_1_1job__handle.html @@ -0,0 +1,104 @@ + + + + + + + +Topaz: tz::job_handle Struct Reference + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    Topaz 4.1.0.1 +
    +
    C++20 Graphics Engine
    +
    +
    + + + + + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + + +
    +
    +
    tz::job_handle Struct Reference
    +
    +
    +
    + + + + diff --git a/structtz_1_1memblk.html b/structtz_1_1memblk.html new file mode 100644 index 0000000000..744b965091 --- /dev/null +++ b/structtz_1_1memblk.html @@ -0,0 +1,125 @@ + + + + + + + +Topaz: tz::memblk Struct Reference + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    Topaz 4.1.0.1 +
    +
    C++20 Graphics Engine
    +
    +
    + + + + + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + + +
    +
    + +
    tz::memblk Struct Reference
    +
    +
    + +

    A non-owning, contiguous block of memory. + More...

    + +

    #include <memblk.hpp>

    + + + + + + + + +

    +Data Fields

    +void * ptr
     Start address of the block.
     
    +std::size_t size
     Size of the block, in bytes.
     
    +

    Detailed Description

    +

    A non-owning, contiguous block of memory.

    +
    + + + + diff --git a/structtz_1_1nullhand__t.html b/structtz_1_1nullhand__t.html new file mode 100644 index 0000000000..7e6b955bf6 --- /dev/null +++ b/structtz_1_1nullhand__t.html @@ -0,0 +1,104 @@ + + + + + + + +Topaz: tz::nullhand_t Struct Reference + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    Topaz 4.1.0.1 +
    +
    C++20 Graphics Engine
    +
    +
    + + + + + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + + +
    +
    +
    tz::nullhand_t Struct Reference
    +
    +
    +
    + + + + diff --git a/structtz_1_1ren_1_1anim__renderer_1_1stored__assets.html b/structtz_1_1ren_1_1anim__renderer_1_1stored__assets.html new file mode 100644 index 0000000000..5911d7a2bb --- /dev/null +++ b/structtz_1_1ren_1_1anim__renderer_1_1stored__assets.html @@ -0,0 +1,104 @@ + + + + + + + +Topaz: tz::ren::anim_renderer::stored_assets Struct Reference + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    Topaz 4.1.0.1 +
    +
    C++20 Graphics Engine
    +
    +
    + + + + + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + + +
    +
    +
    tz::ren::anim_renderer::stored_assets Struct Reference
    +
    +
    +
    + + + + diff --git a/structtz_1_1ren_1_1animation__renderer_1_1asset__package.html b/structtz_1_1ren_1_1animation__renderer_1_1asset__package.html new file mode 100644 index 0000000000..eadea25d8e --- /dev/null +++ b/structtz_1_1ren_1_1animation__renderer_1_1asset__package.html @@ -0,0 +1,104 @@ + + + + + + + +Topaz: tz::ren::animation_renderer::asset_package Struct Reference + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    Topaz 4.1.0.1 +
    +
    C++20 Graphics Engine
    +
    +
    + + + + + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + + +
    +
    +
    tz::ren::animation_renderer::asset_package Struct Reference
    +
    +
    +
    + + + + diff --git a/structtz_1_1ren_1_1animation__renderer_1_1gltf__info_1_1animation__playback__t.html b/structtz_1_1ren_1_1animation__renderer_1_1gltf__info_1_1animation__playback__t.html new file mode 100644 index 0000000000..02299bd2fa --- /dev/null +++ b/structtz_1_1ren_1_1animation__renderer_1_1gltf__info_1_1animation__playback__t.html @@ -0,0 +1,112 @@ + + + + + + + +Topaz: tz::ren::animation_renderer::gltf_info::animation_playback_t Struct Reference + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    Topaz 4.1.0.1 +
    +
    C++20 Graphics Engine
    +
    +
    + + + + + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + + +
    +
    + +
    tz::ren::animation_renderer::gltf_info::animation_playback_t Struct Reference
    +
    +
    + + + + +

    +Data Structures

    struct  queued_anim
     
    +
    + + + + diff --git a/structtz_1_1ren_1_1animation__renderer_1_1gltf__info_1_1animation__playback__t_1_1queued__anim.html b/structtz_1_1ren_1_1animation__renderer_1_1gltf__info_1_1animation__playback__t_1_1queued__anim.html new file mode 100644 index 0000000000..09663be6f1 --- /dev/null +++ b/structtz_1_1ren_1_1animation__renderer_1_1gltf__info_1_1animation__playback__t_1_1queued__anim.html @@ -0,0 +1,104 @@ + + + + + + + +Topaz: tz::ren::animation_renderer::gltf_info::animation_playback_t::queued_anim Struct Reference + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    Topaz 4.1.0.1 +
    +
    C++20 Graphics Engine
    +
    +
    + + + + + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + + +
    +
    +
    tz::ren::animation_renderer::gltf_info::animation_playback_t::queued_anim Struct Reference
    +
    +
    +
    + + + + diff --git a/structtz_1_1ren_1_1animation__renderer_1_1gltf__info_1_1metadata__t.html b/structtz_1_1ren_1_1animation__renderer_1_1gltf__info_1_1metadata__t.html new file mode 100644 index 0000000000..cb8ca61295 --- /dev/null +++ b/structtz_1_1ren_1_1animation__renderer_1_1gltf__info_1_1metadata__t.html @@ -0,0 +1,104 @@ + + + + + + + +Topaz: tz::ren::animation_renderer::gltf_info::metadata_t Struct Reference + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    Topaz 4.1.0.1 +
    +
    C++20 Graphics Engine
    +
    +
    + + + + + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + + +
    +
    +
    tz::ren::animation_renderer::gltf_info::metadata_t Struct Reference
    +
    +
    +
    + + + + diff --git a/structtz_1_1ren_1_1animation__renderer_1_1override__package.html b/structtz_1_1ren_1_1animation__renderer_1_1override__package.html new file mode 100644 index 0000000000..533578d3ea --- /dev/null +++ b/structtz_1_1ren_1_1animation__renderer_1_1override__package.html @@ -0,0 +1,104 @@ + + + + + + + +Topaz: tz::ren::animation_renderer::override_package Struct Reference + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    Topaz 4.1.0.1 +
    +
    C++20 Graphics Engine
    +
    +
    + + + + + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + + +
    +
    +
    tz::ren::animation_renderer::override_package Struct Reference
    +
    +
    +
    + + + + diff --git a/structtz_1_1ren_1_1camera__data.html b/structtz_1_1ren_1_1camera__data.html new file mode 100644 index 0000000000..065254e099 --- /dev/null +++ b/structtz_1_1ren_1_1camera__data.html @@ -0,0 +1,104 @@ + + + + + + + +Topaz: tz::ren::camera_data Struct Reference + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    Topaz 4.1.0.1 +
    +
    C++20 Graphics Engine
    +
    +
    + + + + + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + + +
    +
    +
    tz::ren::camera_data Struct Reference
    +
    +
    +
    + + + + diff --git a/structtz_1_1ren_1_1detail_1_1texture__tag__t.html b/structtz_1_1ren_1_1detail_1_1texture__tag__t.html new file mode 100644 index 0000000000..b7b1c3fa79 --- /dev/null +++ b/structtz_1_1ren_1_1detail_1_1texture__tag__t.html @@ -0,0 +1,104 @@ + + + + + + + +Topaz: tz::ren::detail::texture_tag_t Struct Reference + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    Topaz 4.1.0.1 +
    +
    C++20 Graphics Engine
    +
    +
    + + + + + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + + +
    +
    +
    tz::ren::detail::texture_tag_t Struct Reference
    +
    +
    +
    + + + + diff --git a/structtz_1_1ren_1_1draw__list.html b/structtz_1_1ren_1_1draw__list.html new file mode 100644 index 0000000000..9e8db24cbb --- /dev/null +++ b/structtz_1_1ren_1_1draw__list.html @@ -0,0 +1,104 @@ + + + + + + + +Topaz: tz::ren::draw_list Struct Reference + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    Topaz 4.1.0.1 +
    +
    C++20 Graphics Engine
    +
    +
    + + + + + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + + +
    +
    +
    tz::ren::draw_list Struct Reference
    +
    +
    +
    + + + + diff --git a/structtz_1_1ren_1_1mesh.html b/structtz_1_1ren_1_1mesh.html new file mode 100644 index 0000000000..dcfb2d5d7a --- /dev/null +++ b/structtz_1_1ren_1_1mesh.html @@ -0,0 +1,104 @@ + + + + + + + +Topaz: tz::ren::mesh< max_tex_count > Struct Template Reference + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    Topaz 4.1.0.1 +
    +
    C++20 Graphics Engine
    +
    +
    + + + + + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + + +
    +
    +
    tz::ren::mesh< max_tex_count > Struct Template Reference
    +
    +
    +
    + + + + diff --git a/structtz_1_1ren_1_1mesh__locator.html b/structtz_1_1ren_1_1mesh__locator.html new file mode 100644 index 0000000000..9b3b10a719 --- /dev/null +++ b/structtz_1_1ren_1_1mesh__locator.html @@ -0,0 +1,104 @@ + + + + + + + +Topaz: tz::ren::mesh_locator Struct Reference + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    Topaz 4.1.0.1 +
    +
    C++20 Graphics Engine
    +
    +
    + + + + + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + + +
    +
    +
    tz::ren::mesh_locator Struct Reference
    +
    +
    +
    + + + + diff --git a/structtz_1_1ren_1_1mesh__renderer_1_1object__init__data.html b/structtz_1_1ren_1_1mesh__renderer_1_1object__init__data.html new file mode 100644 index 0000000000..efeaf4ab71 --- /dev/null +++ b/structtz_1_1ren_1_1mesh__renderer_1_1object__init__data.html @@ -0,0 +1,104 @@ + + + + + + + +Topaz: tz::ren::mesh_renderer::object_init_data Struct Reference + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    Topaz 4.1.0.1 +
    +
    C++20 Graphics Engine
    +
    +
    + + + + + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + + +
    +
    +
    tz::ren::mesh_renderer::object_init_data Struct Reference
    +
    +
    +
    + + + + diff --git a/structtz_1_1ren_1_1mesh__renderer_1_1object__out__data.html b/structtz_1_1ren_1_1mesh__renderer_1_1object__out__data.html new file mode 100644 index 0000000000..264317c4b6 --- /dev/null +++ b/structtz_1_1ren_1_1mesh__renderer_1_1object__out__data.html @@ -0,0 +1,104 @@ + + + + + + + +Topaz: tz::ren::mesh_renderer::object_out_data Struct Reference + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    Topaz 4.1.0.1 +
    +
    C++20 Graphics Engine
    +
    +
    + + + + + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + + +
    +
    +
    tz::ren::mesh_renderer::object_out_data Struct Reference
    +
    +
    +
    + + + + diff --git a/structtz_1_1ren_1_1object__data.html b/structtz_1_1ren_1_1object__data.html new file mode 100644 index 0000000000..f72cedcb54 --- /dev/null +++ b/structtz_1_1ren_1_1object__data.html @@ -0,0 +1,104 @@ + + + + + + + +Topaz: tz::ren::object_data Struct Reference + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    Topaz 4.1.0.1 +
    +
    C++20 Graphics Engine
    +
    +
    + + + + + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + + +
    +
    +
    tz::ren::object_data Struct Reference
    +
    +
    +
    + + + + diff --git a/structtz_1_1ren_1_1object__impl__data.html b/structtz_1_1ren_1_1object__impl__data.html new file mode 100644 index 0000000000..7ecba6fe75 --- /dev/null +++ b/structtz_1_1ren_1_1object__impl__data.html @@ -0,0 +1,104 @@ + + + + + + + +Topaz: tz::ren::object_impl_data Struct Reference + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    Topaz 4.1.0.1 +
    +
    C++20 Graphics Engine
    +
    +
    + + + + + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + + +
    +
    +
    tz::ren::object_impl_data Struct Reference
    +
    +
    +
    + + + + diff --git a/structtz_1_1ren_1_1texture__locator.html b/structtz_1_1ren_1_1texture__locator.html new file mode 100644 index 0000000000..13a9bc2031 --- /dev/null +++ b/structtz_1_1ren_1_1texture__locator.html @@ -0,0 +1,104 @@ + + + + + + + +Topaz: tz::ren::texture_locator Struct Reference + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    Topaz 4.1.0.1 +
    +
    C++20 Graphics Engine
    +
    +
    + + + + + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + + +
    +
    +
    tz::ren::texture_locator Struct Reference
    +
    +
    +
    + + + + diff --git a/structtz_1_1ren_1_1vertex.html b/structtz_1_1ren_1_1vertex.html new file mode 100644 index 0000000000..2fc0a5db4b --- /dev/null +++ b/structtz_1_1ren_1_1vertex.html @@ -0,0 +1,104 @@ + + + + + + + +Topaz: tz::ren::vertex< max_tex_count, max_joint4_count > Struct Template Reference + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    Topaz 4.1.0.1 +
    +
    C++20 Graphics Engine
    +
    +
    + + + + + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + + +
    +
    +
    tz::ren::vertex< max_tex_count, max_joint4_count > Struct Template Reference
    +
    +
    +
    + + + + diff --git a/structtz_1_1space_1_1_m_v_p.html b/structtz_1_1space_1_1_m_v_p.html new file mode 100644 index 0000000000..8b34dcd33c --- /dev/null +++ b/structtz_1_1space_1_1_m_v_p.html @@ -0,0 +1,109 @@ + + + + + + + +Topaz: tz::space::MVP Struct Reference + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    Topaz 4.1.0.1 +
    +
    C++20 Graphics Engine
    +
    +
    + + + + + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + + +
    +
    +
    tz::space::MVP Struct Reference
    +
    +
    + +

    TZSL stdlib: <space> harrand 28/04/2022 for tz3.3. + More...

    +

    Detailed Description

    +

    TZSL stdlib: <space> harrand 28/04/2022 for tz3.3.

    +
    + + + + diff --git a/structtz_1_1static__for__t.html b/structtz_1_1static__for__t.html new file mode 100644 index 0000000000..8bee108690 --- /dev/null +++ b/structtz_1_1static__for__t.html @@ -0,0 +1,104 @@ + + + + + + + +Topaz: tz::static_for_t< F, L > Struct Template Reference + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    Topaz 4.1.0.1 +
    +
    C++20 Graphics Engine
    +
    +
    + + + + + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + + +
    +
    +
    tz::static_for_t< F, L > Struct Template Reference
    +
    +
    +
    + + + + diff --git a/structtz_1_1static__for__t_3_01_n_00_01_n_01_4.html b/structtz_1_1static__for__t_3_01_n_00_01_n_01_4.html new file mode 100644 index 0000000000..90f096b3b8 --- /dev/null +++ b/structtz_1_1static__for__t_3_01_n_00_01_n_01_4.html @@ -0,0 +1,118 @@ + + + + + + + +Topaz: tz::static_for_t< N, N > Struct Template Reference + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    Topaz 4.1.0.1 +
    +
    C++20 Graphics Engine
    +
    +
    + + + + + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + + +
    +
    +
    tz::static_for_t< N, N > Struct Template Reference
    +
    +
    + +

    Compute a compile-time for-loop. + More...

    + +

    #include <static.hpp>

    +

    Detailed Description

    +
    template<int N>
    +struct tz::static_for_t< N, N >

    Compute a compile-time for-loop.

    +

    Use tz::static_for as a value, i.e: inline constexpr static_for_t static_for = {};

    +

    Equivalent to:

    for(std::size_t i = begin; i < end; i++)
    +
    {
    + +
    }
    +
    function concept which constrains F to any type that can be called with Args... to produce a Result.
    Definition types.hpp:38
    +
    + + + + diff --git a/structtz_1_1transform__node.html b/structtz_1_1transform__node.html new file mode 100644 index 0000000000..2f63768a4d --- /dev/null +++ b/structtz_1_1transform__node.html @@ -0,0 +1,134 @@ + + + + + + + +Topaz: tz::transform_node< T > Struct Template Reference + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    Topaz 4.1.0.1 +
    +
    C++20 Graphics Engine
    +
    +
    + + + + + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + + +
    +
    + +
    tz::transform_node< T > Struct Template Reference
    +
    +
    + +

    Represents a node within a transform hierarchy. + More...

    + +

    #include <transform_hierarchy.hpp>

    + + + + + + + + + + + + + + +

    +Data Fields

    +T data
     User-data. You can use this for whatever you wish. Must be at least moveable.
     
    +tz::trs local_transform = {}
     Local transform, relative to its parent. If there is no parent, then this represents the global transform aswell.
     
    +std::optional< unsigned int > parent = std::nullopt
     Index of the node that is this node's parent, or nullopt if this node has no parent.
     
    +std::vector< unsigned int > children = {}
     List of all indices representing this node's children.
     
    +

    Detailed Description

    +
    template<typename T>
    +struct tz::transform_node< T >

    Represents a node within a transform hierarchy.

    +
    + + + + diff --git a/structtz_1_1trs.html b/structtz_1_1trs.html new file mode 100644 index 0000000000..3ddcdbca64 --- /dev/null +++ b/structtz_1_1trs.html @@ -0,0 +1,104 @@ + + + + + + + +Topaz: tz::trs Struct Reference + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    Topaz 4.1.0.1 +
    +
    C++20 Graphics Engine
    +
    +
    + + + + + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + + +
    +
    +
    tz::trs Struct Reference
    +
    +
    +
    + + + + diff --git a/structtz_1_1version.html b/structtz_1_1version.html new file mode 100644 index 0000000000..bb57b238d2 --- /dev/null +++ b/structtz_1_1version.html @@ -0,0 +1,183 @@ + + + + + + + +Topaz: tz::version Struct Reference + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    Topaz 4.1.0.1 +
    +
    C++20 Graphics Engine
    +
    +
    + + + + + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + + +
    + +
    + +

    Versions consist of a major, minor, patch and a version_type. + More...

    + +

    #include <version.hpp>

    + + + + + +

    +Public Member Functions

    +std::string to_string () const
     Retrieve the version as a string. Follows the form major.minor.patch, appended by -suffix if the build is not a normal release build.
     
    + + + + + + + +

    +Static Public Member Functions

    static version from_string (std::string_view sv)
     Convert the given string to a version.
     
    +static version from_binary_string (unsigned int ver_numeral)
     Convert the given binary-string to a version. For example, 0x0401001 yields v4.1.0-alpha.
     
    + + + + + + + + + + + + + +

    +Data Fields

    +unsigned int major
     Major version.
     
    +unsigned int minor
     Minor version.
     
    +unsigned int patch
     Patch version.
     
    +version_type type
     Version type (suffix)
     
    +

    Detailed Description

    +

    Versions consist of a major, minor, patch and a version_type.

    +

    A version is represented as: major.minor.patch-suffix

    +

    Member Function Documentation

    + +

    ◆ from_string()

    + +
    +
    + + + + + +
    + + + + + + + + +
    static version tz::version::from_string (std::string_view sv)
    +
    +inlinestatic
    +
    + +

    Convert the given string to a version.

    +
    Note
    There is currently no support for reading the suffix/version type. The returned object will default to a normal release.
    + +
    +
    +
    + + + + diff --git a/structtz_1_1wsi_1_1detail_1_1window__handle__tag.html b/structtz_1_1wsi_1_1detail_1_1window__handle__tag.html new file mode 100644 index 0000000000..86ca6fec2f --- /dev/null +++ b/structtz_1_1wsi_1_1detail_1_1window__handle__tag.html @@ -0,0 +1,104 @@ + + + + + + + +Topaz: tz::wsi::detail::window_handle_tag Struct Reference + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    Topaz 4.1.0.1 +
    +
    C++20 Graphics Engine
    +
    +
    + + + + + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + + +
    +
    +
    tz::wsi::detail::window_handle_tag Struct Reference
    +
    +
    +
    + + + + diff --git a/structtz_1_1wsi_1_1impl_1_1wgl__function__data.html b/structtz_1_1wsi_1_1impl_1_1wgl__function__data.html new file mode 100644 index 0000000000..bc475cdf44 --- /dev/null +++ b/structtz_1_1wsi_1_1impl_1_1wgl__function__data.html @@ -0,0 +1,104 @@ + + + + + + + +Topaz: tz::wsi::impl::wgl_function_data Struct Reference + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    Topaz 4.1.0.1 +
    +
    C++20 Graphics Engine
    +
    +
    + + + + + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + + +
    +
    +
    tz::wsi::impl::wgl_function_data Struct Reference
    +
    +
    +
    + + + + diff --git a/structtz_1_1wsi_1_1impl_1_1x11__display__data.html b/structtz_1_1wsi_1_1impl_1_1x11__display__data.html new file mode 100644 index 0000000000..0d18827ecc --- /dev/null +++ b/structtz_1_1wsi_1_1impl_1_1x11__display__data.html @@ -0,0 +1,104 @@ + + + + + + + +Topaz: tz::wsi::impl::x11_display_data Struct Reference + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    Topaz 4.1.0.1 +
    +
    C++20 Graphics Engine
    +
    +
    + + + + + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + + +
    +
    +
    tz::wsi::impl::x11_display_data Struct Reference
    +
    +
    +
    + + + + diff --git a/structtz_1_1wsi_1_1keyboard__state.html b/structtz_1_1wsi_1_1keyboard__state.html new file mode 100644 index 0000000000..a9d92cbad0 --- /dev/null +++ b/structtz_1_1wsi_1_1keyboard__state.html @@ -0,0 +1,162 @@ + + + + + + + +Topaz: tz::wsi::keyboard_state Struct Reference + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    Topaz 4.1.0.1 +
    +
    C++20 Graphics Engine
    +
    +
    + + + + + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + + +
    +
    + +
    tz::wsi::keyboard_state Struct Reference
    +
    +
    + +

    Represents the total state of the keyboard and key-presses for a single window. + More...

    + +

    #include <keyboard.hpp>

    + + + + + +

    +Public Member Functions

    key pop_last_key () const
     Retrieve the last pressed key, and reset that state to key::unknown.
     
    + + + + + + + +

    +Data Fields

    +std::array< key, max_simultaneous_key_presses > keys_down
     List of keys currently pressed. There is an implementation-defined maximum number of keys that can be pressed simultaneously (at present, 64).
     
    +key last_key = key::unknown
     The last key pressed, or tz::wsi::key::unknown if none.
     
    +

    Detailed Description

    +

    Represents the total state of the keyboard and key-presses for a single window.

    +

    Retrieve via tz::wsi::window::get_keyboard_state();

    +

    Member Function Documentation

    + +

    ◆ pop_last_key()

    + +
    +
    + + + + + +
    + + + + + + + +
    key tz::wsi::keyboard_state::pop_last_key () const
    +
    +inline
    +
    + +

    Retrieve the last pressed key, and reset that state to key::unknown.

    +

    Returns tz::wsi::key::unknown if either no key has ever been pressed, or the last key state has already been reset.

    + +
    +
    +
    + + + + diff --git a/structtz_1_1wsi_1_1monitor.html b/structtz_1_1wsi_1_1monitor.html new file mode 100644 index 0000000000..ec84e03f2c --- /dev/null +++ b/structtz_1_1wsi_1_1monitor.html @@ -0,0 +1,125 @@ + + + + + + + +Topaz: tz::wsi::monitor Struct Reference + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    Topaz 4.1.0.1 +
    +
    C++20 Graphics Engine
    +
    +
    + + + + + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + + +
    +
    + +
    tz::wsi::monitor Struct Reference
    +
    +
    + +

    Represents information about a monitor. + More...

    + +

    #include <monitor.hpp>

    + + + + + + + + +

    +Data Fields

    +std::string name
     Implementation-defined name. Not guaranteed to be unique.
     
    +tz::vec2ui dimensions
     Dimensions of the monitor, in pixels.
     
    +

    Detailed Description

    +

    Represents information about a monitor.

    +
    + + + + diff --git a/structtz_1_1wsi_1_1mouse__state.html b/structtz_1_1wsi_1_1mouse__state.html new file mode 100644 index 0000000000..b6214b5069 --- /dev/null +++ b/structtz_1_1wsi_1_1mouse__state.html @@ -0,0 +1,130 @@ + + + + + + + +Topaz: tz::wsi::mouse_state Struct Reference + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    Topaz 4.1.0.1 +
    +
    C++20 Graphics Engine
    +
    +
    + + + + + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + + +
    +
    + +
    tz::wsi::mouse_state Struct Reference
    +
    +
    + +

    Represents the total state of the mouse for a single window. + More...

    + +

    #include <mouse.hpp>

    + + + + + + + + + + + +

    +Data Fields

    +std::array< mouse_button_state, static_cast< int >(mouse_button::_count)> button_state
     Array of mouse button states against their booleans. Access via button_state[(int)mouse_button::left].
     
    +tz::vec2ui mouse_position
     Current position of the mouse cursor within the window.
     
    +int wheel_position = 0
     Current elevation of the mouse wheel. Increments per scroll-up, decrements per scroll-down.
     
    +

    Detailed Description

    +

    Represents the total state of the mouse for a single window.

    +

    Retrieve via tz::wsi::window::get_mouse_state()

    +
    + + + + diff --git a/structtz_1_1wsi_1_1window.html b/structtz_1_1wsi_1_1window.html new file mode 100644 index 0000000000..2fe01bf076 --- /dev/null +++ b/structtz_1_1wsi_1_1window.html @@ -0,0 +1,112 @@ + + + + + + + +Topaz: tz::wsi::window Struct Reference + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    Topaz 4.1.0.1 +
    +
    C++20 Graphics Engine
    +
    +
    + + + + + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + + +
    +
    +
    tz::wsi::window Struct Reference
    +
    +
    + +

    Represents an application window. + More...

    + +

    #include <window.hpp>

    +

    Detailed Description

    +

    Represents an application window.

    +

    Implements tz::wsi::window_api.

    +
    + + + + diff --git a/structtz_1_1wsi_1_1window__info.html b/structtz_1_1wsi_1_1window__info.html new file mode 100644 index 0000000000..7bbf241af4 --- /dev/null +++ b/structtz_1_1wsi_1_1window__info.html @@ -0,0 +1,129 @@ + + + + + + + +Topaz: tz::wsi::window_info Struct Reference + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    Topaz 4.1.0.1 +
    +
    C++20 Graphics Engine
    +
    +
    + + + + + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + + +
    +
    + +
    tz::wsi::window_info Struct Reference
    +
    +
    + +

    Specifies creation flags for a wsi::window. + More...

    + +

    #include <window.hpp>

    + + + + + + + + + + + +

    +Data Fields

    +const char * title = "Untitled"
     Title of the window. Default is "Untitled".
     
    +tz::vec2ui dimensions = {800u, 600u}
     Dimensions of the window, in pixels. Default is 800x600.
     
    +window_flag::flag_bit window_flags = window_flag::none
     Extra behaviour for the window. Default is none.
     
    +

    Detailed Description

    +

    Specifies creation flags for a wsi::window.

    +
    + + + + diff --git a/structtz_1_1wsi_1_1window__manager.html b/structtz_1_1wsi_1_1window__manager.html new file mode 100644 index 0000000000..e396060424 --- /dev/null +++ b/structtz_1_1wsi_1_1window__manager.html @@ -0,0 +1,104 @@ + + + + + + + +Topaz: tz::wsi::window_manager Struct Reference + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    Topaz 4.1.0.1 +
    +
    C++20 Graphics Engine
    +
    +
    + + + + + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + + +
    +
    +
    tz::wsi::window_manager Struct Reference
    +
    +
    +
    + + + + diff --git a/structvertex__t.html b/structvertex__t.html new file mode 100644 index 0000000000..15d985fabb --- /dev/null +++ b/structvertex__t.html @@ -0,0 +1,100 @@ + + + + + + + +Topaz: vertex_t Struct Reference + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    Topaz 4.1.0.1 +
    +
    C++20 Graphics Engine
    +
    +
    + + + + + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    +
    vertex_t Struct Reference
    +
    +
    +
    + + + + diff --git a/swapchain_8hpp_source.html b/swapchain_8hpp_source.html new file mode 100644 index 0000000000..6597d193c1 --- /dev/null +++ b/swapchain_8hpp_source.html @@ -0,0 +1,218 @@ + + + + + + + +Topaz: src/tz/gl/impl/vulkan/detail/swapchain.hpp Source File + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    Topaz 4.1.0.1 +
    +
    C++20 Graphics Engine
    +
    +
    + + + + + + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + + +
    +
    +
    swapchain.hpp
    +
    +
    +
    1#ifndef TOPAZ_GL_IMPL_BACKEND_VK2_SWAPCHAIN_HPP
    +
    2#define TOPAZ_GL_IMPL_BACKEND_VK2_SWAPCHAIN_HPP
    +
    3#include "tz/gl/impl/vulkan/detail/logical_device.hpp"
    +
    4#include "tz/gl/impl/vulkan/detail/image_view.hpp"
    +
    5
    +
    6namespace tz::gl::vk2
    +
    7{
    +
    8 class Swapchain;
    + +
    26
    +
    + +
    32 {
    +
    33 public:
    +
    + +
    39 {
    + +
    43 const Fence* signal_fence = nullptr;
    +
    45 std::uint64_t timeout = std::numeric_limits<std::uint64_t>::max();
    +
    46 };
    +
    +
    47
    +
    + +
    49 {
    +
    50 enum class AcquisitionResultType
    +
    51 {
    +
    52 AcquireSuccess,
    +
    53 Suboptimal,
    +
    54 ErrorOutOfDate,
    +
    55 ErrorSurfaceLost,
    +
    56 ErrorUnknown
    +
    57 };
    +
    58 std::uint32_t image_index;
    +
    59 AcquisitionResultType type;
    +
    60 };
    +
    + +
    65 Swapchain(const Swapchain& copy) = delete;
    +
    66 Swapchain(Swapchain&& move);
    +
    67 ~Swapchain();
    +
    68 Swapchain& operator=(const Swapchain& rhs) = delete;
    +
    69 Swapchain& operator=(Swapchain&& rhs);
    +
    70
    +
    71 const LogicalDevice& get_device() const;
    + +
    77
    +
    82 static Swapchain null();
    +
    87 bool is_null() const;
    +
    88 using NativeType = VkSwapchainKHR;
    +
    89 NativeType native() const;
    +
    94 std::span<const Image> get_images() const;
    +
    99 std::span<Image> get_images();
    +
    104 std::span<const ImageView> get_image_views() const;
    +
    109 std::span<ImageView> get_image_views();
    + + + +
    125 void refresh();
    +
    126 private:
    +
    127 Swapchain();
    +
    128 void initialise_images();
    +
    129
    +
    130 VkSwapchainKHR swapchain;
    +
    131 SwapchainInfo info;
    +
    132 tz::vec2ui dimensions;
    +
    133 std::vector<Image> swapchain_images;
    +
    134 std::vector<ImageView> swapchain_image_views;
    +
    135 };
    +
    +
    136}
    +
    137
    +
    138#endif // TOPAZ_GL_IMPL_BACKEND_VK2_SWAPCHAIN_HPP
    +
    Synchronisation primitive which is not interactable on the host and which has two states:
    Definition semaphore.hpp:22
    +
    Synchronisation primitive which is useful to detect completion of a GPU operation,...
    Definition fence.hpp:26
    +
    Logical interface to an existing PhysicalDevice.
    Definition logical_device.hpp:95
    +
    Swapchains are infrastructures which represent GPU images we will render to before they can be presen...
    Definition swapchain.hpp:32
    +
    image_format get_image_format() const
    Retrieve the image_format of the swapchain images.
    Definition swapchain.cpp:219
    +
    bool is_null() const
    Query as to whether the Swapchain is null.
    Definition swapchain.cpp:189
    +
    static Swapchain null()
    Create a Swapchain which doesn't do anything.
    Definition swapchain.cpp:184
    +
    SurfacePresentMode get_present_mode() const
    Retrieve the present mode used by the swapchain.
    Definition swapchain.cpp:224
    +
    ImageAcquisitionResult acquire_image(const ImageAcquisition &acquire)
    Retrieve a presentable image index.
    Definition swapchain.cpp:146
    +
    std::span< const ImageView > get_image_views() const
    Retrieve a span of all ImageViews corresponding to an image associated with this Swapchain.
    Definition swapchain.cpp:209
    +
    tz::vec2ui get_dimensions() const
    Retrieve the dimensions of the swapchain images.
    Definition swapchain.cpp:229
    +
    std::span< const Image > get_images() const
    Retrieve a span of all presentable images associated with this Swapchain.
    Definition swapchain.cpp:199
    +
    vector< unsigned int, 2 > vec2ui
    A vector of two unsigned ints.
    Definition vector.hpp:244
    +
    image_format
    Various image formats are supported.
    Definition image_format.hpp:35
    +
    SurfacePresentMode
    Supported Presentation mode supported for a WindowSurface.
    Definition tz_vulkan.hpp:240
    +
    Specify information about a request to acquire the next available presentable image.
    Definition swapchain.hpp:39
    +
    std::uint64_t timeout
    Specifies number of nanoseconds which can pass before failing if no presentable images are available....
    Definition swapchain.hpp:45
    +
    const Fence * signal_fence
    Fence to signal when the image has been retrieved. If not required, this can be nullptr.
    Definition swapchain.hpp:43
    +
    const BinarySemaphore * signal_semaphore
    Semaphore to signal when the image has been retrieved. If not required, this can be nullptr.
    Definition swapchain.hpp:41
    + +
    Specifies parameters of a newly created Swapchain.
    Definition swapchain.hpp:14
    +
    const Swapchain * old_swapchain
    Pointer to swapchain which this will replace, if any. Defaults to nullptr.
    Definition swapchain.hpp:24
    +
    SurfacePresentMode present_mode
    Specifies the presentation mode the Swapchain will use. This must be satisfied by the PhysicalDevice ...
    Definition swapchain.hpp:22
    +
    const LogicalDevice * device
    Pointer to a valid LogicalDevice. This must not be null.
    Definition swapchain.hpp:16
    +
    std::uint32_t swapchain_image_count_minimum
    Minimum number of swapchain images. This must be satisfied by the PhysicalDevice corresponding to dev...
    Definition swapchain.hpp:18
    +
    image_format format
    Specifies the format the swapchain image(s) will be created with.
    Definition swapchain.hpp:20
    +
    + + + + diff --git a/sync_off.png b/sync_off.png new file mode 100644 index 0000000000..3b443fc628 Binary files /dev/null and b/sync_off.png differ diff --git a/sync_on.png b/sync_on.png new file mode 100644 index 0000000000..e08320fb64 Binary files /dev/null and b/sync_on.png differ diff --git a/tab_a.png b/tab_a.png new file mode 100644 index 0000000000..3b725c41c5 Binary files /dev/null and b/tab_a.png differ diff --git a/tab_ad.png b/tab_ad.png new file mode 100644 index 0000000000..e34850acfc Binary files /dev/null and b/tab_ad.png differ diff --git a/tab_b.png b/tab_b.png new file mode 100644 index 0000000000..e2b4a8638c Binary files /dev/null and b/tab_b.png differ diff --git a/tab_bd.png b/tab_bd.png new file mode 100644 index 0000000000..91c2524986 Binary files /dev/null and b/tab_bd.png differ diff --git a/tab_h.png b/tab_h.png new file mode 100644 index 0000000000..fd5cb70548 Binary files /dev/null and b/tab_h.png differ diff --git a/tab_hd.png b/tab_hd.png new file mode 100644 index 0000000000..2489273d4c Binary files /dev/null and b/tab_hd.png differ diff --git a/tab_s.png b/tab_s.png new file mode 100644 index 0000000000..ab478c95b6 Binary files /dev/null and b/tab_s.png differ diff --git a/tab_sd.png b/tab_sd.png new file mode 100644 index 0000000000..757a565ced Binary files /dev/null and b/tab_sd.png differ diff --git a/tabs.css b/tabs.css new file mode 100644 index 0000000000..2c664da1f5 --- /dev/null +++ b/tabs.css @@ -0,0 +1,68 @@ +.tabs, .tabs2, .tabs3 { + background-image: var(--nav-gradient-image); + width: 100%; + z-index: 101; + font-size: var(--nav-font-size-level1); + font-family: var(--font-family-nav); + display: table; +} + +.tabs2 { + font-size: var(--nav-font-size-level2); +} +.tabs3 { + font-size: var(--nav-font-size-level3); +} + +.tablist { + margin: 0; + padding: 0; + display: block; +} + +.tablist li { + float: left; + display: table-cell; + background-image: var(--nav-gradient-image); + line-height: 36px; + list-style: none; +} + +.tablist a { + display: block; + padding: 0 20px; + font-weight: bold; + background-image:var(--nav-separator-image); + background-repeat:no-repeat; + background-position:right; + color: var(--nav-text-normal-color); + text-shadow: var(--nav-text-normal-shadow); + text-decoration: none; + outline: none; +} + +.tablist a:focus { + outline: auto; + z-index: 10; + position: relative; +} + +.tabs3 .tablist a { + padding: 0 10px; +} + +.tablist a:hover { + background-image: var(--nav-gradient-hover-image); + background-repeat:repeat-x; + color: var(--nav-text-hover-color); + text-shadow: var(--nav-text-hover-shadow); + text-decoration: none; +} + +.tablist li.current a { + background-image: var(--nav-gradient-active-image); + background-repeat:repeat-x; + color: var(--nav-text-active-color); + text-shadow: var(--nav-text-active-shadow); +} + diff --git a/time_8hpp_source.html b/time_8hpp_source.html new file mode 100644 index 0000000000..256d2fd8d1 --- /dev/null +++ b/time_8hpp_source.html @@ -0,0 +1,269 @@ + + + + + + + +Topaz: src/tz/core/time.hpp Source File + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    Topaz 4.1.0.1 +
    +
    C++20 Graphics Engine
    +
    +
    + + + + + + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + + +
    +
    +
    time.hpp
    +
    +
    +
    1#ifndef TOPAZ_CORE_TIME_HPP
    +
    2#define TOPAZ_CORE_TIME_HPP
    +
    3#include "tz/core/types.hpp"
    +
    4#include "tz/core/debug.hpp"
    +
    5#include <compare>
    +
    6#include <type_traits>
    +
    7
    +
    8namespace tz
    +
    9{
    +
    + +
    15 {
    +
    16 public:
    +
    17 duration() = default;
    +
    18 constexpr duration(unsigned long long nanos):
    +
    19 duration_nanos(nanos){}
    +
    20
    +
    25 template<tz::number N>
    +
    +
    26 constexpr N nanos() const
    +
    27 {
    +
    28 return static_cast<N>(this->duration_nanos);
    +
    29 }
    +
    +
    30
    +
    35 template<tz::number N>
    +
    +
    36 constexpr N micros() const
    +
    37 {
    +
    38 return this->nanos<N>() / N{1000};
    +
    39 }
    +
    +
    40
    +
    45 template<tz::number N>
    +
    +
    46 constexpr N millis() const
    +
    47 {
    +
    48 return this->micros<N>() / N{1000};
    +
    49 }
    +
    +
    50
    +
    55 template<tz::number N>
    +
    +
    56 constexpr N seconds() const
    +
    57 {
    +
    58 return this->millis<N>() / N{1000};
    +
    59 }
    +
    +
    60
    +
    65 template<tz::number N>
    +
    +
    66 constexpr N minutes() const
    +
    67 {
    +
    68 return this->seconds<N>() / N{60};
    +
    69 }
    +
    +
    70
    +
    75 template<tz::number N>
    +
    +
    76 constexpr N hours() const
    +
    77 {
    +
    78 return this->minutes<N>() / N{60};
    +
    79 }
    +
    +
    80
    +
    85 template<tz::number N>
    +
    +
    86 constexpr N days() const
    +
    87 {
    +
    88 return this->hours<N>() / N{24};
    +
    89 }
    +
    +
    90
    +
    91 constexpr auto operator<=>(const duration& rhs) const = default;
    +
    92 constexpr duration& operator+=(const duration& rhs)
    +
    93 {
    +
    94 this->duration_nanos += rhs.duration_nanos;
    +
    95 return *this;
    +
    96 }
    +
    97
    +
    98 constexpr duration& operator-=(const duration& rhs)
    +
    99 {
    +
    100 if(!std::is_constant_evaluated())
    +
    101 {
    +
    102 tz::assert(this->duration_nanos >= rhs.duration_nanos, "Cannot subtract a larger duration from a smaller duration, because durations cannot be negative. Please submit a bug report.");
    +
    103 }
    +
    104 this->duration_nanos -= rhs.duration_nanos;
    +
    105 return *this;
    +
    106 }
    +
    107
    +
    108 constexpr duration operator+(const duration& rhs) const
    +
    109 {
    +
    110 return {this->duration_nanos + rhs.duration_nanos};
    +
    111 }
    +
    112
    +
    113 constexpr duration operator-(const duration& rhs) const
    +
    114 {
    +
    115 return {this->duration_nanos - rhs.duration_nanos};
    +
    116 }
    +
    117 private:
    +
    118 unsigned long long duration_nanos = 0u;
    +
    119 };
    +
    +
    120
    +
    121 namespace literals
    +
    122 {
    +
    123 constexpr duration operator""_ns(unsigned long long count)
    +
    124 {
    +
    125 return {count};
    +
    126 }
    +
    127
    +
    128 constexpr duration operator""_us(unsigned long long count)
    +
    129 {
    +
    130 return {count * 1000ull};
    +
    131 }
    +
    132
    +
    133 constexpr duration operator""_ms(unsigned long long count)
    +
    134 {
    +
    135 return {count * 1000000ull};
    +
    136 }
    +
    137
    +
    138 constexpr duration operator""_s(unsigned long long count)
    +
    139 {
    +
    140 return {count * 1000000000ull};
    +
    141 }
    +
    142 }
    +
    143
    +
    148 duration system_time();
    +
    149
    +
    +
    154 class delay
    +
    155 {
    +
    156 public:
    +
    161 delay(duration delay_length);
    +
    165 bool done() const;
    +
    169 duration elapsed() const;
    +
    173 void reset();
    +
    174
    +
    175 operator bool() const{return this->done();}
    +
    176 private:
    +
    177 duration begin_systime;
    +
    178 duration delay_length;
    +
    179 };
    +
    +
    180}
    +
    181
    +
    182#endif // TOPAZ_CORE_TIME_HPP
    +
    An object which is falsy until a certain amount of time has passed since construction.
    Definition time.hpp:155
    +
    duration elapsed() const
    Retrieve how much time has passed since the delay began.
    Definition time.cpp:22
    +
    void reset()
    Reset the delay object.
    Definition time.cpp:27
    +
    bool done() const
    Query as to whether the delay length has passed since construction of the delay object.
    Definition time.cpp:17
    +
    Represents some duration, expressable as a quantity of most time metrics.
    Definition time.hpp:15
    +
    constexpr N minutes() const
    Express the duration as some number of minutes.
    Definition time.hpp:66
    +
    constexpr N nanos() const
    Express the duration as some number of nanoseconds.
    Definition time.hpp:26
    +
    constexpr N micros() const
    Express the duration as some number of microseconds.
    Definition time.hpp:36
    +
    constexpr N millis() const
    Express the duration as some number of milliseconds.
    Definition time.hpp:46
    +
    constexpr N hours() const
    Express the duration as some number of hours.
    Definition time.hpp:76
    +
    constexpr N days() const
    Express the duration as some number of days.
    Definition time.hpp:86
    +
    constexpr N seconds() const
    Express the duration as some number of seconds.
    Definition time.hpp:56
    +
    duration system_time()
    Retrieve a duration corresponding to the time passed since epoch.
    Definition time.cpp:6
    +
    + + + + diff --git a/transform__hierarchy_8hpp_source.html b/transform__hierarchy_8hpp_source.html new file mode 100644 index 0000000000..7e587fffa5 --- /dev/null +++ b/transform__hierarchy_8hpp_source.html @@ -0,0 +1,207 @@ + + + + + + + +Topaz: src/tz/core/data/transform_hierarchy.hpp Source File + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    Topaz 4.1.0.1 +
    +
    C++20 Graphics Engine
    +
    +
    + + + + + + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + + +
    +
    +
    transform_hierarchy.hpp
    +
    +
    +
    1#ifndef TZ_CORE_DATA_TRANSFORM_HIERARCHY_HPP
    +
    2#define TZ_CORE_DATA_TRANSFORM_HIERARCHY_HPP
    +
    3#include "tz/core/data/trs.hpp"
    +
    4#include "tz/core/data/handle.hpp"
    +
    5#include <optional>
    +
    6#include <cstddef>
    +
    7
    +
    8namespace tz
    +
    9{
    +
    14 template<typename T>
    +
    + +
    16 {
    +
    18 mutable T data;
    + +
    22 std::optional<unsigned int> parent = std::nullopt;
    +
    24 std::vector<unsigned int> children = {};
    +
    25 };
    +
    +
    26
    +
    32 template<typename T = void*>
    +
    + +
    34 {
    +
    35 public:
    + +
    +
    38 enum class remove_strategy
    +
    39 {
    +
    41 patch_children_to_parent,
    +
    43 remove_children,
    +
    45 detach_children,
    +
    46 };
    +
    + +
    53 std::size_t size() const;
    +
    58 bool empty() const{return this->size() == 0;}
    +
    63 void clear();
    +
    68 std::vector<unsigned int> get_root_node_ids() const;
    +
    74 std::optional<unsigned int> find_node(const T& value) const;
    +
    80 std::optional<unsigned int> find_node_if(tz::function<bool, const T&> auto predicate) const;
    +
    81
    +
    82 // returns id of the new node.
    +
    90 unsigned int add_node(tz::trs local_transform = {}, T data = {}, std::optional<unsigned int> parent = std::nullopt);
    +
    97 void remove_node(unsigned int node_id, remove_strategy strategy);
    +
    98 // returns offset to be applied to the previous hierarchy's set of nodes to get their corresponding node ids
    +
    99 // within this hierarchy
    +
    106 unsigned int add_hierarchy(const transform_hierarchy<T>& tree);
    +
    114 unsigned int add_hierarchy_onto(const transform_hierarchy<T>& tree, unsigned int node_id);
    +
    121 transform_hierarchy<T> export_node(unsigned int id) const;
    +
    128 const transform_node<T>& get_node(unsigned int id) const;
    +
    134 tz::trs get_global_transform(unsigned int id) const;
    +
    140 void iterate_children(unsigned int id, tz::action<unsigned int> auto callback) const;
    +
    146 void iterate_descendants(unsigned int id, tz::action<unsigned int> auto callback) const;
    +
    147 // invoke callback for each ancestor (parent, their parent, etc...) of the node `id`
    +
    153 void iterate_ancestors(unsigned int id, tz::action<unsigned int> auto callback) const;
    +
    158 void iterate_nodes(tz::action<unsigned int> auto callback) const;
    +
    159
    +
    160 bool node_cache_miss(unsigned int node_id) const;
    +
    161 void cache_write(unsigned int node_id, tz::trs global) const;
    +
    162 void clear_cache_for(unsigned int node_id) const;
    +
    163 void clear_cache() const;
    +
    164
    +
    165 void dbgui(bool display_gizmo = true);
    +
    166 private:
    +
    167 bool dbgui_node(unsigned int node_id, bool display_gizmo);
    +
    168 std::vector<transform_node<T>> nodes = {};
    +
    169 mutable std::vector<std::size_t> node_local_transform_hashes = {};
    +
    170 mutable std::vector<tz::trs> node_global_transform_cache = {};
    +
    171 };
    +
    +
    172}
    +
    173
    +
    174#include "tz/core/data/transform_hierarchy.inl"
    +
    175#endif // TZ_CORE_DATA_TRANSFORM_HIERARCHY_HPP
    +
    Represents a hierarchy of 3D transformations, with a payload applied.
    Definition transform_hierarchy.hpp:34
    +
    remove_strategy
    Definition transform_hierarchy.hpp:39
    +
    tz::trs get_global_transform(unsigned int id) const
    Retrieve the global transform of the node corresponding to the provided id.
    Definition transform_hierarchy.inl:220
    +
    unsigned int add_hierarchy(const transform_hierarchy< T > &tree)
    Add all of the nodes of another hierarchy to this hierarchy, preserving structure.
    Definition transform_hierarchy.inl:152
    +
    void iterate_descendants(unsigned int id, tz::action< unsigned int > auto callback) const
    Invoke a callback for each descendent of the node corresponding to id.
    Definition transform_hierarchy.inl:255
    +
    const transform_node< T > & get_node(unsigned int id) const
    Retrieve the node corresponding to the given index.
    Definition transform_hierarchy.inl:213
    +
    void iterate_nodes(tz::action< unsigned int > auto callback) const
    Invoke a callback for each node within the hierarchy, in-order.
    Definition transform_hierarchy.inl:277
    +
    transform_hierarchy< T > export_node(unsigned int id) const
    Take a copy of a particular node, and create a new hierarchy with that as the only root node.
    Definition transform_hierarchy.inl:203
    +
    transform_hierarchy()=default
    Create a new, empty hierarchy.
    +
    bool empty() const
    Query as to whether the hierarchy has nodes.
    Definition transform_hierarchy.hpp:58
    +
    void iterate_ancestors(unsigned int id, tz::action< unsigned int > auto callback) const
    Invoke a callback for each ancestor of the node corresponding to id.
    Definition transform_hierarchy.inl:266
    +
    void remove_node(unsigned int node_id, remove_strategy strategy)
    Remove a node.
    Definition transform_hierarchy.inl:108
    +
    void iterate_children(unsigned int id, tz::action< unsigned int > auto callback) const
    Invoke a callback for each child of the node corresponding to id.
    Definition transform_hierarchy.inl:245
    +
    std::size_t size() const
    Retrieves the number of nodes within the hierarchy.
    Definition transform_hierarchy.inl:22
    +
    unsigned int add_hierarchy_onto(const transform_hierarchy< T > &tree, unsigned int node_id)
    Add all of the nodes of another hierarchy onto a particular node of this hierarchy,...
    Definition transform_hierarchy.inl:168
    +
    Just like a tz::function, except will never return anything.
    Definition types.hpp:47
    +
    function concept which constrains F to any type that can be called with Args... to produce a Result.
    Definition types.hpp:38
    +
    Represents a node within a transform hierarchy.
    Definition transform_hierarchy.hpp:16
    +
    std::optional< unsigned int > parent
    Index of the node that is this node's parent, or nullopt if this node has no parent.
    Definition transform_hierarchy.hpp:22
    +
    std::vector< unsigned int > children
    List of all indices representing this node's children.
    Definition transform_hierarchy.hpp:24
    +
    T data
    User-data. You can use this for whatever you wish. Must be at least moveable.
    Definition transform_hierarchy.hpp:18
    +
    tz::trs local_transform
    Local transform, relative to its parent. If there is no parent, then this represents the global trans...
    Definition transform_hierarchy.hpp:20
    +
    Definition trs.hpp:8
    +
    + + + + diff --git a/transform__hierarchy_8inl_source.html b/transform__hierarchy_8inl_source.html new file mode 100644 index 0000000000..4091a7226f --- /dev/null +++ b/transform__hierarchy_8inl_source.html @@ -0,0 +1,581 @@ + + + + + + + +Topaz: src/tz/core/data/transform_hierarchy.inl Source File + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    Topaz 4.1.0.1 +
    +
    C++20 Graphics Engine
    +
    +
    + + + + + + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + + +
    +
    +
    transform_hierarchy.inl
    +
    +
    +
    1#include "tz/dbgui/dbgui.hpp"
    +
    2#include "tz/core/profile.hpp"
    +
    3#include "tz/core/matrix_transform.hpp"
    +
    4#include <type_traits>
    +
    5#include <sstream>
    +
    6
    +
    7namespace tz
    +
    8{
    +
    9 template<typename T>
    +
    +
    10 concept has_dbgui_method = requires(T t)
    +
    11 {
    +
    12 {t.dbgui()} -> std::same_as<void>;
    +
    13 };
    +
    +
    14
    +
    15 template<typename T>
    +
    +
    16 concept is_printable = requires(T t)
    +
    17 {
    +
    18 {std::ostringstream{} << t};
    +
    19 };
    +
    +
    20
    +
    21 template<typename T>
    +
    +
    22 std::size_t transform_hierarchy<T>::size() const
    +
    23 {
    +
    24 return this->nodes.size();
    +
    25 }
    +
    +
    26
    +
    27 template<typename T>
    +
    + +
    29 {
    +
    30 this->nodes.clear();
    +
    31 }
    +
    +
    32
    +
    33 template<typename T>
    +
    +
    34 std::vector<unsigned int> transform_hierarchy<T>::get_root_node_ids() const
    +
    35 {
    +
    36 std::vector<unsigned int> ret;
    +
    37 // for each element, check if any element has that as a child.
    +
    38 // if nobody does, its a root node.
    +
    39 for(std::size_t i = 0; i < this->size(); i++)
    +
    40 {
    +
    41 bool found_child = false;
    +
    42 for(std::size_t j = 0; j < this->size(); j++)
    +
    43 {
    +
    44 if(i == j) continue;
    +
    45 const auto& jnode = this->nodes[j];
    +
    46 auto iter = std::find(jnode.children.begin(), jnode.children.end(), i);
    +
    47 if(iter != jnode.children.end())
    +
    48 {
    +
    49 // i is a child of j
    +
    50 // skip this one, its not a root node.
    +
    51 found_child = true;
    +
    52 break;
    +
    +
    53 }
    +
    54 }
    +
    55 if(!found_child)
    +
    56 {
    +
    57 ret.push_back(i);
    +
    58 }
    +
    59 }
    +
    60 return ret;
    +
    61 }
    +
    62
    +
    +
    63 template<typename T>
    +
    +
    64 std::optional<unsigned int> transform_hierarchy<T>::find_node(const T& value) const
    +
    65 {
    +
    66 auto iter = std::find_if(this->nodes.begin(), this->nodes.end(),
    +
    67 [value](const auto& node)
    +
    +
    68 {
    +
    69 return node.data == value;
    +
    70 });
    +
    71 if(iter == this->nodes.end())
    +
    72 {
    +
    73 return std::nullopt;
    +
    +
    74 }
    +
    75 return std::distance(this->nodes.begin(), iter);
    +
    76 }
    +
    +
    77
    +
    78 template<typename T>
    +
    +
    79 std::optional<unsigned int> transform_hierarchy<T>::find_node_if(tz::function<bool, const T&> auto predicate) const
    +
    +
    80 {
    +
    81 auto iter = std::find_if(this->nodes.begin(), this->nodes.end(),
    +
    82 [predicate](const auto& node)
    +
    83 {
    +
    84 return predicate(node.data);
    +
    85 });
    +
    86 if(iter == this->nodes.end())
    +
    87 {
    +
    88 return std::nullopt;
    +
    89 }
    +
    +
    90 return std::distance(this->nodes.begin(), iter);
    +
    91 }
    +
    92
    +
    93 template<typename T>
    +
    +
    94 unsigned int transform_hierarchy<T>::add_node(tz::trs local_transform, T data, std::optional<unsigned int> parent)
    +
    95 {
    +
    96 auto id = this->nodes.size();
    +
    +
    97 this->nodes.push_back({.data = data, .local_transform = local_transform, .parent = parent});
    +
    98 if(parent.has_value())
    +
    99 {
    +
    100 this->nodes[parent.value()].children.push_back(id);
    +
    101 }
    +
    102 this->node_local_transform_hashes.push_back(std::numeric_limits<std::size_t>::max());
    +
    103 this->node_global_transform_cache.push_back({});
    +
    104 return id;
    +
    105 }
    +
    + +
    107 template<typename T>
    +
    +
    108 void transform_hierarchy<T>::remove_node(unsigned int node_id, remove_strategy strategy)
    +
    109 {
    +
    110 tz::assert(node_id < this->nodes.size(), "Invalid node_id %zu (node count: %zu)", node_id, this->nodes.size());
    +
    111 // what if the node had a parent?
    +
    112 const auto& node = this->get_node(node_id);
    +
    113 if(node.parent.has_value())
    +
    + +
    115 auto& parent = this->nodes[node.parent.value()];
    +
    116 parent.children.erase(std::remove(parent.children.begin(), parent.children.end(), node_id), parent.children.end());
    +
    117 }
    +
    118 switch(strategy)
    +
    119 {
    +
    120 case remove_strategy::patch_children_to_parent:
    +
    +
    121 if(node.parent.has_value())
    +
    122 {
    +
    123 for(unsigned int child_node_idx : node.children)
    +
    124 {
    +
    125 auto& parent = this->nodes[node.parent.value()];
    +
    126 this->nodes[child_node_idx].parent = node.parent.value();
    +
    127 parent.children.push_back(child_node_idx);
    +
    + +
    129 }
    +
    130 for(unsigned int child_node_idx : node.children)
    +
    131 {
    +
    132 this->nodes[child_node_idx].parent = std::nullopt;
    +
    133 }
    +
    +
    134 break;
    +
    135 case remove_strategy::remove_children:
    +
    136 for(unsigned int child_node_idx : node.children)
    +
    137 {
    +
    138 this->remove_node(child_node_idx, strategy);
    +
    139 }
    +
    +
    140 break;
    +
    141 case remove_strategy::detach_children:
    +
    142 for(unsigned int child_node_idx : node.children)
    +
    143 {
    +
    144 this->nodes[child_node_idx].parent = std::nullopt;
    +
    145 }
    +
    +
    146 break;
    +
    147 }
    +
    148 this->nodes.erase(this->nodes.begin() + node_id);
    +
    149 }
    +
    150
    +
    151 template<typename T>
    +
    + +
    + +
    154 unsigned int offset = this->size();
    +
    155 for(std::size_t i = 0; i < tree.size(); i++)
    +
    156 {
    +
    157 auto node = tree.get_node(i);
    +
    +
    158 if(node.parent.has_value())
    +
    159 {
    +
    160 node.parent.value() += offset;
    +
    161 }
    +
    162 this->add_node(node.local_transform, node.data, node.parent);
    +
    163 }
    +
    164 return offset;
    +
    165 }
    +
    166
    +
    167 template<typename T>
    +
    +
    168 unsigned int transform_hierarchy<T>::add_hierarchy_onto(const transform_hierarchy<T>& tree, unsigned int node_id)
    +
    169 {
    +
    170 unsigned int offset = this->size();
    +
    171 for(std::size_t i = 0; i < tree.size(); i++)
    +
    172 {
    +
    173 auto node = tree.get_node(i);
    +
    174 if(node.parent.has_value())
    +
    175 {
    +
    176 node.parent.value() += offset;
    +
    177 }
    +
    178 else
    +
    179 {
    +
    180 node.parent = node_id;
    +
    181 }
    +
    182 this->add_node(node.local_transform, node.data, node.parent);
    +
    183 }
    +
    184 return offset;
    +
    185 }
    +
    +
    186
    +
    187 template<typename T>
    +
    188 void expand_children(const transform_hierarchy<T>& src, transform_hierarchy<T>& hier, unsigned int src_id, unsigned int node_id)
    +
    189 {
    +
    190 const auto& src_node = src.get_node(src_id);
    +
    191 const auto& node = hier.get_node(node_id);
    +
    192 for(std::size_t i = 0; i < src_node.children.size(); i++)
    +
    193 {
    +
    194 // get the children of the source node. make a copy for the dest node and recursce on children.
    +
    195 unsigned int src_child = src_node.children[i];
    +
    196 const auto& src_child_node = src.get_node(src_child);
    +
    197 unsigned int child = hier.add_node(src_child_node.local_transform, src_child_node.data, node_id);
    +
    198 expand_children(src, hier, src_child, child);
    +
    199 }
    +
    200 }
    +
    201
    +
    202 template<typename T>
    +
    + +
    204 {
    +
    205 auto node = this->get_node(id);
    + +
    207 unsigned int new_root = ret.add_node(this->get_global_transform(id), node.data);
    +
    208 expand_children<T>(*this, ret, id, new_root);
    +
    209 return ret;
    +
    210 }
    +
    +
    211
    +
    212 template<typename T>
    +
    + +
    214 {
    +
    215 tz::assert(id < this->nodes.size(), "Invalid node id %u", id);
    +
    216 return this->nodes[id];
    +
    217 }
    +
    +
    218
    +
    219 template<typename T>
    +
    + +
    221 {
    +
    222 if(!this->node_cache_miss(id))
    +
    223 {
    +
    224 // cache is correct, just return that.
    +
    225 return this->node_global_transform_cache[id];
    +
    226 }
    +
    227 //tz::report("transform hierarchy cache miss at %zu", id);
    +
    228 const auto& n = this->get_node(id);
    +
    229 // cache is incorrect. we should also dirty all children as our local has changed.
    +
    230 for(unsigned int child : n.children)
    +
    231 {
    +
    232 clear_cache_for(child);
    +
    233 }
    +
    234 tz::trs global = n.local_transform;
    +
    235 std::optional<unsigned int> p = n.parent;
    +
    236 if(p.has_value())
    +
    237 {
    +
    238 global.combine(get_global_transform(p.value()));
    +
    239 }
    +
    240 this->cache_write(id, global);
    +
    241 return global;
    +
    242 }
    +
    +
    243
    +
    244 template<typename T>
    +
    + +
    246 {
    +
    247 const auto& node = this->get_node(id);
    +
    248 for(unsigned int child : node.children)
    +
    249 {
    +
    250 callback(child);
    +
    251 }
    +
    252 }
    +
    +
    253
    +
    254 template<typename T>
    +
    + +
    256 {
    +
    257 const auto& node = this->get_node(id);
    +
    258 for(unsigned int child : node.children)
    +
    259 {
    +
    260 callback(child);
    +
    261 this->iterate_descendants(child, callback);
    +
    262 }
    +
    263 }
    +
    +
    264
    +
    265 template<typename T>
    +
    + +
    267 {
    +
    268 auto maybe_parent = this->get_node(id).parent;
    +
    269 if(maybe_parent.has_value())
    +
    270 {
    +
    271 callback(maybe_parent.value());
    +
    272 this->iterate_ancestors(maybe_parent.value(), callback);
    +
    273 }
    +
    274 }
    +
    +
    275
    +
    276 template<typename T>
    +
    + +
    278 {
    +
    279 auto root_node_ids = this->get_root_node_ids();
    +
    280 for(unsigned int root_node : root_node_ids)
    +
    281 {
    +
    282 callback(root_node);
    +
    283 this->iterate_descendants(root_node, callback);
    +
    284 }
    +
    285 }
    +
    +
    +
    286
    +
    287 template<typename T>
    +
    288 bool transform_hierarchy<T>::node_cache_miss(unsigned int node_id) const
    +
    289 {
    +
    290 std::size_t hash = std::hash<tz::trs>{}(this->get_node(node_id).local_transform);
    +
    291 tz::assert(node_id < this->node_local_transform_hashes.size());
    +
    292 if(hash == this->node_local_transform_hashes[node_id])
    +
    293 {
    +
    294 return false;
    +
    295 }
    +
    296 this->node_local_transform_hashes[node_id] = hash;
    +
    297 return true;
    +
    298 }
    +
    299
    +
    300 template<typename T>
    +
    301 void transform_hierarchy<T>::cache_write(unsigned int node_id, tz::trs global) const
    +
    302 {
    +
    303 this->node_global_transform_cache[node_id] = global;
    +
    304 }
    +
    305
    +
    306 template<typename T>
    +
    307 void transform_hierarchy<T>::clear_cache_for(unsigned int node_id) const
    +
    308 {
    +
    309 this->node_local_transform_hashes[node_id] = std::numeric_limits<std::size_t>::max();
    +
    310 }
    +
    311
    +
    312 template<typename T>
    +
    313 void transform_hierarchy<T>::clear_cache() const
    +
    314 {
    +
    315 for(auto& hash : this->node_local_transform_hashes)
    +
    316 {
    +
    317 hash = std::numeric_limits<std::size_t>::max();
    +
    318 }
    +
    319 }
    +
    320
    +
    321 template<typename T>
    +
    322 void transform_hierarchy<T>::dbgui(bool display_gizmo)
    +
    323 {
    +
    324 for(unsigned int root : this->get_root_node_ids())
    +
    325 {
    +
    326 if(!this->dbgui_node(root, display_gizmo))
    +
    327 {
    +
    328 break;
    +
    329 }
    +
    330 }
    +
    331 }
    +
    332
    +
    333 template<typename T>
    +
    334 bool transform_hierarchy<T>::dbgui_node(unsigned int node_id, bool display_gizmo)
    +
    335 {
    +
    336 const transform_node<T>& node = this->get_node(node_id);
    +
    337 std::string node_name;
    +
    338 if constexpr(is_printable<T>)
    +
    339 {
    +
    340 std::ostringstream oss;
    +
    341 oss << node.data;
    +
    342 node_name = "Node \"" + oss.str() + "\"";
    +
    343 }
    +
    344 else
    +
    345 {
    +
    346 node_name = "Node " + std::to_string(node_id);
    +
    347 }
    +
    348 bool ret = true;
    +
    349 if(ImGui::TreeNode(node_name.c_str()))
    +
    350 {
    +
    351 if constexpr(has_dbgui_method<T>)
    +
    352 {
    +
    353 node.data.dbgui();
    +
    354 }
    +
    355 if(display_gizmo)
    +
    356 {
    +
    357 node.local_transform.dbgui();
    +
    358 tz::mat4 local = node.local_transform.matrix();
    +
    359 tz::mat4 global = this->get_global_transform(node_id).matrix();
    +
    360 if(local != tz::mat4::identity())
    +
    361 {
    +
    362 ImGui::Text("Local Transform");
    +
    363 tz::dbgui_model(local);
    +
    364 ImGui::Text("Global Transform");
    +
    365 tz::dbgui_model(global);
    +
    366 }
    +
    367 }
    +
    368 for(unsigned int child_idx : node.children)
    +
    369 {
    +
    370 if(!this->dbgui_node(child_idx, display_gizmo))
    +
    371 {
    +
    372 break;
    +
    373 }
    +
    374 }
    +
    375 if(ImGui::Button("X"))
    +
    376 {
    +
    377 this->remove_node(node_id, remove_strategy::patch_children_to_parent);
    +
    378 ret = false;
    +
    379 }
    +
    380 ImGui::TreePop();
    +
    381 }
    +
    382 return ret;
    +
    383 }
    +
    384}
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    Represents a centralised storage/management of callback functions of a common signature void(Args....
    Definition callback.hpp:31
    +
    matrix()=default
    Default-intialised matrices have indeterminate values.
    +
    Represents a hierarchy of 3D transformations, with a payload applied.
    Definition transform_hierarchy.hpp:34
    +
    remove_strategy
    Definition transform_hierarchy.hpp:39
    +
    unsigned int add_node(tz::trs local_transform={}, T data={}, std::optional< unsigned int > parent=std::nullopt)
    Add a new node to the hierarchy.
    Definition transform_hierarchy.inl:94
    +
    const transform_node< T > & get_node(unsigned int id) const
    Retrieve the node corresponding to the given index.
    Definition transform_hierarchy.inl:213
    +
    void clear()
    Remove all nodes from the hierarchy, emptying it.
    Definition transform_hierarchy.inl:28
    +
    std::size_t size() const
    Retrieves the number of nodes within the hierarchy.
    Definition transform_hierarchy.inl:22
    +
    Just like a tz::function, except will never return anything.
    Definition types.hpp:47
    +
    function concept which constrains F to any type that can be called with Args... to produce a Result.
    Definition types.hpp:38
    +
    Definition transform_hierarchy.inl:10
    +
    Definition transform_hierarchy.inl:16
    +
    matrix< float, 4, 4 > mat4
    Definition matrix.hpp:208
    +
    void assert(bool condition, detail::format_string fmt="<No message>", Args &&... args)
    Assert on a condition.
    Definition debug.inl:33
    +
    Represents a node within a transform hierarchy.
    Definition transform_hierarchy.hpp:16
    +
    std::optional< unsigned int > parent
    Index of the node that is this node's parent, or nullopt if this node has no parent.
    Definition transform_hierarchy.hpp:22
    +
    std::vector< unsigned int > children
    List of all indices representing this node's children.
    Definition transform_hierarchy.hpp:24
    +
    T data
    User-data. You can use this for whatever you wish. Must be at least moveable.
    Definition transform_hierarchy.hpp:18
    +
    tz::trs local_transform
    Local transform, relative to its parent. If there is no parent, then this represents the global trans...
    Definition transform_hierarchy.hpp:20
    +
    Definition trs.hpp:8
    +
    + + + + diff --git a/trs_8hpp_source.html b/trs_8hpp_source.html new file mode 100644 index 0000000000..952da1319a --- /dev/null +++ b/trs_8hpp_source.html @@ -0,0 +1,163 @@ + + + + + + + +Topaz: src/tz/core/data/trs.hpp Source File + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    Topaz 4.1.0.1 +
    +
    C++20 Graphics Engine
    +
    +
    + + + + + + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + + +
    +
    +
    trs.hpp
    +
    +
    +
    1#ifndef TOPAZ_CORE_DATA_TRS_HPP
    +
    2#define TOPAZ_CORE_DATA_TRS_HPP
    +
    3#include "tz/core/data/quat.hpp"
    +
    4
    +
    5namespace tz
    +
    6{
    +
    +
    7 struct trs
    +
    8 {
    +
    9 tz::vec3 translate = tz::vec3::zero();
    +
    10 tz::quat rotate = {0.0f, 0.0f, 0.0f, 1.0f};
    +
    11 tz::vec3 scale = tz::vec3::filled(1.0f);
    +
    12 #if TZ_DEBUG
    +
    13 tz::vec2 dbgui_slider_scale = tz::vec2::filled(1.0f);
    +
    14 #endif // TZ_DEBUG
    +
    15
    +
    16 trs lerp(const trs& rhs, float factor) const;
    +
    17 tz::mat4 matrix() const;
    +
    18 static trs from_matrix(tz::mat4 mat);
    +
    19 trs& inverse();
    +
    20 trs inversed() const;
    +
    21 trs& combine(const trs& rhs);
    +
    22 trs combined(const trs& rhs) const;
    +
    23 void dbgui();
    +
    24 bool operator==(const trs& rhs) const = default;
    +
    25 };
    +
    +
    26}
    +
    27
    +
    28namespace std
    +
    29{
    +
    30 template<>
    +
    +
    31 struct hash<tz::trs>
    +
    32 {
    +
    33 std::size_t operator()(const tz::trs& t) const
    +
    34 {
    +
    35 std::size_t ret = 0;
    +
    36 ret ^= std::hash<tz::vec3>{}(t.translate);
    +
    37 ret ^= std::hash<tz::quat>{}(t.rotate);
    +
    38 ret ^= std::hash<tz::vec3>{}(t.scale);
    +
    39 return ret;
    +
    40 }
    +
    41 };
    +
    +
    42}
    +
    43
    +
    44#endif // TOPAZ_CORE_DATA_TRS_HPP
    +
    Represents a row-major matrix with R rows and C columns.
    Definition matrix.hpp:16
    +
    Definition quat.hpp:9
    +
    matrix< float, 4, 4 > mat4
    Definition matrix.hpp:208
    +
    vector< float, 2 > vec2
    A vector of two floats.
    Definition vector.hpp:215
    +
    vector< float, 3 > vec3
    A vector of three floats.
    Definition vector.hpp:217
    +
    Definition trs.hpp:8
    +
    + + + + diff --git a/types_8hpp_source.html b/types_8hpp_source.html new file mode 100644 index 0000000000..813dc89da9 --- /dev/null +++ b/types_8hpp_source.html @@ -0,0 +1,197 @@ + + + + + + + +Topaz: src/tz/core/types.hpp Source File + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    Topaz 4.1.0.1 +
    +
    C++20 Graphics Engine
    +
    +
    + + + + + + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + + +
    +
    +
    types.hpp
    +
    +
    +
    1#ifndef TOPAZ_CORE_TYPES_HPP
    +
    2#define TOPAZ_CORE_TYPES_HPP
    +
    3#include <type_traits>
    +
    4#include <concepts>
    +
    5#include "tz/core/memory/memblk.hpp"
    +
    6
    +
    7namespace tz
    +
    8{
    +
    12 template<typename T>
    +
    13 concept arithmetic = std::is_arithmetic_v<std::decay_t<T>>;
    +
    14
    +
    15 template<typename T>
    +
    16 concept const_type = std::is_const_v<T>;
    +
    17
    +
    18 template<typename T>
    +
    19 concept enum_class = std::is_enum_v<T> && !std::is_convertible_v<T, int>;
    +
    20
    +
    24 template<typename T>
    +
    +
    25 concept number = requires
    +
    26 {
    +
    27 requires arithmetic<T>;
    +
    28 requires !std::is_same_v<std::remove_cvref_t<T>, bool>;
    +
    29 requires !std::is_same_v<std::remove_cvref_t<T>, char>;
    +
    30 };
    +
    +
    31
    +
    37 template<typename F, typename Result, typename... Args>
    +
    +
    38 concept function = requires(F f, Args... args)
    +
    39 {
    +
    40 {f(args...)} -> std::convertible_to<Result>;
    +
    41 };
    +
    +
    42
    +
    46 template<typename F, typename... Args>
    +
    47 concept action = function<F, void, Args...>;
    +
    48
    +
    49 template<typename T>
    +
    50 constexpr bool copyable = requires { requires std::copyable<T>; };
    +
    51
    +
    52 template<typename T>
    +
    53 constexpr bool moveable = requires { requires std::movable<T>; };
    +
    54
    +
    55 template<typename T>
    +
    56 concept trivially_copyable = std::is_trivially_copyable_v<T>;
    +
    57
    +
    58 template<typename T>
    +
    +
    59 concept nullable = requires(const T t)
    +
    60 {
    +
    61 //{decltype(t)::null()};
    +
    62 {t.is_null()} -> std::same_as<bool>;
    +
    63 };
    +
    +
    64
    +
    65 template<typename T>
    +
    +
    66 concept native_available = requires(T t)
    +
    67 {
    +
    68 T::NativeType;
    +
    69 {t.native()} -> std::same_as<typename T::NativeType>;
    +
    70 };
    +
    +
    71
    +
    72 template<typename T>
    +
    +
    73 concept allocator = requires(T t, tz::memblk blk, std::size_t sz)
    +
    74 {
    +
    75 {t.allocate(sz)} -> std::same_as<tz::memblk>;
    +
    76 {t.deallocate(blk)} -> std::same_as<void>;
    +
    77 {t.owns(blk)} -> std::same_as<bool>;
    +
    78 };
    +
    +
    79}
    +
    80
    +
    81#endif // TOPAZ_CORE_TYPES_HPP
    +
    Just like a tz::function, except will never return anything.
    Definition types.hpp:47
    +
    Definition types.hpp:73
    +
    An integral type or a floating-point type (including char and bool).
    Definition types.hpp:13
    +
    Definition types.hpp:16
    +
    Definition types.hpp:19
    +
    function concept which constrains F to any type that can be called with Args... to produce a Result.
    Definition types.hpp:38
    +
    Definition types.hpp:66
    +
    Definition types.hpp:59
    +
    A number is any arithmetic type excluding char and bool.
    Definition types.hpp:25
    +
    Definition types.hpp:56
    +
    A non-owning, contiguous block of memory.
    Definition memblk.hpp:12
    +
    + + + + diff --git a/tz.png b/tz.png new file mode 100644 index 0000000000..714168fce9 Binary files /dev/null and b/tz.png differ diff --git a/tz_8hpp_source.html b/tz_8hpp_source.html new file mode 100644 index 0000000000..1789ab310a --- /dev/null +++ b/tz_8hpp_source.html @@ -0,0 +1,174 @@ + + + + + + + +Topaz: src/tz/tz.hpp Source File + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    Topaz 4.1.0.1 +
    +
    C++20 Graphics Engine
    +
    +
    + + + + + + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + + +
    +
    +
    tz.hpp
    +
    +
    +
    1#ifndef TZ_CORE_TZ_HPP
    +
    2#define TZ_CORE_TZ_HPP
    +
    3#include "tz/core/data/enum_field.hpp"
    +
    4#include "tz/core/game_info.hpp"
    +
    5#include "tz/wsi/window.hpp"
    +
    6
    +
    7static_assert(TZ_VULKAN || TZ_OGL, "No graphics API detected. You have not configured CMake correctly.");
    +
    8
    +
    9namespace tz
    +
    10{
    +
    11 namespace literals
    +
    12 {
    +
    13 inline constexpr unsigned char operator "" _uc(unsigned long long arg) noexcept
    +
    14 {
    +
    15 return static_cast<unsigned char>(arg);
    +
    16 }
    +
    17 }
    +
    18
    +
    + +
    56 {
    + + + + + +
    67 };
    +
    +
    68
    +
    70 using application_flags = tz::enum_field<application_flag>;
    +
    71
    +
    + +
    77 {
    +
    79 const char* name = "Untitled";
    +
    81 tz::version version = {1, 0, 0, tz::version_type::normal};
    +
    83 tz::vec2ui dimensions = {800u, 600u};
    +
    85 application_flags flags = {};
    +
    86 };
    +
    +
    92 void initialise(initialise_info init = {});
    +
    99 void terminate();
    +
    105 void begin_frame();
    +
    111 void end_frame();
    + +
    125 bool is_initialised();
    +
    126}
    +
    127#include "tz/tz.inl"
    +
    128
    +
    148#endif // TZ_CORE_TZ_HPP
    +
    Container for enum values, useful for vintage bitfield types.
    Definition enum_field.hpp:16
    +
    tz::wsi::window & window()
    Retrieve the application window.
    Definition tz.cpp:125
    +
    vector< unsigned int, 2 > vec2ui
    A vector of two unsigned ints.
    Definition vector.hpp:244
    +
    application_flag
    Represents custom functionality to be enabled/disabled during initialisation.
    Definition tz.hpp:56
    + + + + + +
    Specifies everything needed to initialise the engine.
    Definition tz.hpp:77
    +
    const char * name
    Definition tz.hpp:79
    +
    application_flags flags
    Definition tz.hpp:85
    +
    tz::vec2ui dimensions
    Definition tz.hpp:83
    +
    Versions consist of a major, minor, patch and a version_type.
    Definition version.hpp:32
    +
    Represents an application window.
    Definition window.hpp:40
    +
    + + + + diff --git a/tz_8inl_source.html b/tz_8inl_source.html new file mode 100644 index 0000000000..bfdc839db9 --- /dev/null +++ b/tz_8inl_source.html @@ -0,0 +1,109 @@ + + + + + + + +Topaz: src/tz/tz.inl Source File + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    Topaz 4.1.0.1 +
    +
    C++20 Graphics Engine
    +
    +
    + + + + + + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + + +
    +
    +
    tz.inl
    +
    +
    +
    + + + + diff --git a/tz__core_8hpp_source.html b/tz__core_8hpp_source.html new file mode 100644 index 0000000000..4f9b98563b --- /dev/null +++ b/tz__core_8hpp_source.html @@ -0,0 +1,125 @@ + + + + + + + +Topaz: src/tz/core/tz_core.hpp Source File + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    Topaz 4.1.0.1 +
    +
    C++20 Graphics Engine
    +
    +
    + + + + + + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + + +
    +
    +
    tz_core.hpp
    +
    +
    +
    1#ifndef TZ_HPP
    +
    2#define TZ_HPP
    +
    3
    +
    4namespace tz::core
    +
    5{
    +
    6
    +
    24 void initialise();
    +
    25 void terminate();
    +
    26
    +
    27 namespace detail
    +
    28 {
    +
    29 bool is_initialised();
    +
    30 }
    +
    31}
    +
    32
    +
    33#endif // TZ_HPP
    +
    + + + + diff --git a/tz__gl_8hpp_source.html b/tz__gl_8hpp_source.html new file mode 100644 index 0000000000..763da4f857 --- /dev/null +++ b/tz__gl_8hpp_source.html @@ -0,0 +1,121 @@ + + + + + + + +Topaz: src/tz/gl/tz_gl.hpp Source File + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    Topaz 4.1.0.1 +
    +
    C++20 Graphics Engine
    +
    +
    + + + + + + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + + +
    +
    +
    tz_gl.hpp
    +
    +
    +
    1#ifndef TOPAZ_GL2_TZ_GL_HPP
    +
    2#define TOPAZ_GL2_TZ_GL_HPP
    +
    3#include "tz/core/data/version.hpp"
    +
    4#include <array>
    +
    5
    +
    6namespace tz::gl
    +
    7{
    +
    70 void initialise();
    +
    71 void terminate();
    +
    72}
    +
    73
    +
    74#endif // TOPAZ_GL2_TZ_GL_HPP
    +
    + + + + diff --git a/tz__opengl_8hpp_source.html b/tz__opengl_8hpp_source.html new file mode 100644 index 0000000000..cb556ce24a --- /dev/null +++ b/tz__opengl_8hpp_source.html @@ -0,0 +1,134 @@ + + + + + + + +Topaz: src/tz/gl/impl/opengl/detail/tz_opengl.hpp Source File + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    Topaz 4.1.0.1 +
    +
    C++20 Graphics Engine
    +
    +
    + + + + + + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + + +
    +
    +
    tz_opengl.hpp
    +
    +
    +
    1#ifndef TOPAZ_GL_IMPL_BACKEND_OGL2_TZ_OPENGL_HPP
    +
    2#define TOPAZ_GL_IMPL_BACKEND_OGL2_TZ_OPENGL_HPP
    +
    3#if TZ_OGL
    +
    4#include "tz/tz.hpp"
    +
    5#include "glad/glad.h"
    +
    6#if TZ_PROFILE
    +
    7#include "tracy/TracyOpenGL.hpp"
    +
    8#endif // TZ_PROFILE
    +
    9
    +
    10namespace tz::gl::ogl2
    +
    11{
    +
    46 void initialise();
    +
    51 void terminate();
    +
    56 bool is_initialised();
    +
    57
    +
    58 constexpr tz::version ogl_version{4, 6, 0, tz::version_type::normal};
    +
    59 using ogl_string = std::basic_string<GLchar>;
    +
    60 using ogl_string_view = std::basic_string_view<GLchar>;
    +
    61
    +
    62 bool supports_bindless_textures();
    +
    63}
    +
    64
    +
    65#endif // TZ_OGL
    +
    66#endif // TOPAZ_GL_IMPL_BACKEND_OGL2_TZ_OPENGL_HPP
    +
    Versions consist of a major, minor, patch and a version_type.
    Definition version.hpp:32
    +
    + + + + diff --git a/tz__vulkan_8hpp_source.html b/tz__vulkan_8hpp_source.html new file mode 100644 index 0000000000..04315ceb3e --- /dev/null +++ b/tz__vulkan_8hpp_source.html @@ -0,0 +1,287 @@ + + + + + + + +Topaz: src/tz/gl/impl/vulkan/detail/tz_vulkan.hpp Source File + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    Topaz 4.1.0.1 +
    +
    C++20 Graphics Engine
    +
    +
    + + + + + + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + + +
    +
    +
    tz_vulkan.hpp
    +
    +
    +
    1#ifndef TOPAZ_GL_IMPL_BACKEND_VK2_TZ_VULKAN_HPP
    +
    2#define TOPAZ_GL_IMPL_BACKEND_VK2_TZ_VULKAN_HPP
    +
    3#if TZ_VULKAN
    +
    4#include "tz/wsi/window.hpp"
    +
    5#include "tz/core/data/version.hpp"
    +
    6#include "tz/core/game_info.hpp"
    +
    7#include "tz/tz.hpp"
    +
    8#include "tz/gl/impl/vulkan/detail/extensions.hpp"
    +
    9#include "vk_mem_alloc.h"
    +
    10#include <cstdint>
    +
    11#include <optional>
    +
    12
    +
    13namespace tz::gl::vk2
    +
    14{
    +
    15 class VulkanInstance;
    +
    16
    +
    98 void initialise(tz::game_info game_info);
    +
    102 void terminate();
    +
    103
    +
    107 const VulkanInstance& get();
    +
    108
    +
    113 constexpr tz::version vulkan_version{1, 3, 0, tz::version_type::normal};
    +
    114
    +
    115 namespace util
    +
    116 {
    +
    117 using VkVersion = std::uint32_t;
    +
    123 constexpr VkVersion tz_to_vk_version(tz::version ver)
    +
    124 {
    +
    125 return VK_MAKE_VERSION(ver.major, ver.minor, ver.patch);
    +
    126 }
    +
    127 }
    +
    128
    +
    129 class VulkanInstance;
    +
    130
    +
    + +
    132 {
    +
    133 public:
    +
    134 static constexpr char debug_message_shader_printf_label[] = "TZ_ASSERT_SHADER";
    +
    135 VulkanDebugMessenger(const VulkanInstance& instance);
    +
    136 VulkanDebugMessenger(const VulkanDebugMessenger& copy) = delete;
    + + +
    139
    +
    140 VulkanDebugMessenger& operator=(const VulkanDebugMessenger& rhs) = delete;
    + +
    142 private:
    +
    143 VkDebugUtilsMessengerEXT debug_messenger;
    +
    144 VkInstance instance;
    +
    145 };
    +
    +
    146
    +
    + +
    153 {
    +
    154 public:
    +
    158 WindowSurface(const VulkanInstance& instance, const tz::wsi::window& window);
    +
    159 WindowSurface(const WindowSurface& copy) = delete;
    + + +
    162
    +
    163 WindowSurface& operator=(const WindowSurface& rhs) = delete;
    +
    164 WindowSurface& operator=(WindowSurface&& rhs);
    +
    165
    +
    166 const VulkanInstance& get_instance() const;
    +
    167 const tz::wsi::window& get_window() const;
    +
    168
    +
    169 using NativeType = VkSurfaceKHR;
    +
    170 NativeType native() const;
    +
    171 private:
    +
    172 VkSurfaceKHR surface;
    +
    173 const VulkanInstance* instance;
    +
    174 const tz::wsi::window* window;
    +
    175 };
    +
    +
    176
    +
    + +
    182 {
    + +
    186 InstanceExtensionList extensions = {};
    +
    188 const tz::wsi::window* window = nullptr;
    + +
    191 };
    +
    +
    192
    +
    193
    +
    + +
    200 {
    +
    201 public:
    + +
    203 VulkanInstance(const VulkanInstance& copy) = delete;
    +
    204 VulkanInstance(VulkanInstance&& move) = delete;
    + +
    206 VulkanInstance& operator=(const VulkanInstance& rhs) = delete;
    +
    207 VulkanInstance& operator=(VulkanInstance&& rhs) = default;
    +
    208
    +
    209 bool has_surface() const;
    +
    210 bool validation_layers_enabled() const;
    +
    211
    +
    212 const WindowSurface& get_surface() const;
    +
    213 const InstanceExtensionList& get_extensions() const;
    +
    214
    +
    215 using NativeType = VkInstance;
    +
    216 NativeType native() const;
    +
    217
    +
    218 bool operator==(const VulkanInstance& rhs) const;
    +
    219
    +
    220 void ext_begin_debug_utils_label(VkCommandBuffer cmdbuf_native, VkDebugUtilsLabelEXT label) const;
    +
    221 void ext_end_debug_utils_label(VkCommandBuffer cmdbuf_native) const;
    +
    222 VkResult ext_set_debug_utils_object_name(VkDevice device_native, VkDebugUtilsObjectNameInfoEXT info) const;
    +
    223 private:
    +
    224 void load_extension_functions();
    +
    225
    + +
    227 VkInstance instance;
    +
    228 std::optional<VulkanDebugMessenger> maybe_debug_messenger;
    +
    229 std::optional<WindowSurface> maybe_window_surface;
    +
    230 PFN_vkCmdBeginDebugUtilsLabelEXT ext_vkcmdbegindebugutilslabel = nullptr;
    +
    231 PFN_vkCmdEndDebugUtilsLabelEXT ext_vkcmdenddebugutilslabel = nullptr;
    +
    232 PFN_vkSetDebugUtilsObjectNameEXT ext_vksetdebugutilsobjectname = nullptr;
    +
    233 };
    +
    +
    234
    +
    + +
    240 {
    +
    242 Immediate = VK_PRESENT_MODE_IMMEDIATE_KHR,
    +
    244 Mailbox = VK_PRESENT_MODE_MAILBOX_KHR,
    +
    246 Fifo = VK_PRESENT_MODE_FIFO_KHR,
    +
    248 FifoRelaxed = VK_PRESENT_MODE_FIFO_RELAXED_KHR
    +
    249 };
    +
    +
    250
    +
    251 constexpr SurfacePresentMode safe_present_modes[]
    +
    252 {
    +
    253 /* https://www.khronos.org/registry/vulkan/specs/1.2-extensions/man/html/VkPresentModeKHR.html -> Description:
    +
    254 * VK_PRESENT_MODE_FIFO -- This is the only value of presentMode that is required to be supported.
    +
    255 */
    +
    256 SurfacePresentMode::Fifo
    +
    257 };
    +
    258
    +
    +
    263 namespace present_traits
    +
    264 {
    +
    +
    269 constexpr std::span<const SurfacePresentMode> get_mandatory_present_modes()
    +
    270 {
    +
    271 return {safe_present_modes};
    +
    272 }
    +
    +
    273 }
    +
    +
    274}
    +
    275#endif // TZ_VULKAN
    +
    276#endif // TOPAZ_GL_IMPL_BACKEND_VK2_TZ_VULKAN_HPP
    +
    Definition tz_vulkan.hpp:132
    +
    Represents a vulkan instance, which acts as a reference to all per-application state.
    Definition tz_vulkan.hpp:200
    +
    Represents a Vulkan-friendly interface to an existing OS window.
    Definition tz_vulkan.hpp:153
    +
    tz::wsi::window & window()
    Retrieve the application window.
    Definition tz.cpp:125
    +
    SurfacePresentMode
    Supported Presentation mode supported for a WindowSurface.
    Definition tz_vulkan.hpp:240
    + + + + +
    constexpr std::span< const SurfacePresentMode > get_mandatory_present_modes()
    Retrieve a span of all SurfacePresentModes which are guaranteed to be supported on any machine.
    Definition tz_vulkan.hpp:269
    +
    Contains basic information about the target game/application.
    Definition game_info.hpp:18
    +
    Specifies creation flags for a VulkanInstance.
    Definition tz_vulkan.hpp:182
    +
    const tz::wsi::window * window
    Window from which to create a WindowSurface. If nullptr is passed, no WindowSurface is created....
    Definition tz_vulkan.hpp:188
    +
    tz::game_info game_info
    Information about the application.
    Definition tz_vulkan.hpp:184
    +
    InstanceExtensionList extensions
    List of extensions to enable. Empty by default.
    Definition tz_vulkan.hpp:186
    +
    bool enable_validation_layers
    Whether we should attempt to load validation layers or not.
    Definition tz_vulkan.hpp:190
    +
    Versions consist of a major, minor, patch and a version_type.
    Definition version.hpp:32
    +
    unsigned int minor
    Minor version.
    Definition version.hpp:36
    +
    unsigned int major
    Major version.
    Definition version.hpp:34
    +
    unsigned int patch
    Patch version.
    Definition version.hpp:38
    +
    Represents an application window.
    Definition window.hpp:40
    +
    + + + + diff --git a/tz_lua.html b/tz_lua.html new file mode 100644 index 0000000000..d9a9d47311 --- /dev/null +++ b/tz_lua.html @@ -0,0 +1,121 @@ + + + + + + + +Topaz: Lua API Reference + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    Topaz 4.1.0.1 +
    +
    C++20 Graphics Engine
    +
    +
    + + + + + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    +
    Lua API Reference
    +
    +
    +

    +Introduction

    +
      +
    • During the runtime of a debug-build, you can use the lua console within the dbgui to run lua ad-hoc (location: "Engine->Lua Console")
    • +
    +

    +Functions

    +
    function tz.assert(expr: boolean)
    +

    Asserts that an expression is true. If it is false, an assertion failure occurs on debug builds.


    +

    +Constants

    +
    table tz.version
    +
    {
    +
    number major,
    +
    number minor,
    +
    number patch,
    +
    string string
    +
    }
    +

    A table containing version info for the current version of the host engine.

    Note
    tz.version.string represents a readable, printable Topaz version.
    +
    +
    +
    + + + + diff --git a/vector_8hpp_source.html b/vector_8hpp_source.html new file mode 100644 index 0000000000..03b77c758d --- /dev/null +++ b/vector_8hpp_source.html @@ -0,0 +1,276 @@ + + + + + + + +Topaz: src/tz/core/data/vector.hpp Source File + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    Topaz 4.1.0.1 +
    +
    C++20 Graphics Engine
    +
    +
    + + + + + + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + + +
    +
    +
    vector.hpp
    +
    +
    +
    1#ifndef TZ_VECTOR_HPP
    +
    2#define TZ_VECTOR_HPP
    +
    3#include "tz/core/types.hpp"
    +
    4#include <functional>
    +
    5#include <array>
    +
    6#include <tuple>
    +
    7#include <span>
    +
    8#include <cstdint>
    +
    9
    +
    10namespace tz
    +
    11{
    +
    16 template<tz::number T, std::size_t S>
    +
    +
    17 class vector
    +
    18 {
    +
    19 public:
    +
    +
    23 static constexpr vector<T, S> zero()
    +
    24 {
    +
    25 return vector<T, S>::filled(T{0});
    +
    26 }
    +
    +
    27
    +
    +
    31 static constexpr vector<T, S> filled(T t)
    +
    32 {
    +
    33 std::array<T, S> values;
    +
    34 std::fill(values.begin(), values.end(), t);
    +
    35 return {values};
    +
    36 }
    +
    +
    37
    +
    42 template<tz::number... Ts>
    +
    +
    43 constexpr vector(Ts&&... ts) :
    +
    44 vec({ std::forward<Ts>(ts)... }) {}
    +
    +
    48 constexpr vector(std::array<T, S> data);
    +
    52 vector() = default;
    +
    58 const T& operator[](std::size_t idx) const;
    +
    64 T& operator[](std::size_t idx);
    + +
    76 vector<T, S> operator+(const vector<T, S>& rhs) const;
    + +
    88 vector<T, S> operator-(const vector<T, S>& rhs) const;
    +
    94 vector<T, S>& operator*=(T scalar);
    +
    100 vector<T, S> operator*(T scalar) const;
    + +
    112 vector<T, S> operator*(const vector<T, S>& rhs) const;
    +
    118 vector<T, S>& operator/=(T scalar);
    +
    124 vector<T, S> operator/(T scalar) const;
    +
    125
    +
    131 bool operator==(const vector<T, S>& rhs) const;
    +
    136 std::span<const T> data() const;
    +
    141 std::span<T> data();
    +
    147 T dot(const vector<T, S>& rhs) const;
    +
    152 T length() const;
    +
    157 void normalise();
    +
    162 vector<T, S> normalised() const;
    +
    163
    +
    175 template<int... indices>
    +
    176 vector<T, sizeof...(indices)> swizzle() const;
    +
    177
    +
    186 vector<T, S + 1> with_more(T&& end) const;
    +
    196 template<std::size_t S2>
    +
    197 vector<T, S + S2> with_more(const vector<T, S2>& end) const;
    +
    198
    +
    202 template<tz::number X, typename = std::enable_if_t<!std::is_same_v<T, X>>>
    +
    203 operator vector<X, S>() const;
    +
    204 private:
    +
    205 std::array<T, S> vec;
    +
    206 };
    +
    +
    207
    +
    213 using vec1 = vector<float, 1>;
    + + + +
    220
    +
    221
    + + + +
    228
    + + + +
    235
    + + + +
    242
    + + + +
    249
    + + + +
    256
    + + + +
    263
    +
    264
    +
    265 template<typename T = float>
    +
    266 vector<T, 3> cross(const vector<T, 3>& lhs, const vector<T, 3>& rhs);
    +
    267
    +
    268 template<std::size_t I, tz::number T, std::size_t S>
    +
    269 inline std::tuple_element_t<I, tz::vector<T, S>> get(const tz::vector<T, S>& vec)
    +
    270 {
    +
    271 return vec[I];
    +
    272 }
    +
    273
    +
    277}
    +
    278
    +
    279namespace std
    +
    280{
    +
    281 template<tz::number T, std::size_t S>
    +
    282 struct hash<tz::vector<T, S>>
    +
    283 {
    +
    284 std::size_t operator()(const tz::vector<T, S>& v) const
    +
    285 {
    +
    286 std::size_t ret = 0;
    +
    287 for(const T& t : v.data())
    +
    288 {
    +
    289 ret |= std::hash<T>{}(t);
    +
    290 }
    +
    291 return ret;
    +
    292 }
    +
    293 };
    +
    294
    +
    295 template<tz::number T, std::size_t S>
    +
    296 struct tuple_size<tz::vector<T, S>> : std::integral_constant<std::size_t, S>{};
    +
    297
    +
    298 template<std::size_t I, tz::number T, std::size_t S>
    +
    299 struct tuple_element<I, tz::vector<T, S>>
    +
    300 {
    +
    301 using type = T;
    +
    302 };
    +
    303}
    +
    304
    +
    305#include "tz/core/data/vector.inl"
    +
    306#endif // TZ_VECTOR_HPP
    +
    Definition vector.hpp:18
    +
    vector< T, S > operator/(T scalar) const
    Create a copy of the current vector, divide each element of the copied vector by the given value,...
    Definition vector.inl:98
    +
    T dot(const vector< T, S > &rhs) const
    Compute a dot-product (otherwise known as the scalar-product) of the current vector against another g...
    Definition vector.inl:143
    +
    static constexpr vector< T, S > zero()
    Create a vector filled entirely with zeros.
    Definition vector.hpp:23
    +
    std::span< const T > data() const
    Retrieve a pointer to the vector data.
    Definition vector.inl:131
    +
    static constexpr vector< T, S > filled(T t)
    Create a vector filled entirely with a given value.
    Definition vector.hpp:31
    +
    vector< T, S > operator+(const vector< T, S > &rhs) const
    Create a copy of the current vector, add each element of the given vector to the corresponding elemen...
    Definition vector.inl:35
    +
    vector< T, S > & operator+=(const vector< T, S > &rhs)
    Add each element of the given vector to the corresponding element of the current vector.
    Definition vector.inl:27
    +
    vector< T, S > operator*(T scalar) const
    Create a copy of the current vector, multiply each element of the copied vector by the given value,...
    Definition vector.inl:67
    +
    vector()=default
    Default-constructed vectors have indeterminate values.
    +
    vector< T, S+1 > with_more(T &&end) const
    Create a new vector, with a single extra element appended to the end.
    Definition vector.inl:203
    +
    vector< T, S > & operator/=(T scalar)
    Divide each element of the current vector by the given value.
    Definition vector.inl:90
    +
    const T & operator[](std::size_t idx) const
    Retrieve the element value at the given index.
    Definition vector.inl:13
    +
    constexpr vector(Ts &&... ts)
    Construct a vector directly using a variadic parameter pack value.
    Definition vector.hpp:43
    +
    void normalise()
    Normalise the vector.
    Definition vector.inl:167
    +
    vector< T, S > normalised() const
    Create a copy of the vector, normalise it and return the result.
    Definition vector.inl:182
    +
    vector< T, sizeof...(indices)> swizzle() const
    Perform vector swizzling.
    Definition vector.inl:191
    +
    vector< T, S > & operator*=(T scalar)
    Multiply each element of the current vector by the given value.
    Definition vector.inl:59
    +
    vector< T, S > operator-(const vector< T, S > &rhs) const
    Create a copy of the current vector, subtract each element of the given vector from the corresponding...
    Definition vector.inl:51
    +
    T length() const
    Retrieve the magnitude of the current vector.
    Definition vector.inl:155
    +
    vector< T, S > & operator-=(const vector< T, S > &rhs)
    Subtract each element of the given vector from the corresponding element of the current vector.
    Definition vector.inl:43
    +
    bool operator==(const vector< T, S > &rhs) const
    Equate the current vector with the given vector.
    Definition vector.inl:106
    +
    A number is any arithmetic type excluding char and bool.
    Definition types.hpp:25
    +
    + + + + diff --git a/vector_8inl_source.html b/vector_8inl_source.html new file mode 100644 index 0000000000..33d868a4af --- /dev/null +++ b/vector_8inl_source.html @@ -0,0 +1,438 @@ + + + + + + + +Topaz: src/tz/core/data/vector.inl Source File + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    Topaz 4.1.0.1 +
    +
    C++20 Graphics Engine
    +
    +
    + + + + + + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + + +
    +
    +
    vector.inl
    +
    +
    +
    1#include "tz/core/debug.hpp"
    +
    2#include "tz/core/profile.hpp"
    +
    3#include <utility>
    +
    4#include <cmath>
    +
    5#include <algorithm>
    +
    6
    +
    7namespace tz
    +
    8{
    +
    9 template<tz::number T, std::size_t S>
    +
    10 constexpr vector<T, S>::vector(std::array<T, S> data): vec(data){}
    +
    11
    +
    12 template<tz::number T, std::size_t S>
    +
    +
    13 const T& vector<T, S>::operator[](std::size_t idx) const
    +
    14 {
    +
    15 tz::assert(idx < S, "vector<T, %zu>::operator[%zu]: Index out of range!", S, idx);
    +
    16 return this->vec[idx];
    +
    17 }
    +
    +
    18
    +
    19 template<tz::number T, std::size_t S>
    +
    +
    20 T& vector<T, S>::operator[](std::size_t idx)
    +
    21 {
    +
    22 tz::assert(idx < S, "vector<T, %zu>::operator[%zu]: Index out of range!", S, idx);
    +
    23 return this->vec[idx];
    +
    24 }
    +
    +
    25
    +
    26 template<tz::number T, std::size_t S>
    +
    + +
    28 {
    +
    29 for(std::size_t i = 0; i < S; i++)
    +
    30 this->vec[i] += rhs.vec[i];
    +
    31 return *this;
    +
    32 }
    +
    +
    33
    +
    34 template<tz::number T, std::size_t S>
    +
    + +
    36 {
    +
    37 vector<T, S> copy = *this;
    +
    38 copy += rhs;
    +
    39 return copy;
    +
    40 }
    +
    +
    41
    +
    42 template<tz::number T, std::size_t S>
    +
    + +
    44 {
    +
    45 for(std::size_t i = 0; i < S; i++)
    +
    46 this->vec[i] -= rhs.vec[i];
    +
    47 return *this;
    +
    48 }
    +
    +
    49
    +
    50 template<tz::number T, std::size_t S>
    +
    + +
    52 {
    +
    53 vector<T, S> copy = *this;
    +
    54 copy -= rhs;
    +
    55 return copy;
    +
    56 }
    +
    +
    57
    +
    +
    58 template<tz::number T, std::size_t S>
    +
    + +
    60 {
    +
    61 for(std::size_t i = 0; i < S; i++)
    +
    62 this->vec[i] *= scalar;
    +
    63 return *this;
    +
    64 }
    +
    +
    65
    +
    66 template<tz::number T, std::size_t S>
    +
    + +
    68 {
    +
    69 vector<T, S> copy = *this;
    +
    +
    70 copy *= scalar;
    +
    71 return copy;
    +
    72 }
    +
    73
    +
    74 template<tz::number T, std::size_t S>
    +
    + +
    +
    76 {
    +
    77 for(std::size_t i = 0; i < S; i++)
    +
    78 this->vec[i] *= rhs[i];
    +
    79 return *this;
    +
    80 }
    +
    81
    +
    +
    82 template<tz::number T, std::size_t S>
    +
    + +
    84 {
    +
    85 vector<T, S> copy = *this;
    +
    86 return copy *= rhs;
    +
    87 }
    +
    +
    + +
    89 template<tz::number T, std::size_t S>
    +
    + +
    91 {
    +
    92 for(std::size_t i = 0; i < S; i++)
    +
    93 this->vec[i] /= scalar;
    +
    +
    94 return *this;
    +
    95 }
    +
    96
    +
    97 template<tz::number T, std::size_t S>
    +
    + +
    99 {
    +
    +
    100 vector<T, S> copy = *this;
    +
    101 copy /= scalar;
    +
    102 return copy;
    +
    103 }
    +
    104
    +
    105 template<tz::number T, std::size_t S>
    +
    + +
    107 {
    +
    108 for(std::size_t i = 0; i < S; i++)
    +
    109 {
    +
    110 if constexpr(std::is_integral_v<T>)
    +
    111 {
    +
    +
    112 // If we're some integer type
    +
    113 if(!std::cmp_equal(this->vec[i], rhs[i]))
    +
    114 {
    +
    115 return false;
    +
    116 }
    +
    117 }
    +
    +
    118 else
    +
    119 {
    +
    120 // Float or double
    +
    121 if(std::fabs(this->vec[i] - rhs[i]) > std::numeric_limits<T>::epsilon())
    +
    122 {
    +
    123 return false;
    +
    + +
    125 }
    +
    126 }
    +
    127 return true;
    +
    128 }
    +
    129
    +
    130 template<tz::number T, std::size_t S>
    +
    +
    131 std::span<const T> vector<T, S>::data() const
    +
    132 {
    +
    133 return this->vec;
    +
    134 }
    +
    +
    135
    +
    +
    136 template<tz::number T, std::size_t S>
    +
    +
    137 std::span<T> vector<T, S>::data()
    +
    138 {
    +
    139 return this->vec;
    +
    140 }
    +
    +
    + +
    142 template<tz::number T, std::size_t S>
    +
    +
    143 T vector<T, S>::dot(const vector<T, S>& rhs) const
    +
    144 {
    +
    145 TZ_PROFZONE("Vector - Dot Product", 0xFF0000AA);
    +
    146 T sum = T();
    +
    +
    147 for(std::size_t i = 0; i < S; i++)
    +
    148 {
    +
    149 sum += ((*this)[i] * rhs[i]);
    +
    150 }
    +
    151 return sum;
    + +
    +
    +
    153
    +
    154 template<tz::number T, std::size_t S>
    +
    + +
    156 {
    +
    +
    157 TZ_PROFZONE("Vector - Length", 0xFF0000AA);
    +
    158 T sum_squares = T();
    +
    159 for(std::size_t i = 0; i < S; i++)
    +
    160 {
    +
    161 sum_squares += (*this)[i] * (*this)[i];
    +
    + +
    163 return std::sqrt(sum_squares);
    +
    164 }
    +
    165
    +
    166 template<tz::number T, std::size_t S>
    +
    + +
    168 {
    +
    169 TZ_PROFZONE("Vector - Normalise", 0xFF0000AA);
    +
    170 T l = this->length();
    +
    171 if(l == T{}) [[unlikely]]
    +
    172 {
    +
    173 return;
    +
    174 }
    +
    175 for(auto& d : this->vec)
    +
    + +
    177 d /= l;
    +
    178 }
    +
    179 }
    +
    180
    +
    181 template<tz::number T, std::size_t S>
    +
    + +
    183 {
    +
    184 vector<T, S> cpy = *this;
    +
    185 cpy.normalise();
    +
    +
    186 return cpy;
    +
    187 }
    +
    188
    +
    189 template<tz::number T, std::size_t S>
    +
    190 template<int... indices>
    +
    +
    191 vector<T, sizeof...(indices)> vector<T, S>::swizzle() const
    +
    192 {
    +
    193 std::array<int, sizeof...(indices)> data_unswizzled{indices...};
    +
    194 std::array<T, sizeof...(indices)> data{indices...};
    +
    195 for(std::size_t i = 0; i < sizeof...(indices); i++)
    +
    196 {
    +
    +
    197 data[i] = this->vec[data_unswizzled[i]];
    +
    198 }
    +
    199 return {data};
    +
    200 }
    +
    201
    +
    202 template<tz::number T, std::size_t S>
    +
    + +
    204 {
    +
    205 std::array<T, S + 1> new_data;
    +
    206 std::copy(this->vec.begin(), this->vec.end(), new_data.begin());
    +
    207 new_data.back() = end;
    +
    208 return {new_data};
    +
    209 }
    +
    210
    +
    211 template<tz::number T, std::size_t S>
    +
    212 template<std::size_t S2>
    +
    + +
    214 {
    +
    215 std::array<T, S + S2> new_data;
    +
    216 std::copy(this->vec.begin(), this->vec.end(), new_data.begin());
    +
    217 std::copy(end.vec.begin(), end.vec.end(), new_data.begin() + S);
    +
    218 return {new_data};
    +
    219 }
    +
    +
    220
    +
    221 template<tz::number T, std::size_t S>
    +
    222 template<tz::number X, typename>
    +
    + +
    224 {
    +
    225 std::array<X, S> different_data;
    +
    226 std::transform(this->vec.begin(), this->vec.end(), different_data.begin(), [](const T& t){return static_cast<X>(t);});
    +
    227 return {different_data};
    +
    228 }
    +
    +
    +
    229
    +
    230 template<tz::number T>
    +
    231 vector<T, 3> cross(const vector<T, 3>& lhs, const vector<T, 3>& rhs)
    +
    232 {
    +
    233 TZ_PROFZONE("Vector - Cross", 0xFF0000AA);
    +
    234 vector<T, 3> ret;
    +
    235 //cx = aybz − azby
    +
    236 ret[0] = (lhs[1] * rhs[2]) - (lhs[2] * rhs[1]);
    +
    237 //cy = azbx − axbz
    +
    238 ret[1] = (lhs[2] * rhs[0]) - (lhs[0] * rhs[2]);
    +
    239 //cz = axby − aybx
    +
    240 ret[2] = (lhs[0] * rhs[1]) - (lhs[1] * rhs[0]);
    +
    241 return ret;
    +
    242 }
    +
    243
    +
    244}
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    Definition vector.hpp:18
    +
    void normalise()
    Normalise the vector.
    Definition vector.inl:167
    +
    void assert(bool condition, detail::format_string fmt="<No message>", Args &&... args)
    Assert on a condition.
    Definition debug.inl:33
    +
    + + + + diff --git a/version_8hpp_source.html b/version_8hpp_source.html new file mode 100644 index 0000000000..e514d9a6d9 --- /dev/null +++ b/version_8hpp_source.html @@ -0,0 +1,194 @@ + + + + + + + +Topaz: src/tz/core/data/version.hpp Source File + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    Topaz 4.1.0.1 +
    +
    C++20 Graphics Engine
    +
    +
    + + + + + + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + + +
    +
    +
    version.hpp
    +
    +
    +
    1#ifndef TZ_DATA_VERSION_HPP
    +
    2#define TZ_DATA_VERSION_HPP
    +
    3#include <string>
    +
    4#include <cstdio>
    +
    5#include <array>
    +
    6
    +
    7namespace tz
    +
    8{
    +
    12 enum class version_type
    +
    13 {
    +
    15 normal,
    +
    17 alpha,
    +
    19 beta,
    +
    21 rc
    +
    22 };
    +
    23
    +
    +
    31 struct version
    +
    32 {
    +
    34 unsigned int major;
    +
    36 unsigned int minor;
    +
    38 unsigned int patch;
    +
    40 version_type type;
    +
    41
    +
    +
    43 std::string to_string() const
    +
    44 {
    +
    45 const char* suffix;
    +
    46 switch(this->type)
    +
    47 {
    +
    48 case version_type::alpha:
    +
    49 suffix = "-alpha";
    +
    50 break;
    +
    51 case version_type::beta:
    +
    52 suffix = "-beta";
    +
    53 break;
    +
    54 case version_type::rc:
    +
    55 suffix = "-rc";
    +
    56 break;
    +
    57 default:
    +
    58 suffix = "";
    +
    59 break;
    +
    60 }
    +
    61 return std::to_string(this->major) + "." + std::to_string(this->minor) + "." + std::to_string(this->patch) + std::string(suffix);
    +
    62 }
    +
    +
    63
    +
    +
    65 static version from_string(std::string_view sv)
    +
    66 {
    +
    67 version ret;
    +
    68 std::sscanf(sv.data(), "%u.%u.%u", &ret.major, &ret.minor, &ret.patch);
    +
    69 return ret;
    +
    70 }
    +
    +
    71
    +
    +
    73 static version from_binary_string(unsigned int ver_numeral)
    +
    74 {
    +
    75 return
    +
    76 {
    +
    77 .major = (ver_numeral >> 12) & 0xF,
    +
    78 .minor = (ver_numeral >> 8) & 0xF,
    +
    79 .patch = (ver_numeral >> 4) & 0xF,
    +
    80 .type = static_cast<version_type>(ver_numeral & 0xF)
    +
    81 };
    +
    82 }
    +
    +
    83
    +
    84 bool operator==(const version& rhs) const = default;
    +
    85 };
    +
    +
    86
    +
    93 version get_version();
    +
    94}
    +
    95
    +
    96#endif // TZ_DATA_VERSION_HPP
    +
    Versions consist of a major, minor, patch and a version_type.
    Definition version.hpp:32
    +
    static version from_binary_string(unsigned int ver_numeral)
    Convert the given binary-string to a version. For example, 0x0401001 yields v4.1.0-alpha.
    Definition version.hpp:73
    +
    unsigned int minor
    Minor version.
    Definition version.hpp:36
    +
    static version from_string(std::string_view sv)
    Convert the given string to a version.
    Definition version.hpp:65
    +
    version_type type
    Version type (suffix)
    Definition version.hpp:40
    +
    std::string to_string() const
    Retrieve the version as a string. Follows the form major.minor.patch, appended by -suffix if the buil...
    Definition version.hpp:43
    +
    unsigned int major
    Major version.
    Definition version.hpp:34
    +
    unsigned int patch
    Patch version.
    Definition version.hpp:38
    +
    + + + + diff --git a/vertex__array_8hpp_source.html b/vertex__array_8hpp_source.html new file mode 100644 index 0000000000..9568454f5f --- /dev/null +++ b/vertex__array_8hpp_source.html @@ -0,0 +1,158 @@ + + + + + + + +Topaz: src/tz/gl/impl/opengl/detail/vertex_array.hpp Source File + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    Topaz 4.1.0.1 +
    +
    C++20 Graphics Engine
    +
    +
    + + + + + + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + + +
    +
    +
    vertex_array.hpp
    +
    +
    +
    1#ifndef TOPAZ_GL_IMPL_BACKEND_OGL2_VERTEX_ARRAY_HPP
    +
    2#define TOPAZ_GL_IMPL_BACKEND_OGL2_VERTEX_ARRAY_HPP
    +
    3#if TZ_OGL
    +
    4#include "tz/gl/impl/opengl/detail/tz_opengl.hpp"
    +
    5
    +
    6namespace tz::gl::ogl2
    +
    7{
    +
    8 class buffer;
    +
    + +
    14 {
    +
    15 public:
    + +
    20 vertex_array(const vertex_array& copy) = delete;
    + + +
    23 vertex_array& operator=(const vertex_array& rhs) = delete;
    +
    24 vertex_array& operator=(vertex_array&& rhs);
    +
    25
    +
    29 void bind();
    +
    34 void draw(unsigned int triangle_count, bool tessellation = false);
    +
    39 void draw_indexed(unsigned int triangle_count, const buffer& index_buffer, bool tessellation = false);
    +
    40
    +
    41 void draw_indirect(unsigned int draw_count, const buffer& draw_indirect_buffer, bool tessellation = false);
    +
    42 void draw_indirect_count(unsigned int max_draw_count, const buffer& draw_indirect_buffer, std::uintptr_t draw_commands_offset, bool tessellation = false);
    +
    43 void draw_indexed_indirect(unsigned int draw_count, const buffer& index_buffer, const buffer& draw_indirect_buffer, bool tessellation = false);
    +
    44 void draw_indexed_indirect_count(unsigned int max_draw_count, const buffer& index_buffer, const buffer& draw_indirect_buffer, std::uintptr_t draw_commands_offset, bool tessellation = false);
    +
    48 static vertex_array null();
    +
    52 bool is_null() const;
    +
    53 private:
    +
    54 vertex_array(std::nullptr_t);
    +
    55
    +
    56 GLuint vao;
    +
    57 };
    +
    +
    58}
    +
    59
    +
    60#endif // TZ_OGL
    +
    61#endif // TOPAZ_GL_IMPL_BACKEND_OGL2_VERTEX_ARRAY_HPP
    +
    Documentation for OpenGL buffers.
    Definition buffer.hpp:57
    +
    Wrapper for an OpenGL VAO.
    Definition vertex_array.hpp:14
    +
    void draw_indexed(unsigned int triangle_count, const buffer &index_buffer, bool tessellation=false)
    Emit a single draw call, drawing a set number of triangles, assuming an index buffer has already been...
    Definition vertex_array.cpp:47
    +
    static vertex_array null()
    Retrieve the Null vertex_array.
    Definition vertex_array.cpp:98
    +
    bool is_null() const
    Query as to whether this is a null vertex array, which is equivalent to vertex_array::null().
    +
    void bind()
    Bind the VAO, causing subsequent GL commands using VAO state to use this.
    Definition vertex_array.cpp:34
    +
    void draw(unsigned int triangle_count, bool tessellation=false)
    Emit a single draw call, drawing a set number of triangles.
    Definition vertex_array.cpp:40
    + + + +
    + + + + diff --git a/vulkan_2convert_8hpp_source.html b/vulkan_2convert_8hpp_source.html new file mode 100644 index 0000000000..a49effcb85 --- /dev/null +++ b/vulkan_2convert_8hpp_source.html @@ -0,0 +1,126 @@ + + + + + + + +Topaz: src/tz/gl/impl/vulkan/convert.hpp Source File + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    Topaz 4.1.0.1 +
    +
    C++20 Graphics Engine
    +
    +
    + + + + + + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + + +
    +
    +
    convert.hpp
    +
    +
    +
    1#ifndef TOPAZ_GL_IMPL_FRONTEND_VK2_CONVERT_HPP
    +
    2#define TOPAZ_GL_IMPL_FRONTEND_VK2_CONVERT_HPP
    +
    3#if TZ_VULKAN
    +
    4#include "tz/gl/declare/image_format.hpp"
    +
    5#include "tz/gl/impl/vulkan/detail/image_format.hpp"
    +
    6
    +
    7namespace tz::gl
    +
    8{
    +
    9 constexpr tz::gl::vk2::image_format to_vk2(image_format fmt);
    +
    10 constexpr image_format from_vk2(tz::gl::vk2::image_format fmt);
    +
    11}
    +
    12
    +
    13#include "tz/gl/impl/vulkan/convert.inl"
    +
    14#endif // TZ_VULKAN
    +
    15#endif // TOPAZ_GL_IMPL_FRONTEND_VK2_CONVERT_HPP
    +
    image_format
    Various image formats are supported in Topaz.
    Definition image_format.hpp:33
    +
    image_format
    Various image formats are supported.
    Definition image_format.hpp:35
    +
    + + + + diff --git a/vulkan_2convert_8inl_source.html b/vulkan_2convert_8inl_source.html new file mode 100644 index 0000000000..9ef4348465 --- /dev/null +++ b/vulkan_2convert_8inl_source.html @@ -0,0 +1,211 @@ + + + + + + + +Topaz: src/tz/gl/impl/vulkan/convert.inl Source File + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    Topaz 4.1.0.1 +
    +
    C++20 Graphics Engine
    +
    +
    + + + + + + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + + +
    +
    +
    convert.inl
    +
    +
    +
    1#if TZ_VULKAN
    +
    2#include <tuple>
    +
    3#include <cstdint>
    +
    4#include <optional>
    +
    5
    +
    6namespace tz::gl
    +
    7{
    +
    8 using image_formatTuple = std::tuple<image_format, tz::gl::vk2::image_format>;
    +
    9 using namespace tz::gl;
    +
    10
    +
    11 constexpr image_formatTuple tuple_map[] =
    +
    12 {
    +
    13 {image_format::undefined, vk2::image_format::undefined},
    +
    14 {image_format::R8, vk2::image_format::R8},
    +
    15 {image_format::R8_UNorm, vk2::image_format::R8_UNorm},
    +
    16 {image_format::R8_SNorm, vk2::image_format::R8_SNorm},
    +
    17 {image_format::R8_UInt, vk2::image_format::R8_UInt},
    +
    18 {image_format::R8_SInt, vk2::image_format::R8_SInt},
    +
    19 {image_format::R8_sRGB, vk2::image_format::R8_sRGB},
    +
    20 {image_format::R16, vk2::image_format::R16},
    +
    21 {image_format::R16_UNorm, vk2::image_format::R16_UNorm},
    +
    22 {image_format::R16_SNorm, vk2::image_format::R16_SNorm},
    +
    23 {image_format::R16_UInt, vk2::image_format::R16_UInt},
    +
    24 {image_format::R16_SInt, vk2::image_format::R16_SInt},
    +
    25 {image_format::RG16, vk2::image_format::RG16},
    +
    26 {image_format::RG16_UNorm, vk2::image_format::RG16_UNorm},
    +
    27 {image_format::RG16_SNorm, vk2::image_format::RG16_SNorm},
    +
    28 {image_format::RG16_UInt, vk2::image_format::RG16_UInt},
    +
    29 {image_format::RG16_SInt, vk2::image_format::RG16_SInt},
    +
    30 {image_format::RG16_sRGB, vk2::image_format::RG16_sRGB},
    +
    31 {image_format::RG32, vk2::image_format::RG32},
    +
    32 {image_format::RG32_UNorm, vk2::image_format::RG32_UNorm},
    +
    33 {image_format::RG32_SNorm, vk2::image_format::RG32_SNorm},
    +
    34 {image_format::RG32_UInt, vk2::image_format::RG32_UInt},
    +
    35 {image_format::RG32_SInt, vk2::image_format::RG32_SInt},
    +
    36 {image_format::RGB24, vk2::image_format::RGB24},
    +
    37 {image_format::RGB24_UNorm, vk2::image_format::RGB24_UNorm},
    +
    38 {image_format::RGB24_SNorm, vk2::image_format::RGB24_SNorm},
    +
    39 {image_format::RGB24_UInt, vk2::image_format::RGB24_UInt},
    +
    40 {image_format::RGB24_SInt, vk2::image_format::RGB24_SInt},
    +
    41 {image_format::RGB24_sRGB, vk2::image_format::RGB24_sRGB},
    +
    42 {image_format::BGR24, vk2::image_format::BGR24},
    +
    43 {image_format::BGR24_UNorm, vk2::image_format::BGR24_UNorm},
    +
    44 {image_format::BGR24_SNorm, vk2::image_format::BGR24_SNorm},
    +
    45 {image_format::BGR24_UInt, vk2::image_format::BGR24_UInt},
    +
    46 {image_format::BGR24_SInt, vk2::image_format::BGR24_SInt},
    +
    47 {image_format::BGR24_sRGB, vk2::image_format::BGR24_sRGB},
    +
    48 {image_format::RGBA32, vk2::image_format::RGBA32},
    +
    49 {image_format::RGBA32_UNorm, vk2::image_format::RGBA32_UNorm},
    +
    50 {image_format::RGBA32_SNorm, vk2::image_format::RGBA32_SNorm},
    +
    51 {image_format::RGBA32_UInt, vk2::image_format::RGBA32_UInt},
    +
    52 {image_format::RGBA32_SInt, vk2::image_format::RGBA32_SInt},
    +
    53 {image_format::RGBA32_sRGB, vk2::image_format::RGBA32_sRGB},
    +
    54 {image_format::BGRA32, vk2::image_format::BGRA32},
    +
    55 {image_format::BGRA32_UNorm, vk2::image_format::BGRA32_UNorm},
    +
    56 {image_format::BGRA32_SNorm, vk2::image_format::BGRA32_SNorm},
    +
    57 {image_format::BGRA32_UInt, vk2::image_format::BGRA32_UInt},
    +
    58 {image_format::BGRA32_SInt, vk2::image_format::BGRA32_SInt},
    +
    59 {image_format::BGRA32_sRGB, vk2::image_format::BGRA32_sRGB},
    +
    60 {image_format::RGBA64_SFloat, vk2::image_format::RGBA64_SFloat},
    +
    61 {image_format::RGBA128_SFloat, vk2::image_format::RGBA128_SFloat},
    +
    62 {image_format::Depth16_UNorm, vk2::image_format::Depth16_UNorm}
    +
    63 };
    +
    64
    +
    65 template<typename image_formatType>
    +
    66 constexpr std::optional<std::size_t> tuple_map_index_of(image_formatType type)
    +
    67 {
    +
    68 constexpr std::size_t map_len = sizeof(tuple_map) / sizeof(tuple_map[0]);
    +
    69 for(std::size_t i = 0; i < map_len; i++)
    +
    70 {
    +
    71 if(std::get<image_formatType>(tuple_map[i]) == type)
    +
    72 {
    +
    73 return i;
    +
    74 }
    +
    75 }
    +
    76 return std::nullopt;
    +
    77 }
    +
    78
    +
    79 constexpr vk2::image_format to_vk2(image_format fmt)
    +
    80 {
    +
    81 std::optional<std::size_t> index = tuple_map_index_of(fmt);
    +
    82 if(index.has_value())
    +
    83 {
    +
    84 return std::get<vk2::image_format>(tuple_map[index.value()]);
    +
    85 }
    +
    86 return vk2::image_format::undefined;
    +
    87 }
    +
    88
    +
    89 constexpr image_format from_vk2(vk2::image_format fmt)
    +
    90 {
    +
    91 std::optional<std::size_t> index = tuple_map_index_of(fmt);
    +
    92 if(index.has_value())
    +
    93 {
    +
    94 return std::get<image_format>(tuple_map[index.value()]);
    +
    95 }
    +
    96 return image_format::undefined;
    +
    97 }
    +
    98}
    +
    99
    +
    100#endif // TZ_VULKAN
    +
    image_format
    Various image formats are supported in Topaz.
    Definition image_format.hpp:33
    +
    image_format
    Various image formats are supported.
    Definition image_format.hpp:35
    +
    + + + + diff --git a/vulkan_2detail_2buffer_8hpp_source.html b/vulkan_2detail_2buffer_8hpp_source.html new file mode 100644 index 0000000000..d94c2cd4d3 --- /dev/null +++ b/vulkan_2detail_2buffer_8hpp_source.html @@ -0,0 +1,216 @@ + + + + + + + +Topaz: src/tz/gl/impl/vulkan/detail/buffer.hpp Source File + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    Topaz 4.1.0.1 +
    +
    C++20 Graphics Engine
    +
    +
    + + + + + + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + + +
    +
    +
    buffer.hpp
    +
    +
    +
    1#ifndef TOPAZ_GL_IMPL_BACKEND_VK2_BUFFER_HPP
    +
    2#define TOPAZ_GL_IMPL_BACKEND_VK2_BUFFER_HPP
    +
    3#if TZ_VULKAN
    +
    4#include "tz/gl/impl/vulkan/detail/logical_device.hpp"
    +
    5#include "tz/gl/impl/vulkan/detail/debugname.hpp"
    +
    6#include "tz/gl/impl/vulkan/detail/gpu_mem.hpp"
    +
    7
    +
    8namespace tz::gl::vk2
    +
    9{
    +
    +
    14 enum class BufferUsage
    +
    15 {
    +
    17 TransferSource = VK_BUFFER_USAGE_TRANSFER_SRC_BIT,
    +
    19 TransferDestination = VK_BUFFER_USAGE_TRANSFER_DST_BIT,
    +
    21 UniformBuffer = VK_BUFFER_USAGE_UNIFORM_BUFFER_BIT,
    +
    23 StorageBuffer = VK_BUFFER_USAGE_STORAGE_BUFFER_BIT,
    +
    25 draw_indirect_buffer = VK_BUFFER_USAGE_INDIRECT_BUFFER_BIT,
    +
    26
    +
    28 VertexBuffer = VK_BUFFER_USAGE_VERTEX_BUFFER_BIT,
    +
    30 index_buffer = VK_BUFFER_USAGE_INDEX_BUFFER_BIT
    +
    31 };
    +
    +
    32
    +
    33 using BufferUsageField = tz::enum_field<BufferUsage>;
    +
    34
    +
    + +
    40 {
    + +
    44 std::size_t size_bytes;
    +
    46 BufferUsageField usage;
    +
    48 MemoryResidency residency;
    +
    49 };
    +
    +
    50
    +
    +
    55 class Buffer : public DebugNameable<VK_OBJECT_TYPE_BUFFER>
    +
    56 {
    +
    57 public:
    +
    58 Buffer(buffer_info info);
    +
    59 Buffer(const Buffer& copy) = delete;
    +
    60 Buffer(Buffer&& move);
    +
    61 ~Buffer();
    +
    62
    +
    63 Buffer& operator=(const Buffer& rhs) = delete;
    +
    64 Buffer& operator=(Buffer&& rhs);
    +
    65
    +
    69 const LogicalDevice& get_device() const;
    +
    73 BufferUsageField get_usage() const;
    +
    77 MemoryResidency get_residency() const;
    +
    82 void* map();
    +
    88 template<typename T>
    +
    +
    89 std::span<T> map_as()
    +
    90 {
    +
    91 auto* ptr = reinterpret_cast<T*>(this->map());
    +
    92 if(ptr == nullptr)
    +
    93 {
    +
    94 return {ptr, 0};
    +
    95 }
    +
    96 return {ptr, this->size() / sizeof(T)};
    +
    97 }
    +
    +
    101 void unmap();
    +
    106 std::size_t size() const;
    +
    107
    +
    108 static Buffer null();
    +
    109 bool is_null() const;
    +
    110
    +
    111 using NativeType = VkBuffer;
    +
    112 NativeType native() const;
    +
    113 private:
    +
    114 Buffer();
    +
    115
    +
    116 VkBuffer buffer;
    +
    117 buffer_info info;
    +
    118 VmaAllocation vma_alloc;
    +
    119 VmaAllocationInfo vma_alloc_info;
    +
    120 };
    +
    +
    121}
    +
    122
    +
    123#endif // TZ_VULKAN
    +
    124#endif // TOPAZ_GL_IMPL_BACKEND_VK2_BUFFER_HPP
    +
    Container for enum values, useful for vintage bitfield types.
    Definition enum_field.hpp:16
    +
    Represents a linear array of data which can be used for various purposes.
    Definition buffer.hpp:56
    +
    std::span< T > map_as()
    Map the memory to a span of a given type.
    Definition buffer.hpp:89
    +
    MemoryResidency get_residency() const
    Retrieve the residency of the buffer's memory.
    Definition buffer.cpp:120
    +
    std::size_t size() const
    Retrieve the size, in bytes, of the buffer.
    Definition buffer.cpp:159
    +
    void * map()
    If possible, map the memory to a CPU-size pointer.
    Definition buffer.cpp:125
    +
    BufferUsageField get_usage() const
    Retrieve all usages of this buffer.
    Definition buffer.cpp:115
    +
    const LogicalDevice & get_device() const
    Retrieve the LogicalDevice used to create the buffer.
    Definition buffer.cpp:109
    +
    Definition debugname.hpp:10
    +
    Logical interface to an existing PhysicalDevice.
    Definition logical_device.hpp:95
    + + +
    BufferUsage
    Specifies allowed usages for a Buffer.
    Definition buffer.hpp:15
    + + + + + +
    Specifies creation flags for a Buffer.
    Definition buffer.hpp:40
    +
    std::size_t size_bytes
    Size of the buffer, in bytes.
    Definition buffer.hpp:44
    +
    MemoryResidency residency
    Describes where in memory buffer data will lie.
    Definition buffer.hpp:48
    +
    const LogicalDevice * device
    Owning device. Must not be nullptr or null.
    Definition buffer.hpp:42
    +
    BufferUsageField usage
    Field containing all usages of the buffer.
    Definition buffer.hpp:46
    +
    + + + + diff --git a/vulkan_2detail_2framebuffer_8hpp_source.html b/vulkan_2detail_2framebuffer_8hpp_source.html new file mode 100644 index 0000000000..c680d7987f --- /dev/null +++ b/vulkan_2detail_2framebuffer_8hpp_source.html @@ -0,0 +1,198 @@ + + + + + + + +Topaz: src/tz/gl/impl/vulkan/detail/framebuffer.hpp Source File + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    Topaz 4.1.0.1 +
    +
    C++20 Graphics Engine
    +
    +
    + + + + + + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + + +
    +
    +
    framebuffer.hpp
    +
    +
    +
    1#ifndef TOPAZ_GL_IMPL_BACKEND_Vk2_FRAMEBUFFER_HPP
    +
    2#define TOPAZ_GL_IMPL_BACKEND_Vk2_FRAMEBUFFER_HPP
    +
    3#if TZ_VULKAN
    +
    4#include "tz/gl/impl/vulkan/detail/render_pass.hpp"
    +
    5#include "tz/gl/impl/vulkan/detail/image_view.hpp"
    +
    6
    +
    7namespace tz::gl::vk2
    +
    8{
    +
    9
    + +
    26
    +
    + +
    32 {
    +
    33 public:
    + +
    35 Framebuffer(const Framebuffer& copy) = delete;
    + + +
    38
    +
    39 Framebuffer& operator=(const Framebuffer& rhs) = delete;
    +
    40 Framebuffer& operator=(Framebuffer&& rhs);
    +
    41
    + +
    51 const RenderPass& get_pass() const;
    +
    56 const LogicalDevice& get_device() const;
    + +
    66 tz::basic_list<ImageView*> get_attachment_views();
    +
    67 void set_render_pass(RenderPass& render_pass);
    +
    68
    +
    69 using NativeType = VkFramebuffer;
    +
    70 NativeType native() const;
    +
    71 private:
    +
    72 FramebufferInfo info;
    +
    73 VkFramebuffer framebuffer;
    +
    74 };
    +
    +
    75
    +
    + +
    77 {
    +
    78 FramebufferData() = default;
    + +
    80 {
    +
    81 *this = std::move(move);
    +
    82 }
    +
    83 FramebufferData& operator=(FramebufferData&& rhs)
    +
    84 {
    +
    85 std::swap(this->render_pass, rhs.render_pass);
    +
    86 std::swap(this->framebuffers, rhs.framebuffers);
    +
    87 for(auto& fb : this->framebuffers)
    +
    88 {
    +
    89 fb.set_render_pass(this->render_pass);
    +
    90 }
    +
    91 return *this;
    +
    92 }
    +
    93 RenderPass render_pass = RenderPass::null();
    +
    94 std::vector<Framebuffer> framebuffers = {};
    +
    95 };
    +
    +
    96}
    +
    97
    +
    98#endif // TZ_VULKAN
    +
    99#endif // TOPAZ_GL_IMPL_BACKEND_Vk2_FRAMEBUFFER_HPP
    +
    Custom list, feature subset of std::vector.
    Definition basic_list.hpp:21
    +
    Represents a render target for a RenderPass.
    Definition framebuffer.hpp:32
    +
    tz::basic_list< const ImageView * > get_attachment_views() const
    Retrieve a list of imageviews corresponding to each attachment.
    Definition framebuffer.cpp:100
    +
    const LogicalDevice & get_device() const
    Retrieve the LogicalDevice that spawned this Framebuffer.
    Definition framebuffer.cpp:95
    +
    const RenderPass & get_pass() const
    Retrieve the RenderPass that this Framebuffer expects to act as a target for.
    Definition framebuffer.cpp:89
    +
    tz::vec2ui get_dimensions() const
    Retrieve the width and height of the framebuffer.
    Definition framebuffer.cpp:84
    +
    Logical interface to an existing PhysicalDevice.
    Definition logical_device.hpp:95
    +
    Represents a collection of attachments and subpasses and describes how the attachments are used throu...
    Definition render_pass.hpp:188
    +
    Definition vector.hpp:18
    +
    vector< unsigned int, 2 > vec2ui
    A vector of two unsigned ints.
    Definition vector.hpp:244
    +
    Definition framebuffer.hpp:77
    +
    Specifies creation flags for a Framebuffer.
    Definition framebuffer.hpp:15
    +
    bool valid() const
    Query as to whether this info is valid and can be used to create a Framebuffer.
    Definition framebuffer.cpp:6
    +
    tz::basic_list< ImageView * > attachments
    List of output attachments from the RenderPass.
    Definition framebuffer.hpp:22
    +
    tz::vector< std::uint32_t, 2 > dimensions
    Dimensions of the frame buffer.
    Definition framebuffer.hpp:24
    +
    const RenderPass * render_pass
    RenderPass that will target the frame buffer.
    Definition framebuffer.hpp:20
    +
    + + + + diff --git a/vulkan_2detail_2sampler_8hpp_source.html b/vulkan_2detail_2sampler_8hpp_source.html new file mode 100644 index 0000000000..684dbd7d31 --- /dev/null +++ b/vulkan_2detail_2sampler_8hpp_source.html @@ -0,0 +1,202 @@ + + + + + + + +Topaz: src/tz/gl/impl/vulkan/detail/sampler.hpp Source File + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    Topaz 4.1.0.1 +
    +
    C++20 Graphics Engine
    +
    +
    + + + + + + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + + +
    +
    +
    sampler.hpp
    +
    +
    +
    1#ifndef TOPAZ_GL_IMPL_BACKEND_VK2_SAMPLER_HPP
    +
    2#define TOPAZ_GL_IMPL_BACKEND_VK2_SAMPLER_HPP
    +
    3#if TZ_VULKAN
    +
    4#include "tz/gl/impl/vulkan/detail/logical_device.hpp"
    +
    5
    +
    6namespace tz::gl::vk2
    +
    7{
    +
    +
    12 enum class LookupFilter
    +
    13 {
    +
    14 Nearest = VK_FILTER_NEAREST,
    +
    15 Linear = VK_FILTER_LINEAR
    +
    16 };
    +
    +
    17
    +
    +
    22 enum class MipLookupFilter
    +
    23 {
    +
    24 Nearest = VK_SAMPLER_MIPMAP_MODE_NEAREST,
    +
    25 Linear = VK_SAMPLER_MIPMAP_MODE_LINEAR
    +
    26 };
    +
    +
    27
    +
    + +
    33 {
    +
    35 Repeat = VK_SAMPLER_ADDRESS_MODE_REPEAT,
    +
    37 MirroredRepeat = VK_SAMPLER_ADDRESS_MODE_MIRRORED_REPEAT,
    +
    39 ClampToEdge = VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_EDGE,
    +
    41 ClampToBorder = VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_BORDER,
    +
    42 };
    +
    +
    43
    + +
    65
    +
    +
    70 class Sampler
    +
    71 {
    +
    72 public:
    +
    73 Sampler(SamplerInfo info);
    +
    74 Sampler(const Sampler& copy) = delete;
    +
    75 Sampler(Sampler&& move);
    +
    76 ~Sampler();
    +
    77 Sampler& operator=(const Sampler& rhs) = delete;
    +
    78 Sampler& operator=(Sampler&& rhs);
    +
    79
    +
    83 const LogicalDevice& get_device() const;
    +
    84
    +
    85 using NativeType = VkSampler;
    +
    86 NativeType native() const;
    +
    87 static Sampler null();
    +
    88 bool is_null() const;
    +
    89 private:
    +
    90 Sampler();
    +
    91 VkSampler sampler;
    +
    92 SamplerInfo info;
    +
    93 };
    +
    +
    94
    +
    95}
    +
    96
    +
    97#endif // TZ_VULKAN
    +
    98#endif // TOPAZ_GL_IMPL_BACKEND_VK2_SAMPLER_HPP
    +
    Logical interface to an existing PhysicalDevice.
    Definition logical_device.hpp:95
    +
    Represents the state of an Image sampler which is used to read image data and apply filtering and oth...
    Definition sampler.hpp:71
    +
    const LogicalDevice & get_device() const
    Retrieve the LogicalDevice used to create the sampler.
    Definition sampler.cpp:74
    +
    LookupFilter
    Represents a filter to a texture lookup.
    Definition sampler.hpp:13
    +
    MipLookupFilter
    Specify mipmap mode for texture lookups.
    Definition sampler.hpp:23
    +
    SamplerAddressMode
    Specifies behaviour with sampling with texture coordinates that lie outside of the image.
    Definition sampler.hpp:33
    +
    @ Linear
    Image texels are laid out in memory in row-major order, possibly with some padding on each row.
    + + + + +
    Specifies creation flags for a Sampler.
    Definition sampler.hpp:49
    +
    LookupFilter min_filter
    Min filter.
    Definition sampler.hpp:54
    +
    SamplerAddressMode address_mode_u
    Addressing mode for U coordinates outside of the region of the texture.
    Definition sampler.hpp:59
    +
    SamplerAddressMode address_mode_w
    Addressing mode for W coordinates outside of the region of the texture.
    Definition sampler.hpp:63
    +
    SamplerAddressMode address_mode_v
    Addressing mode for V coordinates outside of the region of the texture.
    Definition sampler.hpp:61
    +
    LookupFilter mag_filter
    Mag filter.
    Definition sampler.hpp:56
    +
    const LogicalDevice * device
    Owning LogicalDevice. This must not be null or nullptr.
    Definition sampler.hpp:51
    +
    + + + + diff --git a/wgl__ext_8hpp_source.html b/wgl__ext_8hpp_source.html new file mode 100644 index 0000000000..1270a45540 --- /dev/null +++ b/wgl__ext_8hpp_source.html @@ -0,0 +1,140 @@ + + + + + + + +Topaz: src/tz/wsi/impl/windows/detail/wgl_ext.hpp Source File + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    Topaz 4.1.0.1 +
    +
    C++20 Graphics Engine
    +
    +
    + + + + + + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + + +
    +
    +
    wgl_ext.hpp
    +
    +
    +
    1#ifndef TOPAZ_WSI_IMPL_WINDOWS_WGL_EXT_HPP
    +
    2#define TOPAZ_WSI_IMPL_WINDOWS_WGL_EXT_HPP
    +
    3
    +
    4// These would all be provided by gl/wglext.h, however that seems to require the Windows SDK which is an utterly overkill dependency to bring in for a few signatures, so I brought them in manually
    +
    5typedef BOOL (WINAPI * PFNWGLCHOOSEPIXELFORMATARBPROC)(HDC,const int*,const FLOAT*,UINT,int*,UINT*);
    +
    6typedef HGLRC (WINAPI * PFNWGLCREATECONTEXTATTRIBSARBPROC)(HDC,HGLRC,const int*);
    +
    7typedef BOOL (WINAPI * PFNWGLSWAPINTERVALEXTPROC)(int);
    +
    8typedef const char* (WINAPI * PFNWGLGETEXTENSIONSSTRINGARBPROC)(HDC);
    +
    9
    +
    10#define WGL_DRAW_TO_WINDOW_ARB 0x2001
    +
    11#define WGL_ACCELERATION_ARB 0x2003
    +
    12#define WGL_TRANSPARENT_ARB 0x200A
    +
    13#define WGL_SUPPORT_OPENGL_ARB 0x2010
    +
    14#define WGL_DOUBLE_BUFFER_ARB 0x2011
    +
    15#define WGL_PIXEL_TYPE_ARB 0x2013
    +
    16#define WGL_COLOR_BITS_ARB 0x2014
    +
    17#define WGL_ALPHA_BITS_ARB 0x201B
    +
    18#define WGL_DEPTH_BITS_ARB 0x2022
    +
    19#define WGL_STENCIL_BITS_ARB 0x2023
    +
    20
    +
    21#define WGL_FULL_ACCELERATION_EXT 0x2027
    +
    22#define WGL_TYPE_RGBA_ARB 0x202b
    +
    23#define WGL_CONTEXT_MAJOR_VERSION_ARB 0x2091
    +
    24#define WGL_CONTEXT_MINOR_VERSION_ARB 0x2092
    +
    25#define WGL_CONTEXT_FLAGS_ARB 0x2094
    +
    26#define WGL_FRAMEBUFFER_SRGB_CAPABLE_ARB 0x20a9
    +
    27#define WGL_CONTEXT_PROFILE_MASK_ARB 0x9126
    +
    28#define WGL_CONTEXT_CORE_PROFILE_BIT_ARB 0x00000001
    +
    29#define WGL_CONTEXT_DEBUG_BIT_ARB 0x00000001
    +
    30
    +
    31#endif // TOPAZ_WSI_IMPL_WINDOWS_WGL_EXT_HPP
    +
    + + + + diff --git a/winapi_8hpp_source.html b/winapi_8hpp_source.html new file mode 100644 index 0000000000..08066a3fe1 --- /dev/null +++ b/winapi_8hpp_source.html @@ -0,0 +1,116 @@ + + + + + + + +Topaz: src/tz/wsi/impl/windows/detail/winapi.hpp Source File + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    Topaz 4.1.0.1 +
    +
    C++20 Graphics Engine
    +
    +
    + + + + + + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + + +
    +
    +
    winapi.hpp
    +
    +
    +
    1#define WIN32_LEAN_AND_MEAN
    +
    2#ifndef NOMINMAX
    +
    3#define NOMINMAX
    +
    4#endif
    +
    5#include <windows.h>
    +
    6#undef min
    +
    7#undef max
    +
    + + + + diff --git a/window_8hpp_source.html b/window_8hpp_source.html new file mode 100644 index 0000000000..52e0e85545 --- /dev/null +++ b/window_8hpp_source.html @@ -0,0 +1,178 @@ + + + + + + + +Topaz: src/tz/wsi/window.hpp Source File + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    Topaz 4.1.0.1 +
    +
    C++20 Graphics Engine
    +
    +
    + + + + + + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + + +
    +
    +
    window.hpp
    +
    +
    +
    1#ifndef TZ_WSI_WINDOW_HPP
    +
    2#define TZ_WSI_WINDOW_HPP
    +
    3#include "tz/wsi/impl/windows/window.hpp"
    +
    4#include "tz/wsi/impl/linux/window.hpp"
    +
    5#include "tz/core/data/handle.hpp"
    +
    6
    +
    7namespace tz::wsi
    +
    8{
    +
    9 namespace detail
    +
    10 {
    + +
    12 }
    + +
    18
    +
    19 #define DOCONLY TZ_VULKAN && TZ_OGL
    +
    20 #if DOCONLY
    +
    40 struct window{};
    +
    41 #else
    +
    42 #ifdef _WIN32
    + +
    44 #if TZ_VULKAN
    +
    45 #define TZ_WSI_VULKAN_EXTENSION_NAME VK_KHR_WIN32_SURFACE_EXTENSION_NAME
    +
    46 #endif
    +
    47 inline void* get_opengl_proc_address(const char* name)
    +
    48 {
    +
    49 return impl::get_opengl_proc_address_windows(name);
    +
    50 }
    +
    51 inline void wait_for_event()
    +
    52 {
    +
    53 WaitMessage();
    +
    54 }
    +
    55 #elif defined(__linux__)
    +
    56 using window = impl::window_x11;
    +
    57 #if TZ_VULKAN
    +
    58 #define TZ_WSI_VULKAN_EXTENSION_NAME VK_KHR_XLIB_SURFACE_EXTENSION_NAME;
    +
    59 #endif
    +
    60 inline void* get_opengl_proc_address(const char* name)
    +
    61 {
    +
    62 return impl::get_opengl_proc_address_linux(name);
    +
    63 }
    +
    64 inline void wait_for_event()
    +
    65 {
    +
    66 tz::error("wait_for_event on linux is NYI");
    +
    67 }
    +
    68 #else
    +
    69 static_assert(false, "Window Implementation does not seem to exist for this platform.");
    +
    70 #endif
    +
    71 #endif
    +
    72
    +
    79 window_handle create_window(window_info info = {});
    +
    86 bool destroy_window(window_handle wh);
    +
    93 window& get_window(window_handle wh);
    +
    99 bool has_window(window_handle wh);
    +
    104 std::size_t window_count();
    +
    105}
    +
    106
    +
    107#endif // TZ_WSI_WINDOW_HPP
    +
    Definition handle.hpp:17
    +
    Definition window.hpp:10
    +
    void error(detail::format_string fmt="<No message>", Args &&... args)
    Breakpoint if a debugger is present.
    Definition debug.inl:45
    +
    tz::wsi::window & window()
    Retrieve the application window.
    Definition tz.cpp:125
    +
    bool has_window(window_handle wh)
    Query as to whether there exists a window associated with the provided handle.
    Definition window.cpp:39
    +
    std::size_t window_count()
    Retrieve a count of all valid windows that have not yet been deleted.
    Definition window.cpp:45
    +
    bool destroy_window(window_handle wh)
    Destroy an existing window associated with the provided handle.
    Definition window.cpp:21
    +
    window & get_window(window_handle wh)
    Retrieve a window associated with the provided handle.
    Definition window.cpp:32
    +
    tz::handle< detail::window_handle_tag > window_handle
    An opaque handle associated with a window.
    Definition window.hpp:17
    +
    window_handle create_window(window_info info)
    Create a new window.
    Definition window.cpp:14
    +
    Definition window.hpp:11
    +
    Represents an application window.
    Definition window.hpp:40
    +
    + + + + diff --git a/wsi_8hpp_source.html b/wsi_8hpp_source.html new file mode 100644 index 0000000000..dc43f02b7c --- /dev/null +++ b/wsi_8hpp_source.html @@ -0,0 +1,122 @@ + + + + + + + +Topaz: src/tz/wsi/wsi.hpp Source File + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    Topaz 4.1.0.1 +
    +
    C++20 Graphics Engine
    +
    +
    + + + + + + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + + +
    +
    +
    wsi.hpp
    +
    +
    +
    1#ifndef TZ_WSI_TGE_HPP
    +
    2#define TZ_WSI_TGE_HPP
    +
    3#include "tz/core/data/handle.hpp"
    +
    4
    +
    5namespace tz::wsi
    +
    6{
    +
    7 void initialise();
    +
    8 void terminate();
    +
    9 void update();
    +
    10
    +
    40}
    +
    41
    +
    42#endif // TZ_WSI_TGE_HPP
    +
    + + + + diff --git a/wsi__linux_8hpp_source.html b/wsi__linux_8hpp_source.html new file mode 100644 index 0000000000..4fff185e35 --- /dev/null +++ b/wsi__linux_8hpp_source.html @@ -0,0 +1,134 @@ + + + + + + + +Topaz: src/tz/wsi/impl/linux/wsi_linux.hpp Source File + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    Topaz 4.1.0.1 +
    +
    C++20 Graphics Engine
    +
    +
    + + + + + + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + + +
    +
    +
    wsi_linux.hpp
    +
    +
    +
    1#ifndef TZ_WSI_IMPL_LINUX_TGE_LINUX_HPP
    +
    2#define TZ_WSI_IMPL_LINUX_TGE_LINUX_HPP
    +
    3#ifdef __linux__
    +
    4#include <X11/Xlib.h>
    +
    5
    +
    6namespace tz::wsi::impl
    +
    7{
    +
    + +
    9 {
    +
    10 Display* display = nullptr;
    +
    11 int screen = 0;
    +
    12 };
    +
    +
    13 void initialise_linux();
    +
    14 void terminate_linux();
    +
    15 void update_linux();
    +
    16
    +
    17 x11_display_data& x11_display();
    +
    18 XEvent* get_current_event();
    +
    19}
    +
    20
    +
    21#endif // __linux__
    +
    22#endif // TZ_WSI_IMPL_LINUX_TGE_LINUX_HPP
    +
    Definition wsi_linux.hpp:9
    +
    + + + + diff --git a/wsi__windows_8hpp_source.html b/wsi__windows_8hpp_source.html new file mode 100644 index 0000000000..0259d4ddd5 --- /dev/null +++ b/wsi__windows_8hpp_source.html @@ -0,0 +1,140 @@ + + + + + + + +Topaz: src/tz/wsi/impl/windows/wsi_windows.hpp Source File + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    Topaz 4.1.0.1 +
    +
    C++20 Graphics Engine
    +
    +
    + + + + + + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + + +
    +
    +
    wsi_windows.hpp
    +
    +
    +
    1#ifndef TZ_WSI_IMPL_WINDOWS_TGE_HPP
    +
    2#define TZ_WSI_IMPL_WINDOWS_TGE_HPP
    +
    3#ifdef _WIN32
    +
    4#include "tz/wsi/impl/windows/detail/winapi.hpp"
    +
    5#include "tz/wsi/impl/windows/detail/wgl_ext.hpp"
    +
    6#include <gl/GL.h>
    +
    7
    +
    8namespace tz::wsi::impl
    +
    9{
    +
    10 constexpr char wndclass_name[] = "Topaz WSI";
    +
    11
    +
    12 void initialise_windows();
    +
    13 void terminate_windows();
    +
    14 void update_windows();
    +
    15 LRESULT wndproc(HWND hwnd, UINT msg, WPARAM wparam, LPARAM lparam);
    +
    16
    +
    + +
    18 {
    +
    19 PFNWGLCHOOSEPIXELFORMATARBPROC wgl_choose_pixel_format_arb = nullptr;
    +
    20 PFNWGLCREATECONTEXTATTRIBSARBPROC wgl_create_context_attribs_arb = nullptr;
    +
    21 PFNWGLSWAPINTERVALEXTPROC wgl_swap_interval_ext = nullptr;
    +
    22 bool operator==(const wgl_function_data& rhs) const = default;
    +
    23 };
    +
    +
    24 wgl_function_data get_wgl_functions();
    +
    25}
    +
    26
    +
    27#endif // _WIN32
    +
    28#endif // TZ_WSI_IMPL_WINDOWS_TGE_HPP
    +
    Definition wsi_windows.hpp:18
    +
    + + + +