From e53545d36bf2e6382d16d708ff3c45f159553788 Mon Sep 17 00:00:00 2001 From: harrand Date: Sun, 25 Feb 2024 06:04:39 +0000 Subject: [PATCH] deploy: 724e8805ac96554fef1be5a2d8abb82a995c6e68 --- .nojekyll | 0 adapter_8hpp_source.html | 172 ++ android-chrome-192x192.png | Bin 0 -> 7346 bytes android-chrome-256x256.png | Bin 0 -> 9742 bytes animation_8hpp_source.html | 341 +++ api_2component_8hpp_source.html | 159 ++ api_2device_8hpp_source.html | 202 ++ api_2job_8hpp_source.html | 169 ++ api_2keyboard_8hpp_source.html | 146 ++ api_2monitor_8hpp_source.html | 132 + api_2mouse_8hpp_source.html | 161 ++ api_2output_8hpp_source.html | 176 ++ api_2renderer_8hpp_source.html | 480 ++++ api_2resource_8hpp_source.html | 227 ++ api_2shader_8hpp_source.html | 159 ++ api_2window_8hpp_source.html | 192 ++ apple-touch-icon.png | Bin 0 -> 6930 bytes basic__list_8hpp_source.html | 353 +++ bc_s.png | Bin 0 -> 676 bytes bc_sd.png | Bin 0 -> 635 bytes browserconfig.xml | 9 + callback_8hpp_source.html | 179 ++ classtz_1_1_interface_iterator.html | 106 + classtz_1_1_polymorphic_list.html | 262 ++ classtz_1_1allocator__adapter.html | 122 + classtz_1_1allocator__adapter.png | Bin 0 -> 596 bytes classtz_1_1basic__list.html | 723 ++++++ classtz_1_1callback.html | 243 ++ classtz_1_1data__store.html | 106 + classtz_1_1delay.html | 199 ++ classtz_1_1duration.html | 358 +++ classtz_1_1enum__field.html | 436 ++++ classtz_1_1fallback__allocator.html | 128 + classtz_1_1fallback__allocator.png | Bin 0 -> 806 bytes classtz_1_1free__list.html | 417 ++++ classtz_1_1gl_1_1_output_manager.html | 127 + classtz_1_1gl_1_1_renderer_edit_builder.html | 216 ++ classtz_1_1gl_1_1_resource_storage.html | 280 +++ classtz_1_1gl_1_1_resource_storage.png | Bin 0 -> 815 bytes classtz_1_1gl_1_1_shader_manager.html | 151 ++ classtz_1_1gl_1_1buffer__component__ogl.html | 115 + classtz_1_1gl_1_1buffer__component__ogl.png | Bin 0 -> 670 bytes ...tz_1_1gl_1_1buffer__component__vulkan.html | 115 + ...stz_1_1gl_1_1buffer__component__vulkan.png | Bin 0 -> 711 bytes classtz_1_1gl_1_1buffer__resource.html | 301 +++ classtz_1_1gl_1_1buffer__resource.png | Bin 0 -> 1313 bytes classtz_1_1gl_1_1device.html | 286 +++ classtz_1_1gl_1_1device__command__pool.html | 163 ++ classtz_1_1gl_1_1device__command__pool.png | Bin 0 -> 2071 bytes classtz_1_1gl_1_1device__common.html | 138 ++ classtz_1_1gl_1_1device__common.png | Bin 0 -> 1001 bytes ...stz_1_1gl_1_1device__descriptor__pool.html | 127 + classtz_1_1gl_1_1device__descriptor__pool.png | Bin 0 -> 2076 bytes classtz_1_1gl_1_1device__ogl.html | 129 + classtz_1_1gl_1_1device__ogl.png | Bin 0 -> 1161 bytes ...1gl_1_1device__render__scheduler__ogl.html | 115 + ..._1gl_1_1device__render__scheduler__ogl.png | Bin 0 -> 766 bytes classtz_1_1gl_1_1device__render__sync.html | 127 + classtz_1_1gl_1_1device__render__sync.png | Bin 0 -> 2077 bytes classtz_1_1gl_1_1device__vulkan2.html | 141 ++ classtz_1_1gl_1_1device__vulkan2.png | Bin 0 -> 3258 bytes classtz_1_1gl_1_1device__vulkan__base.html | 119 + classtz_1_1gl_1_1device__vulkan__base.png | Bin 0 -> 2088 bytes classtz_1_1gl_1_1device__window.html | 151 ++ classtz_1_1gl_1_1device__window.png | Bin 0 -> 2085 bytes classtz_1_1gl_1_1icomponent.html | 118 + classtz_1_1gl_1_1icomponent.png | Bin 0 -> 1468 bytes classtz_1_1gl_1_1image__component__ogl.html | 115 + classtz_1_1gl_1_1image__component__ogl.png | Bin 0 -> 672 bytes ...stz_1_1gl_1_1image__component__vulkan.html | 115 + classtz_1_1gl_1_1image__component__vulkan.png | Bin 0 -> 703 bytes classtz_1_1gl_1_1image__output.html | 116 + classtz_1_1gl_1_1image__output.png | Bin 0 -> 976 bytes classtz_1_1gl_1_1image__resource.html | 269 ++ classtz_1_1gl_1_1image__resource.png | Bin 0 -> 1309 bytes classtz_1_1gl_1_1ioutput.html | 117 + classtz_1_1gl_1_1ioutput.png | Bin 0 -> 1403 bytes classtz_1_1gl_1_1iresource.html | 326 +++ classtz_1_1gl_1_1iresource.png | Bin 0 -> 1879 bytes classtz_1_1gl_1_1ogl2_1_1buffer.html | 418 ++++ classtz_1_1gl_1_1ogl2_1_1framebuffer.html | 284 +++ classtz_1_1gl_1_1ogl2_1_1image.html | 357 +++ classtz_1_1gl_1_1ogl2_1_1render__buffer.html | 106 + classtz_1_1gl_1_1ogl2_1_1shader.html | 241 ++ classtz_1_1gl_1_1ogl2_1_1shader__module.html | 174 ++ classtz_1_1gl_1_1ogl2_1_1vertex__array.html | 246 ++ classtz_1_1gl_1_1renderer.html | 340 +++ ...1_1gl_1_1renderer__command__processor.html | 121 + ..._1_1gl_1_1renderer__command__processor.png | Bin 0 -> 3662 bytes ..._1gl_1_1renderer__descriptor__manager.html | 121 + ...1_1gl_1_1renderer__descriptor__manager.png | Bin 0 -> 3681 bytes classtz_1_1gl_1_1renderer__info.html | 382 +++ classtz_1_1gl_1_1renderer__ogl.html | 337 +++ classtz_1_1gl_1_1renderer__ogl.png | Bin 0 -> 655 bytes ...tz_1_1gl_1_1renderer__output__manager.html | 129 + ...stz_1_1gl_1_1renderer__output__manager.png | Bin 0 -> 3677 bytes classtz_1_1gl_1_1renderer__pipeline.html | 121 + classtz_1_1gl_1_1renderer__pipeline.png | Bin 0 -> 3676 bytes ..._1_1gl_1_1renderer__resource__manager.html | 121 + ...z_1_1gl_1_1renderer__resource__manager.png | Bin 0 -> 3681 bytes classtz_1_1gl_1_1renderer__vulkan2.html | 121 + classtz_1_1gl_1_1renderer__vulkan2.png | Bin 0 -> 3667 bytes classtz_1_1gl_1_1resource.html | 245 ++ classtz_1_1gl_1_1resource.png | Bin 0 -> 1874 bytes classtz_1_1gl_1_1shader__info.html | 106 + ...stz_1_1gl_1_1vk2_1_1_binary_semaphore.html | 127 + classtz_1_1gl_1_1vk2_1_1_binary_semaphore.png | Bin 0 -> 1724 bytes classtz_1_1gl_1_1vk2_1_1_buffer.html | 232 ++ classtz_1_1gl_1_1vk2_1_1_buffer.png | Bin 0 -> 1092 bytes classtz_1_1gl_1_1vk2_1_1_command_buffer.html | 198 ++ ...l_1_1vk2_1_1_command_buffer_recording.html | 402 +++ ...r_recording_1_1_dynamic_rendering_run.html | 106 + classtz_1_1gl_1_1vk2_1_1_command_pool.html | 153 ++ ...stz_1_1gl_1_1vk2_1_1_compute_pipeline.html | 106 + classtz_1_1gl_1_1vk2_1_1_debug_nameable.html | 120 + classtz_1_1gl_1_1vk2_1_1_debug_nameable.png | Bin 0 -> 2568 bytes ...tz_1_1gl_1_1vk2_1_1_descriptor_layout.html | 222 ++ ..._1_1vk2_1_1_descriptor_layout_builder.html | 252 ++ classtz_1_1gl_1_1vk2_1_1_descriptor_pool.html | 280 +++ ..._1_descriptor_pool_1_1_update_request.html | 131 + classtz_1_1gl_1_1vk2_1_1_descriptor_set.html | 176 ++ ...2_1_1_descriptor_set_1_1_edit_request.html | 213 ++ classtz_1_1gl_1_1vk2_1_1_fence.html | 179 ++ classtz_1_1gl_1_1vk2_1_1_fence.png | Bin 0 -> 1087 bytes ...tz_1_1gl_1_1vk2_1_1_graphics_pipeline.html | 113 + classtz_1_1gl_1_1vk2_1_1_image.html | 213 ++ classtz_1_1gl_1_1vk2_1_1_image.png | Bin 0 -> 1099 bytes classtz_1_1gl_1_1vk2_1_1_image_view.html | 115 + classtz_1_1gl_1_1vk2_1_1_image_view.png | Bin 0 -> 1190 bytes classtz_1_1gl_1_1vk2_1_1_logical_device.html | 237 ++ classtz_1_1gl_1_1vk2_1_1_physical_device.html | 337 +++ classtz_1_1gl_1_1vk2_1_1_pipeline.html | 106 + classtz_1_1gl_1_1vk2_1_1_pipeline_cache.html | 106 + classtz_1_1gl_1_1vk2_1_1_pipeline_layout.html | 113 + classtz_1_1gl_1_1vk2_1_1_queue_storage.html | 106 + classtz_1_1gl_1_1vk2_1_1_sampler.html | 123 + classtz_1_1gl_1_1vk2_1_1_shader.html | 114 + classtz_1_1gl_1_1vk2_1_1_shader_module.html | 128 + classtz_1_1gl_1_1vk2_1_1_swapchain.html | 375 +++ ...z_1_1gl_1_1vk2_1_1_timeline_semaphore.html | 208 ++ ...tz_1_1gl_1_1vk2_1_1_timeline_semaphore.png | Bin 0 -> 1720 bytes ...1gl_1_1vk2_1_1_vulkan_debug_messenger.html | 106 + classtz_1_1gl_1_1vk2_1_1_vulkan_instance.html | 114 + classtz_1_1gl_1_1vk2_1_1_window_surface.html | 124 + ...tz_1_1gl_1_1vk2_1_1hardware_1_1_queue.html | 247 ++ classtz_1_1gl_1_1window__output.html | 116 + classtz_1_1gl_1_1window__output.png | Bin 0 -> 973 bytes classtz_1_1grid__view.html | 289 +++ classtz_1_1handle.html | 106 + classtz_1_1i__job__system.html | 116 + classtz_1_1i__job__system.png | Bin 0 -> 1159 bytes ..._1_1job__system__blockingcurrentqueue.html | 115 + ...l_1_1job__system__blockingcurrentqueue.png | Bin 0 -> 800 bytes ...1impl_1_1job__system__threadpool__lfq.html | 125 + ..._1impl_1_1job__system__threadpool__lfq.png | Bin 0 -> 747 bytes classtz_1_1io_1_1gltf.html | 151 ++ classtz_1_1io_1_1ttf.html | 114 + classtz_1_1linear__allocator.html | 123 + classtz_1_1linear__allocator.png | Bin 0 -> 638 bytes classtz_1_1lua_1_1empty__slab__processor.html | 115 + classtz_1_1lua_1_1empty__slab__processor.png | Bin 0 -> 729 bytes classtz_1_1lua_1_1i__slab__processor.html | 115 + classtz_1_1lua_1_1i__slab__processor.png | Bin 0 -> 736 bytes classtz_1_1lua_1_1slab.html | 106 + classtz_1_1lua_1_1state.html | 212 ++ classtz_1_1mallocator.html | 114 + classtz_1_1matrix.html | 884 +++++++ classtz_1_1maybe__owned__list.html | 121 + classtz_1_1maybe__owned__list.png | Bin 0 -> 3612 bytes classtz_1_1maybe__owned__ptr.html | 106 + classtz_1_1message__passer.html | 184 ++ classtz_1_1message__passer.png | Bin 0 -> 1598 bytes classtz_1_1message__receiver.html | 192 ++ classtz_1_1message__receiver.png | Bin 0 -> 1644 bytes classtz_1_1null__allocator.html | 113 + classtz_1_1quat.html | 112 + classtz_1_1quat.png | Bin 0 -> 364 bytes classtz_1_1ren_1_1animation__renderer.html | 135 + classtz_1_1ren_1_1animation__renderer.png | Bin 0 -> 668 bytes classtz_1_1ren_1_1char__storage.html | 114 + classtz_1_1ren_1_1font__storage.html | 106 + classtz_1_1ren_1_1ihigh__level__renderer.html | 123 + classtz_1_1ren_1_1impl_1_1compute__pass.html | 106 + ...stz_1_1ren_1_1impl_1_1object__storage.html | 106 + classtz_1_1ren_1_1impl_1_1render__pass.html | 680 +++++ classtz_1_1ren_1_1impl_1_1render__pass.png | Bin 0 -> 979 bytes ...tz_1_1ren_1_1impl_1_1texture__manager.html | 106 + ...tz_1_1ren_1_1impl_1_1vertex__wrangler.html | 106 + classtz_1_1ren_1_1mesh__renderer.html | 227 ++ classtz_1_1ren_1_1mesh__renderer.png | Bin 0 -> 983 bytes classtz_1_1ren_1_1text__renderer.html | 442 ++++ classtz_1_1slab__allocator.html | 113 + classtz_1_1stack__allocator.html | 130 + classtz_1_1stack__allocator.png | Bin 0 -> 634 bytes classtz_1_1transform__hierarchy.html | 738 ++++++ classtz_1_1unique__cloneable.html | 121 + classtz_1_1unique__cloneable.png | Bin 0 -> 2571 bytes classtz_1_1vector.html | 852 +++++++ classtz_1_1wsi_1_1impl_1_1window__winapi.html | 106 + classtz_1_1wsi_1_1impl_1_1window__x11.html | 106 + clipboard.js | 61 + clone_8hpp_source.html | 140 ++ closed.png | Bin 0 -> 132 bytes command_8hpp_source.html | 600 +++++ component_8hpp_source.html | 133 + concepttz_1_1action.html | 119 + concepttz_1_1allocator.html | 116 + concepttz_1_1arithmetic.html | 117 + concepttz_1_1const__type.html | 110 + concepttz_1_1container.html | 132 + concepttz_1_1enum__class.html | 110 + concepttz_1_1function.html | 121 + ...pttz_1_1gl_1_1buffer__component__type.html | 115 + concepttz_1_1gl_1_1device__type.html | 135 + ...epttz_1_1gl_1_1image__component__type.html | 118 + concepttz_1_1gl_1_1renderer__type.html | 141 ++ concepttz_1_1has__dbgui__method.html | 113 + concepttz_1_1is__printable.html | 113 + concepttz_1_1message.html | 113 + concepttz_1_1native__available.html | 114 + concepttz_1_1nullable.html | 114 + concepttz_1_1number.html | 123 + concepttz_1_1random__access__container.html | 115 + concepttz_1_1range__of.html | 110 + concepttz_1_1trivially__copyable.html | 110 + concepttz_1_1unique__cloneable__type.html | 113 + concepttz_1_1wsi_1_1window__api.html | 143 ++ cookie.js | 58 + ...2memory_2allocators_2slab_8hpp_source.html | 157 ++ data__store_8hpp_source.html | 278 +++ dbgui_8hpp_source.html | 169 ++ dbgui__imgui__config_8hpp_source.html | 112 + debug_8hpp_source.html | 182 ++ debug_8inl_source.html | 185 ++ debugname_8hpp_source.html | 147 ++ debugname_8inl_source.html | 174 ++ declare_2image__format_8hpp_source.html | 310 +++ descriptors_8hpp_source.html | 526 ++++ device2_8hpp_source.html | 319 +++ device_8dbgui_8hpp_source.html | 120 + device_8hpp_source.html | 134 + device_8inl_source.html | 231 ++ dir_02f2e0a3d14e12ea8c919b5199048d38.html | 112 + dir_03d1be8c56fea626d5074aa0bf9e39b5.html | 106 + dir_08a9ab9f761476898a1bf8c3b193f50f.html | 157 ++ dir_16fd950ee6de1160473212027e88d072.html | 112 + dir_173d7eb180c4d4693124e94b33941768.html | 131 + dir_1a542401272435b03e55911aefd67b06.html | 130 + dir_1c4f7d2715376c7e8e07b2905ea8081c.html | 112 + dir_2839e2afe9c7157331d4564f06d50ecc.html | 114 + dir_3637b2a939f31ea398a1722df9bd7e22.html | 106 + dir_4be1570a6330a47622cf617327fcd334.html | 159 ++ dir_4eeb864c4eec08c7d6b9d3b0352cfdde.html | 106 + dir_599c755ba65617583b8f9ca84c06536f.html | 125 + dir_5a334d1c7ed1f0f36d1b8b8a8c5647cd.html | 114 + dir_5ad0a7cb5e3454bda80bf89d6e3afd8c.html | 118 + dir_6205a33bb4c90b51df32b3d1351a5b41.html | 112 + dir_63b8e252d8f253b21bb5993a46e3331f.html | 106 + dir_68267d1309a1af8e8297ef4c3efbcdba.html | 112 + dir_690e214e6e61530c3684abd455794879.html | 117 + dir_6c60afaf75e74ab2767b74a19a30396f.html | 114 + dir_7122b68cae0d86e82e150514ab755870.html | 126 + dir_8c219efcfe695884c877ddb6dae03642.html | 112 + dir_8e01169d6f6292bd7f3d8f71a715d1a5.html | 118 + dir_90fb58752be9fb1ae64073e2b3427807.html | 125 + dir_9eaca02b9c6ac3e186d627c155dd0218.html | 125 + dir_ad3614566e14216ad794a62267d6851c.html | 125 + dir_b6c2a257bfab6380ca9b3cb94b12cb25.html | 112 + dir_b6f1048c6f0057577e2c84efc97e28f6.html | 116 + dir_b8a37355f4ff41c3494f436b52e9d1e4.html | 114 + dir_c45f7307fd1a89701e5a7df4b0292432.html | 137 + dir_c57fa511409b5efb9e786a5e24baa5f3.html | 125 + dir_c5afd7f4a3427178c30763104b31116d.html | 114 + dir_c99b309211028f9b549bc11f5ba411a6.html | 150 ++ dir_d2650608e6952a9513fd80a851d6a394.html | 123 + dir_ec6445c9b7ffdfd0780b9f9686149b19.html | 118 + dir_ed1ad2be901cc9d2bf65f822a916c2e8.html | 118 + dir_ee9290bbb94f4eedc360bcd5845482c0.html | 126 + dir_f25169e3c3abac666585ffc445559871.html | 114 + dir_fa09d3ed132a3cfd9eda75072d1062af.html | 112 + doc.svg | 12 + docd.svg | 12 + doxygen-awesome.css | 2139 ++++++++++++++++ doxygen.css | 2207 +++++++++++++++++ doxygen.svg | 28 + doxygen_crawl.html | 658 +++++ draw_8hpp_source.html | 131 + dynsections.js | 194 ++ endian_8hpp_source.html | 177 ++ engine__info_8hpp_source.html | 151 ++ engine__info_8inl_source.html | 144 ++ enum__field_8hpp_source.html | 165 ++ enum__field_8inl_source.html | 308 +++ extensions_8hpp_source.html | 197 ++ fallback_8hpp_source.html | 156 ++ favicon-16x16.png | Bin 0 -> 1702 bytes favicon-32x32.png | Bin 0 -> 2076 bytes favicon.ico | Bin 0 -> 15086 bytes features_8hpp_source.html | 199 ++ fence_8hpp_source.html | 169 ++ fixed__function_8hpp_source.html | 356 +++ folderclosed.svg | 11 + folderclosedd.svg | 11 + folderopen.svg | 17 + folderopend.svg | 12 + framebuffer_8hpp_source.html | 183 ++ free__list_8hpp_source.html | 298 +++ free__list_8inl_source.html | 432 ++++ game__info_8hpp_source.html | 152 ++ ...pl_2opengl_2detail_2image_8hpp_source.html | 195 ++ ...pl_2vulkan_2detail_2image_8hpp_source.html | 324 +++ gltf_8hpp_source.html | 540 ++++ gpu__mem_8hpp_source.html | 127 + graphics__pipeline_8hpp_source.html | 311 +++ grid__view_8hpp_source.html | 146 ++ grid__view_8inl_source.html | 180 ++ group__tz__core.html | 1088 ++++++++ group__tz__core__algorithms.html | 163 ++ group__tz__core__data.html | 128 + group__tz__core__job.html | 173 ++ group__tz__core__memory.html | 116 + group__tz__core__memory__allocator.html | 134 + group__tz__core__messaging.html | 119 + group__tz__cpp.html | 127 + group__tz__dbgui.html | 227 ++ group__tz__gl2.html | 286 +++ group__tz__gl2__graphicsapi.html | 120 + group__tz__gl2__graphicsapi__ogl.html | 119 + ...__tz__gl2__graphicsapi__ogl__frontend.html | 116 + ..._graphicsapi__ogl__frontend__renderer.html | 125 + group__tz__gl2__graphicsapi__vk.html | 119 + ...p__tz__gl2__graphicsapi__vk__frontend.html | 106 + group__tz__gl2__io.html | 106 + group__tz__gl2__renderer.html | 293 +++ group__tz__gl2__res.html | 307 +++ group__tz__gl__ogl2.html | 149 ++ group__tz__gl__ogl2__buffers.html | 285 +++ group__tz__gl__ogl2__framebuffer.html | 144 ++ group__tz__gl__ogl2__image.html | 220 ++ group__tz__gl__ogl2__shader.html | 190 ++ group__tz__gl__vk.html | 245 ++ group__tz__gl__vk__buffer.html | 196 ++ group__tz__gl__vk__commands.html | 128 + group__tz__gl__vk__descriptors.html | 190 ++ group__tz__gl__vk__extension.html | 256 ++ group__tz__gl__vk__graphics__pipeline.html | 265 ++ ...tz__gl__vk__graphics__pipeline__fixed.html | 382 +++ ..._vk__graphics__pipeline__render__pass.html | 345 +++ ...z__gl__vk__graphics__pipeline__shader.html | 132 + group__tz__gl__vk__image.html | 502 ++++ group__tz__gl__vk__presentation.html | 188 ++ group__tz__gl__vk__sync.html | 133 + group__tz__lua__cpp.html | 125 + group__tz__ren.html | 127 + group__tz__wsi.html | 125 + group__tz__wsi__keyboard.html | 199 ++ group__tz__wsi__monitor.html | 144 ++ group__tz__wsi__mouse.html | 246 ++ group__tz__wsi__window.html | 260 ++ group__tzsl.html | 131 + group__tzsl__atomic.html | 153 ++ group__tzsl__debug.html | 175 ++ group__tzsl__math.html | 577 +++++ group__tzsl__matrix.html | 157 ++ group__tzsl__mesh.html | 133 + group__tzsl__noise.html | 168 ++ handle_8hpp_source.html | 167 ++ image__view_8hpp_source.html | 166 ++ ...rrentqueue__blocking_2job_8hpp_source.html | 191 ++ impl_2linux_2keyboard_8hpp_source.html | 124 + impl_2linux_2monitor_8hpp_source.html | 124 + impl_2linux_2window_8hpp_source.html | 179 ++ impl_2opengl_2component_8hpp_source.html | 181 ++ impl_2opengl_2detail_2draw_8hpp_source.html | 144 ++ ...gl_2detail_2image__format_8hpp_source.html | 258 ++ impl_2opengl_2detail_2shader_8hpp_source.html | 238 ++ impl_2opengl_2device_8hpp_source.html | 172 ++ impl_2opengl_2renderer_8hpp_source.html | 276 +++ impl_2threadpool__lfq_2job_8hpp_source.html | 177 ++ impl_2vulkan_2component_8hpp_source.html | 182 ++ impl_2vulkan_2detail_2draw_8hpp_source.html | 143 ++ ...an_2detail_2image__format_8hpp_source.html | 276 +++ impl_2vulkan_2detail_2shader_8hpp_source.html | 229 ++ impl_2windows_2keyboard_8hpp_source.html | 130 + impl_2windows_2monitor_8hpp_source.html | 123 + impl_2windows_2window_8hpp_source.html | 185 ++ imported__shaders_8hpp_source.html | 131 + imported__text_8hpp_source.html | 125 + index.html | 164 ++ io_2image_8hpp_source.html | 135 + job_8hpp_source.html | 135 + jquery.js | 34 + keyboard_8hpp_source.html | 128 + keyboard_8inl_source.html | 375 +++ linear_8hpp_source.html | 145 ++ logical__device_8hpp_source.html | 245 ++ lua_2api_8hpp_source.html | 226 ++ lua_2slab_8hpp_source.html | 200 ++ lua_8hpp_source.html | 115 + macros_8hpp_source.html | 112 + malloc_8hpp_source.html | 136 + matrix_8hpp_source.html | 206 ++ matrix_8inl_source.html | 655 +++++ matrix__transform_8hpp_source.html | 143 ++ maybe__owned__list_8hpp_source.html | 144 ++ maybe__owned__list_8inl_source.html | 162 ++ maybe__owned__ptr_8hpp_source.html | 174 ++ maybe__owned__ptr_8inl_source.html | 257 ++ memblk_8hpp_source.html | 133 + menudata.js | 30 + mesh_8hpp_source.html | 552 +++++ messaging_8hpp_source.html | 207 ++ messaging_8inl_source.html | 266 ++ minus.svg | 8 + minusd.svg | 8 + monitor_8hpp_source.html | 123 + mouse_8hpp_source.html | 123 + mstile-150x150.png | Bin 0 -> 5054 bytes namespacetz_1_1atomic.html | 149 ++ namespacetz_1_1debug.html | 123 + ...pacetz_1_1gl_1_1vk2_1_1format__traits.html | 211 ++ ...acetz_1_1gl_1_1vk2_1_1present__traits.html | 149 ++ namespacetz_1_1math.html | 259 ++ namespacetz_1_1matrix.html | 132 + namespacetz_1_1mesh.html | 129 + namespacetz_1_1noise.html | 123 + namespacetz_1_1wsi_1_1window__flag.html | 112 + nav_f.png | Bin 0 -> 153 bytes nav_fd.png | Bin 0 -> 169 bytes nav_g.png | Bin 0 -> 95 bytes nav_h.png | Bin 0 -> 98 bytes nav_hd.png | Bin 0 -> 114 bytes null_8hpp_source.html | 136 + open.png | Bin 0 -> 123 bytes opengl_2convert_8hpp_source.html | 127 + opengl_2convert_8inl_source.html | 213 ++ opengl_2detail_2buffer_8hpp_source.html | 229 ++ opengl_2detail_2sampler_8hpp_source.html | 164 ++ output_8hpp_source.html | 189 ++ physical__device_8hpp_source.html | 262 ++ pipeline__layout_8hpp_source.html | 161 ++ plus.svg | 9 + plusd.svg | 9 + polymorphic__list_8hpp_source.html | 180 ++ polymorphic__list_8inl_source.html | 245 ++ profile_8hpp_source.html | 139 ++ quat_8hpp_source.html | 155 ++ queue_8hpp_source.html | 281 +++ ren_2api_8hpp_source.html | 128 + renderbuffer_8hpp_source.html | 163 ++ renderer2_8hpp_source.html | 402 +++ renderer_8dbgui_8hpp_source.html | 121 + renderer_8hpp_source.html | 130 + resource_8hpp_source.html | 285 +++ resource_8inl_source.html | 170 ++ safari-pinned-tab.svg | 41 + schedule_8hpp_source.html | 228 ++ search/all_0.js | 72 + search/all_1.js | 84 + search/all_10.js | 10 + search/all_11.js | 74 + search/all_12.js | 122 + search/all_13.js | 99 + search/all_14.js | 22 + search/all_15.js | 68 + search/all_16.js | 37 + search/all_17.js | 5 + search/all_18.js | 4 + search/all_2.js | 70 + search/all_3.js | 107 + search/all_4.js | 52 + search/all_5.js | 61 + search/all_6.js | 103 + search/all_7.js | 21 + search/all_8.js | 97 + search/all_9.js | 12 + search/all_a.js | 9 + search/all_b.js | 35 + search/all_c.js | 71 + search/all_d.js | 25 + search/all_e.js | 40 + search/all_f.js | 53 + search/classes_0.js | 9 + search/classes_1.js | 45 + search/classes_10.js | 9 + search/classes_11.js | 29 + search/classes_12.js | 36 + search/classes_13.js | 36 + search/classes_14.js | 7 + search/classes_15.js | 22 + search/classes_16.js | 15 + search/classes_17.js | 4 + search/classes_2.js | 21 + search/classes_3.js | 53 + search/classes_4.js | 26 + search/classes_5.js | 18 + search/classes_6.js | 29 + search/classes_7.js | 13 + search/classes_8.js | 38 + search/classes_9.js | 7 + search/classes_a.js | 5 + search/classes_b.js | 9 + search/classes_c.js | 24 + search/classes_d.js | 7 + search/classes_e.js | 9 + search/classes_f.js | 16 + search/close.svg | 18 + search/concepts_0.js | 25 + search/enums_0.js | 7 + search/enums_1.js | 6 + search/enums_2.js | 4 + search/enums_3.js | 7 + search/enums_4.js | 4 + search/enums_5.js | 4 + search/enums_6.js | 9 + search/enums_7.js | 4 + search/enums_8.js | 6 + search/enums_9.js | 6 + search/enums_a.js | 8 + search/enums_b.js | 8 + search/enums_c.js | 9 + search/enums_d.js | 4 + search/enumvalues_0.js | 11 + search/enumvalues_1.js | 9 + search/enumvalues_10.js | 17 + search/enumvalues_11.js | 10 + search/enumvalues_12.js | 18 + search/enumvalues_13.js | 6 + search/enumvalues_2.js | 14 + search/enumvalues_3.js | 18 + search/enumvalues_4.js | 5 + search/enumvalues_5.js | 16 + search/enumvalues_6.js | 7 + search/enumvalues_7.js | 5 + search/enumvalues_8.js | 19 + search/enumvalues_9.js | 12 + search/enumvalues_a.js | 8 + search/enumvalues_b.js | 14 + search/enumvalues_c.js | 4 + search/enumvalues_d.js | 10 + search/enumvalues_e.js | 9 + search/enumvalues_f.js | 16 + search/functions_0.js | 32 + search/functions_1.js | 22 + search/functions_10.js | 43 + search/functions_11.js | 14 + search/functions_12.js | 8 + search/functions_13.js | 8 + search/functions_14.js | 11 + search/functions_15.js | 4 + search/functions_16.js | 4 + search/functions_2.js | 25 + search/functions_3.js | 27 + search/functions_4.js | 20 + search/functions_5.js | 17 + search/functions_6.js | 69 + search/functions_7.js | 8 + search/functions_8.js | 27 + search/functions_9.js | 4 + search/functions_a.js | 10 + search/functions_b.js | 21 + search/functions_c.js | 7 + search/functions_d.js | 27 + search/functions_e.js | 14 + search/functions_f.js | 29 + search/groups_0.js | 14 + search/groups_1.js | 6 + search/groups_10.js | 12 + search/groups_11.js | 4 + search/groups_12.js | 5 + search/groups_13.js | 7 + search/groups_14.js | 7 + search/groups_2.js | 6 + search/groups_3.js | 7 + search/groups_4.js | 4 + search/groups_5.js | 10 + search/groups_6.js | 6 + search/groups_7.js | 9 + search/groups_8.js | 4 + search/groups_9.js | 4 + search/groups_a.js | 6 + search/groups_b.js | 12 + search/groups_c.js | 4 + search/groups_d.js | 8 + search/groups_e.js | 11 + search/groups_f.js | 9 + search/mag.svg | 24 + search/mag_d.svg | 24 + search/mag_sel.svg | 31 + search/mag_seld.svg | 31 + search/namespaces_0.js | 12 + search/pages_0.js | 4 + search/pages_1.js | 4 + search/pages_2.js | 4 + search/pages_3.js | 4 + search/search.css | 292 +++ search/search.js | 694 ++++++ search/searchdata.js | 45 + search/typedefs_0.js | 4 + search/typedefs_1.js | 5 + search/typedefs_2.js | 4 + search/typedefs_3.js | 6 + search/typedefs_4.js | 6 + search/typedefs_5.js | 4 + search/typedefs_6.js | 7 + search/typedefs_7.js | 4 + search/typedefs_8.js | 25 + search/typedefs_9.js | 4 + search/variables_0.js | 14 + search/variables_1.js | 15 + search/variables_10.js | 26 + search/variables_11.js | 12 + search/variables_12.js | 4 + search/variables_13.js | 5 + search/variables_14.js | 12 + search/variables_2.js | 17 + search/variables_3.js | 18 + search/variables_4.js | 9 + search/variables_5.js | 14 + search/variables_6.js | 5 + search/variables_7.js | 15 + search/variables_8.js | 5 + search/variables_9.js | 7 + search/variables_a.js | 16 + search/variables_b.js | 4 + search/variables_c.js | 5 + search/variables_d.js | 12 + search/variables_e.js | 4 + search/variables_f.js | 4 + semaphore_8hpp_source.html | 188 ++ shader_8hpp_source.html | 111 + site.webmanifest | 19 + splitbar.png | Bin 0 -> 314 bytes splitbard.png | Bin 0 -> 282 bytes stack_8hpp_source.html | 136 + stack_8inl_source.html | 118 + state_8hpp_source.html | 255 ++ static_8hpp_source.html | 172 ++ struct_im_gui_vertex.html | 102 + structfont__data.html | 102 + structglyph__data.html | 102 + structglyph__render__data.html | 102 + structmesh__locator.html | 102 + structobject__t.html | 102 + structstd_1_1hash_3_01tz_1_1quat_01_4.html | 112 + structstd_1_1hash_3_01tz_1_1quat_01_4.png | Bin 0 -> 569 bytes structstd_1_1hash_3_01tz_1_1trs_01_4.html | 106 + ...tz_1_1vector_3_01_t_00_01_s_01_4_01_4.html | 106 + ...tz_1_1vector_3_01_t_00_01_s_01_4_01_4.html | 106 + ...tz_1_1vector_3_01_t_00_01_s_01_4_01_4.html | 112 + ...1tz_1_1vector_3_01_t_00_01_s_01_4_01_4.png | Bin 0 -> 893 bytes structstring__locator.html | 102 + structtexture__locator.html | 102 + ...cttz_1_1core_1_1detail_1_1init__state.html | 106 + structtz_1_1dbgui_1_1_im_gui_tab_t_z.html | 106 + structtz_1_1dbgui_1_1_input_delta.html | 106 + ...cttz_1_1dbgui_1_1_topaz_platform_data.html | 106 + structtz_1_1dbgui_1_1_topaz_render_data.html | 106 + ...1_1dbgui_1_1_topaz_shader_render_data.html | 106 + structtz_1_1dbgui_1_1init__info.html | 116 + structtz_1_1detail_1_1callback__type.html | 106 + structtz_1_1detail_1_1ds__add.html | 106 + structtz_1_1detail_1_1ds__edit.html | 106 + structtz_1_1detail_1_1ds__remove.html | 106 + structtz_1_1detail_1_1format__string.html | 113 + structtz_1_1detail_1_1job__handle__tag.html | 106 + structtz_1_1detail_1_1no__lock.html | 106 + structtz_1_1detail_1_1source__loc.html | 106 + structtz_1_1detail_1_1with__lock.html | 106 + ...raw_1_1_draw_indexed_indirect_command.html | 106 + ...ttz_1_1draw_1_1_draw_indirect_command.html | 106 + structtz_1_1engine__info.html | 157 ++ structtz_1_1execution__info.html | 141 ++ structtz_1_1free__list__iterator.html | 106 + structtz_1_1game__info.html | 155 ++ structtz_1_1gl_1_1buffer__info.html | 106 + ...cttz_1_1gl_1_1detail_1_1renderer__tag.html | 106 + ...command__pool_1_1fingerprint__info__t.html | 106 + structtz_1_1gl_1_1edit__side__effects.html | 106 + structtz_1_1gl_1_1event.html | 106 + structtz_1_1gl_1_1image__info.html | 135 + structtz_1_1gl_1_1image__output__info.html | 106 + structtz_1_1gl_1_1impl__tz__gl__device.html | 106 + structtz_1_1gl_1_1impl__tz__gl__renderer.html | 106 + structtz_1_1gl_1_1ogl2_1_1_format_data.html | 114 + structtz_1_1gl_1_1ogl2_1_1buffer__info.html | 131 + ...2_1_1draw__indexed__indirect__command.html | 106 + ...gl_1_1ogl2_1_1draw__indirect__command.html | 106 + ...tz_1_1gl_1_1ogl2_1_1framebuffer__info.html | 131 + structtz_1_1gl_1_1ogl2_1_1image__info.html | 131 + ...1_1gl_1_1ogl2_1_1render__buffer__info.html | 120 + structtz_1_1gl_1_1ogl2_1_1sampler.html | 139 ++ ...1gl_1_1ogl2_1_1shader_1_1link__result.html | 127 + structtz_1_1gl_1_1ogl2_1_1shader__info.html | 123 + ..._1_1shader__module_1_1compile__result.html | 127 + ...1_1gl_1_1ogl2_1_1shader__module__info.html | 127 + structtz_1_1gl_1_1overloaded.html | 112 + structtz_1_1gl_1_1overloaded.png | Bin 0 -> 569 bytes structtz_1_1gl_1_1render__state.html | 135 + ...tz_1_1gl_1_1render__state_1_1_compute.html | 116 + ...z_1_1gl_1_1render__state_1_1_graphics.html | 140 ++ structtz_1_1gl_1_1renderer__edit.html | 132 + ...l_1_1renderer__edit_1_1buffer__resize.html | 127 + ..._1_1renderer__edit_1_1compute__config.html | 123 + ...gl_1_1renderer__edit_1_1image__resize.html | 127 + ..._1gl_1_1renderer__edit_1_1mark__dirty.html | 106 + ...l_1_1renderer__edit_1_1render__config.html | 135 + ...renderer__edit_1_1resource__reference.html | 106 + ..._1_1renderer__edit_1_1resource__write.html | 106 + ...tz_1_1gl_1_1renderer__edit_1_1scissor.html | 106 + structtz_1_1gl_1_1renderer__ogl__base.html | 115 + structtz_1_1gl_1_1renderer__ogl__base.png | Bin 0 -> 660 bytes ..._output__manager_1_1render__target__t.html | 106 + structtz_1_1gl_1_1renderer__vulkan__base.html | 120 + structtz_1_1gl_1_1renderer__vulkan__base.png | Bin 0 -> 2658 bytes structtz_1_1gl_1_1schedule.html | 212 ++ structtz_1_1gl_1_1scissor__region.html | 106 + structtz_1_1gl_1_1shader__meta.html | 106 + structtz_1_1gl_1_1timeline__t.html | 112 + structtz_1_1gl_1_1timeline__t.png | Bin 0 -> 572 bytes structtz_1_1gl_1_1viewport__region.html | 106 + ...z_1_1gl_1_1vk2_1_1_colour_blend_state.html | 113 + ..._1_1gl_1_1vk2_1_1_command_buffer_data.html | 106 + ..._1vk2_1_1_command_pool_1_1_allocation.html | 123 + ..._1_command_pool_1_1_allocation_result.html | 143 ++ ...tz_1_1gl_1_1vk2_1_1_command_pool_info.html | 127 + ..._1gl_1_1vk2_1_1_compute_pipeline_info.html | 106 + ..._1_1gl_1_1vk2_1_1_depth_stencil_state.html | 155 ++ ...cttz_1_1gl_1_1vk2_1_1_descriptor_data.html | 106 + ...1gl_1_1vk2_1_1_descriptor_layout_info.html | 150 ++ ...scriptor_layout_info_1_1_binding_info.html | 124 + ...k2_1_1_descriptor_pool_1_1_allocation.html | 123 + ...descriptor_pool_1_1_allocation_result.html | 194 ++ ...1_1gl_1_1vk2_1_1_descriptor_pool_info.html | 207 ++ ..._descriptor_pool_info_1_1_pool_limits.html | 131 + ...l_1_1vk2_1_1_descriptor_set_1_1_write.html | 145 ++ ...r_set_1_1_write_1_1_buffer_write_info.html | 131 + ...or_set_1_1_write_1_1_image_write_info.html | 127 + ...1_1vk2_1_1_dynamic_rendering_run_info.html | 106 + structtz_1_1gl_1_1vk2_1_1_dynamic_state.html | 113 + structtz_1_1gl_1_1vk2_1_1_fence_info.html | 127 + ...1gl_1_1vk2_1_1_graphics_pipeline_info.html | 133 + ...line_info_1_1_dynamic_rendering_state.html | 106 + ...cttz_1_1gl_1_1vk2_1_1_image_view_info.html | 106 + ...1_1gl_1_1vk2_1_1_internal_device_info.html | 106 + ..._1_1gl_1_1vk2_1_1_logical_device_info.html | 164 ++ ...tz_1_1gl_1_1vk2_1_1_multisample_state.html | 113 + ...1_1gl_1_1vk2_1_1_physical_device_info.html | 106 + ...ysical_device_surface_capability_info.html | 114 + ..._capability_info_1_1_swapchain_extent.html | 106 + structtz_1_1gl_1_1vk2_1_1_pipeline_data.html | 106 + ...1_1gl_1_1vk2_1_1_pipeline_layout_info.html | 127 + structtz_1_1gl_1_1vk2_1_1_pipeline_state.html | 106 + ...tz_1_1gl_1_1vk2_1_1_queue_family_info.html | 106 + structtz_1_1gl_1_1vk2_1_1_queue_request.html | 120 + ...ttz_1_1gl_1_1vk2_1_1_rasteriser_state.html | 148 ++ structtz_1_1gl_1_1vk2_1_1_sampler_info.html | 143 ++ structtz_1_1gl_1_1vk2_1_1_shader_info.html | 127 + ...z_1_1gl_1_1vk2_1_1_shader_module_info.html | 131 + ...1_1gl_1_1vk2_1_1_shader_pipeline_data.html | 106 + ...2_1_1_swapchain_1_1_image_acquisition.html | 132 + ...wapchain_1_1_image_acquisition_result.html | 106 + ...1_1gl_1_1vk2_1_1_swapchain_image_info.html | 127 + structtz_1_1gl_1_1vk2_1_1_swapchain_info.html | 139 ++ ...z_1_1gl_1_1vk2_1_1_vertex_input_state.html | 126 + ..._1_1_vertex_input_state_1_1_attribute.html | 135 + ...k2_1_1_vertex_input_state_1_1_binding.html | 131 + structtz_1_1gl_1_1vk2_1_1_viewport_state.html | 114 + structtz_1_1gl_1_1vk2_1_1_vulkan_command.html | 179 ++ ...n_command_1_1_begin_dynamic_rendering.html | 106 + ...k2_1_1_vulkan_command_1_1_bind_buffer.html | 123 + ...lkan_command_1_1_bind_descriptor_sets.html | 135 + ..._vulkan_command_1_1_bind_index_buffer.html | 114 + ..._1_1_vulkan_command_1_1_bind_pipeline.html | 124 + ...vulkan_command_1_1_buffer_copy_buffer.html | 136 + ..._vulkan_command_1_1_buffer_copy_image.html | 132 + ..._vulkan_command_1_1_debug_begin_label.html | 106 + ..._1_vulkan_command_1_1_debug_end_label.html | 106 + ..._1vk2_1_1_vulkan_command_1_1_dispatch.html | 106 + ...gl_1_1vk2_1_1_vulkan_command_1_1_draw.html | 136 + ...2_1_1_vulkan_command_1_1_draw_indexed.html | 114 + ...kan_command_1_1_draw_indexed_indirect.html | 114 + ...mmand_1_1_draw_indexed_indirect_count.html | 106 + ..._1_1_vulkan_command_1_1_draw_indirect.html | 114 + ...ulkan_command_1_1_draw_indirect_count.html | 106 + ...kan_command_1_1_end_dynamic_rendering.html | 106 + ...1_vulkan_command_1_1_image_copy_image.html | 132 + ...ulkan_command_1_1_set_scissor_dynamic.html | 106 + ...n_command_1_1_transition_image_layout.html | 156 ++ ...1_1gl_1_1vk2_1_1_vulkan_instance_info.html | 135 + structtz_1_1gl_1_1vk2_1_1buffer__info.html | 135 + ...vk2_1_1detail_1_1_device_feature_info.html | 106 + ...2_1_1draw__indexed__indirect__command.html | 106 + ...1gl_1_1vk2_1_1draw__indirect__command.html | 106 + ..._1hardware_1_1_queue_1_1_present_info.html | 131 + ...1_1hardware_1_1_queue_1_1_submit_info.html | 143 ++ ...queue_1_1_submit_info_1_1_signal_info.html | 106 + ...1_queue_1_1_submit_info_1_1_wait_info.html | 120 + ...1gl_1_1vk2_1_1hardware_1_1_queue_info.html | 106 + structtz_1_1gl_1_1vk2_1_1image__info.html | 155 ++ ...tz_1_1impl_1_1concurrentqueue__traits.html | 112 + ...ttz_1_1impl_1_1concurrentqueue__traits.png | Bin 0 -> 870 bytes structtz_1_1initialise__info.html | 196 ++ structtz_1_1io_1_1format4.html | 106 + structtz_1_1io_1_1gltf__accessor.html | 106 + structtz_1_1io_1_1gltf__animation.html | 114 + ..._animation_1_1keyframe__data__element.html | 106 + ...ttz_1_1io_1_1gltf__animation__channel.html | 106 + ...o_1_1gltf__animation__channel__target.html | 106 + ...ttz_1_1io_1_1gltf__animation__sampler.html | 106 + structtz_1_1io_1_1gltf__buffer.html | 106 + structtz_1_1io_1_1gltf__buffer__view.html | 106 + structtz_1_1io_1_1gltf__chunk__data.html | 106 + structtz_1_1io_1_1gltf__header.html | 106 + structtz_1_1io_1_1gltf__image.html | 106 + structtz_1_1io_1_1gltf__material.html | 106 + structtz_1_1io_1_1gltf__mesh.html | 114 + structtz_1_1io_1_1gltf__mesh_1_1submesh.html | 106 + structtz_1_1io_1_1gltf__node.html | 106 + structtz_1_1io_1_1gltf__scene.html | 106 + structtz_1_1io_1_1gltf__skin.html | 106 + structtz_1_1io_1_1gltf__submesh__data.html | 106 + ...1_1io_1_1gltf__submesh__texture__data.html | 106 + structtz_1_1io_1_1gltf__vertex__data.html | 106 + structtz_1_1io_1_1image.html | 106 + structtz_1_1io_1_1impl__tz__io__gltf.html | 106 + structtz_1_1io_1_1ttf_1_1rasterise__info.html | 106 + ..._1_1io_1_1ttf__cmap__encoding__record.html | 106 + structtz_1_1io_1_1ttf__cmap__table.html | 106 + structtz_1_1io_1_1ttf__glyf__elem.html | 106 + structtz_1_1io_1_1ttf__glyf__table.html | 106 + structtz_1_1io_1_1ttf__glyph.html | 106 + structtz_1_1io_1_1ttf__glyph__contour.html | 106 + structtz_1_1io_1_1ttf__glyph__map.html | 112 + structtz_1_1io_1_1ttf__glyph__map.png | Bin 0 -> 807 bytes ...cttz_1_1io_1_1ttf__glyph__shape__info.html | 106 + ...tz_1_1io_1_1ttf__glyph__spacing__info.html | 106 + structtz_1_1io_1_1ttf__head__table.html | 106 + structtz_1_1io_1_1ttf__header.html | 106 + structtz_1_1io_1_1ttf__hhea__table.html | 106 + structtz_1_1io_1_1ttf__hmtx__table.html | 114 + ...io_1_1ttf__hmtx__table_1_1hmetrics__t.html | 106 + structtz_1_1io_1_1ttf__loca__table.html | 106 + structtz_1_1io_1_1ttf__maxp__table.html | 106 + structtz_1_1io_1_1ttf__table.html | 106 + structtz_1_1job__handle.html | 106 + structtz_1_1lua_1_1impl_1_1lua__register.html | 106 + structtz_1_1lua_1_1lua__operation.html | 106 + structtz_1_1lua_1_1nil.html | 106 + structtz_1_1memblk.html | 127 + structtz_1_1nullhand__t.html | 106 + structtz_1_1overloaded.html | 112 + structtz_1_1overloaded.png | Bin 0 -> 444 bytes ...er_1_1animated__objects__create__info.html | 106 + ...renderer_1_1gltf__data_1_1metadata__t.html | 106 + ...1_1ren_1_1animation__renderer_1_1info.html | 136 + ...animation__renderer_1_1playback__data.html | 106 + ...n_1_1char__storage_1_1string__locator.html | 106 + structtz_1_1ren_1_1font__data.html | 114 + ...z_1_1ren_1_1font__data_1_1glyph__data.html | 106 + structtz_1_1ren_1_1glyph__render__data.html | 106 + structtz_1_1ren_1_1impl_1_1mesh.html | 106 + structtz_1_1ren_1_1impl_1_1mesh__locator.html | 106 + structtz_1_1ren_1_1impl_1_1mesh__vertex.html | 106 + structtz_1_1ren_1_1impl_1_1object__data.html | 106 + ...nder__pass_1_1camera__orthographic__t.html | 106 + ...ender__pass_1_1camera__perspective__t.html | 106 + ..._1ren_1_1impl_1_1render__pass_1_1info.html | 143 ++ ...1render__pass_1_1object__create__info.html | 136 + ...tz_1_1ren_1_1impl_1_1texture__locator.html | 106 + structtz_1_1ren_1_1misc__data.html | 106 + structtz_1_1space_1_1_m_v_p.html | 111 + structtz_1_1static__for__t.html | 106 + ...1_1static__for__t_3_01_n_00_01_n_01_4.html | 120 + structtz_1_1transform__node.html | 136 + structtz_1_1trs.html | 106 + structtz_1_1tz__lua__data__store.html | 106 + structtz_1_1version.html | 184 ++ ...1wsi_1_1detail_1_1window__handle__tag.html | 106 + ...1_1wsi_1_1impl_1_1wgl__function__data.html | 106 + ..._1_1wsi_1_1impl_1_1x11__display__data.html | 106 + structtz_1_1wsi_1_1impl__tz__wsi__window.html | 106 + structtz_1_1wsi_1_1keyboard__state.html | 164 ++ structtz_1_1wsi_1_1monitor.html | 127 + structtz_1_1wsi_1_1mouse__state.html | 132 + structtz_1_1wsi_1_1window.html | 114 + structtz_1_1wsi_1_1window__info.html | 131 + structtz_1_1wsi_1_1window__manager.html | 106 + structvertex__t.html | 102 + swapchain_8hpp_source.html | 223 ++ sync_off.png | Bin 0 -> 853 bytes sync_on.png | Bin 0 -> 845 bytes tab_a.png | Bin 0 -> 142 bytes tab_ad.png | Bin 0 -> 135 bytes tab_b.png | Bin 0 -> 169 bytes tab_bd.png | Bin 0 -> 173 bytes tab_h.png | Bin 0 -> 177 bytes tab_hd.png | Bin 0 -> 180 bytes tab_s.png | Bin 0 -> 184 bytes tab_sd.png | Bin 0 -> 188 bytes tabs.css | 68 + text_8hpp_source.html | 277 +++ time_8hpp_source.html | 271 ++ transform__hierarchy_8hpp_source.html | 213 ++ transform__hierarchy_8inl_source.html | 699 ++++++ trs_8hpp_source.html | 165 ++ ttf_8hpp_source.html | 400 +++ types_8hpp_source.html | 261 ++ tz.png | Bin 0 -> 3262 bytes tz_8hpp_source.html | 176 ++ tz_8inl_source.html | 111 + tz__core_8hpp_source.html | 130 + tz__gl_8hpp_source.html | 127 + tz__io_8hpp_source.html | 122 + tz__opengl_8hpp_source.html | 136 + tz__ren_8hpp_source.html | 122 + tz__vulkan_8hpp_source.html | 370 +++ tz_lua.html | 123 + vector_8hpp_source.html | 282 +++ vector_8inl_source.html | 446 ++++ version_8hpp_source.html | 196 ++ vertex__array_8hpp_source.html | 188 ++ vulkan_2convert_8hpp_source.html | 128 + vulkan_2convert_8inl_source.html | 214 ++ vulkan_2detail_2buffer_8hpp_source.html | 218 ++ vulkan_2detail_2sampler_8hpp_source.html | 204 ++ wgl__ext_8hpp_source.html | 143 ++ winapi_8hpp_source.html | 118 + window_8hpp_source.html | 180 ++ wsi_8hpp_source.html | 128 + wsi__linux_8hpp_source.html | 136 + wsi__windows_8hpp_source.html | 143 ++ 932 files changed, 115580 insertions(+) create mode 100644 .nojekyll create mode 100644 adapter_8hpp_source.html create mode 100644 android-chrome-192x192.png create mode 100644 android-chrome-256x256.png create mode 100644 animation_8hpp_source.html create mode 100644 api_2component_8hpp_source.html create mode 100644 api_2device_8hpp_source.html create mode 100644 api_2job_8hpp_source.html create mode 100644 api_2keyboard_8hpp_source.html create mode 100644 api_2monitor_8hpp_source.html create mode 100644 api_2mouse_8hpp_source.html create mode 100644 api_2output_8hpp_source.html create mode 100644 api_2renderer_8hpp_source.html create mode 100644 api_2resource_8hpp_source.html create mode 100644 api_2shader_8hpp_source.html create mode 100644 api_2window_8hpp_source.html create mode 100644 apple-touch-icon.png create mode 100644 basic__list_8hpp_source.html create mode 100644 bc_s.png create mode 100644 bc_sd.png create mode 100644 browserconfig.xml create mode 100644 callback_8hpp_source.html create mode 100644 classtz_1_1_interface_iterator.html create mode 100644 classtz_1_1_polymorphic_list.html create mode 100644 classtz_1_1allocator__adapter.html create mode 100644 classtz_1_1allocator__adapter.png create mode 100644 classtz_1_1basic__list.html create mode 100644 classtz_1_1callback.html create mode 100644 classtz_1_1data__store.html create mode 100644 classtz_1_1delay.html create mode 100644 classtz_1_1duration.html create mode 100644 classtz_1_1enum__field.html create mode 100644 classtz_1_1fallback__allocator.html create mode 100644 classtz_1_1fallback__allocator.png create mode 100644 classtz_1_1free__list.html create mode 100644 classtz_1_1gl_1_1_output_manager.html create mode 100644 classtz_1_1gl_1_1_renderer_edit_builder.html create mode 100644 classtz_1_1gl_1_1_resource_storage.html create mode 100644 classtz_1_1gl_1_1_resource_storage.png create mode 100644 classtz_1_1gl_1_1_shader_manager.html create mode 100644 classtz_1_1gl_1_1buffer__component__ogl.html create mode 100644 classtz_1_1gl_1_1buffer__component__ogl.png create mode 100644 classtz_1_1gl_1_1buffer__component__vulkan.html create mode 100644 classtz_1_1gl_1_1buffer__component__vulkan.png create mode 100644 classtz_1_1gl_1_1buffer__resource.html create mode 100644 classtz_1_1gl_1_1buffer__resource.png create mode 100644 classtz_1_1gl_1_1device.html create mode 100644 classtz_1_1gl_1_1device__command__pool.html create mode 100644 classtz_1_1gl_1_1device__command__pool.png create mode 100644 classtz_1_1gl_1_1device__common.html create mode 100644 classtz_1_1gl_1_1device__common.png create mode 100644 classtz_1_1gl_1_1device__descriptor__pool.html create mode 100644 classtz_1_1gl_1_1device__descriptor__pool.png create mode 100644 classtz_1_1gl_1_1device__ogl.html create mode 100644 classtz_1_1gl_1_1device__ogl.png create mode 100644 classtz_1_1gl_1_1device__render__scheduler__ogl.html create mode 100644 classtz_1_1gl_1_1device__render__scheduler__ogl.png create mode 100644 classtz_1_1gl_1_1device__render__sync.html create mode 100644 classtz_1_1gl_1_1device__render__sync.png create mode 100644 classtz_1_1gl_1_1device__vulkan2.html create mode 100644 classtz_1_1gl_1_1device__vulkan2.png create mode 100644 classtz_1_1gl_1_1device__vulkan__base.html create mode 100644 classtz_1_1gl_1_1device__vulkan__base.png create mode 100644 classtz_1_1gl_1_1device__window.html create mode 100644 classtz_1_1gl_1_1device__window.png create mode 100644 classtz_1_1gl_1_1icomponent.html create mode 100644 classtz_1_1gl_1_1icomponent.png create mode 100644 classtz_1_1gl_1_1image__component__ogl.html create mode 100644 classtz_1_1gl_1_1image__component__ogl.png create mode 100644 classtz_1_1gl_1_1image__component__vulkan.html create mode 100644 classtz_1_1gl_1_1image__component__vulkan.png create mode 100644 classtz_1_1gl_1_1image__output.html create mode 100644 classtz_1_1gl_1_1image__output.png create mode 100644 classtz_1_1gl_1_1image__resource.html create mode 100644 classtz_1_1gl_1_1image__resource.png create mode 100644 classtz_1_1gl_1_1ioutput.html create mode 100644 classtz_1_1gl_1_1ioutput.png create mode 100644 classtz_1_1gl_1_1iresource.html create mode 100644 classtz_1_1gl_1_1iresource.png create mode 100644 classtz_1_1gl_1_1ogl2_1_1buffer.html create mode 100644 classtz_1_1gl_1_1ogl2_1_1framebuffer.html create mode 100644 classtz_1_1gl_1_1ogl2_1_1image.html create mode 100644 classtz_1_1gl_1_1ogl2_1_1render__buffer.html create mode 100644 classtz_1_1gl_1_1ogl2_1_1shader.html create mode 100644 classtz_1_1gl_1_1ogl2_1_1shader__module.html create mode 100644 classtz_1_1gl_1_1ogl2_1_1vertex__array.html create mode 100644 classtz_1_1gl_1_1renderer.html create mode 100644 classtz_1_1gl_1_1renderer__command__processor.html create mode 100644 classtz_1_1gl_1_1renderer__command__processor.png create mode 100644 classtz_1_1gl_1_1renderer__descriptor__manager.html create mode 100644 classtz_1_1gl_1_1renderer__descriptor__manager.png create mode 100644 classtz_1_1gl_1_1renderer__info.html create mode 100644 classtz_1_1gl_1_1renderer__ogl.html create mode 100644 classtz_1_1gl_1_1renderer__ogl.png create mode 100644 classtz_1_1gl_1_1renderer__output__manager.html create mode 100644 classtz_1_1gl_1_1renderer__output__manager.png create mode 100644 classtz_1_1gl_1_1renderer__pipeline.html create mode 100644 classtz_1_1gl_1_1renderer__pipeline.png create mode 100644 classtz_1_1gl_1_1renderer__resource__manager.html create mode 100644 classtz_1_1gl_1_1renderer__resource__manager.png create mode 100644 classtz_1_1gl_1_1renderer__vulkan2.html create mode 100644 classtz_1_1gl_1_1renderer__vulkan2.png create mode 100644 classtz_1_1gl_1_1resource.html create mode 100644 classtz_1_1gl_1_1resource.png create mode 100644 classtz_1_1gl_1_1shader__info.html create mode 100644 classtz_1_1gl_1_1vk2_1_1_binary_semaphore.html create mode 100644 classtz_1_1gl_1_1vk2_1_1_binary_semaphore.png create mode 100644 classtz_1_1gl_1_1vk2_1_1_buffer.html create mode 100644 classtz_1_1gl_1_1vk2_1_1_buffer.png create mode 100644 classtz_1_1gl_1_1vk2_1_1_command_buffer.html create mode 100644 classtz_1_1gl_1_1vk2_1_1_command_buffer_recording.html create mode 100644 classtz_1_1gl_1_1vk2_1_1_command_buffer_recording_1_1_dynamic_rendering_run.html create mode 100644 classtz_1_1gl_1_1vk2_1_1_command_pool.html create mode 100644 classtz_1_1gl_1_1vk2_1_1_compute_pipeline.html create mode 100644 classtz_1_1gl_1_1vk2_1_1_debug_nameable.html create mode 100644 classtz_1_1gl_1_1vk2_1_1_debug_nameable.png create mode 100644 classtz_1_1gl_1_1vk2_1_1_descriptor_layout.html create mode 100644 classtz_1_1gl_1_1vk2_1_1_descriptor_layout_builder.html create mode 100644 classtz_1_1gl_1_1vk2_1_1_descriptor_pool.html create mode 100644 classtz_1_1gl_1_1vk2_1_1_descriptor_pool_1_1_update_request.html create mode 100644 classtz_1_1gl_1_1vk2_1_1_descriptor_set.html create mode 100644 classtz_1_1gl_1_1vk2_1_1_descriptor_set_1_1_edit_request.html create mode 100644 classtz_1_1gl_1_1vk2_1_1_fence.html create mode 100644 classtz_1_1gl_1_1vk2_1_1_fence.png create mode 100644 classtz_1_1gl_1_1vk2_1_1_graphics_pipeline.html create mode 100644 classtz_1_1gl_1_1vk2_1_1_image.html create mode 100644 classtz_1_1gl_1_1vk2_1_1_image.png create mode 100644 classtz_1_1gl_1_1vk2_1_1_image_view.html create mode 100644 classtz_1_1gl_1_1vk2_1_1_image_view.png create mode 100644 classtz_1_1gl_1_1vk2_1_1_logical_device.html create mode 100644 classtz_1_1gl_1_1vk2_1_1_physical_device.html create mode 100644 classtz_1_1gl_1_1vk2_1_1_pipeline.html create mode 100644 classtz_1_1gl_1_1vk2_1_1_pipeline_cache.html create mode 100644 classtz_1_1gl_1_1vk2_1_1_pipeline_layout.html create mode 100644 classtz_1_1gl_1_1vk2_1_1_queue_storage.html create mode 100644 classtz_1_1gl_1_1vk2_1_1_sampler.html create mode 100644 classtz_1_1gl_1_1vk2_1_1_shader.html create mode 100644 classtz_1_1gl_1_1vk2_1_1_shader_module.html create mode 100644 classtz_1_1gl_1_1vk2_1_1_swapchain.html create mode 100644 classtz_1_1gl_1_1vk2_1_1_timeline_semaphore.html create mode 100644 classtz_1_1gl_1_1vk2_1_1_timeline_semaphore.png create mode 100644 classtz_1_1gl_1_1vk2_1_1_vulkan_debug_messenger.html create mode 100644 classtz_1_1gl_1_1vk2_1_1_vulkan_instance.html create mode 100644 classtz_1_1gl_1_1vk2_1_1_window_surface.html create mode 100644 classtz_1_1gl_1_1vk2_1_1hardware_1_1_queue.html create mode 100644 classtz_1_1gl_1_1window__output.html create mode 100644 classtz_1_1gl_1_1window__output.png create mode 100644 classtz_1_1grid__view.html create mode 100644 classtz_1_1handle.html create mode 100644 classtz_1_1i__job__system.html create mode 100644 classtz_1_1i__job__system.png create mode 100644 classtz_1_1impl_1_1job__system__blockingcurrentqueue.html create mode 100644 classtz_1_1impl_1_1job__system__blockingcurrentqueue.png create mode 100644 classtz_1_1impl_1_1job__system__threadpool__lfq.html create mode 100644 classtz_1_1impl_1_1job__system__threadpool__lfq.png create mode 100644 classtz_1_1io_1_1gltf.html create mode 100644 classtz_1_1io_1_1ttf.html create mode 100644 classtz_1_1linear__allocator.html create mode 100644 classtz_1_1linear__allocator.png create mode 100644 classtz_1_1lua_1_1empty__slab__processor.html create mode 100644 classtz_1_1lua_1_1empty__slab__processor.png create mode 100644 classtz_1_1lua_1_1i__slab__processor.html create mode 100644 classtz_1_1lua_1_1i__slab__processor.png create mode 100644 classtz_1_1lua_1_1slab.html create mode 100644 classtz_1_1lua_1_1state.html create mode 100644 classtz_1_1mallocator.html create mode 100644 classtz_1_1matrix.html create mode 100644 classtz_1_1maybe__owned__list.html create mode 100644 classtz_1_1maybe__owned__list.png create mode 100644 classtz_1_1maybe__owned__ptr.html create mode 100644 classtz_1_1message__passer.html create mode 100644 classtz_1_1message__passer.png create mode 100644 classtz_1_1message__receiver.html create mode 100644 classtz_1_1message__receiver.png create mode 100644 classtz_1_1null__allocator.html create mode 100644 classtz_1_1quat.html create mode 100644 classtz_1_1quat.png create mode 100644 classtz_1_1ren_1_1animation__renderer.html create mode 100644 classtz_1_1ren_1_1animation__renderer.png create mode 100644 classtz_1_1ren_1_1char__storage.html create mode 100644 classtz_1_1ren_1_1font__storage.html create mode 100644 classtz_1_1ren_1_1ihigh__level__renderer.html create mode 100644 classtz_1_1ren_1_1impl_1_1compute__pass.html create mode 100644 classtz_1_1ren_1_1impl_1_1object__storage.html create mode 100644 classtz_1_1ren_1_1impl_1_1render__pass.html create mode 100644 classtz_1_1ren_1_1impl_1_1render__pass.png create mode 100644 classtz_1_1ren_1_1impl_1_1texture__manager.html create mode 100644 classtz_1_1ren_1_1impl_1_1vertex__wrangler.html create mode 100644 classtz_1_1ren_1_1mesh__renderer.html create mode 100644 classtz_1_1ren_1_1mesh__renderer.png create mode 100644 classtz_1_1ren_1_1text__renderer.html create mode 100644 classtz_1_1slab__allocator.html create mode 100644 classtz_1_1stack__allocator.html create mode 100644 classtz_1_1stack__allocator.png create mode 100644 classtz_1_1transform__hierarchy.html create mode 100644 classtz_1_1unique__cloneable.html create mode 100644 classtz_1_1unique__cloneable.png create mode 100644 classtz_1_1vector.html create mode 100644 classtz_1_1wsi_1_1impl_1_1window__winapi.html create mode 100644 classtz_1_1wsi_1_1impl_1_1window__x11.html create mode 100644 clipboard.js create mode 100644 clone_8hpp_source.html create mode 100644 closed.png create mode 100644 command_8hpp_source.html create mode 100644 component_8hpp_source.html create mode 100644 concepttz_1_1action.html create mode 100644 concepttz_1_1allocator.html create mode 100644 concepttz_1_1arithmetic.html create mode 100644 concepttz_1_1const__type.html create mode 100644 concepttz_1_1container.html create mode 100644 concepttz_1_1enum__class.html create mode 100644 concepttz_1_1function.html create mode 100644 concepttz_1_1gl_1_1buffer__component__type.html create mode 100644 concepttz_1_1gl_1_1device__type.html create mode 100644 concepttz_1_1gl_1_1image__component__type.html create mode 100644 concepttz_1_1gl_1_1renderer__type.html create mode 100644 concepttz_1_1has__dbgui__method.html create mode 100644 concepttz_1_1is__printable.html create mode 100644 concepttz_1_1message.html create mode 100644 concepttz_1_1native__available.html create mode 100644 concepttz_1_1nullable.html create mode 100644 concepttz_1_1number.html create mode 100644 concepttz_1_1random__access__container.html create mode 100644 concepttz_1_1range__of.html create mode 100644 concepttz_1_1trivially__copyable.html create mode 100644 concepttz_1_1unique__cloneable__type.html create mode 100644 concepttz_1_1wsi_1_1window__api.html create mode 100644 cookie.js create mode 100644 core_2memory_2allocators_2slab_8hpp_source.html create mode 100644 data__store_8hpp_source.html create mode 100644 dbgui_8hpp_source.html create mode 100644 dbgui__imgui__config_8hpp_source.html create mode 100644 debug_8hpp_source.html create mode 100644 debug_8inl_source.html create mode 100644 debugname_8hpp_source.html create mode 100644 debugname_8inl_source.html create mode 100644 declare_2image__format_8hpp_source.html create mode 100644 descriptors_8hpp_source.html create mode 100644 device2_8hpp_source.html create mode 100644 device_8dbgui_8hpp_source.html create mode 100644 device_8hpp_source.html create mode 100644 device_8inl_source.html create mode 100644 dir_02f2e0a3d14e12ea8c919b5199048d38.html create mode 100644 dir_03d1be8c56fea626d5074aa0bf9e39b5.html create mode 100644 dir_08a9ab9f761476898a1bf8c3b193f50f.html create mode 100644 dir_16fd950ee6de1160473212027e88d072.html create mode 100644 dir_173d7eb180c4d4693124e94b33941768.html create mode 100644 dir_1a542401272435b03e55911aefd67b06.html create mode 100644 dir_1c4f7d2715376c7e8e07b2905ea8081c.html create mode 100644 dir_2839e2afe9c7157331d4564f06d50ecc.html create mode 100644 dir_3637b2a939f31ea398a1722df9bd7e22.html create mode 100644 dir_4be1570a6330a47622cf617327fcd334.html create mode 100644 dir_4eeb864c4eec08c7d6b9d3b0352cfdde.html create mode 100644 dir_599c755ba65617583b8f9ca84c06536f.html create mode 100644 dir_5a334d1c7ed1f0f36d1b8b8a8c5647cd.html create mode 100644 dir_5ad0a7cb5e3454bda80bf89d6e3afd8c.html create mode 100644 dir_6205a33bb4c90b51df32b3d1351a5b41.html create mode 100644 dir_63b8e252d8f253b21bb5993a46e3331f.html create mode 100644 dir_68267d1309a1af8e8297ef4c3efbcdba.html create mode 100644 dir_690e214e6e61530c3684abd455794879.html create mode 100644 dir_6c60afaf75e74ab2767b74a19a30396f.html create mode 100644 dir_7122b68cae0d86e82e150514ab755870.html create mode 100644 dir_8c219efcfe695884c877ddb6dae03642.html create mode 100644 dir_8e01169d6f6292bd7f3d8f71a715d1a5.html create mode 100644 dir_90fb58752be9fb1ae64073e2b3427807.html create mode 100644 dir_9eaca02b9c6ac3e186d627c155dd0218.html create mode 100644 dir_ad3614566e14216ad794a62267d6851c.html create mode 100644 dir_b6c2a257bfab6380ca9b3cb94b12cb25.html create mode 100644 dir_b6f1048c6f0057577e2c84efc97e28f6.html create mode 100644 dir_b8a37355f4ff41c3494f436b52e9d1e4.html create mode 100644 dir_c45f7307fd1a89701e5a7df4b0292432.html create mode 100644 dir_c57fa511409b5efb9e786a5e24baa5f3.html create mode 100644 dir_c5afd7f4a3427178c30763104b31116d.html create mode 100644 dir_c99b309211028f9b549bc11f5ba411a6.html create mode 100644 dir_d2650608e6952a9513fd80a851d6a394.html create mode 100644 dir_ec6445c9b7ffdfd0780b9f9686149b19.html create mode 100644 dir_ed1ad2be901cc9d2bf65f822a916c2e8.html create mode 100644 dir_ee9290bbb94f4eedc360bcd5845482c0.html create mode 100644 dir_f25169e3c3abac666585ffc445559871.html create mode 100644 dir_fa09d3ed132a3cfd9eda75072d1062af.html create mode 100644 doc.svg create mode 100644 docd.svg create mode 100644 doxygen-awesome.css create mode 100644 doxygen.css create mode 100644 doxygen.svg create mode 100644 doxygen_crawl.html create mode 100644 draw_8hpp_source.html create mode 100644 dynsections.js create mode 100644 endian_8hpp_source.html create mode 100644 engine__info_8hpp_source.html create mode 100644 engine__info_8inl_source.html create mode 100644 enum__field_8hpp_source.html create mode 100644 enum__field_8inl_source.html create mode 100644 extensions_8hpp_source.html create mode 100644 fallback_8hpp_source.html create mode 100644 favicon-16x16.png create mode 100644 favicon-32x32.png create mode 100644 favicon.ico create mode 100644 features_8hpp_source.html create mode 100644 fence_8hpp_source.html create mode 100644 fixed__function_8hpp_source.html create mode 100644 folderclosed.svg create mode 100644 folderclosedd.svg create mode 100644 folderopen.svg create mode 100644 folderopend.svg create mode 100644 framebuffer_8hpp_source.html create mode 100644 free__list_8hpp_source.html create mode 100644 free__list_8inl_source.html create mode 100644 game__info_8hpp_source.html create mode 100644 gl_2impl_2opengl_2detail_2image_8hpp_source.html create mode 100644 gl_2impl_2vulkan_2detail_2image_8hpp_source.html create mode 100644 gltf_8hpp_source.html create mode 100644 gpu__mem_8hpp_source.html create mode 100644 graphics__pipeline_8hpp_source.html create mode 100644 grid__view_8hpp_source.html create mode 100644 grid__view_8inl_source.html create mode 100644 group__tz__core.html create mode 100644 group__tz__core__algorithms.html create mode 100644 group__tz__core__data.html create mode 100644 group__tz__core__job.html create mode 100644 group__tz__core__memory.html create mode 100644 group__tz__core__memory__allocator.html create mode 100644 group__tz__core__messaging.html create mode 100644 group__tz__cpp.html create mode 100644 group__tz__dbgui.html create mode 100644 group__tz__gl2.html create mode 100644 group__tz__gl2__graphicsapi.html create mode 100644 group__tz__gl2__graphicsapi__ogl.html create mode 100644 group__tz__gl2__graphicsapi__ogl__frontend.html create mode 100644 group__tz__gl2__graphicsapi__ogl__frontend__renderer.html create mode 100644 group__tz__gl2__graphicsapi__vk.html create mode 100644 group__tz__gl2__graphicsapi__vk__frontend.html create mode 100644 group__tz__gl2__io.html create mode 100644 group__tz__gl2__renderer.html create mode 100644 group__tz__gl2__res.html create mode 100644 group__tz__gl__ogl2.html create mode 100644 group__tz__gl__ogl2__buffers.html create mode 100644 group__tz__gl__ogl2__framebuffer.html create mode 100644 group__tz__gl__ogl2__image.html create mode 100644 group__tz__gl__ogl2__shader.html create mode 100644 group__tz__gl__vk.html create mode 100644 group__tz__gl__vk__buffer.html create mode 100644 group__tz__gl__vk__commands.html create mode 100644 group__tz__gl__vk__descriptors.html create mode 100644 group__tz__gl__vk__extension.html create mode 100644 group__tz__gl__vk__graphics__pipeline.html create mode 100644 group__tz__gl__vk__graphics__pipeline__fixed.html create mode 100644 group__tz__gl__vk__graphics__pipeline__render__pass.html create mode 100644 group__tz__gl__vk__graphics__pipeline__shader.html create mode 100644 group__tz__gl__vk__image.html create mode 100644 group__tz__gl__vk__presentation.html create mode 100644 group__tz__gl__vk__sync.html create mode 100644 group__tz__lua__cpp.html create mode 100644 group__tz__ren.html create mode 100644 group__tz__wsi.html create mode 100644 group__tz__wsi__keyboard.html create mode 100644 group__tz__wsi__monitor.html create mode 100644 group__tz__wsi__mouse.html create mode 100644 group__tz__wsi__window.html create mode 100644 group__tzsl.html create mode 100644 group__tzsl__atomic.html create mode 100644 group__tzsl__debug.html create mode 100644 group__tzsl__math.html create mode 100644 group__tzsl__matrix.html create mode 100644 group__tzsl__mesh.html create mode 100644 group__tzsl__noise.html create mode 100644 handle_8hpp_source.html create mode 100644 image__view_8hpp_source.html create mode 100644 impl_2concurrentqueue__blocking_2job_8hpp_source.html create mode 100644 impl_2linux_2keyboard_8hpp_source.html create mode 100644 impl_2linux_2monitor_8hpp_source.html create mode 100644 impl_2linux_2window_8hpp_source.html create mode 100644 impl_2opengl_2component_8hpp_source.html create mode 100644 impl_2opengl_2detail_2draw_8hpp_source.html create mode 100644 impl_2opengl_2detail_2image__format_8hpp_source.html create mode 100644 impl_2opengl_2detail_2shader_8hpp_source.html create mode 100644 impl_2opengl_2device_8hpp_source.html create mode 100644 impl_2opengl_2renderer_8hpp_source.html create mode 100644 impl_2threadpool__lfq_2job_8hpp_source.html create mode 100644 impl_2vulkan_2component_8hpp_source.html create mode 100644 impl_2vulkan_2detail_2draw_8hpp_source.html create mode 100644 impl_2vulkan_2detail_2image__format_8hpp_source.html create mode 100644 impl_2vulkan_2detail_2shader_8hpp_source.html create mode 100644 impl_2windows_2keyboard_8hpp_source.html create mode 100644 impl_2windows_2monitor_8hpp_source.html create mode 100644 impl_2windows_2window_8hpp_source.html create mode 100644 imported__shaders_8hpp_source.html create mode 100644 imported__text_8hpp_source.html create mode 100644 index.html create mode 100644 io_2image_8hpp_source.html create mode 100644 job_8hpp_source.html create mode 100644 jquery.js create mode 100644 keyboard_8hpp_source.html create mode 100644 keyboard_8inl_source.html create mode 100644 linear_8hpp_source.html create mode 100644 logical__device_8hpp_source.html create mode 100644 lua_2api_8hpp_source.html create mode 100644 lua_2slab_8hpp_source.html create mode 100644 lua_8hpp_source.html create mode 100644 macros_8hpp_source.html create mode 100644 malloc_8hpp_source.html create mode 100644 matrix_8hpp_source.html create mode 100644 matrix_8inl_source.html create mode 100644 matrix__transform_8hpp_source.html create mode 100644 maybe__owned__list_8hpp_source.html create mode 100644 maybe__owned__list_8inl_source.html create mode 100644 maybe__owned__ptr_8hpp_source.html create mode 100644 maybe__owned__ptr_8inl_source.html create mode 100644 memblk_8hpp_source.html create mode 100644 menudata.js create mode 100644 mesh_8hpp_source.html create mode 100644 messaging_8hpp_source.html create mode 100644 messaging_8inl_source.html create mode 100644 minus.svg create mode 100644 minusd.svg create mode 100644 monitor_8hpp_source.html create mode 100644 mouse_8hpp_source.html create mode 100644 mstile-150x150.png create mode 100644 namespacetz_1_1atomic.html create mode 100644 namespacetz_1_1debug.html create mode 100644 namespacetz_1_1gl_1_1vk2_1_1format__traits.html create mode 100644 namespacetz_1_1gl_1_1vk2_1_1present__traits.html create mode 100644 namespacetz_1_1math.html create mode 100644 namespacetz_1_1matrix.html create mode 100644 namespacetz_1_1mesh.html create mode 100644 namespacetz_1_1noise.html create mode 100644 namespacetz_1_1wsi_1_1window__flag.html create mode 100644 nav_f.png create mode 100644 nav_fd.png create mode 100644 nav_g.png create mode 100644 nav_h.png create mode 100644 nav_hd.png create mode 100644 null_8hpp_source.html create mode 100644 open.png create mode 100644 opengl_2convert_8hpp_source.html create mode 100644 opengl_2convert_8inl_source.html create mode 100644 opengl_2detail_2buffer_8hpp_source.html create mode 100644 opengl_2detail_2sampler_8hpp_source.html create mode 100644 output_8hpp_source.html create mode 100644 physical__device_8hpp_source.html create mode 100644 pipeline__layout_8hpp_source.html create mode 100644 plus.svg create mode 100644 plusd.svg create mode 100644 polymorphic__list_8hpp_source.html create mode 100644 polymorphic__list_8inl_source.html create mode 100644 profile_8hpp_source.html create mode 100644 quat_8hpp_source.html create mode 100644 queue_8hpp_source.html create mode 100644 ren_2api_8hpp_source.html create mode 100644 renderbuffer_8hpp_source.html create mode 100644 renderer2_8hpp_source.html create mode 100644 renderer_8dbgui_8hpp_source.html create mode 100644 renderer_8hpp_source.html create mode 100644 resource_8hpp_source.html create mode 100644 resource_8inl_source.html create mode 100644 safari-pinned-tab.svg create mode 100644 schedule_8hpp_source.html create mode 100644 search/all_0.js create mode 100644 search/all_1.js create mode 100644 search/all_10.js create mode 100644 search/all_11.js create mode 100644 search/all_12.js create mode 100644 search/all_13.js create mode 100644 search/all_14.js create mode 100644 search/all_15.js create mode 100644 search/all_16.js create mode 100644 search/all_17.js create mode 100644 search/all_18.js create mode 100644 search/all_2.js create mode 100644 search/all_3.js create mode 100644 search/all_4.js create mode 100644 search/all_5.js create mode 100644 search/all_6.js create mode 100644 search/all_7.js create mode 100644 search/all_8.js create mode 100644 search/all_9.js create mode 100644 search/all_a.js create mode 100644 search/all_b.js create mode 100644 search/all_c.js create mode 100644 search/all_d.js create mode 100644 search/all_e.js create mode 100644 search/all_f.js create mode 100644 search/classes_0.js create mode 100644 search/classes_1.js create mode 100644 search/classes_10.js create mode 100644 search/classes_11.js create mode 100644 search/classes_12.js create mode 100644 search/classes_13.js create mode 100644 search/classes_14.js create mode 100644 search/classes_15.js create mode 100644 search/classes_16.js create mode 100644 search/classes_17.js create mode 100644 search/classes_2.js create mode 100644 search/classes_3.js create mode 100644 search/classes_4.js create mode 100644 search/classes_5.js create mode 100644 search/classes_6.js create mode 100644 search/classes_7.js create mode 100644 search/classes_8.js create mode 100644 search/classes_9.js create mode 100644 search/classes_a.js create mode 100644 search/classes_b.js create mode 100644 search/classes_c.js create mode 100644 search/classes_d.js create mode 100644 search/classes_e.js create mode 100644 search/classes_f.js create mode 100644 search/close.svg create mode 100644 search/concepts_0.js create mode 100644 search/enums_0.js create mode 100644 search/enums_1.js create mode 100644 search/enums_2.js create mode 100644 search/enums_3.js create mode 100644 search/enums_4.js create mode 100644 search/enums_5.js create mode 100644 search/enums_6.js create mode 100644 search/enums_7.js create mode 100644 search/enums_8.js create mode 100644 search/enums_9.js create mode 100644 search/enums_a.js create mode 100644 search/enums_b.js create mode 100644 search/enums_c.js create mode 100644 search/enums_d.js create mode 100644 search/enumvalues_0.js create mode 100644 search/enumvalues_1.js create mode 100644 search/enumvalues_10.js create mode 100644 search/enumvalues_11.js create mode 100644 search/enumvalues_12.js create mode 100644 search/enumvalues_13.js create mode 100644 search/enumvalues_2.js create mode 100644 search/enumvalues_3.js create mode 100644 search/enumvalues_4.js create mode 100644 search/enumvalues_5.js create mode 100644 search/enumvalues_6.js create mode 100644 search/enumvalues_7.js create mode 100644 search/enumvalues_8.js create mode 100644 search/enumvalues_9.js create mode 100644 search/enumvalues_a.js create mode 100644 search/enumvalues_b.js create mode 100644 search/enumvalues_c.js create mode 100644 search/enumvalues_d.js create mode 100644 search/enumvalues_e.js create mode 100644 search/enumvalues_f.js create mode 100644 search/functions_0.js create mode 100644 search/functions_1.js create mode 100644 search/functions_10.js create mode 100644 search/functions_11.js create mode 100644 search/functions_12.js create mode 100644 search/functions_13.js create mode 100644 search/functions_14.js create mode 100644 search/functions_15.js create mode 100644 search/functions_16.js create mode 100644 search/functions_2.js create mode 100644 search/functions_3.js create mode 100644 search/functions_4.js create mode 100644 search/functions_5.js create mode 100644 search/functions_6.js create mode 100644 search/functions_7.js create mode 100644 search/functions_8.js create mode 100644 search/functions_9.js create mode 100644 search/functions_a.js create mode 100644 search/functions_b.js create mode 100644 search/functions_c.js create mode 100644 search/functions_d.js create mode 100644 search/functions_e.js create mode 100644 search/functions_f.js create mode 100644 search/groups_0.js create mode 100644 search/groups_1.js create mode 100644 search/groups_10.js create mode 100644 search/groups_11.js create mode 100644 search/groups_12.js create mode 100644 search/groups_13.js create mode 100644 search/groups_14.js create mode 100644 search/groups_2.js create mode 100644 search/groups_3.js create mode 100644 search/groups_4.js create mode 100644 search/groups_5.js create mode 100644 search/groups_6.js create mode 100644 search/groups_7.js create mode 100644 search/groups_8.js create mode 100644 search/groups_9.js create mode 100644 search/groups_a.js create mode 100644 search/groups_b.js create mode 100644 search/groups_c.js create mode 100644 search/groups_d.js create mode 100644 search/groups_e.js create mode 100644 search/groups_f.js create mode 100644 search/mag.svg create mode 100644 search/mag_d.svg create mode 100644 search/mag_sel.svg create mode 100644 search/mag_seld.svg create mode 100644 search/namespaces_0.js create mode 100644 search/pages_0.js create mode 100644 search/pages_1.js create mode 100644 search/pages_2.js create mode 100644 search/pages_3.js create mode 100644 search/search.css create mode 100644 search/search.js create mode 100644 search/searchdata.js create mode 100644 search/typedefs_0.js create mode 100644 search/typedefs_1.js create mode 100644 search/typedefs_2.js create mode 100644 search/typedefs_3.js create mode 100644 search/typedefs_4.js create mode 100644 search/typedefs_5.js create mode 100644 search/typedefs_6.js create mode 100644 search/typedefs_7.js create mode 100644 search/typedefs_8.js create mode 100644 search/typedefs_9.js create mode 100644 search/variables_0.js create mode 100644 search/variables_1.js create mode 100644 search/variables_10.js create mode 100644 search/variables_11.js create mode 100644 search/variables_12.js create mode 100644 search/variables_13.js create mode 100644 search/variables_14.js create mode 100644 search/variables_2.js create mode 100644 search/variables_3.js create mode 100644 search/variables_4.js create mode 100644 search/variables_5.js create mode 100644 search/variables_6.js create mode 100644 search/variables_7.js create mode 100644 search/variables_8.js create mode 100644 search/variables_9.js create mode 100644 search/variables_a.js create mode 100644 search/variables_b.js create mode 100644 search/variables_c.js create mode 100644 search/variables_d.js create mode 100644 search/variables_e.js create mode 100644 search/variables_f.js create mode 100644 semaphore_8hpp_source.html create mode 100644 shader_8hpp_source.html create mode 100644 site.webmanifest create mode 100644 splitbar.png create mode 100644 splitbard.png create mode 100644 stack_8hpp_source.html create mode 100644 stack_8inl_source.html create mode 100644 state_8hpp_source.html create mode 100644 static_8hpp_source.html create mode 100644 struct_im_gui_vertex.html create mode 100644 structfont__data.html create mode 100644 structglyph__data.html create mode 100644 structglyph__render__data.html create mode 100644 structmesh__locator.html create mode 100644 structobject__t.html create mode 100644 structstd_1_1hash_3_01tz_1_1quat_01_4.html create mode 100644 structstd_1_1hash_3_01tz_1_1quat_01_4.png create mode 100644 structstd_1_1hash_3_01tz_1_1trs_01_4.html create mode 100644 structstd_1_1hash_3_01tz_1_1vector_3_01_t_00_01_s_01_4_01_4.html create mode 100644 structstd_1_1tuple__element_3_01_i_00_01tz_1_1vector_3_01_t_00_01_s_01_4_01_4.html create mode 100644 structstd_1_1tuple__size_3_01tz_1_1vector_3_01_t_00_01_s_01_4_01_4.html create mode 100644 structstd_1_1tuple__size_3_01tz_1_1vector_3_01_t_00_01_s_01_4_01_4.png create mode 100644 structstring__locator.html create mode 100644 structtexture__locator.html create mode 100644 structtz_1_1core_1_1detail_1_1init__state.html create mode 100644 structtz_1_1dbgui_1_1_im_gui_tab_t_z.html create mode 100644 structtz_1_1dbgui_1_1_input_delta.html create mode 100644 structtz_1_1dbgui_1_1_topaz_platform_data.html create mode 100644 structtz_1_1dbgui_1_1_topaz_render_data.html create mode 100644 structtz_1_1dbgui_1_1_topaz_shader_render_data.html create mode 100644 structtz_1_1dbgui_1_1init__info.html create mode 100644 structtz_1_1detail_1_1callback__type.html create mode 100644 structtz_1_1detail_1_1ds__add.html create mode 100644 structtz_1_1detail_1_1ds__edit.html create mode 100644 structtz_1_1detail_1_1ds__remove.html create mode 100644 structtz_1_1detail_1_1format__string.html create mode 100644 structtz_1_1detail_1_1job__handle__tag.html create mode 100644 structtz_1_1detail_1_1no__lock.html create mode 100644 structtz_1_1detail_1_1source__loc.html create mode 100644 structtz_1_1detail_1_1with__lock.html create mode 100644 structtz_1_1draw_1_1_draw_indexed_indirect_command.html create mode 100644 structtz_1_1draw_1_1_draw_indirect_command.html create mode 100644 structtz_1_1engine__info.html create mode 100644 structtz_1_1execution__info.html create mode 100644 structtz_1_1free__list__iterator.html create mode 100644 structtz_1_1game__info.html create mode 100644 structtz_1_1gl_1_1buffer__info.html create mode 100644 structtz_1_1gl_1_1detail_1_1renderer__tag.html create mode 100644 structtz_1_1gl_1_1device__command__pool_1_1fingerprint__info__t.html create mode 100644 structtz_1_1gl_1_1edit__side__effects.html create mode 100644 structtz_1_1gl_1_1event.html create mode 100644 structtz_1_1gl_1_1image__info.html create mode 100644 structtz_1_1gl_1_1image__output__info.html create mode 100644 structtz_1_1gl_1_1impl__tz__gl__device.html create mode 100644 structtz_1_1gl_1_1impl__tz__gl__renderer.html create mode 100644 structtz_1_1gl_1_1ogl2_1_1_format_data.html create mode 100644 structtz_1_1gl_1_1ogl2_1_1buffer__info.html create mode 100644 structtz_1_1gl_1_1ogl2_1_1draw__indexed__indirect__command.html create mode 100644 structtz_1_1gl_1_1ogl2_1_1draw__indirect__command.html create mode 100644 structtz_1_1gl_1_1ogl2_1_1framebuffer__info.html create mode 100644 structtz_1_1gl_1_1ogl2_1_1image__info.html create mode 100644 structtz_1_1gl_1_1ogl2_1_1render__buffer__info.html create mode 100644 structtz_1_1gl_1_1ogl2_1_1sampler.html create mode 100644 structtz_1_1gl_1_1ogl2_1_1shader_1_1link__result.html create mode 100644 structtz_1_1gl_1_1ogl2_1_1shader__info.html create mode 100644 structtz_1_1gl_1_1ogl2_1_1shader__module_1_1compile__result.html create mode 100644 structtz_1_1gl_1_1ogl2_1_1shader__module__info.html create mode 100644 structtz_1_1gl_1_1overloaded.html create mode 100644 structtz_1_1gl_1_1overloaded.png create mode 100644 structtz_1_1gl_1_1render__state.html create mode 100644 structtz_1_1gl_1_1render__state_1_1_compute.html create mode 100644 structtz_1_1gl_1_1render__state_1_1_graphics.html create mode 100644 structtz_1_1gl_1_1renderer__edit.html create mode 100644 structtz_1_1gl_1_1renderer__edit_1_1buffer__resize.html create mode 100644 structtz_1_1gl_1_1renderer__edit_1_1compute__config.html create mode 100644 structtz_1_1gl_1_1renderer__edit_1_1image__resize.html create mode 100644 structtz_1_1gl_1_1renderer__edit_1_1mark__dirty.html create mode 100644 structtz_1_1gl_1_1renderer__edit_1_1render__config.html create mode 100644 structtz_1_1gl_1_1renderer__edit_1_1resource__reference.html create mode 100644 structtz_1_1gl_1_1renderer__edit_1_1resource__write.html create mode 100644 structtz_1_1gl_1_1renderer__edit_1_1scissor.html create mode 100644 structtz_1_1gl_1_1renderer__ogl__base.html create mode 100644 structtz_1_1gl_1_1renderer__ogl__base.png create mode 100644 structtz_1_1gl_1_1renderer__output__manager_1_1render__target__t.html create mode 100644 structtz_1_1gl_1_1renderer__vulkan__base.html create mode 100644 structtz_1_1gl_1_1renderer__vulkan__base.png create mode 100644 structtz_1_1gl_1_1schedule.html create mode 100644 structtz_1_1gl_1_1scissor__region.html create mode 100644 structtz_1_1gl_1_1shader__meta.html create mode 100644 structtz_1_1gl_1_1timeline__t.html create mode 100644 structtz_1_1gl_1_1timeline__t.png create mode 100644 structtz_1_1gl_1_1viewport__region.html create mode 100644 structtz_1_1gl_1_1vk2_1_1_colour_blend_state.html create mode 100644 structtz_1_1gl_1_1vk2_1_1_command_buffer_data.html create mode 100644 structtz_1_1gl_1_1vk2_1_1_command_pool_1_1_allocation.html create mode 100644 structtz_1_1gl_1_1vk2_1_1_command_pool_1_1_allocation_result.html create mode 100644 structtz_1_1gl_1_1vk2_1_1_command_pool_info.html create mode 100644 structtz_1_1gl_1_1vk2_1_1_compute_pipeline_info.html create mode 100644 structtz_1_1gl_1_1vk2_1_1_depth_stencil_state.html create mode 100644 structtz_1_1gl_1_1vk2_1_1_descriptor_data.html create mode 100644 structtz_1_1gl_1_1vk2_1_1_descriptor_layout_info.html create mode 100644 structtz_1_1gl_1_1vk2_1_1_descriptor_layout_info_1_1_binding_info.html create mode 100644 structtz_1_1gl_1_1vk2_1_1_descriptor_pool_1_1_allocation.html create mode 100644 structtz_1_1gl_1_1vk2_1_1_descriptor_pool_1_1_allocation_result.html create mode 100644 structtz_1_1gl_1_1vk2_1_1_descriptor_pool_info.html create mode 100644 structtz_1_1gl_1_1vk2_1_1_descriptor_pool_info_1_1_pool_limits.html create mode 100644 structtz_1_1gl_1_1vk2_1_1_descriptor_set_1_1_write.html create mode 100644 structtz_1_1gl_1_1vk2_1_1_descriptor_set_1_1_write_1_1_buffer_write_info.html create mode 100644 structtz_1_1gl_1_1vk2_1_1_descriptor_set_1_1_write_1_1_image_write_info.html create mode 100644 structtz_1_1gl_1_1vk2_1_1_dynamic_rendering_run_info.html create mode 100644 structtz_1_1gl_1_1vk2_1_1_dynamic_state.html create mode 100644 structtz_1_1gl_1_1vk2_1_1_fence_info.html create mode 100644 structtz_1_1gl_1_1vk2_1_1_graphics_pipeline_info.html create mode 100644 structtz_1_1gl_1_1vk2_1_1_graphics_pipeline_info_1_1_dynamic_rendering_state.html create mode 100644 structtz_1_1gl_1_1vk2_1_1_image_view_info.html create mode 100644 structtz_1_1gl_1_1vk2_1_1_internal_device_info.html create mode 100644 structtz_1_1gl_1_1vk2_1_1_logical_device_info.html create mode 100644 structtz_1_1gl_1_1vk2_1_1_multisample_state.html create mode 100644 structtz_1_1gl_1_1vk2_1_1_physical_device_info.html create mode 100644 structtz_1_1gl_1_1vk2_1_1_physical_device_surface_capability_info.html create mode 100644 structtz_1_1gl_1_1vk2_1_1_physical_device_surface_capability_info_1_1_swapchain_extent.html create mode 100644 structtz_1_1gl_1_1vk2_1_1_pipeline_data.html create mode 100644 structtz_1_1gl_1_1vk2_1_1_pipeline_layout_info.html create mode 100644 structtz_1_1gl_1_1vk2_1_1_pipeline_state.html create mode 100644 structtz_1_1gl_1_1vk2_1_1_queue_family_info.html create mode 100644 structtz_1_1gl_1_1vk2_1_1_queue_request.html create mode 100644 structtz_1_1gl_1_1vk2_1_1_rasteriser_state.html create mode 100644 structtz_1_1gl_1_1vk2_1_1_sampler_info.html create mode 100644 structtz_1_1gl_1_1vk2_1_1_shader_info.html create mode 100644 structtz_1_1gl_1_1vk2_1_1_shader_module_info.html create mode 100644 structtz_1_1gl_1_1vk2_1_1_shader_pipeline_data.html create mode 100644 structtz_1_1gl_1_1vk2_1_1_swapchain_1_1_image_acquisition.html create mode 100644 structtz_1_1gl_1_1vk2_1_1_swapchain_1_1_image_acquisition_result.html create mode 100644 structtz_1_1gl_1_1vk2_1_1_swapchain_image_info.html create mode 100644 structtz_1_1gl_1_1vk2_1_1_swapchain_info.html create mode 100644 structtz_1_1gl_1_1vk2_1_1_vertex_input_state.html create mode 100644 structtz_1_1gl_1_1vk2_1_1_vertex_input_state_1_1_attribute.html create mode 100644 structtz_1_1gl_1_1vk2_1_1_vertex_input_state_1_1_binding.html create mode 100644 structtz_1_1gl_1_1vk2_1_1_viewport_state.html create mode 100644 structtz_1_1gl_1_1vk2_1_1_vulkan_command.html create mode 100644 structtz_1_1gl_1_1vk2_1_1_vulkan_command_1_1_begin_dynamic_rendering.html create mode 100644 structtz_1_1gl_1_1vk2_1_1_vulkan_command_1_1_bind_buffer.html create mode 100644 structtz_1_1gl_1_1vk2_1_1_vulkan_command_1_1_bind_descriptor_sets.html create mode 100644 structtz_1_1gl_1_1vk2_1_1_vulkan_command_1_1_bind_index_buffer.html create mode 100644 structtz_1_1gl_1_1vk2_1_1_vulkan_command_1_1_bind_pipeline.html create mode 100644 structtz_1_1gl_1_1vk2_1_1_vulkan_command_1_1_buffer_copy_buffer.html create mode 100644 structtz_1_1gl_1_1vk2_1_1_vulkan_command_1_1_buffer_copy_image.html create mode 100644 structtz_1_1gl_1_1vk2_1_1_vulkan_command_1_1_debug_begin_label.html create mode 100644 structtz_1_1gl_1_1vk2_1_1_vulkan_command_1_1_debug_end_label.html create mode 100644 structtz_1_1gl_1_1vk2_1_1_vulkan_command_1_1_dispatch.html create mode 100644 structtz_1_1gl_1_1vk2_1_1_vulkan_command_1_1_draw.html create mode 100644 structtz_1_1gl_1_1vk2_1_1_vulkan_command_1_1_draw_indexed.html create mode 100644 structtz_1_1gl_1_1vk2_1_1_vulkan_command_1_1_draw_indexed_indirect.html create mode 100644 structtz_1_1gl_1_1vk2_1_1_vulkan_command_1_1_draw_indexed_indirect_count.html create mode 100644 structtz_1_1gl_1_1vk2_1_1_vulkan_command_1_1_draw_indirect.html create mode 100644 structtz_1_1gl_1_1vk2_1_1_vulkan_command_1_1_draw_indirect_count.html create mode 100644 structtz_1_1gl_1_1vk2_1_1_vulkan_command_1_1_end_dynamic_rendering.html create mode 100644 structtz_1_1gl_1_1vk2_1_1_vulkan_command_1_1_image_copy_image.html create mode 100644 structtz_1_1gl_1_1vk2_1_1_vulkan_command_1_1_set_scissor_dynamic.html create mode 100644 structtz_1_1gl_1_1vk2_1_1_vulkan_command_1_1_transition_image_layout.html create mode 100644 structtz_1_1gl_1_1vk2_1_1_vulkan_instance_info.html create mode 100644 structtz_1_1gl_1_1vk2_1_1buffer__info.html create mode 100644 structtz_1_1gl_1_1vk2_1_1detail_1_1_device_feature_info.html create mode 100644 structtz_1_1gl_1_1vk2_1_1draw__indexed__indirect__command.html create mode 100644 structtz_1_1gl_1_1vk2_1_1draw__indirect__command.html create mode 100644 structtz_1_1gl_1_1vk2_1_1hardware_1_1_queue_1_1_present_info.html create mode 100644 structtz_1_1gl_1_1vk2_1_1hardware_1_1_queue_1_1_submit_info.html create mode 100644 structtz_1_1gl_1_1vk2_1_1hardware_1_1_queue_1_1_submit_info_1_1_signal_info.html create mode 100644 structtz_1_1gl_1_1vk2_1_1hardware_1_1_queue_1_1_submit_info_1_1_wait_info.html create mode 100644 structtz_1_1gl_1_1vk2_1_1hardware_1_1_queue_info.html create mode 100644 structtz_1_1gl_1_1vk2_1_1image__info.html create mode 100644 structtz_1_1impl_1_1concurrentqueue__traits.html create mode 100644 structtz_1_1impl_1_1concurrentqueue__traits.png create mode 100644 structtz_1_1initialise__info.html create mode 100644 structtz_1_1io_1_1format4.html create mode 100644 structtz_1_1io_1_1gltf__accessor.html create mode 100644 structtz_1_1io_1_1gltf__animation.html create mode 100644 structtz_1_1io_1_1gltf__animation_1_1keyframe__data__element.html create mode 100644 structtz_1_1io_1_1gltf__animation__channel.html create mode 100644 structtz_1_1io_1_1gltf__animation__channel__target.html create mode 100644 structtz_1_1io_1_1gltf__animation__sampler.html create mode 100644 structtz_1_1io_1_1gltf__buffer.html create mode 100644 structtz_1_1io_1_1gltf__buffer__view.html create mode 100644 structtz_1_1io_1_1gltf__chunk__data.html create mode 100644 structtz_1_1io_1_1gltf__header.html create mode 100644 structtz_1_1io_1_1gltf__image.html create mode 100644 structtz_1_1io_1_1gltf__material.html create mode 100644 structtz_1_1io_1_1gltf__mesh.html create mode 100644 structtz_1_1io_1_1gltf__mesh_1_1submesh.html create mode 100644 structtz_1_1io_1_1gltf__node.html create mode 100644 structtz_1_1io_1_1gltf__scene.html create mode 100644 structtz_1_1io_1_1gltf__skin.html create mode 100644 structtz_1_1io_1_1gltf__submesh__data.html create mode 100644 structtz_1_1io_1_1gltf__submesh__texture__data.html create mode 100644 structtz_1_1io_1_1gltf__vertex__data.html create mode 100644 structtz_1_1io_1_1image.html create mode 100644 structtz_1_1io_1_1impl__tz__io__gltf.html create mode 100644 structtz_1_1io_1_1ttf_1_1rasterise__info.html create mode 100644 structtz_1_1io_1_1ttf__cmap__encoding__record.html create mode 100644 structtz_1_1io_1_1ttf__cmap__table.html create mode 100644 structtz_1_1io_1_1ttf__glyf__elem.html create mode 100644 structtz_1_1io_1_1ttf__glyf__table.html create mode 100644 structtz_1_1io_1_1ttf__glyph.html create mode 100644 structtz_1_1io_1_1ttf__glyph__contour.html create mode 100644 structtz_1_1io_1_1ttf__glyph__map.html create mode 100644 structtz_1_1io_1_1ttf__glyph__map.png create mode 100644 structtz_1_1io_1_1ttf__glyph__shape__info.html create mode 100644 structtz_1_1io_1_1ttf__glyph__spacing__info.html create mode 100644 structtz_1_1io_1_1ttf__head__table.html create mode 100644 structtz_1_1io_1_1ttf__header.html create mode 100644 structtz_1_1io_1_1ttf__hhea__table.html create mode 100644 structtz_1_1io_1_1ttf__hmtx__table.html create mode 100644 structtz_1_1io_1_1ttf__hmtx__table_1_1hmetrics__t.html create mode 100644 structtz_1_1io_1_1ttf__loca__table.html create mode 100644 structtz_1_1io_1_1ttf__maxp__table.html create mode 100644 structtz_1_1io_1_1ttf__table.html create mode 100644 structtz_1_1job__handle.html create mode 100644 structtz_1_1lua_1_1impl_1_1lua__register.html create mode 100644 structtz_1_1lua_1_1lua__operation.html create mode 100644 structtz_1_1lua_1_1nil.html create mode 100644 structtz_1_1memblk.html create mode 100644 structtz_1_1nullhand__t.html create mode 100644 structtz_1_1overloaded.html create mode 100644 structtz_1_1overloaded.png create mode 100644 structtz_1_1ren_1_1animation__renderer_1_1animated__objects__create__info.html create mode 100644 structtz_1_1ren_1_1animation__renderer_1_1gltf__data_1_1metadata__t.html create mode 100644 structtz_1_1ren_1_1animation__renderer_1_1info.html create mode 100644 structtz_1_1ren_1_1animation__renderer_1_1playback__data.html create mode 100644 structtz_1_1ren_1_1char__storage_1_1string__locator.html create mode 100644 structtz_1_1ren_1_1font__data.html create mode 100644 structtz_1_1ren_1_1font__data_1_1glyph__data.html create mode 100644 structtz_1_1ren_1_1glyph__render__data.html create mode 100644 structtz_1_1ren_1_1impl_1_1mesh.html create mode 100644 structtz_1_1ren_1_1impl_1_1mesh__locator.html create mode 100644 structtz_1_1ren_1_1impl_1_1mesh__vertex.html create mode 100644 structtz_1_1ren_1_1impl_1_1object__data.html create mode 100644 structtz_1_1ren_1_1impl_1_1render__pass_1_1camera__orthographic__t.html create mode 100644 structtz_1_1ren_1_1impl_1_1render__pass_1_1camera__perspective__t.html create mode 100644 structtz_1_1ren_1_1impl_1_1render__pass_1_1info.html create mode 100644 structtz_1_1ren_1_1impl_1_1render__pass_1_1object__create__info.html create mode 100644 structtz_1_1ren_1_1impl_1_1texture__locator.html create mode 100644 structtz_1_1ren_1_1misc__data.html create mode 100644 structtz_1_1space_1_1_m_v_p.html create mode 100644 structtz_1_1static__for__t.html create mode 100644 structtz_1_1static__for__t_3_01_n_00_01_n_01_4.html create mode 100644 structtz_1_1transform__node.html create mode 100644 structtz_1_1trs.html create mode 100644 structtz_1_1tz__lua__data__store.html create mode 100644 structtz_1_1version.html create mode 100644 structtz_1_1wsi_1_1detail_1_1window__handle__tag.html create mode 100644 structtz_1_1wsi_1_1impl_1_1wgl__function__data.html create mode 100644 structtz_1_1wsi_1_1impl_1_1x11__display__data.html create mode 100644 structtz_1_1wsi_1_1impl__tz__wsi__window.html create mode 100644 structtz_1_1wsi_1_1keyboard__state.html create mode 100644 structtz_1_1wsi_1_1monitor.html create mode 100644 structtz_1_1wsi_1_1mouse__state.html create mode 100644 structtz_1_1wsi_1_1window.html create mode 100644 structtz_1_1wsi_1_1window__info.html create mode 100644 structtz_1_1wsi_1_1window__manager.html create mode 100644 structvertex__t.html create mode 100644 swapchain_8hpp_source.html create mode 100644 sync_off.png create mode 100644 sync_on.png create mode 100644 tab_a.png create mode 100644 tab_ad.png create mode 100644 tab_b.png create mode 100644 tab_bd.png create mode 100644 tab_h.png create mode 100644 tab_hd.png create mode 100644 tab_s.png create mode 100644 tab_sd.png create mode 100644 tabs.css create mode 100644 text_8hpp_source.html create mode 100644 time_8hpp_source.html create mode 100644 transform__hierarchy_8hpp_source.html create mode 100644 transform__hierarchy_8inl_source.html create mode 100644 trs_8hpp_source.html create mode 100644 ttf_8hpp_source.html create mode 100644 types_8hpp_source.html create mode 100644 tz.png create mode 100644 tz_8hpp_source.html create mode 100644 tz_8inl_source.html create mode 100644 tz__core_8hpp_source.html create mode 100644 tz__gl_8hpp_source.html create mode 100644 tz__io_8hpp_source.html create mode 100644 tz__opengl_8hpp_source.html create mode 100644 tz__ren_8hpp_source.html create mode 100644 tz__vulkan_8hpp_source.html create mode 100644 tz_lua.html create mode 100644 vector_8hpp_source.html create mode 100644 vector_8inl_source.html create mode 100644 version_8hpp_source.html create mode 100644 vertex__array_8hpp_source.html create mode 100644 vulkan_2convert_8hpp_source.html create mode 100644 vulkan_2convert_8inl_source.html create mode 100644 vulkan_2detail_2buffer_8hpp_source.html create mode 100644 vulkan_2detail_2sampler_8hpp_source.html create mode 100644 wgl__ext_8hpp_source.html create mode 100644 winapi_8hpp_source.html create mode 100644 window_8hpp_source.html create mode 100644 wsi_8hpp_source.html create mode 100644 wsi__linux_8hpp_source.html create mode 100644 wsi__windows_8hpp_source.html 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..17520589fa --- /dev/null +++ b/adapter_8hpp_source.html @@ -0,0 +1,172 @@ + + + + + + + +Topaz: src/tz/core/memory/allocators/adapter.hpp Source File + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.2.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 A(other.get_allocator())
+
32 {
+
33
+
34 }
+
35
+
36 template<class U>
+ +
38 A(std::move(other.get_allocator()))
+
39 {
+
40
+
41 }
+
42
+
43 const A& get_allocator() const
+
44 {
+
45 return static_cast<const A&>(*this);
+
46 }
+
47
+
48 T* allocate(std::size_t n)
+
49 {
+
50 tz::memblk blk = A::allocate(n * sizeof(T));
+
51 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.");
+
52 return reinterpret_cast<T*>(blk.ptr);
+
53 }
+
54
+
55 void deallocate(T* p, std::size_t n)
+
56 {
+
57 A::deallocate({.ptr = p, .size = n * sizeof(T)});
+
58 }
+
59 };
+
+
60}
+
61
+
62#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:35
+
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 0000000000000000000000000000000000000000..2cfa4114b26d501b9676464bb45f915c55b4d380 GIT binary patch literal 7346 zcmaKRcTiK^xAsX0y*H^s2t}HRfJjg10j0cj5ReX$Djfk6I#L5DMN~i{NUtJD3r$g~ zAiV_@gqI$QNd4k(=6*BZH}~E@_Bm(Pe)geAD2(*OWKuZPq!A-(Z` z2NebBX)^Cc2>_r7l%}RJ%GntJL^C2YRFORh-oE>$$uRc1V5W!t#xErklN9vXlO2j0 z*=>TPTMlTS%L$1|rA2#ob*1-}$0RpYGgL=Ik3rv8S8;1F;fot$jfs1NX8xUR)$K)) zMsc@UgD2Sd)&R24*-8GrcyK2S!$iTPg>));g}mWLQ0&-V{;^^A)IF@=G~hriEDNNT z5t_Chuid7u(tuij@%u?nrI1+fuihUNcG%;LjrsxK7s(8?DzaWKCi}gPPIc2={*(=w zMJz_Fx@_jf5ds_a-C@ZMHf42_s()x>!n}otf}RT|I#W{%325lhyP7!&=vU|@Jz?AW zq;l4i2G^6yvvrmBmn@`V&-_7o8MCzTJg!XdwiqWF_(s$DO`5eQ-gh{VWw@qrsnYMVc~jwvj)YnqRaz zRfq&+zD*G6{rsp>*u}yZek`cIY(Eb#nOI^}p776*V9;A6(E)Wvniv4UBM|_=!~(zx zNrYJgfFNlA_}2jdlyU)p!|%n1e^f{l6i#<^wSawK73c_YEcPTxsQr-E0RSK+_;-Lp z-@t=OLdrlr18vF`a&|WAYx*zgy8(cUSx-ydEOd73W!O{miDwC&mRPaMqCL+hp1kk(ble+tW==dY&w$@(;eV33^mOuB9kMF*CDk zWfXC0xp9?qCY4_}7g#QemoF~-ZVw+(+-cvhTCsUzyVSbl|M=Ht`0(N>WfTI+LL{%39_FC%cMd#jU zVK;2gC$%s(4(U(P&g`}19-Pug_ERIpJv;{tvd16>%E$C{On)w*@rL&IWm~7Wsg$+OdSVkd5ktQvXY8iSB=&^E9+|KTDzd`0EUb96XF@D%18XXx$ z`*g}jw|huZfvy>}wwX^A!G^fCtLn1r+7;~3K%70tfU5bC8N86dD@*M89^P-|oiF%?Yao9(kOK}sZKMem z1bU`2Too#;-!q4D&G2n9$=*96OA9)F0!5k_8$nNie zB4{~ZEL*k%cPZD_$fxNp#0e0W8L1#8P^nP!1+$Y#B21B7VP>863BeX{+x-pk0S^xx zZ^#4pzB6=UHH&2XSB2-vb;)#B!xscof19@3B5?XHnq5ELY$|WG>QP z=FZ$#mzC~aXVuFQpng0eL-?Aq;|}#x9UWNF1bqTaH=u9TFBKfNdud-r-%j+>yve~! zZYCBIqXy=d=_t6s3t-00@p-@?VTaDv_2TpMPhUF;R~b_L_g!Ru-2EA6)id6o?U7BV zV_25%e|+~v0-_kh54#yMDM`^JVTi8C$ZeTlOQ*Wm!*Jj(+_y_k;O6DST5}*=I??<> za9nz74f(2AO_g@j#+TGC{N5MO_prHV@(T31kZ;XQQ5EbCa01_^cftf{M66~jSce zryoNt$Q?8a?5E+5FZJ&3-EpztbvbRZ!re&Xm1v-mq)=-L^;NxDwj*x|;y{0$0?^KT zr)t2eM9tNtO2ZX>eg}={jUDw&N^j$2Uaa*?-YP06@q4)B$-#W%bZj*g@>9ER{^)W} z2E10T!fsDh*%0bWhP_KrYqE$MBxe%yJ(Jn(T$5!TFQisH8}nH|SDks|c-mdIRiiFFyt;J_IFAM&3)dV zzb4M6_P6HKN8Q03v|&kv5nA~>*hP4B7re`%`&*I0I*P)*js_N1swTDbXF^Ht>zuH~7h z1u4>SrMX^w)3c&BFx7oY&{Xz9iOf%1jUSdqsoIjI656?sr5=Y1 zO*=@QaIYCZxi4KFrTAem#VpKmGC(9CfgNMia4m)u7K zJo{fU9T7DgD>G;1#wP-YOx)a2r+b2QV8yQ;+)s2^Og*UN7@BE22L)H5*U#m?nSAKD zZ~c`rGI%Yad5HeOKnva*F@mc=!2VJyu}go(eFj};oMoW+WkN{#=i>|V6f^r%`4b)I zCWSa~_pF8m=BCTiC%9NEcJ=*G(&ospf(PCVe4ur+EYG}<&uZr+er}ZZSbkLXvv}bZ zOx}3{s8iiZr(ini@ew?ixOr|ZX@{JYT@yQ4IP$v5cdVCri4evhY%jd*8HT`_S z(Veu3to8(iKnfzbOvh7dvIKOXk)3mEjdjS&I4)4~*gJZI5~{;hounL5!W|jf%H7Nw z_DX64GF!|)7943fA7=ydf()x$fbSon1LTT*Bd1d;UF=lOu6EQ4Z%2cicZT9PI&~v* zBEz%IkKY;a{5LlOJg5#uFLDESrJ1*^=y3g84Gk*hm>>UvPq2D0yiT#Lg$Wh6`152{ z6-OP)mdpS7+&5>v6Hbm(?uk3TEmDs8gh5@iKl55les`^l9?5X*dh8CfWE=$ZEqvI$ z@?8sqJGajwytic80WtR4xlo`(9AHk5zw?+%4(ryFA~Zc8iU1+l&rN7vmu!#RZ%UIuQkt-*4eG9UFp=5@Ny9 z6^LQUW&iox`l&L!=b3Hb+mi(yV=1{#JH{U`V|FVl7A5*m*Q14E_-U*_u%gk({>o+A z;wV|tg#-U`zbIW&xBM;9sk=ZNS2CN^Br}KA?~98&`$T?7E(7z>u~)DUIfuYfD3m0^ z=Opo|msRP5+9aC$3aTHa;?V*UfSx;A^!4qx%w1qy%}=K(qi#Pbn)e)n(Oj`P%e?7i z`OlU|#PG}2zSDjjyT14)4GK7J{OXCO5bx|io0M-5@PqL2)aDSCy(n!_r3bmYrLPAhd0f89Ej#)Ksa7f7pv74DEhKGFPAl91*{n)EZM;cHcnV>f;f`cq zA8GzJv=74l{`EV`=Zmxl%}LY0D<22ehNN@^svg=Bnf%CWZ>DxJid6#{xE4#l&Q^b@ z6S~|{kO;FvZEDC%lV}mlxNDQ6qOLECPLn))n4iHpv{Lzq$?2lR@#=1EPk4~_u#ti0 zEtbU(bZC2sTgiEmHJ27VI#xhRTRM&NbfkaqHV@hh?X|~EGhoVk$=Fv_(0vEL1PVe8 zUtpsESZOb#0L*Vf_rm4ibi()hQF|ZxjUxEjiOe=bXNlm>v*dBUGwfFyhegWg8Nx@D z&0_F*p7yAv;Iqnr{-ij>rbiM^jj_kTa`$(}-570ay2t%ekR&3VNxetDPa^Gy$;)6V z|5yJ|S0YG;mgDk~3q^$13RQG5a?#>rH6=1;CbY|Y|E#H|EFo@6WP^qh2hxvroaIa| zJn|W_#E*CD>cGH!6tCT!kM#nh0(2YJK;u;`)1*1I^4PuOcqtY>kyw=IeWx<4zk0k| z(*1ItageQnW)tG0aW~a_j9v^oDZ@4G^@q=UU*!ZFsBpra-1t`Wg8{B%Wrokf0uYS0 z>(4Av4ZE96hB<#$+D(hS{?-2tbJm}-`Ex~vQ*Xaly*PIl)zg@ECedrrj7&iz?+@FN zdq=s=$%B|S9Vx!{i(^NK-6PU| zZ{o~1&u7_)LVxUX#2vEZ6CGqthTSC29q!|v8ueHN_^y2Xgy(-YH3=)DY|2gJ^u6`~ zl}RC`QOGMBb*D}+n%hOUSU*hkNZ=w5!Exv6i9J#^>RfVR%1p@hqn=(BD@aSD=rbM; zd(~haz?>ut>M6*u&GY}xaPUjoos^BNW$95KO~l^hf_L>B<5%1z5L%FQvfEb2Ulwz} zB}R~PEVFCKGRrdSU~;?6#S*0$W+YP>{~O~fMe&#+N5I$&BCnBVgUe~pPB6~Z$)WNE z8lHwkP+G5QvISh0j{Kxpek&I^ zyr6~p>qqeTU7bmC5UOu4{mf*So-aAsh(au)8Y6hto-LoZCGf^~{1D$x|85J6ir-)3 zz^C_1@s?{mfBV4b_I=#J+%-e>Cd9te_sbXzt4v#tB3>BpHAMzb-~eMRB)YbQ^6N4) zan0d;Nm-^Nd5m7B9cO78OQvFCt(bgf=Fphi|ABeCOx0~k;}YJ+8%5o3eJrJ2%NhCR zp5;$lk%})hdC1rK`?c4SEWwG=WMZ@Z-I2B2;{?4hQTgPtDvk@;lb6{7YvbCP^(@CB zlE40V>>2`Y?9m>q*!`#Cfi=Z(#MU$+(#*Kupe2dh8 zjh1n`S%zyy!4hp;U%EB<^NcOy{Fw@ral-4pXHPD}0bNqz_8u0rY#*nl*v5v49l>m5 z2+J9K0DmHtU0esUWj6*X7Y#=b6=?^?#d1TK_$lF`q|1!h-gtjTSmc-c4^{jUiN>3P znO8+xL@Xmq?cSvcpEo7QVpR&vN!6=b8#~a*(sc*7ROiT9GVy-QCg|11uMFVX3Mw`W zYnIVC9Ub`4eyhjPQmyR@(3t2T=pT6Dn8g3`o6X^4m4YGIT^&Q)zYMe^;fKq&6SLm_ z4!wb)8erz1mTQ%#(_JF|U_Fzi@=brSvTo>lh88usnRBH9`vC44)ZS;z0!}>OX=g>f z%e7#c@E`=PyxS0?_ng3GmzHL|`f+-{cIlu{R9^!a{gN(uExM5y_p$K3gnXHueve6VmN}^&xdsz3=2oF^vlJ(T z>*`TMyRYCfB~v4c+DADCYbY-;oe56K#yCG+hR%;!!<<&&Hp0m#4vo*$_)2hUqB^mP zt>A`PvLd;8y!yzpZ_Ex$`t5E9I1ko8bwx^ThkZ2L}blP__$| zOAP-P1Q73rdrV-aSt{Zpi_i|+ve~!msHH&tcwIzOmLS@=v9Ck$$4wUg6r%;@nmb(G zHDa4uJPXaVt~kl$IS{A0ZOD2#1&*OPdqqJI7y4R-(=6b175J;)#s#%#M)>qXOUBdu zzJH88MU!YxLFen;tr6>fh;#cBZ;Pj?08EAa?(5nszfQ4(HiseAXi29qZk{wPB{*-A zm9Fp#JI?vw#GmWT*bSWcjd5PrvB=o+?gNYr-6M|Q&zwlip9-!9=*`5NtzHj2yJuQj z2?45PbbTTAHwc1K2;Zs`sj-l8cD?IHBhaw9eVtyyuB&KzGhBb>ufNp-H$Na}L+o9v z9#|#ZGi?{jF15ov6kTj(-f{-&b&@tETUr2?gxXw|(ly~Ld9lXeW{9~FNA8m<-pwnR13p+5O zkzeMbouk)uXJ`PMH~RCK*ZSh!%%Zcgxl!-QZ@Y0Ha*o^=b}xpXJpiQ0+@3zj%+Id> zkE>CBZf$)Tze$4%jXDVD=(|ZDNu1;OCsbH>8gsvlFYlitaH8Ms&lXV`Ynt)D>vn>P z^0nqOhb?c&Q=)_VQNAXl@>LTjIhj5r3ma44+?_FutT_{!EN_xT|2z6iAV^)KP{F^&j8Xkh$3fE@C(>a* z_p(daK9DPWS6)?*CmrA?*aH9eP#~03+RKZuS-^)P~%_zATD3Y!|#a#=D4)`;uTo7?``L@f-UNu!mXNhVr##Dr3+o6j#PvWW~|F% z_{D93jEJIq?2Do_&L@j1Cz_dut5fw?XI#f@UTrhdZ4&BT6W_YK`4tFjYtsTYhdhx_ z)5e7vG@G<;IU1{;XqF2}>iWt}#hqoB8add!H6v~^sskkNRYO$f&hGQS)zL_5D`U>c z3*(A==CbO{{Kz-9D9|hHMAGlN@K`6@Ga9gwWkuCb*mr(4&B)ZCAOHGm-Lr);^3Jg= zYKbW4ezx`UevL#lKu1b2G-tG9f2zFEMI@RGkbIFgcDN1c64s>SPFd;KFX8s7vD&6G zk79-Om=F-b=pp<>|7VXtAcV5xIpN1xqlJM}m=bm&Yso(bEfY&}3?>9m3Y9$QvS(Z1 z6ZQ0aiv{iav=Ggi1>%9Z%LttALLLGN925_R2kJkldLD0Sp(=f?>yQ=Gk#V^Mv{58MCPF8>SRJLc6r2Ie6Ah zNEe_&jPU$O4ucKRgoAQYF@LXDzolB2r_jRp?9w2sD> z)a~Vs$jp6=eRxbg?Q@*@l2`^3SJtPn?7wpGTh;s)WlWI5!cU130Y#&>z4Yx2da0vF z^ft));XtV4_%)JQcS6o+%0i^VHemN4AR&Ar!TV>V122oeM`-@!T-if8fyk7`*Lj#q zxe(x94`GTGV$As-de}+!LrPBe*dlXc-e=6#msFCu2tSW)^kfu*Qb9?-cHZjJc%+Gx zm`G}{cutTUF9F)BW`t1KGDteQaidn52b;BM_hlnsvizag1S$UI2~*)^+%PrduaeI; zhL9(kco}tIJ2Y*i6=~GhG4ucf1#$*|1b9w_B$77dqRE6&Zh~>WPR5=rV925YUZ%Wt zcz5dOU_8@U(Spp?Q2O>2)PLJv_}_$u#A9@i;#-{|LF=caehF8gwpE~}ueZ0WPavS_ z@9G%n>H-Zx1$sbr^$d(HqZl|yAmP6t7t)lH^M4S4jI_+n>(aNb%iJ`RkyescRFYMc zkS2XdTT=)=`F|F8`?{dq!v5z4qWAJ|krwd$)j;aVDLMQ4h54i0N$zVL$7z41Mu~NJsV1LR9pN(ZHbIiU~j_NGs(`%PPovCyR}Y6{>}i>v16yY%qfk oOn>X|9qi@pr5wN@3-zUde>s=~i5j<_kyHSB+J;)y8V=F_2WaC~*Z=?k literal 0 HcmV?d00001 diff --git a/android-chrome-256x256.png b/android-chrome-256x256.png new file mode 100644 index 0000000000000000000000000000000000000000..79803dfe5e983a3c4e05957c240b68b8ad24e016 GIT binary patch literal 9742 zcmb`tXHZjL_%6CrAcWq#B!tj=lipiEq=^b5f^<|MbdZunk=~-HC?{p_j=2E-nCbbn~MVvrz9r;06dNu zTMqyLv2H;C2RrNQY|N7o){oS18ymOqz(4>{BBl||Fg=#ieSRnMP$G>9{Luq$_tdg; z4V^^t{O`XIITNqdw!?K-53Q_Gc;({Tw?%#bUCnE*slo#Wdn-(_mD29xs=v?xi4)?cVbN zjT3KUV9nR>3%Uw92%oG@m0fM>PR?sS^R)4s*&f%`Hp&J&E(`P3AB7o+~n(@gq^Bl`F>>72Gci+Iyt^+o%uY)j!^N*E_XCpZa;`z%UKa`SNv(2aDy%7g0``o|`ti*KwHg=<5uh$=4X7DzD>DmN}4t7?0xs za9IHW@EHKG&uYRi13D-um!e(MW8eBeDy_E3ml8_ zjs*Y>xqlx}(nE^`RwFFV@wgpqflWjhuIO}+ryBrJ5stQ2o=HFc+)FO^JDJR!X%22` z4g%Q#JfI*V%KGFbJ2%VcFS}H7BWmTVT7P9;d6DZCeKAkKKvaOuTLmSYXJ-pV+kX$x z1}n&_$;!&Y;on1a4ye@rScNu;P@S2BR7%HEc}gX9bz${d@~1nLw#3e**oxQ+9_}8k z|AQ<0io%T0z;*R!>yq^08~8*}8e3YN>P8BA@IBv6nJ(5yG^_z0uz(U~i%qy&rNKI1n+t)<|j* znR^6cvcGvs-rElW1PHF+4(0w=KoonSQqqv7!_ixcoQ$cdu)k)6{5$Mt?KbmpMjO!! z6J~@t&Wb1wJ&0oUWQH+;3Nm9G-U}n^IK7B;+C~mUFGi5!_$tkSxEhIKEoT3Tx-J{Z zGlb}HcC<5vw`%eHP!t$Hk8qU?$`$*<;=mhlf6by;K0+Wq@zK9OWh1FqESm8q@o6c9s3OmRuz5I6to+8Qq7!XL zmZa*$S|(q5pbRcuebM70Rvo?}Vlv8|Doo=Xk$J{ps|plGfulBQds6&DFJM&_$g1Ak z^to)!$>PM#GYbEDZtXxGXaEq6|qB1P6<-P9N!tW?c8x^D4cz3A{Z-?jHO zaWDm%$VN?nn*jvJ^D%prGusJxRr~rPb`t?g<=cF}9|ZjNp~LSM_c5J@WBCd`6W)gx zg4SiK>_3R-OVgx!<&E@@3b2Hv50EDHlxc+jvjAtFwpP;->O5qwfE1Y9 zGrdi>so^mcndbcgPlYj8zMQ}x!?)D=8r~MqKyrex61Uj@y%K6YJwSf>W2?B4(*W`N@XS`_03{?5`r__&)@kIK7bB%5xsXN-AOc$r+ zP+;QSUU49oYy9N^x;xDeF1?y!-ZKJQ>Bb2y;zqyb1_YyOOxV$HK(g%K9Xu0?w&VU- zFxgOCd40v?8%`+?e{eI9S@`=T%5t-fuQ-5{|$ znjsC*o4E=?OBZKqAITkt+*G`CY=*(LCBSZf|hgDlpm*v0ju z*zG(eC*m9%=?^0iznxus-RYjQto5+f%=4*$92{M+eem7^kk=A`~qR}_@X-w#dK zeUaUTem45JOvYB6Vq~9SGio%@h;O)lHFK;`IP?4Tk~V2l?DHQ6OfK~0ou5A~(^5IT zo{5haRkGg-ejwrLPB>f+JeoTT?OoOHyUmd#z{+T$avH?bDal)LUwo-Jjws9h0g21! zigsMTU@g**Wsdi>6Y>b}&26i&{~TCSP;&3|HH+xWokiw!su#63v%-cLP$sz!lKFec zS|VYMP)^PGrBx2B;rWu?x-6Du?Y4%+)piV2A6+pv3L{bHSF7MT!fDZ?r!4QY+=4kr zcm^l2UDvI55X9%d+tb=N=G=zss$i91$kkag%8r!9hBc1aMnLjL4sJX~ir@?0edp`T z{8fur#fPR@Sl*N7DnC096IB2rsZnxu<+O*S9?osVtfs%D1c5&u7M9D6PG6@YA5N^g%x-EU>nKMi!v>1s6NabxLSFnrL}B3*&qZTk5r4B$TUh@FZ+2Z z{IwEn(o?(WU#pqmfMT267A8zVN$QLa0tK~D9Pog>)@I2jlKtHL0m$jY&v2Nbt0j-u zO3D`JBC><+-I6@GjRWsPKS2Z|8qe;_KLu%4<;_`K!>&s94#|?Dom@!>;;nV<(fs-Q zsk~u>Hqb3o@JHJ-$^8R22gK}S3oY2}td3P{gvf?Os|fa4Q+5vl&b!1{D{ZYeby@4) z!BuEf?`45k{En!nlVEK7m}hrwsF%Vc$R8(Fq^K*&?OpMSjkD)ONoBeBV*m z<;fu1vM5gI`rm_qnH%-MaV5#@*MTHNwxU{+k^{=&vrV%w;Ug4ze!mh!V>90(i<9F! z72O4f9DWI4O_x$w>`rgYPp8@Km-D~rJ4Kemm{Gk}pcU@<&t%1L2?u`MSyf%a2izXB z>ZdeNJsJ0F)$k$czlW$vLzc-G)wF@>7XaVqNUv)hm^&2Y&TBmV-Q^%1CS26gLFC! zdD>DQfZv`O_2{!Bh(+H@8>^} z%|Sht#2IhLCaUd@i_MK>vE9BlO(eBTNU9=Vvb1B0lN~Ujl{yXlD@xCPsm=3}lq!Tq zLd(qIYScqOA{sT;70~qpRrM11>5wdHk$pwubSu;HgHeC!wi~-b^^*>AA&3gJ?4{$m zjUs zYC>)OGI&VT>rMYe;mB9;XWQsz5zxny%R2Rc?JvK+En8uF^e$nEP>^%MB0icLuSob3 zUFt+nmexntFM0bS)k3f$g+vnpDL{6D$nF_T=T0b4YU5x>I+QO z(vK|3K3vm}Alp0;Q4Tc_dm3@)g1?HwNAofk39hqtI`7M!zk9eNvB5_=a%6DvxlHOi zVY>9nwT4Pc))QnRg!)hh-Oe0c3)7QK(O(TEHqo~~uQ96XVQ!F4SSq)2v$RP)>|8}c zv91XddTEnotpy|hlV`SPqM_JQ3Ty!X6%$YPd*n;65(Zjq{>oj`)7Uy>*Qt^)l%6Jr z;orrK@f_(OHNCjXa?s2z&uC+=)?+4KzCv2(6=t|h{~W06VRW}pic0VPqD~S_QY~!z zlB8)(F>B{ZMy!knNr$O{N7fi4{^}`;;I0^ZV9X$Iv?bDw5JD`_(i(Qk4R*Y}K z%X3(v2IqDf%+FTzEME9q{v8QSvL??kP|3;_A^}oklC?hCua2~-7j+On6^*9Uz53h$ z7^;$^$@fTyoik1lJ=sqR9={T*K(iL?eZ7Fk*V8>-#Exz)iS7hXO=hQ1yFk$* zK3{3O@-*qocummv+Ej-}U~(;ydT;I-nw)tK>SW&uZKKKh z`7H<7LIck7FM)JR`tcNq6l>vfOy*zdF5zrBKyc7+QebWkY&5YLPJ>}Ppj>2xEfv(N zP;YQUE=%@Kp`@sLAw8Slo6Gd!)FGdu3&;@B%KId^6UUSJ8bGw? zteh^OA4DC0?L|e_4RkG#q=okm!{7U|l-I(0ff4NAmJaVoXmhnCN4RH`RA%2CaNImc z7L03T22M|SagLkvmghbg$;q@)y3nOn)Iyw>lVwY^**!rZZr*EhM zL!8T22^03t9d9J~%5&D!BCPH{$xy?}juB=%&aM0sNgQ^kBk&(>mJQ05z2~iBnZb zbBhO{%=7RK$C(@APHy1h25_X+m5hpQv&XW|)*7WAzij=5_9Ks;e8A_$xuY_T(}mZs zQ4z!;@3(f>*yRBvikw028l3?zy_X_%l-wqaKghmVFTU+waw>6=NyJPuM_Qp?!q-&DVoI9?z-7d_u9M24=~fUWcIt=PO)2`|O>hSGQ$D>k{8 z((EQAv|q!F@Nfza!{F78pHn zv42YGlTcpZCo!S887wLn&HIkGlk1X41#{S%vvvPbrL-|^(J>#qAsi5Jtytd>PuyPRHVqs#CW3c(xjXZ+i z<0JDLfFHXv)s!hRaOi33(S>^hVncuW z&R)5C3375Af&YxRF&#>ipMBIRr|=n9{6r0ZzLndEmsX3|u=3B`630RWm)wFy!3GbH z%qK7*8&U^dqK;?U&EEC#32>2$=kVVYE7@>4oqN4DUY=xKlHkHRPI%*t>-M@$ZsE`M zm2F+wGpwjF=40~iq4uiS9IeAod4W`kog62hi%k@CANifYjLxR*Zyhob8j-T!rV%JH zU_t{-MP4&V8_Bgzdw9X}SHhb}^k1`H!7#f9a2xPNi;I@s-{!}uR+PMH1BW8tvTCIY z^LB|e*xgT_x=K&j>7v>XR~6j6GgkhUUWAU2vZ{H!+n-=o-+$65H2YLUEk6Qtvq`*u74CO*#~2CBSi<_ zHL0a55drRB4%uhK-s_PY{?Qz&-q&^*O}@cyg<&EA@6pIjN0V#gaMfdQd^7kP()>r6 z^0&TM7FzBS!aI6jjW}!VM-|`t0_!e~$1N@wXX=abyZ_VG1@Ld@c!Q72UQybpc6GpU zw+iQkJ^`}=`!Mm%kxiypp9gu{()GKjMTsXMSZmLzCwwP^q?M&MOTkH>#@=5|NcxqL#b>>L`E#!yQ5FK%>@g{BLf2%Q#2eMn zAG|)&2y5kyHn~YG$j&>}qn8_A*CtrXHFe@|AD@T--u4^$E9S8ExDjsNa7Q2f8s1`d zxw_U;Gg9|`*Prp2nm4o#woajXPiw&c@lelckj2Nnxe&SZK%QfuuOK7re(~MpyMbP+ zO$ST9dn;gnQ189jvdj-0z$Gz|(!1$fKaMOf-+xnqKZjXj#4a&I$Q)b4jMZzu)zY7o z0%#@F^5Q4bfnacTA=xpVCkp_E}fb__I#hTPX7V88WJ=NMM5J zy~^io(q)6kUMsdLD>b={*hQSlhG-M@Fp9nNZh}j29~A$mA1^aMxS!ng{PPUwo6Hiw zpq9YDf{Dc9$Q`lT8^rQlHSZ$N+}A{!`ZH%O5EgAqRvoybKX`Qb1fk3AHDnxVz9Zho zH%>cYrF)%ODRNODai*Zew9kM?0e}lS+H4QJ`Z__t7_E4+NWL~YN7 zd)hw2(o^Z>CMqJoO(Ye7p3iKlw=OlaPg>oS0-|5>u3FkqMaH88t7?H$oPl0I@_hga`-x+h%#yq*Z)JNg&R~^#0pCg58H{ zrq@n~$aT|G?yuba z>EVgl8GROXlpvf-x4YW)m@P*av+y&x$vU!K-!%8Zn^RU(`9FPP zI2#-wmD7B2le4Z_aD3q|No+K0dA;C4-^*t3EfAHK4w7S)iQX%W6h$rfy|$}3zGIum zbKsUvQ`%L0E7-|_=X5>)S{ZSUNcWwcSJL$#X2y%G6hmEc;M5| z`x5{+C zCZ98~HK!3Y{$JKOIO=3C1fWA(r$6hS%k`W(evMUVaWwcHu{dWlRr}PUU;Ky=UK;a- zFA1@Ga(kL98vdv|homw;@$2dVftOW%i`!EU#vZ%J;r=c-CEkYfQpJs0_@Gj&Pq%2&<(+i{(x zfN*~S$!P5iG{J^NBOkYNzm4>-9-|{xD`L?V)-e!kjr22;&HyJ;0D)ygf#u{koozkN z>f>&I!nnEpYy%y+I~>hQ##p*W`kFV{nXGYaQ=MH1AMjK*dK(c)TW&i=K3+p_N5?=S z6>*?tTSQ_5Oz@L|^s{1K=foe~n!G}Iu%oBoYw%MAJ?R?+$jx<<*noxqqWjLmz+H(p ztKSar`Va0a+90J;+eI>_0Ui{N-CSJT%+zv79OCLLJDl>KHgNICv3UVyKv4x_w3mO&-MuWm|rKp zeoQop6BE2ta@n#_20>L1iJ!2U~Ox5UCU+Rt{-Pj+y>+@}O4Rtv2r*PVRual*NJC1D@kSa*WTkp+?;=D=$Cwv`5yG+|$md*pL*&KKldToS7T9Znh5EOdj^wtp*-No&WdZzaL~_Kb5t9d6JzjZQhmYW+)(QM#a`4CtlErh>*LrHx9WKDUZnQ30% z>S?eL{pgA@_9ph2KJ))lgOwR1rKV(a9No-Gre2>fkhlCAN9YmLoF|)G$DW7R+ja zp2#F>#~d`w5F^yBF+U^YKcD%~-ccL$L_u{g zR@Gm%;avjr!g;XUabxW6-V~E!dwEAfqz76R@GqwQ9UfL4Clz!qg$NhHE#p`G9Z18U zmp`OS5d*<)zA`pCP>{J}f^SBCHcJ6yPG09*->$@gE-8_>(5fF(xp99!J-AkSUOe;v z-eupn$E0mtkL$^Y$g|F(NW|HB#o0tfLe-MCqg6)T`uSUB@hu66dscN|1F^8 zQ>M=nkoq?Q>$H<`U=%hvCOkAO4seSPxD+0Uw2g{5A0GLNsO`goq5d~4C^$ASCL9|V z9u*1vQxq8xAATuLJv)~MS9BL)RLW}%wbj10{_>l8~aq%(1G5-U1t||KL7dD8;R5@t?zr_UN UwygDUvW5U0?Obf@to^V2FLp + + + + + + +Topaz: src/tz/ren/animation.hpp Source File + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.2.0.1 +
+
C++20 Graphics Engine
+
+
+ + + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+
animation.hpp
+
+
+
1#ifndef TZ_REN_animation_renderer_HPP
+
2#define TZ_REN_animation_renderer_HPP
+
3#include "tz/ren/mesh.hpp"
+
4#include "tz/io/gltf.hpp"
+
5#include "tz/core/job/job.hpp"
+
6#include <map>
+
7
+
8namespace tz::ren
+
9{
+
+ +
24 {
+
25 public:
+
26 // represents a single object (this are the subobjects that comprises animated_objects)
+
27 using mesh_renderer::object_handle;
+
28 using mesh_renderer::texture_handle;
+ +
30 // represents a single gltf.
+
31 using gltf_handle = tz::handle<tz::io::gltf>;
+
32 // represents a single instance of an animated model, based off a gltf.
+
33 using animated_objects_handle = tz::handle<object_handle>;
+
+
34 struct info
+
35 {
+
37 std::string_view custom_vertex_spirv = {};
+
39 std::string_view custom_fragment_spirv = {};
+
41 tz::gl::renderer_options custom_options = {};
+
43 std::size_t texture_capacity = 1024u;
+
45 std::vector<tz::gl::buffer_resource> extra_buffers = {};
+ +
48 };
+
+ + +
51 // update positions of all objects and animations.
+
52 void update(float delta);
+
53 // blocks the current thread until all remaining animation advance async work has completed.
+
54 void block();
+
55 void dbgui();
+
56 // add a new gltf. try not to add duplicates - share gltfs as much as possible.
+
57 // this is an expensive operation, especially if the gltf is complicated - you probably want to add these ahead-of-time.
+
58 gltf_handle add_gltf(tz::io::gltf gltf);
+
59 // remove a gltf.
+
60 // please note: any animated objects that use this gltf will also be removed, meaning those animated_object_handles become invalidated.
+
61 void remove_gltf(gltf_handle handle);
+
62 using mesh_renderer::append_to_render_graph;
+
63
+
+ +
65 {
+
66 // which animation is currently playing?
+
67 std::size_t animation_id = 0;
+
68 // will this animation loop until cancelled?
+
69 bool loop = false;
+
70 // how fast does this animation play? 1.0 means normal speed.
+
71 float time_warp = 1.0f;
+
72 };
+
+
73
+
+ +
75 {
+
76 gltf_handle gltf = tz::nullhand;
+
77 object_handle parent = tz::nullhand;
+
78 tz::trs local_transform = {};
+
79 };
+
+
80 animated_objects_handle add_animated_objects(animated_objects_create_info info);
+
81 void remove_animated_objects(animated_objects_handle handle);
+
82
+
83 // API get for gltf
+
84 std::size_t gltf_get_animation_count(gltf_handle h) const;
+
85 std::string_view gltf_get_animation_name(gltf_handle h, std::size_t anim_id) const;
+
86 float gltf_get_animation_length(gltf_handle h, std::size_t anim_id) const;
+
87 std::optional<std::size_t> gltf_get_animation_id_by_name(gltf_handle h, std::string anim_name) const;
+
88
+
89 // API get for animated_objects
+
90
+
91 std::span<const object_handle> animated_object_get_subobjects(animated_objects_handle handle) const;
+
92 gltf_handle animated_object_get_gltf(animated_objects_handle handle) const;
+
93 float animated_object_get_playback_time(animated_objects_handle handle) const;
+
94 void animated_object_set_playback_time(animated_objects_handle handle, float time);
+
95 std::span<const playback_data> animated_object_get_playing_animations(animated_objects_handle handle) const;
+
96 std::span<playback_data> animated_object_get_playing_animations(animated_objects_handle handle);
+
97 void animated_object_skip_all_animations(animated_objects_handle handle);
+
98 void animated_object_play_animation(animated_objects_handle handle, playback_data anim);
+
99 bool animated_object_play_animation_by_name(animated_objects_handle handle, std::string_view name, playback_data anim);
+
100 void animated_object_queue_animation(animated_objects_handle handle, playback_data anim);
+
101 bool animated_object_queue_animation_by_name(animated_objects_handle handle, std::string_view name, playback_data anim);
+
102 void animated_object_skip_animation(animated_objects_handle handle);
+
103
+
104 tz::trs animated_object_get_local_transform(animated_objects_handle handle) const;
+
105 void animated_object_set_local_transform(animated_objects_handle handle, tz::trs trs);
+
106 tz::trs animated_object_get_global_transform(animated_objects_handle handle) const;
+
107 void animated_object_set_global_transform(animated_objects_handle handle, tz::trs trs);
+
108
+
109 using mesh_renderer::add_texture;
+
110 using mesh_renderer::add_object;
+
111 using mesh_renderer::remove_object;
+
112 using mesh_renderer::get_object;
+
113 using mesh_renderer::object_get_local_transform;
+
114 using mesh_renderer::object_set_local_transform;
+
115 using mesh_renderer::object_get_global_transform;
+
116 using mesh_renderer::object_set_global_transform;
+
117 using mesh_renderer::get_compute_pass;
+
118 using mesh_renderer::get_render_pass;
+
119 using mesh_renderer::object_get_texture;
+
120 using mesh_renderer::object_set_texture;
+
121 using mesh_renderer::object_get_visible;
+
122 using mesh_renderer::object_set_visible;
+
123 using mesh_renderer::get_camera_transform;
+
124 using mesh_renderer::set_camera_transform;
+
125 using mesh_renderer::camera_perspective;
+
126 using mesh_renderer::camera_orthographic;
+
127 using mesh_renderer::get_extra_buffer;
+
128 using mesh_renderer::get_extra_buffer_count;
+
129 private:
+
130 // query as to whether a gltf handle has been removed before and is still in the free list.
+
131 bool gltf_is_in_free_list(gltf_handle handle) const;
+
132 bool animated_objects_are_in_free_list(animated_objects_handle handle) const;
+
133 // advance all animated objects. invoked once per update. may run on multiple threads.
+
134 void animation_advance(float delta);
+
135 void single_animation_advance(float delta, animated_objects_handle h);
+
136 tz::gl::resource_handle get_joint_buffer_handle() const;
+
137
+
138 // represents a single animated object.
+
139 struct animated_object_data
+
140 {
+
141 // gltf nodes map to objects almost 1:many.
+
142 // nearly always its a direct 1:1 mapping, but if the node has a mesh comprised of multiple submeshes, then it maps to a single object with children with each submesh.
+
143 std::map<std::size_t, object_handle> node_object_map = {};
+
144 // each animated object owns a part of the joint buffer.
+
145 // the next 2 variables comprise this owned region.
+
146 // at `joint_buffer_offset` indices into the joint buffer, an array of object-ids can be found (of size joint_count)
+
147 // the i'th value of this array represents the object-id corresponding to the i'th joint for this particular animated object.
+
148 std::size_t joint_buffer_offset = 0;
+
149 // if joint_count is zero, then this object is not really animated (this must match the joint count of the corresponding gltf skin).
+
150 std::size_t joint_count = 0;
+
151 // which gltf is this animated object associated with?
+
152 gltf_handle gltf = tz::nullhand;
+
153 // list of all subobjects comprising this animated object.
+
154 std::vector<object_handle> objects = {};
+
155 // list of all animations queued up to run.
+
156 std::vector<playback_data> playback = {};
+
157 // how many seconds have elapsed since the currently-playing animation began?
+
158 float playback_time = 0.0f;
+
159 };
+
160
+
161 // represents a single gltf.
+
162 struct gltf_data
+
163 {
+
164 // the uh gltf itself.
+
165 tz::io::gltf data = {};
+
166 // some metadata, most of these are to help add the textures/meshes properly.
+
167 // dont fuck with these.
+
+ +
169 {
+
170 std::unordered_map<std::string, std::size_t> animation_name_to_id_map = {};
+
171 // does this gltf contain at least one skin (i.e skinned mesh)
+
172 bool has_skins = false;
+
173 // one entry per mesh. represents the cumulative number of submeshes processed while iterating through the gltf meshes.
+
174 std::vector<std::size_t> mesh_submesh_indices = {};
+
175 // one entry per submesh. contains the associated material for each submesh, or nullhand if it doesnt have one.
+
176 std::vector<std::optional<tz::io::gltf_material>> submesh_materials = {};
+
177 // maps joint indices to node ids. animated objects will know how to map gltf node ids to object ids
+
178 // the shader will need to be able to map joint indices to object ids, hence this intermediate container.
+
179 std::map<std::size_t, std::size_t> joint_node_map = {};
+
180 } metadata;
+
+
181 // list of all submeshes within the gltf. note that a gltf mesh does not map to a mesh_handle, but each of its submeshes does.
+
182 std::vector<mesh_handle> meshes = {};
+
183 // list of all textures existing within the gltf. no information about what they're meant to represent specifically.
+
184 // the gltf_materials contain more information about these texture ids.
+
185 std::vector<texture_handle> textures = {};
+
186 };
+
187 // in our constructor we could have extra buffers specified.
+
188 // however, as an animation renderer, we also have our own extra buffers we need to add before the other extras.
+
189 // this method combines them.
+
190 static std::vector<tz::gl::buffer_resource> evaluate_extra_buffers(const info& i);
+
191 void gltf_load_skins(gltf_data& gltf);
+
192 // populate all the topaz meshes (and some metadata) contained within the gltf.
+
193 void gltf_load_meshes(gltf_data& gltf);
+
194 // populate all the topaz textures (and some metadata) contained within the gltf.
+
195 void gltf_load_textures(gltf_data& gltf);
+
196 void animated_object_expand_gltf_node(animated_object_data& animated_objects, tz::io::gltf_node node, std::optional<std::size_t> parent_node_id);
+
197 void animated_object_write_inverse_bind_matrices(animated_object_data& animated_objects);
+
198 tz::vec2ui32 animated_object_write_joints(animated_object_data& animated_objects);
+
199 std::optional<std::size_t> try_find_joint_region(std::size_t joint_count) const;
+
200 std::size_t get_joint_count() const;
+
201 std::size_t get_joint_capacity() const;
+
202 void set_joint_capacity(std::size_t new_joint_capacity);
+
203 void wait_for_animation_jobs();
+
204 void dbgui_animations();
+
205 void dbgui_animation_operations();
+
206
+
207 // list of all added gltfs
+
208 std::vector<gltf_data> gltfs = {};
+
209 // free-list for gltfs, to re-use gltf_handles.
+
210 std::deque<gltf_handle> gltf_free_list = {};
+
211 // list of all added animated_objects.
+
212 std::vector<animated_object_data> animated_objects = {};
+
213 // free-list for animated objects, to re-use animated_objects_handle.
+
214 std::deque<animated_objects_handle> animated_objects_free_list = {};
+
215 std::vector<tz::job_handle> animation_advance_jobs = {};
+
216 int dbgui_animated_objects_cursor = 0;
+
217 };
+
+
218}
+
219
+
220#endif // TZ_REN_animation_renderer_HPP
+
Definition output.hpp:43
+
Definition handle.hpp:17
+
Definition gltf.hpp:298
+
A superset of mesh_renderer an extension of mesh_renderer.
Definition animation.hpp:24
+
A lightweight 3D mesh renderer.
Definition mesh.hpp:490
+
vector< std::uint32_t, 2 > vec2ui32
A vector of two 32-bit unsigned ints.
Definition vector.hpp:258
+
Definition gltf.hpp:52
+ + +
Definition animation.hpp:35
+
tz::gl::ioutput * output
Optional output. Use this if you want to render into a specific render target. If this is nullptr,...
Definition animation.hpp:47
+
std::string_view custom_vertex_spirv
String representing SPIRV for the vertex shader. If empty, a default vertex shader is used.
Definition animation.hpp:37
+
std::vector< tz::gl::buffer_resource > extra_buffers
A list of extra buffer resources. These buffers will be resident to both the vertex and fragment shad...
Definition animation.hpp:45
+
std::size_t texture_capacity
Maximum number of textures. Note that this capacity cannot be expanded - make sure you never exceed t...
Definition animation.hpp:43
+
std::string_view custom_fragment_spirv
String representing SPIRV for the fragment shader. If empty, a default fragment shader is used - disp...
Definition animation.hpp:39
+
tz::gl::renderer_options custom_options
If you want more fine-grained control over the created graphics renderer pass (such as if you want to...
Definition animation.hpp:41
+ +
Definition mesh.hpp:179
+
Definition trs.hpp:8
+
+ + + + diff --git a/api_2component_8hpp_source.html b/api_2component_8hpp_source.html new file mode 100644 index 0000000000..ba4c5e098e --- /dev/null +++ b/api_2component_8hpp_source.html @@ -0,0 +1,159 @@ + + + + + + + +Topaz: src/tz/gl/api/component.hpp Source File + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.2.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..d12f4c48f2 --- /dev/null +++ b/api_2device_8hpp_source.html @@ -0,0 +1,202 @@ + + + + + + + +Topaz: src/tz/gl/api/device.hpp Source File + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.2.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
+
40 template<renderer_type R>
+
+ +
42 {
+
43 public:
+
44 device_common() = default;
+
45 const R& get_renderer(tz::gl::renderer_handle handle) const;
+
46 R& get_renderer(tz::gl::renderer_handle handle);
+
47 void destroy_renderer(tz::gl::renderer_handle handle);
+
48 std::size_t renderer_count() const;
+
52 const tz::gl::schedule& render_graph() const;
+
56 tz::gl::schedule& render_graph();
+
57 void render();
+
58 // Derived needs to define create_renderer still. They can use emplace_renderer as a helper function.
+
59 protected:
+
60 tz::gl::renderer_handle emplace_renderer(const tz::gl::renderer_info& rinfo);
+
61 void internal_clear();
+
62 void post_add_renderer(std::size_t rid, const tz::gl::renderer_info& rinfo);
+
63 private:
+
64 std::vector<R> renderers;
+
65 std::vector<std::size_t> free_list = {};
+
66 tz::gl::schedule render_schedule = {};
+
67 };
+
+
68
+
69 #if TZ_VULKAN && TZ_OGL
+
70 // Documentation only.
+
+
75 class device
+
76 {
+
77 public:
+ +
90 void destroy_renderer(tz::gl::renderer_handle rh);
+
96 std::size_t renderer_count();
+
103 const tz::gl::renderer& get_renderer(tz::gl::renderer_handle rh) const;
+
110 tz::gl::renderer& get_renderer(tz::gl::renderer_handle rh);
+
111
+ +
117 };
+
+
118 #endif
+
119}
+
120
+
121#include "tz/gl/api/device.inl"
+
122#endif // TOPAZ_GL_2_API_DEVICE_HPP
+
Bespoke free-list implementation.
Definition free_list.hpp:121
+
Device API.
Definition device.hpp:42
+
const tz::gl::schedule & render_graph() const
Retrieve the render graph.
Definition device.inl:40
+
Implements tz::gl::device_type.
Definition device.hpp:76
+
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:139
+
Implements tz::gl::renderer_type.
Definition renderer.hpp:431
+
Definition handle.hpp:17
+
Named Requirement: device Implemented by tz_gl2_device.
Definition device.hpp:21
+
Named requirement for a renderer.
Definition renderer.hpp:374
+
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
+
Represents a render graph.
Definition schedule.hpp:35
+
+ + + + diff --git a/api_2job_8hpp_source.html b/api_2job_8hpp_source.html new file mode 100644 index 0000000000..2d36dd1ba0 --- /dev/null +++ b/api_2job_8hpp_source.html @@ -0,0 +1,169 @@ + + + + + + + +Topaz: src/tz/core/job/api/job.hpp Source File + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.2.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
+
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
+
std::function< void()> job_t
Represents a job.
Definition job.hpp:28
+
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..0148e66a04 --- /dev/null +++ b/api_2keyboard_8hpp_source.html @@ -0,0 +1,146 @@ + + + + + + + +Topaz: src/tz/wsi/api/keyboard.hpp Source File + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.2.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, _count
+
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..4f1b54c273 --- /dev/null +++ b/api_2monitor_8hpp_source.html @@ -0,0 +1,132 @@ + + + + + + + +Topaz: src/tz/wsi/api/monitor.hpp Source File + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.2.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..714015e12c --- /dev/null +++ b/api_2mouse_8hpp_source.html @@ -0,0 +1,161 @@ + + + + + + + +Topaz: src/tz/wsi/api/mouse.hpp Source File + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.2.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..75c3f9a929 --- /dev/null +++ b/api_2output_8hpp_source.html @@ -0,0 +1,176 @@ + + + + + + + +Topaz: src/tz/gl/api/output.hpp Source File + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.2.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
+
vector< unsigned int, 2 > vec2ui
A vector of two unsigned ints.
Definition vector.hpp:244
+
tz::wsi::window & window()
Retrieve the application window.
Definition tz.cpp:129
+
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..1de0e9a32b --- /dev/null +++ b/api_2renderer_8hpp_source.html @@ -0,0 +1,480 @@ + + + + + + + +Topaz: src/tz/gl/api/renderer.hpp Source File + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.2.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
+
+ +
59 {
+ +
63 points,
+ +
66 };
+
+
67
+
68 enum class graphics_culling
+
69 {
+
70 none,
+
71 front,
+
72 back,
+
73 both
+
74 };
+
75
+
76 namespace detail
+
77 {
+
78 constexpr std::array<const char*, static_cast<int>(tz::gl::renderer_option::Count)> renderer_option_strings =
+
79 {
+
80 "No Depth Testing",
+
81 "Alpha Blending",
+
82 "Render Wait",
+
83 "No Clear Output",
+
84 "No Present",
+
85 "Final Debug UI renderer (Internal)",
+
86 "Hidden (Internal)",
+
87 };
+
88 }
+
89
+
+ +
95 {
+
+
96 struct Graphics
+
97 {
+
99 resource_handle index_buffer = tz::nullhand;
+
101 resource_handle draw_buffer = tz::nullhand;
+
103 tz::vec4 clear_colour = tz::vec4::zero();
+
105 std::size_t tri_count = 0;
+
107 bool wireframe_mode = false;
+
109 graphics_topology topology = graphics_topology::triangles;
+
111 graphics_culling culling = graphics_culling::none;
+
112 bool operator==(const Graphics& rhs) const = default;
+
113 };
+
+
+
114 struct Compute
+
115 {
+
117 tz::vec3ui kernel = {1u, 1u, 1u};
+
118 bool operator==(const Compute& rhs) const = default;
+
119 };
+
+ + +
124
+
125 bool operator==(const render_state& rhs) const = default;
+
126 };
+
+
127
+ +
133
+
+ +
139 {
+
140 public:
+ +
142 // Satisfies renderer_info_type.
+
146 unsigned int resource_count() const;
+
152 const iresource* get_resource(resource_handle handle);
+
156 std::vector<const iresource*> get_resources() const;
+
157 std::span<const renderer_handle> get_dependencies() const;
+
158 std::span<const icomponent* const> get_components() const;
+
165 resource_handle add_resource(const iresource& resource);
+
169 resource_handle ref_resource(icomponent* component);
+
175 resource_handle ref_resource(renderer_handle ren, resource_handle res);
+
179 void set_output(const ioutput& output);
+
183 const ioutput* get_output() const;
+
187 const renderer_options& get_options() const;
+
191 void set_options(renderer_options options);
+
197 void add_dependency(renderer_handle dependency);
+ +
205 const render_state& state() const;
+ +
213 const shader_info& shader() const;
+
218 void debug_name(std::string debug_name);
+
222 std::string debug_get_name() const;
+
223 private:
+
224 std::size_t real_resource_count() const;
+
226 std::vector<std::unique_ptr<iresource>> resources = {};
+
228 std::vector<icomponent*> components = {};
+
230 std::unique_ptr<ioutput> output = nullptr;
+
232 renderer_options options = {};
+
234 render_state renderer_state = {};
+
236 std::vector<renderer_handle> dependencies = {};
+
238 shader_info sinfo;
+
240 tz::vec4 clear_colour = {0.0f, 0.0f, 0.0f, 1.0f};
+
242 tz::vec3ui compute_kernel = {1u, 1u, 1u};
+
243 std::string dbg_name = "";
+
244 };
+
+
245
+
+ +
247 {
+
+ +
252 {
+
254 resource_handle buffer_handle;
+
256 std::size_t size;
+
257 };
+
+
258
+
+ +
263 {
+
265 resource_handle image_handle;
+ +
268 };
+
+
269
+
+ +
271 {
+
272 resource_handle resource;
+
273 std::span<const std::byte> data = {};
+
274 std::size_t offset = 0;
+
275 };
+
+
276
+
+ +
278 {
+
279 resource_handle resource;
+
280 icomponent* component;
+
281 };
+
+
282
+
+ +
287 {
+ +
290 };
+
+
291
+
+ +
296 {
+
298 std::optional<bool> wireframe_mode = std::nullopt;
+
300 std::optional<tz::vec4> clear_colour = std::nullopt;
+
302 std::optional<std::size_t> tri_count = std::nullopt;
+
304 std::optional<tz::gl::graphics_culling> culling = std::nullopt;
+
305 };
+
+
306
+
+
307 struct scissor
+
308 {
+
309 tz::vec2ui offset = tz::vec2ui::zero();
+
310 tz::vec2ui extent;
+
311 };
+
+
312
+
+ +
314 {
+
315 bool work_commands = true;
+
316 bool buffers = true;
+
317 bool images = true;
+
318 bool rewrite_statics = true;
+
319 bool render_targets = true;
+
320 };
+
+
321
+
322 using variant = std::variant<buffer_resize, image_resize, resource_write, resource_reference, compute_config, render_config, scissor, mark_dirty>;
+
323 };
+
+
324
+
331 using renderer_edit_request = std::vector<renderer_edit::variant>;
+
332
+ +
368
+
373 template<typename T>
+
+
374 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)
+
375 {
+ +
381 {t.resource_count()} -> std::convertible_to<unsigned int>;
+
387 {t.get_resource(r)} -> std::convertible_to<const iresource*>;
+
393 {t.get_component(r)} -> std::convertible_to<const icomponent*>;
+
399 {t.get_output()} -> std::convertible_to<const ioutput*>;
+
404 {t.get_options()} -> std::convertible_to<renderer_options>;
+
405 {t.get_state()} -> std::convertible_to<render_state>;
+
409 {t.render()} -> std::same_as<void>;
+
416 {t.edit(edit_request)} -> std::same_as<void>;
+
420 {t.dbgui()} -> std::same_as<void>;
+
421 {t.debug_get_name()} -> std::convertible_to<std::string_view>;
+
422 };
+
+
423
+
424 #if TZ_VULKAN && TZ_OGL
+
425 // Documentation only.
+
+ +
431 {
+
432 public:
+
436 unsigned int resource_count() const;
+
443 const iresource* get_resource(tz::gl::resource_handle rh) const;
+
450 iresource* get_resource(tz::gl::resource_handle rh);
+
451
+
456 const ioutput* get_output() const;
+ +
462
+ + +
482 void render();
+
496 void render(std::size_t tri_count);
+
497 };
+
+
498 #endif
+
499}
+
500
+
501#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:338
+
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:139
+
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:431
+
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:14
+
Definition shader.hpp:26
+
Definition handle.hpp:17
+
Named requirement for a renderer.
Definition renderer.hpp:374
+
Definition types.hpp:67
+
vector< unsigned int, 2 > vec2ui
A vector of two unsigned ints.
Definition vector.hpp:244
+
vector< unsigned int, 3 > vec3ui
A vector of three unsigned ints.
Definition vector.hpp:246
+
std::vector< renderer_edit::variant > renderer_edit_request
Represents an edit to an existing renderer.
Definition renderer.hpp:331
+
tz::enum_field< renderer_option > renderer_options
Represents a collection of renderer options.
Definition renderer.hpp:132
+
renderer_option
Specifies options to enable extra functionality within Renderers.
Definition renderer.hpp:34
+
graphics_topology
Specifies which primitives shall be drawn by a renderer.
Definition renderer.hpp:59
+
tz::handle< detail::renderer_tag > renderer_handle
Represents a handle for a renderer owned by an existing device.
Definition renderer.hpp:27
+ + + + + + +
@ points
Points. Each vertex constitutes a single point. 1n length.
+
@ triangle_strips
Triangle Strips. Each group of 3 adjacent vertices constitutes a triangle. n-2 length.
+
@ triangles
Triangles. Each set of 3 vertices constitutes a triangle. 3n length.
+
Definition renderer.hpp:20
+
Definition renderer.hpp:115
+
tz::vec3ui kernel
Represents the compute kernel, which contains the number of workgroups to be launched in the X,...
Definition renderer.hpp:117
+
Definition renderer.hpp:97
+
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:105
+
graphics_topology topology
What kind of primitives are you drawing? Defaults to triangles.
Definition renderer.hpp:109
+
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:101
+
bool wireframe_mode
whether wireframe mode is enabled or not. Defaults to false.
Definition renderer.hpp:107
+
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:99
+
graphics_culling culling
Do you want culling? Defaults to no culling.
Definition renderer.hpp:111
+
tz::vec4 clear_colour
Normalised RGBA floating point colour. Defaults to {0.0f, 0.0f, 0.0f, 0.0f}.
Definition renderer.hpp:103
+
Stores renderer-specific state, which drives the behaviour of the rendering.
Definition renderer.hpp:95
+
Compute compute
Compute state.
Definition renderer.hpp:123
+
Graphics graphics
Graphics state.
Definition renderer.hpp:121
+
Represents a resize operation for an existing buffer component.
Definition renderer.hpp:252
+
std::size_t size
New size of the buffer, in bytes.
Definition renderer.hpp:256
+
resource_handle buffer_handle
Handle corresponding to the buffer to edit.
Definition renderer.hpp:254
+
Represents an edit, setting a new value for the compute kernel for a renderer.
Definition renderer.hpp:287
+
tz::vec3ui kernel
New compute kernel workgroup dimensions.
Definition renderer.hpp:289
+
Represents a resize operation for an existing image component.
Definition renderer.hpp:263
+
tz::vec2ui dimensions
New dimensions of the image, in pixels.
Definition renderer.hpp:267
+
resource_handle image_handle
Handle corresponding to the image to edit.
Definition renderer.hpp:265
+
Definition renderer.hpp:314
+
Represents an edit to the fixed-function renderer state.
Definition renderer.hpp:296
+
std::optional< tz::vec4 > clear_colour
Clear colour.
Definition renderer.hpp:300
+
std::optional< std::size_t > tri_count
Number of triangles (primitives)
Definition renderer.hpp:302
+
std::optional< bool > wireframe_mode
Whether triangles should only have their outlines drawn, instead of filled.
Definition renderer.hpp:298
+
std::optional< tz::gl::graphics_culling > culling
Culling method to be used.
Definition renderer.hpp:304
+ +
Definition renderer.hpp:271
+
Definition renderer.hpp:308
+
Definition renderer.hpp:247
+
+ + + + diff --git a/api_2resource_8hpp_source.html b/api_2resource_8hpp_source.html new file mode 100644 index 0000000000..fc55da1bf8 --- /dev/null +++ b/api_2resource_8hpp_source.html @@ -0,0 +1,227 @@ + + + + + + + +Topaz: src/tz/gl/api/resource.hpp Source File + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.2.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..4fa044007c --- /dev/null +++ b/api_2shader_8hpp_source.html @@ -0,0 +1,159 @@ + + + + + + + +Topaz: src/tz/gl/api/shader.hpp Source File + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.2.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..48aa737644 --- /dev/null +++ b/api_2window_8hpp_source.html @@ -0,0 +1,192 @@ + + + + + + + +Topaz: src/tz/wsi/api/window.hpp Source File + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.2.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/apple-touch-icon.png b/apple-touch-icon.png new file mode 100644 index 0000000000000000000000000000000000000000..15b2e08ca31f160c780d06cc654c4de3f2a34524 GIT binary patch literal 6930 zcmZ`;cT|&2vkx^Ogx*C73B4CVdM}|#@4XZ05PA;+0cjD02qGOt5m2fK7$wp~q)P9C z6d_arDc-!_Ip00!-tXQ&_Sxsm{APE~%+AivZo0`mUC<4V8vp%fxEi{00QVZv@)zmjq|g!`9lcvn{c||ev=XrREC^B^Fx>NW@fuE ziFe0TMR#}v#j=sUA3x@NewqBRsh*}D2|goQ-Powwgz#RA3pS$;mfN}Td&+x@L>iT! zESh|YO=P~nKD)cgwh4uQfF#n9(`munYM#Nwy_V&>_g2<+9P_=SN-si>1*7taRM3&x zTdCTe>Pk)Ut*58yJ#{>SxSzN+a>v{=^v>HaflnXOP$^0Kd6*sHT;1MGe+&UOJt}7~ zX4GY}tc>N}dHX5qVUu0$oA1i!RLN2PykEnLpeT1rN*-fIG&BOw-Vy^_3vz!QJ%@K4~H3qK;=S0%Bw zn{)ODG?i9O&Ds5+*jyqPtDh_C1Ul>iG>tnvVA(&O3o_lnUa-fR)39}tMNiEy+Fi)S z0i-4-4?#ge6q(F|F$-%8$|YS_F*TD*w2G4i7g=}Vwc2ElAY0RS=RKaD7| zS~Z+N1S0f|w1Mkn%uJO0`X!)Ggb{-EwA3vkXLn0to?1?Z^?m3uCygZ`CwWnZOe`v! z@Q&rtehkp3^H-Ik1uFOl&{= zujx2ce12XI#-4ZtNrh%T7&RZ{l=e;9@k0UjoDu zV=!sWJ@3mv<4FmCXobk#=jhV83Y&L7<*}ySfm%;4iGm(Lauz|Id&^hGfOz7}6VdyD z$N;#L32K<1Th$h>95+`-vv8>TY63Jw3af7nVP4I8uOV z(8$yf3zzZR)8XIjK`U?CEl0Ykm@`%v7X5wqLu6SOJMuMaTuPDS+aK@WoXZ#O2|m*_ zBFWRc3W<9Cny#V}9CF$RE)=B~d|tt{ zQf_P^Os{8l&jdT18}-=@WJ~39{U4~XwhLCC+GPYptXa(OCSABODA@1sU=7&oyzlHA zEia3V(fmZpj=obpoG4C_3037=Kz+(^;%9LGRja`Vk)4Mb-tMBG`HnCm**9H|4GNSF z6Y?<_S^_KTT1oGxu6A^@*9#i-g5Se9_Q=A$8f$uT{bvoZuU|C5#<9f2sb7LUu zut~3tsSxH6H`cyl>{IF~8RB>N;h5a5D5oVCTyQcs0*u2Lgb`wc8dzQ-Tw zp+qO(-4+k{6Wf^P!um|FysG5xk&_D@Zng#e?0&c!y)3L&+N`|`S(hVi2L&g14(J?j zoE)L~@pc=rJS`cOWRU`EEhpN;JZ4Lt`bHys3a1*6uIoNiAFA0L%1vp#g1&e?{!!o$ z371e6jBr+nqIL`$1RtM!%8Uc!4sd~qh01jY zh~%#^cQKPwZ(SB;0jeG5ftMWYrGVG(B0 zfP{>_s^9EYz%p?$bvwN~77W#2SeofWRhK^uX~d4|8@>{Ms5fDJ?cgFJQEzeEzv7r^ znf|hcUWFPCy6k)039AmECqZsqiscweRp-24o#CQ`vW-u#hq&n*%)i6ieK+zfs31N$uW1 z&#$9}eun~O4oOy)(g)$o-y~{z>zTTTS@U51qR_ncPsF=6g+eY z!U=<_wojp|0S{S9kla^yY5&yN4UC*PbyFV8gdbJ+mja>k&Bn7y#pvGiH&IPStEJ4) z?G~)#nRtXMJG(f2`Z+)`7dflsr+)4tEJ9$n5E~ibEyOk4*bBHA|J!EMTtklItht)oKD-_4(qdf;0JUWt6U+I|d#6DZ=zO$q7&D`!VWoFtmgWStHr%kmCM_PgGj=q(<3gVh(m8~I_ z(iUvxSuYe51EH2Hw#H^cK{S$CY+r%1nbfQ=S!Ef_yZmv~hlz1@&%?xkDxk~yG1ixn zNAsv?u6@w5>i$ul3X99W4 zB=Nhhakfn)^0y{}Bs<`?@FteCr8~|NGU~+wUBIpFzj1F_Pw3pD)$Gytxet@3q#jD- zfhr`Q;)OvUqxTu4?baTdg?85QRcs^O2K)ISqe%{bF>bJ7{enoW~hB)~^&MnGAhc zMt^b-=kUlgU!@4+^~(x(|I-K7&&i>X2W!mADOH?}%dOyfLe_wF^5Ry7J)PPTv%%jzM?e?A+s4@Mb^0 zaeW$+7)lgH8EF*Xc$_j$;jeYYa+r&GytKySCQ_Xmjx)3KUCfrjan@iEl|<>owkMa} zj7{1Azi|fcLWo?#AmYI_fA+LV5k%FZ) zqGe~t52dcu5;m@a3wkPp17oY8sf4~H~gEATCnMTDqVzkr7QaOV@AI(p%}^!}|v zFXKPKxHNmJI?@6`9CZ+A?{$S}zvgmLU4WX`<1U?vudw_@^hbNA%mBY5--*=fW|Bw@ zX3vT*;dbEl&m!I2QI?l1r10fRi!1pbBh{Y|E;4n!1s5K4FN%Hp#k~=QosGGjViED) zL-KIGSyfn4vlrQ_-xdJuMg|PKyvx*8EyM@(`3@kXun#kKqPg=vI=p2&xGVn6Y-pKV z!@lC0$Sh#*#*FaS^6T1V+B3}X zmz6S|nVdc{$P1EufleJC=(bfA%RzB_@P=c0z@0;Tk0#w`vNuPpYYd6ABN|hg2_`*) zPmoz5@%cS0CncLV6!N6lYJIZZRabXkv@T??!@?qX_!c&)97s9y4=*CX8%?|_DGu28 zW##4*fo?^1&o2*2l5z?=%8J|EYw;K8Twvm@K@A($#VpJIp9NGQ+&&NI67BVth$3i$ zI^P<=oobkTY{-VJoniz#AgereSMx``ixf`7)lnQSlx99R&S}W7Ye@nVVNz)9x6jK}#$(V!^o&9p52& zb4F|^3&ZV=Y>lKj6A4*Hv+x5nnF_`nH?wo&nwaCPN7rC&Kab+Dg-PF)(%C}@+qv~m*purD#Z28@k1aON%s`NMn3Mkro{{UVN9o(XZcJN1`Rl{(4T-+ODj zkz}>^hJ|loHF3Y@iZ9Pi#)^F=Z(J&mP4N`|uo|&K@7_YK@PhcjbCGBas*PR#d{FrP zXiPi*Bd6l|cbJ~%N;=;CZ^}fypp&2AoCc+-PYd7}_4teMp*~JYUDv3)!~7)+S!rl9 zA#YKNG4K?!)gkHw;JRqgNW3do$u2Lvj=$7VUy)9-jc|%A$H?|DO99W6JcpGB9yw5P zbWA{1v=nsLxHJz3<-Viigr!066P<+`j9%e;za^eTu}WJcm5I(KmO>Vn^x0DDai$~0crpnq_u-s_1ECp=SOsdUrOf^ z6ME%9uOt;TnF(ee(!GorJaWn;T6_*ud=$y=FtR0T`r}*QBZrY)*q`4N77dv4K{8ND zMf~k8AR4jxlhmz<#SY%5dG_Q3#lU=mx!$vYA)TTze65$HCWvCzjquoRM#I$GO}%2&a^QaH`;3OKhl7XEdA zvDZ0M<3;L!u6$c_o4&2$z`GDE9lX zk&)`#!9@GK$Ga3Ybmlc4q%B!~!nVIF8q`WrOvJu6qz=Ye>FoCnM;2_dy9d|VaEf&+ z)*jx1arv0w$O6mbL(+!#nH)^g6Rl;=?_&}sn6=AW2r=5Mt4J$LV0#Lh ze>(a{`Z*t&|N3}SZZys)BOzRdp>_>6w%f!Y%WXs_W2ix6v5Lu>APac$d6Qa3$Y&F> z4Ma!d{3ZW-&`GAA1@tCNY33B6&LMVlVNewQy(Ex6H1u@_`+b{{5$%bl^wSt>oW%p- zvFz#WbHRN9g;$$&KgwH~MEebki&&&5+6iHkJ76EIyT)31v2{;syo&SDP%JwcbJvo6**@_b{esp82}XGVBMaQ^FNFFB_J!h} z(%5bFRx<@2wa`lLEIm7%4Ka44QCj~V;rF2iJNJNWQ*m(E7t@9uW!~i_%-NCYTlwE=zB%{)^e(=^FD)= zoje1y^Q0o4pLF^;OqoHI2Zt-(|qm#Xfn$BR;Y_thC%> z#)|k-y8Er34DMk&<(3NeDgImO3oVSt3YHy)*8z%zWB>BGv_TfwP|X9PCe!xDp>8&l z45U|L#*k|J*7EE7JkD8_>{~! zVbDm|W!Wr2A5JOdCW@MYP;|)UfIpE(NpO~*-QCGWv+LOcFYTgs*I^x_Nu0hvL(Zy= zk!9~)D~{*-N6&P$hIkcM>7WA+my)c8k2-Jsx#sd z19Z63!(Wj+D|a{VaTt@TWT4LNTntddcwUMQiUpm4g$%zX_*ixvPcd5yJt1i}p?_04 zlgpAzvhq_XAOrH+3d$Qio}~Fbhui24&HL?0tWz(~Z5BV9;#D8vm8e*xxV$AnGvK~v zgH+L9N~^!Kt;Hkrjzo^GBJ_^>h=MHGh*44B(W8ZG9P@aw7gNEs)k}k027iXrZC)bIeE@0ZRH=&?~_O&Mp%9`?PNNo`5&=C5ioO5RS{YtI&pE zPh{DGWZ`D5WhnZcU{XFMGQ1C;JA?debK@7~md+ni_4jL_j0nL6)Wj7TCmrc7K=^Q2 z+lzX3h#zxMLQlF|Fclf7m}H$8q0zBISQTx4mA<@#(Ks%KAT7FPXdOjoe#8QzVXeCX z;mAn3`%E|TG;Lms`(H%4mA^!x7t+)ABSV>l`*?PQwhclv(BI!P00Gbp@pMIadVnL~ z2p_Pno{@=l5)CT>#QP7(gTPX7{}%!vB_Sm#Dj_2(C21igp&%izAT2K}LHLodC5NW} z4*~x`54cy<|1Th5Uo1lqxcScvgclzL_rRd25V*Gw0$>v6<_C8NYX$nd!UI~-lJ*1` z1r5yt1}YN%>PFFy9R`Lxw<35LOetM z1vh+_J4gV~{5K%b!_yD&kEp$io+g1~9c^KQFmsIn2ZaQB!TmhJh^Qb>FkwQ%n^fe} zwL@x(U@HNELE|q&dh2EY5-63JI~608(IAhBgb}Qjc&EpM1lnW){xUt$j~l{q;(%Wg dVP*PafNfTK#G!`FW5N^wJ?(p1^%^e7{{r#5tr`FT literal 0 HcmV?d00001 diff --git a/basic__list_8hpp_source.html b/basic__list_8hpp_source.html new file mode 100644 index 0000000000..653acddc80 --- /dev/null +++ b/basic__list_8hpp_source.html @@ -0,0 +1,353 @@ + + + + + + + +Topaz: src/tz/core/data/basic_list.hpp Source File + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.2.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:35
+
+ + + + diff --git a/bc_s.png b/bc_s.png new file mode 100644 index 0000000000000000000000000000000000000000..224b29aa9847d5a4b3902efd602b7ddf7d33e6c2 GIT binary patch literal 676 zcmV;V0$crwP)y__>=_9%My z{n931IS})GlGUF8K#6VIbs%684A^L3@%PlP2>_sk`UWPq@f;rU*V%rPy_ekbhXT&s z(GN{DxFv}*vZp`F>S!r||M`I*nOwwKX+BC~3P5N3-)Y{65c;ywYiAh-1*hZcToLHK ztpl1xomJ+Yb}K(cfbJr2=GNOnT!UFA7Vy~fBz8?J>XHsbZoDad^8PxfSa0GDgENZS zuLCEqzb*xWX2CG*b&5IiO#NzrW*;`VC9455M`o1NBh+(k8~`XCEEoC1Ybwf;vr4K3 zg|EB<07?SOqHp9DhLpS&bzgo70I+ghB_#)K7H%AMU3v}xuyQq9&Bm~++VYhF09a+U zl7>n7Jjm$K#b*FONz~fj;I->Bf;ule1prFN9FovcDGBkpg>)O*-}eLnC{6oZHZ$o% zXKW$;0_{8hxHQ>l;_*HATI(`7t#^{$(zLe}h*mqwOc*nRY9=?Sx4OOeVIfI|0V(V2 zBrW#G7Ss9wvzr@>H*`r>zE z+e8bOBgqIgldUJlG(YUDviMB`9+DH8n-s9SXRLyJHO1!=wY^79WYZMTa(wiZ!zP66 zA~!21vmF3H2{ngD;+`6j#~6j;$*f*G_2ZD1E;9(yaw7d-QnSCpK(cR1zU3qU0000< KMNUMnLSTYoA~SLT literal 0 HcmV?d00001 diff --git a/bc_sd.png b/bc_sd.png new file mode 100644 index 0000000000000000000000000000000000000000..31ca888dc71049713b35c351933a8d0f36180bf1 GIT binary patch literal 635 zcmV->0)+jEP)Jwi0r1~gdSq#w{Bu1q z`craw(p2!hu$4C_$Oc3X(sI6e=9QSTwPt{G) z=htT&^~&c~L2~e{r5_5SYe7#Is-$ln>~Kd%$F#tC65?{LvQ}8O`A~RBB0N~`2M+waajO;5>3B&-viHGJeEK2TQOiPRa zfDKyqwMc4wfaEh4jt>H`nW_Zidwk@Bowp`}(VUaj-pSI(-1L>FJVsX}Yl9~JsqgsZ zUD9(rMwf23Gez6KPa|wwInZodP-2}9@fK0Ga_9{8SOjU&4l`pH4@qlQp83>>HT$xW zER^U>)MyV%t(Lu=`d=Y?{k1@}&r7ZGkFQ%z%N+sE9BtYjovzxyxCPxN6&@wLK{soQ zSmkj$aLI}miuE^p@~4}mg9OjDfGEkgY4~^XzLRUBB*O{+&vq<3v(E%+k_i%=`~j%{ Vj14gnt9}3g002ovPDHLkV1n!oC4m3{ literal 0 HcmV?d00001 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..769d67cc78 --- /dev/null +++ b/callback_8hpp_source.html @@ -0,0 +1,179 @@ + + + + + + + +Topaz: src/tz/core/callback.hpp Source File + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.2.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:55
+
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..e13018f9fd --- /dev/null +++ b/classtz_1_1_interface_iterator.html @@ -0,0 +1,106 @@ + + + + + + + +Topaz: tz::InterfaceIterator< T > Class Template Reference + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.2.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..252e4fdde6 --- /dev/null +++ b/classtz_1_1_polymorphic_list.html @@ -0,0 +1,262 @@ + + + + + + + +Topaz: tz::PolymorphicList< T, Allocator > Class Template Reference + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.2.0.1 +
+
C++20 Graphics Engine
+
+
+ + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+ +
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..c597a58916 --- /dev/null +++ b/classtz_1_1allocator__adapter.html @@ -0,0 +1,122 @@ + + + + + + + +Topaz: tz::allocator_adapter< T, A > Class Template Reference + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.2.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 0000000000000000000000000000000000000000..c2667bbc5672b6770b14adcc10f102d5c99c903b GIT binary patch literal 596 zcmeAS@N?(olHy`uVBq!ia0vp^>w!3cgBeIhbX@HQQqloFA+G=b{|7Q(y!l$%e`vXd zfo6fk^fNCWJa_;UH$5A+1SrQ@666=m0OW&#In(Sb3=E9-JzX3_Dj46+y}fR=0gub^ zprtea|9|9c&RDe6Hu|I3M4gRQ-gETWgyRy^wh0(aifQ|x>S=#yy2{@fuWzq2wdPHa zpRH?iwfwf+{S8*Z(ebnp9lyLHAMZzWjan&I?abS^n@<^)`0TbBVk11>Zle z?f?65*HgK--jnvV=zIPW+^6!={l}yw^4z~>&0NdOQ1OAOp*7;n_pedj6^8eH%QYWf ztzk^iRf=W!p!|uI!Conz1je0DrpD16GgNe)e|Sxjf2i$QH)mh%+qc&*{;aV%pLS@6 z(%s*a)+H-^;kbWp!Pn*T``&NX_AC59r{=Q5zp}kkvga3XI`sY0}M@Ld~jrM2pi*Z)77^TU3a$zJ(!&H3peSK(Oh@^c$5?f8Cnnb!iyrl$sv@Iqz=e^!(U=wg1ar=l$NE z>*IMn@K@RI?>FQ(={|fe_x3&iP2KxnoP*AU-<-W5{-UW&ZbSX2n&1EQ?ebquuBrB4 z@&Ef@n~#YXC~BmJNA%xl2-XYh3Ob6Mw< G&;$TNd?{%F literal 0 HcmV?d00001 diff --git a/classtz_1_1basic__list.html b/classtz_1_1basic__list.html new file mode 100644 index 0000000000..5736cf79bd --- /dev/null +++ b/classtz_1_1basic__list.html @@ -0,0 +1,723 @@ + + + + + + + +Topaz: tz::basic_list< T, Allocator > Class Template Reference + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.2.0.1 +
+
C++20 Graphics Engine
+
+
+ + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+ +
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 (T 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..9412fbcb2b --- /dev/null +++ b/classtz_1_1callback.html @@ -0,0 +1,243 @@ + + + + + + + +Topaz: tz::callback< Args > Class Template Reference + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.2.0.1 +
+
C++20 Graphics Engine
+
+
+ + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+ +
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_1data__store.html b/classtz_1_1data__store.html new file mode 100644 index 0000000000..0cc72eb1ad --- /dev/null +++ b/classtz_1_1data__store.html @@ -0,0 +1,106 @@ + + + + + + + +Topaz: tz::data_store Class Reference + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.2.0.1 +
+
C++20 Graphics Engine
+
+
+ + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+
tz::data_store Class Reference
+
+
+
+ + + + diff --git a/classtz_1_1delay.html b/classtz_1_1delay.html new file mode 100644 index 0000000000..e552e6fb3b --- /dev/null +++ b/classtz_1_1delay.html @@ -0,0 +1,199 @@ + + + + + + + +Topaz: tz::delay Class Reference + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.2.0.1 +
+
C++20 Graphics Engine
+
+
+ + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+ +
+ +

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..c21efa643c --- /dev/null +++ b/classtz_1_1duration.html @@ -0,0 +1,358 @@ + + + + + + + +Topaz: tz::duration Class Reference + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.2.0.1 +
+
C++20 Graphics Engine
+
+
+ + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+ +
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..06674face2 --- /dev/null +++ b/classtz_1_1enum__field.html @@ -0,0 +1,436 @@ + + + + + + + +Topaz: tz::enum_field< E > Class Template Reference + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.2.0.1 +
+
C++20 Graphics Engine
+
+
+ + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+ +
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 (E 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| (E 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|= (E 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..2575ba3e74 --- /dev/null +++ b/classtz_1_1fallback__allocator.html @@ -0,0 +1,128 @@ + + + + + + + +Topaz: tz::fallback_allocator< P, S > Class Template Reference + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.2.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 0000000000000000000000000000000000000000..c3719e89013e92ef51e10f498817e780f935ecbc GIT binary patch literal 806 zcmeAS@N?(olHy`uVBq!ia0y~yV9Wxt12~w0B>RN(>wuJWfKQ0)|NsAi%olIImi8Z7 zZegHVATj;Siw6%L0L4wuhAjcgah3%61v3EoU|`NP`w9aC(?(Ah$B+ufw{tJ{%{CBl zJ?}B`-QWNEd7CyQ@MPZNiq0-qn$K|Tli#_xws0jSx2Ctkf`&pZD!tAtqb40w4D}8Y z58A3y3THe_yLvS(UO&!rSAW>5*JqrOyeb-j=Tk~C5-OW4OrtNLW{J7ppCDJQ@nNR&+a`kCl z@=CkVf15+=_aE=Rz6hw@`0DXf*SS4+bFqfQ}*}$?uEtq!# z!x`sgQVNVS+I>tNm<;%5W;NK^$Qfuccy0@BU`a4Cy2`+Lz$RrCqfkTTi4bNLhR+jL zvUxB(Q$*Ezps}N4B7?+~4Q~rQu5P>A8j^cE7S5RAP?~GAt@HUwqnzI-u0GklHGf)u z{kxwV_x4{tvSwBHX}eXge=qOM4B4*~@+8ADdjIu}cVezj+1@4duDHGQbmISCx6XaD zTNiq}?5N4gdqR7>wAJ`N-+nlwuKjyq<&AHD|MBnVExc*h^*J&`eE*7fa`*fABJD~q zYhPV%w6_F8V_i$$YLv=c-?{l!_fuDAD|_AfzmFy!{UyV|bE^8Pyp_}4 z!uz`G^JACa`j&Xb|7Og}b-~}%_wIUSS$}VJcJns=#|x@9#r^fkxXKVG>|HS3Ji+jL z=?eMQqMy4K*yvc-_}|bwUbc7soY~)1R^|Ry|FCk-|ERCpb=Nt!yxsrgvDwV5+wYuK qZF>uhKXeAqS}Ua_1%_E4xl`Y}^u1a6W&$upGkCiCxvX + + + + + + +Topaz: tz::free_list< T, C > Class Template Reference + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.2.0.1 +
+
C++20 Graphics Engine
+
+
+ + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+ +
tz::free_list< T, C > Class Template Reference
+
+
+ +

Bespoke free-list implementation. + More...

+ +

#include <free_list.hpp>

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

+Public Member Functions

free_list ()=default
 Create an empty free list.
 
+std::size_t size () const
 Retrieve the number of elements.
 
+bool empty () const
 Query as to whether the list is empty. Equivalent to size() == 0.
 
+void clear ()
 Remove all elements, and clear out the underlying free-list. Next handle returned is guaranteed to be 0. Invalidates all references and iterators.
 
+void reserve (std::size_t count)
 Invoke reserve(count) on the underlying container. Does not invalidate iterators. Only invalidates references if the underlying container's reserve method also does so.
 
handle push_back (const T &t)
 Add a copy of a new element to the list.
 
handle push_back (T &&t)
 Move a new element into the list.
 
template<typename... Ts>
+requires requires(C con) {{con.emplace_back(std::forward<Ts>(ts)...)} -> std::same_as<T&>;}
handle emplace_back (Ts &&... ts)
 Construct a new element in-place within the list.
 
void erase (handle h)
 Erase an existing element from the list using its handle.
 
const T & front () const
 Retrieve the first non-null element within the list.
 
T & front ()
 Retrieve the first non-null element within the list.
 
const T & back () const
 Retrieve the last non-null element within the list.
 
T & back ()
 Retrieve the last non-null element within the list.
 
const T & operator[] (handle h) const
 Retrieve the element value corresponding to the provided handle.
 
T & operator[] (handle h)
 Retrieve the element value corresponding to the provided handle.
 
+

Detailed Description

+
template<tz::nullable T, tz::random_access_container C>
+class tz::free_list< T, C >

Bespoke free-list implementation.

+

Container adaptor that deals with stable, opaque handles to nullable elements. Erased elements are represented by the null value. Erased elements are re-cycled in subsequent new elements.

    +
  • No pointer stability.
  • +
  • Random access.
  • +
  • Index stability (via opaque handles).
  • +
  • No agency over orderedness.
  • +
  • push_back and emplace_back may re-use old slots instead of actually adding to the end of the list.
  • +
+

Member Function Documentation

+ +

◆ back() [1/2]

+ +
+
+ + + + + + + + +
T & tz::free_list< T, C >::back ()
+
+ +

Retrieve the last non-null element within the list.

+

O(m), where m is the number of previously-freed elements that have not yet been recycled. θ(1)

+ +
+
+ +

◆ back() [2/2]

+ +
+
+ + + + + + + + +
const T & tz::free_list< T, C >::back () const
+
+ +

Retrieve the last non-null element within the list.

+

O(m), where m is the number of previously-freed elements that have not yet been recycled. θ(1)

+ +
+
+ +

◆ emplace_back()

+ +
+
+
+template<tz::nullable T, tz::random_access_container C>
+requires requires(C con) {{con.emplace_back(std::forward<Ts>(ts)...)} -> std::same_as<T&>;}
+
+template<typename... Ts>
+requires requires(C con) {{con.emplace_back(std::forward<Ts>(ts)...)} -> std::same_as<T&>;}
+ + + + + + + +
free_list< T, C >::handle tz::free_list< T, C >::emplace_back (Ts &&... ts)
+
+ +

Construct a new element in-place within the list.

+
    +
  • Invalidates iterators and references.
    Note
    emplace_back is a poor name for this function. If an element has previously been erased, its location in the list may be re-used for this new element, instead of adding the element at the end. O(x) where x is the worst-case time complexity of the underlying container's emplace_back method. θ(1)
    +
  • +
+ +
+
+ +

◆ erase()

+ +
+
+ + + + + + + + +
void tz::free_list< T, C >::erase (handle h)
+
+ +

Erase an existing element from the list using its handle.

+
    +
  • Invalidates iterators, but does not invalidate references. O(m), where m is the number of previously-freed elements that have not yet been recycled. Unaffected by size() of the free list. θ(1)
  • +
+ +
+
+ +

◆ front() [1/2]

+ +
+
+ + + + + + + + +
T & tz::free_list< T, C >::front ()
+
+ +

Retrieve the first non-null element within the list.

+

O(m), where m is the number of previously-freed elements that have not yet been recycled. θ(1)

+ +
+
+ +

◆ front() [2/2]

+ +
+
+ + + + + + + + +
const T & tz::free_list< T, C >::front () const
+
+ +

Retrieve the first non-null element within the list.

+

O(m), where m is the number of previously-freed elements that have not yet been recycled. θ(1)

+ +
+
+ +

◆ operator[]() [1/2]

+ +
+
+ + + + + + + + +
T & tz::free_list< T, C >::operator[] (handle h)
+
+ +

Retrieve the element value corresponding to the provided handle.

+

O(x) where x is the worst-case time complexity of the underlying container's operator[] method. θ(x) where x is the worst-case time complexity of the underlying container's operator[] method.

+ +
+
+ +

◆ operator[]() [2/2]

+ +
+
+ + + + + + + + +
const T & tz::free_list< T, C >::operator[] (handle h) const
+
+ +

Retrieve the element value corresponding to the provided handle.

+

O(x) where x is the worst-case time complexity of the underlying container's operator[] method. θ(x) where x is the worst-case time complexity of the underlying container's operator[] method.

+ +
+
+ +

◆ push_back() [1/2]

+ +
+
+
+template<tz::nullable T, tz::random_access_container C>
+requires requires(C con, T t) {con.push_back(t);}
+ + + + + + + +
free_list< T, C >::handle tz::free_list< T, C >::push_back (const T & t)
+
+ +

Add a copy of a new element to the list.

+
    +
  • Invalidates iterators and references.
    Note
    push_back is a poor name for this function. If an element has previously been erased, its location in the list may be re-used for this new element, instead of adding the element at the end. O(x) where x is the worst-case time complexity of the underlying container's emplace_back method. θ(1)
    +
  • +
+ +
+
+ +

◆ push_back() [2/2]

+ +
+
+
+template<tz::nullable T, tz::random_access_container C>
+requires requires(C con, T&& t) {con.push_back(std::move(t));}
+ + + + + + + +
free_list< T, C >::handle tz::free_list< T, C >::push_back (T && t)
+
+ +

Move a new element into the list.

+
    +
  • Invalidates iterators and references.
    Note
    push_back is a poor name for this function. If an element has previously been erased, its location in the list may be re-used for this new element, instead of adding the element at the end. O(x) where x is the worst-case time complexity of the underlying container's emplace_back method. θ(1)
    +
  • +
+ +
+
+
+ + + + 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..2d894a7081 --- /dev/null +++ b/classtz_1_1gl_1_1_output_manager.html @@ -0,0 +1,127 @@ + + + + + + + +Topaz: tz::gl::OutputManager Class Reference + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.2.0.1 +
+
C++20 Graphics Engine
+
+
+ + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+ +
+ +

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..ecbe69b9a9 --- /dev/null +++ b/classtz_1_1gl_1_1_renderer_edit_builder.html @@ -0,0 +1,216 @@ + + + + + + + +Topaz: tz::gl::RendererEditBuilder Class Reference + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.2.0.1 +
+
C++20 Graphics Engine
+
+
+ + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+ +
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..ca7943ea10 --- /dev/null +++ b/classtz_1_1gl_1_1_resource_storage.html @@ -0,0 +1,280 @@ + + + + + + + +Topaz: tz::gl::ResourceStorage Class Reference + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.2.0.1 +
+
C++20 Graphics Engine
+
+
+ + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+ +
+ +

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

+ +

#include <renderer.hpp>

+
+Inheritance diagram for tz::gl::ResourceStorage:
+
+
+ + +tz::maybe_owned_list< T > + +
+ + + + + + + + + + + + + + + + + + + + +

+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 0000000000000000000000000000000000000000..dc17c4ef4f4cea5ce4646469bcccde80a5a0d049 GIT binary patch literal 815 zcmeAS@N?(olHy`uVBq!ia0vp^7l1f`gBeK1pW>beq@)9ULR|m<{|{uoc=NTi|Il&^ z1I+@7>1SR%c<=xyZhAIs2~du+B*-tA0mugfbEer>7#Ns#dAc};R4~4sn>cy10#D2I z(q)_f{}#tkZeTnDxiup9CbG{7sxoq-P#Yg34KbwH(wl$0{lXSHiStr?C zNe@$bIpyxW`q88_cQ-6E$l@kpkzmcP(`%f(kuGo~_sHfj`0D|7yDH}_!9 zgGMds+Z)2fZ_j&hz-;l4#Xo!^q>V0|uHX9FLSeE~@s@~yGUMpEyB$t$jw@Pe;=Q1> zF#c7vLU~(D3CELF*WL4(xBL-x3svyncJ_i_>J-Ua4=NTY#e^>SYwf~j6}!uMYRhd` zEzjF~oj0Cly=3S8|Mc{n?WZR;w%#kZj4ycBGF4Ap{9|zbZW+&gSHtT}JwCN8R9*#!j7Vk;2CuK zm&}U1>1pw@Zj;Vse%+O14x+a8zt7G2k8I6JY#bH;Jg1y|Mn^?!^vsh*PmNMT=r zTbZY))s>q(teW7u788 zGZ}4@UJz4wT9A8}(1|JQPd}5|v6SQb^z>h6*E;;G3V(Gv{X{jZXX`0jm6smN8`i8` z`JOl6DWB-sgLA*iUNCbP0l+XkK`Sf<| literal 0 HcmV?d00001 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..bf50873733 --- /dev/null +++ b/classtz_1_1gl_1_1_shader_manager.html @@ -0,0 +1,151 @@ + + + + + + + +Topaz: tz::gl::ShaderManager Class Reference + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.2.0.1 +
+
C++20 Graphics Engine
+
+
+ + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+ +
+ +

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..b8a71f0abb --- /dev/null +++ b/classtz_1_1gl_1_1buffer__component__ogl.html @@ -0,0 +1,115 @@ + + + + + + + +Topaz: tz::gl::buffer_component_ogl Class Reference + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.2.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 0000000000000000000000000000000000000000..77a90f6d623f234b899c635b8f8172acfcf55856 GIT binary patch literal 670 zcmeAS@N?(olHy`uVBq!ia0vp^D}gwGgBeJMPFs2gNJ$6ygt-3y{~ySF@#br3|Doj; z2ATyD)6cwk@ZbSZ-1KbN5}+JsNswPK1CS2}=1jA%FfcG_db&7Cj;1lg!ci zwKG)o3vxG2*7USHcJ;~`wQnLTk(Gfy3$8SMW9uWvi_eDd!*TXt+yx%ptb@A|rR{~I(t z>!us1dd44`qEajA+ny*<#lUcoDB>7j>*G0E_UuxXy%(7oL@i)T*-x*8|`iWc& z`&u*^eh4jNc;Jm!;M4xuvu2hu`b@G?@KHTE-C(LpyxHYlAFf67+`chyf{K3B!?1(y z%Ysk;)zO>PcYk%~-g;+u3ne}Ct!9bY5qC(~tXnyIh$ zHud+^5bKjlH-+DauR4>z^_0Zv3m3QSO7L}c{w0@RZ zJ7a!&(xqLqeoqQ{@bhSml=jB_8TbBe+rN47-|eNEVS>u#8Sh@6Ts5g=y8A(+_RW{4 rFWK)r!)ua$qL$~ro@HriwjcPJ+PY_-sahiqOi2u$u6{1-oD!M + + + + + + +Topaz: tz::gl::buffer_component_vulkan Class Reference + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.2.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 0000000000000000000000000000000000000000..5f2ea6431357569563247d51dd4ca26b23ad4cf2 GIT binary patch literal 711 zcmeAS@N?(olHy`uVBq!ia0vp^dx1EBgBeIxUv7y5QqloFA+G=b{|7Q(y!l$%e`vXd zfo6fk^fNCWJa_;UH$5A+1SrQ@666=m0OW&#In(Sb3=B*`o-U3d6^w7^zFpU>AmGw& znECAQ{2$l4J}GXwc5Aol%@$#1j%pXNe@U~JWkwiGe6nDNt>>)=-&8UW|NhpfQl7K+ zZQdlC1G}5`x2vDLTyxj1#bENIGhegbCV&5QW7qRS*U#&w`Fl^&x7_`$(MNSc=t+70 z&5yP&H=Sg2%JX;5%gI^aB2)c8FRtPT3RwQuIko)TX+4>%`)s*A zy7%R?fJs*#%=sI$`_KH^gnE1H^h?>rdpFd7(LFN#@rI?E(mPC!et)b|Sd(?{>ZS*V zK~-y}CVi-T+dRcw;4(*#{ksxn=JMwqxk8}H?UZ34p@t5g$?V-K9zx77&{$6!&(|P0Fcj8@z z_T01V?a6-ToBw=CZOpTK!oR22WQ%mvv4FO#s$1ZWI6j literal 0 HcmV?d00001 diff --git a/classtz_1_1gl_1_1buffer__resource.html b/classtz_1_1gl_1_1buffer__resource.html new file mode 100644 index 0000000000..489772c9f7 --- /dev/null +++ b/classtz_1_1gl_1_1buffer__resource.html @@ -0,0 +1,301 @@ + + + + + + + +Topaz: tz::gl::buffer_resource Class Reference + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.2.0.1 +
+
C++20 Graphics Engine
+
+
+ + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+ +
+ +

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 0000000000000000000000000000000000000000..d5182872473fba2bea2f3763166bb155136cd1d0 GIT binary patch literal 1313 zcmeAS@N?(olHy`uVBq!ia0vp^XMp$s2Q!eYx2xF=q@)9ULR|m<{|{uoc=NTi|Il&^ z1I+@7>1SR%c<=xyZhAIs2~du+B*-tA0mugfbEer>7#LXAc)B=-R4~4s`|{i?10Gg& zb)iqc?LRIp@xFA(U9)>?wkC5*?y|B&@kQr$il3NtgC1%YDJn1h&zf{aE|~QxVp-L{MV}Y-EZJ()b!P9i)TV`J0gZt@e_I~wq zXO^urns(cyrXuax?HoDlcY9{othOnh9lHIR?#g*P&z{mOO}+j9gW2RI`+q#CZ&8{1 zwCBuQiFf;yJby9%&reY~X$%jRP_^fCtQjA0$1qeaRG)czsq*Z3DeLt9-Y8KO-Y(hT z@5FXMS&{j{#0iWaJWeoFsH8C12pKT|LzJPvg{Q$CRa!>*`JC!T9nV?;qe)LDPME0D zKWDP%q%Db=ci&H2a{fc0q~|ZSdhU%2&q|9+TXi+$Px+g{gU7YWo}J`Ab7F_>I-l#?sHu zd#6aQe%$c0_(zoHZ~uKQ-(A!^vo*DgeSze@S^p+0)^__ycBICK9=>(s)SAn+Cq%4o zOrI&V@yvSLnOgCxFE!#PYG(H(~`1Q=2zMFqBm^$%Y%Gr1J8uR^k)!)r# zvzh(1-*;AJM-%*&98OTvFT%<{aH&jHLI9w29~GqQYshm#@x z0n-I;+mkVRvNyk|6qmj{zD#@Ojzopr E0C>P_zW@LL literal 0 HcmV?d00001 diff --git a/classtz_1_1gl_1_1device.html b/classtz_1_1gl_1_1device.html new file mode 100644 index 0000000000..1b462c2e29 --- /dev/null +++ b/classtz_1_1gl_1_1device.html @@ -0,0 +1,286 @@ + + + + + + + +Topaz: tz::gl::device Class Reference + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.2.0.1 +
+
C++20 Graphics Engine
+
+
+ + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+ +
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_info & rinfo)
+
+ +

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..6ebf322b93 --- /dev/null +++ b/classtz_1_1gl_1_1device__command__pool.html @@ -0,0 +1,163 @@ + + + + + + + +Topaz: tz::gl::device_command_pool Class Reference + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.2.0.1 +
+
C++20 Graphics Engine
+
+
+ + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+ +
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 0000000000000000000000000000000000000000..f0096068dea0304171dac2ec478fd50129597d84 GIT binary patch literal 2071 zcmb`Ic{JPU8pnU3B`L+VG+bMq2_{F7l48m$bet+f--r9svO0DEh3k7r5600K^0;31-J@Wxxoid%Ag_5sSrOy0rQsHj7zlV}iu1=Du9w za5!MyvhTt}@D3K^<$fLj&%Z5eiNaw3kS;?zJ9@`McttDZSp!+A(*@Pa>*DA7@X6!p zf%@u2*lG(*$gxjKKap9eyV0MZmjhYQAwf{E0KkLDg!$i3XqHhMfVj1|w82{G-B~0^ z|HePukq%X_wfBfk7sYCVo2}_ago#JNjL^v-^{`{AKWtld!EhM=g6QiGbUzl8H@2!| zx_{%d$!=zs152)NB39_hz=o)X;TC`73u_AYy{vqCN88+NW7VceevX0MSndaLhvHgB zfo$OmJ8o@?&?<9a=`15-C9H20zo+VI(FL2ZQrK_4H|BHIeh7hUXmk#AXx60%S%#fF zJc39}!Gymc%u|3R;pX&Vp+g9>yitNrSqvE0m-c7rKgl)Q?YRm}`yyefDfbkl_z1Au zCYeR*mh)M%j5WF-ZJZR<*pnWj)Gq43hAP6pRV2@0pct~g&PjAJsUDG_$Ry99|Dv$s z(Qi9IGV4TVEFx>@15^WQ3<0El6(Zr+akcAXzt~m<5ULBPL>6!E zm5s`ks5IXD?5e(L#f%ReiYhE_E9JQC;6|mus8f*iX_C%ifU-Db{zytl_AuXV$bhtS zACLiI;>U)tHj7k!C$cXC{mSj7UQ)}sU{oQ0D$Z#39ch;G4Z_dqOEPF8^d^F&+mo$8 zL3sQ{;Y!N?cAx5IfX(335~yTSr^ns%uJX$TS+`nPkHzVU4p+X&wdD=7Is;>1SV=bq zw&_yz)3=4P`c;OvLmyuiu}@vs9Q}4^_Y6BSv|J=GJ!ZwulU;W!%vi?59jK;XYu<%K zs2^Exe0!i_>x@BoZ)oz)owy(S8tckMW~Y@SA3SCAX z`p$7{YCSpoLCAl(#`4R@Vv5CD+F1jxLP*rktjQ;9eM-lwXTar9&xv4r=18mbp>K%;wq9Xi?GXDlkc z^jIy?E>9dT+4suQR1_W-xSe^sRtwmB3+zuX_3N`>mDYJ#!`p`=ZCT9&eI@Ai_U15yccB<+FeTHzJp zM(p~qiq;5c{c$qE6}jF zV73TavT$SLS3O);zxw_Exe##P9s7kf_oAoyA^gu#q{MQ)uHYx`j1}!^jS^TRChu~? z-mi99IEI@0Al>iC0rF+&;ozvW?wc`~@cY%50+CeXY_!*Vu`04m?ROY2F)9 wEk@h#hz{d3 + + + + + + +Topaz: tz::gl::device_common< R > Class Template Reference + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.2.0.1 +
+
C++20 Graphics Engine
+
+
+ + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+ +
tz::gl::device_common< R > Class Template Reference
+
+
+ +

Device API. + More...

+ +

#include <device.hpp>

+
+Inheritance diagram for tz::gl::device_common< R >:
+
+
+ + +tz::gl::device_ogl +tz::gl::device_vulkan2 + +
+ + + + + + + + +

+Public Member Functions

+const tz::gl::schedulerender_graph () const
 Retrieve the render graph.
 
+tz::gl::schedulerender_graph ()
 Retrieve the render graph.
 
+

Detailed Description

+
template<renderer_type R>
+class tz::gl::device_common< R >

Device API.

+
+ + + + diff --git a/classtz_1_1gl_1_1device__common.png b/classtz_1_1gl_1_1device__common.png new file mode 100644 index 0000000000000000000000000000000000000000..b2d1576f27263ef4a16a98081f53b415fb1ebb12 GIT binary patch literal 1001 zcmeAS@N?(olHy`uVBq!ia0y~yUb7begoV-SQj@c?}KjGr$`O8XcrYBtwd$Z2BY*ziRMmIm>@{8C1rq9~(_s!dz ze%aM07}^(I-IbAcGGzHyzwcKUMTfrGwl)1?t#a(G@VgA{Nr7ja*FMhf7hNdzhWmte z)bCe?;pdN+uvv(#&z!rp5<`?eF56u4}D6o8G?P z850wG>sA?y{N%N_Uu=9^{$q(!!fk8Ct+&c7R$kq9*mLbRS#a?1t=KvxsEq$W{BxEG z3@($R7#CU2y`=46uu@cEmj3FOq6*WlaBX1J6jhjWg-gIMi%rh1D=C(+7cy_EMxXGtGt~X zwi-xW(eeaZ<;kVK)hoziW$2_skt?@)T#~)};_jrU=_;kUcUOrxBAxM8He~ZnY!(F%eV=DzWcmrf5fDH z>1(g8by~CXj@-e=H{vhs`ZKZQ??>%9=e~&*|1Zs3ZmM-8vdk}PefKO)&nTs^*ETEE zME7aNO#0Gdv39l7p6gbx?YnFCUVC?G=GCM73a;AQ$3!1?%30QZWn049?b&6!ghE52 z>(81s>c?&_H86`-cHR@~c~&l&GxO7)_0p5FqJcq>w&t^pbHcgT5GwSVt!Q28tIUX;=Emu%2# ymDb5os+x0P!Ta3%wE@rJcbQxG4ja6gSHJ)7x;9l!M-^bEWbkzLb6Mw<&;$VH-sxok literal 0 HcmV?d00001 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..50507ec7af --- /dev/null +++ b/classtz_1_1gl_1_1device__descriptor__pool.html @@ -0,0 +1,127 @@ + + + + + + + +Topaz: tz::gl::device_descriptor_pool Class Reference + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.2.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 0000000000000000000000000000000000000000..1606360673ba40f8d41f75ccf8a30c65f9ca1c31 GIT binary patch literal 2076 zcmcJQc~sL^7RP^)VJEHYGKI;We2#oz$-`{QxjSK1E%+EplD?=Kjj#qve&q7!>Xcq>aCd2YV-Rq&2?q?iXH)vAlTLz9smIiW^js~O71Os?H>5KRW!!T;tYc5F6 zKX@FXh3N7_@K(RauvSNsYIdEM))=M{(+#*@YM-Fnbr1$UpWY(TC8DEBF2s2W@Ll4? z7YlA*ZNFv<^0KlM^36*|lQ%*dd!2J#__R>Q_Lo5{n^N-QL4F`I*`rxkbfr_AFtMf* zL6-7L%w4Nme`DT!Lhm4T2O4lxqC4zryxV;BMc7v!&tSxQq3=1bW-CE2 z@uIEf0BL=<=;hZlJ$9g{Z(q0RE7PSMKZ>T@P9~`vKgc$}`6zN&5zGZKXgnCOYw82- zxNfYaoU$*YNlh$K_M@YZF(DwKmu{^{NUj`pXKKEuBB9 za?`ycPZlEybDhov@I6J49{b1(I>MW*8~77?0KfjTKf_U#B5sM8v$`s7d2Q0L7&oy6 zY5H{ZJOUEgLm1(mepzI4=k5+ZOPFYF(7z6iDCoGXgaFhIO@*sBj&@1(N0~Rc6gRLC zpE8QE&%-I!ie6%l=L|2{Jv(ERm~)NlrqUJz=B&09Q2Wg13jHu3D%HZPegMF~dt;~~ zMYAazx796U?Ny@|NOuHcrp(%h8{UX|9{2>F(Go=PELD!B*iXLUOcs3u!~2}!dg?}_ z-oZFl-PetaV8Oo;h-6)qroszB)0P~N`Xdlb|FvZx=(}jd(}tTm8W|nIS-1crqSQ|m zF*(5MY_o8vd|XDKJ10NV%&7*!M+u2e`On*i6u;wJIg(G4SVP(mB<@ZnqPQU|a+2y; zrx>0$q$rQC4>4c5o$Y+Gw$kx?^5=>ju7`q0DtaH56@+}?z*1raAJ&tT@YC61@-@1L zC&u-ayBS3w*N9Fh2}BAn#(5%Qi;jFI;~&a)bG^S6us68)bcB=-2)d_ixX- zl+TE|x+ZB`3@|B?-XoZ1X5(!5JZxatA4c%&-eU%4qrUe;vo+SXmS{#<zd)n%akvYU!lC@{WxlQztZB6Ul+SmP>!X{OM;%tm-kPT13tSkTE5ltfzO$~eM zm>H20!uDS`u;3cuBl;%#FZ^U}(ODJ~ZEGVW#%mpGvI?-_NmeNGkx`0j_MlFR!w-d6 zX=;U2{eZg8^UwyV>SSYj7q9Rgj@d3zn_!5TS2%&vDaL+nouVkjmgt}^D&Q#RBc;kk z*YDnv#3|!Vxm70lVLsf9|3$NVs%GqTBV&yckuwWyrw-45O$X|;GJyVVRm(ST53+-i z-3?&XDX82n!@dlg7GiyDlYIMcD%1CAt-1EJ;UC5%cBgt9!M1Jm^2J*@p2NRrH%#~; z=FrimlG>`w4>H%McdE_mW$AzR45v*+apoUh%7p(&PENpx7Sa{d4=i*YV(R<-B3>2s zeWyIUdHna)HwammhozisEMBMd94Z1HSS7v^5l5GG7U|l0_u7;r3DyFiUMs0d=L`Reh5j!n`5zpe50)a+sgIGd+W*D?49BFy za3yKKQ-#L2^nwFgcUPJ1nT{PuZE-;?#kqYyGh@udMN&CV$XF{Thu$+hiwrD>6<^nI0ga^l^juQG$`f%9AU_C4wZ#<$uh>dHR>3RdW( literal 0 HcmV?d00001 diff --git a/classtz_1_1gl_1_1device__ogl.html b/classtz_1_1gl_1_1device__ogl.html new file mode 100644 index 0000000000..a6b5ab88bf --- /dev/null +++ b/classtz_1_1gl_1_1device__ogl.html @@ -0,0 +1,129 @@ + + + + + + + +Topaz: tz::gl::device_ogl Class Reference + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.2.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 > + +
+ + + + + + + + + +

+Additional Inherited Members

- Public Member Functions inherited from tz::gl::device_common< R >
+const tz::gl::schedulerender_graph () const
 Retrieve the render graph.
 
+tz::gl::schedulerender_graph ()
 Retrieve the render graph.
 
+
+ + + + diff --git a/classtz_1_1gl_1_1device__ogl.png b/classtz_1_1gl_1_1device__ogl.png new file mode 100644 index 0000000000000000000000000000000000000000..90a3f78d803fe1133348e7a8415e529135e6ae8c GIT binary patch literal 1161 zcmeAS@N?(olHy`uVBq!ia0y~yV7vun2XHV0$<8#F=|D<4z$e7@|Ns9$=8HF9OZyKk zw=mEwkeGhv#e)YAfa0cS!3f*F8(FfeDDeT9L6Ma0v^F{Fa=?c9q+i>(A$ zquaHv|NO7NZ(}pB(4k{2>G^FpgQ}U&aP&%fuID*yFo#j@e_Nu&IfiDHqv`9yCOw** zrK+j2GHjC5Bp72;NVH0(V`;hIrSlV)=t&=%u6TK_ZhrI;ovZ(x7EapIUmky@)81{Z z%HD(bL$y8kA5ytM0qs-+q*wnYlbpK4yO3!tV`Qd)`%EE4+Hw zq~lp`XqB*5W)}BWcJW(0|K=6G-?(nov`wj9_turyUKPvCa$OZ=eEMws=j&&jtABnD zdR=!b?)CIu*uE3F!C&0=_V4?h_1iY&`r|mWJlWvF zt8(S{!>#83SKc4@=&ed=@$Q$qugHbIh|YTLTX|VzZ|M6Q|MRwfp1kPijNfy=wg(;8 z7dsl2r~WrM%UrbTz^Ym+*ZeELYp#aPcPK71Wk2{h{pp&wRgrfC=jR@LTexFg+V9Bf zh=qIe*L!>pQ$Ks|mTvHto%f!nzb!pJ&0Y@1%J})?ZhzkD3%#p&c8B|SDh%>U=@JSm zKx4?j4<1hmIwi?qA$fG$mE4& zGjwbJX}7g+S1yfeV7BmiyJzvYIcv_}dZ~Uss=>c-!mahK6}Lm)FUsTIym#NREAF2w zlK07<&wI9t^~PDp;Pl(3?j<#M9t5q;m3Juqa_d|6y3=*rYRbPR-i`%{Iqp4t>)UUc yi|(tozP$l-6Q3uLF#*n)6O^mDbPhv9{h@mKyq|LO^H+ch6b4UMKbLh*2~7ZHWkf6h literal 0 HcmV?d00001 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..84888bf9fd --- /dev/null +++ b/classtz_1_1gl_1_1device__render__scheduler__ogl.html @@ -0,0 +1,115 @@ + + + + + + + +Topaz: tz::gl::device_render_scheduler_ogl Class Reference + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.2.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 0000000000000000000000000000000000000000..c72277a6d3e461b6227a9bde4eca2550ed2fc4cb GIT binary patch literal 766 zcmeAS@N?(olHy`uVBq!ia0vp^SAjTygBeKfe0<;*kdhAY332`Z|38rV;?396{zJ0#QF z`Rz|gKildVRr!32Xd3@imD&ZLSFW@Dw@l|)X+9f4X zEN#i1b7-lz$a2Z=hqlzMR#+;iV%){t_5bO8BlFy!`sLf*qh3E-m))=<{$3;fPJd<2-shE3SC4+XymIxksk=14=sZ6q^}haJTI^ceg4bqTUW;EO za<0A1e7Y?1>j5QZ?d;nYtL0|wwtv|;DJ0|leRWT(;K=o_1E#9#dg_1Lw(H3_#6{4Zz@K_^{BEmB9`} z(FS+JV-i$iP=?(wBvvu9NJxOxBu^qPjV1=9XHISs&+#dYXM<)|ynaRz9dz zAkWKu$Jx))w$I>EadT0x<0Sc46Si}uNHv-yKRxk(BX^|EYv)PvFF96SJG!dUb?Ua= z$5eh!=eQ zw*I@rB%Lj<2CWgb1Q{oA0<5|?Z37}$rI>p jm6y)pt0a + + + + + + +Topaz: tz::gl::device_render_sync Class Reference + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.2.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 0000000000000000000000000000000000000000..92c6d6f5f94830481a23d695395d797d1d8ae223 GIT binary patch literal 2077 zcmcJQYd9NN8po5W5>o9@*AAwS5Yb^3ajDR$(WVi_q&lT>X(^qmkh;~a5}kx6QzjZI zGZLjUHB`63Dp8?qw6%(aN{gmQHg#JfL5Y&crhVply1QRyzs&h?&U^mn+wXn<|3e80 zLhjbH&;tMfyHO|nF`Bax0027cYH6x3So)eBuseG?4co3uYnkSeGY?M<;zwHh++Tg^945sT7zxU{-6TWViCsUEg$?7- z809pvwU}I(^P^=&%Yyt4p2Kr~CE)dPCG3Pv^mrl+t8keX#HAVKX%~}6$)jp@K$}N` zOQOjFiL)&hdiwrqBX(ysz_C4RvG&7Y=y$@eHWnkKB#$mWcmtTZib4UDt|Vt7^Z;1Y z7wI|6g!<7U+E6b72kde=C*u(e`NUNx$vjC?RsxCk3!`a}pjIFx+rHAhWsu-M5TXeG z!;(ib>NZ$SGj+M0YKFHk5X>9^0#Ic zp5>N_cedC%KS(-F7}v28|6Mr+lKoA929vJ}H3){EC~Q|K_-5`+ImR7Z_U(CWP)Wsl zmtOKjkXfDdP`g#Wme>{`BJLpxwJRzXwpua`62_SIcC`~%ydSv*kw>vH-YQ5!GuuDb zr_J^_cS32ctCgml@6?z3n39j201~IO-UZeJAHPi~AhaIp_Q?Il5TLf!;6mwYWu}<& zyk;pS5Yr@@n^7}pDyh_*ZziufGnYj1=1eOIdivNW-^9dj6{&GQx~~>z0t=V zJGiDgi|B2H;JNGk_{#VVNiiBW&G(vEET!4k&f06fyKrN8h$LDTm@ zRZzxB$?U$Oi$;&PcyWkI{2N2sTeL2k20id4>Ncqnl4Z!Hy+!?jun^4i%E9-0UDWvx zr@M=HHufMU$VIae<~gR?4{;!s&3U4Yul{zFXU)6n_e+Y$eNUU!ML9lE$IHE>0;i4P z%ZK>{Dz$fZec58{%_1GgzxL7f4^KC#;;aQ1#zb~8k?EcxU9vpsokmBNd(T#1`tadg zvj`;haSGNF$&iwIQv(Sw#`LW-n#qmCbJnL!Sf}I3`L8$oGG=6?!KQn0p7#BlS2_y@ zH}d63c*mrna31;%_Nx5;+8Q<{Jmr2_yy&?jaOleXq;^}kuw`nu73k_;KqBTW%=O+b zGZ*mLS%S@*&RAmA$|_h(S^8(1ef)bY&&#_S?7Zi9f4tCz5-n%uoh~4BL=Mn{xE_K% zSiYa7X{VKdLe1k0-T#DhN!%I|d1ZfCw$xYnwNV!Rqw8@(_WL+%x6AO@V4c+}Ty=Q6 zU3}Nl9XXzV^ZURMk4n0ez0?jY93P&2vrsO_DOwXWhb@1j3r-TFY1M=Hcb z>oQ_bU2c_){_}n2$j-=xXI=NiYh`1T7L?bEj>BPu6m*HRG#!eYTH#=KRQD`TYMZU* zjl_yscY(YtE1%K?B0p?4@8AcHT|J{*fZFQMO8{o-x~MFbXJD^2@UVhWXiMbG<0HN zeRwRaZf0W4VMk+x8m*Yt1gSm?L`ZP}fcbYTm8u;ZMK{d1C!PVO@SPCAHqy_myL9g^ h`CBJuD$i)ydf@rz;U*Bvhz}n=>R6CJ%kSLve*?v-?pgo< literal 0 HcmV?d00001 diff --git a/classtz_1_1gl_1_1device__vulkan2.html b/classtz_1_1gl_1_1device__vulkan2.html new file mode 100644 index 0000000000..b98eb37773 --- /dev/null +++ b/classtz_1_1gl_1_1device__vulkan2.html @@ -0,0 +1,141 @@ + + + + + + + +Topaz: tz::gl::device_vulkan2 Class Reference + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.2.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_common< R >
+const tz::gl::schedulerender_graph () const
 Retrieve the render graph.
 
+tz::gl::schedulerender_graph ()
 Retrieve the render graph.
 
- 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 0000000000000000000000000000000000000000..3b1fedc60cc94254c202f15b3a6f4da821d3f0fe GIT binary patch literal 3258 zcmb_fX;f3!77mCdBH~4h%)|>-T4+IW00jxA47G^1!bN0?fIO5rDwB`|YXVVGz}g^V zr~}lCg@QuDYz3hj5F8L>9*PM=0vI4bfV>mz>TJxIe5NxpzY#G?| zOsp#0dYTP6BW(!-qj}ur9muXftJ`sVDPc({8nyv$eRm5iTryXcr(BMu-^d%W^~iCq zBo?;JI@Gpsd6m3?1&72gufp}oONy) za!5k({G=xCDl}=)vdOo4(2K6|iN~7aKE)Cz?yYYVifd-Pq6;ym4sGIl?l z36JToXFz-q5Ck#SL%R{AmO!)NeoyE|N)K;&TbU_g)*wjVRzmLZZ%R|wAEW3wnQsR@ zO$3qZ{m%!N!Iah4WRQVddmLxw%Sa?7`qiHdI(- z)nckbD*(4Kb)wlg(iqUmi_nM1)cLI51u6C6RE(5Jo6>Zb@5dr-x&WfZn_!JO1ow~V z7}W1{GVILA?p)HMl;Ic1-qwBl@H?!|4c}_H^YvKoy6=&h&wzJnP$j7`2sXD$E&2U%&taHR7T#s{%+B zrenmgy$u6`j&I((Vm>2$Y%{6;o<_7B8YZEL8ghM#RUUS~ndmW` zT@Xe93AntHksT%@_6$++=|ZU!V}Mhxqhh&hcwy1)kZXx8)*``hEh(fBAY;;VT;f3; z$A7*F?zhl`d^^enO+I(<+CTITaw99bdJX*;IWb(O-yyXBE2`a3*nZNM_-mj zNBLN6e->4gST{T0occVOqgjZKN+{{^~CF8y=r=0HSvWxQI-!{|0>}qstMHd4YA|5ik9v z=^nzRyGN0k@}Glf@oIP&gyCph(HW3h1NLyuEl((s+QC2LdGL=I~N=M`aH zTG7xb&8HrcdQ0c4NM4eu)G^Bfv<659m#pTC2BxD4o}coiN$Q<$e!Rj)|5rWQ&G~{3 zRe2%L1a7FSCej6i5A1^2wd37F${m;5eq!~#zko2PU(Qe#02Wwp$bg1O_eZ;vb>V*X z=xdPRI*$Ge%52`Ca@Za_M-oCeS??m7!a4=vZ@%mdo<#5xmi& z{~GH{4=Vuj-x8vJ#&3U}ov7D7T%EJE=ZY&e!69KsK04|lL*Gb-er8%OI-0pi8u#HdJ@I#EsCb)soz9L z?*I|MiOSRo1P~AcMZts4Km*H_wj)T0Mqy~hINlkF*v78mS4)KkFCRqB!!RYPciHc@ zrT26Skaql|{e-MSfv1!N7GE8RA!N-yvkaj*SK_AblY9LFI_Yh_+9uwLfd<}T5P3Ti#nS4$C}>Q0&iSj#9Vka zDJI0DqggQ3oY_KL`@F~|)>(RU$mo4}5c8rc8-HaZJLY?&?W-ihIEB5mW`fd@r;)6l zkA^I~;hR4>hYPVRnmfW+E+ASacTH`BDJOdyh$4sdtE#@#9};KFt-Qs3!$DX5MVsIT zzadYjsK~aN<{{p|y*EnRl}mGS&#)5db9ZC3sm*?hDNE689NaK3Q0Xo1x%4Nyw%euj>0Ik~ePXWE1&Iv~6fa<W(Ecsv zE7>e}GtKl>4^EhwDV}@+hFhA72eOxU0Nid5&lOE~QEnE_qv?msk4HR^mQ`LOknaoqi5|o3wi$v!tC#FYt zRa{~ktWx3Gz>)1|saGuF-80m#0vxYX{5eivp+d*7p3;Wv^8=FymPx{>W zs~&fz|DJdt$vCwSs?zmen{rF6?16Op5T;kH3s~w19j2T~2v*4z?GQu*HS<&f<%&Ad zXrb{Md3-cN@+!b>ic24;=iH0LH_SgA3FJmU1()h}1TM~dgdAg<9M+Bof%yhJO*ti@ zV>^z627bO{+95>Ze~h_Oqi3z2yF&M3`j;ny<4^+znEuCd_J3Hq{9W`Pe7UpQVp4q) aUu@U6uv%-X75vM<9I!iNTSz$m!+!w^uD|R6 literal 0 HcmV?d00001 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..a9c97b35ef --- /dev/null +++ b/classtz_1_1gl_1_1device__vulkan__base.html @@ -0,0 +1,119 @@ + + + + + + + +Topaz: tz::gl::device_vulkan_base Class Reference + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.2.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 0000000000000000000000000000000000000000..2946fb4a1223cf2412101a8dfab9dc2a689810e9 GIT binary patch literal 2088 zcmb7`Ygm$77RO)05){YM&ZK6Vg%YDjP1D3nXqg6HN1Lp{OQzDJLNb!KAaM$HOv{rn zmV%U)nRTMf3o0f=X=5o?YTku6Q%q9n;^kPz;F+1`IbY74*&p^^d#w-aS-<`NKhMq! z4)oR2G0_14Ko57oJ4AEd0|1CU462E?@^v*kusPWO;C{7QtqG^z&8HMfs$A^R6r)R> zQ*yanlXvPmbX`+}p9~2M1vK}c*X}i(UI5Up#d&)jOoz;r4c{OC@ptR6rMEWDsUN#( z4{t4qL0K;^23I1=5I&xS;v)h)y0Rqr50&f;7#M*a`V zXME11pewoK+v(UTv)=r|OyS6Fbpb6R(&rLp=Ah$99r^xwCtbuL8V5XxCs%LmDcGm1 zSuxcW2nJEd=+sJf!};u7+J!Bp^-5JaMJTm@)hmqy--kM_RFWFlcW5Qa(+hhHwRju z0fW-TL7LY3)1?};PrjigPPaP}^=^V)20#oy&c%xi_rFc(Gp9u(-7l-%z=+~gdF84T zpS8$trAw{eeAsSlQ@CARZCw0!4HH_`@#-+}&M+KW@8Q!QCihH-11|D26rpD*^|a{s z-ClYe!L5$?#pW_olPZZ4UGrcC`7f3(mOhfvFXk}l$uILGYnOQX*>=|f@dx_6|1C)C zn;wLk6qA*-RDlG(GMM&RC<}zVBf>?&MeQvLZ^XUy@3f)|1BmV%)o7aS_*>>U`v+vy zZ^ZQtXe1V+c=zyo1$RsEy34ui*Qt<9i2EQMm9=GZ+BVi*`{+M%LC>DdZ3qq5<;g)b~m>e+*-6U4R`$w>~}s|{K=?wp$`eDK`$$L-gC z$}b*$>9g1!V?!$5X*^cqytxmwJ>?R!(M<kwJMgGpIij7K_7_ zXG1Hn!Kqc=VFokj`UBxv7eqWE(2p6M@lRI;17jcQm8ne-qvva{bh&n^CeA~?O5YO0 z@N48(EHo3tHG-LyU=;2firz>9iipRY!C|t)_#ktxm1-P>GOc1Fe=?91y}`l!icl6d zI3DvJGUI zTN&CHO$aCFEV7gpDNFW^7tBVJ30r(QGt4Jce+HT}aWO2K5EwxbE-=0izul<=t)FMj zbjskI{u{;MRU2i$!im(b&$R1Pox+onuz5qxn?!$RWa4f7PV~J*(3A1NN&3mzHFWWC zy-d#xo~93%a}@+)h@O3{QJqxn(@1LvuoDX7bxWvKo~s5FQlyw5CbEgbx?XZQU@4W; zneGe<=fc~2;7`yNxYpl*@fV<5GBplAOORsRt|IL9HHN^!py@AR-{dL}4LmfIquzl~ zZQiqKRj!8SE2-sSYU9P`mI7PqQ1xgVxxD$c^Sw_)ryKIEKJ0h|Pw+cB)R6Qs#%@=l zQ%sQd$1CKkN1CmOqSt*Z) z{@;n&e;txCb3>wF8kDa{vb$~6j2^8BWxJ>voM#X4O!9`_p-a1x?=BDLBzAh$B-2UjHj<0L#ON$W;lB;pq^sb5^gd9eyBk-U zH^@v9bQBynZ2c^ab1$QC4T|3Q{U5UYnWqw^;CeJpaBHDYfsgAY0B=>EC<**%Zd0?a zaW}+Y=&J_}J%yEd8Oga&@JYSEx^+|L$ZT1&VRlr* z-eU2t@#m*Ly*2T!7c^PEp0nIJLVfofHpiRWb1UL_z6ZKSS2A9eu5&G2+ILlp h8kTQtxm2m)dn}G*YS;Pd#p+)G!0iw8=I=dv=AWrP_8b5J literal 0 HcmV?d00001 diff --git a/classtz_1_1gl_1_1device__window.html b/classtz_1_1gl_1_1device__window.html new file mode 100644 index 0000000000..be9365075e --- /dev/null +++ b/classtz_1_1gl_1_1device__window.html @@ -0,0 +1,151 @@ + + + + + + + +Topaz: tz::gl::device_window Class Reference + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.2.0.1 +
+
C++20 Graphics Engine
+
+
+ + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+ +
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::Fence * signal_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 0000000000000000000000000000000000000000..7d83876b63033d022dacffd2c1dd62bd39db2afa GIT binary patch literal 2085 zcmchYYc!kL8pmHvT|yj6s~5vmkyJY&bt^~EQ5_RBG&;RZCa#rMCJbsMniicV?Q&E* z$Y7CTjtRv~G_6ZYQyNAFjZ2SPBra)GN~oYp2|2H>HM8b?n)BtH{bBECKhKA~_J9BW z&&~+O`Wfo)(+2>+5c9b&4qP7qfEG#*0!I5e2H*^s2M3-$q0wl-@b&ESw|4~ zJ^9aHPfSdJc^A={pTHV435N{+BvUj zL+qC9zb$t&zelKY4!CG$U21JGRg>7A0%vMXS<$u7&j~C^z-9j!Cn<2Tj#HowxieP zEdNlmpwhgjz@_x&(Eui{v!KV3XA@a-7s?CQ+p9yZfZ#Er^uFT(~KVKijuARH| zGNV^laI!61g>%K{or%C>**}$Ud?EWq0?o&fXtz0j6UV5~gKQ?m%Qy~FSg2gDqyCLF z%&LM{j3#(IcE&P>@R1%Hwm*!_BKyu6#bsp2AJymz*vuCT6peG}&dvSWY-VJNrDyI8 z&i{Q*_1;Z!JDa&^7{>IqW2-&?bU%9*&fnAuV=uLdffG%ij>4UaPp-c4$X`ejBm{h( z<6!j(rkMV~CdEXMGl|g)$U*!?qQ=`@G5ZXuU|9s~6x=e_QQ3fGilK;fi>Yb*3uxW& z-+qlRjq%>0!)pm*g!miH6y8m35>{(&(>y~z%Xgpa7q&ztK?#sR9^vu%gj#743~?WM zJ*GNxz02#8#b9=y`b1Y;OxgO%5i{4W0@!?DQPxcSZco;ce^@ZIV$JpE8>CQ&=tob+ z50N`#uD!oOc_?bADO-2+-Wiu!+ohs%6K2RyFwe9jXyp12vflZcdVxfuHY{LQYj1u~ z)rO?Rrqp@yY}X8;DFI2geVkP>Qmc2N0z^~6noWkIsdm78ie)7s4$w(@cJUF`Nxjex zq;*ddOPJeRypQWas3roSSjxEEopQjYgHdE7Y9k98Bp2ErLC3Et9E-7TaZt>n?SBd8 z@94^w5ek+k?-lD2q!U;&22a?sLQ(v-;Ruk>_RE~x{LF15_4LhbRLhPM?KB6_^SxJB zXycPF#cAz)ONX*9Rx)X~`nAhFMYB*Szr0R0B*!Ip)+@YPp`?KDk*Z-3R?x!nrd-b7 zKe|6oX?_Lrzm+_J36RY!x6P=)_3DaZR zycS8_xS=JK;sBjsDeRmob@n*IzEq@HOZidhC5uZih&uOwXZpl$@eO>pyGJPuWdybr z4ET62^!~tg;t=9+Y-`#1oLxO=DZ}wO;eb%?RB=O zSV_bC=#QPhc8LnoT`Gw!J>Li?Hoy5%72lJ6V+W`8onhhq`hk8{s(3{p!h4#8b`mS^ zHu8}bPO`IaH3z;rEYgS6-GdsjpBlRg%LmEhHNP$`ltUW_v(iFZl}Ik%#iUM*|0j2I zGH-vxh!Q*U^c4l{owwwC1Ju+;xllmBKv+xYEARoJgxkGwhDQ?u8lx}+h?@3))iLn^ z3rH@gX!?HPqn27)KMKWOS+byOb-Npw(NReBu<+VngQ*%R7lLdwC5$WaGUcLFTd9NzM#Y|5-t`S}M&A{9Ihhkj4 zeo^9#V7;@KZ&6 z+kMJDB-f&fn8hwFq(oKgwIpshjBfox4m`NJqY^-&bCVZW3?`iHiK`TI$ko>69AGu` cKXiQQU3to)bfB*-bL->BoWS~We8Ru`H|B5nm;e9( literal 0 HcmV?d00001 diff --git a/classtz_1_1gl_1_1icomponent.html b/classtz_1_1gl_1_1icomponent.html new file mode 100644 index 0000000000..d408c3b47d --- /dev/null +++ b/classtz_1_1gl_1_1icomponent.html @@ -0,0 +1,118 @@ + + + + + + + +Topaz: tz::gl::icomponent Class Reference + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.2.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 0000000000000000000000000000000000000000..27dc9f97d4bfd9202b59c8b6778d1de6cdaa8b38 GIT binary patch literal 1468 zcmbVLZ8+Ok6u+p96xDc4qDrHQinnS})^!aLBhjUV1$n9n(W<`X!MwCyW-Zc%^2bum ziXo;gO6k1KOX-wqFhjLeR8*P=)lwy0v47ZyKKr=);of`B{hf1u_xGH`^`NkzP<5q{oxEd|=5EYDHD=l_dIGZ_mlG$mkNm7QE-A}goV$7a zWsFkOUl#JMf#85T_R<~IHh@lwP$LN634PUp%6VgkGVC!|3Ix1dU=0vm9aMk@5pG<$ zRP3`JGV-tiHdW4R?J>`yQ&X!^08wacWYwYFo*gu}c(K;~U0p!x@|?7Oa$(A%;D9ja zfC4f>&X_}Cg;)}`xN94+r#a^Il7%qmJqr&s+PDUE<5677Qb7ZKJkO3T%cN5;{2ODM zl`g-H>LV)HFbnUZ7Hdj!2DHkzBq=#$sZgh!6I$MR;jcIw?Fdy+_uyaU2gQ(Eem9a5 zE?eX;2OP~PNBj5Yug1UW2-yren(IaoZvVT~;e`u9XuRnoRt}2KU8E8!f?+m}qaUM$ zDOC{&MagH=$+_3*)Vjb8nu-#EiV*7!g?4RIKpwkuwMi=sppm4sf;b2RHdUK`nAS^! zbyB2E!tkne0HSRp9zjq*H#7WK;|;Ll=WQVN(_#|^MKg`Pk^WEeDrXuazzTD1kN7ZO zsUOKuF5GXWQm9+L#gTms;b`uwp7f|*BZ*Ok0=XOvsDOE!N%jNgeJb$oWP{q|Tu{dA z0Vh?>l{_&2CqerV`vF=K6}hi7W~bHePIRs>h-8o;xGL_Z zZuuqLx1DS^I?Ri5i`SD`0uzJ0F?=kg!n&B8S)x9FyLj{kXN?T?vcej>m%?Y+Z`omngVYucJJ9w%d3d6S^Zmj?KDNsT-Z{r1pa z#!z3g-fG8c)e|ABbos?s6k#>M#+tbt3V(7f2zAmQkh`!m$jdbT*9HQzt_ zVq9%9A|)+T(e}Zye6;~>Cw*f94XK|s6kzgpaagt@ta)p&YDw|4i03EUk~34vvOj+L z{p=Y(r_m)ZpEgWO8JWmO--OS;oL!Lx$=Fbe?@7|_ zZas1N>}3J9{Bv*HMCRBTk;7nmT=!nPU<&uo$&u=yl0)A#KZoqdqT8LuUFCIwX{*2`9^ncI8^XmP-MbgR5)>1Q?w#L`Rr+J z!fd5ZVU|dmQ5uAF#?Znx?Go(!xw!0rpgNQYCteTG5PYbwcyP*z-o+}dAHB{g+(GY} z98f60;HDB=o4UhYy*v!>SW4p?5`7ZyT{CU6v1##5m;1Gx$OteAOUpB<&ACVn%6D$9 zJ0UK!#Q%nTBz=AEeYP}jte?00dHp_lv*?-^3Htg-55FYX;70h_v1iOvX0a4zs1L>n zUv1xKBj7OYD{03e#t5TmtOFPJgEab=oMQvpP1E|K>YR>H9j4oHXjtyZ-Kna3b!>#^ z)yRojfNJk&_)pfT8ijm|!ng1eWTn^^)62j!HiIhF!X$ES^INQJw)4zj~`qFZ(O+k<%(Z;UQ1>8J7! QstN(TC@wT|B`GlZA7jvjVE_OC literal 0 HcmV?d00001 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..ca3b76502a --- /dev/null +++ b/classtz_1_1gl_1_1image__component__ogl.html @@ -0,0 +1,115 @@ + + + + + + + +Topaz: tz::gl::image_component_ogl Class Reference + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.2.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 0000000000000000000000000000000000000000..bb983980e524eda68491821049e6d07c3f8b9458 GIT binary patch literal 672 zcmeAS@N?(olHy`uVBq!ia0vp^D}XqFgBeKf3OV-)NJ$6ygt-3y{~ySF@#br3|Doj; z2ATyD)6cwk@ZbSZ-1KbN5}+JsNswPK1CS2}=1jA%FfcG_d%8G=R4~4sd%JJ70gvl; z^PsK&|9AUqI(s-JFg>1WW;Jb-$kVj2x!&=HzL!myW_W!1%o#Z8i;9cqrOAGQ$|q%4 zZnyQBB>P48o1p5++ZA22Zk`b<$_tnLD;2lO#AdzruJW}uI-YU`nv31?j-FWcb7XpUK~Ttw}b|n=-^cEMIimP|9J8Y^w_YOYyUhbJ^EO=&kyt z@&Dqr_1o)u_s6~7vwFvcl_7U;-g)CU@rmX4|1*CHJ^Xy-p4i$xpd}yDF5V0O^>>lV z&+RQ5o>fANR9>D8E}69~lY!yDTy}<@0~(9^k1H%&++k;X+(6dNB+r)NhtML12c8{F z4eE+q4D(tv7%K1!{JFm%X7c? z@)w^M&bpa){;kpC=;PP-q@KFv^?H+L=1G}7FYawUm7o6cwxnsMwwmZuQNvox*^^R} zrM0Io(OACL>X=l$`mH|?-ihbDU9-w;)xV2tRe!JgnJm5Nrr5kLy>u1TB{#NeFG`iE zzqr`v&dH3&!S}nx$`@HEOq#m%d(XS`zn8AfpLg-=wdHT8u8f_gzUck6bXS3j3^P6 + + + + + + +Topaz: tz::gl::image_component_vulkan Class Reference + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.2.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 0000000000000000000000000000000000000000..956e9061fc0819d918ed31a36f589a62bfcaa8d8 GIT binary patch literal 703 zcmV;w0zmzVP)0000RP)t-s|Ns90 z008Lh^>vTJr#LVva2S`&=-}Ys|Ns9r%~qrU000SeQchC<|NsC0|NsC0Hv*f~0006? zNklyGOn41|Y?w3_#S;?pz@U_x4&ZjTqq5+h`8{^A((7t69NvkD7I&Z&SW zNe=})NqXpQ_(YNi<|JB;%2p*$UmmHE>Exf%<#dgk0r^M zx)}LHmX^q-)!iM;EPHB^?l+xvBsr=}@RgHK;kOi=6uy57Ne<`= zeC?woteG}ldo>)>X0JB8&%K<~L#B}A)(lr`t9wh5qxy{(cFg7PJOw06`xL&p0wj5& zKL|hmviwDOlJru*lca|No+LeVgI|_qnN$GqMg0K4teP4A=VxO2nc;8j^U_ZZAJql` zd=&5i;GuvA01pK`0C*_i0l-564*(ttcmVKFzypAX0v-T76z~Axp@0Vf4+T5`cqrfj zps$otnpH@WG^YYyk~|dflH{Qb-~Wa@`u$Hl^KctKof?Ffr0?nj_*>CjRhF%`jeHq+ ztlO6CR^C@F$y?UL&G5mhPT2;lZa2*4W8{-mT9Qn=Z?mTstM52(sSuu6r|`Rz%I5*T zd%)qVs-M|~H`^`ei|!1*!RW$QzyB%xmR~s%CfnYDx98N(>quvKv-~RjS;VeHzT>I` z-`G8PbMH)YNy)a+oIl>5fwU<(++Mp=_`TZX)KF5tZKY|f+LYMYVN*Vu#Lm^DLU^QE z^%GvaumeSY^d0!ldvONeTmeaHWtQA8pZNunN*jWIafT#Woko7(ls6px-^feSpI5+3 ll7|9bl00;SPbsBI^$#r>n_-=QHo^b^002ovPDHLkV1hThR~!HU literal 0 HcmV?d00001 diff --git a/classtz_1_1gl_1_1image__output.html b/classtz_1_1gl_1_1image__output.html new file mode 100644 index 0000000000..0d7f790519 --- /dev/null +++ b/classtz_1_1gl_1_1image__output.html @@ -0,0 +1,116 @@ + + + + + + + +Topaz: tz::gl::image_output Class Reference + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.2.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 0000000000000000000000000000000000000000..1b1dc0f1599a861d1b7ee1c7b73505913847bda4 GIT binary patch literal 976 zcmeAS@N?(olHy`uVBq!ia0vp^yMefagBe6F$chG1(g8jpuK)l42Qpv0`C8h4Xt{-f zW`V@?GcO)IcmNbPJsY+JD92e6^mKctuVGeo~Blk=%6 zTc57GXg#z0UBya=dazbGUL{ZdC%wkJ@<6Q+LfP*Dkr6WyQOn=!p`5b{I@<>_WRhc z)wM?_>nytwQTQ&7XZ4-#E7SV_ zf7*B6Jjw2Iz=Nb2{ZuPf(--zi>rKAyMX`;HgDAjp|{ zex{Mh9uepB73X{y8@~VeQT}!6nWb~ty1oT|kNnB3^CR@T^8H!!OW8jt-(md2SN=sw6*#G`yPS(jaS$mIN-tVQkt@u^+nV`3=GjHlG zzZ)(qW}mf7UvKui?iAzA*XNY#Zz{jr{^*ou>B_%5e$P9%{m$y}JgsN4-}hFXZ?&th zKXZn!;FRrr?PL11A6g literal 0 HcmV?d00001 diff --git a/classtz_1_1gl_1_1image__resource.html b/classtz_1_1gl_1_1image__resource.html new file mode 100644 index 0000000000..860f108b3e --- /dev/null +++ b/classtz_1_1gl_1_1image__resource.html @@ -0,0 +1,269 @@ + + + + + + + +Topaz: tz::gl::image_resource Class Reference + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.2.0.1 +
+
C++20 Graphics Engine
+
+
+ + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+ +
+ +

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 0000000000000000000000000000000000000000..a21a56d00769692c62b926bb1415bf1e02a644fe GIT binary patch literal 1309 zcmaKs4NOy46o4OA%T%03oQf!*Ji$tBwXKRk?fB5CvKt12d=Mq*8Dyg}%;dDbA6SGNf3PA02;ngYLz|B{R!za_>3!p4^*rzI)C& z7srZRFmJ^?000(1QDF&~M6ucO84g<|+Y6g8;U33ihdUe&OnvocTzK(;+J7VA@NyaY z%3`r#=bH_j8q78~KY_Iq!1f=;)>-mS0GNFZ3JYczI1MRZUl`ozg7-}YUrtJX$92b$ zHW1B%?*&9&5tuE%t{jyq@;v6;1kVTSqTtAo2sr3w2MFD3`>EacwAD6!P3_?YEfldL z;1m7D#h@}>3K7h^JcWPe_HVg6)}WR3R*fE1CjK&(Sy5SC(K=-6&uw%j$?_-7=*ayt z5|#0~syjc6ey4*tIr6YE$=qamcemf?kM4sxCi-{E)T-2s+Z6HqL&Jqhs)Zw0k7S#O z)rK!cKg1R!*O?yapG2sl&18x&yhnyqt8NT(7`Ut}mu4x*BBC)!VzO5k*F5v!S$pd5 z&9W_Rl3Per_i~O(oY=jhve7ak<}-F^hmaYLkkrVVI{bvFez7>PUURP?USy?Zvg)g@ z9<$Qw$Qgm%_A_b(oPHeW@CI$fbnb~ey~BQR4SCeT$9T9>;Fr=8DR?o3C-_;k2-w~- zXWxXfXxwnCk{y{K};$G6dh^y&7kcmN<<@>41WN zn_D(vZ!OWmH2i9B2)hEk(``dQ$i3_7bOv;6VNSWUW``i!r#8QuIMX#kp`K@M(hty@ zw@QZTnl)5t{RT*wj4xyF88;cK^n>%c-##o0H%%YW$OuOdd+nspG@vQp2#*i7)7JVy z&h}#Fs<-}Bcr2Zz@AO+Iw(do4yB|=yXc45J=GR1rgz`qy1WlgSWY4MO!<}z$Gms>` zqQMmkXw9VN-C=>Y*<>;mdcX7^XA^w}6wXc-TnZ4eA4K##FS(T4K4igF0PwO_)9d!lvhI+iVB_h0p?dZwAM&#pQC#h|^E+`Acp z5;BD8Hp2B=gLQHS@=T`dJh$t)$)&7yuPS9YRJEtI8BIC+fx-BCDAInGX%;Kop!b2~ zlIzRjC(vw+!8KPw9ABTo*;1$-HX9Fp{>G{;tbh{QWHa2o4v^h~noN-^@{=r*rBdRtD}RI=8Tnc`aH1+E7)l5U8@#8pa4CN+&evC^6M+i?wN5{KNU8#U)*^Haah z=|BY)^|jpgiSGO{Gu=?pmo1*y9GVkgK+%B8yHlqfp}yS8btipZrc*sdPx<^a{-ua7 zXQJnke7BKx2|*CgkjE(My*iC=mDVw%2@4)D3LVp-Ym94hu|@_!;jFNRkbS5A2IF&T A!T + + + + + + +Topaz: tz::gl::ioutput Class Reference + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.2.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 0000000000000000000000000000000000000000..5fe7e4e60b3bc499a55aa4fae40f89c6a897456a GIT binary patch literal 1403 zcmeAS@N?(olHy`uVBq!ia0y~yU~B-gJ2;qu3f*F8(FfeDDeT9L6mCe(|F{Fa=?cBGMUMUE$ z&UT(^`u_is@Lt0w-omBtbM9>RUfswk`GTRIv2I3Gwyg%k@#S8Z6gM(>dL3a>(G=vK zu*5~jVUo~KJx13_*D7x8Fnn=skBsT++PII)Sv)QU-xE~uRQ@-oA?Q@=Zv%b%b1_=K zSATxL@0Zj)A3xzMe_zeY4_tie=iTqedEdrbo#o};Uh|x5$GM+tWA=BMOxfK~m!!7o zS^3)1tM=>Or^xNSa{9%z^&%TgRxXZ=7TsXf*`0fKR@SbF%10p%#kaq6W`z9|W_+8s zRquh=)!MD=%eFu4-M-)~(>tzzn;1NuE4MIR+coQrS{&o%>2LP2`=4)ER`r!9B91@$ ze1qMl+7I#;%zCq(s^67vzU$*>|95+A>K0X=+rR!^7bv}3p!a|Buaio<-0#mfUOB-; z>%OYPqeZWagd4Olf~Q|1_fSjh7*r%{+lsOXk}$s^5`YI#}Ot5 zp^Xd;E;8i!;BBdWTph^@z} zho@vcFQam}pkVdJhP;2XSPf=gb!FWAtD|H3hK4#RU4{ptK<`X6XWg=$Kl)EoL*3{3 za^ix5>k}ELTk1UDpSbG$b-|^Y)4$n$`ewPZqoabCyQ5>qr!~9z?anbNC55QDJGmU; z;bw4qI$8U{w)-wFYZ4g`tf;Br?&|pAkM0AYr+|SS$m(db3wqqM}N1F z5i1krj&b@l~*%cW(W0-yi|17)u?eg1W&PSGjoE&}N@gH#(pHK5Sew=Xl#xY?D zr}Vs!HYvZY^;c?EvwB==376OPERK8mmY4DJcgIO;Jx=S~KVHh7sFL9PZ<5LL#mtrI ztU79nD>bE^K7}1v_CzI9`+szUO6sRZU5`mc7$ue^_lm98k}q+9$WQ!xp1r+xytP0A QSWGf_y85}Sb4q9e0LJ=CSpWb4 literal 0 HcmV?d00001 diff --git a/classtz_1_1gl_1_1iresource.html b/classtz_1_1gl_1_1iresource.html new file mode 100644 index 0000000000..088d9f677d --- /dev/null +++ b/classtz_1_1gl_1_1iresource.html @@ -0,0 +1,326 @@ + + + + + + + +Topaz: tz::gl::iresource Class Reference + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.2.0.1 +
+
C++20 Graphics Engine
+
+
+ + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+ +
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 0000000000000000000000000000000000000000..9786fc477a5c2421e8653c6dc492feb990417b5c GIT binary patch literal 1879 zcmb_d2~ZPP7+%!kNi>vz#si448UreZh=_s*TUZ7VB7`#}5``9&SOO?$fO=3&ILZ=}f27ot@qPz3-j>_kHi3cX77U zS%hB%L68n&Z%cz9EfI)o7R&|TZ?2`?1;3Rpj&86UL8P-b}WMptla6sOX!Ex?gcg)%kJ8vMD#VjfvFwVk>w4tL3CoFB z;)5r6ZFV+B$mYpLKJks|Nj>D3=;r*afy$N1I#s-i(1BGx@^|cUp8CjmV5*ukJ-j8i z-?!je^w5VhO0-uh7@@Yt5ClW?xZKW^$j*H&cY_m~dvXHH@i8G)kB2d`@}TIvH8CG& z9NU;KC1r!H(YxGb&YXb!7deU-JA7`AOEUaC8r!=^1`J)y$!j=zO~Kt<_+j1*J0ka_ z9b@Ay-R&lk`C01e?}+4_;;d^^CW31nIV9J_)2)Y&6n$mfw|PU5-#}0MmQ~N*JrRvv zi8`)dTArcmC|Wl2ptz47)vG%7j$O9y#t)fB?zczsTv`tYuaau0)8um@-ZYDg%E8q$ zu>>TlUQuRG)6dIt53?!pU;M5fRC{!(LI5~Rz9p-UC`qP4MAp4i=?CJT(H0K${!*eBw&#E99U^I$!h#L!Vbz>jxK)?Z@e~9`k$Ersob*2>xql`@hc?O(w{_^spn; z*&=1!%$#XZsb+bT&NdTb;~4zPli?ZLCKO410rF$MW1k)QXtV92a!U6xSpLgjlQ{<1 z5i`(n1ns!6k>EdnHq5yHDNMnW`SBo~ur0{vr|kkh3I-}uAr>UA5c9VjiGkP9bo{!x{f|NT)xHjwW@~IiOOo z;y*lahk!UFemYsW-mpX%stYZtG4O?!?4|>0Q_=*hwTM9TTe;Ljc2Fcx{cF!<|3dXF ztF*?R(7jM|ttIp5f3r@so;yjh>WM^1!>GirIAq6sE{uj@{&EJ+8am*N$Qjk&8Fl&9 zkV0yVRCkl%=e4NVkSi4V45(UGXWFAPOluDrgWKIO`nEhm(r4X9aa?n8j8Q!NZbjSp zQq3*N;6z-L`pcH7!Z_8XT~0QV$g;UN6zT9)a|U>mImOB6+bKGf)~_pbsEwPDs3%D# z{o*(M;{M8N-q^m)*9U8|%19ZiTBSR8;`i+!|Qecn%-XwU>yMqb zrLb#pi;_&eUFVb;&Fs^sN=;YP2evd8ibEpqZxP%(pdQN!J%hV`S z!J26&_MMP@@C2>pUSa=UizAcI)QH>l`D+pC^R09g(?bSY8s6h+lko8*{Jbc9C$YTB z8Z9{=li7EsFo#qf-#^8|@U|d|2AjvCrM2p#ucsDWC9dmc;&vbnXFf^h&&$XccY)S` fq?0yEgsH=Z5fXBPV`^v#xB?*rcD60p%R2oVF+^i< literal 0 HcmV?d00001 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..45500ea777 --- /dev/null +++ b/classtz_1_1gl_1_1ogl2_1_1buffer.html @@ -0,0 +1,418 @@ + + + + + + + +Topaz: tz::gl::ogl2::buffer Class Reference + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.2.0.1 +
+
C++20 Graphics Engine
+
+
+ + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+ +
+ +

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..c2f09ef851 --- /dev/null +++ b/classtz_1_1gl_1_1ogl2_1_1framebuffer.html @@ -0,0 +1,284 @@ + + + + + + + +Topaz: tz::gl::ogl2::framebuffer Class Reference + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.2.0.1 +
+
C++20 Graphics Engine
+
+
+ + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+ +
+ +

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..db74818ebe --- /dev/null +++ b/classtz_1_1gl_1_1ogl2_1_1image.html @@ -0,0 +1,357 @@ + + + + + + + +Topaz: tz::gl::ogl2::image Class Reference + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.2.0.1 +
+
C++20 Graphics Engine
+
+
+ + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+ +
+ +

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..0de3183f81 --- /dev/null +++ b/classtz_1_1gl_1_1ogl2_1_1render__buffer.html @@ -0,0 +1,106 @@ + + + + + + + +Topaz: tz::gl::ogl2::render_buffer Class Reference + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.2.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..8eb66215a0 --- /dev/null +++ b/classtz_1_1gl_1_1ogl2_1_1shader.html @@ -0,0 +1,241 @@ + + + + + + + +Topaz: tz::gl::ogl2::shader Class Reference + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.2.0.1 +
+
C++20 Graphics Engine
+
+
+ + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+ +
+ +

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..b2bee0feef --- /dev/null +++ b/classtz_1_1gl_1_1ogl2_1_1shader__module.html @@ -0,0 +1,174 @@ + + + + + + + +Topaz: tz::gl::ogl2::shader_module Class Reference + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.2.0.1 +
+
C++20 Graphics Engine
+
+
+ + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+ +
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..fc7165b9aa --- /dev/null +++ b/classtz_1_1gl_1_1ogl2_1_1vertex__array.html @@ -0,0 +1,246 @@ + + + + + + + +Topaz: tz::gl::ogl2::vertex_array Class Reference + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.2.0.1 +
+
C++20 Graphics Engine
+
+
+ + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+ +
+ +

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 primitive_count, primitive_topology topology=primitive_topology::triangles, bool tessellation=false)
 Emit a single draw call, drawing a set number of primitives.
 
void draw_indexed (unsigned int primitive_count, const buffer &index_buffer, primitive_topology topology=primitive_topology::triangles, bool tessellation=false)
 Emit a single draw call, drawing a set number of primitives, 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 primitive_count,
primitive_topology topology = primitive_topology::triangles,
bool tessellation = false )
+
+ +

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

+

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
+ + +
primitive_countnumber of primitives to draw, i.e points, triangles etc... Does not represent vertex count.
+
+
+ +
+
+ +

◆ draw_indexed()

+ +
+
+ + + + + + + + + + + + + + + + + + + + + +
void tz::gl::ogl2::vertex_array::draw_indexed (unsigned int primitive_count,
const buffer & index_buffer,
primitive_topology topology = primitive_topology::triangles,
bool tessellation = false )
+
+ +

Emit a single draw call, drawing a set number of primitives, 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
+ + +
primitive_countnumber of primitives to draw, i.e points, triangles etc... Does not represent vertex count.
+
+
+ +
+
+ +

◆ 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..055b0ecb25 --- /dev/null +++ b/classtz_1_1gl_1_1renderer.html @@ -0,0 +1,340 @@ + + + + + + + +Topaz: tz::gl::renderer Class Reference + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.2.0.1 +
+
C++20 Graphics Engine
+
+
+ + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+ +
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..c808e66b92 --- /dev/null +++ b/classtz_1_1gl_1_1renderer__command__processor.html @@ -0,0 +1,121 @@ + + + + + + + +Topaz: tz::gl::renderer_command_processor Class Reference + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.2.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::maybe_owned_list< T > +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 0000000000000000000000000000000000000000..1d87ed1aa56a6dd43cafdb417a8c43ca5fe43479 GIT binary patch literal 3662 zcmd5mS0%{kxP-*V>6%)R&f?)}}o zWcjV^jsrUY0FX5`Id2UB5)cB9ZBobz>Ty%whPh;py|BK%jtr+?2}uc03UyAY`0Y#W zm>wG&L)NuexckW7_8@CZ8vvQVzc7*+$g{G8rss{Zp%SmN##8P=dw{qXXt}xd)(|Y^ zh_sCRi1@*8A;ouovXoS*UuNpWPaGa!CMwe3CZ3|A6Rooa5~d*4cr%J8WvQc8>fhB~ z+rL0s@YYNg`}wj{IIzeoGUV7C_lM=@R4qgD?79gzry@Uv-aaYY;+OyI7X8*@XPVdZ zo-3b3o*%i0Gag7Ao_Z)-#JAt7Ffqi-n8`?Jv?Hwa%{QjdR`5iSy1ae16pj(xt9sQw z?@J~?aXcTj9xcAh;(pgI@ZMgbfm}DfnVt|Vk?cVV~m}^+BOp3$0a-i zj3DKt(C(O*Y$q^gj`(BD$f)0kdKg|kxhIG#8HG3G4Mlv?p1Mqz?`0zASzbA!m8vTd zQzF+um1k^BjryF_DCG62mtFdq(6pJ$FNbakSA($z*Junk%yp)JiK(EBMITl#j}(Au zZc=fQS4P_54mNnSJe^qf;KH7B$?tTT^A_u6p8YV^8IJg>WDWHyrEqBXr0!_a09Y_= zCv3n>%2ZODCko-FavW8CiR=i+Lnh#2T*nG|E>%DbE%&Bg9LKoYXaOo#TFRT@3_tZ( zOfWgTkw?D(t6FO^e%@+8>=B+s>txirKGewM6)jk!jm(=y4sy7u4L63&Kw$f$=5~Mf z!L{TN7Z8v+c1G?C+C92Ne-TnrrwoB)$4CCEIO;b)i>Tz)(KzQw_s;TgQ#x8NzP6$rHxQM za^U7giFaTv1y7t@BC=d;N}ZAx?vQaXgdEGkRgo%#|9hE} zxCX|e1jh?R36-Q9?y0on7pQZ778A$sU_&a2lO-sF2)@{R!ghU+y6-7wf#)Ub?7yP( z&v+jJa>gYSfmWrBa0i%@fy1UCaC$i)bpiM?2?m}d36Ma-A06kOZHSqKj$YnBHB2`Z zGA3PU4p|q@<)wJ7@U1z7+#^^q7#p9Wpm zR(3V02KaDA{S&Ff9txxNvAu5GT;^qMbSeKyPo17KUo}>3UiF*wpVQxB92?s(v*R_e zK<-j9XgejK8=vU^?Cca7PjH$^aGuTEHVDO5GiK(%Zh!UPS=n9e2ivAC-aWJ?L|PGQ zLpcuR8E{w{q7XvqQS*07V0lkuG?i37>b$&Bo$5>w%eeFmCMODQI?otX5P&Om*8H(<2@Fl`q z_lLj{;H?P~5pY{+TEPlTEP@ts9sMt{#t%M-*) zPTg~yD5uhR+tr58ihPscJ|6PH>z^NdPw54CNNsU}3vIzGr6$%@?|PV{aAx#aed(Kh zjX~I*6eV}h?55hFw&wvs^T8wDLfoLec`bhgt|t>nnk$4^ z_m%>PJ?%c$qsHgpk)1wRL?#4{?DVP@2iB@eMyixMaPY#YVMsxr>8c7&DQQw(nz`Uewkd?6Z~1telCoCOEyu z8ZzYyIe~_ob^F73DiMP?^E|L8y30?(1bA@=2CfCv-9HA{lm_<+ z_Qi}ds`3Yd>)IAKv3XT@_FTcfg;yRTY{(tB@5MvnUuaDDksaQs#r>|0Qn;6%dD^wQ z9ij#bCvxRWZsJ<{1B+%4^NQOl>!w`kjTPE^`JRr_P|9Ma%h^}~+B(}ov0<{bO#U!W zdeoJBF-M@bvBcWD_fU<3YqhA;hr${dg-&JwPTV_~ky`^*sm`z6;)uLbY|zd$eP*=Y zJoo<#wj6!93HdNNOE@qMP_$0^XO}dpWc^arqhtrFD4ABZDv%Y z&LZ|BW9f^QQ@diN$EJ7nYFfw~;aT)*ZaMmoJI@>zebRhpAr8$=4Bdvh#8_rr;4!oxuiVn*ON^8`g3S-3T!})=_Izz z-^WbBlBNB=QG$$<{pYffme1}WM>aF&2ZzfFkJo(F6*Ag!UfLLJZAvrmO?A81Lb&Q2 z!G72!?DHm3csaz)9A%PE)=*fK#Rxv>vx=-SSx~IWO$KKIqTIl?l++I)PGzwYu!~Cl z%lt;=!5JcVKTp<7B4cNdr*qk-JOX#4Z^(_5Md$l?wGewX1JAXF6!=Cmn%P6{Nf?XX zzKRIf^n#b_Z%R-)l~BPF;-p5p*6k_$uLVDZ#nJymk$H3L_Ce9hr&hh15w|vG>)dWl zi{2?y5b-KP$-m!`B)GaS=Km-OCUoMX;xb_&w6Vc5h?7~TzeO?IbJ3f1UB_WHHK$6gI1-G6pt=qonTBV8xdnO%98E$+gA zC$|$aPR$#9)nR&d(|t{uBlHWCqKaS Ng5~+LumAPqe*spICK><$ literal 0 HcmV?d00001 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..f1f9320e22 --- /dev/null +++ b/classtz_1_1gl_1_1renderer__descriptor__manager.html @@ -0,0 +1,121 @@ + + + + + + + +Topaz: tz::gl::renderer_descriptor_manager Class Reference + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.2.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::maybe_owned_list< T > +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 0000000000000000000000000000000000000000..34289542c71365c31b427e31e6cd78600627ef98 GIT binary patch literal 3681 zcmdT{X;f3!77n0LS`mk*Z5e_VC{hI}3SkBXWgbib1x&CiphO5l7_N|j+NZ6SIe-uW z2L=HliYAc|0*F-%1gsE{DPanM1Og_80AY9+`+nH=-&@Nc@2>Tov+p_U+_mpM=ljmy zzxsGNt9_~QB?JOdb9HfoLm&!t5a+&70!K8P8QtrhkB9G(wY4?SoSc@%rav#YFfok! zCa-;Rcz75bH)HvifOD!?xEBHfzJGjRibQa&+O(_FA>RarnZl9Wdp2E=o6H!S!L=R9 z_wVWLwy+wr=2AWwn`OOm-E{<(Y*o)(1m0a;j zLU@bSv~Zd;`MrE(u+rAMO_Q`ZR7k&6E_JM;EKk?16_2m%zfd8)XaaN{EUc&l8_B6Af;TJ_qqBHh;Ny!2pN;uF!qS~>=8+!e5juFQK zWaD@&VyJhLB7EO66Uw2z4Pl0^l-7q!>+#m;E4jx~>1KCm33)VN)Qv-_${!2MhfQ6= z5^WPcO!&=o$arkSH;i4x83F7BIczWH(d$^+CRk+sH0*H|WkjiWj3VxNO#_I|I8RPg zCrow_U)h|R%454)4l>FZs}898rGlxMfvD>3ExiwO;&m*IiAd=K)Ntvu3-L9;n+a$j zZvSh|Spcaf;7`WgsT&C$ofqZR5AkC>P_ zn^X*(iJi@*W_u7-p-fG^_a^Snnh*QC+JtXU?ZK=O%d^$&mnPJ<)fJr$Q^8AE!r~=) zZC?`qWk`%sD+`9*H><{_$7~fI4>V0E6#7ps-H2U_J2-e+#+)#@EWAi`?XMYnm54&g zyW32Ml>Il>(z2!bM9ERq0WLhEN{?EFrKc+&P1vc-Q!M&AUlu=`C%`0BU#L7f0t-QyK@7dk_I!$9 zv6~@pd&PJToN1sq7q+Z2*LNFYmqk$7lD)PnPe?59D(`m(AU`ff%ckZTgSZC`1eFZP zGBK%!mcBNQtF=i{H#nfaYfnA^IrO?+=?k||sDqEG1ac)SUu6rS-6rKuQVqRp3cG}b zY)j#01*vW!fZzTfFn1JmR99gEdqbd-CHB4gDWWZaY{9jQvyxuFwIV{E7_y4|Vf`!z zgxnq=-$qNeMWvl|%TO zHgMIMq1ju!b6Bjo<`+L>49-v#m_ABsP&CX6eRI1^#oMe03xQXvVGGiofsoIU4qm2t3TP<@*8GuTsT|~!z z-P6HZw8Ge83o+Vnjk;4C-)R^zV$`qa^x{)!?Px2Qz2so0+Q6?O$xzq*MssK*$9YF> zqPlYqj3cQW3p`P88(bN&!=zv`u9UG{Ko5OSAtPbDR8x#We!nUsf6`eDEnSHlYI$8n zdANGZW)IQxhv{6_3WhVGxugWF*lNK!PyO$eG9u#w`r-+L!j&|=)h-7APo zLYQ~nMfaWTmdc_W05Cq<=`}2gP2hSR zw@T~RA}$;^@EOwQRR}?^R}GcLW#_G)hmRYT;b7+dWJ>%9a$$@WKX+m|vPX zxATGXpnqSG2YKXg zvX72?VIJIWz?0srplBWEJl**KO^%MX&Bcrc?wVcq@(n}Ty*HL2;ntk-HSauz?xUw` z8E1%n6JJ`FENSBHgj8JwXKwq0B@O;T)LWxgG?_M8Suz#FKNSaRDT#~S15zg z_zQU7eAIab7YL_Cb(g{~&P=6WUQZF`A%{VFpBD3sXB3?DcnUx3vlTYz^FBN1nPA?s z*9+932 zHPnTE`i9%Oy&0uXHa{!kzCyn8Z4qfBiv@@h8?sdm@l$p0%{z5~doDE({v)q~{rIfM z(6lLOYH-=&d`sv()}tA%%FYaNx8U87ga$I(`YU&GwIZ~w-n+KYQTi>sC{Ww`^}xxh z!va-C8@D%z(fr3*oVvdqrApq>`HA?isx>&CqB-o*bH*b zek48wA?51*pYNz;7TqSt3wOrG@x9Cb4X)opzBQ*O1vep+BrucWwQ~ zlP=r+v5mf|!Hd>mcU!`kh!cp)R|g*A=9%f8+pPS#`lAoIp$GE@umeaxXb2f znf;8XKU&8N%ngZYBg$4&*C=14#V0nr^P~hkslQuBUah{a?<4h#m#)r(?B&+2)Yi!}HSjN#xpWo% zL^;d)9{s%0DfdJD(`}abIBo8&Zv#}GlA5cZ&O|JP6hw9q7n-|=yjQ3Jau>0$b@;~0 zX+Nk}({#=iAD{Pkt(N>vr015&>?vHD$xF z?QKw@6V@g9w%2*}U3!MuXqzRTDjibJ9hRGY7$`QWy z8H92T!e8P4s)Y8_pnN%&Y{?kC?pQWen!iq;HIldkNAk!KcS|iAmx3Q!Cq(vIUy48} zc4VSkjnI`TLSQUprOvFN0{o4(wm++b28~I_r4)9n563oK`@`wY>81Vt3aK~DyF}uG3e-wm8Mvw_>%Tetfa_^? z*t*1EgWe^j$F+qP+q5{*a( + + + + + + +Topaz: tz::gl::renderer_info Class Reference + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.2.0.1 +
+
C++20 Graphics Engine
+
+
+ + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+ +
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 iresource & resource)
+
+ +

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 (icomponent * component)
+
+ +

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 ioutput & output)
+
+ +

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..3ab8d36c93 --- /dev/null +++ b/classtz_1_1gl_1_1renderer__ogl.html @@ -0,0 +1,337 @@ + + + + + + + +Topaz: tz::gl::renderer_ogl Class Reference + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.2.0.1 +
+
C++20 Graphics Engine
+
+
+ + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+ +
+ +

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_info & info)
+
+ +

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_request & edit_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 0000000000000000000000000000000000000000..04e287eeabafae34646ef940289c8f5fcf490dfc GIT binary patch literal 655 zcmV;A0&x9_P)vTJr#LVva2S`&=-}Ys|Ns9r%~qrU000SeQchC<|NsC0|NsC0Hv*f~0006S zNkl#pM<41|Y4s^yBsZ2Mh(UcU%=46h%v?ig-DXaX>yUI zUz3X@{W`ej}{#nrOQ1G$$qD^(jc{cQY-t8Hfj+fEl#?b~k> zdbo}ec6c|}-Bi}V&y_}Hy&0E1B6U5q=E!R5X&*nVuj4$XI@$Ns5J9P6r zl4POY%ZViK)Z=%>RqO^y_Gzu*bYIvd&+bW*Z0K^m9Ain+txmt;|F=nUAWbfk^lM~K zza|#|_%*ozz^};#0Des_0Pt&a0f1kV3jqB3FStSoVL%~B(r}twlH}Lqk|e*bx!Uok zuju{C%h`V$*ZT@tlzNx8_1T(h!jhR%_MlDJ-i>p^Pm+0_)+$Dn}om4bvKnY_%4_2s_LP+k6BGU?c;~_ zb)3gk=Xu?yvt_C~JCDWtcg~|E75esH!;PPttJn=m>eG4z(tYvZ=U*>-$4b&qb?^84 p{ + + + + + + +Topaz: tz::gl::renderer_output_manager Class Reference + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.2.0.1 +
+
C++20 Graphics Engine
+
+
+ + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+ +
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::maybe_owned_list< T > +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 0000000000000000000000000000000000000000..0d5fdbe33b66a5c017ca99a8ef15839016977c18 GIT binary patch literal 3677 zcmdUyd00~E9>-DJY&6@Y3Zz<+=ad^E~HpcwgR!!~6MtzuzA}IoMgr zu2x(PgTZ8hqn0QbOo9rXKC7gl5vAsa7fUY=Hcp2Z7Z;)1H}58~i4XHlc4!B0CUv|S z7#M)YjTp{3(42G_%FYo6z5jF|B+1ZP**AdY0jEd_LHbyDHg)~-pGz>{+l9=TWlCs; zzb0(3w^N*wk>B>5U~w1`18CD z_3eZGS%?>#Qp&Xwv&o}nN2=YQss-&9)2w^6$&(~uA!~eYp;+4Oh>^(J0z0u4JNY<; zignrDHoXf&pgj+q8hB22socvYy5w8TUoNgH;+_UZPtuhFLedQ$C7=!GzpwI9+81md zq))NwX0XjhaiVx!!-M<@N7`wYbu6zM^Qgp5#`C^2$7{GIAe@zb z@e*mUoKwp`K*sq@)@xv>BUq!mnc3`1{CM(D>^e_jkk_%o1P|3ZoC)CfN`o@nTbx-6 z4zm{xe6~|6Ynar8Yva2y#lkL;F~QfU*%6F`t6q5P6Q@y-PwL5ScHm4Q>{DO7FTrrs zZ;k=R;R9M+>c;|45`(`NVL;ARM{u8&QRSk<{O`Ld73YF)k9oYEyE-`&zNgQtn#SL8 zY3wgWKyN9djcrK5kDk9BBvmANvL68XeCo}fj%p{ijVa!i#moNG<^pnK$M#$x;#}xB_!qxGB>Q+1d$SK9Uk( zjoKKEGS<+BE!9Su8L;{)4?sES*%K~{Gz@c-uOIz%UDZUHP-`lyg(M?SybV0 zcp*+W;>xv2h7nfP(>!6;l%8A@>{r|CMZ))))NOPr6BDLcY?g@_c6qQvYSq=k z$>1=k-v3zY$aE?|aK46{_9W$S+eCVD1LLSq#r)(JyD|+eR@`Alypel1(6i$4I)IvGBDAP==S)hy^;*1(3Gg;u|CbJd9SMftacitqpDuCGUx-cvnjRM~} zb(L`zfX*ukm&ilThkh75uIA@;l|zDY%&5e)0Is#d$w>!vB5ms$aIO;Ir>sklIL zOkN+OD~^|bX}^O;^+r0{_Q@!-UI|$C`V_Wketsb*z*xGhD4;Z6PLrcc@mzQ;%0nd* zSNDu_Dvz?*c-fPtW3eeztC*fQnhlFGG=2}}gs}p4VKhHQ3s4D^Ps-Wf+AW*m&MDjo zbnfl&?Sm8Gg0tKw-iXM#j(JY&u};H@;T7%>^-qrQ74?ucpmuJUB}}Hty9Ty7HWET$ zW1zs6TJ;l8;_)y&T_9okSOj}`7W;1!`WFEIY+8cyy?={d~jS7OW?`i?Zt zbepFce}(#XwW=Fm_t1kM9!$8Pvs)0t*A=2(IR_GGJ2GmO^x|H|o1NSR(P(dERBfWp zIk75J2eOY7Z6)`@aSf0%Pw#oYV2z(O2N{Eb{`IB2gk6|zw|k{MY(D6NPdlUQg>Q#X zpq*oEGLjjZ^2T)j6aq6TyAV(PsA{K;(Mj{g4NJ9<&cFUtI{15^o?z>$b zI;8P7|JQTBl(5b4uaa}_ew74E+-b<++~m%6kO(thOP+=eo&jMyYflBpslz`@yK3dy zb&xQBX8ni4{4=iKkoCSNdu+S5N|=~BGLdR)>2%~sma7L7xw1tR!bEN-l0umWkR{Zz zXD+E+ysYzt8a`3aaOBh)y3~xLOn5+Q-tCa{K|MH}zlRk6$@=oJZi#BKAD?a6BQMN8 zW_91fe6WGmeHJ;=7cA-^hZtD(*Hl0FE;khG!9dHFSVdskSlvD;2`wSaT3#QNB%H9Y zd5>}Lwmd59jn!#i7jcjQF_fvFPegFUg+tD+bpp@AK>7EFK!#4B|GikAAi4Urmr--# zusMCaS(4Zjcut%EqKwHh;0fb#wKA4MXg)Q%EG;w$Nud^Oyo;`+IU2NyZ1t9l)-64& z!2e!YKcBo9u997jv`Q(T-Hbfd1pV+@Z*Ny7vaxyE8;|T1#b-99g+?bL6G(g7kuFx; z$}P7-4cbcQ%cxboyfm@*EWZLLZ2Nt`%BX3fYp(KmX`v3#UZurB;_ljGYqhKi78U

QrxgXG{P}Xm&VJ4;kVa=7_ za_1~a*tqd?+mbVS3+~%e6R|icXrf&2hvKza1V7QXA94d(u9`1MNcDoam*~h0>4r?DD5mx=#JEt*SAMu^|m-7>N@;QUG}Hu#Ir1m&Ws`9 zzH&sZ0#oB@s<1}BoB0qGSQI-VQcWrzxshY;nvpa5QUil6SzVwNnF1=|2^HVblblrg zH#w_SXq~@5%M46rjBw3Jwy|5spO8yiir(>D>ez$+V3EB0AtKW>i$R^g#VfW!kz`)vjGMW2DXLe+O3cV8z@*m7EoC(CEDp963ej6pwfD_quRwrZi`V=~l>TqfzCW-; zv?eFH6C?4hR8IOml_O@Kr4hYBSPY3w^-aA%Yh?&7Zo@GAo0Lx;gtlrR{NpVjX^(i0 zrv81ok*MO@j0f`ti^l$$hF|eav0^;ql|-gpY1H2O9>Wm7>%0$YO)&9oT8d#lY@;NoK(4UHPM(6mhnaNg1_t2I$0f_)>>2!|Pk{ z#XJc!uWjOnx(UJuZHV<2_IXFb;1^o>dka5ugM_mFKU6RlU`)vGSKeidVVnaAg+q%v z7$MGE2U5=US=Qp6cLRN;5g)p#D>`m!3}+afXcAB-P|?DK3p#WuA8_vy?*0o3Quw24 z4%cLO=67gWh|rfy$|mfLGsoznx80e04mS#*6(xz*{pzt$X$G*$>OZIQKB6Cb`5v8K z8{8BByo=Lp$TkYSNYsRLZnp28I7ikW>-5lrd>{<{GAhxSej(HBk>vwY3t!0(gxP~u z9G4?~y01zk{ZPnF%X2OEEtTbIb;@l_L6wH|IM10d1!?v}a)kH*A$ld`TDHzD_5{xB yR2xig5?laD)t4Mo1u=D8YN@}8b0A_?ZP#2SA>;VLFzAmU3^;6OS$gpF<-Y-QZUG7a literal 0 HcmV?d00001 diff --git a/classtz_1_1gl_1_1renderer__pipeline.html b/classtz_1_1gl_1_1renderer__pipeline.html new file mode 100644 index 0000000000..6a2557b6c1 --- /dev/null +++ b/classtz_1_1gl_1_1renderer__pipeline.html @@ -0,0 +1,121 @@ + + + + + + + +Topaz: tz::gl::renderer_pipeline Class Reference + + + + + + + + + + + + + +

+
+ + + + + + + +
+
Topaz 4.2.0.1 +
+
C++20 Graphics Engine
+
+
+ + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+
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::maybe_owned_list< T > +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 0000000000000000000000000000000000000000..d1e5a742e753bfcad7162e2f8800205ef9b0e435 GIT binary patch literal 3676 zcmdT{d0bNY7Dp|e7PWnIT$)gGNn0gcDl22I=91;E*yxz0Ats_Bica-fY_uLCPU@IV z?xyIZqC#3zu7s8gnkbs%#l&zy!9>t^>GNrpH*cBu{(6tk2QK$_?zz8n&-a|~_uN}9 zPAK)2+g8G0Fm>R|HAlr&aSEti3==|dcp_~Evs*eK4ZO>d*5`HhF7Fl-M8Je_*k1WzY zU^cMTY|F*7j8z=u%Yk*q8=G?y>vJd_+uu(6+Z$=GBg3`tdS}74*RWD@vOTll%Ns;+ zqn%Vk!1lt3BYBn_cZ%HQk|&qNWJb1-?)i{oqF7qAd4Ut}NvHIIejym$E?gIcipxF6Ie`p-z zj=1&oF6VHoVr&7%ILKKCl_n@ZLHBFd4SOtVweO*@rL1r~XHqKnSYPonWF$2~FnmlP zxMe~Ze_+rwX^bVezQ#y~UT1hzE5I};1fd|egG+zQF}zOmGMU_i>$hM` zoO<%q0p~U8JCn_}sgUx>2;NMsR#*FL;St<($6?7t8iU(Q4tbc?G@;`}_Ks=^t+N=< z57n8M#BbhD>GAgU;GJlgOGUWPVF+3c74}nSc-c2^xLNj{1q5RtK4>?EE@!709FPez z5IaXKTN*WDMeOnWQatx!9q#8UuWb=C>e{S@pAguv0J*)x@-*K$r=I9XP4tIvbr{_i zHcWHO1TlXDDZ161Y?bJu}57ef3T3Ft6n z_E_i}t-N312&_ziTwP3^$yWjh zLiX<#no^@{e9cg5Phqi%^mTeWscLIBu%L@UrDY9}V*mkWTMqen>Kt)_w)rP!bF!=b zjb%gc;DDu`qPWYgft87$9wow(kOD8+a%ZC642Zu2dg(l^chFbV@)v=JXkfn+O$qn) z3NO|11n#8xMHAD9Y9$s6Fgp>i%o&x^789rnPu=ftuU!=sE@s56(pm3N^_IEdLWt8* z&Im%dAFg56qIImgS3io5C+`mk9Og5-yM{w@qnOef@PJJye3Ij7MR1^(D04&;KaYE4 zU+S=!C=zhL2(5h@W5?naF~3rhtT>T6_vl>F3-*gs_Xp7OE>Z2S`uaiVzH_J7F#7l* zQoU(3K`t<)B2q~ek=3NRQpY0RL}>F~PqjxQHjRuFvuSyIHfB*)(#QXy)L&j9f)_p% z29Rg(l;f`kr_n>~$g>)_t%$$C0Y)!k=8bw*orpxACeNa*Yi#Kd?7!sd7uYk8p&|ZQ z3safWHiN0^=|Hfguo@(=qYxl_<}U>kVQV2+$~?9I6)gV-wLfPbx~xs> zOn;5jfd>an8Xqpu>XVIoBp^9Q+mq+tOhnj|qr!~|o%`8m@KZP*ry({*{kt6wij?(} z5Vv$ZsPVdA_1N({$9rQ)HA$rD65>G&=;(?Rq%3$vKUiH#N@I$<$h4DVn*@A+Owy*o z>KmP{p@)z7fd{S@A5PD?j{gBww*YomPRk;6-J1C}nQpwx?Zw~t1PUdwV^wZXcfOX} z$IaUi*u%m%F@7v9H{OXol`GJ2X(}@~s2)8RDJt4keAqw%^2!VhZXts%y}o!99j}>B zL8LlW%+kBF+SZEe{EtzeS!Tzn_Z1v^pT79|RL@LC74inPs-|Fk^6fPR(C&J`(nj6V zeVL>Xg5L}|XYM=J7YtY@X1(O{{3$lubOk#`~QJs69g6bfgz?M6}W29;@4%S-nTuJiM#ZZ}h5D~rEf zF!s3(xIX{8zHaq#ED4UrHg$8(rzSPP3&DQTbs}$d{T_7|NfU*c834QT zsgO*B3~@XeLjPLK#;FI)bE%SxWeK2=LVp{WI<$k(E+9guc&#_Ffms#oyrbw!_5$jn zxS`*O=6{mx-DZL{Ru^ze_7{H6LX_`sMk$K2g7$20Bnz>`RsXh+|G8TqKad};1o3ay zvvm;e)g$G2Rnk(3 z7rL#+axoCH_D`KUT?Tm}^Dd+tt>@3g+{WhjBp`phW_lI>R5%yN!#Euf?s=62-Q5hj zrLQ*qmC$ z$it(L-xS0BfnewXWmlrLyxNe6mqFG&DWH<I|eB!BKA^!MBDuRXHfLW zozSjrw!cYX+jdCP#%{v4Bus`Y?S@U4StoqwYgVPUW*tlAX3HHbuFB1upwhJl!Jie? zKS$61NRs{Gxs=632YVy=Mi|Nv=urAYT~hY7WWX;pT#j7A12JjlV1+f*!O=A>iVnWm zAB)D0{I-KhaPKQ=h4dW#h25ipY`kE?S&n@ynO6*mze;n_!*c?WyEWZ5aBpPD}CfZGDeIn^qNe;$hutr!_Gym6Zq!+4#Ov7D7 zIos+Xvv7Y|?)DN%P;$YXXxopgIZDFNa4g10i{#h|GH>hVOe}USS%lsPvf%ixmGH6l z`FE;LrnFEJc~%Fv)x1&UQ^kGDH1$aMyjQKsk-#Dm8&6JCSo# zeqo*8L|tfU0C?}w8Ho3D#mQc1=AZ2Jxo7I^ikH>5W;F4DAOg8{PrdXoMLV;7T>HuQ zXcd0*x(Hgj@sNZu?Yh|SoPLI?_DU3`kmp*qnX2^eq3kVNTZzY00W7Bs1d5V#15}B; zsHzjk#i*37G9#Knj~2sD)h#_c~6L|Ulp7;5pJge;t6`E!e;hqY(KHq zp#!amDAK1l_KpSjoWJ$+qqXz~zE%hU=1f5GobCFp-jt|>xFR<#&$T^t6w>6gdbAdL zB-i!YT$BkwEVBk;S{Y(JApR-{bQl!#4S~t7w91 g&e+ORbeZn>k?OU}dN!*=?}0GD&gppR(X&_n1`I9)ng9R* literal 0 HcmV?d00001 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..9cb08f7ec8 --- /dev/null +++ b/classtz_1_1gl_1_1renderer__resource__manager.html @@ -0,0 +1,121 @@ + + + + + + + +Topaz: tz::gl::renderer_resource_manager Class Reference + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.2.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::maybe_owned_list< T > +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 0000000000000000000000000000000000000000..d0b7c8282b84405f5a44c4505fbf1ba6318cbd03 GIT binary patch literal 3681 zcmcIncT`hZ9uD9PDl#}aBeQfx#i+p25*2BKN|R!OAc7!6N0KQ0(Jf;gdITX-6p$t$ zN(higu~CA6iU~ELCrC*!Ap}C($GCeoXLtXZJ;!&>_q)IM?!E84^S=9izkBc4*_cUh zmD>t~!K5wBPoQ8hF%W|9W(nwt{L6+<8;#v*`;+VI>rgs5!w*S(Re0p@@XNoXzndH$ z9)_OlbvWcheOrQ2HfR`h|L27iCqQ$hXDm*b*oTYFX3eIR9Df13M{&|%uixz|@->8+ z`7poG)$5UZDeo;*P9kIB1^C1p%Z(_@CG!I%%I1e``4SdDiHRsak6V`vab58KW{L|T zp}1|StCz9VGpfRKWAJY8rN)-4yd8cO?4J?|Kxms=a2UKcTXicwce81u#Qbp6WP{)Pdl>!5aSap*Ic~g3Mrob9-s3G%qw!m?v2hRI5?fcS%Ke#t_d-0_8j_$SuRRGkM)#&jQ@FhZFaKeE&F~)$0lq`+5XSuP-PAPtfDpB zx5@YZ)XKD((g|Z_f!KzEeuPE1?Z@TA0^};Wq^}(v-73gc<@9Ec+J-;{=$tL)<+RbWLqeG$(xu7hV=na%u$Wh1P??ZS@X_!i{SQ zpV;X)eji0q6Q4t@$qc_ZDi*aDE~B!4T@b5`;{*%sBRB5c*oJgQI$4I8&V}uWi%so1 zEBKNF+NMd)jd(J}Hto}qQ8|zSz)afSNo={`lV#G+#KTlWtKT_O6VQzm^Eyup6lCkQS%~B8jo}J(2FtxM zZRA}v69x)Hh$Di|>%yNWAI|?yZW9`|)g651sx>j|#qbtS*g0bh=2Yfg1v00<%=zfe z-{v+m1zs<#ZWmIR{)^3Tx+wCFM$f=vT3*4ccybsVH5=;oYg#Ab;yw<;NcZL)oRPd2 zZ<+)r+^f67e@!8<0HsAH_jng?J*{5;cpZ2ap2-4Yeh-ohyQAC1TluLgJ}UV7tu8PJ zvjPnwgkQeygkS;L*HgIAkNh7oa2wFAYn`(h;tTl@;yOJ4c-(`BHhwZHe=Z9*_D3b- z6DTF)b0|e)JE;A}Xi`R5!a1Y%P!J#PhC^mYK}%bTfKmw=-J$BpoW`|i`}&1JmlE3~ zE@L-`dVs2S1P}UUcIpCiR5ovP5Zv@o^-}A{zVBVS$amO|X^nzs?R!|v0-Qkuqq%00 zVW5EE?JqMMs3G2zA_j%HvM{%3OH)bikK9+@(rBalg3ITCRY~7gusn!AmajN{hs~pF zRFq>9D+C{I%rIV`nSlJI`-=M0*V&rX>MgyQlc5FmE14knO9RmrIf3zF*l6>2M(KP= z95=9B=GWay?Fn#N)&lGhWcyxq!txMEMb1ldn` z<}jF*I-It6$5r)4CtnUi#tm^cFNJFlG5>EsoEPA^cVK&Av9GtNh}|}$NZfAwj9-BL z3MutB?u5py*onOpVmJ0tA*oM%bFA!!zDC1lBft!^9t*GLAE)MuLcxKNU-uhXur%!- z_H@)O%Qz$*Ur1A(5L-b9v=W|tK22{ABGU&%6_4|7unBe=LDYo?OI4|2OJ~%d^k12K zN2pT5jM3yYK6O$79h^>;q5-HV>+D=QbNESrPyj%PWQ1&6X0TaJ7c!Kd2raZ4jrU4ynF+W41F zC|X|~J_)uWtroXQMQOv*3(@@&n=Lk&PA6AMZcoNbZcnp^3>#{{G3IXJQ55nKsOXSk zi@|rNBt_Ta*ZdRnfxTmZz%Vx2Xs&eZ^UD%NxGg4O{am(xOPAS`<3#-@e#g+H`9Umc zv0p^joUw9`Om{)TBU?TkmEEt<(;-T5^cDvmrtAyqAoPNxX@B?;Oqn5BrOIlv=d7#b zstmCX*laUwhI?~%K7M{IL=h6<=-8h_uG0p)S>@P z5gDie(Rx^lr=@&nK6C_84Mg^t2qbJWPOPXi`_$>FBV3|F>Iixvi7P?-DAyb z1LO;uKctq?6tG2?sExC8d2R9wQRaRQu!Vl+9`cIpH;XZhX0>82~! zWXCauUvx4^8UnMlo&aFkBoeY`&R|U6;Ho($<_)3&kg;4462eXZX!VO$Cg*3{k3Oci zTm4hMWmU77MXyZvPQqe*@vWQ%9BCnWy!eNzt@cBm71-e>?#P3wFkDPY3Q=JIczi;vgE*H1qN|R8izjtvH7W>GRGiOO_3F1(Wez_Av-Ubfr)`XW_B&nROA1J6dy!#I zdfppt3h`m;nk=~gBgrzfEY61JamG$+++d^pBE~~_>eTA}BV~gn8)gvQS_)NIB~&wqM~KAuS;0X6A#PNd;sV$2(vh8bE5p$i`V`E DLcu^w literal 0 HcmV?d00001 diff --git a/classtz_1_1gl_1_1renderer__vulkan2.html b/classtz_1_1gl_1_1renderer__vulkan2.html new file mode 100644 index 0000000000..f3eb0d3f96 --- /dev/null +++ b/classtz_1_1gl_1_1renderer__vulkan2.html @@ -0,0 +1,121 @@ + + + + + + + +Topaz: tz::gl::renderer_vulkan2 Class Reference + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.2.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::maybe_owned_list< T > +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 0000000000000000000000000000000000000000..72c1b373a6400044b6ecd3a4dc41a7d0e5ddc3f5 GIT binary patch literal 3667 zcmd570 zxeOVxLo^z8t}$jPW~RtsiDBH%(ysHI_SvU%dCnhaJ(-X$ zvfuykJq!ku1&)|vU@!>=be~%(35_WJ^0Z_5VQpb&wzRYaHQ#-h3b^?!Pj46U!e+|L zcLM_h(D;6qLpC(G${%BC3xoQfF5MMr&{|n8V0y^zlEi5GNLNFwQ1N-&j2bE7HWlLh1iP@5FMAF8M&57A}oigCx zHGpuWDw%PJgnO)wCaHm?BQ#z%FntOSc=c$~YWP$GqR6uOYI1gJYsTCXe9Y=K$xaE8 zsJo`l)JFcM{8-FhTWci^gpmqi-uu{7^KW$2wQ2rGoePcR6wZzo8HL*)nk+!$)~af0VH~Yo zo3L{B2M$shhnVIiJ?Z8&Tqj>t&Uh>}tZ=&Q_^9+zOtTB_Y+|$TdwgGTk3z9CRut7t z^d=r~PNWBSh=u}0p#fG4dBc59CveV5oKdQHLEI}h)$&%z1_=5UWXC#lR zG`kqFp@Zy*b#>$(ZlII99Yx+m#fDP!xE(Im<4BullvbAa9!^GPjl5x_`eLy&WIA{lrsT;(;zmlSI{ILc>Of7PTpv_|xod(3Z zuQjbmKSZMhSWv&!e=h%Nu*tz|7Fy_?2Tzt+m$eZTLHqN-!dgv#;VJ0SN;0|=0)Cd zElTq%iCwV%w}nzGV|fx%4baPOMA)HXXrYsmu{HF0RcODB&CvQkoF2IP^Pry6`pB%k z=r)OB6!3j455QP|IZIOe3q`o6S%m*m03e=o%HT=NS8W8ZoJwihlRJrNS@^hVml;2S z_-IYV63)t%&nZEv(i8|LPon~R3OlWE#F(U;;Lyb`*QOY1e*^ZB#mk;2lS(GDQ_fNj z&G>?FU*ef+4Fh}Gf}n_m4tMvrd`4%-2d|v+8gV7h-jIqI<2or4{pgx2x zBaRLul68l|_XSl1itxws`-Ipgl#_J9kmeu@NSv9-YuBMg#FZbQdOI2wq5!W4RVnZV z_w$^A9$ul#EqHaE-E(_opiOI<6&e_mM`N_=;7E(>t? zB}D!9_j%0uvGsx2)B4pn3Izi8IfecwSKA%9+j&_i;+_2p;J|QD3)Ye~3nqEo^H^j# z5GHPf=oK==k{x!q{T1S@L-|e!7tm0PRx~9L%&GpQGxnwc6o=r}^eK9m2$tavzOLlR zY#w_--9&5c8gaqVK%Ll!mg6d~%)t!uLNKTOg?f3xduQeCiY`Q0@#p|U@ZYm@;bxy4my7@)hJEHr zi}EL$LrC{ufT%d}2o;&)s#PwtZhf=lwHKY~qY|d|Anci2z<O-@ ze2Xd|Q@@<2zB1HOosf_%zwm0Idxw3a+9F4aRC=8UFt0+Sw)G#9t=n}=@O;!oJH-9b!mg~aUCNv5K2%#$E> zS!Uz>v6r&Gt8U9QM~e5SToumdMx;gI*mv&xvRyp_6&^u6em|A~533V6pJ*v%2ocsK zuDjY`r3GBx+@N%eDso$uun`=_BY+xSU1FXxyKhxL$63IUh@A-t~+GNEA|HFX(_OF2btk$vapW&rT z(j==8M=_UqfLgo}G^=(n)00Tbci(*FIwPl@SlJ+I$JTDVZNmR$&%k2H?VwCs3#@eN zZlL$miaEY4<{&e%(b-Q~t|(kUIZ39`pJQ{*5lOM`MJZtELx$IdDf1Y+VsvS0d5ba- z0{Ob3xKhBYtuEHt#D{Q2QRr}IK|;2nQ%3gN*E_ z5;L+2Fv)dt%Pi%&g}{`doSEXv=}|H^g|eoG!?&{L{|40=Whl0;N)5dGndEQ$kA_-+ z(tyjWZJdbXBrebVfMzQQTRblOlzkO-(C9!Jp|YjN|r;}Tb$Mwu*QH2zfSEY?js(T`oTd_&Kk5dwD$Pqs3OCF@zH zZEIRdp)Xer4^G6Gd$W7Tv8g)+CZULc$-H^G%bdj*WlpEz2kOC8J^~oqO`dRFP5QX$ zW@WO>_|G?(bN+)n-a9%e)$T2aRJq~*T$R_$V?FC#Vuke=Y;M{OP4KG_A%CJBhyWJ0HNyjlo-e*(h0Gy* z?V%*7vPI@Ve_}_GId|`vaCfb#`;){>)w~=+vcg-xTDcAS{euB!mZn8Nos9k~u$A?* literal 0 HcmV?d00001 diff --git a/classtz_1_1gl_1_1resource.html b/classtz_1_1gl_1_1resource.html new file mode 100644 index 0000000000..972c24bd70 --- /dev/null +++ b/classtz_1_1gl_1_1resource.html @@ -0,0 +1,245 @@ + + + + + + + +Topaz: tz::gl::resource Class Reference + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.2.0.1 +
+
C++20 Graphics Engine
+
+
+ + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+ +
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 0000000000000000000000000000000000000000..577b73c14a6f816cc2072a52620095598909c2f4 GIT binary patch literal 1874 zcmb_d2~ZPP7~bH4g`!44G@!BRQqVv_Bp%?1#VimJ?Iq zB8bF@K#&j=A}Zi`1gjhd@u-O5s2Bv#pus>$pH4f|PTQGI$DN(sZ})%i?f3ux_r5*k z=j&-=gfW63$b{rY41ge%5a6pbrhx0Nll+U|X6d&f2+`~H0IEjbGr8B!u5?_ya~{7{ z)!W+(-V@r$A`ts3DZn=n0?(h16$U4|AZU6IiTFcM3hHI?Ft65SHezvNiCC#W#5MAo z^TvR+=hE@;>zFo^A-hXzi(blTnzCeChH0mF=c*bUX?>14DS%$(#S7Sq@bU$D_!scd zdjzmhlz*!T1SW+=*N=uSCZMuFWKW!FrubSY(7oY5*Ya52X8*uegR(_Q3 znRq*Xu&Vh~Y<#y^x2Lka_-SiMLvURKv%dAUH=(h*;Aa2OFxD@~jJtw;TQC-;SQ$5F zo4|Zs?)@yxpv78Z9^9-yx(#8@z0W9#Qk)MZSXcVj2oC$qwV$e+hP1^suC|m<8Q0M+ zoD6*3F8n}_dTMXnhh5D{ICFOOb3^RSf(@DS%%Da&Qd)WEfip`Vr==M6ToEPMwRF2q zpb*~Zk-GR?ksZ}vtV)lSG_~_a-6D~8T!wz12^(I#j0}@1q<=0UBLqoPYHUzfp^;vL zNT_xT0u?rdjm%iIlsxrlq4*nDgIgSP6x@;tfoelwZblasy_Q}zV-W!iz~BwMa?DX8 zIr|HQU5Cb-+>9X`5nsfJ1f9j;d7>_AE__A~m=geVLNRQgGFm;$yE7TcpfdHe7ccz~ z&;s(1xgy$HwmT15*WnnWbsLrBV9&=Pyr5+xu{LcKn_~~VN`2MAEa!n1r@L&pB05DQ z9(3XeCdmqxA>M%6S1#NVSh55o-c0LzU>1x7@|JG_v(**CMES5CPt*fQ+|OSl9~^e4 zU^n0o-la{wyVJ`*S>mgn9?=~@2^-i&Fsm8TcTtaEyrn*T`&cRZ&e+{OM(D; zXm##)^p~7IccX2)`FkMosnC>~{l*!nTWoXGw!uW{w;4A;t)r{6Ksy{jwXKZ5V733H zl_R3zORwypqNCsA`mLz`L?XS)7KbB{&Ct0RJUbh78zEk(l1!Fd2n9hP4OZd0?q8Ta zIUg6wc2~s4&NMC4%eaM!6Q@GJ@Ywm}WVAYXc^NrrX~a#>W$BJOu$(X|MJJBVLwsVy zv6~VQD9(x!^kj3mf@*ZfNLE%}c^r)nl?t=73%F*-&OM}=p{3YQYgMrFV-)mK@vJhB zJmUpdF^0)!E?bnRawRY2^2P%>46!_MA`(aQC*CleP+NKsSqA{uD}5%GxK@=Zue7<%r zvy;UPVD>1Rw59xx4>!x}7cXJ-y=BDzuxvMl%|pNK{c&^$|(dn67;J;*d3+ zuEsQTijB1Fk~!9ZkzjJZp(rS}N%kIdSqd3)?R z3w1tQr3vehM-{4YDzns5#-i)s%8vcHB0>CoJSifIk0a5?7FA(Anj#eSJBnxiY%k%$ z@%<6D+C^3L+YZ9V*jBLHdG+r$)~fc`q+5QJy4#QrjZqHz^4|U3o+zJfwA8OlleTxx Z + + + + + + +Topaz: tz::gl::shader_info Class Reference + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.2.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..fd13b73e7f --- /dev/null +++ b/classtz_1_1gl_1_1vk2_1_1_binary_semaphore.html @@ -0,0 +1,127 @@ + + + + + + + +Topaz: tz::gl::vk2::BinarySemaphore Class Reference + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.2.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:

+
    +
  • Signalled
  • +
  • Unsignalled Useful for the GPU detecting the completion of another GPU operation.
  • +
+
+ + + + 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 0000000000000000000000000000000000000000..86dcf3d7b8e0752b2426476ccf3365441e866269 GIT binary patch literal 1724 zcmcJQX;f236vtm4ghnJN8Wa%>grFiAz{nz+1%;B(6fxii2tlh6X~H7NrVwbWAj}6g(!Qf2t}iaQbZCKK@^CPDo8MEpFKUEp3{##oewj=nS1Vh_}~AX$@2H} zK^vMI0sw%f)4Z4ffZ)NLiPD4T=Ol3;ysY$R1bXXqIvB^_ypPYlbH&}sF50X}JU%=; z44=C^+$Dfx3*wl50RX)JYq){@9sn@#p?i4-CL*RvCt^q4jSTqMYs^I5nox-cY882d z%o*CpxZ1H~8xv!0rDH}`(ktuQspkY<5RQg`Ff_wF0hP(aBOwrPmlr_I7i87Mrx7YN zFJk2vrx~>_RYNt!q0s6_o49TR_6pPaiV#(4mqb2y{8(REf2|7J7|NOZ;dyhpCT%u? zGkU&#ukIXgu4*Q}OP}FcAjo=#WZds+ckS4pr4d(kCRq-WUFAErwEVlhJ~)HfFh+&0+6Pq2?ZHkjj0|CBF3Q~|)%Zx{o<%1JBHP`LB2&@j z(+br3)`*<3c_JawXtqbSw!9uxjzr&m#uhC_u+4`CDo+tv*5xbv(GQ0T7-NO8gX zP$gBg$3$U(-aNgQWzus=I<%VQ@vWrjOqup9k+m1GEvWM6Te*I%2@h3?il^MuFRP2X zcm!tlxq+pRv4v5KAGfk>S-&G~yCny~x z#Dk;Tpq9?YSNVeU^;cRbAF@ZaamjS0L4y78KDk!pMtf2{*1Zf*&%$fGKN$mKMNbz1 zbihI+!r(1FTXy2=Q(chA#k0|&nY<``@M12` z>_AGRaKT(s6|pv^Bmq6!sb>M!o!DOT5=O0@gRqQ+U;7=FvYF`_KT zji|B+2SX5NN+dX!ua`|5MR$9A(r2w;0XMK%0duTZY1&!llT zH-Aw3vH{zr&~J)M=9e@VU>#U~oqMT8_1w1NSp^Qu*QA3do5;+gmgAJ={$jODl=knt zGI_H4alIG|X!-(aq&o^fvm%<~PO@Ah5*Ez2RLZ6p(;a0|Mt$j9^@~f;O>C2D@jDx` zg1sOyc%pS99TrKJ6fn{1`jNh1@=Bg>xB8?R9dYPTdWb$OEYsJ{8c-i;0haL0;4)f- zg+%~XXW&A1*lJ-q4U_Ll?Eg^OfBGiO5jI>JF|4jvnSIHZiKCl*v>_fzV_Ml!A=pO{ z=C@Nw4E?-Wu;MlI5ha9Mt=l!~_~lVqikJ?|3;WQ@3dyNA`Z}810D!b(M#!yGGM`9FQ)I z0l6_VrK$+m2Hg3RQcGfBDPD6Br+*tXn~Ppv9+7+4)Tw_GYuw2Wd3||u^K!ZkG`j-S zH TsCDo+0|0byKd-8-tc*VaT%P;1 literal 0 HcmV?d00001 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..26266558af --- /dev/null +++ b/classtz_1_1gl_1_1vk2_1_1_buffer.html @@ -0,0 +1,232 @@ + + + + + + + +Topaz: tz::gl::vk2::Buffer Class Reference + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.2.0.1 +
+
C++20 Graphics Engine
+
+
+ + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+ +
+ +

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 0000000000000000000000000000000000000000..529bdab902458cabc2935cde921994755e295a9c GIT binary patch literal 1092 zcmeAS@N?(olHy`uVBq!ia0y~yU`zzE12~w0i_?4bIyb#M>iLDnw^`rtmar-gA<=qo$EPEcFX5)Sd2W`R9-qssCoJyGVrVt zYV*7_*}!MgJef9OPrWmHx6Tdv|KM9rlzOAr^MBT64?T+>c6_Xm*tcoj0llYo?=q%W zXUa2Yt!`f{&$rm;yGUuZ`pHgtNxOX?UKl<8)+Vm4vhzdf;nVY?ILp+JsrF6uoqlu2 z%iHaFpFe)v7g=fi=f>H>*VA05eakuMvA()Cr}CxFu%U*;}*|N28b&vx10ezNy?=D+&z(MBS!zBe?l?n9Nw z@9-L>UAh?-8nttiA5Guox+&iGXz}VJf8_qT^7UKCN8LBw!)fw&!Fk^EmbGS?#dp>` z?A_{l$eSlRez(j#q2%%d$L8-%*AKZW3$^@rU#oDumh?4@@@TVVDP0_CbY*xj`MM z$cFPU!vjyC5@4#KmXc3(ZNXle9-6A^6I3)OsE8lhpi(K+rh0O+fsQB8a?ejsgxbD) zD+{jKa>?00+XC)XsbR9+t4Gxy=||BojhZx*bR@}3lTM3m?L=K_yo)zzOOZt3=> zA5L}Yz5Mx)pxdOlldVM-o`1b2?LBpt!|d4Gj!tcrFQq*C?X@Q#S~ge9+8OJ3u776K zws!l;g0uIsDk?V5eX>DN-&6nTT%PrnKRu^f)Hi!wvVWr0w*1VR(u(9yX9{KuhB{43 z%PTvzGjE#QORIfnW^ImQoOLaT?^lo2mTz8{R__EleAbR6|Be#VRQyr=dWUEEl%NSgUUq*NSG+Pj*=M8f2F&jap00i_>zopr E0E)r?(EtDd literal 0 HcmV?d00001 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..a2eb2152be --- /dev/null +++ b/classtz_1_1gl_1_1vk2_1_1_command_buffer.html @@ -0,0 +1,198 @@ + + + + + + + +Topaz: tz::gl::vk2::CommandBuffer Class Reference + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.2.0.1 +
+
C++20 Graphics Engine
+
+
+ + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+ +
+ +

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..1d672819cd --- /dev/null +++ b/classtz_1_1gl_1_1vk2_1_1_command_buffer_recording.html @@ -0,0 +1,402 @@ + + + + + + + +Topaz: tz::gl::vk2::CommandBufferRecording Class Reference + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.2.0.1 +
+
C++20 Graphics Engine
+
+
+ + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+ +
+ +

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

+ +

#include <command.hpp>

+ + + + +

+Data Structures

class  DynamicRenderingRun
 
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+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..73a5d261cc --- /dev/null +++ b/classtz_1_1gl_1_1vk2_1_1_command_buffer_recording_1_1_dynamic_rendering_run.html @@ -0,0 +1,106 @@ + + + + + + + +Topaz: tz::gl::vk2::CommandBufferRecording::DynamicRenderingRun Class Reference + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.2.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_pool.html b/classtz_1_1gl_1_1vk2_1_1_command_pool.html new file mode 100644 index 0000000000..bd917c18fa --- /dev/null +++ b/classtz_1_1gl_1_1vk2_1_1_command_pool.html @@ -0,0 +1,153 @@ + + + + + + + +Topaz: tz::gl::vk2::CommandPool Class Reference + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.2.0.1 +
+
C++20 Graphics Engine
+
+
+ + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+ +
+ +

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 Allocation & alloc)
+
+ +

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..3be16740f3 --- /dev/null +++ b/classtz_1_1gl_1_1vk2_1_1_compute_pipeline.html @@ -0,0 +1,106 @@ + + + + + + + +Topaz: tz::gl::vk2::ComputePipeline Class Reference + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.2.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..2c3f4c0a06 --- /dev/null +++ b/classtz_1_1gl_1_1vk2_1_1_debug_nameable.html @@ -0,0 +1,120 @@ + + + + + + + +Topaz: tz::gl::vk2::DebugNameable< T > Class Template Reference + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.2.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 0000000000000000000000000000000000000000..617c87f838fac933bbd0880272bac0342fe86d8a GIT binary patch literal 2568 zcmcImc~BEs8pm5vL`#-I4q0Xc$_N7@_mvS)XaWTBKpf;44kz3oU?7ByxPq2omPUzy zhzEgD&XRD1Bd828Q2|Mm2!VtlTmlJ4AP_o`?Z&DpXZPRTuIks{`@Z-3yWj8K^7L?4 zQdCz|P*6|;T%5cV6t)Oq`sU6p@JMx8JqLd@Jl)Qol*{EXIXSbGKz?0nX{;ZkMtL_m zJUk5Z&AQGP!?IoRULI!@;Q7X5vAN&_%*z3sPMpPW5)N^r7Od5_zHfJOXqF$C%?)zc zVwfQsCvOj_{q0kSHuJZ7&*~!uU7=#^^|Z7!4fCd%sES z53{Gv`g=fK&mKQ|G@Ksv3wpt_-x}RhWkR%U^%$MpRIR;k)iZf3CVwI>btXR9LsNUJ ze@Azu05;=l1)`du_jzb0krGtH%_3vMF0;^6ac0AxVyw`0mku4i5`=w>rV#*mjx7> zb7Mc0oPIzndTKpTUn=$$@~$Y~n3mvp&asS^YbQ_Hv@?xptG6#50LaL*DMN z+QH*R?QGR1t}w9*&#{H0V^Oscov7g0nk1|X->e7T(G|9lH~+l?c(V2!$)5=KRp!1* zC^y2qfTXUXq9V&Sgvau;NNkSQ4VjBPJ*)i?jpd)5KWSWr6JD{gt-|L&>)@-ueO(@Z zWe*qDafNkXy^`%Kr4>JagVV1zHQc89)xctNmHxY?ffKKwU0Nh1I19$e`-Mz2` zCY_A78@OYxQE>x-I*0^w?Z#yLFH}UeyN!VpBGI37Y%|`|inH0%Hdk=*jq#qg>l%Tj)$n-z0h|6Y%q!m8xOqLXQ&I$a9Hrh zB=H^!HV6#Hjk6d4XjJ(ld7_|e>^gZFs*&#MXaPqnX9>*{KQ;SKkIDWHJY1qsn;RBU zIfC|^w*DBfnbSs<@kW%j>}P4Hq`@*=(LV|D@unNHU)kTXQ>*%Bwc~(=tX2bEfHz5U zgQ7VLWjIpAJmna$(2z$X*+=RrLp|a$Gp%kcxpaE#47qJEeM&lyD`B*>ByQwN?O>c7|TD`87eu|xHW6xZ{ccwQ0-*@UA)aG-neI{wY zqonj!gOIqBp^6xAM{`ItA4Lhu$s}`YQ|M1cJbNIHpF@E3=$Zw=DYh*u+2ZrkJ2dhk zcMf4;tmJ;;Ai9^qLvfDU?JZQbN^TfZIt{wD=zMF`x7v0?k4e1!-PqKWE^`YnTT&V( z72R>DORX^kk#VfIQk+FB*suC}a2cKauvbz&B?bQ>|h5Y9Wmfqm} ze6o{Y#Zn^=?FNadzJ00pBvOAnK$PS-P*gG2r?up(gDqLBS0$<06cnMP9lLSzRhlec z!aQ%G9=j%M{F_)if+EK_iTYNl?@yMlozkbs{g)-Er1$b1N&iLB;Avo?n(qpoxvfoI zW5q_5%o@Z<6S$tBF;r$=f#m;s{*MXJ((70f#<%fure^u%wVV8&_#f`{9FHXcy=o z%48J%vvZCta)5t69JDQm8zK{4w3LCby^Fq-0`|`5v=D2g^4IGe0#p#@4tCbwMdgXT z42{gcKe&!jE>)DK7E3~Q*>7`kycA)*}6|Gb=&i}RoY7I9QJ`R&5>9NP*rv;2r*ms zjzc4};tM5$O8bGlSt<<5g%U@uRiA(3gYIZ5(UgJwYS!+aB+o7}HCo%kog3Qpu0tka z@Q?spWfT)Ne_fM6x^lKD-yJH{>`AaH?8%~MuOLYg(Osd=y0!Vn;)vEPGK;u=Wztg2 z#LuC+p4JH{@8bJOe@qMt@Y;~y_6_)TL@MlFS-dVYnlO5_0KUyMOhgS}o5DdE8SxxX zfe28jct>C~g0+#NQad2`%SGkO?dZP>0jWovr>Cd!EE+?POx^hd>NR|4QvgnSI8{0X Gr2QKJ6Gl1! literal 0 HcmV?d00001 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..957b9ebae9 --- /dev/null +++ b/classtz_1_1gl_1_1vk2_1_1_descriptor_layout.html @@ -0,0 +1,222 @@ + + + + + + + +Topaz: tz::gl::vk2::DescriptorLayout Class Reference + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.2.0.1 +
+
C++20 Graphics Engine
+
+
+ + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+ +
+ +

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..0ae4579691 --- /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.2.0.1 +
+
C++20 Graphics Engine
+
+
+ + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+ +
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 LogicalDevice & device)
+
+ +

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..695c65faf8 --- /dev/null +++ b/classtz_1_1gl_1_1vk2_1_1_descriptor_pool.html @@ -0,0 +1,280 @@ + + + + + + + +Topaz: tz::gl::vk2::DescriptorPool Class Reference + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.2.0.1 +
+
C++20 Graphics Engine
+
+
+ + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+ +
+ +

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 Allocation & alloc)
+
+ +

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 DescriptorSet & set) 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..8d937abc3d --- /dev/null +++ b/classtz_1_1gl_1_1vk2_1_1_descriptor_pool_1_1_update_request.html @@ -0,0 +1,131 @@ + + + + + + + +Topaz: tz::gl::vk2::DescriptorPool::UpdateRequest Class Reference + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.2.0.1 +
+
C++20 Graphics Engine
+
+
+ + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+ +
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.

+
    +
  • See DescriptorPool::update_sets(UpdateRequest) for usage.
  • +
  • To create a request for a given pool, see DescriptorPool::make_update_request
  • +
+
+ + + + 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..ba6d664773 --- /dev/null +++ b/classtz_1_1gl_1_1vk2_1_1_descriptor_set.html @@ -0,0 +1,176 @@ + + + + + + + +Topaz: tz::gl::vk2::DescriptorSet Class Reference + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.2.0.1 +
+
C++20 Graphics Engine
+
+
+ + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+ +
+ +

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..5a98e2e550 --- /dev/null +++ b/classtz_1_1gl_1_1vk2_1_1_descriptor_set_1_1_edit_request.html @@ -0,0 +1,213 @@ + + + + + + + +Topaz: tz::gl::vk2::DescriptorSet::EditRequest Class Reference + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.2.0.1 +
+
C++20 Graphics Engine
+
+
+ + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+ +
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..ab651f55e6 --- /dev/null +++ b/classtz_1_1gl_1_1vk2_1_1_fence.html @@ -0,0 +1,179 @@ + + + + + + + +Topaz: tz::gl::vk2::Fence Class Reference + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.2.0.1 +
+
C++20 Graphics Engine
+
+
+ + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+ +
+ +

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 0000000000000000000000000000000000000000..ce4ff325b678d2db9b07bf506815150b7d0349d6 GIT binary patch literal 1087 zcmeAS@N?(olHy`uVBq!ia0y~yV2lQ`12~w0WWz$W6+lWlz$e7@|Ns9$=8HF9OZyKk zw=mEwkeGhv#e)YAfa0cS!3f*F8(FfeDDeT9L6`IM)NV@L(#+qrM^UMmQ= zv^%bP_ILh|V}@p@-ES@Vs`VsGd%jh|fgc-m>L(VTb3A7m&u8Sxrc!D6aGFXj$99#M z&O1~+s2*X5rbwzcBk>y&4*|DJubO9)QAb@ncwok!7w%I$}<=1nc_IVo~`qVLqm zP4C{OZQSKwc_Fc&I{skU&bF6tpZ@#Z`>s~>`}X-$3bS^atjdnh-}YXDGwsGnx0g(} zOsaN#$X#Odx@^W_|Ge2xwZoO(hRXWJ%vOtS4@y+qa{cPj*T_*L**@||spxx3DPe#@WNzx9{i{abr(*PdN+_{`fM zvSHhPUMcjxrvKaRqv6rC;wv+^AKaI&Iq9pFO3ZBGUz5Kb-?3FQcb4#}E%Bw+GAef? zKTN)D*C$_^<==Pk?UC?uslDgln&j9(It-=|%du!EZKU<^EJVSZ4nz!+ni8lSOiZ8_m$*M-| zES+FA>uhsrm&)s}2Xd#|?atc0?=p++F4dELp2d@DX0AS_c+&sT#M_E%Cq2>MktH+f z&5grPzaE_b=KJl3^E+i2vV-Bam1@BW+bKka@&e);a!IN|!}oyI$+ z_g|2`^KS3Nc~CH_x_yRJEkt_V_mM|xqj1}+oEQh zRbmfR74ANeHf;%agps<(rFw@QQ&r?qJb35MvME6mg1o{%^Cw5^T(y+Yt^{Uv22WQ% Jmvv4FO#mh?6)yk) literal 0 HcmV?d00001 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..15baefbf42 --- /dev/null +++ b/classtz_1_1gl_1_1vk2_1_1_graphics_pipeline.html @@ -0,0 +1,113 @@ + + + + + + + +Topaz: tz::gl::vk2::GraphicsPipeline Class Reference + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.2.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..100743c540 --- /dev/null +++ b/classtz_1_1gl_1_1vk2_1_1_image.html @@ -0,0 +1,213 @@ + + + + + + + +Topaz: tz::gl::vk2::Image Class Reference + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.2.0.1 +
+
C++20 Graphics Engine
+
+
+ + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+ +
+ +

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 0000000000000000000000000000000000000000..e13818214ef81827d96357b5892b8608bb2bd6b6 GIT binary patch literal 1099 zcmeAS@N?(olHy`uVBq!ia0y~yV2lK^12~w0WJ}1msX$6Pz$e7@|Ns9$=8HF9OZyKk zw=mEwkeGhv#e)YAfa0cS!3f*F8(FfeDDeT9L6`I@JTV@L(#+qrN1UMujp zv^z$f{cZm-cQ${{g133n_m@plJ(uR$$*g|tkL%j4YFn>W8LUv5IpN8|C6SYQ6wXdc zVac4PqU^C*Me<dW6wzf`y5PkvQ7ldk#m_cL15Pd3^fdn^C_R4H4T*7d^b z`ki`zYY*JYPP{IEcg43uiK3q$zMr|5wPgF59XoFxWb@?vbMMUu-S4w?kEL|kZQ7Y? z7xDeu?BeYl$`vwpGxpZn&hI+>WLn++D&^{*ZKrw4u34wy-Yj5ZBI_yY^LqA z{wG}9bFEj-X;#UHwAj*_&))2aXWv||r*~JKt^H#3sea4Xmv7qGt>5f_=3V5E1?SG4 zo%PCgS83Yu&>P}2TKi^iT>HB5LGHc0xSiN>f3f1Yn;g0e#`UYjHfx%IX3q`nQlAp%)YQ) z-oKYm*!FkVIV;x5Gw&K_%T?T5)1R4r^|Mv=-Rf^&4C7Cp&ylov^ZZ>+JoAj^Raez! zGrT^0`)%#=(xW9I30Jo%=+0W(klUpay*s%qC|y16y5{%8?weI^8cO<2s(-e^LglCJ z9b@Y$!INql7eAVia(t3bJ^#Pc&*OOio21|8loD)L+27@UwLwLAQcbIg_as4-xZW{i z?bd5cu0{2;GVE)UXYgQnkZ?(df#t*J$ytmKDnQHv!P!7&0g!oQLL8$)lLQsrm1ty!O#<3ANyKs1 z)Fm93)~L9CsNDSd`}gwe|DK+x{j@-3Zqs|C>c6}HPfAmLX?I;`PeRbgOYi^a{?*Mr ztDpNqDzWm$(rqfWO`D(OOpMZ=l)L-z!7p!D?+Cnoc>ehplV^OrT0CuY?J=*TTdtXl zd;XGnZt%L+a&z{!b!l%?YNPIR9r!2d7r?jg*qa$0uAA2G_PFG3*?QAX`0v`aF<(w~ zr9@wg^jvq>Z(&)+R^?3lZ_!%oZ}0Jl-TiNqY-YCqB)gN(&w2$Nj}EpvUFDblZSCBe zE~A25b855I=P%@$vs23B()Gz{s+vtE+Md9$_3Tmrs%8=2ymZQ>DM6<;{$ZZUs&!8G TP_a2M+cS8&`njxgN@xNA1|Su0 literal 0 HcmV?d00001 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..8baed606bc --- /dev/null +++ b/classtz_1_1gl_1_1vk2_1_1_image_view.html @@ -0,0 +1,115 @@ + + + + + + + +Topaz: tz::gl::vk2::ImageView Class Reference + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.2.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 0000000000000000000000000000000000000000..c597e706be70c349db728e2ba22500bfb444964d GIT binary patch literal 1190 zcmb_c`%@El5I@jXWg23wQdCKyvIUvPJdwc?}mQnNB?f>HR#adB$|=CjeRwslS5BQ{$ZG{nVQG5Vot(>q%H zmUGfyvMMX{G=ro^_Wh``F}K!V|z~mjOS|~k&ror zb51`;P(FRSQ>BAJZbOnKgW=uUa%jWJ0&f3PeKi&q9L;`#xF$;^&LFW%g=3XIJA||m z`NK>wWI;N03u8&_Cv}LmbF2zLOxed+E*`o+V*Ktp^2bkok zG&WEt+fIS1s*?DDn`$RHy|>;HNGJnG{!@hJDs?ItP}j;7K;j-EaqnAY1z8e1AV({~ z%0W7GcJA$u%OEIBgh0!uZqUgPbS4-;E8)k>1inQ3UI}jHC^V2ELSj(9Gq&UlipBwY z_BSQS{J&B7?I4^5v)o*ku7+7uH-Ui$6Z7C7oUxE_iY69))|3xS8_dd@7}n|6x>uvN zcLumUf6@#H5bt@gST540l7KP4<-`X8gi1 ztK{gd8+r4Yl~vjXvOcPFu#=jVEL!06+Kc$NE+1Kic>%tF`rZjAFn)W#^xHD0pBA?q zneS_ttkd#aqW780sWKSEjc-D?j+L*~>U+(x=(T1c2)NBF4a>aSsQ~!&iJBQ?9WZ8m z*GJNwYgw#y;L0`>PUG>2Q;PR2lEMP0fkZzz%GvG$3%O zX9rN+X;eW+4MrHCtAottB41+7-%D^8H(|xUM>+!_8x8B4(d}Rg@lhanH=9|z>+qSs E0OUw?mH+?% literal 0 HcmV?d00001 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..cdf04b4a9b --- /dev/null +++ b/classtz_1_1gl_1_1vk2_1_1_logical_device.html @@ -0,0 +1,237 @@ + + + + + + + +Topaz: tz::gl::vk2::LogicalDevice Class Reference + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.2.0.1 +
+
C++20 Graphics Engine
+
+
+ + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+ +
+ +

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..fc6215035e --- /dev/null +++ b/classtz_1_1gl_1_1vk2_1_1_physical_device.html @@ -0,0 +1,337 @@ + + + + + + + +Topaz: tz::gl::vk2::PhysicalDevice Class Reference + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.2.0.1 +
+
C++20 Graphics Engine
+
+
+ + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+ +
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 VulkanInstance & instance )
+
+ +

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..f8e629f65a --- /dev/null +++ b/classtz_1_1gl_1_1vk2_1_1_pipeline.html @@ -0,0 +1,106 @@ + + + + + + + +Topaz: tz::gl::vk2::Pipeline Class Reference + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.2.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..6d6ba9baa2 --- /dev/null +++ b/classtz_1_1gl_1_1vk2_1_1_pipeline_cache.html @@ -0,0 +1,106 @@ + + + + + + + +Topaz: tz::gl::vk2::PipelineCache Class Reference + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.2.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..be6978239d --- /dev/null +++ b/classtz_1_1gl_1_1vk2_1_1_pipeline_layout.html @@ -0,0 +1,113 @@ + + + + + + + +Topaz: tz::gl::vk2::PipelineLayout Class Reference + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.2.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..ed385170a8 --- /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.2.0.1 +
+
C++20 Graphics Engine
+
+
+ + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+
tz::gl::vk2::QueueStorage Class Reference
+
+
+
+ + + + 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..edc36a2e33 --- /dev/null +++ b/classtz_1_1gl_1_1vk2_1_1_sampler.html @@ -0,0 +1,123 @@ + + + + + + + +Topaz: tz::gl::vk2::Sampler Class Reference + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.2.0.1 +
+
C++20 Graphics Engine
+
+
+ + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+ +
+ +

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..aebd9a4576 --- /dev/null +++ b/classtz_1_1gl_1_1vk2_1_1_shader.html @@ -0,0 +1,114 @@ + + + + + + + +Topaz: tz::gl::vk2::Shader Class Reference + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.2.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..006dceb117 --- /dev/null +++ b/classtz_1_1gl_1_1vk2_1_1_shader_module.html @@ -0,0 +1,128 @@ + + + + + + + +Topaz: tz::gl::vk2::ShaderModule Class Reference + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.2.0.1 +
+
C++20 Graphics Engine
+
+
+ + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+ +
+ +

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_swapchain.html b/classtz_1_1gl_1_1vk2_1_1_swapchain.html new file mode 100644 index 0000000000..afffb09dde --- /dev/null +++ b/classtz_1_1gl_1_1vk2_1_1_swapchain.html @@ -0,0 +1,375 @@ + + + + + + + +Topaz: tz::gl::vk2::Swapchain Class Reference + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.2.0.1 +
+
C++20 Graphics Engine
+
+
+ + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+ +
+ +

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 ImageAcquisition & acquire)
+
+ +

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..82dd5825ff --- /dev/null +++ b/classtz_1_1gl_1_1vk2_1_1_timeline_semaphore.html @@ -0,0 +1,208 @@ + + + + + + + +Topaz: tz::gl::vk2::TimelineSemaphore Class Reference + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.2.0.1 +
+
C++20 Graphics Engine
+
+
+ + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+ +
+ +

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 LogicalDevice & device,
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 LogicalDevice & device)
+
+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 0000000000000000000000000000000000000000..127bfb9a9502bd4e9ef9284130803e9cbc247b2b GIT binary patch literal 1720 zcmcJQSyWR;7{_m70wJIxQb4H^A*i^a?4m$eA_;q=)uSwl3vrJX~Ba8X~K*yWxa zKyZ%dUmB?~X}@SFjx?)v=Cv~zo$pWG^M4z=vOe!qI%uyLz439`*v&39uk)pTj9zWK z!p*BAy71`E#mhC0IzPQThwm;%oIA~XHD)i*0MD2YSBY9y)f#p$RrBNA#u5kh@;yZ6 zu~Ye*38C-UX-eWlhp0($dFOs(>xN3}`Ca}YtkUXCqDN?lY~p=W5kh(M^*6}}1iJ^0 zywF8Hz07kyahLZqNDN7fV-hdkG?dy^*&NDmc{CQ)$zqGTKLD?x@p ziX#=!BN*5KxU8BQ2f%O-7D!hbY2l2B1u)hv%MD3zk4FP22noQL0c;Kc5-0!x2XDzS z2L7YmUSk>(RYk69cuKg&@qsK!|Ku1#;%#y;2qLupsc4}w_hVYeg8HNzd(xV`JaNby zau)=fcK@!4pWYH@dv=bh&trBo^CHU9wnumQ8eOhy3Livic8ga@T*`JaCZ-1#K23%H zO78JZ?*J_uDoKkH@5jb=S^Z`cvf9wQvijgQ|DI9IO1TkD+PIbCT^Dm4%oMF^eIs(q zYV6Clh4$c8XMFVDA6|p{_9cfg5~=6PoiJ3JsMNvLnyKVqfq(e}eA88nEwmx%KFAz> zxI%e{Z~D1kX0eghFK!cs>CSbbVMfkOeJynX!z;~nH*8y{dOl#a_T0LHE-JcP0&tE%u1bYQv^%;R2x;|$c2p>(wXkdj_f`@&DjB#WS zHXLAY$k;D#n<5%Sg?)#jFaW>M7DVAvVW--}2UY_ZD>Tp=o55NQq+6na3(zaw|IggN z$r%yrZ@it$$)y~*kzZgu@*%;D%ZFiB@fGEFNuB4bN4Ll&hlOAhgL>@6Ypz@!P})|HpwlfBEl8nI2Pw*4 z94WKH-5I|FP$A3f!LUTeZnw`|kIpYZL+}##LelB%FjOwZkK$*uZhncv9g-iLc5Q+G O7=TO+@~QTso&O73a|Ox( literal 0 HcmV?d00001 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..b41760b4af --- /dev/null +++ b/classtz_1_1gl_1_1vk2_1_1_vulkan_debug_messenger.html @@ -0,0 +1,106 @@ + + + + + + + +Topaz: tz::gl::vk2::VulkanDebugMessenger Class Reference + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.2.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..183db476b8 --- /dev/null +++ b/classtz_1_1gl_1_1vk2_1_1_vulkan_instance.html @@ -0,0 +1,114 @@ + + + + + + + +Topaz: tz::gl::vk2::VulkanInstance Class Reference + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.2.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..08ae39128f --- /dev/null +++ b/classtz_1_1gl_1_1vk2_1_1_window_surface.html @@ -0,0 +1,124 @@ + + + + + + + +Topaz: tz::gl::vk2::WindowSurface Class Reference + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.2.0.1 +
+
C++20 Graphics Engine
+
+
+ + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+ +
+ +

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..d9f0a92648 --- /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.2.0.1 +
+
C++20 Graphics Engine
+
+
+ + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+ +
+ +

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..e9ad2a4375 --- /dev/null +++ b/classtz_1_1gl_1_1window__output.html @@ -0,0 +1,116 @@ + + + + + + + +Topaz: tz::gl::window_output Class Reference + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.2.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 0000000000000000000000000000000000000000..6a86a83067bf18896cc33e384be6c503de325208 GIT binary patch literal 973 zcmeAS@N?(olHy`uVBq!ia0vp^yMefagBe6F$chG1(g8jpuK)l42Qpv0`C8h4Xt{-f zW`V@?GcO)IcmNbPJsY+JD92e6&+_YMO$JKoH zOuv8syVrYNY`77$)$*y|vkh+2OlyP%;{}s@nwvZ(IX`-*lG(p|@)FzC)e0w-`}#{MYio ztyEvR%pziAS@>bD@~;v1cD#OD`sUvmFY(w5TbxhZUVgjp*8CFnom<08?Psm3`ZN7? zocN-7ns3WR?e4sPyZplL`^C%RetfMv|J-MuTIZ_D&6VdZgXgH9cV7H{&c)XujFVh{ zzt~;%SK49H-aWBzyMBKInbp?^1XgDoKehshGjG9oUMWQ5Aq zJ*)4`Re8JfnVd(_ajCnd`}rrN=*O3;pKOvZ;#WMA!}R(6s&^}`H$FM*D=heK@_1o+{-~9;vJ}>|5`CXHj z$iDNN1oV;TE#sZXB_7XUIPkrK;lKi(H~%VnwCy+iUShZA&xv<+=NJyeKOol2@IW!) zRBUl{6cCgYDi;^rc>J!b%bS-a`RZ>Mr!Lv9vwP3JM)Td>9a;7d?dC2uj(+v0Iyz~e z+O&jI-kPTarY=a2Vb@(5>frK(SN^JPM~?4bjk~X>C@uVxzx}kCm$<9TlNtVZLa(k; zZR*H7>%H*GtG~;3d;Qse=kk5-@9Br`?|5yqb>{2srTg2Z^Rto{zrQCWIPv + + + + + + +Topaz: tz::grid_view< T, N > Class Template Reference + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.2.0.1 +
+
C++20 Graphics Engine
+
+
+ + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+ +
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..c1f30a79b6 --- /dev/null +++ b/classtz_1_1handle.html @@ -0,0 +1,106 @@ + + + + + + + +Topaz: tz::handle< T > Class Template Reference + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.2.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..85387fb277 --- /dev/null +++ b/classtz_1_1i__job__system.html @@ -0,0 +1,116 @@ + + + + + + + +Topaz: tz::i_job_system Class Reference + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.2.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_blockingcurrentqueue +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 0000000000000000000000000000000000000000..9ac16f64d214c283cad82a321cd469baf510a647 GIT binary patch literal 1159 zcmeAS@N?(olHy`uVBq!ia0y~yVEhJT2XHV0$vf=JPXa0F0G|-o|Ns93nJ?aaE$u(F z+`>S!Kw|ot7Y`mh0E(NQ4O;?~<17jC3uXZF!N8np_7w&O79md;$B+ufw{u@lTC5=8 z#y>w)^WOhX^G*%%&RLQAn{UTHo!N6q>C3{0`Ulpw2sGI;_y{NUT$EaOcPsOZ!$|mX z##`U|pWD92_ZXI0)N1bfHhJrDiRA8V_8rrkgJqm548KQR|8e6(*NV8AQJ2qJXYtu4 zi|+VVysCCesHV4h{^HZmgM+L8$0@Z}m%m+}@xNeE`u6UQMJspnB=vl>i1{sftJ`k- z*7LLf>_~WKB)`4tI$wd!_w4y{OWdbs0@+OJ8Tz~LRBuy%+r1g+GMV!aZ_WR=>-XpA zlv{`I+h0|)mw%lc!B_g0p}n}mE4gRm@oVjR(jD3Roqn(W7Qgg%T}D-1bLsWE$gTM` z&x2mC`@756?wCY9H-;~jTLj)PK46GB&wPM!LrXUMhGUN(-ec@}c#Cn($1U&fG3EeS zJdZ9ho&nN?u-@~J6*fN13H-0GJ|nCet7(PL|FkDc^c4-+Fy*Ph$PTzmJxfvA+0|1_1wqDWS(BLTCwiitF@ZCpYMNLTe+orYy8|P zHoKFG-p{w${8A=obJ+STSEj0z&e-aGiT&2~@LjjB>UqY0%x%B@(HbO_=Y8s5pWn5A zS{*SS(vP#6R5PdcI(tnL`@{Bjx$0BrkmcRUTl0I~y@>js)_Z69-(5>$!ro5$GXLZE zTdFVbAKkjU%yUy?b~!M$@LbOe{cXV0Y{~WZumR7rAI#g=am*}A-nRi*WH5NT`njxg HN@xNA5}RsI literal 0 HcmV?d00001 diff --git a/classtz_1_1impl_1_1job__system__blockingcurrentqueue.html b/classtz_1_1impl_1_1job__system__blockingcurrentqueue.html new file mode 100644 index 0000000000..bad597fc10 --- /dev/null +++ b/classtz_1_1impl_1_1job__system__blockingcurrentqueue.html @@ -0,0 +1,115 @@ + + + + + + + +Topaz: tz::impl::job_system_blockingcurrentqueue Class Reference + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.2.0.1 +
+
C++20 Graphics Engine
+
+
+ + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+
tz::impl::job_system_blockingcurrentqueue Class Reference
+
+
+
+Inheritance diagram for tz::impl::job_system_blockingcurrentqueue:
+
+
+ + +tz::i_job_system + +
+
+ + + + diff --git a/classtz_1_1impl_1_1job__system__blockingcurrentqueue.png b/classtz_1_1impl_1_1job__system__blockingcurrentqueue.png new file mode 100644 index 0000000000000000000000000000000000000000..8019dee1d45b00dde021f0bd02084f4b8e871f2c GIT binary patch literal 800 zcmV+*1K<3KP)vTJr#LVva2S`&=-}Ys|Ns9r%~qrU000SeQchC<|NsC0|NsC0Hv*f~00083 zNklyGOn41|Y?w3_#S;?pKTFp#9}Cf(B-iKz-Um(K?0FQ#dl{0S3Ddegur zNiQ1MB5S@ZgadC?jB}Jvc}Hrm0hoh z!d2N`4r`7aJ2O!`o=kOr4$=sF?PP>OTcoPm#hB0 z*l8dR8PZR}HudVkw;i#YxBW5Lsgid}+D;|U&)Ssp&%q|iu8z)r`N#Ub*mH5}e1+2Z zA5gzB+Xq;0rGDonC&~Xs1DhnhXke417u~R@X`0*#0RBop0N_tPv44JCa{I)-QG4We ziajbh0Qk|s1^_P_*Z|-~0~-LmXkY_?7Y%Fx@S=eY0A4h(0l8rT5f zMFSfEyl7wpz*`kU2>yg1N!~QDCCQ5hwj_B`#;)i)!N^0a?J#894*hM@z>B$fc-j`W zBvsmrge3L!Dz+rOpr^5KpR&8kjNS&8h3=L*+lyIs>p+O=_tA!`n@9=ux9 zOm46{2zFLss}?fPGJAKzP+pnN@-fA|Bb#j7PQBVw*yau@Xl)N+=WClTXN>)F_b$TD zt9P-jb$!LBVwanmbJU$Z?Cnf#WxKOlcUFm4V4Lb>-^vzt=WUx!cP{zn+ivGIz5PpW zDpI?K#ZHwxNKLD2>|Q0$&)SspPPR8IdHD^gDtS?^@>?qDOX$w5wvtQIhH8(a8Nd4U zN>Z(77kmKe1njv~m`}bWZK!gVq+K=TLy``33HHH+vvd7Sj84Utq%YIJmLxA4*plQ$ eH|!8XaHoIK=*vPLw9z5}0000 + + + + + + +Topaz: tz::impl::job_system_threadpool_lfq Class Reference + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.2.0.1 +
+
C++20 Graphics Engine
+
+
+ + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+ +
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 0000000000000000000000000000000000000000..ea14419396dacf0f9c170bd960af66087d904a60 GIT binary patch literal 747 zcmVvTJr#LVva2S`&=-}Ys|Ns9r%~qrU000SeQchC<|NsC0|NsC0Hv*f~0007Z zNklfd zEy`g?vPGSO2_zTK=d<=kk`?VbkmNyK2}6>leg-Cl@K!#KjmKEAFb9br(>d4U$y9z%;Ad#g!)#Q_=fo?Ig{cZhlK-UBFpJIiVRD+y*N{UpC)=;V zq=7hO&i_1&sqTX{6Jb_0^Ds>6W|ao;rJLn)F)i(B7?P}N??hMrx!eXbm2#!Orty1O z?upFKVeewODa}ao0XYmwwkU@o$rd%j48t&VA^`XgdI3N$>Ivrc>WHQ%n31I)nyz5H zn*l(Zau@(;Q4RwDEy`g4phYU4 z0H8%V3;_I{LI|N3AxKgmau`W!Q4S+XEh@tlOclgD^s((;#J0m|`96EgYIhGyw=Eb+ zD)fy{l4`me#yTaKu}QzRy!~+?($D-RGP7&6WJ7XGcQ$!tS96f}esT6}itp(sp1=;8 zV@&3_Q-rXQ3DW18)|y`wR6Yxfxv6AYyXH-kbF!LQpWPQ57e6L4(QyS+Iaptaa9LdLiHs!ugd9eaT9m^`Qi~d4 dLI|M~{Q)}9sEBsgUR3}9002ovPDHLkV1h7xSX}@B literal 0 HcmV?d00001 diff --git a/classtz_1_1io_1_1gltf.html b/classtz_1_1io_1_1gltf.html new file mode 100644 index 0000000000..9fe71db33e --- /dev/null +++ b/classtz_1_1io_1_1gltf.html @@ -0,0 +1,151 @@ + + + + + + + +Topaz: tz::io::gltf Class Reference + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.2.0.1 +
+
C++20 Graphics Engine
+
+
+ + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+ +
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_1io_1_1ttf.html b/classtz_1_1io_1_1ttf.html new file mode 100644 index 0000000000..ea5e6409be --- /dev/null +++ b/classtz_1_1io_1_1ttf.html @@ -0,0 +1,114 @@ + + + + + + + +Topaz: tz::io::ttf Class Reference + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.2.0.1 +
+
C++20 Graphics Engine
+
+
+ + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+ +
tz::io::ttf Class Reference
+
+
+ + + + +

+Data Structures

struct  rasterise_info
 
+
+ + + + diff --git a/classtz_1_1linear__allocator.html b/classtz_1_1linear__allocator.html new file mode 100644 index 0000000000..fe8aff9e8b --- /dev/null +++ b/classtz_1_1linear__allocator.html @@ -0,0 +1,123 @@ + + + + + + + +Topaz: tz::linear_allocator Class Reference + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.2.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 0000000000000000000000000000000000000000..20255222492699e936e001adced224915004a1c6 GIT binary patch literal 638 zcmeAS@N?(olHy`uVBq!ia0vp^6M#5?gBeI3Ea0&NQqloFA+G=b{|7Q(y!l$%e`vXd zfo6fk^fNCWJa_;UH$5A+1SrQ@666=m0OW&#In(Sb3=B-1o-U3d6^w7^-pqTVAmFMm zzOwZH|L)`3z8gd4c=ofoivDCVKU%~yAAL2soSdiF669u%vzu4Wc?x1RAiO&e6dZwImW7c*YEr4-*RU1 zdH9n+rS*~Hp_6Q! zJRsO?A<)?z3_m#Z86rBbw#2PJ+7l*xtLBRtCl&%QCfp4KXKGk)2M+F5*uAMLW1`w%E~+mb-glNQv>uv+P%)$P6{v4GMV?{;TU*i1x{(>mPZ1H|NN2JY_WL>({H*9V+1u@>{;8OWVtN{+sY)$D}3h923F# hxZ0HBbKD= + + + + + + +Topaz: tz::lua::empty_slab_processor Class Reference + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.2.0.1 +
+
C++20 Graphics Engine
+
+
+ + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+
tz::lua::empty_slab_processor Class Reference
+
+
+
+Inheritance diagram for tz::lua::empty_slab_processor:
+
+
+ + +tz::lua::i_slab_processor + +
+
+ + + + diff --git a/classtz_1_1lua_1_1empty__slab__processor.png b/classtz_1_1lua_1_1empty__slab__processor.png new file mode 100644 index 0000000000000000000000000000000000000000..3e201766c87143a0177bafde5720a9f6fe6794b2 GIT binary patch literal 729 zcmeAS@N?(olHy`uVBq!ia0vp^8-X~0gBeIBzE8OTq@)9ULR|m<{|{uoc=NTi|Il&^ z1I+@7>1SR%c<=xyZhAIs2~du+B*-tA0mugfbEer>7#NsRJY5_^Dj46+eK~230#7Ud z@m1^g{1=XQoyf9e`t7u|6{k$xr){V?GUI1=YUH$)Ev+i*K?0MPtZ$m3QfsQ@rxKdE zYw^Qd@;VA9^}os*dIr}`v{<_3rA>Km&f7Ist9E|M*qVR(tM9jaQS+s@Os%_iQYG{2 zo#UNXj)u9r$9vvfyH#S{x5T9Ab0<}9zR)b>4q@B!`nL49&7RBRvQ}>npI>HqGHRaS z?CYx*KWe(+a#a1u@iHx~cWP#An_q^0*z@$U9pC@S5$i27jvdKAwo$cC@VLs&Y>$|t z)?2CnD~hFF?z5S#{pr0?c#KMC;W~wre)ga3-=BN)N4M}_5nJVosQ*HSp8KxV98sy9 z4)TuZ5tWy#r&dHxOI2fR=$2zJn7T~4&L+)yUS9?4Jf2FsM<+xX9;{VhV~A%pWcZ=g z!FV9tk%wU)R}#aAPyyzK^-U5CHKIot9;`-H67xUED^p9cv%_bJf|%gPP=W4_AFovM z4%qKLo=_&c@1pK!q4kw{mv?@?b>miK>6VgfJCE-B`Z?)zsZTKXmX9yq-j;d0?9zFw zo!<+EE*=eAHTnD<>1#=PIbs>vhB0%MJZ}~Gz3aTKe7d1*uZm%+OHSDLYi_R=0K=|o zr=pp@pS!E-J?ra7tRhN7YMg3hmMwZzoRn-3m;L<4`PW)o?tLnhU+SFnSXsF4@rnyE zcU$8j!6;jJQZ(z{M8=}pKGWIPrf0 + + + + + + +Topaz: tz::lua::i_slab_processor Class Reference + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.2.0.1 +
+
C++20 Graphics Engine
+
+
+ + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+
tz::lua::i_slab_processor Class Referenceabstract
+
+
+
+Inheritance diagram for tz::lua::i_slab_processor:
+
+
+ + +tz::lua::empty_slab_processor + +
+
+ + + + diff --git a/classtz_1_1lua_1_1i__slab__processor.png b/classtz_1_1lua_1_1i__slab__processor.png new file mode 100644 index 0000000000000000000000000000000000000000..8e7deb0514129650c5a177774669201756d26574 GIT binary patch literal 736 zcmeAS@N?(olHy`uVBq!ia0vp^8-X~0gBeIBzE8OTq@)9ULR|m<{|{uoc=NTi|Il&^ z1I+@7>1SR%c<=xyZhAIs2~du+B*-tA0mugfbEer>7#NtcJzX3_Dj46+eckt3fv2V2 zan-ZG^M9yh3gvL@opWt>_mOFw;>AA;WZuUwnQ|$>Y0{ELlTKC5u*ngVlCCPRbF;p_ zs@>cE9RGYl@1m#Tozu5$f3-!ockAAjJyGj&x7@h?^qboEdqMN1uS~6-c5>2_uQ!f+ zZaNxXeLU{ujlEwDV%{!ZvTM#{)s>f=A4$EC*syMW{*80frbNwLdoHf>*V9Q}l`e1M zR`+&sCy9%`7kGbr=87L?8;y5t4L|sKQvYp>KmJMCH!^=6(Lc6Py-w)(q${huYo2gz zKK=Lc-Af*ypZ<*5_*bv^sOzK`&$&Faz8L@iysz@u@*}sWUq0!4^w;zb)t5VuDNkFH zpDE-Wv_@^C%F!%EKh32RSr`;|F&+qz>ibb9&0A^lh_%At$;XcLbqoy|zDW!nS5?>= zB8X?`)muK7Sr~oJ(w$?b3i~A$wUa>2lX|Xt&heNPROG`;Opl@$|)u1nyg3KVlY<8?wiF zk9^vqN3}`m1#zpN|2Y3zYfIdxLg}TkNzawV>;A6T5OcP5J|skWKTgy>v&WV>=c{E{ zZdBZ&;*F<8Z@)JRk5TEYTleGC|2?m^PI$uoOT)Up|Hp^+zX6`NiX#5AeY6(Y@98ti qehrY=IO~XtCBaQr9!FwjG!j89ZJ6T-G@yGywn>TW#L} literal 0 HcmV?d00001 diff --git a/classtz_1_1lua_1_1slab.html b/classtz_1_1lua_1_1slab.html new file mode 100644 index 0000000000..313118143d --- /dev/null +++ b/classtz_1_1lua_1_1slab.html @@ -0,0 +1,106 @@ + + + + + + + +Topaz: tz::lua::slab Class Reference + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.2.0.1 +
+
C++20 Graphics Engine
+
+
+ + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+
tz::lua::slab Class Reference
+
+
+
+ + + + diff --git a/classtz_1_1lua_1_1state.html b/classtz_1_1lua_1_1state.html new file mode 100644 index 0000000000..4be726725a --- /dev/null +++ b/classtz_1_1lua_1_1state.html @@ -0,0 +1,212 @@ + + + + + + + +Topaz: tz::lua::state Class Reference + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.2.0.1 +
+
C++20 Graphics Engine
+
+
+ + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+ +
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..f4a824a89b --- /dev/null +++ b/classtz_1_1mallocator.html @@ -0,0 +1,114 @@ + + + + + + + +Topaz: tz::mallocator Class Reference + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.2.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..57b84899b7 --- /dev/null +++ b/classtz_1_1matrix.html @@ -0,0 +1,884 @@ + + + + + + + +Topaz: tz::matrix< T, R, C > Class Template Reference + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.2.0.1 +
+
C++20 Graphics Engine
+
+
+ + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+ +
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* (T 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*= (T 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+ (T 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+= (T 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- (T 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-= (T 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== (T 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__list.html b/classtz_1_1maybe__owned__list.html new file mode 100644 index 0000000000..7c38761be6 --- /dev/null +++ b/classtz_1_1maybe__owned__list.html @@ -0,0 +1,121 @@ + + + + + + + +Topaz: tz::maybe_owned_list< T > Class Template Reference + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.2.0.1 +
+
C++20 Graphics Engine
+
+
+ + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+
tz::maybe_owned_list< T > Class Template Reference
+
+
+
+Inheritance diagram for tz::maybe_owned_list< T >:
+
+
+ + +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_1maybe__owned__list.png b/classtz_1_1maybe__owned__list.png new file mode 100644 index 0000000000000000000000000000000000000000..2e96afdbfd78c4531cd99d8162c17028b2c4a1d5 GIT binary patch literal 3612 zcmdT{c~leE8XrVJM8IlA%dX;*BA}pbCM?#|Pl?1{PESMlm2n=NnONXBKUhO;YocEW1ygBFhec#+=?w#-6-|x=c zcd)mT->SS7004O#>(f{OkN{y^-69E>sJvo!Z#V}#$8Xoy*WvKvV?DWt2vx}?P!)?vQ=si<5rNK1D_%`JI*?Ie(!w~; zsJhOh#<}@5>x7l~cRZnWy0n(iI9}l8L^r>v0|+WSs;_r^aN#_{#jkWi^?oUh6O|9T z`K_kM920FMD(-KI`gi*HCqKwH9F5!u$kzKAOK1Tz)pG3%lrn0#s~# zJ~Fl}-!wK4_Wuh#L8jUExeE1GkktL@7(m0u=~!&u6@kR&0|ttkhck$PWlNjn7F!>6 z3kUsK;7)3W%yts|`v0{_y&R%|6n^7t*vznqud%j7l`q+f`RSD9+xbW~Jd?kmN-}z; zTTNFOHD`Mz)~$8nLhs5GS;*VtTd5wINC+jeP?jfWO>Wl2240&`3pWezDHnE0mA0)p3gk`I?p8Ig z(*3fc1JwlR?mX#Xi0hMdCg!Jc||?QeNm`mygcx3B6xQ%y7rhD2ldfQso``2 zzQ-&k{$NjG`vqAya0@k!zPees)hR~xrPtFD=I9hYpDPENhz%e{Vr~n$Sa81irZ$6i zLh5JZ+ zt?-C~$bCs5)^_PMup_o7Xp=QC{0IUr-!z4{YYMzge^{wL8v%S_Lj*3_gaVeZ|J=~a zCt-PwMX-^or{EmTQ%DqL(x(um!dujZFc`DG@NA67EO!h~fp~jGS4ravOk3X3ZN8bv z#hR(v;Ygyav6cN^FE5oKlt`K}^ws)MgKk=uo?gJ)wRif0G(zcbeg=fDv8#H4&Xp>- zk>N;Xy3jPqC^Q3od?KctX1LU(%yh!9OJsWEd#V?2bUox-EX)MbcQ0_nn2D>W411uXi!m$ZuDs+WKo|iaVjU z)9!CqmMe;s(?8ANMl4EkwngM_vDh@NY!ApLT5%$Cxyu;^E`|IlP_)Q&;aBq5hr7v`nA5kSee5&Vilo_&p>U7ttgE-+L)TR<* z+LzGJo^0x_HYPL$FskZ&3C)e1z9TAWMe~t#kc|>4`-pi{qlsu@0&k&yjPX@?us%D7 z`k2lfMK{pOI;vuxSE1|EAcpI5NxCeSXHQfyQ<6j;5S@#r+ND4~D%>b9byBBu4yz5QG#yo$gzUmE86RpH>%A5>4&*8Y>!i8*2 zeo=?(&|bFhqWBqW-i}z3Yr*!)dUwliC(T5FCf^MR3yoBV8M* zgVZ2f1b?T5HGprB)s%?0YL$#{86(XDr&3{tLnFFEiPKtqiF*gw@S(#0>;O~Xb7wbY z!vMMV=TNxyC0DX4gtq}!a0uDBEu^7s;XiWs>#Nkgdq(yM>DC05Knd9g1$9-DQ z5`lGHXJW(AtPI1c$icu5bI^{UhgqkZnhf867p-x1n|du?Ci{%1+N{~=&5vA+m_-(g z^*@zpu;uBCiAARY45ujzpVv4rn;ZS8eZcb&A+)nLjx8V3B^C9>g(2aXz`v|9t5Pb| z`Q3VznBGDbE@62vanr_}7MEx1AWqYY2QT2KBL6~g$bfJ{VpLK!g`U$Cp-*s~V!7fg z`9c|?C3lh;-0vMcyPvlFh5M2Kb(s5>z%y!9DcoeJl;6nA+TT|P-b+jhuvk|fu
zdB$ZV5qGlmf1jkR4z;hMAxGbrTOEfwaB_>6iIu~Y?-GNRlWX$6i+3M_Wh*|ZO+3+5 z!hEn13t@$R@_(+-sZh6IkK^v=^eGlKtQoU%{mCWc<5-wlBQal#2Ewj9BT?*|m)Pr< z`d-b3);{fdd$!)>=GGc-^iKGA2JOu034zZ@GF`#Ov(niQxjq;=3T7=LQ;Hw17>fyP^sQ`Jvya zt%eoCy~0}htqU6gMSg%*`8Xb%)2CXgGs(0fdk5zrOYVngCkz@L=Sv_z#Dlqs)#oex zq(XvB&q(2Jga3dRxBdYb2$uKR+uYKoZ|Fg>qDiJ=v1l*9D6ryibg@;n*1I1=u!AGln18)oo$9R8HUt010XE;-pMG)b;+;PL$m7 + + + + + + +Topaz: tz::maybe_owned_ptr< T > Class Template Reference + + + + + + + + + + + + + +
+
+
tz::maybe_owned_ptr< T > Class Template Reference
+
+
+
+ + + + diff --git a/classtz_1_1message__passer.html b/classtz_1_1message__passer.html new file mode 100644 index 0000000000..9da369901a --- /dev/null +++ b/classtz_1_1message__passer.html @@ -0,0 +1,184 @@ + + + + + + + +Topaz: tz::message_passer< M, thread_safe > Class Template Reference + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.2.0.1 +
+
C++20 Graphics Engine
+
+
+ + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+ +
tz::message_passer< M, thread_safe > Class Template Reference
+
+
+ +

Conditionally thread-safe message passer. + More...

+ +

#include <messaging.hpp>

+
+Inheritance diagram for tz::message_passer< M, thread_safe >:
+
+
+ + +tz::message_receiver< M, thread_safe > + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Public Member Functions

message_passer ()=default
 Create a passer with no target.
 
message_passer (message_receiver< M, false > &target)
 Create a passer with an existing target.
 
message_passer (message_receiver< M, true > &target)
 Create a passer with an existing target.
 
+virtual void process_messages () override final
 Redirect all messages to the target.
 
+virtual void process_message (const M &msg) override final
 Redirect messages to the target.
 
+void set_target (message_receiver< M, true > &target)
 Redirect messages to a new target. Not thread-safe.
 
+void set_target (message_receiver< M, false > &target)
 Redirect messages to a new target. Not thread-safe.
 
+void clear_target ()
 Clear the target. Processed messages will no longer be redirected. Not thread-safe.
 
- Public Member Functions inherited from tz::message_receiver< M, thread_safe >
+void send_message (M msg)
 Send a message to the receiver. Conditionally thread-safe.
 
+void send_messages (tz::range_of< M > auto range)
 Send multiple messages at once. Conditionally thread-safe.
 
+std::size_t message_count () const
 Retrieve the number of messages in the receiver's queue. Conditionally thread-safe.
 
+ + + + + +

+Additional Inherited Members

- Protected Member Functions inherited from tz::message_receiver< M, thread_safe >
+virtual bool on_send_message (const M &msg)
 Invoked when a message is sent. Your override can return false to drop the message. By default, no messages are dropped. Not thread safe.
 
+

Detailed Description

+
template<tz::message M, bool thread_safe = true>
+class tz::message_passer< M, thread_safe >

Conditionally thread-safe message passer.

+

When you send messages to a passer, they are held in the queue just like a normal passer. However, when a passer processes its messages, it simply re-sends those messages to its target receiver.

+

If the passer has no target, message processing does nothing.

+
+ + + + diff --git a/classtz_1_1message__passer.png b/classtz_1_1message__passer.png new file mode 100644 index 0000000000000000000000000000000000000000..a3457569a9426a57f7cf22f9ce9c1d31b54de4b4 GIT binary patch literal 1598 zcmbu9eLT}!9LIl~l&1z+T(`JD6lo^ zY2?fDGnwsIsllnG46U$^`%?~#XUj4G4~=H);?T`4_)hIawn!G z(|#z68FJ&q>37l66>xV~dHGJSp>~A1U+peZ-c5Q~rL+DRmYA(FMeE2PcO~J;$l#bP z971;JyUc9V=W0NU()^@N_FwY3`8})T@~)GYej1Vuo4C^0A&Qxv*p6bS#W!qGXbj!$ zPWwfzk%$(lK;%6Mh7T+>Sw2^sNoXzPL()&Z;QC}|F%dIm{zQ>+-{fA$W%9dGqNnlZ z@aONkKvsDA&<(J&Xt4fE@Qk})s^#lpT@V}=D~V?3&vuvx+WJCyIs0;;y)4j2db&RtN{48vI+q{+`;9`V@nW+>=27G==nOw-j1J2#HIri_? zbd{m>41s09gWLuxfa|v13m5|5me)?h+;uqsY%d_+m=CUyThrmo09Y4gGq~x$H>fso z9-#~#q72ThF|f4E&Cl152*ErqLv6Ku?}J!p^u?N9n4k7O-mxIRs`pe*o!8jx-^Vj= z1sRoyuFaT9nkmk#rz!MCeZ*&pn3r8%)5jOP&9tUA4*TcW;baSGew?4JuATTO7oHg<%AkluQRRHv0}M+^uB-N;@)VAC_a^5{xE~BW(YoY zzKEhws^(6JR=3@5m{oT*<@_01z7@{gN#_a#BSUNvLT-T)1F0RgMIA|+SwovlF7MDrhddr z9c|YI-9s~TTn|CCLf8rZhMOt+ewUK9{EaIF)d>bJtb~D>V1M%%f|1l5mr@4 zwzS(jzWH?}x9HH{!-ZFUo3uD?krpre7L!_z4%#iow!XZB{|c%_a{_TAj;v}u9XC)f zY~p4erKY^9B&Md6o-$AO`xr1HX{^zx8Qd|R^b{+nnLqw)l0r^BXW>L*Oeb$*^hT2B z5XH%1a2AvO6gL@5*;i8@4V_q#2Rb_}7VC1zWQd}J1N6+9OyrNG1+l(%+IDplk33zr X4Bz!Iea(k{dcemk0CRKyZ)g7jzBm#r literal 0 HcmV?d00001 diff --git a/classtz_1_1message__receiver.html b/classtz_1_1message__receiver.html new file mode 100644 index 0000000000..3e00b16a3c --- /dev/null +++ b/classtz_1_1message__receiver.html @@ -0,0 +1,192 @@ + + + + + + + +Topaz: tz::message_receiver< M, thread_safe > Class Template Reference + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.2.0.1 +
+
C++20 Graphics Engine
+
+
+ + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+ +
tz::message_receiver< M, thread_safe > Class Template Referenceabstract
+
+
+ +

Conditionally thread-safe message receiver. + More...

+ +

#include <messaging.hpp>

+
+Inheritance diagram for tz::message_receiver< M, thread_safe >:
+
+
+ + +tz::message_passer< M, thread_safe > + +
+ + + + + + + + + + + +

+Public Member Functions

+void send_message (M msg)
 Send a message to the receiver. Conditionally thread-safe.
 
+void send_messages (tz::range_of< M > auto range)
 Send multiple messages at once. Conditionally thread-safe.
 
+std::size_t message_count () const
 Retrieve the number of messages in the receiver's queue. Conditionally thread-safe.
 
+ + + + + + + +

+Protected Member Functions

+virtual bool on_send_message (const M &msg)
 Invoked when a message is sent. Your override can return false to drop the message. By default, no messages are dropped. Not thread safe.
 
virtual void process_message (const M &msg)=0
 Invoked when a message is processed.
 
+

Detailed Description

+
template<tz::message M, bool thread_safe = true>
+class tz::message_receiver< M, thread_safe >

Conditionally thread-safe message receiver.

+
Template Parameters
+ + + +
MMessage Type. Must satisfy tz::message<M>
thread_safeWhether the object should lock an internal mutex. Defaults to true, but you might want to set this to false for a thread-local receiver, for example.
+
+
+

Member Function Documentation

+ +

◆ process_message()

+ +
+
+
+template<tz::message M, bool thread_safe = true>
+ + + + + +
+ + + + + + + +
virtual void tz::message_receiver< M, thread_safe >::process_message (const M & msg)
+
+protectedpure virtual
+
+ +

Invoked when a message is processed.

+

You must override this. Not thread safe.

Note
If processing a message causes the receiver to send a new message to itself, this is safe, but will not be processed until the next invocation to process_messages.
+ +

Implemented in tz::message_passer< M, thread_safe >.

+ +
+
+
+ + + + diff --git a/classtz_1_1message__receiver.png b/classtz_1_1message__receiver.png new file mode 100644 index 0000000000000000000000000000000000000000..9ee4bf6349e6675d1773f3b258371440952fbfb2 GIT binary patch literal 1644 zcmbuAe>~H99LK+tok$|PEJ;}&$GT`|BtN2@ZAOMMUDS~Lhz!RrT+@$Jw;1J!w9Jp4 z)P`Llp*26sk2Wr4(=cSRS}9uV8sffnkH_8P{x5da_opif`90<=e7TWS zdUzE!IEnQ~V6zyq<-)~6q8`z^SN9iATscSS0Vk2vmJALjV=b0M+NI0pa9BZD1v63@ znWH9>5}vU3*}VR6ntxYzJ;TDj*4cP$SG)9789Jl2v}u6PqF~p2>ylu9@KEbgZ_FLn z{h3`RDjC(Hxcae5Iis#KtGLZi4K*dbDSn~wFLG~gZd90hxOwh~eyr-(&U62y%^_Vn4P)mJ-RW{bYTh+E+seJbrj2nW~mcOY}){W)Pi?lUF1D#;;;sY+3r0z~jhrbC?tjZ<)c;aF?hjWm1elonJ+iGWH zURWVG`ekTD5J_Bs;&7Dse+#od_i7>W0@2$IIIbNAKu#J*z}oV8Jb%3j92}Z-7-s4X z8C}T+?q>M`ejV1k0YhLBTB(G%>aqdIZeZ4g&e55*WN2vvkhZYR9P_pUl%64=4V*Z2 zE#tonrcxMxbtPO7iL}sYla6a8B~}rGB2fV3kET-bLE|7@Gp{hO{`pRe*c)>E5& zB2VFXs+#dbhY)deTyY~t4x>@vwM8v4gCZg(QAtkHbmB_gA{$`!mhHqnn24y%w|$3d zl~sGvn<&OF-5x&S?&u$WZrVpkhw&ctm{XOMhSu%&(vc0-ANSuxZO_@-Xuyyh2_pzX zo!krAGv4M>922UT9&&GHjV2{jhN;VLoVSgk*$H|4`b;;za}15vlNj^yvO@SYAzCWN zcTw~DdqTDQ_Pe_;N$bZ%uUxk?UzX;e(5>wYjCD}wQY~9#a>zB+V01JzQ8cj6wo~+~ zcy^5Ah+Y`iWk*M|vI5X(zkfzP5bKSEBCDoWwBcq~8v;9xun;rNl0g-anH2!wuoV@s zwp^6ngwF@4In-P;9 z@Gp(#EE(B!ur04%;Uv#6<8kH#MazF$*0FKt|nu) z#Cw5MO#Dqnpny#lx42-d!;8p)oB8QEOOLrP7ZBz~`Q6Dq1Kcj;ZKqizHb00Q%6(=V zI^IXlZP(P>lLV@qQS;FoGnRfWw6R#Lhub9YX?L>|E@|qNq?%j)j~urmt{+P5 zpjfS`_S;~?Ip+IwRZ;d@A!C|}DLO~xQOn0z`xCA-4p19zSr1>xPGhCao3drJir%rf zO9>5?L&5r_xQ%ex`h{|GrWrQdZLB^it6+cvfR# + + + + + + +Topaz: tz::null_allocator Class Reference + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.2.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..afb0ca37e7 --- /dev/null +++ b/classtz_1_1quat.html @@ -0,0 +1,112 @@ + + + + + + + +Topaz: tz::quat Class Reference + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.2.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 0000000000000000000000000000000000000000..70f7d9cf3c68cb3ea42a889158b1cc0065315b44 GIT binary patch literal 364 zcmeAS@N?(olHy`uVBq!ia0vp^=0F_4!3-q3zQ|4kQqloFA+G=b{|7Q(y!l$%e`vXd zfo6fk^fNCWJa_;UH$5A+1SrQ@666=m0OW&#In(SbK*8^xE{-7;jBn@W_8nH>aY_Go zWZ(Zz@e@)$jH(-gqH`yF@(TL=!M%uK!V{(i9VblsKjyvKmV4>(YVms>Dz`tX75+;- ztr7p@Z1`@Ty+JvzL(8{5ueRy;n?FVS*|u=gkJYDEhxeO^zx(z2>E_B?jH%~RUsfn7 z3Fr8`EP2W-=Xs8qL79&sBH^NSpK0Mm?pu>~yxLnk?>2J-9}rJ_%jj_W8^eO9@f9jN z8CI;aI@`QQnth6H{r5xGojU?5{H%oyA1v~|M$H;$@ibGT=lK8!F|%_KMazO9nV@F+`I}H1Pq?8elF{r G5}E+`b*f + + + + + + +Topaz: tz::ren::animation_renderer Class Reference + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.2.0.1 +
+
C++20 Graphics Engine
+
+
+ + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+ +
tz::ren::animation_renderer Class Reference
+
+
+ +

A superset of mesh_renderer an extension of mesh_renderer. + More...

+ +

#include <animation.hpp>

+
+Inheritance diagram for tz::ren::animation_renderer:
+
+
+ + +tz::ren::mesh_renderer + +
+ + + + + + + + +

+Data Structures

struct  animated_objects_create_info
 
struct  info
 
struct  playback_data
 
+

Detailed Description

+

A superset of mesh_renderer an extension of mesh_renderer.

+

this supports loading all the meshes and textures at once from a gltf. once you load a gltf, you get a gltf_handle. you can use a gltf_handle to create a set of objects corresponding to the gltf nodes. this set of objects is called an animated object. once you create one, you get a animated_objects_handle. animated_objects_handles represent a single animated object, but that may be comprised of many static subobjects (mesh_renderer objects) in a hierarchy. some of these subobjects have meshes attached which are ultimately drawn, but many of them wont. you can spawn multiple animated objects from the same gltf. they will share the same meshes and textures, but their objects will be unique. this means you can have separate copies of the same animated model undergoing different points of the animations at once.

+
+ + + + diff --git a/classtz_1_1ren_1_1animation__renderer.png b/classtz_1_1ren_1_1animation__renderer.png new file mode 100644 index 0000000000000000000000000000000000000000..b527373fdebd9b2ab0a178cc339f9fa9b430ada6 GIT binary patch literal 668 zcmeAS@N?(olHy`uVBq!ia0vp^i-0(QgBeJ!EsL`TQqloFA+G=b{|7Q(y!l$%e`vXd zfo6fk^fNCWJa_;UH$5A+1SrQ@666=m0OW&#In(Sb3=B-_o-U3d6^w6VPfuz#;0bo& z|My=%PKx7(->pNt+TW~6Uv#iHzRTx@=;=*5#mwBE=X#cSObS$Soz#=$v2nta^@Wx1IqC+W3QOW1PEJonyPv19A~theV6-wA)aa*ov# zn-3a4@4U&Gl(u)-irsTEmf5xx?V1p{N&Bher8Uz<-mZD2@}*Gr=-<6Jj^7M6IoZA} z_s=!8%xk4x%+mt{^Ls;Nx?XzUTbPlQ&-2UFRa#80WcS5g3ukdfz9}-_wK!w)Zt1r< zldAqcw?9zD=yqRV(w^4;Ym_|e*gYqzEcWP9kv!^E7&$F9i{U`|M}~%-hW1B~Cs*}- z4vvvLckUy9087KmiBe1sA}f^`TqbIf!1!1z>aCfYx1girOwSSxB_Y=!5y8$!3w~HH zYhF|OI&CfgL&q*9CBE<6u}gN;)y=b5e0~1yJkwCo&EcxqyF&eSpB%m?V*1c3VRN7rXaIIuPZ#rGHQ z&vA8G|7;^L$X?j|bF;So&v2Ia^8FaWiLX6GU0oJ=038dAWxk77@5{FZ1!qx U)z-cn2~0-}p00i_>zopr09f`h?EnA( literal 0 HcmV?d00001 diff --git a/classtz_1_1ren_1_1char__storage.html b/classtz_1_1ren_1_1char__storage.html new file mode 100644 index 0000000000..b6e9483988 --- /dev/null +++ b/classtz_1_1ren_1_1char__storage.html @@ -0,0 +1,114 @@ + + + + + + + +Topaz: tz::ren::char_storage Class Reference + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.2.0.1 +
+
C++20 Graphics Engine
+
+
+ + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+ +
tz::ren::char_storage Class Reference
+
+
+ + + + +

+Data Structures

struct  string_locator
 
+
+ + + + diff --git a/classtz_1_1ren_1_1font__storage.html b/classtz_1_1ren_1_1font__storage.html new file mode 100644 index 0000000000..1be47a50fc --- /dev/null +++ b/classtz_1_1ren_1_1font__storage.html @@ -0,0 +1,106 @@ + + + + + + + +Topaz: tz::ren::font_storage Class Reference + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.2.0.1 +
+
C++20 Graphics Engine
+
+
+ + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+
tz::ren::font_storage Class Reference
+
+
+
+ + + + diff --git a/classtz_1_1ren_1_1ihigh__level__renderer.html b/classtz_1_1ren_1_1ihigh__level__renderer.html new file mode 100644 index 0000000000..ec6ca1b8b6 --- /dev/null +++ b/classtz_1_1ren_1_1ihigh__level__renderer.html @@ -0,0 +1,123 @@ + + + + + + + +Topaz: tz::ren::ihigh_level_renderer Class Reference + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.2.0.1 +
+
C++20 Graphics Engine
+
+
+ + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+ +
tz::ren::ihigh_level_renderer Class Referenceabstract
+
+
+ +

Interface for a high-level tz::ren renderer class. + More...

+ +

#include <api.hpp>

+ + + + + +

+Public Member Functions

+virtual void append_to_render_graph ()=0
 Append this renderer to the end of the render-graph, without specifying any dependencies.
 
+

Detailed Description

+

Interface for a high-level tz::ren renderer class.

+
+ + + + diff --git a/classtz_1_1ren_1_1impl_1_1compute__pass.html b/classtz_1_1ren_1_1impl_1_1compute__pass.html new file mode 100644 index 0000000000..e6a39e6b44 --- /dev/null +++ b/classtz_1_1ren_1_1impl_1_1compute__pass.html @@ -0,0 +1,106 @@ + + + + + + + +Topaz: tz::ren::impl::compute_pass Class Reference + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.2.0.1 +
+
C++20 Graphics Engine
+
+
+ + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+
tz::ren::impl::compute_pass Class Reference
+
+
+
+ + + + diff --git a/classtz_1_1ren_1_1impl_1_1object__storage.html b/classtz_1_1ren_1_1impl_1_1object__storage.html new file mode 100644 index 0000000000..414ad03e4c --- /dev/null +++ b/classtz_1_1ren_1_1impl_1_1object__storage.html @@ -0,0 +1,106 @@ + + + + + + + +Topaz: tz::ren::impl::object_storage Class Reference + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.2.0.1 +
+
C++20 Graphics Engine
+
+
+ + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+
tz::ren::impl::object_storage Class Reference
+
+
+
+ + + + diff --git a/classtz_1_1ren_1_1impl_1_1render__pass.html b/classtz_1_1ren_1_1impl_1_1render__pass.html new file mode 100644 index 0000000000..b04e79d717 --- /dev/null +++ b/classtz_1_1ren_1_1impl_1_1render__pass.html @@ -0,0 +1,680 @@ + + + + + + + +Topaz: tz::ren::impl::render_pass Class Reference + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.2.0.1 +
+
C++20 Graphics Engine
+
+
+ + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+ +
tz::ren::impl::render_pass Class Reference
+
+
+
+Inheritance diagram for tz::ren::impl::render_pass:
+
+
+ + +tz::ren::mesh_renderer +tz::ren::animation_renderer + +
+ + + + + + + + + + + +

+Data Structures

struct  camera_orthographic_t
 
struct  camera_perspective_t
 
struct  info
 Creation details for a mesh renderer's render-pass. More...
 
struct  object_create_info
 
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Public Member Functions

+void append_to_render_graph ()
 Add the underlying renderers to the end of the render graph. They will not be reliant on any other renderers.
 
+void update ()
 Update the transform hierarchy.
 
std::size_t get_mesh_count (bool include_free_list=false) const
 Retrieve the number of meshes that have been added so far.
 
mesh_handle add_mesh (mesh m)
 Add a new mesh, returning the corresponding handle.
 
const mesh_locatorget_mesh (mesh_handle m) const
 Retrieve the mesh locator corresponding to an existing mesh.
 
void remove_mesh (mesh_handle m)
 Remove a mesh from the renderer.
 
texture_handle add_texture (const tz::io::image &img)
 Add a new texture to the renderer.
 
std::size_t get_object_count (bool include_free_list=false) const
 Retrieve the number of objects that have been added so far.
 
object_handle add_object (object_create_info create)
 Add a new object.
 
const object_dataget_object (object_handle oh) const
 Retrieve the internal shader data for an object.
 
object_dataget_object (object_handle oh)
 Retrieve the internal shader data for an object.
 
void remove_object (object_handle oh)
 Remove an object.
 
tz::trs object_get_local_transform (object_handle oh) const
 Get the local transform of a given object.
 
void object_set_local_transform (object_handle oh, tz::trs trs)
 Set the local transform of a given object.
 
tz::trs object_get_global_transform (object_handle oh) const
 Get the global transform of a given object.
 
void object_set_global_transform (object_handle oh, tz::trs trs)
 Set the global transform of a given object.
 
const tz::transform_hierarchy< std::uint32_t > & get_hierarchy () const
 Retrieve the underlying transform hierarchy.
 
tz::transform_hierarchy< std::uint32_t > & get_hierarchy ()
 Retrieve the underlying transform hierarchy.
 
tz::gl::resource_handle get_extra_buffer (std::size_t extra_buffer_id) const
 Retrieve the resource handle corresponding to an extra buffer that was passed in info during creation of the mesh renderer.
 
std::size_t get_extra_buffer_count () const
 Retrieve the number of extra buffers that were specified when the mesh renderer was created.
 
+tz::gl::renderer_handle get_compute_pass () const
 Retrieve the renderer handle associated with the compute pre-pass. This pass populates the indirect draw list.
 
+tz::gl::renderer_handle get_render_pass () const
 Retrieve the renderer handle associated with the mesh renderer's main render pass.
 
+

Member Function Documentation

+ +

◆ add_mesh()

+ +
+
+ + + + + + + +
render_pass::mesh_handle tz::ren::impl::render_pass::add_mesh (mesh m)
+
+ +

Add a new mesh, returning the corresponding handle.

+
Parameters
+ + +
mMesh data comprising the mesh.
+
+
+
Returns
A mesh handle corresponding to the newly-added mesh. You can then create an object using this mesh to draw it.
+
Note
This performs 2 resource writes in the best case (slow), but if capacities are exhausted and need to be resized, the worst case is an additional 2 buffer resizes (very, very slow). For this reason, you should pre-add all meshes you expect to use often, if memory allows.
+ +
+
+ +

◆ add_object()

+ +
+
+ + + + + + + +
render_pass::object_handle tz::ren::impl::render_pass::add_object (object_create_info create)
+
+ +

Add a new object.

+
Parameters
+ + +
createInformation about the object (e.g the mesh it uses, which textures it uses, what is its transform).
+
+
+
Returns
Handle corresponding to the newly-added object.
+ +
+
+ +

◆ add_texture()

+ +
+
+ + + + + + + +
render_pass::texture_handle tz::ren::impl::render_pass::add_texture (const tz::io::image & img)
+
+ +

Add a new texture to the renderer.

+
Parameters
+ + +
imgImage to add, must be in RGBA32 format.
+
+
+
Returns
Handle corresponding to the newly added image.
+
Note
This performs a image-resize + resource write, which is always very slow.
+ +
+
+ +

◆ get_extra_buffer()

+ +
+
+ + + + + + + +
tz::gl::resource_handle tz::ren::impl::render_pass::get_extra_buffer (std::size_t extra_buffer_id) const
+
+ +

Retrieve the resource handle corresponding to an extra buffer that was passed in info during creation of the mesh renderer.

+
Parameters
+ + +
extra_buffer_idId of the extra buffer to retrieve. Note, this id associates the buffer with the expression info::extra_buffers[id] at the point of mesh renderer creation.
+
+
+
Returns
Handle corresponding to the extra_buffer_id'th index of the extra buffers provided at mesh renderer creation time.
+
Precondition
extra_buffer_id < get_extra_buffer_count(), or the behaviour is undefined.
+ +
+
+ +

◆ get_extra_buffer_count()

+ +
+
+ + + + + + + +
std::size_t tz::ren::impl::render_pass::get_extra_buffer_count () const
+
+ +

Retrieve the number of extra buffers that were specified when the mesh renderer was created.

+
Returns
Number of extra buffers.
+ +
+
+ +

◆ get_hierarchy() [1/2]

+ +
+
+ + + + + + + +
tz::transform_hierarchy< std::uint32_t > & tz::ren::impl::render_pass::get_hierarchy ()
+
+ +

Retrieve the underlying transform hierarchy.

+

Implementation details are as follows:

    +
  • The hierarchy represents the objects as nodes in a tree. Each node contains a local transform, and a data payload.
  • +
  • The data payload corresponds to the integral value of the object's corresponding object-handle (i.e static_cast<std::size_t>(static_cast<tz::hanval>(my_object_handle))).
  • +
  • If an object is removed, its corresponding node is deleted.
  • +
+ +
+
+ +

◆ get_hierarchy() [2/2]

+ +
+
+ + + + + + + +
const tz::transform_hierarchy< std::uint32_t > & tz::ren::impl::render_pass::get_hierarchy () const
+
+ +

Retrieve the underlying transform hierarchy.

+

Implementation details are as follows:

    +
  • The hierarchy represents the objects as nodes in a tree. Each node contains a local transform, and a data payload.
  • +
  • The data payload corresponds to the integral value of the object's corresponding object-handle (i.e static_cast<std::size_t>(static_cast<tz::hanval>(my_object_handle))).
  • +
  • If an object is removed, its corresponding node is deleted.
  • +
+ +
+
+ +

◆ get_mesh()

+ +
+
+ + + + + + + +
const mesh_locator & tz::ren::impl::render_pass::get_mesh (mesh_handle m) const
+
+ +

Retrieve the mesh locator corresponding to an existing mesh.

+

The mesh locator contains information about how much data comprises the mesh, and where in the vertex/index buffer the data resides.

Parameters
+ + +
mMesh handle to retrieve information about.
+
+
+
Returns
Mesh locator corresponding to mesh_handle m.
+ +
+
+ +

◆ get_mesh_count()

+ +
+
+ + + + + + + +
std::size_t tz::ren::impl::render_pass::get_mesh_count (bool include_free_list = false) const
+
+ +

Retrieve the number of meshes that have been added so far.

+
Parameters
+ + +
include_free_listWhether this number should include meshes that have been removed and are still in the free-list (false by default).
+
+
+
Returns
Number of meshes stored within the mesh renderer.
+ +
+
+ +

◆ get_object() [1/2]

+ +
+
+ + + + + + + +
object_data & tz::ren::impl::render_pass::get_object (object_handle oh)
+
+ +

Retrieve the internal shader data for an object.

+
Parameters
+ + +
ohHandle corresponding to the object to retrieve information about.
+
+
+
Returns
Reference to the shader data. You can assume any changes you make are resident in the next device draw.
+ +
+
+ +

◆ get_object() [2/2]

+ +
+
+ + + + + + + +
const object_data & tz::ren::impl::render_pass::get_object (object_handle oh) const
+
+ +

Retrieve the internal shader data for an object.

+
Parameters
+ + +
ohHandle corresponding to the object to retrieve information about.
+
+
+
Returns
Reference to the shader data. You can assume any changes you make are resident in the next device draw.
+ +
+
+ +

◆ get_object_count()

+ +
+
+ + + + + + + +
std::size_t tz::ren::impl::render_pass::get_object_count (bool include_free_list = false) const
+
+ +

Retrieve the number of objects that have been added so far.

+
Parameters
+ + +
include_free_listWhether this number should include objects that have been removed and are still in the free-list (false by default).
+
+
+
Returns
Number of objects stored within the mesh renderer.
+ +
+
+ +

◆ object_get_global_transform()

+ +
+
+ + + + + + + +
tz::trs tz::ren::impl::render_pass::object_get_global_transform (object_handle oh) const
+
+ +

Get the global transform of a given object.

+

Think of this as the world-space transform.

Parameters
+ + +
ohHandle corresponding to the desired object.
+
+
+
Returns
Transform, represented as a translation, rotation and scale.
+
Precondition
There must be a valid object corresponding to the handle. If the object has been removed, or a object never existed with this handle, the behaviour is undefined.
+ +
+
+ +

◆ object_get_local_transform()

+ +
+
+ + + + + + + +
tz::trs tz::ren::impl::render_pass::object_get_local_transform (object_handle oh) const
+
+ +

Get the local transform of a given object.

+
Parameters
+ + +
ohHandle corresponding to the desired object.
+
+
+
Returns
Transform, represented as a translation, rotation and scale.
+
Precondition
There must be a valid object corresponding to the handle. If the object has been removed, or a object never existed with this handle, the behaviour is undefined.
+ +
+
+ +

◆ object_set_global_transform()

+ +
+
+ + + + + + + + + + + +
void tz::ren::impl::render_pass::object_set_global_transform (object_handle oh,
tz::trs trs )
+
+ +

Set the global transform of a given object.

+
Parameters
+ + + +
ohHandle corresponding to the desired object.
trsTRS representing the new global transform of the object.
+
+
+
Precondition
There must be a valid object corresponding to the handle. If the object has been removed, or a object never existed with this handle, the behaviour is undefined.
+
Note
It is much faster to set the local transform than it is to set the global transform with this method. Prefer object_set_local_transform unless you must work in world-space.
+ +
+
+ +

◆ object_set_local_transform()

+ +
+
+ + + + + + + + + + + +
void tz::ren::impl::render_pass::object_set_local_transform (object_handle oh,
tz::trs trs )
+
+ +

Set the local transform of a given object.

+
Parameters
+ + + +
ohHandle corresponding to the desired object.
trsTRS representing the new local transform of the object.
+
+
+
Precondition
There must be a valid object corresponding to the handle. If the object has been removed, or a object never existed with this handle, the behaviour is undefined.
+ +
+
+ +

◆ remove_mesh()

+ +
+
+ + + + + + + +
void tz::ren::impl::render_pass::remove_mesh (mesh_handle m)
+
+ +

Remove a mesh from the renderer.

+

Any objects that are currently using this mesh handle will continue to exist, but instead use an empty mesh locator, meaning it is no longer drawn. You can either remove these objects, set them to use a new mesh, or leave them in the hierarchy as they are.

+
Parameters
+ + +
mMesh handle to remove.
+
+
+ +
+
+ +

◆ remove_object()

+ +
+
+ + + + + + + +
void tz::ren::impl::render_pass::remove_object (render_pass::object_handle oh)
+
+ +

Remove an object.

+
Parameters
+ + +
ohHandle corresponding to the object you want removed.
+
+
+
Note
Any child objects are also removed. Meshes/textures are not removed, even if this was the last object using them.
+ +
+
+
+ + + + diff --git a/classtz_1_1ren_1_1impl_1_1render__pass.png b/classtz_1_1ren_1_1impl_1_1render__pass.png new file mode 100644 index 0000000000000000000000000000000000000000..dca1af893b62b556c637277b620f40ce619619c4 GIT binary patch literal 979 zcmeAS@N?(olHy`uVBq!ia0vp^i-5R;gBeH$OCP8NQqloFA+G=b{|7Q(y!l$%e`vXd zfo6fk^fNCWJa_;UH$5A+1SrQ@666=m0OW&#In(Sb3=GV1o-U3d6^w7^J}i2yz|%5) z>E(;R?LS&>GZdO|WL-^p$s);ZiVB_QwI}~`_0l}6t0FjYrf7$fQXK1|j*f7#k2>!Z z-o?H;Klg{^q7IM6^({O8u-S%$Pg{TcmDSbPzr*fU%>1%q_jP?n_cw9@kNWoO$KE-2 zFH5Y)Xl?RZyBiggLd4H*US%?I$uV!2-0Z1^TAeQvSAX;L?L5f1%k8(jGqe7`#qV=F-RytX-95T+=3}#~QyM4AF1l-b`Ng-dl4iH|bpL9Ks}n!nd(CI7 zwP%XSsehN3ymNbfyT0W;|EFaam6XDtp0c0(XTHGo*_*4il|FgNKU~ytB0f~1tD^$! zA>9tmr6yY$9>mo$AGkA1{^RfJs$)L|#Sh(-tY=KRlfm#oTY&MvY6ljE^-O{cd$?Q} zK4{?;_~mhAPVv6b`>tP<@|d3ja9aN?8xQmx;I1ow*=F8va)c2mvW zui2WQyT_}R-MXUqwbA`#>BiZUO&(h= zvRk^!=dJUKvuY_*?o7#Yz0|Y3V_SH(`j^LM9lxtLZr|)~avUYbMlqPlm9cW6HoXe z?KElnmy>#vp4f7^O!}fF;CX2^tKsuG%f%S(tk!3k5&c=YuGaUwh5aKZ3+u=F4lE5X zMdg?p!XGLzREX-4z$o3{ZTZ}0J4y&O&hYrOi7oQV>m)304SeC3?N8oPTt93tO5 zvt6_@qB6fG`Ie7Z01dEHH+mF_n;n(uPXDZ3?o_snDY z1v?XenNL?auN|Y}xt?jF%3e@_WjUU)e7^E4yGYm4|NAY|wgR&sgQu&X%Q~loCIACs B+0g(1 literal 0 HcmV?d00001 diff --git a/classtz_1_1ren_1_1impl_1_1texture__manager.html b/classtz_1_1ren_1_1impl_1_1texture__manager.html new file mode 100644 index 0000000000..d9fac238de --- /dev/null +++ b/classtz_1_1ren_1_1impl_1_1texture__manager.html @@ -0,0 +1,106 @@ + + + + + + + +Topaz: tz::ren::impl::texture_manager Class Reference + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.2.0.1 +
+
C++20 Graphics Engine
+
+
+ + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+
tz::ren::impl::texture_manager Class Reference
+
+
+
+ + + + diff --git a/classtz_1_1ren_1_1impl_1_1vertex__wrangler.html b/classtz_1_1ren_1_1impl_1_1vertex__wrangler.html new file mode 100644 index 0000000000..3c3129521c --- /dev/null +++ b/classtz_1_1ren_1_1impl_1_1vertex__wrangler.html @@ -0,0 +1,106 @@ + + + + + + + +Topaz: tz::ren::impl::vertex_wrangler Class Reference + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.2.0.1 +
+
C++20 Graphics Engine
+
+
+ + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+
tz::ren::impl::vertex_wrangler Class Reference
+
+
+
+ + + + diff --git a/classtz_1_1ren_1_1mesh__renderer.html b/classtz_1_1ren_1_1mesh__renderer.html new file mode 100644 index 0000000000..0b650e178d --- /dev/null +++ b/classtz_1_1ren_1_1mesh__renderer.html @@ -0,0 +1,227 @@ + + + + + + + +Topaz: tz::ren::mesh_renderer Class Reference + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.2.0.1 +
+
C++20 Graphics Engine
+
+
+ + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+ +
tz::ren::mesh_renderer Class Reference
+
+
+ +

A lightweight 3D mesh renderer. + More...

+ +

#include <mesh.hpp>

+
+Inheritance diagram for tz::ren::mesh_renderer:
+
+
+ + +tz::ren::impl::render_pass +tz::ren::animation_renderer + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Public Member Functions

mesh_renderer (info i={})
 Create a new mesh renderer.
 
- Public Member Functions inherited from tz::ren::impl::render_pass
+void append_to_render_graph ()
 Add the underlying renderers to the end of the render graph. They will not be reliant on any other renderers.
 
+void update ()
 Update the transform hierarchy.
 
std::size_t get_mesh_count (bool include_free_list=false) const
 Retrieve the number of meshes that have been added so far.
 
mesh_handle add_mesh (mesh m)
 Add a new mesh, returning the corresponding handle.
 
const mesh_locatorget_mesh (mesh_handle m) const
 Retrieve the mesh locator corresponding to an existing mesh.
 
void remove_mesh (mesh_handle m)
 Remove a mesh from the renderer.
 
texture_handle add_texture (const tz::io::image &img)
 Add a new texture to the renderer.
 
std::size_t get_object_count (bool include_free_list=false) const
 Retrieve the number of objects that have been added so far.
 
object_handle add_object (object_create_info create)
 Add a new object.
 
const object_dataget_object (object_handle oh) const
 Retrieve the internal shader data for an object.
 
object_dataget_object (object_handle oh)
 Retrieve the internal shader data for an object.
 
void remove_object (object_handle oh)
 Remove an object.
 
tz::trs object_get_local_transform (object_handle oh) const
 Get the local transform of a given object.
 
void object_set_local_transform (object_handle oh, tz::trs trs)
 Set the local transform of a given object.
 
tz::trs object_get_global_transform (object_handle oh) const
 Get the global transform of a given object.
 
void object_set_global_transform (object_handle oh, tz::trs trs)
 Set the global transform of a given object.
 
const tz::transform_hierarchy< std::uint32_t > & get_hierarchy () const
 Retrieve the underlying transform hierarchy.
 
tz::transform_hierarchy< std::uint32_t > & get_hierarchy ()
 Retrieve the underlying transform hierarchy.
 
tz::gl::resource_handle get_extra_buffer (std::size_t extra_buffer_id) const
 Retrieve the resource handle corresponding to an extra buffer that was passed in info during creation of the mesh renderer.
 
std::size_t get_extra_buffer_count () const
 Retrieve the number of extra buffers that were specified when the mesh renderer was created.
 
+tz::gl::renderer_handle get_compute_pass () const
 Retrieve the renderer handle associated with the compute pre-pass. This pass populates the indirect draw list.
 
+tz::gl::renderer_handle get_render_pass () const
 Retrieve the renderer handle associated with the mesh renderer's main render pass.
 
+

Detailed Description

+

A lightweight 3D mesh renderer.

+

If you'd like to render animated models, you're looking for animation_renderer.

+

Mesh Renderers are comprised of three major components: <Mesh>

    +
  • Represents a triangulated set of indices and vertices. These are necessary to give shape to drawn geometry.
  • +
  • First you must fill in the data of a mesh_renderer::mesh, and then add it using mesh_renderer::add_mesh. Keep ahold of the returned mesh_handle.
  • +
+

<Texture>

    +
  • Represents an image that is sampled when drawing a mesh.
  • +
  • First you must fill the data of a tz::io::image, in the format tz::gl::image_format::RGBA32, and then add it using mesh_renderer::add_texture. Keep ahold of the returned texture_handle.
  • +
+

<Object>

    +
  • Represents a "thing" that is drawn in the 3D world.
  • +
  • Objects can have zero or more child objects. That is - objects are expressed as a graph, you can have as many root nodes as you like, and each object can have as many children as you like.
  • +
  • At its core, objects are comprised of:
      +
    • A local transform (its position, rotation and scale with respect to its parent)
    • +
    • (Optional) A mesh (when you draw the object, what geometry should be drawn as its location?).
    • +
    • If you don't want the object to be drawn, and just to exist as a node within the hierarchy, you can set the mesh to null.
    • +
    +
  • +
+

A list of bound textures. These textures will be sampled from when drawing the object's associated mesh.

    +
  • The list should have a size less-than-or-equal to the value tz::ren::impl::object_data::max_bound_textures. Any excess texture locators will be ignored.
  • +
+

To add a new object to the 3D world, invoke mesh_renderer::add_object. Keep ahold of the returned object_handle.

+
+ + + + diff --git a/classtz_1_1ren_1_1mesh__renderer.png b/classtz_1_1ren_1_1mesh__renderer.png new file mode 100644 index 0000000000000000000000000000000000000000..4c58f0280824c0e5ac39d8ef37f574f5c82f63ab GIT binary patch literal 983 zcmeAS@N?(olHy`uVBq!ia0vp^i-5R;gBeH$OCP8NQqloFA+G=b{|7Q(y!l$%e`vXd zfo6fk^fNCWJa_;UH$5A+1SrQ@666=m0OW&#In(Sb3=GUko-U3d6^w7^zMk}0i>GCF zT9()Q|3{8*Jm}#dR6W)9^pzD|^AbuPIvdT~f5P(l)>fZM+S&r1msUHdc&^t;QaZ^! z>&IU1y|ZSito_F`QN{YNe~0GM_NZ-dKStbLUbT0|tcR%=l=Dx<%lh4a6!7=le*M)I zZ)%^cktn@&Y+h|rh0qnTvyq_^Gp|&1u6UDv$!u%8!OQtUy_Y& z>h4f`u_iP3f5n`no!4G47AAQuk^8LW*KL^}%so@2$id{AckjFS`I(E)?p~q);%)iH zdl_f1?3#Sy=8A929S`?j+y1{qpS|*O#-u&k$G3lp`e5&LC*N>sKgw{tIPQ z@~jf=Ph;g>uzTdT!|E}=Lyt5sLmjIULxpGu!-G%- zriSoF4u&}V0{evwmrl7RHmT#pDJ~a5!SzgmE=N{tF6#dk^rcs~PUF!x&8iiW+m0uf z&j0q>H0A%x*kuR%|7fkSlqnXx_}Epn|80NF)9-VpZG6A7=hjl$3b8w4?K?YWe3S`% ze<@`7H-S?(cAjb49kSQuNYC<)ZQ<4GUka^{e2SY=*4Lr-0~lcY=XQ5UUKdnX3wGUW zvii}M8MUXZJJP=xZgVxLjc5ZrQ@{VDm4ghOJxe9$mlwspqwFUdw9Ze+(`R5pjXe z3?H;s0fWU=l<~mo6`;ThWnoyqs0$ckA%YBhy0n177U+tu=<83dXLCN^a#A}v6%-Aj z3X_(Es{_;4?O86l-sZ)73(J)zr7Zv5si(ATid@#c+mAQy@(&f;ylwiLYq{IsbXIK_ z_w3zWX7MapwEu43j8D~mQ_rq>J6rSgk+rh<^A_mweHIK%&t7%;U#a&Jxn~`pFBoP% zzn<-|#rCH5y8cqLU!0FJD|>IKYwTUC-#2r=`He9QcJhu} z?oF4D&EMj;X4U%Jk$TZeUss4#FJ?b-?$Z4id2;_5&hlQqA2VssI$&}FrzEf!q?68B d>aYFJ5NEt>gUK@4XTU7T;OXk;vd$@?2>_N>(J}x4 literal 0 HcmV?d00001 diff --git a/classtz_1_1ren_1_1text__renderer.html b/classtz_1_1ren_1_1text__renderer.html new file mode 100644 index 0000000000..11bb9ef707 --- /dev/null +++ b/classtz_1_1ren_1_1text__renderer.html @@ -0,0 +1,442 @@ + + + + + + + +Topaz: tz::ren::text_renderer Class Reference + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.2.0.1 +
+
C++20 Graphics Engine
+
+
+ + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+ +
tz::ren::text_renderer Class Reference
+
+
+ +

A 2D text renderer. + More...

+ +

#include <text.hpp>

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

+Public Member Functions

 text_renderer (std::size_t image_capacity=1024u, tz::gl::renderer_options options={}, tz::gl::ioutput *output=nullptr)
 Create a new text renderer.
 
+void update ()
 Invoke this every update.
 
font_handle add_font (const tz::io::ttf &font)
 Add a new font.
 
void remove_font (font_handle fh)
 Remove an existing font.
 
string_handle add_string (font_handle font, tz::trs transform, std::string str, tz::vec3 colour=tz::vec3::filled(1.0f))
 Add a new rendered text.
 
void remove_string (string_handle sh)
 Remove an existing rendered text.
 
void string_set_transform (string_handle sh, tz::trs transform)
 Set the transform (in screen-space) of an existing rendered text.
 
void string_set_colour (string_handle sh, tz::vec3 colour)
 Set the colour of an existing rendered text.
 
void string_set_text (string_handle sh, std::string text)
 Edit an existing rendered text.
 
float string_get_width_pixels (string_handle sh) const
 Get the horizontal width of the string, in pixels.
 
+void append_to_render_graph ()
 Add the text-renderer to the render-graph, causing it to be invoked every frame.
 
+

Detailed Description

+

A 2D text renderer.

+

Use of the text renderer must be externally synchronised.

+

Text Renderers are comprised of two major components: <Font>

    +
  • Represents a set of glyphs imported from a TTF font. For each glyph, a MSDF and some spacing information is passed to a shader.
  • +
  • To add a font, you will need to provide a tz::io::ttf via add_font.
      +
    • Please note that add_font is very slow, as it must stall the render pipeline, rasterise all the MSDF glyphs and then write them to GPU images. For that reason, you should aim to add all your fonts ahead-of-time.
    • +
    +
  • +
+

<Strings>

    +
  • Represents a single rendered text. It can have its own colour and transform (in screen-space)
  • +
  • To add a text, you will need to invoke add_string. You can modify the string later via:
      +
    • string_set_transform, to change the position/rotation/scale of the rendered text.
    • +
    +
  • +
+

string_set_colour, to change the colour of the rendered text.

    +
  • string_set_text, to change the actual text being rendered. Note: If the new text has more characters than the old, then the call will take much longer.
  • +
+

You can remove a text via remove_string.

+

Constructor & Destructor Documentation

+ +

◆ text_renderer()

+ +
+
+ + + + + + + + + + + + + + + + +
tz::ren::text_renderer::text_renderer (std::size_t image_capacity = 1024u,
tz::gl::renderer_options options = {},
tz::gl::ioutput * output = nullptr )
+
+ +

Create a new text renderer.

+
Parameters
+ + +
image_capacityRepresents the maximum number of images that can be present at once. The number of images in-use is equal to the number of fonts multiplied by tz::ren::alphabet.size()tz::ren::alphabet.size(). If you add too many fonts to exceed this value, the behaviour is undefined.
+
+
+ +
+
+

Member Function Documentation

+ +

◆ add_font()

+ +
+
+ + + + + + + +
text_renderer::font_handle tz::ren::text_renderer::add_font (const tz::io::ttf & font)
+
+ +

Add a new font.

+
Parameters
+ + +
fontFont to add.
+
+
+
Returns
Handle corresponding to the created font. Pass this to add_string to draw text using this font.
+ +
+
+ +

◆ add_string()

+ +
+
+ + + + + + + + + + + + + + + + + + + + + +
text_renderer::string_handle tz::ren::text_renderer::add_string (font_handle font,
tz::trs transform,
std::string str,
tz::vec3 colour = tz::vec3::filled(1.0f) )
+
+ +

Add a new rendered text.

+
Parameters
+ + + + + +
fontWhich font should the text be rendered with?
transformWhere should the text be? This is a transform in screen-space.
strString representing the characters to render. Note that control characters, such as line breaks will be rendered as-is and do not function.
colourColour of the rendered text.
+
+
+ +
+
+ +

◆ remove_font()

+ +
+
+ + + + + + + +
void tz::ren::text_renderer::remove_font (font_handle fh)
+
+ +

Remove an existing font.

+

Its images can be re-used by another font.

Parameters
+ + +
fhFont corresponding to the handle to be removed.
+
+
+ +
+
+ +

◆ remove_string()

+ +
+
+ + + + + + + +
void tz::ren::text_renderer::remove_string (string_handle sh)
+
+ +

Remove an existing rendered text.

+
Parameters
+ + +
shString corresponding to the handle to be removed.
+
+
+ +
+
+ +

◆ string_get_width_pixels()

+ +
+
+ + + + + + + +
float tz::ren::text_renderer::string_get_width_pixels (string_handle sh) const
+
+ +

Get the horizontal width of the string, in pixels.

+

This is the cumulative sum of all character widths (axis-aligned, i.e ignoring rotation).

Parameters
+ + +
shHandle corresponding to the string whose width needs to be retrieved.
+
+
+ +
+
+ +

◆ string_set_colour()

+ +
+
+ + + + + + + + + + + +
void tz::ren::text_renderer::string_set_colour (string_handle sh,
tz::vec3 colour )
+
+ +

Set the colour of an existing rendered text.

+
Parameters
+ + + +
shString corresponding to the handle to be affected.
colourNew colour of the rendered text.
+
+
+ +
+
+ +

◆ string_set_text()

+ +
+
+ + + + + + + + + + + +
void tz::ren::text_renderer::string_set_text (string_handle sh,
std::string text )
+
+ +

Edit an existing rendered text.

+
Parameters
+ + + +
shString corresponding to the handle to be affected.
textNew characters to be drawn.
+
+
+ +
+
+ +

◆ string_set_transform()

+ +
+
+ + + + + + + + + + + +
void tz::ren::text_renderer::string_set_transform (string_handle sh,
tz::trs transform )
+
+ +

Set the transform (in screen-space) of an existing rendered text.

+
Parameters
+ + + +
shString corresponding to the handle to be affected.
transformNew transform of the rendered text.
+
+
+ +
+
+
+ + + + diff --git a/classtz_1_1slab__allocator.html b/classtz_1_1slab__allocator.html new file mode 100644 index 0000000000..f4b12ac6a8 --- /dev/null +++ b/classtz_1_1slab__allocator.html @@ -0,0 +1,113 @@ + + + + + + + +Topaz: tz::slab_allocator Class Reference + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.2.0.1 +
+
C++20 Graphics Engine
+
+
+ + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+
tz::slab_allocator Class Reference
+
+
+ +

An allocator which creates large slabs of implementation-defined memory just-in-time, and continually suballocates from said slabs. + More...

+ +

#include <slab.hpp>

+

Detailed Description

+

An allocator which creates large slabs of implementation-defined memory just-in-time, and continually suballocates from said slabs.

+
+ + + + diff --git a/classtz_1_1stack__allocator.html b/classtz_1_1stack__allocator.html new file mode 100644 index 0000000000..109bde2cac --- /dev/null +++ b/classtz_1_1stack__allocator.html @@ -0,0 +1,130 @@ + + + + + + + +Topaz: tz::stack_allocator< S > Class Template Reference + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.2.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 0000000000000000000000000000000000000000..09e907daa2af2a518429c592d2f4ee2d7bd0af6e GIT binary patch literal 634 zcmeAS@N?(olHy`uVBq!ia0vp^6M#5?gBeI3Ea0&NQqloFA+G=b{|7Q(y!l$%e`vXd zfo6fk^fNCWJa_;UH$5A+1SrQ@666=m0OW&#In(Sb3=B-Ho-U3d6^w7^-pqSqz{3)q zn{eU(|D)EQ6uYe?(kCC~VrE)*!Z~(n^GEG%xwpfZq&?R;b4*;~4#dY@G$yW@_x-$@ z(MRcghf8uWm@|t<+?+m5m>u#-Dk!I<%Jm9j9_;>l+?_ct%Ub1<*R?F|? zrPc2YblCpRC z;gh~_C_-=rckbjJzq z*Ro7fS?kQnThA8M?l`Tp}U%{Pw;ByAAT6-Q^1XSS9&=U&(Php{&(hzTX#4 z5?nPqetDtXlYkW=U!6)rR~D~-vbEKC;YXMLzBOy5-UU=EEtWOfcX@Z>@tV5!Tb f)*!D;#eWP!MipGWkC)#BrV<8ES3j3^P6 + + + + + + +Topaz: tz::transform_hierarchy< T > Class Template Reference + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.2.0.1 +
+
C++20 Graphics Engine
+
+
+ + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+ +
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 +,
+  impl_do_nothing +
+ }
 
+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, bool callback_thread_safe=false) 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, bool callback_thread_safe=false) 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.

+
impl_do_nothing 

When the node is removed, the children are completely untouched, meaning they continue to refer to a dead parent. You almost never want this.

+
+ +
+
+

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 = {},
T 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,
bool callback_thread_safe = false ) 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.
callback_thread_safeTrue if it's safe to call the callback from multiple threads, otherwise false. This will potentially launch jobs to help iterate, running much faster.
+
+
+ +
+
+ +

◆ iterate_nodes()

+ +
+
+
+template<typename T >
+ + + + + + + + + + + +
void tz::transform_hierarchy< T >::iterate_nodes (tz::action< unsigned int > auto callback,
bool callback_thread_safe = false ) 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.
callback_thread_safeTrue if it's safe to call the callback from multiple threads, otherwise false. This will potentially launch jobs to help iterate, running much faster.
+
+
+ +
+
+ +

◆ 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..3bbb03bbf1 --- /dev/null +++ b/classtz_1_1unique__cloneable.html @@ -0,0 +1,121 @@ + + + + + + + +Topaz: tz::unique_cloneable< T > Class Template Reference + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.2.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 0000000000000000000000000000000000000000..e834d8521ee7f235e69021111cde4a288bd1ac91 GIT binary patch literal 2571 zcmcJRX;c$g7RM3B2BOF~3Q7yjQAVJRt zf9jH-kDCVOTa1#Dk_P0yFF;928AQiTYAWd6a-yIgeQfdbI^Zgo%h91|axOKmxy*L= z&cw~McG2MAAR4!N8B~I4Z9&!$_+9j-GkS#AjQ&==k0sbc<8Je#fj ztr1*&`Wp{@qvC8TsA+nrw43@vUXi7)9L>z!Kc*5^xu3C|*_icW3-YcDgArXDZqVyr zj#0LiF1GwQlQAn?sFlPn?jp1!zQJ_2m-Z}{89Z2H!NK5uDeUF*D+X}AH6UJ7`(79> z^;3|r?PWsp^}o($4?I11h2R^X~5u(h-fkt2S+dG)ttyqBvfJ)J*QL35Z9i`AoF1UowaS)mih&Zp($OrwL zRZ2BCzIGl{S-ofX+LqU*eogp_v&xvXTvX;Xx_~LoRt~>|svR!O`+ih&<7Z<<`aU+A z?)R@Jd^OaR5M9$J2DOZe3pB%9c&h!k|FL*qspo$V4W8ZHmh_G+uq6+lXyX2nJp5R% z@#uJk`VmUX3*QMUKo39wcDkY-rM{FDw=pX4$scj%=YtSWPhJALP(r5!>8S|8jqKv9AAOx znOO%JW6HYgK8+u@KQ248)|*n6@)MW3(>#aYwQU!vPZiG?GFc7}de2R=@ai3s5=O?3 zzqtySjO}G;1%lT~J3fzY+x3ct&CUv703n~_tim}qkii30m=gKaA<%s0CW-+box65Td2Zz&fjnki^{rph|Z zR#DXGpNafBPxy*H@rlM&A_liZ6)9^zC%X%0KS0gE$=FMj*So1Zho_3%{vX2KXOeW= z#ND~Ww#VGg+o5=ARahz5O2JV|0yA+pDm1Fhp=oVYi&+I+Sbqe7vJ`abqoKG~`2+41 zAUI>8AEX0$kDrV`jW7Dhp{jkFE!W71ziU2GX*~(_kYCM06#kM40u(&rsa6lk&JiPQ z6AQYA(u!a+y|SdXt-{;vTyjgpvBf#N33m$Cv5#iB-sijI44y?Z=XA|p_#gwnCLOcr z(C-?`nTf5EIP~D%&Enmo#jynQElD~S*vm7u_v_k&O`+)WcF-j`hI+R3D9$ad)E9d< zcP01K?y#2oLL38kt6G)=+E_ilDH~lp<-<=;wz7qeRroMc*M~c$=wuzg8;`uxOusi* z6JrUR(M~eCz#}4}OPwM-ceIk1gC^T2y&0+zS>__U4o4oox)VyKk>?1H+Oq-~!*Uha zN5#Gqe`?lN0*cJTXJFmHQ()vFmb+Wmoz z;}b}^TKXSeSTI|cs?JQrtRnMDmQfzqLBH|v1(7LB~#`t=9*#td3F8P8vxy+%Mh|JMZuM!-4^S?00<O^HY+wa_Gat)0u*+D#oPGlFj}j3&+=ahM~crs3p|wDZ`B zgAX-{!v!EtNG|+_VdikcyL#HhQcvQ`pn1}S331Zxa1oL4L_YGdZ7T`?H@&Da>Ijc) zvIn491GM?&*y+@WhYe*{b&_K$W0`dnuil(VOT}8{d=%n%apJcfJ|U6*MbWJj*`N)k zZ=vfXvlgqun3&n!PSUV(={J7CGh~+v!u#<^A%=Yo6v|r7Ol_irh(QxGw(XF`(h~{c zxilofEd&8-A6diEJ4WB;e#DpeeVV<1gc9qc^3k66#Fl^NOY8+S4zvD1ee@Pf_+`Sz z{A-BgT1y=R@&4yn*OlE)q + + + + + + +Topaz: tz::vector< T, S > Class Template Reference + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.2.0.1 +
+
C++20 Graphics Engine
+
+
+ + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+ +
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* (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.

+
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*= (T 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/ (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.

+
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/= (T 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..4abde1ff20 --- /dev/null +++ b/classtz_1_1wsi_1_1impl_1_1window__winapi.html @@ -0,0 +1,106 @@ + + + + + + + +Topaz: tz::wsi::impl::window_winapi Class Reference + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.2.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..b5fb4f6221 --- /dev/null +++ b/classtz_1_1wsi_1_1impl_1_1window__x11.html @@ -0,0 +1,106 @@ + + + + + + + +Topaz: tz::wsi::impl::window_x11 Class Reference + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.2.0.1 +
+
C++20 Graphics Engine
+
+
+ + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+
tz::wsi::impl::window_x11 Class Reference
+
+
+
+ + + + diff --git a/clipboard.js b/clipboard.js new file mode 100644 index 0000000000..42c1fb0e02 --- /dev/null +++ b/clipboard.js @@ -0,0 +1,61 @@ +/** + +The code below is based on the Doxygen Awesome project, see +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. + +*/ + +let clipboard_title = "Copy to clipboard" +let clipboard_icon = `` +let clipboard_successIcon = `` +let clipboard_successDuration = 1000 + +$(function() { + if(navigator.clipboard) { + const fragments = document.getElementsByClassName("fragment") + for(const fragment of fragments) { + const clipboard_div = document.createElement("div") + clipboard_div.classList.add("clipboard") + clipboard_div.innerHTML = clipboard_icon + clipboard_div.title = clipboard_title + $(clipboard_div).click(function() { + const content = this.parentNode.cloneNode(true) + // filter out line number and folded fragments from file listings + content.querySelectorAll(".lineno, .ttc, .foldclosed").forEach((node) => { node.remove() }) + let text = content.textContent + // remove trailing newlines and trailing spaces from empty lines + text = text.replace(/^\s*\n/gm,'\n').replace(/\n*$/,'') + navigator.clipboard.writeText(text); + this.classList.add("success") + this.innerHTML = clipboard_successIcon + window.setTimeout(() => { // switch back to normal icon after timeout + this.classList.remove("success") + this.innerHTML = clipboard_icon + }, clipboard_successDuration); + }) + fragment.insertBefore(clipboard_div, fragment.firstChild) + } + } +}) diff --git a/clone_8hpp_source.html b/clone_8hpp_source.html new file mode 100644 index 0000000000..feec32a233 --- /dev/null +++ b/clone_8hpp_source.html @@ -0,0 +1,140 @@ + + + + + + + +Topaz: src/tz/core/memory/clone.hpp Source File + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.2.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 0000000000000000000000000000000000000000..98cc2c909da37a6df914fbf67780eebd99c597f5 GIT binary patch literal 132 zcmeAS@N?(olHy`uVBq!ia0vp^oFL4>1|%O$WD@{V-kvUwAr*{o@8{^CZMh(5KoB^r_<4^zF@3)Cp&&t3hdujKf f*?bjBoY!V+E))@{xMcbjXe@)LtDnm{r-UW|*e5JT literal 0 HcmV?d00001 diff --git a/command_8hpp_source.html b/command_8hpp_source.html new file mode 100644 index 0000000000..9004f16ab7 --- /dev/null +++ b/command_8hpp_source.html @@ -0,0 +1,600 @@ + + + + + + + +Topaz: src/tz/gl/impl/vulkan/detail/command.hpp Source File + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.2.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/hardware/queue.hpp"
+
5#include "tz/gl/impl/vulkan/detail/logical_device.hpp"
+
6#include "tz/gl/impl/vulkan/detail/graphics_pipeline.hpp"
+
7#include "tz/gl/impl/vulkan/detail/buffer.hpp"
+
8
+
9namespace tz::gl::vk2
+
10{
+
+ +
16 {
+
+
17 struct Dispatch
+
18 {
+
19 tz::vec3ui groups;
+
20 };
+
+
+
25 struct Draw
+
26 {
+
28 std::uint32_t vertex_count;
+
30 std::uint32_t instance_count = 1;
+
32 std::uint32_t first_vertex = 0;
+
34 std::uint32_t first_instance = 0;
+
35 };
+
+
36
+
+ +
42 {
+
43 std::uint32_t index_count;
+
44 std::uint32_t instance_count = 1;
+
45 std::uint32_t first_index = 0;
+
46 std::int32_t vertex_offset = 0;
+
47 std::uint32_t first_instance = 0;
+
48 };
+
+
49
+
+ +
55 {
+
56 const Buffer* draw_indirect_buffer;
+
57 std::uint32_t draw_count;
+
58 std::uint32_t stride;
+
59 VkDeviceSize offset = 0;
+
60 };
+
+
61
+
+ +
63 {
+
64 const Buffer* draw_indirect_buffer;
+
65 std::uint32_t max_draw_count;
+
66 std::uint32_t stride;
+
67 VkDeviceSize offset = sizeof(std::uint32_t);
+
68 };
+
+
69
+
+ +
75 {
+
76 const Buffer* draw_indirect_buffer;
+
77 std::uint32_t draw_count;
+
78 std::uint32_t stride;
+
79 VkDeviceSize offset = 0;
+
80 };
+
+
81
+
+ +
83 {
+
84 const Buffer* draw_indirect_buffer;
+
85 std::uint32_t max_draw_count;
+
86 std::uint32_t stride;
+
87 VkDeviceSize offset = sizeof(std::uint32_t);
+
88 };
+
+
89
+
+ +
95 {
+
96 const vk2::Buffer* index_buffer;
+
97 std::uint64_t buffer_offset = 0;
+
98 };
+
+
99
+
+ +
105 {
+ +
108 };
+
+
109
+ +
125
+ +
127
+ +
129
+
+ +
136 {
+
138 const Buffer* src;
+ +
142 std::size_t src_offset = 0;
+
144 std::size_t dst_offset = 0;
+
145 };
+
+
146
+
+ +
153 {
+
155 const Buffer* src;
+ +
159 ImageAspectFlags image_aspects;
+
160 };
+
+
161
+
+ +
168 {
+
170 const Image* src;
+ +
174 ImageAspectFlags image_aspects;
+
175 };
+
+
176
+
+ +
181 {
+ +
184 };
+
+
185
+
+ +
193 {
+ + +
198 std::optional<ImageLayout> old_layout = std::nullopt;
+
199
+
201 AccessFlagField source_access;
+
203 AccessFlagField destination_access;
+ + +
209 ImageAspectFlags image_aspects;
+
210
+ + +
215 };
+
+
216
+
+ +
218 {
+
219 tz::vec2ui offset;
+
220 tz::vec2ui extent;
+
221 };
+
+
222
+
+ +
224 {
+
225 std::string name;
+
226 tz::vec4 colour{0.0f, 0.0f, 0.0f, 0.0f};
+
227 };
+
+
228
+ +
230
+
232 using variant = std::variant<Dispatch, Draw, DrawIndexed, DrawIndirect, DrawIndirectCount, DrawIndexedIndirect, DrawIndexedIndirectCount, BindIndexBuffer, BindPipeline, BindDescriptorSets, BeginDynamicRendering, EndDynamicRendering, BufferCopyBuffer, BufferCopyImage, ImageCopyImage, BindBuffer, TransitionImageLayout, SetScissorDynamic, DebugBeginLabel, DebugEndLabel>;
+
233 };
+
+
234
+
235 enum class CommandPoolFlag
+
236 {
+
237 Reusable = VK_COMMAND_POOL_CREATE_RESET_COMMAND_BUFFER_BIT
+
238 };
+
239 using CommandPoolFlags = tz::enum_field<CommandPoolFlag>;
+
+ +
245 {
+ +
249 CommandPoolFlags flags = {};
+
250 };
+
+
251
+
252 class CommandBuffer;
+
253
+
254
+
+ +
256 {
+
257 tz::vec4 clear_colour = {0.0f, 0.0f, 0.0f, 1.0f};
+
258 vk2::LoadOp colour_load = vk2::LoadOp::Clear;
+
259 vk2::StoreOp colour_store = vk2::StoreOp::Store;
+
260
+
261 vk2::LoadOp depth_load = vk2::LoadOp::Clear;
+
262 vk2::StoreOp depth_store = vk2::StoreOp::Store;
+
263 };
+
+
264
+
+ +
270 {
+
271 public:
+
+ +
273 {
+
274 public:
+
275 DynamicRenderingRun(CommandBufferRecording& record, std::span<const vk2::ImageView> colour_attachments, const vk2::ImageView* depth_attachment, DynamicRenderingRunInfo rinfo = {});
+ +
277
+
278 DynamicRenderingRun& operator=(const DynamicRenderingRun& rhs) = delete;
+
279 DynamicRenderingRun& operator=(DynamicRenderingRun&& rhs) = delete;
+
280 private:
+
281 CommandBufferRecording* recording;
+
282 };
+
+
283
+
284 CommandBufferRecording(CommandBuffer& command_buffer);
+ + + +
288
+
289 CommandBufferRecording& operator=(const CommandBufferRecording& rhs) = delete;
+ +
291
+ +
301 void dispatch(VulkanCommand::Dispatch dispatch);
+
306 void draw(VulkanCommand::Draw draw);
+ + +
317 void draw_indirect_count(VulkanCommand::DrawIndirectCount draw);
+ +
323 void draw_indexed_indirect_count(VulkanCommand::DrawIndexedIndirectCount draw);
+
324 void bind_index_buffer(VulkanCommand::BindIndexBuffer bind);
+ + + + + +
350
+
351 void transition_image_layout(VulkanCommand::TransitionImageLayout command);
+
352
+
353 void set_scissor_dynamic(VulkanCommand::SetScissorDynamic command);
+
354
+
355 void debug_begin_label(VulkanCommand::DebugBeginLabel command);
+
356 void debug_end_label(VulkanCommand::DebugEndLabel command);
+
357
+
362 const CommandBuffer& get_command_buffer() const;
+
363 private:
+ +
365 void register_command(VulkanCommand::variant command);
+
366 ImageLayout get_layout_so_far(const Image& image) const;
+
367
+
368 CommandBuffer* command_buffer;
+
369 };
+
+
370
+
371 class CommandPool;
+
372
+
+ +
378 {
+
379 public:
+
380 friend class CommandPool;
+
384 const LogicalDevice& get_device() const;
+ +
394 bool is_recording() const;
+
398 bool has_ever_recorded() const;
+
403 std::size_t command_count() const;
+
404 std::span<const VulkanCommand::variant> get_recorded_commands() const;
+
405 void set_owner(const CommandPool& owner);
+
406
+
407 using NativeType = VkCommandBuffer;
+
408 NativeType native() const;
+
409
+
410 friend class CommandBufferRecording;
+
411 private:
+
412 void set_recording(bool recording);
+
413 void add_command(VulkanCommand::variant command);
+
414
+
415 CommandBuffer(const CommandPool& owner_pool, CommandBuffer::NativeType native);
+
416
+
417 VkCommandBuffer command_buffer;
+
418 const CommandPool* owner_pool;
+
419 bool recording;
+
420 bool ever_recorded;
+
421 std::vector<VulkanCommand::variant> recorded_commands;
+
422 };
+
+
423
+
+ +
429 {
+
430 public:
+
+ +
435 {
+
437 std::uint32_t buffer_count;
+
438 };
+
+
439
+
+ +
444 {
+
446 bool success() const;
+
447
+
+ +
450 {
+
451 AllocationSuccess,
+
452 FatalError
+
453 };
+
+
454
+ + +
459 };
+
+
460
+ +
462 CommandPool(const CommandPool& copy) = delete;
+
463 CommandPool(CommandPool&& move);
+
464 ~CommandPool();
+
465
+
466 CommandPool& operator=(const CommandPool& rhs) = delete;
+
467 CommandPool& operator=(CommandPool&& rhs);
+
468
+
469 const LogicalDevice& get_device() const;
+
470
+ +
476 void free_buffers(const AllocationResult& alloc_result);
+
477
+
478 using NativeType = VkCommandPool;
+
479 NativeType native() const;
+
480
+
481 static CommandPool null();
+
482 bool is_null() const;
+
483 private:
+
484 CommandPool();
+
485
+
486 VkCommandPool pool;
+
487 CommandPoolInfo info;
+
488 };
+
+
489
+
+ +
491 {
+
492 CommandBufferData() = default;
+ +
494 {
+
495 *this = std::move(move);
+
496 }
+
497 CommandBufferData& operator=(CommandBufferData&& rhs)
+
498 {
+
499 std::swap(this->pool, rhs.pool);
+
500 std::swap(this->data, rhs.data);
+
501 for(auto& buf : this->data.buffers)
+
502 {
+
503 buf.set_owner(this->pool);
+
504 }
+
505 for(auto& buf : rhs.data.buffers)
+
506 {
+
507 buf.set_owner(rhs.pool);
+
508 }
+
509 return *this;
+
510 }
+
511 vk2::CommandPool pool = vk2::CommandPool::null();
+ +
513 };
+
+
514}
+
515
+
516#endif // TZ_VULKAN
+
517#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:378
+
const LogicalDevice & get_device() const
CommandBuffers are allocated from a CommandPool.
Definition command.cpp:443
+
std::size_t command_count() const
Retrieve the number of commands recorded into the buffer.
Definition command.cpp:465
+
bool is_recording() const
Query as to whether this CommandBuffer is currently recording.
Definition command.cpp:455
+
CommandBufferRecording record()
Begin recording the CommandBuffer.
Definition command.cpp:448
+
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:460
+ +
Represents the full duration of the recording process of an existing CommandBuffer.
Definition command.hpp:270
+
void buffer_copy_image(VulkanCommand::BufferCopyImage command)
Copy data from one Buffer to an Image.
Definition command.cpp:227
+
void image_copy_image(VulkanCommand::ImageCopyImage command)
Copy data from one Image to another.
Definition command.cpp:257
+
void dispatch(VulkanCommand::Dispatch dispatch)
Dispatch some compute work.
Definition command.cpp:153
+
void draw_indirect(VulkanCommand::DrawIndirect draw)
Perform some indirect, non-indexed draws.
Definition command.cpp:171
+
void buffer_copy_buffer(VulkanCommand::BufferCopyBuffer command)
Copy data from one Buffer to another.
Definition command.cpp:210
+
const CommandBuffer & get_command_buffer() const
Retrieve the CommandBuffer that is currently being recorded.
Definition command.cpp:403
+
void draw_indexed_indirect(VulkanCommand::DrawIndexedIndirect draw)
Perform some indirect, indexed draws.
Definition command.cpp:183
+
void bind_pipeline(VulkanCommand::BindPipeline command)
Bind an existing GraphicsPipeline to some context.
Definition command.cpp:145
+
void bind_buffer(VulkanCommand::BindBuffer command)
Bind a Buffer.
Definition command.cpp:293
+
void bind_descriptor_sets(VulkanCommand::BindDescriptorSets command)
Bind a list of DescriptorSet.
Definition command.cpp:201
+
void draw(VulkanCommand::Draw draw)
Perform a non-instanced draw.
Definition command.cpp:159
+
void draw_indexed(VulkanCommand::DrawIndexed draw)
Perform an indexed draw.
Definition command.cpp:165
+
Represents storage for CommandBuffers.
Definition command.hpp:429
+
AllocationResult allocate_buffers(const Allocation &alloc)
Allocate some CommandBuffers.
Definition command.cpp:568
+
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:124
+
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, 2 > vec2ui
A vector of two unsigned ints.
Definition vector.hpp:244
+
vector< unsigned int, 3 > vec3ui
A vector of three unsigned ints.
Definition vector.hpp:246
+
PipelineContext
Specifies which pipeline type a RenderPass subpass is expected to bind to.
Definition tz_vulkan.hpp:290
+
LoadOp
Represents how some resource is loaded.
Definition tz_vulkan.hpp:264
+
StoreOp
Represents how some resource is stored.
Definition tz_vulkan.hpp:278
+
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:491
+
Specifies information about an allocation of a CommandBuffer or many.
Definition command.hpp:435
+
std::uint32_t buffer_count
number of CommandBuffers to create.
Definition command.hpp:437
+
Contains information about the result of a pool allocation.
Definition command.hpp:444
+
AllocationResultType type
Result description for this specific allocation.
Definition command.hpp:458
+
tz::basic_list< CommandBuffer > buffers
List of newly-allocated buffers.
Definition command.hpp:456
+
bool success() const
Query as to whether the allocation was successful or not.
Definition command.cpp:505
+
AllocationResultType
Describes how well an allocation went.
Definition command.hpp:450
+
Specifies creation flags for a CommandPool.
Definition command.hpp:245
+
CommandPoolFlags flags
Specifies extra flags which affect the created command pool.
Definition command.hpp:249
+
const hardware::Queue * queue
Specifies which hardware queue is expected to act as the executor for the CommandPool's buffers.
Definition command.hpp:247
+
Definition command.hpp:256
+ +
Bind a vertex or index Buffer.
Definition command.hpp:181
+
const Buffer * buffer
Buffer to bind, usage must contain one of BufferUsage::VertexBuffer or BufferUsage::index_buffer.
Definition command.hpp:183
+
Record a bind of one of more DescriptorSet See CommandBufferRecording::bind_descriptor_sets for usage...
Definition command.hpp:115
+
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:123
+
PipelineContext context
Pipeline bind point.
Definition command.hpp:119
+
const PipelineLayout * pipeline_layout
PipelineLayout representing the list of layouts matching each provided set.
Definition command.hpp:117
+
const tz::basic_list< const DescriptorSet * > descriptor_sets
List of DescriptorSet to bind.
Definition command.hpp:121
+
Bind an index buffer.
Definition command.hpp:95
+
Record a bind of a GraphicsPipeline.
Definition command.hpp:105
+
const Pipeline * pipeline
Pipeline to be bound. Must not be null.
Definition command.hpp:107
+
Record a copy from one Buffer to another.
Definition command.hpp:136
+
std::size_t src_offset
Offset, in bytes, from the beginning of the source buffer to copy from.
Definition command.hpp:142
+
std::size_t dst_offset
Offset, in bytes, from the beginning of the destination buffer to copy to.
Definition command.hpp:144
+
const Buffer * src
Buffer to copy data from. Must not be null.
Definition command.hpp:138
+
Buffer * dst
Buffer to copy to. Must not be null.
Definition command.hpp:140
+
Record a copy from one Buffer to an Image.
Definition command.hpp:153
+
ImageAspectFlags image_aspects
Aspect of image in this context.
Definition command.hpp:159
+
const Buffer * src
Buffer to copy data from. Must not be null.
Definition command.hpp:155
+
Image * dst
Buffer to copy to. Must not be null.
Definition command.hpp:157
+ + +
Definition command.hpp:18
+
Record a non-indexed draw.
Definition command.hpp:26
+
std::uint32_t first_instance
Instance ID of the first instance to draw (Default 0).
Definition command.hpp:34
+
std::uint32_t instance_count
number of instances to draw (Default 1).
Definition command.hpp:30
+
std::uint32_t first_vertex
Index of the first vertex to draw (Default 0).
Definition command.hpp:32
+
std::uint32_t vertex_count
number of vertices to draw.
Definition command.hpp:28
+
Record an indexed draw.
Definition command.hpp:42
+ +
Record an indexed indirect draw.
Definition command.hpp:75
+ +
Record an unindexed indirect draw.
Definition command.hpp:55
+ +
Copy data from one image to another.
Definition command.hpp:168
+
ImageAspectFlags image_aspects
Aspect of both images.
Definition command.hpp:174
+
const Image * src
Image to copy from.
Definition command.hpp:170
+
Image * dst
Image to copy to.
Definition command.hpp:172
+ +
Transition an image layout via recording a pipeline barrier into the CommandBuffer.
Definition command.hpp:193
+
AccessFlagField source_access
All preceeding operations within the recorded CommandBuffer that satisfy an access method specified h...
Definition command.hpp:201
+
Image * image
Image to transition.
Definition command.hpp:195
+
ImageAspectFlags image_aspects
Aspect of image in this context.
Definition command.hpp:209
+
PipelineStage source_stage
Stage that the barrier blocks after.
Definition command.hpp:205
+
AccessFlagField destination_access
All succeding operations within the recorded CommandBuffer that satisfy an access method specified he...
Definition command.hpp:203
+
ImageLayout target_layout
Desired ImageLayout of image after the command has finished execution.
Definition command.hpp:197
+
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:212
+
PipelineStage destination_stage
Stage that the barrier blocks before.
Definition command.hpp:207
+
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:214
+
Contains all the possible commands which can be recorded within a CommandBuffer.
Definition command.hpp:16
+
std::variant< Dispatch, Draw, DrawIndexed, DrawIndirect, DrawIndirectCount, DrawIndexedIndirect, DrawIndexedIndirectCount, BindIndexBuffer, BindPipeline, BindDescriptorSets, 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:232
+
+ + + + diff --git a/component_8hpp_source.html b/component_8hpp_source.html new file mode 100644 index 0000000000..447b2bb97c --- /dev/null +++ b/component_8hpp_source.html @@ -0,0 +1,133 @@ + + + + + + + +Topaz: src/tz/gl/component.hpp Source File + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.2.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..0e3c52cab5 --- /dev/null +++ b/concepttz_1_1action.html @@ -0,0 +1,119 @@ + + + + + + + +Topaz: tz::action Concept Reference + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.2.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:55
+
function concept which constrains F to any type that can be called with Args... to produce a Result.
Definition types.hpp:46
+

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..5115b9dc73 --- /dev/null +++ b/concepttz_1_1allocator.html @@ -0,0 +1,116 @@ + + + + + + + +Topaz: tz::allocator Concept Reference + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.2.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:81
+
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..a83989f624 --- /dev/null +++ b/concepttz_1_1arithmetic.html @@ -0,0 +1,117 @@ + + + + + + + +Topaz: tz::arithmetic Concept Reference + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.2.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:15
+

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..3b2a8e0a1a --- /dev/null +++ b/concepttz_1_1const__type.html @@ -0,0 +1,110 @@ + + + + + + + +Topaz: tz::const_type Concept Reference + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.2.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:18
+
+ + + + diff --git a/concepttz_1_1container.html b/concepttz_1_1container.html new file mode 100644 index 0000000000..26e2ea819b --- /dev/null +++ b/concepttz_1_1container.html @@ -0,0 +1,132 @@ + + + + + + + +Topaz: tz::container Concept Reference + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.2.0.1 +
+
C++20 Graphics Engine
+
+
+ + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+
tz::container Concept Reference
+
+
+

Concept definition

+
template<typename T>
+
concept tz::container = requires(T a, const T b)
+
{
+
requires std::regular<T>;
+
requires std::swappable<T>;
+
typename T::iterator;
+
requires std::destructible<typename T::value_type>;
+
requires std::same_as<typename T::reference, typename T::value_type &>;
+
requires std::same_as<typename T::const_reference, const typename T::value_type &>;
+
requires std::forward_iterator<typename T::iterator>;
+
requires std::forward_iterator<typename T::const_iterator>;
+
requires std::signed_integral<typename T::difference_type>;
+
requires std::same_as<typename T::difference_type, typename std::iterator_traits<typename T::iterator>::difference_type>;
+
requires std::same_as<typename T::difference_type, typename std::iterator_traits<typename T::const_iterator>::difference_type>;
+
{ a.begin() } -> std::same_as<typename T::iterator>;
+
{ a.end() } -> std::same_as<typename T::iterator>;
+
{ b.begin() } -> std::same_as<typename T::const_iterator>;
+
{ b.end() } -> std::same_as<typename T::const_iterator>;
+
{ a.cbegin() } -> std::same_as<typename T::const_iterator>;
+
{ a.cend() } -> std::same_as<typename T::const_iterator>;
+
{ a.size() } -> std::same_as<typename T::size_type>;
+
{ a.max_size() } -> std::same_as<typename T::size_type>;
+
{ a.empty() } -> std::same_as<bool>;
+
}
+
Definition types.hpp:89
+
+ + + + diff --git a/concepttz_1_1enum__class.html b/concepttz_1_1enum__class.html new file mode 100644 index 0000000000..951a66bdcd --- /dev/null +++ b/concepttz_1_1enum__class.html @@ -0,0 +1,110 @@ + + + + + + + +Topaz: tz::enum_class Concept Reference + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.2.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:21
+
+ + + + diff --git a/concepttz_1_1function.html b/concepttz_1_1function.html new file mode 100644 index 0000000000..7d7c609ca0 --- /dev/null +++ b/concepttz_1_1function.html @@ -0,0 +1,121 @@ + + + + + + + +Topaz: tz::function Concept Reference + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.2.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:46
+

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..6a4cebacc6 --- /dev/null +++ b/concepttz_1_1gl_1_1buffer__component__type.html @@ -0,0 +1,115 @@ + + + + + + + +Topaz: tz::gl::buffer_component_type Concept Reference + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.2.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..04e1642043 --- /dev/null +++ b/concepttz_1_1gl_1_1device__type.html @@ -0,0 +1,135 @@ + + + + + + + +Topaz: tz::gl::device_type Concept Reference + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.2.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:

    +
  • Implement the factory pattern for various graphics library objects, such as renderer_type
  • +
  • Have direct access to the window surface, and exposes relevant information about said surface.
  • +
+
+ + + + 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..3ea0db5def --- /dev/null +++ b/concepttz_1_1gl_1_1image__component__type.html @@ -0,0 +1,118 @@ + + + + + + + +Topaz: tz::gl::image_component_type Concept Reference + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.2.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..2f1b7fcccc --- /dev/null +++ b/concepttz_1_1gl_1_1renderer__type.html @@ -0,0 +1,141 @@ + + + + + + + +Topaz: tz::gl::renderer_type Concept Reference + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.2.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)
+
{
+ +
+
{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:139
+
Named requirement for a renderer.
Definition renderer.hpp:374
+
Definition types.hpp:67
+
std::vector< renderer_edit::variant > renderer_edit_request
Represents an edit to an existing renderer.
Definition renderer.hpp:331
+

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..565ec5a350 --- /dev/null +++ b/concepttz_1_1has__dbgui__method.html @@ -0,0 +1,113 @@ + + + + + + + +Topaz: tz::has_dbgui_method Concept Reference + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.2.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:12
+
+ + + + diff --git a/concepttz_1_1is__printable.html b/concepttz_1_1is__printable.html new file mode 100644 index 0000000000..2fa2b5d9c9 --- /dev/null +++ b/concepttz_1_1is__printable.html @@ -0,0 +1,113 @@ + + + + + + + +Topaz: tz::is_printable Concept Reference + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.2.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:18
+
+ + + + diff --git a/concepttz_1_1message.html b/concepttz_1_1message.html new file mode 100644 index 0000000000..b4657a6eb0 --- /dev/null +++ b/concepttz_1_1message.html @@ -0,0 +1,113 @@ + + + + + + + +Topaz: tz::message Concept Reference + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.2.0.1 +
+
C++20 Graphics Engine
+
+
+ + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+
tz::message Concept Reference
+
+
+

Concept definition

+
template<typename T>
+
concept tz::message = requires(T a)
+
{
+
requires std::is_standard_layout_v<T>;
+
}
+
Definition types.hpp:121
+
+ + + + diff --git a/concepttz_1_1native__available.html b/concepttz_1_1native__available.html new file mode 100644 index 0000000000..2a2aa58ea6 --- /dev/null +++ b/concepttz_1_1native__available.html @@ -0,0 +1,114 @@ + + + + + + + +Topaz: tz::native_available Concept Reference + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.2.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:74
+
+ + + + diff --git a/concepttz_1_1nullable.html b/concepttz_1_1nullable.html new file mode 100644 index 0000000000..0c1aea65a3 --- /dev/null +++ b/concepttz_1_1nullable.html @@ -0,0 +1,114 @@ + + + + + + + +Topaz: tz::nullable Concept Reference + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.2.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::null()};
+
{t.is_null()} -> std::same_as<bool>;
+
}
+
Definition types.hpp:67
+
+ + + + diff --git a/concepttz_1_1number.html b/concepttz_1_1number.html new file mode 100644 index 0000000000..ec41296ee6 --- /dev/null +++ b/concepttz_1_1number.html @@ -0,0 +1,123 @@ + + + + + + + +Topaz: tz::number Concept Reference + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.2.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:15
+
A number is any arithmetic type excluding char and bool.
Definition types.hpp:33
+

Detailed Description

+

A number is any arithmetic type excluding char and bool.

+
+ + + + diff --git a/concepttz_1_1random__access__container.html b/concepttz_1_1random__access__container.html new file mode 100644 index 0000000000..cd739dd86b --- /dev/null +++ b/concepttz_1_1random__access__container.html @@ -0,0 +1,115 @@ + + + + + + + +Topaz: tz::random_access_container Concept Reference + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.2.0.1 +
+
C++20 Graphics Engine
+
+
+ + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+
tz::random_access_container Concept Reference
+
+
+

Concept definition

+
template<typename T>
+
concept tz::random_access_container = requires(T a, const T b)
+
{
+
requires tz::container<T>;
+
requires std::random_access_iterator<typename T::iterator>;
+
}
+
Definition types.hpp:89
+
Definition types.hpp:114
+
+ + + + diff --git a/concepttz_1_1range__of.html b/concepttz_1_1range__of.html new file mode 100644 index 0000000000..7e9f8dd7f9 --- /dev/null +++ b/concepttz_1_1range__of.html @@ -0,0 +1,110 @@ + + + + + + + +Topaz: tz::range_of Concept Reference + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.2.0.1 +
+
C++20 Graphics Engine
+
+
+ + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+
tz::range_of Concept Reference
+
+
+

Concept definition

+
template<typename R, typename T>
+
concept tz::range_of = std::ranges::range<R> && std::same_as<std::decay_t<std::ranges::range_value_t<R>>, std::decay_t<T>>
+
Definition types.hpp:127
+
+ + + + diff --git a/concepttz_1_1trivially__copyable.html b/concepttz_1_1trivially__copyable.html new file mode 100644 index 0000000000..c199342b2f --- /dev/null +++ b/concepttz_1_1trivially__copyable.html @@ -0,0 +1,110 @@ + + + + + + + +Topaz: tz::trivially_copyable Concept Reference + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.2.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:64
+
+ + + + diff --git a/concepttz_1_1unique__cloneable__type.html b/concepttz_1_1unique__cloneable__type.html new file mode 100644 index 0000000000..ad7186d166 --- /dev/null +++ b/concepttz_1_1unique__cloneable__type.html @@ -0,0 +1,113 @@ + + + + + + + +Topaz: tz::unique_cloneable_type Concept Reference + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.2.0.1 +
+
C++20 Graphics Engine
+
+
+ + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+
tz::unique_cloneable_type Concept Reference
+
+
+

Concept definition

+
template<typename T>
+
concept tz::unique_cloneable_type = requires(T* t)
+
{
+
{t->unique_clone()};
+
}
+
Definition types.hpp:24
+
+ + + + diff --git a/concepttz_1_1wsi_1_1window__api.html b/concepttz_1_1wsi_1_1window__api.html new file mode 100644 index 0000000000..e80b6a545e --- /dev/null +++ b/concepttz_1_1wsi_1_1window__api.html @@ -0,0 +1,143 @@ + + + + + + + +Topaz: tz::wsi::window_api Concept Reference + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.2.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/cookie.js b/cookie.js new file mode 100644 index 0000000000..53ad21d981 --- /dev/null +++ b/cookie.js @@ -0,0 +1,58 @@ +/*! + Cookie helper functions + Copyright (c) 2023 Dimitri van Heesch + Released under MIT license. +*/ +let Cookie = { + cookie_namespace: 'doxygen_', + + readSetting(cookie,defVal) { + if (window.chrome) { + const val = localStorage.getItem(this.cookie_namespace+cookie) || + sessionStorage.getItem(this.cookie_namespace+cookie); + if (val) return val; + } else { + let myCookie = this.cookie_namespace+cookie+"="; + if (document.cookie) { + const index = document.cookie.indexOf(myCookie); + if (index != -1) { + const valStart = index + myCookie.length; + let valEnd = document.cookie.indexOf(";", valStart); + if (valEnd == -1) { + valEnd = document.cookie.length; + } + return document.cookie.substring(valStart, valEnd); + } + } + } + return defVal; + }, + + writeSetting(cookie,val,days=10*365) { // default days='forever', 0=session cookie, -1=delete + if (window.chrome) { + if (days==0) { + sessionStorage.setItem(this.cookie_namespace+cookie,val); + } else { + localStorage.setItem(this.cookie_namespace+cookie,val); + } + } else { + let date = new Date(); + date.setTime(date.getTime()+(days*24*60*60*1000)); + const expiration = days!=0 ? "expires="+date.toGMTString()+";" : ""; + document.cookie = this.cookie_namespace + cookie + "=" + + val + "; SameSite=Lax;" + expiration + "path=/"; + } + }, + + eraseSetting(cookie) { + if (window.chrome) { + if (localStorage.getItem(this.cookie_namespace+cookie)) { + localStorage.removeItem(this.cookie_namespace+cookie); + } else if (sessionStorage.getItem(this.cookie_namespace+cookie)) { + sessionStorage.removeItem(this.cookie_namespace+cookie); + } + } else { + this.writeSetting(cookie,'',-1); + } + }, +} diff --git a/core_2memory_2allocators_2slab_8hpp_source.html b/core_2memory_2allocators_2slab_8hpp_source.html new file mode 100644 index 0000000000..16c37c000c --- /dev/null +++ b/core_2memory_2allocators_2slab_8hpp_source.html @@ -0,0 +1,157 @@ + + + + + + + +Topaz: src/tz/core/memory/allocators/slab.hpp Source File + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.2.0.1 +
+
C++20 Graphics Engine
+
+
+ + + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+
slab.hpp
+
+
+
1#ifndef TOPAZ_CORE_ALLOCATORS_SLAB_HPP
+
2#define TOPAZ_CORE_ALLOCATORS_SLAB_HPP
+
3#include "tz/core/memory/memblk.hpp"
+
4#include "tz/core/memory/allocators/linear.hpp"
+
5#include <memory>
+
6#include <cstddef>
+
7#include <vector>
+
8
+
9namespace tz
+
10{
+
+ +
16 {
+
17 public:
+
18 slab_allocator() = default;
+
19
+
20 tz::memblk allocate(std::size_t sz);
+
21 void deallocate(tz::memblk blk);
+
22 bool owns(tz::memblk blk) const;
+
23 private:
+
24 struct slab_t
+
25 {
+
26 slab_t(std::size_t sz);
+
27
+
28 slab_t(const slab_t& cpy);
+
29 slab_t(slab_t&& mv) = default;
+
30 ~slab_t() = default;
+
31 slab_t& operator=(const slab_t& cpy);
+
32 slab_t& operator=(slab_t&& mv) = default;
+
33
+
34 std::unique_ptr<char[]> mem = nullptr;
+
35 tz::linear_allocator alloc = {};
+
36 std::size_t sz;
+
37 };
+
38
+
39 slab_t& new_slab(std::size_t sz);
+
40
+
41 std::vector<slab_t> slabs = {};
+
42 };
+
+
43}
+
44
+
45#endif // TOPAZ_CORE_ALLOCATORS_SLAB_HPP
+
An allocator which operates on a pre-allocated buffer of variable size.
Definition linear.hpp:17
+
An allocator which creates large slabs of implementation-defined memory just-in-time,...
Definition slab.hpp:16
+
A non-owning, contiguous block of memory.
Definition memblk.hpp:12
+
+ + + + diff --git a/data__store_8hpp_source.html b/data__store_8hpp_source.html new file mode 100644 index 0000000000..173b2817c6 --- /dev/null +++ b/data__store_8hpp_source.html @@ -0,0 +1,278 @@ + + + + + + + +Topaz: src/tz/core/data/data_store.hpp Source File + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.2.0.1 +
+
C++20 Graphics Engine
+
+
+ + + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+
data_store.hpp
+
+
+
1#ifndef TOPAZ_CORE_DATA_DATA_STORE_HPP
+
2#define TOPAZ_CORE_DATA_DATA_STORE_HPP
+
3#include "tz/core/memory/memblk.hpp"
+
4#include "tz/core/debug.hpp"
+
5#include <shared_mutex>
+
6#include <variant>
+
7#include <vector>
+
8#include <unordered_map>
+
9
+
10#include "tz/lua/api.hpp"
+
11
+
12namespace tz
+
13{
+
14 using data_store_value = std::variant<std::nullptr_t, bool, float, double, int, unsigned int, std::string>;
+
15 namespace detail
+
16 {
+
+
17 struct ds_add
+
18 {
+
19 std::string key;
+
20 data_store_value val = nullptr;
+
21 };
+
+
+
22 struct ds_edit
+
23 {
+
24 std::string key;
+
25 data_store_value val;
+
26 };
+
+
+
27 struct ds_remove
+
28 {
+
29 std::string key;
+
30 };
+
+
31 }
+
32
+
33 /*
+
34 fully thread-safe data store. key-value storage, where key is a string, and value is one of:
+
35 - nullptr (i.e null)
+
36 - bool
+
37 - float
+
38 - double
+
39 - int
+
40 - unsigned int
+
41 - std::string
+
42
+
43 why would you use this
+
44 ======================
+
45
+
46 only reason: you have absolutely no choice but to take the hit of shared data between threads. use this to bring at least a semblance of sanity to your life
+
47
+
48 the most obvious example of this would be lua. each job system worker thread has their own lua state.
+
49 most likely you'll want to share some common data between these threads. that's pretty much a perfect use-case for this datastore.
+
50
+
51 tradeoffs
+
52 =========
+
53
+
54 - all writes (add, edit, remove, clear) exclusively lock a mutex. all other threads that want to read/write wait for this to complete.
+
55 - all reads sharingly lock a mutex. threads can safely read concurrently, each sharingly locking the mutex. if a thread wants to write, it will wait.
+
56
+
57 tips
+
58 ====
+
59
+
60 - avoid repeatedly calling add/edit/remove, instead bulk your mutating operations together in `write_some`. less write churn means less lock contention means better perf.
+
61 - avoid repeatedly calling read/read_raw, instead builk your reading operations together in `read_some`.
+
62
+
63 rejected features
+
64 =================
+
65
+
66 - non-deferred listeners i.e callbacks. don't do it! please no! oh god!
+
67 */
+
+ +
69 {
+
70 public:
+
71 using deferred_operation = std::variant<detail::ds_add, detail::ds_edit, detail::ds_remove>;
+
72 using deferred_operations = std::vector<deferred_operation>;
+
73 using bulk_read_result = std::vector<data_store_value>;
+
74 using string_list = std::vector<std::string>;
+
75 data_store() = default;
+
76 void clear();
+
77 void add(detail::ds_add add);
+
78 void edit(detail::ds_edit edit);
+
79 void remove(detail::ds_remove remove);
+
80 void remove_all_of(std::string_view prefix);
+
81 void write_some(deferred_operations operations);
+
82 bulk_read_result read_some(string_list keyset, bool dont_error_if_missing = false) const;
+
83
+
84 bool contains(std::string_view key) const;
+
85 std::size_t size() const;
+
86 data_store_value read_raw(std::string_view key, bool dont_error_if_missing = false) const;
+
87
+
88 // read as T. error if value is not a T.
+
89 template<typename T>
+
90 T read(std::string_view key) const
+
91 {
+
92 data_store_value val = this->read_raw(key);
+
93 tz::assert(std::holds_alternative<T>(val), "`read` called on %s, but there was a type mismatch");
+
94 return std::get<T>(val);
+
95 }
+
96
+
97 // read and attempt to convert to T, if it can.
+
98 // e.g if 6.9f is stored, read_as<int>(key) returns 6
+
99 template<typename T>
+
100 T read_as(std::string_view key) const
+
101 {
+
102 data_store_value val = this->read_raw(key);
+
103 T ret;
+
104 std::visit([&ret](auto&& arg)
+
105 {
+
106 ret = static_cast<T>(arg);
+
107 }, val);
+
108 }
+
109 private:
+
110 bool contains_nolock(std::string_view key) const;
+
111
+
112 using mutex = std::shared_mutex;
+
113 mutable mutex mtx;
+
114 std::unordered_map<std::string, data_store_value> store{1024u};
+
115 };
+
+
116
+
117 // lua api
+
+ +
119 {
+
120 data_store* ds;
+
121 int add(tz::lua::state& state);
+
122 int edit(tz::lua::state& state);
+
123 int edit_some(tz::lua::state& state);
+
124 int remove(tz::lua::state& state);
+
125 int remove_all_of(tz::lua::state& state);
+
126 int read(tz::lua::state& state);
+
127 int read_some(tz::lua::state& state);
+
128 int contains(tz::lua::state& state);
+
129 int size(tz::lua::state& state);
+
130 int clear(tz::lua::state& state);
+
131 };
+
+
132
+
133 LUA_CLASS_BEGIN(tz_lua_data_store)
+
134 LUA_CLASS_METHODS_BEGIN
+
135 LUA_METHOD(tz_lua_data_store, add)
+
136 LUA_METHOD(tz_lua_data_store, edit)
+
137 LUA_METHOD(tz_lua_data_store, edit_some)
+
138 LUA_METHOD(tz_lua_data_store, remove)
+
139 LUA_METHOD(tz_lua_data_store, remove_all_of)
+
140 LUA_METHOD(tz_lua_data_store, read)
+
141 LUA_METHOD(tz_lua_data_store, read_some)
+
142 LUA_METHOD(tz_lua_data_store, contains)
+
143 LUA_METHOD(tz_lua_data_store, size)
+
144 LUA_METHOD(tz_lua_data_store, clear)
+
145 LUA_CLASS_METHODS_END
+
146 LUA_CLASS_END
+
147
+
148}
+
149
+
150#endif // TOPAZ_CORE_DATA_DATA_STORE_HPP
+
Definition data_store.hpp:69
+
Represents a lua state.
Definition state.hpp:35
+
void assert(bool condition, detail::format_string fmt="<No message>", Args &&... args)
Assert on a condition.
Definition debug.inl:35
+
Definition data_store.hpp:18
+
Definition data_store.hpp:23
+
Definition data_store.hpp:28
+
Definition data_store.hpp:119
+
+ + + + diff --git a/dbgui_8hpp_source.html b/dbgui_8hpp_source.html new file mode 100644 index 0000000000..22fec6c7ef --- /dev/null +++ b/dbgui_8hpp_source.html @@ -0,0 +1,169 @@ + + + + + + + +Topaz: src/tz/dbgui/dbgui.hpp Source File + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.2.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:55
+
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..5cf29f75a7 --- /dev/null +++ b/dbgui__imgui__config_8hpp_source.html @@ -0,0 +1,112 @@ + + + + + + + +Topaz: src/tz/dbgui/dbgui_imgui_config.hpp Source File + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.2.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..f4e60a538d --- /dev/null +++ b/debug_8hpp_source.html @@ -0,0 +1,182 @@ + + + + + + + +Topaz: src/tz/core/debug.hpp Source File + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.2.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:35
+
void error(detail::format_string fmt="<No message>", Args &&... args)
Breakpoint if a debugger is present.
Definition debug.inl:47
+
void report(detail::format_string fmt, Args &&... args)
Print out the formatted message to standard output, including source location information.
Definition debug.inl:56
+
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..a67f631dbd --- /dev/null +++ b/debug_8inl_source.html @@ -0,0 +1,185 @@ + + + + + + + +Topaz: src/tz/core/debug.inl Source File + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.2.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
+
6#include "tz/core/profile.hpp"
+
7
+
8namespace tz
+
9{
+
10 template<typename... Args>
+
11 void error_internal(const char* preamble, const char* fmt, const detail::source_loc& loc, Args&&... args)
+
12 {
+
13 std::fprintf(stderr, "%s", preamble);
+
14 std::fprintf(stderr, fmt, std::forward<Args>(args)...);
+
15
+
16
+
17 std::string diag_info = "\n\tIn file ";
+
18 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();
+
19
+
20 std::fprintf(stderr, "%s", diag_info.c_str());
+
21 debug_break();
+
22 }
+
23
+
24 template<typename... Args>
+
25 void report_internal(const char* preamble, const char* fmt, const detail::source_loc& loc, Args&&... args)
+
26 {
+
27 std::fprintf(stdout, "%s", preamble);
+
28 std::fprintf(stdout, fmt, std::forward<Args>(args)...);
+
29 std::string diag_info = "\n\tIn file ";
+
30 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();
+
31 std::fprintf(stdout, "%s\n", diag_info.c_str());
+
32 }
+
33
+
34 template<typename... Args>
+
+
35 void assert([[maybe_unused]] bool condition, [[maybe_unused]] detail::format_string fmt, [[maybe_unused]] Args&&... args)
+
36 {
+
37 #if TZ_DEBUG
+
38 TZ_PROFZONE("tz::assert overhead", 0xFFAAAA22);
+
39 if(!condition) [[unlikely]]
+
40 {
+
41 error_internal("[Assert Failure]: ", fmt.str, fmt.loc, std::forward<Args>(args)...);
+
42 }
+
43 #endif
+
44 }
+
+
45
+
46 template<typename... Args>
+
+
47 void error([[maybe_unused]] detail::format_string fmt, [[maybe_unused]] Args&&... args)
+
48 {
+
49 #if TZ_DEBUG
+
50 TZ_PROFZONE("tz::error overhead", 0xFFAAAA22);
+
51 error_internal("[Error]: ", fmt.str, fmt.loc, std::forward<Args>(args)...);
+
52 #endif
+
53 }
+
+
54
+
55 template<typename... Args>
+
+
56 void report([[maybe_unused]] detail::format_string fmt, [[maybe_unused]] Args&&... args)
+
57 {
+
58 #if TZ_DEBUG
+
59 TZ_PROFZONE("tz::report overhead", 0xFFAAAA22);
+
60 report_internal("[Report]: ", fmt.str, fmt.loc, std::forward<Args>(args)...);
+
61 #endif
+
62 }
+
+
63
+
64}
+
void assert(bool condition, detail::format_string fmt="<No message>", Args &&... args)
Assert on a condition.
Definition debug.inl:35
+
void error(detail::format_string fmt="<No message>", Args &&... args)
Breakpoint if a debugger is present.
Definition debug.inl:47
+
void report(detail::format_string fmt, Args &&... args)
Print out the formatted message to standard output, including source location information.
Definition debug.inl:56
+
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..f681f0b112 --- /dev/null +++ b/debugname_8hpp_source.html @@ -0,0 +1,147 @@ + + + + + + + +Topaz: src/tz/gl/impl/vulkan/detail/debugname.hpp Source File + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.2.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:76
+
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..5a23f44a89 --- /dev/null +++ b/debugname_8inl_source.html @@ -0,0 +1,174 @@ + + + + + + + +Topaz: src/tz/gl/impl/vulkan/detail/debugname.inl Source File + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.2.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:35
+
void error(detail::format_string fmt="<No message>", Args &&... args)
Breakpoint if a debugger is present.
Definition debug.inl:47
+
+ + + + diff --git a/declare_2image__format_8hpp_source.html b/declare_2image__format_8hpp_source.html new file mode 100644 index 0000000000..dd635311b4 --- /dev/null +++ b/declare_2image__format_8hpp_source.html @@ -0,0 +1,310 @@ + + + + + + + +Topaz: src/tz/gl/declare/image_format.hpp Source File + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.2.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:47
+
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..7d4f0c387a --- /dev/null +++ b/descriptors_8hpp_source.html @@ -0,0 +1,526 @@ + + + + + + + +Topaz: src/tz/gl/impl/vulkan/detail/descriptors.hpp Source File + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.2.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#if TZ_VULKAN
+
4#include "tz/core/data/basic_list.hpp"
+
5#include "tz/gl/impl/vulkan/detail/buffer.hpp"
+
6#include "tz/gl/impl/vulkan/detail/sampler.hpp"
+
7#include "tz/gl/impl/vulkan/detail/image_view.hpp"
+
8#include <unordered_map>
+
9#include <variant>
+
10
+
11namespace tz::gl::vk2
+
12{
+
16 enum class DescriptorType
+
17 {
+
18 Sampler,
+
19 ImageWithSampler,
+
20 Image,
+
21 StorageImage,
+ + +
24
+
25 Count
+
26 };
+
27
+
28 namespace detail
+
29 {
+
30 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};
+
31 VkDescriptorType to_desc_type(DescriptorType type);
+
32 }
+
33
+
+
38 enum class DescriptorFlag
+
39 {
+
41 UpdateAfterBind = VK_DESCRIPTOR_BINDING_UPDATE_AFTER_BIND_BIT,
+
43 UpdateUnusedWhilePending = VK_DESCRIPTOR_BINDING_UPDATE_UNUSED_WHILE_PENDING_BIT,
+
45 PartiallyBound = VK_DESCRIPTOR_BINDING_PARTIALLY_BOUND_BIT,
+
47 VariableCount = VK_DESCRIPTOR_BINDING_VARIABLE_DESCRIPTOR_COUNT_BIT
+
48 };
+
+
49
+
50 using DescriptorFlags = tz::enum_field<DescriptorFlag>;
+
51
+
+ +
59 {
+
61 std::size_t binding_count() const;
+
63 bool has_valid_device() const;
+
65 bool device_supports_flags() const;
+
66
+
+ +
68 {
+
70 DescriptorType type;
+
72 std::uint32_t count;
+
74 DescriptorFlags flags;
+
75 };
+
+ + +
80 };
+
+
81
+
+ +
87 {
+
88 public:
+ +
93 DescriptorLayout(const DescriptorLayout& copy) = delete;
+ + +
96
+
97 DescriptorLayout& operator=(const DescriptorLayout& rhs) = delete;
+
98 DescriptorLayout& operator=(DescriptorLayout&& rhs);
+
99
+
104 std::size_t binding_count() const;
+
109 std::size_t descriptor_count() const;
+
115 std::size_t descriptor_count_of(DescriptorType type) const;
+
120 std::span<const DescriptorLayoutInfo::BindingInfo> get_bindings() const;
+
121
+
122 const LogicalDevice& get_device() const;
+
123
+
124 using NativeType = VkDescriptorSetLayout;
+
125 NativeType native() const;
+
126
+
127 static DescriptorLayout null();
+
128 bool is_null() const;
+
129 private:
+ +
131 const DescriptorLayoutInfo& get_info() const;
+
132
+
133 VkDescriptorSetLayout descriptor_layout;
+ +
135 };
+
+
136
+
+ +
142 {
+
143 public:
+ + + +
160 const LogicalDevice* get_device() const;
+
165 void set_device(const LogicalDevice& device);
+
170 const DescriptorLayoutInfo& get_info() const;
+
175 DescriptorLayout build() const;
+
179 void clear();
+
180 private:
+ +
182 };
+
+
183
+
+ +
189 {
+
195 static DescriptorPoolInfo to_fit_layout(const DescriptorLayout& descriptor_layout, std::size_t quantity);
+
199 bool has_valid_device() const;
+
200
+
+ +
205 {
+
207 std::unordered_map<DescriptorType, std::uint32_t> limits;
+
209 std::uint32_t max_sets = 0;
+ +
212 };
+
+
213
+ + +
218 };
+
+
219
+
220
+
+ +
226 {
+
227 public:
+
+
231 struct Write
+
232 {
+
+ +
237 {
+ +
241 std::size_t buffer_offset;
+
243 std::size_t buffer_write_size;
+
244 };
+
+
245
+
+ +
250 {
+ + +
255 };
+
+
256 using WriteInfo = std::variant<BufferWriteInfo, ImageWriteInfo>;
+
257
+ +
261 std::uint32_t binding_id;
+
263 std::uint32_t array_element;
+
265 std::vector<WriteInfo> write_infos;
+
266 };
+
+
267 using WriteList = tz::basic_list<Write>;
+
268
+
+ +
275 {
+
276 public:
+
285 void set_buffer(std::uint32_t binding_id, Write::BufferWriteInfo buffer_write, std::uint32_t array_index = 0);
+
294 void set_image(std::uint32_t binding_id, Write::ImageWriteInfo image_write, std::uint32_t array_index = 0);
+
298 DescriptorSet::WriteList to_write_list() const;
+
302 const DescriptorSet& get_set() const;
+
303 friend class DescriptorSet;
+
304 private:
+ +
306
+
307 DescriptorSet* set;
+
308 DescriptorSet::WriteList write_info;
+
309 };
+
+
310
+
311 friend class DescriptorPool;
+
312 using NativeType = VkDescriptorSet;
+
313 NativeType native() const;
+
314
+
315 std::size_t get_set_id() const;
+
320 const DescriptorLayout& get_layout() const;
+
321 void set_layout(const DescriptorLayout& layout);
+ +
327 private:
+
329 DescriptorSet(std::size_t set_id, const DescriptorLayout& layout, NativeType native);
+
330 VkDescriptorSet set;
+
331 std::uint32_t set_id;
+
332 const DescriptorLayout* layout;
+
333 };
+
+
334
+
+ +
340 {
+
341 public:
+ +
348
+
+ +
351 {
+
352 AllocationResult() = default;
+
353 AllocationResult(AllocationResult&& move) = default;
+
354 AllocationResult& operator=(AllocationResult&& rhs)
+
355 {
+
356 const DescriptorLayout* lhs_layout = nullptr;
+
357 const DescriptorLayout* rhs_layout = nullptr;
+
358 if(this->sets.length())
+
359 {
+
360 lhs_layout = &this->sets.front().get_layout();
+
361 }
+
362 if(rhs.sets.length())
+
363 {
+
364 rhs_layout = &rhs.sets.front().get_layout();
+
365 }
+
366 if(lhs_layout != nullptr)
+
367 {
+
368 for(auto& set : rhs.sets)
+
369 {
+
370 set.set_layout(*lhs_layout);
+
371 }
+
372 }
+
373 if(rhs_layout != nullptr)
+
374 {
+
375 for(auto& set : this->sets)
+
376 {
+
377 set.set_layout(*rhs_layout);
+
378 }
+
379 }
+
380 std::swap(this->sets, rhs.sets);
+
381 std::swap(this->type, rhs.type);
+
382 return *this;
+
383 }
+
385 bool success() const;
+
386
+
+ +
389 {
+
391 AllocationSuccess,
+
393 FatalError,
+
395 FragmentedPool,
+
397 PoolOutOfMemory
+
398 };
+
+
399
+ + +
404 };
+
+
405
+
+ +
412 {
+
413 public:
+ +
421 std::span<const DescriptorSet::EditRequest> get_set_edits() const;
+
422 friend class DescriptorPool;
+
423 private:
+ +
425
+
426 DescriptorPool* pool;
+
427 std::vector<DescriptorSet::EditRequest> set_edits;
+
428 };
+
+
429
+ +
431 DescriptorPool(const DescriptorPool& copy) = delete;
+ + +
434
+
435 DescriptorPool& operator=(const DescriptorPool& rhs) = delete;
+
436 DescriptorPool& operator=(DescriptorPool&& rhs);
+
437
+
442 bool contains(const DescriptorSet& set) const;
+
443
+
447 const LogicalDevice& get_device() const;
+ + +
461 void update_sets(UpdateRequest update_request);
+
467 void update_sets(const DescriptorSet::WriteList& writes);
+
471 void clear();
+
472
+
473 static DescriptorPool null();
+
474 bool is_null() const;
+
475 private:
+ +
477
+
478 VkDescriptorPool pool;
+ +
480 std::vector<DescriptorSet::NativeType> allocated_set_natives;
+
481 };
+
+
482
+
+ +
484 {
+
485 DescriptorData() = default;
+ +
487 {
+
488 *this = std::move(move);
+
489 }
+
490 DescriptorData& operator=(DescriptorData&& rhs)
+
491 {
+
492 std::swap(this->layout, rhs.layout);
+
493 std::swap(this->data, rhs.data);
+
494 for(auto& set : this->data.sets)
+
495 {
+
496 set.set_layout(this->layout);
+
497 }
+
498 return *this;
+
499 }
+
500 vk2::DescriptorLayout layout = vk2::DescriptorLayout::null();
+ +
502 };
+
+
503}
+
504
+
505#endif // TZ_VULKAN
+
506#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:76
+
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:142
+
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:87
+
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:412
+
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:340
+
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:275
+
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:226
+
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:39
+ + + + +
Definition descriptors.hpp:484
+ +
DescriptorFlags flags
Do we have any extra flags?
Definition descriptors.hpp:74
+
DescriptorType type
What is the type of the descriptor?
Definition descriptors.hpp:70
+
std::uint32_t count
How many are at this binding? If more than 1, we are an array.
Definition descriptors.hpp:72
+
Specifies creation flags for a descriptor set layout.
Definition descriptors.hpp:59
+
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:77
+
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:79
+
Specifies information about a DescriptorPool allocation.
Definition descriptors.hpp:344
+
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:346
+
Specifies information about the resultant of an invocation to DescriptorPool::allocate_sets.
Definition descriptors.hpp:351
+
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:401
+
AllocationResultType
Allocations can succeed, or fail in various ways.
Definition descriptors.hpp:389
+
AllocationResultType type
Describes how the allocation went. Allocations can fail.
Definition descriptors.hpp:403
+
Structure specifying limits for a DescriptorPool.
Definition descriptors.hpp:205
+
std::uint32_t max_sets
Maximum number of sets that can be allocated from the pool, regardless of layout.
Definition descriptors.hpp:209
+
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:211
+
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:207
+
Specifies creation flags for a descriptor pool.
Definition descriptors.hpp:189
+
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:215
+
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:217
+
Specifies information about having a descriptor refer to an existing Buffer.
Definition descriptors.hpp:237
+
std::size_t buffer_write_size
number of bytes from the buffer to associate with the descriptor.
Definition descriptors.hpp:243
+
std::size_t buffer_offset
Offset, in bytes, from the start of the buffer data.
Definition descriptors.hpp:241
+
const Buffer * buffer
Buffer to refer to. Must not be nullptr.
Definition descriptors.hpp:239
+
Specifies information about having a descriptor refer to an existing Image.
Definition descriptors.hpp:250
+
const ImageView * image_view
ImageView to use. Must not be nullptr and must refer to a valid Image.
Definition descriptors.hpp:254
+
const Sampler * sampler
Sampler to use. Must not be nullptr.
Definition descriptors.hpp:252
+
Specifies information about writing to a specific element of the descriptor set via binding id.
Definition descriptors.hpp:232
+
const DescriptorSet * set
Specifies which set we are working on. Must not be null.
Definition descriptors.hpp:259
+
std::uint32_t array_element
Zero or the element of the descriptor array we would like to start writes to.
Definition descriptors.hpp:263
+
std::uint32_t binding_id
Specifies the binding-id at which the descriptor/descriptor array will be written to.
Definition descriptors.hpp:261
+
std::vector< WriteInfo > write_infos
List of writes to the descriptor array.
Definition descriptors.hpp:265
+
+ + + + diff --git a/device2_8hpp_source.html b/device2_8hpp_source.html new file mode 100644 index 0000000000..b44f03e663 --- /dev/null +++ b/device2_8hpp_source.html @@ -0,0 +1,319 @@ + + + + + + + +Topaz: src/tz/gl/impl/vulkan/device2.hpp Source File + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.2.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 std::size_t get_rid(unsigned int fingerprint) const;
+
25 protected:
+
26 void touch_renderer_id(unsigned int fingerprint, std::size_t renderer_id);
+
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 bool is_vsync_enabled_impl() const;
+
60 void set_vsync_enabled_impl(bool vsync);
+
61 void vk_acquire_done();
+
62 void vk_notify_resize();
+
63 private:
+
64 void make_depth_image();
+
65 void initialise_image_semaphores();
+
66 void debug_annotate_resources();
+
67 vk2::Swapchain swapchain = vk2::Swapchain::null();
+
68 vk2::Image device_depth = vk2::Image::null();
+
69 tz::vec2ui dimensions_cache = tz::vec2ui::zero();
+
70 std::optional<vk2::Swapchain::ImageAcquisitionResult> recent_acquire = std::nullopt;
+
71 std::vector<vk2::BinarySemaphore> image_semaphores = {};
+
72 };
+
+
73
+
+ +
75 {
+
76 public:
+ +
78 void vk_frame_wait(unsigned int fingerprint);
+
79 void vk_skip_renderer(unsigned int fingerprint);
+
80 const tz::gl::schedule& get_schedule() const;
+
81 const tz::gl::timeline_t& get_timeline() const;
+
82 std::vector<const vk2::Semaphore*> vk_get_dependency_waits(unsigned int fingerprint);
+
83 std::vector<const vk2::Semaphore*> vk_get_dependency_signals(unsigned int fingerprint);
+
84 protected:
+
85 std::span<const vk2::TimelineSemaphore> get_frame_sync_objects() const;
+
86 std::span<vk2::TimelineSemaphore> get_frame_sync_objects();
+
87 std::span<vk2::TimelineSemaphore> get_dependency_sync_objects();
+
88 std::uint64_t get_sync_id(std::size_t renderer_id) const;
+
89 std::uint64_t get_renderer_sync_id(unsigned int fingerprint) const;
+
90 private:
+
91 const tz::gl::schedule& sched;
+
92 std::vector<vk2::TimelineSemaphore> dependency_syncs = {};
+
93 std::vector<vk2::TimelineSemaphore> frame_syncs = {};
+
94 };
+
+
95
+
+ +
97 {
+
98 public:
+ +
100 vk2::DescriptorPool::UpdateRequest vk_make_update_request(unsigned int fingerprint);
+
101 vk2::DescriptorPool::AllocationResult vk_allocate_sets(const vk2::DescriptorPool::Allocation& alloc, unsigned int fingerprint);
+
102 void vk_update_sets(vk2::DescriptorPool::UpdateRequest update, unsigned int fingerprint);
+
103 private:
+
104 vk2::DescriptorPool& get_pool(unsigned int fingerprint);
+
105 vk2::DescriptorPool::AllocationResult impl_allocate_sets(const vk2::DescriptorPool::Allocation& alloc, unsigned int fingerprint, unsigned int attempt);
+
106 void another_pool();
+
107 void another_pool(std::size_t set_count, std::size_t buf_count, std::size_t img_count);
+
108 std::deque<vk2::DescriptorPool> pools = {};
+
109 std::unordered_map<unsigned int, std::size_t> fingerprint_to_pool_id = {};
+
110 };
+
+
111
+
+ +
113 {
+
114 public:
+
+ +
116 {
+
117 bool compute = false;
+
118 bool requires_present = true;
+
119 };
+
+ +
121 vk2::CommandPool::AllocationResult vk_allocate_commands(const vk2::CommandPool::Allocation& alloc, unsigned int fingerprint);
+
122 void vk_free_commands(unsigned int fingerprint, std::size_t allocation_id, std::span<vk2::CommandBuffer> command_buffers);
+
123 void vk_command_pool_touch(unsigned int fingerprint, fingerprint_info_t finfo);
+
124 void vk_submit_and_run_commands_blocking(unsigned int fingerprint, std::size_t allocation_id, std::size_t buffer_id, const vk2::CommandBuffer& buffer);
+
125 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);
+ +
133 private:
+
134 struct allocation_history
+
135 {
+ + +
138 };
+
139 vk2::CommandPool::AllocationResult impl_allocate_commands(const vk2::CommandPool::Allocation& alloc, unsigned int fingerprint, unsigned int attempt);
+
140 vk2::CommandPool& get_fitting_pool(const fingerprint_info_t& finfo);
+
141 vk2::hardware::Queue* get_original_queue(const fingerprint_info_t& finfo);
+
142 vk2::hardware::Queue* graphics_queue = nullptr;
+
143 vk2::hardware::Queue* graphics_present_queue = nullptr;
+
144 vk2::hardware::Queue* compute_queue = nullptr;
+
145 vk2::CommandPool graphics_commands = vk2::CommandPool::null();
+
146 vk2::CommandPool graphics_present_commands = vk2::CommandPool::null();
+
147 vk2::CommandPool compute_commands = vk2::CommandPool::null();
+
148 std::unordered_map<unsigned int, fingerprint_info_t> fingerprint_alloc_types = {};
+
149 std::unordered_map<unsigned int, std::vector<vk2::CommandPool::Allocation>> fingerprint_allocation_history = {};
+
150 };
+
+
151
+
+ +
153 public device_common<renderer_vulkan2>,
+ +
155 {
+
156 public:
+ + +
159 tz::gl::renderer_handle create_renderer(const tz::gl::renderer_info& rinfo);
+
160 bool is_vsync_enabled() const;
+
161 void set_vsync_enabled(bool vsync);
+
162 using device_common<renderer_vulkan2>::get_renderer;
+
163 void dbgui();
+
164 void begin_frame(){}
+
165 void end_frame();
+
166 void full_wait() const;
+
167 void frame_wait() const;
+
168 };
+
+ +
170}
+
171
+
172#endif // TZ_VULKAN
+
173#endif // TZ_GL_IMPL_VULKAN_DEVICE_HPP
+
Custom list, feature subset of std::vector.
Definition basic_list.hpp:21
+
Definition device2.hpp:113
+
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:732
+
Device API.
Definition device.hpp:42
+
Definition device2.hpp:97
+
Definition device2.hpp:75
+
Definition device2.hpp:155
+
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:232
+
Helper struct which the user can use to specify which inputs, resources they want and where they want...
Definition renderer.hpp:139
+
Definition renderer2.hpp:203
+
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:378
+
Represents storage for CommandBuffers.
Definition command.hpp:429
+
Specifies a requests to update zero or more DescriptorSets owned by an existing DescriptorPool.
Definition descriptors.hpp:412
+
Represents storage for DescriptorSets.
Definition descriptors.hpp:340
+
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:33
+
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
+ +
Represents a render graph.
Definition schedule.hpp:35
+
Definition schedule.hpp:21
+
Specifies information about an allocation of a CommandBuffer or many.
Definition command.hpp:435
+
Contains information about the result of a pool allocation.
Definition command.hpp:444
+
Specifies information about a DescriptorPool allocation.
Definition descriptors.hpp:344
+
Specifies information about the resultant of an invocation to DescriptorPool::allocate_sets.
Definition descriptors.hpp:351
+ +
+ + + + diff --git a/device_8dbgui_8hpp_source.html b/device_8dbgui_8hpp_source.html new file mode 100644 index 0000000000..d568138256 --- /dev/null +++ b/device_8dbgui_8hpp_source.html @@ -0,0 +1,120 @@ + + + + + + + +Topaz: src/tz/gl/impl/common/device.dbgui.hpp Source File + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.2.0.1 +
+
C++20 Graphics Engine
+
+
+ + + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+
device.dbgui.hpp
+
+
+
1#include "lstate.h"
+
2#include "tz/gl/api/device.hpp"
+
3#include "imgui.h"
+
4#undef assert
+
5
+
6namespace tz::gl
+
7{
+
8 void common_device_dbgui(device_type<tz::gl::renderer_info> auto& device);
+
9}
+
+ + + + diff --git a/device_8hpp_source.html b/device_8hpp_source.html new file mode 100644 index 0000000000..b57f98e12d --- /dev/null +++ b/device_8hpp_source.html @@ -0,0 +1,134 @@ + + + + + + + +Topaz: src/tz/gl/device.hpp Source File + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.2.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#include "tz/lua/api.hpp"
+
4
+
5#if TZ_VULKAN
+
6#include "tz/gl/impl/vulkan/device2.hpp"
+
7#elif TZ_OGL
+
8#include "tz/gl/impl/opengl/device.hpp"
+
9#endif
+
10namespace tz::gl
+
11{
+
12 #if TZ_VULKAN
+
13 using device = device_vulkan2;
+
14 #elif TZ_OGL
+
15 using device = device_ogl;
+
16 #endif
+
17
+
24 device& get_device();
+
25 void destroy_device();
+
26}
+
27
+
28#endif // TOPAZ_GL2_DEVICE_HPP
+
device & get_device()
Retrieve the global device.
Definition device.cpp:10
+
+ + + + diff --git a/device_8inl_source.html b/device_8inl_source.html new file mode 100644 index 0000000000..6f65e8b253 --- /dev/null +++ b/device_8inl_source.html @@ -0,0 +1,231 @@ + + + + + + + +Topaz: src/tz/gl/api/device.inl Source File + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.2.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>
+
+ +
41 {
+
42 return this->render_schedule;
+
43 }
+
+
44
+
45 template<renderer_type R>
+
+ +
47 {
+
48 return this->render_schedule;
+
49 }
+
+
50
+
51 template<renderer_type R>
+
+ +
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}
+
+
+
Bespoke free-list implementation.
Definition free_list.hpp:121
+
bool empty() const
Query as to whether the list is empty. Equivalent to size() == 0.
Definition free_list.inl:41
+
Device API.
Definition device.hpp:42
+
Helper struct which the user can use to specify which inputs, resources they want and where they want...
Definition renderer.hpp:139
+
void assert(bool condition, detail::format_string fmt="<No message>", Args &&... args)
Assert on a condition.
Definition debug.inl:35
+
Definition schedule.hpp:15
+
Represents a render graph.
Definition schedule.hpp:35
+
+ + + + diff --git a/dir_02f2e0a3d14e12ea8c919b5199048d38.html b/dir_02f2e0a3d14e12ea8c919b5199048d38.html new file mode 100644 index 0000000000..164eb3d50d --- /dev/null +++ b/dir_02f2e0a3d14e12ea8c919b5199048d38.html @@ -0,0 +1,112 @@ + + + + + + + +Topaz: src/tz/core/job/impl/threadpool_lfq Directory Reference + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.2.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..e978125501 --- /dev/null +++ b/dir_03d1be8c56fea626d5074aa0bf9e39b5.html @@ -0,0 +1,106 @@ + + + + + + + +Topaz: tools/tzslc/shaders Directory Reference + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.2.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..1cdd490cfe --- /dev/null +++ b/dir_08a9ab9f761476898a1bf8c3b193f50f.html @@ -0,0 +1,157 @@ + + + + + + + +Topaz: src/tz/core Directory Reference + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.2.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
 
 endian.hpp
 
 engine_info.hpp
 
 engine_info.inl
 
 game_info.hpp
 
 imported_text.hpp
 
 macros.hpp
 
 matrix.hpp
 
 matrix.inl
 
 matrix_transform.hpp
 
 messaging.hpp
 
 messaging.inl
 
 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..ad8129f271 --- /dev/null +++ b/dir_16fd950ee6de1160473212027e88d072.html @@ -0,0 +1,112 @@ + + + + + + + +Topaz: src/tz/core/job/api Directory Reference + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.2.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..c6e6777304 --- /dev/null +++ b/dir_173d7eb180c4d4693124e94b33941768.html @@ -0,0 +1,131 @@ + + + + + + + +Topaz: src/tz Directory Reference + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.2.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..9507380ae5 --- /dev/null +++ b/dir_1a542401272435b03e55911aefd67b06.html @@ -0,0 +1,130 @@ + + + + + + + +Topaz: src/tz/gl/impl/opengl/detail Directory Reference + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.2.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..dc3aab0b4e --- /dev/null +++ b/dir_1c4f7d2715376c7e8e07b2905ea8081c.html @@ -0,0 +1,112 @@ + + + + + + + +Topaz: tools/tzslc Directory Reference + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.2.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..bc63962cfb --- /dev/null +++ b/dir_2839e2afe9c7157331d4564f06d50ecc.html @@ -0,0 +1,114 @@ + + + + + + + +Topaz: src/tz/gl/impl/vulkan/detail/hardware Directory Reference + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.2.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..794649826f --- /dev/null +++ b/dir_3637b2a939f31ea398a1722df9bd7e22.html @@ -0,0 +1,106 @@ + + + + + + + +Topaz: src/tz/ren/shaders Directory Reference + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.2.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..4ee750d7de --- /dev/null +++ b/dir_4be1570a6330a47622cf617327fcd334.html @@ -0,0 +1,159 @@ + + + + + + + +Topaz: src/tz/gl/impl/vulkan/detail Directory Reference + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.2.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
 
 gpu_mem.hpp
 
 graphics_pipeline.hpp
 
 image.hpp
 
 image_format.hpp
 
 image_view.hpp
 
 logical_device.hpp
 
 pipeline_layout.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..1d6d85e50f --- /dev/null +++ b/dir_4eeb864c4eec08c7d6b9d3b0352cfdde.html @@ -0,0 +1,106 @@ + + + + + + + +Topaz: tools Directory Reference + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.2.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..0d6bd436a7 --- /dev/null +++ b/dir_599c755ba65617583b8f9ca84c06536f.html @@ -0,0 +1,125 @@ + + + + + + + +Topaz: src/tz/wsi Directory Reference + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.2.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..38214790c2 --- /dev/null +++ b/dir_5a334d1c7ed1f0f36d1b8b8a8c5647cd.html @@ -0,0 +1,114 @@ + + + + + + + +Topaz: src/tz/dbgui Directory Reference + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.2.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..678daf4a1a --- /dev/null +++ b/dir_5ad0a7cb5e3454bda80bf89d6e3afd8c.html @@ -0,0 +1,118 @@ + + + + + + + +Topaz: src/tz/io Directory Reference + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.2.0.1 +
+
C++20 Graphics Engine
+
+
+ + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+
io Directory Reference
+
+
+ + + + + + + + + + +

+Files

 gltf.hpp
 
 image.hpp
 
 ttf.hpp
 
 tz_io.hpp
 
+
+ + + + diff --git a/dir_6205a33bb4c90b51df32b3d1351a5b41.html b/dir_6205a33bb4c90b51df32b3d1351a5b41.html new file mode 100644 index 0000000000..d03012fa33 --- /dev/null +++ b/dir_6205a33bb4c90b51df32b3d1351a5b41.html @@ -0,0 +1,112 @@ + + + + + + + +Topaz: src/tz/gl/declare Directory Reference + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.2.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..6f9d38e691 --- /dev/null +++ b/dir_63b8e252d8f253b21bb5993a46e3331f.html @@ -0,0 +1,106 @@ + + + + + + + +Topaz: demo/gl Directory Reference + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.2.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..3b2273584b --- /dev/null +++ b/dir_68267d1309a1af8e8297ef4c3efbcdba.html @@ -0,0 +1,112 @@ + + + + + + + +Topaz: src Directory Reference + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.2.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..82cfb772e8 --- /dev/null +++ b/dir_690e214e6e61530c3684abd455794879.html @@ -0,0 +1,117 @@ + + + + + + + +Topaz: src/tz/core/job Directory Reference + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.2.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..1fbe15672f --- /dev/null +++ b/dir_6c60afaf75e74ab2767b74a19a30396f.html @@ -0,0 +1,114 @@ + + + + + + + +Topaz: src/tz/gl/impl/common Directory Reference + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.2.0.1 +
+
C++20 Graphics Engine
+
+
+ + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+
common Directory Reference
+
+
+ + + + + + +

+Files

 device.dbgui.hpp
 
 renderer.dbgui.hpp
 
+
+ + + + diff --git a/dir_7122b68cae0d86e82e150514ab755870.html b/dir_7122b68cae0d86e82e150514ab755870.html new file mode 100644 index 0000000000..d750f5ef51 --- /dev/null +++ b/dir_7122b68cae0d86e82e150514ab755870.html @@ -0,0 +1,126 @@ + + + + + + + +Topaz: src/tz/core/memory/allocators Directory Reference + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.2.0.1 +
+
C++20 Graphics Engine
+
+
+ + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+
allocators Directory Reference
+
+
+ + + + + + + + + + + + + + + + + + +

+Files

 adapter.hpp
 
 fallback.hpp
 
 linear.hpp
 
 malloc.hpp
 
 null.hpp
 
 slab.hpp
 
 stack.hpp
 
 stack.inl
 
+
+ + + + diff --git a/dir_8c219efcfe695884c877ddb6dae03642.html b/dir_8c219efcfe695884c877ddb6dae03642.html new file mode 100644 index 0000000000..9ac889aed3 --- /dev/null +++ b/dir_8c219efcfe695884c877ddb6dae03642.html @@ -0,0 +1,112 @@ + + + + + + + +Topaz: src/tz/core/algorithms Directory Reference + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.2.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..27a83bf6be --- /dev/null +++ b/dir_8e01169d6f6292bd7f3d8f71a715d1a5.html @@ -0,0 +1,118 @@ + + + + + + + +Topaz: src/tz/wsi/impl/linux Directory Reference + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.2.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..af5dd65f66 --- /dev/null +++ b/dir_90fb58752be9fb1ae64073e2b3427807.html @@ -0,0 +1,125 @@ + + + + + + + +Topaz: src/tz/gl/impl/vulkan Directory Reference + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.2.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..d683e47564 --- /dev/null +++ b/dir_9eaca02b9c6ac3e186d627c155dd0218.html @@ -0,0 +1,125 @@ + + + + + + + +Topaz: src/tz/gl/impl/opengl Directory Reference + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.2.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..e5d15a20d9 --- /dev/null +++ b/dir_ad3614566e14216ad794a62267d6851c.html @@ -0,0 +1,125 @@ + + + + + + + +Topaz: src/tz/wsi/impl/windows Directory Reference + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.2.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..016076ef1c --- /dev/null +++ b/dir_b6c2a257bfab6380ca9b3cb94b12cb25.html @@ -0,0 +1,112 @@ + + + + + + + +Topaz: demo Directory Reference + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.2.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..f0c9940ecf --- /dev/null +++ b/dir_b6f1048c6f0057577e2c84efc97e28f6.html @@ -0,0 +1,116 @@ + + + + + + + +Topaz: src/tz/gl/impl Directory Reference + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.2.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..aa7fa34e88 --- /dev/null +++ b/dir_b8a37355f4ff41c3494f436b52e9d1e4.html @@ -0,0 +1,114 @@ + + + + + + + +Topaz: src/tz/core/job/impl Directory Reference + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.2.0.1 +
+
C++20 Graphics Engine
+
+
+ + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+
impl Directory Reference
+
+
+ + + + + + +

+Directories

 concurrentqueue_blocking
 
 threadpool_lfq
 
+
+ + + + diff --git a/dir_c45f7307fd1a89701e5a7df4b0292432.html b/dir_c45f7307fd1a89701e5a7df4b0292432.html new file mode 100644 index 0000000000..cd10ed8fd0 --- /dev/null +++ b/dir_c45f7307fd1a89701e5a7df4b0292432.html @@ -0,0 +1,137 @@ + + + + + + + +Topaz: src/tz/gl Directory Reference + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.2.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..bbdeddcaed --- /dev/null +++ b/dir_c57fa511409b5efb9e786a5e24baa5f3.html @@ -0,0 +1,125 @@ + + + + + + + +Topaz: src/tz/ren Directory Reference + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.2.0.1 +
+
C++20 Graphics Engine
+
+
+ + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+
ren Directory Reference
+
+
+ + + + +

+Directories

 shaders
 
+ + + + + + + + + + + +

+Files

 animation.hpp
 
 api.hpp
 
 mesh.hpp
 
 text.hpp
 
 tz_ren.hpp
 
+
+ + + + diff --git a/dir_c5afd7f4a3427178c30763104b31116d.html b/dir_c5afd7f4a3427178c30763104b31116d.html new file mode 100644 index 0000000000..9cdc292e1a --- /dev/null +++ b/dir_c5afd7f4a3427178c30763104b31116d.html @@ -0,0 +1,114 @@ + + + + + + + +Topaz: src/tz/wsi/impl/windows/detail Directory Reference + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.2.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..a5ecd675fe --- /dev/null +++ b/dir_c99b309211028f9b549bc11f5ba411a6.html @@ -0,0 +1,150 @@ + + + + + + + +Topaz: src/tz/core/data Directory Reference + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.2.0.1 +
+
C++20 Graphics Engine
+
+
+ + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+
data Directory Reference
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Files

 basic_list.hpp
 
 data_store.hpp
 
 enum_field.hpp
 
 enum_field.inl
 
 free_list.hpp
 
 free_list.inl
 
 grid_view.hpp
 
 grid_view.inl
 
 handle.hpp
 
 maybe_owned_list.hpp
 
 maybe_owned_list.inl
 
 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..46d173654e --- /dev/null +++ b/dir_d2650608e6952a9513fd80a851d6a394.html @@ -0,0 +1,123 @@ + + + + + + + +Topaz: src/tz/core/memory Directory Reference + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.2.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..82de8d62df --- /dev/null +++ b/dir_ec6445c9b7ffdfd0780b9f9686149b19.html @@ -0,0 +1,118 @@ + + + + + + + +Topaz: src/tz/wsi/api Directory Reference + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.2.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..5a9aa5dd47 --- /dev/null +++ b/dir_ed1ad2be901cc9d2bf65f822a916c2e8.html @@ -0,0 +1,118 @@ + + + + + + + +Topaz: src/tz/lua Directory Reference + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.2.0.1 +
+
C++20 Graphics Engine
+
+
+ + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+
lua Directory Reference
+
+
+ + + + + + + + + + +

+Files

 api.hpp
 
 lua.hpp
 
 slab.hpp
 
 state.hpp
 
+
+ + + + diff --git a/dir_ee9290bbb94f4eedc360bcd5845482c0.html b/dir_ee9290bbb94f4eedc360bcd5845482c0.html new file mode 100644 index 0000000000..061b771157 --- /dev/null +++ b/dir_ee9290bbb94f4eedc360bcd5845482c0.html @@ -0,0 +1,126 @@ + + + + + + + +Topaz: src/tz/gl/api Directory Reference + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.2.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..fa97b469d5 --- /dev/null +++ b/dir_f25169e3c3abac666585ffc445559871.html @@ -0,0 +1,114 @@ + + + + + + + +Topaz: src/tz/wsi/impl Directory Reference + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.2.0.1 +
+
C++20 Graphics Engine
+
+
+ + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+
impl Directory Reference
+
+
+ + + + + + +

+Directories

 linux
 
 windows
 
+
+ + + + diff --git a/dir_fa09d3ed132a3cfd9eda75072d1062af.html b/dir_fa09d3ed132a3cfd9eda75072d1062af.html new file mode 100644 index 0000000000..bfbc2983f9 --- /dev/null +++ b/dir_fa09d3ed132a3cfd9eda75072d1062af.html @@ -0,0 +1,112 @@ + + + + + + + +Topaz: src/tz/core/job/impl/concurrentqueue_blocking Directory Reference + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.2.0.1 +
+
C++20 Graphics Engine
+
+
+ + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+
concurrentqueue_blocking Directory Reference
+
+
+ + + + +

+Files

 job.hpp
 
+
+ + + + 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..cdde8d7844 --- /dev/null +++ b/doxygen.css @@ -0,0 +1,2207 @@ +/* The standard CSS for doxygen 1.10.0*/ + +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; +--fragment-copy-ok-color: #2EC82E; +--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; + +/** special sections */ +--warning-color-bg: #f8d1cc; +--warning-color-hl: #b61825; +--warning-color-text: #75070f; +--note-color-bg: #faf3d8; +--note-color-hl: #f3a600; +--note-color-text: #5f4204; +--todo-color-bg: #e4f3ff; +--todo-color-hl: #1879C4; +--todo-color-text: #274a5c; +--test-color-bg: #e8e8ff; +--test-color-hl: #3939C4; +--test-color-text: #1a1a5c; +--deprecated-color-bg: #ecf0f3; +--deprecated-color-hl: #5b6269; +--deprecated-color-text: #43454a; +--bug-color-bg: #e4dafd; +--bug-color-hl: #5b2bdd; +--bug-color-text: #2a0d72; +--invariant-color-bg: #d8f1e3; +--invariant-color-hl: #44b86f; +--invariant-color-text: #265532; +} + +@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: #090D16; +--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; +--fragment-copy-ok-color: #0EA80E; +--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; + +/** special sections */ +--warning-color-bg: #2e1917; +--warning-color-hl: #ad2617; +--warning-color-text: #f5b1aa; +--note-color-bg: #3b2e04; +--note-color-hl: #f1b602; +--note-color-text: #ceb670; +--todo-color-bg: #163750; +--todo-color-hl: #1982D2; +--todo-color-text: #dcf0fa; +--test-color-bg: #121258; +--test-color-hl: #4242cf; +--test-color-text: #c0c0da; +--deprecated-color-bg: #2e323b; +--deprecated-color-hl: #738396; +--deprecated-color-text: #abb0bd; +--bug-color-bg: #2a2536; +--bug-color-hl: #7661b3; +--bug-color-text: #ae9ed6; +--invariant-color-bg: #303a35; +--invariant-color-hl: #76ce96; +--invariant-color-text: #cceed5; +}} +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-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: none; + background: linear-gradient(to bottom, transparent 0,transparent calc(100% - 1px), currentColor 100%); +} + +a:hover > span.arrow { + text-decoration: none; + background : var(--nav-background-color); +} + +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; + overflow-y: hidden; + position: relative; + min-height: 12px; + margin: 10px 0px; + padding: 10px 10px; + border: 1px solid var(--fragment-border-color); + border-radius: 4px; + background-color: var(--fragment-background-color); + color: var(--fragment-foreground-color); +} + +pre.fragment { + word-wrap: break-word; + font-size: 10pt; + line-height: 125%; + font-family: var(--font-family-monospace); +} + +.clipboard { + width: 24px; + height: 24px; + right: 5px; + top: 5px; + opacity: 0; + position: absolute; + display: inline; + overflow: auto; + fill: var(--fragment-foreground-color); + justify-content: center; + align-items: center; + cursor: pointer; +} + +.clipboard.success { + border: 1px solid var(--fragment-foreground-color); + border-radius: 4px; +} + +.fragment:hover .clipboard, .clipboard.success { + opacity: .28; +} + +.clipboard:hover, .clipboard.success { + opacity: 1 !important; +} + +.clipboard:active:not([class~=success]) svg { + transform: scale(.91); +} + +.clipboard.success svg { + fill: var(--fragment-copy-ok-color); +} + +.clipboard.success { + border-color: var(--fragment-copy-ok-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.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; + padding: 0px; + padding-bottom: 1px; +} + +.paramname { + white-space: nowrap; + padding: 0px; + padding-bottom: 1px; + margin-left: 2px; +} + +.paramname em { + color: var(--memdef-param-name-color); + font-style: normal; + margin-right: 1px; +} + +.paramname .paramdefval { + font-family: var(--font-family-monospace); +} + +.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; + 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.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.bug dt a, dl.deprecated dt a, dl.todo dt a, dl.test a { + font-weight: bold !important; +} + +dl.warning, dl.attention, dl.note, dl.deprecated, dl.bug, +dl.invariant, dl.pre, dl.post, dl.todo, dl.test, dl.remark { + padding: 10px; + margin: 10px 0px; + overflow: hidden; + margin-left: 0; + border-radius: 4px; +} + +dl.section dd { + margin-bottom: 2px; +} + +dl.warning, dl.attention { + background: var(--warning-color-bg); + border-left: 8px solid var(--warning-color-hl); + color: var(--warning-color-text); +} + +dl.warning dt, dl.attention dt { + color: var(--warning-color-hl); +} + +dl.note, dl.remark { + background: var(--note-color-bg); + border-left: 8px solid var(--note-color-hl); + color: var(--note-color-text); +} + +dl.note dt, dl.remark dt { + color: var(--note-color-hl); +} + +dl.todo { + background: var(--todo-color-bg); + border-left: 8px solid var(--todo-color-hl); + color: var(--todo-color-text); +} + +dl.todo dt { + color: var(--todo-color-hl); +} + +dl.test { + background: var(--test-color-bg); + border-left: 8px solid var(--test-color-hl); + color: var(--test-color-text); +} + +dl.test dt { + color: var(--test-color-hl); +} + +dl.bug dt a { + color: var(--bug-color-hl) !important; +} + +dl.bug { + background: var(--bug-color-bg); + border-left: 8px solid var(--bug-color-hl); + color: var(--bug-color-text); +} + +dl.bug dt a { + color: var(--bug-color-hl) !important; +} + +dl.deprecated { + background: var(--deprecated-color-bg); + border-left: 8px solid var(--deprecated-color-hl); + color: var(--deprecated-color-text); +} + +dl.deprecated dt a { + color: var(--deprecated-color-hl) !important; +} + +dl.section dd, dl.bug dd, dl.deprecated dd, dl.todo dd, dl.test dd { + margin-inline-start: 0px; +} + +dl.invariant, dl.pre, dl.post { + background: var(--invariant-color-bg); + border-left: 8px solid var(--invariant-color-hl); + color: var(--invariant-color-text); +} + +dl.invariant dt, dl.pre dt, dl.post dt { + color: var(--invariant-color-hl); +} + + +#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/doxygen_crawl.html b/doxygen_crawl.html new file mode 100644 index 0000000000..3fe938d889 --- /dev/null +++ b/doxygen_crawl.html @@ -0,0 +1,658 @@ + + + +Validator / crawler helper + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/draw_8hpp_source.html b/draw_8hpp_source.html new file mode 100644 index 0000000000..15b759a54a --- /dev/null +++ b/draw_8hpp_source.html @@ -0,0 +1,131 @@ + + + + + + + +Topaz: src/tz/gl/draw.hpp Source File + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.2.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..8f493264f0 --- /dev/null +++ b/dynsections.js @@ -0,0 +1,194 @@ +/* + @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 + */ + +let dynsection = { + + // helper function + updateStripes : function() { + $('table.directory tr'). + removeClass('even').filter(':visible:even').addClass('even'); + $('table.directory tr'). + removeClass('odd').filter(':visible:odd').addClass('odd'); + }, + + toggleVisibility : function(linkObj) { + const base = $(linkObj).attr('id'); + const summary = $('#'+base+'-summary'); + const content = $('#'+base+'-content'); + const trigger = $('#'+base+'-trigger'); + const 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; + }, + + toggleLevel : function(level) { + $('table.directory tr').each(function() { + const l = this.id.split('_').length-1; + const i = $('#img'+this.id.substring(3)); + const 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 + const id = $(this).attr('id').replace('foldopen',''); + // extract start and end foldable fragment attributes + const start = $(this).attr('data-start'); + const 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 + const 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',codefold.plusImg[relPath]); + // append ellipsis + $(line).append(' '+start+''+end); + // insert constructed line into closed div + $('#foldclosed'+id).html(line); + }); + }, +}; +/* @license-end */ diff --git a/endian_8hpp_source.html b/endian_8hpp_source.html new file mode 100644 index 0000000000..7bc462188a --- /dev/null +++ b/endian_8hpp_source.html @@ -0,0 +1,177 @@ + + + + + + + +Topaz: src/tz/core/endian.hpp Source File + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.2.0.1 +
+
C++20 Graphics Engine
+
+
+ + + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+
endian.hpp
+
+
+
1#ifndef TOPAZ_CORE_ENDIAN_HPP
+
2#define TOPAZ_CORE_ENDIAN_HPP
+
3#include <concepts>
+
4
+
5namespace tz
+
6{
+
+
11 enum class endian
+
12 {
+
14 little,
+
16 big
+
17 };
+
+
18
+
24 endian get_local_machine_endianness();
+
30 bool is_big_endian();
+
36 bool is_little_endian();
+
37
+
45 template<std::integral T>
+
+ +
47 {
+
48 char* bytes = reinterpret_cast<char*>(&value);
+
49 std::size_t sz = sizeof(T);
+
50 for(std::size_t i = 0; i < sz / 2; i++)
+
51 {
+
52 std::swap(bytes[i], bytes[sz - i - 1]);
+
53 }
+
54 return value;
+
55 }
+
+
56
+
63 template<std::integral T>
+
+
64 T big_endian(T value)
+
65 {
+
66 if(is_big_endian())
+
67 {
+
68 return value;
+
69 }
+
70 return endian_byte_swap(value);
+
71 }
+
+
72
+
79 template<std::integral T>
+
+
80 T little_endian(T value)
+
81 {
+ +
83 {
+
84 return value;
+
85 }
+
86 return endian_byte_swap(value);
+
87 }
+
+
88}
+
89
+
90#endif // TOPAZ_CORE_ENDIAN_HPP
+
bool is_big_endian()
Query as to whether the current system is big-endian.
Definition endian.cpp:26
+
T big_endian(T value)
Retrieve a scalar value in big-endian form.
Definition endian.hpp:64
+
endian
Indicates the endianness of scalar types.
Definition endian.hpp:12
+
T endian_byte_swap(T value)
Given an integral type, make a copy of the value, swap its bytes, and then return it.
Definition endian.hpp:46
+
T little_endian(T value)
Retrieve a scalar value in little-endian form.
Definition endian.hpp:80
+
bool is_little_endian()
Query as to whether the current system is littel-endian.
Definition endian.cpp:31
+
@ little
Little Endian.
+
@ big
Big Endian.
+
+ + + + diff --git a/engine__info_8hpp_source.html b/engine__info_8hpp_source.html new file mode 100644 index 0000000000..246fdf1290 --- /dev/null +++ b/engine__info_8hpp_source.html @@ -0,0 +1,151 @@ + + + + + + + +Topaz: src/tz/core/engine_info.hpp Source File + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.2.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..538490302f --- /dev/null +++ b/engine__info_8inl_source.html @@ -0,0 +1,144 @@ + + + + + + + +Topaz: src/tz/core/engine_info.inl Source File + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.2.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..a9574bf5a5 --- /dev/null +++ b/enum__field_8hpp_source.html @@ -0,0 +1,165 @@ + + + + + + + +Topaz: src/tz/core/data/enum_field.hpp Source File + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.2.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..61a2c82d44 --- /dev/null +++ b/enum__field_8inl_source.html @@ -0,0 +1,308 @@ + + + + + + + +Topaz: src/tz/core/data/enum_field.inl Source File + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.2.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..8c1a6ab8ef --- /dev/null +++ b/extensions_8hpp_source.html @@ -0,0 +1,197 @@ + + + + + + + +Topaz: src/tz/gl/impl/vulkan/detail/extensions.hpp Source File + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.2.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#if TZ_VULKAN
+
4#include "tz/core/data/basic_list.hpp"
+
5#include "tz/core/data/enum_field.hpp"
+
6#include "vulkan/vulkan.h"
+
7#include <array>
+
8#include <cstring>
+
9
+
10namespace tz::gl::vk2
+
11{
+
+ +
21 {
+ +
24
+
25 Count
+
26 };
+
+
27
+
+
31 enum class DeviceExtension
+
32 {
+ +
35 ShaderDebugPrint,
+
36
+
37 Count
+
38 };
+
+
39
+
40 using InstanceExtensionList = tz::enum_field<InstanceExtension>;
+
41 using DeviceExtensionList = tz::enum_field<DeviceExtension>;
+
42
+
47 namespace util
+
48 {
+
49 constexpr std::array<const char*, static_cast<int>(InstanceExtension::Count)> instance_extension_tz_names{"Debug Messenger"};
+
50 constexpr std::array<const char*, static_cast<int>(DeviceExtension::Count)> device_extension_tz_names{"Swapchain", "Shader Debug Print"};
+
51
+
52 using VkExtension = const char*;
+
53 constexpr std::array<VkExtension, static_cast<int>(InstanceExtension::Count)> instance_extension_names{VK_EXT_DEBUG_UTILS_EXTENSION_NAME};
+
54 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};
+
55
+
56 constexpr VkExtension to_vk_extension(InstanceExtension extension)
+
57 {
+
58 using SizeType = decltype(instance_extension_names)::size_type;
+
59 return instance_extension_names[static_cast<SizeType>(static_cast<int>(extension))];
+
60 }
+
61
+
62 constexpr VkExtension to_vk_extension(DeviceExtension extension)
+
63 {
+
64 using SizeType = decltype(device_extension_names)::size_type;
+
65 return device_extension_names[static_cast<SizeType>(static_cast<int>(extension))];
+
66 }
+
67
+
68 constexpr InstanceExtension to_instance_extension(VkExtension extension)
+
69 {
+
70 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;});
+
71 if(iter != instance_extension_names.end())
+
72 {
+
73 return static_cast<InstanceExtension>(static_cast<int>(std::distance(instance_extension_names.begin(), iter)));
+
74 }
+
75 return InstanceExtension::Count;
+
76 }
+
77
+
78 constexpr DeviceExtension to_device_extension(VkExtension extension)
+
79 {
+
80 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;});
+
81 if(iter != device_extension_names.end())
+
82 {
+
83 return static_cast<DeviceExtension>(static_cast<int>(std::distance(device_extension_names.begin(), iter)));
+
84 }
+
85 return DeviceExtension::Count;
+
86 }
+
87
+
88 using VkExtensionList = tz::basic_list<VkExtension>;
+
89 }
+
90}
+
91
+
92#endif // TZ_VULKAN
+
93#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:33
+
DeviceExtension
Supported Vulkan extension for a LogicalDevice.
Definition extensions.hpp:32
+
InstanceExtension
Supported Vulkan extension for a VulkanInstance.
Definition extensions.hpp:21
+ +
+ + + + diff --git a/fallback_8hpp_source.html b/fallback_8hpp_source.html new file mode 100644 index 0000000000..0fd09499f6 --- /dev/null +++ b/fallback_8hpp_source.html @@ -0,0 +1,156 @@ + + + + + + + +Topaz: src/tz/core/memory/allocators/fallback.hpp Source File + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.2.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 0000000000000000000000000000000000000000..5303e91ac36ca747846d5ede5f2b5d056801c04c GIT binary patch literal 1702 zcmZ{l2~bm46ozkz5EfZ9iC}fc$R<&U0mUMV76>F^jRC8I)~sMESqupn#5RB^hy((t z1pz@82NxU+;!;F`P%VoctrRSaD4+-N^g?lXq{&6OYZy6cm8wk+;?BnX(41& zK1^_V3gKkBc#OZQzixLZSe#}^4`YAtd?^r8LDct>SWvu;_0(z_?vRW z87l+M`yWlmyu9Q2u352}O32^IC5jzOjIlX`sJWEKeFdpi)UWYYNWHan@12b$uk<=@ z@PAy<6F0fwug%D95k0&4Ky|vjt0!W}aOAN8p}MD_9<_5E_=eu#P!vOF@fhRVvr7+# znOW8ACv^4pN6fk%1TGIdCrm{m!(&+dfxf{$ucDjp4^(zOHuvZhE7zD&`{8!r*c5s& z015U0$PWSV7E1CF0Hj0!Mi~IO{{(=gsPM)XPq=3}w4iW52uwa}80}zA_bM97{clzH z!&}{$8myk~&4l`NZ`P}aQpo7WJaB7jphO#mfMTLMd9;J^A7HvS8-~8np?|&BIcw}5 z=M&rdf1QU^^K~_)#~+A3G9zsasA!978k>BSsx@bfbue2m1vixY>6UQ2lB{JkjX_}S z9t$dPX>iQzS!2IN>1?03?uLnuB75ee@F6_?oWKBO$pJxY+~C}nGo|S zdipI(?6~#@*sWLWrKZ{P$`f^pYLHTVt|6&ZS(Bb#Q_Q}x{qCrLxl*fMWovJT ze6z5<9bd(J;pDV5f5)Q>I7CSrIYdC&v;DhGhs-f}Vy2VhY63oWBFUONj6J^fSJ5U~ zm^7Hb%gaZelvGu!Ohptg;Np3bJvcHo zn6@p+%o0L&8i)f!?rbdqT!=2tPDEEH7w2#nqC0V;`?`&5h;TyOVPKQ~Spr|k;YG>* zKfxjLlq*bFrl|nm!tQLLNG9e*?~wqSloi8c<48h2lP9QCI!8jxdLH9&W7%S!NWv2e zfTmF#OUjFpIPnCySUTA!DB2qhY3w}BX9}cIOtwTS=8Cm=P;quE1k64HLJl_uXi_5? zR9_g`mJq&OLTAR~L}FnSFNTYg$V6NmEC~N6_7@ILEHvErt%E~rXj?mVm=2IOCIq$# z+6En%i$S7sB>DPg4$?*yj%(|Fcvs!7Uam&9$tfiP1Tbp3NHXE$dK{JjRKE~XwGSit EAN_q0kN^Mx literal 0 HcmV?d00001 diff --git a/favicon-32x32.png b/favicon-32x32.png new file mode 100644 index 0000000000000000000000000000000000000000..5fc13c63d29fbd112feb9145ac06397b696ad9bf GIT binary patch literal 2076 zcmZ{lc{CL28^_<-%$RAW!OWGY#!^OV3_`XnGcu!uNp>-2q$z_K>sZF}D_crMu05pn zx<%K{9ZXS_{kFJiq);L^brY34I_Lh*`TgNOiL!^e9tcB&eryZ7H8ow7KXuG)}n+R zaQjI|II`~CB}FGCd%~g0c=g%Z&e*IvuWPseu>68ajpc8B7+I*9&XJebQn%fU4RrNa zcet@PGlMYKZSl1$$BIe$*(Z=1zM~vXJU5A4O?~ma@ITj>COR8nP`&zZ`e?y>=)-1y z(w4EPMfidh%-w6uj}Pj~sveJdy+X~rkfYR$6}BRM<^j#Anajv|bw!7O7O$uz9K>yC zMZ`V+bKGlXcLFdN8U26_3qxfSb%f6+pIer+eG^uXzF2QQ8lJ0*V~(#q3WvdR1R!o3 z0HQPimSrW;3;>Z-0N(loU{(Nta#(S*i-oKq7qHKs4i>=_Xpd%B9+y?*!x)|s08lj7 z0upoCDoR#F3Yd;|$kzxWL0;RT1ltJ!T*#!`xO#NWUG&}WV@K#tiU`uX6A%CCHu)Qh z%vWN~B98@Mdm`s`bO?zp+>o*UwEkd0!OPTp_pZBeR;u**%N1^u-C0gX`WsvFe;p#b zrlqjPhTO`}k_zndqmn7+d-~eu-o37EIhw8a{X8?O|IeQnt)`P6^|dW*p~YZx2e*9= zG7Zx%|A?P67}{0My|s}X_HMjQBR}tpuU7naq{NLRebNuLg512iL}t7AD+Jhy*;4iC zRe0xh7q<}O1@&9u3ebthX16OZZ@aLcB1K~*O`FR%H_k+IztHuPr<1pHuKOX-{Tk4s ztwZWYz;12BLL0UdZ>0NT%3z6~`to3U=Gm$_s5~~OIDziom-<#AxRnhKy&LOW8mtY0PQ`5=Q zqTc`{4c-W?7(De0^u*>CG9@iuUSjZ5eVHU|bDUDEbVkH&Po`>7fWa5~SpXQu~t{m!}#W9gAC0f^!?Mq<-;C zsNZP<+gjSBDb}uuI0(HcX{AYZ`#YO!g*bVsDodHosG($=y=lM-b#HAch%C{@Q}J?# zAAiUJ8oh)RG`Jc_KvXI};hF74lF;CiY%2MadcAM(TZ z&DZfg@1MT08{H}&A6lI_xNd`1I~-TxP4MqtUfEMG3O(P0uXT7(Iiot7@OXDh$X&!E z_4}i51$zgcO4+RFRKHIR04u&)7V%E^1Vv~H|;)JjC0&8(>RV`E%BvOahZtxqwiP*TV713Ay%zP(Q zu5)H3;Lw|UFoBE1-YF0YZX6iK%Ol;u?QFansjp;$s6Ue!s)-f*lRF% zdPd3V@?<Cl8);10XRW+E@YdbI5i+;$M0?e`0_x!#Wj0A$+pw75~fn{2|@NVsR-;m1hh~-KQKf9XyJiuK_HhD%@Z6Y z*)tuT-IH<3GHB}>#Fe$oI6nwrKsC_cNj2JOpzmrxHKUrE8Jg-+WeL?&PBY_w1pH7g z??~+b7m&S+jAR1UH3!-3GvkDY#fI~OjtYQtWI!;FL!yWB*}RbYTzzjDrtvSv4UFJ~ z^TGtY&=9b8P*Ol7FIcdX7eb0)+1u_9vQd)J#D8f%J0$W5n1zJp?RvG$|}R^aw9FkR*r=3na-5Wz#vPc=E$K)Co5-`GHe! zAM-T}z%(%w4n|2+Y2SGQOo>Dn?dsyfH0xYRy-!AZBz+P!39?tjD0iTMx5^5F54J{m PG7G@8J3z0o^-uW+Z+K^f literal 0 HcmV?d00001 diff --git a/favicon.ico b/favicon.ico new file mode 100644 index 0000000000000000000000000000000000000000..c3ea79a8b197d8774617b2eb867c782cec39c12f GIT binary patch literal 15086 zcmeI233L_J8OP`GLIMhe#cC9kR6wnGAR3EUj)GM}aXWRXO0^Qey{McjZ51I=3$|{R z%_9XO7O>VTazqi^7#?m|4FsvUkPyPYgv~q>BZR#E{*$?Mn7lO$aC(??ez}u7^WE=% z@BQwbnR}mQ`7FPckztXhTd(x6tUi`yrKdapx3{cP^4gQ?`dvwuHGvz>;vP(_Y*4;^ zbgxT}{XNzK$6BEITVU9-?McwG`8_p{2ekKrLCsTo^OuVDTzC;$G{3i|^?>G7_z2d( zX-!*t^OW{%N#*gt6UegA{1ey%HE@ISvgR&s0c~`Cv>oW~0M|f@w4r${gdAoLFWTX| zc-osj^bdwpk0$+S_Q7u;+tIGrdEce~8_sRbXdeiF0K1+?Lp{)a1+0KG9sMSDO#AOg zzlos^XfJ>}j}q-Y(7h7ofj!rw)g3#g4t5MlGuoem4RGO+tOI)6!W;;}2x&okJ8;L2 z(eI9-%g|m0>W7n$L>(O(eI5Nqu(7v?a{pyLhu|M_GdJDFNbna+rI|U zV#m~B=J4g^_OlGle{%F!lHPte`v9$q`DGyOYX4ZVWAuAtXs=U;wWNn-ETFXw%m!%} z>mgR`82#QD`qA#n!6v+`XKBBqd(r*F?9$RL((rMLbHtpG;5yU?$WN23 zk>(wv+oX|VNct5|%`z6yshBTxY4^rXKjzJE!RU;XdSl4UL#7YbQimoT3uso%n|a>E zjZ$~)jEh6NsZ*Y79{MACjdqjjxzJ=|0iC149rM!ejh!V4=y%7E-iORQWb`YY1dSdG z=v2&a1$Vpa+&%Ba8#|``-7%#1A#V&xe-Iiq7SQOP=e_#>!F9WRX!k^7$JD_cLrrUOV)0TE`NbDH>@y3wqPzHUY=|{I>{$+6M^`19H>=^y-80v_=Pr$@XxHQ1^uwwzu zE#M*8A49)8c5)gJ_eQ%(Uvxdo#>ddFI!%Ro-_B@08}i``(Dz^@e(AjLq@aB&6hUDF zS&rSS&{1Wg>tZN`l@a(4`Rb#Ky>awRNo8y31RY~w&-vNQw)>zhv~MJ-*!yk$a|--f za|${@$0&5-TD>)-kGBT>h1)8Uindqyi?&6@Ctp)azw=EitM*SXt4?YRl#w)*vQ*|h z#oznDAC=YBNq2lvVXu+N#vBEkgBQX)cncOpVUTQyujAlZcpDZpkhieQgOgMyanu`L zhXpaXTKBsT^tOZf5Q@PIvU{@F9`7&V+dDrc`hNjs9IrCbd_S0R9Vz`c_jK0%-UHpe zp(KX>6cB$;qeFkXl z#H}Zh^9pS3xddI^VOu??6Dq2e{1y3j-p@jHP+Feg8zk$(62Se6I2$uZUU`U zM~a&QuG#lS(r)t6_aj&pr4H|Mt+npQe{Li6&zM|VWzRimn;b>^X0Fwn^NrqcDf)(i zVkO*o-b#KiM}L3xD-IHg8{Jz2=2_SYeaj-~SD$D-)vjkat>N;}mkfCk^w*L<+|jRf z|4$pBe;qd6R0i4xKoG*k&b#Dy2&XYt9vZttQG`0Y6xb59*8p`py|g9d1N_MVLB#N!}^4N5`)~@sLOi{a&`{YXu9#=-)@)1G=X%2O3+#TLPOkgE zZx@s1$iB938#}ET)vmw(uO8K|Yh9Y0s&r3Tik+5~rKITpK$+jKbVkEWj`ixH7QGI{( ze`j?IeCm7NyjukBU3;K4zK1|Q*zaHQmL2OpeEQ)r*hJr-eQV*iGw`jpH~x344=$bc z&y(@}H9QZ@uuXH|_c{o|+Y7ga^xM1J!L+^6Fh<_+`y%XvM(vRp<@oFgUxMCYN1nc@ zSZyEfdp09sA zwSBm_H@;13`e3HZzcgr#K58uBM}4k!3-34E$Zm^@{So5c_%&%@WT`z4uE(Fop=kr9 z+HZ;&3;5MIclWvK9xLvRUz57~z>EWwap@Z%om?zUgx%sJ8G-uO1D>4O=b`b$T> zSipBX(Ef+k9JNp4W~BAnO2z%(;Q)Le1KpE<-?~sMd}%IH{A(--^+zq}8DXytE9Rdn zu5ABwNo5vX4uf3`V$a}&pD*2<#Pj|_$bx|}&^;FoU%5NwvcKl14xIhoK)4(RyZG5< zv-9n>R{3ADC7AmDmSAQW&ii0Xu>p_VBa6P! z+OF1+DjX_FwKvp5bvFlou5tW&*X3Rcg?4J+cs#h{GTQkxm5Yz@U}Dmw)#TNi5Am(_ zkY~W_|10)jP9zR~ihtEDnqOVh+;PLzOEQ?=G;^qoHc?=3v%@ z)s-hw?pJa6-#~nHBL=nSQSR}-ivQ1a`}CgUdob+sXqce;@I50A|MOQ=gfv(F+T&aO zezVt~_kaBQVLWIp)AYrXRpk|}@SP2@_9Y&)M!)LAm-Y`$pDTRT9r!&70xtjM zjM3ig?Py$x?ReQx<|TNiwlxcn>LPj~x>b&l_|VF=s=HxdJ#$9_|l zgpWZm1a9)6yerwWYsI)b0e{zn*8YdUd9nN*sq1y?6rR6Yf)Q1)Y-S_3a+=hoTG2BxWE61mo(j>!$$#c|4LM(Zdo}THF^m5=n?Dg%@FI*YeXde9+>~yrRH1@-m zm9M^b;pbOiyBR)!L)roxttUSXA+#^Lqp195N4uG4OdVdwR_{9c4s2y~V5j-ZJVSnm z_UHfS`(PbrQHOgS`)bm=Wskp9Y{$@Fd8AXve-k_xdzCRAra4Tf4v$>*#;3h#$4T@> z9`?DE*C~H>yj-679I?BBR;dHD$Jw7;cq)W^Zz8^x|Y=yw1i=Cira@jdCa=l=&)7i`p~ z`Ec+(N$r5`kD(a*<+IB6>i1Y{z`T#Ff9&guE3p3%yE3>)Htqx47LWlK&D*e7zYFPu z{UrkJeMf(>TYGl>K;y#JE&GtxJ{@XV4;A}{TGrm)mbH;5>W8d?ebULY3eSa1&e<7L Ip03I6zpz5u_W%F@ literal 0 HcmV?d00001 diff --git a/features_8hpp_source.html b/features_8hpp_source.html new file mode 100644 index 0000000000..c982757dca --- /dev/null +++ b/features_8hpp_source.html @@ -0,0 +1,199 @@ + + + + + + + +Topaz: src/tz/gl/impl/vulkan/detail/features.hpp Source File + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.2.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..1419a632bb --- /dev/null +++ b/fence_8hpp_source.html @@ -0,0 +1,169 @@ + + + + + + + +Topaz: src/tz/gl/impl/vulkan/detail/fence.hpp Source File + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.2.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..e496011c97 --- /dev/null +++ b/fixed__function_8hpp_source.html @@ -0,0 +1,356 @@ + + + + + + + +Topaz: src/tz/gl/impl/vulkan/detail/fixed_function.hpp Source File + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.2.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#if TZ_VULKAN
+
4#include "tz/core/data/basic_list.hpp"
+
5#include "tz/core/data/enum_field.hpp"
+
6#include "tz/core/data/vector.hpp"
+
7#include "vulkan/vulkan.h"
+
8#include <optional>
+
9
+
10namespace tz::gl::vk2
+
11{
+
+ +
18 {
+
20 Vec1Float16 = VK_FORMAT_R16_SFLOAT,
+
22 Vec1Float32 = VK_FORMAT_R32_SFLOAT,
+
23
+
25 Vec2Float32 = VK_FORMAT_R16G16_SFLOAT,
+
27 Vec2Float64 = VK_FORMAT_R32G32_SFLOAT,
+
28
+
30 Vec3Float48 = VK_FORMAT_R16G16B16_SFLOAT,
+
32 Vec3Float96 = VK_FORMAT_R32G32B32_SFLOAT,
+
33
+
35 Vec4Float64 = VK_FORMAT_R16G16B16A16_SFLOAT,
+
37 Vec4Float128 = VK_FORMAT_R32G32B32A32_SFLOAT
+
38 };
+
+
39
+
40 enum class VertexInputRate
+
41 {
+
42 PerVertexBasis = VK_VERTEX_INPUT_RATE_VERTEX,
+
43 PerInstanceBasis = VK_VERTEX_INPUT_RATE_INSTANCE
+
44 };
+
45
+
+ +
53 {
+
+
55 struct Binding
+
56 {
+
58 std::uint32_t binding;
+
60 std::uint32_t stride;
+
62 VertexInputRate input_rate;
+
63 };
+
+
64
+
+
66 struct Attribute
+
67 {
+
69 std::uint32_t shader_location;
+
71 std::uint32_t binding_id;
+ +
75 std::uint32_t element_offset;
+
76 };
+
+
77
+
78 tz::basic_list<Binding> bindings = {};
+
79 tz::basic_list<Attribute> attributes = {};
+
80 };
+
+
81
+
82 enum class PrimitiveTopology
+
83 {
+
84 Triangles = VK_PRIMITIVE_TOPOLOGY_TRIANGLE_LIST,
+
85 Points = VK_PRIMITIVE_TOPOLOGY_POINT_LIST,
+
86 TriangleStrips = VK_PRIMITIVE_TOPOLOGY_TRIANGLE_STRIP,
+
87 };
+
88
+
89 std::uint32_t primitive_topology_vertex_count(PrimitiveTopology t);
+
90
+
+ +
98 {
+ + +
101
+
102 using NativeType = VkPipelineViewportStateCreateInfo;
+
103 NativeType native() const;
+
104 };
+
+
105
+
106 ViewportState create_basic_viewport(tz::vec2 dimensions);
+
107
+
+
112 enum class PolygonMode
+
113 {
+
115 Fill = VK_POLYGON_MODE_FILL,
+
117 Line = VK_POLYGON_MODE_LINE,
+
119 Point = VK_POLYGON_MODE_POINT
+
120 };
+
+
121
+
+
126 enum class CullMode
+
127 {
+
129 NoCulling,
+ + + +
136 };
+
+
137
+
+ +
143 {
+
145 bool depth_clamp = false;
+
147 PolygonMode polygon_mode = PolygonMode::Fill;
+
149 CullMode cull_mode = CullMode::NoCulling;
+
150
+
151 using NativeType = VkPipelineRasterizationStateCreateInfo;
+
152 NativeType native() const;
+
153 };
+
+
154
+
+ +
160 {
+
161 using NativeType = VkPipelineMultisampleStateCreateInfo;
+
162 NativeType native() const;
+
163 };
+
+
164
+
+ +
170 {
+
172 AlwaysFalse = VK_COMPARE_OP_NEVER,
+
174 LessThan = VK_COMPARE_OP_LESS,
+
176 EqualTo = VK_COMPARE_OP_EQUAL,
+
178 LessThanOrEqual = VK_COMPARE_OP_LESS_OR_EQUAL,
+
180 GreaterThan = VK_COMPARE_OP_GREATER,
+
182 NotEqualTo = VK_COMPARE_OP_NOT_EQUAL,
+
184 GreaterThanOrEqual = VK_COMPARE_OP_GREATER_OR_EQUAL,
+
186 AlwaysTrue = VK_COMPARE_OP_ALWAYS
+
187 };
+
+
+ +
193 {
+
195 bool depth_testing = false;
+
197 bool depth_writes = false;
+
199 DepthComparator depth_compare_operation = DepthComparator::LessThan;
+ +
202
+
204 bool stencil_testing = false;
+
206 VkStencilOpState front = {};
+
208 VkStencilOpState back = {};
+
210 float min_depth_bounds = 0.0f;
+
212 float max_depth_bounds = 1.0f;
+
213
+
214 using NativeType = VkPipelineDepthStencilStateCreateInfo;
+
215 NativeType native() const;
+
216 };
+
+
217
+
+ +
223 {
+
224 using AttachmentState = VkPipelineColorBlendAttachmentState;
+
225 static AttachmentState no_blending();
+
226 static AttachmentState alpha_blending();
+
227
+
228 tz::basic_list<AttachmentState> attachment_states = {no_blending()};
+
229 std::optional<VkLogicOp> logical_operator = std::nullopt;
+
230 tz::vec4 blend_constants = tz::vec4{0.0f, 0.0f, 0.0f, 0.0f};
+
231
+
232 using NativeType = VkPipelineColorBlendStateCreateInfo;
+
233 NativeType native() const;
+
234 };
+
+
235
+
236 enum class DynamicStateType
+
237 {
+
238 Viewport = VK_DYNAMIC_STATE_VIEWPORT,
+
239 Scissor = VK_DYNAMIC_STATE_SCISSOR
+
240 };
+
241
+
242 using DynamicStateTypes = tz::enum_field<DynamicStateType>;
+
243
+
+ +
249 {
+
250 DynamicStateTypes states = {};
+
251 };
+
+
252}
+
253
+
254#endif // TZ_VULKAN
+
255#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
+
VertexInputFormat
Specifies the format of a vertex input attribute.
Definition fixed_function.hpp:18
+
DepthComparator
When two fragments depth values are compared aka comp(lhs, rhs), what should the return expression be...
Definition fixed_function.hpp:170
+
PolygonMode
Describes how fragments are generated for geometry.
Definition fixed_function.hpp:113
+
CullMode
Describes which faces should be culled.
Definition fixed_function.hpp:127
+
@ 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:223
+
Specifies the state of the depth/stencil buffer, if any.
Definition fixed_function.hpp:193
+
DepthComparator depth_compare_operation
Describes how two fragment depth values are compared. See DepthComparator for more information.
Definition fixed_function.hpp:199
+
VkStencilOpState front
Parameter of stencil testing.
Definition fixed_function.hpp:206
+
float max_depth_bounds
If depth bounds testing is enabled, this specifies the maximum depth boundary.
Definition fixed_function.hpp:212
+
float min_depth_bounds
If depth bounds testing is enabled, this specifies the minimum depth boundary.
Definition fixed_function.hpp:210
+
bool depth_testing
Whether depth testing is enabled.
Definition fixed_function.hpp:195
+
bool depth_bounds_testing
Whether depth bounds testing should be enabled. If enabled, fragments with depth values < min_depth_b...
Definition fixed_function.hpp:201
+
bool depth_writes
If a fragment's value passes the depth test (that is, the depth compare operation returns true),...
Definition fixed_function.hpp:197
+
VkStencilOpState back
Parameter of stencil testing.
Definition fixed_function.hpp:208
+
bool stencil_testing
Whether stencil testing is enabled.
Definition fixed_function.hpp:204
+
At present, dynamic state is not supported, so this struct is not configurable.
Definition fixed_function.hpp:249
+
At present, multisampling is not supported, so this struct is not configurable.
Definition fixed_function.hpp:160
+
Configures how the geometry shaped by input data is transformed into fragments.
Definition fixed_function.hpp:143
+
PolygonMode polygon_mode
Describe how fragments are generated from geometry. See PolygonMode for more information.
Definition fixed_function.hpp:147
+
CullMode cull_mode
Describe the culling behaviour. See CullMode for more information.
Definition fixed_function.hpp:149
+
bool depth_clamp
Fragments that are beyond the near and far planes are clipped to them instead of being discarded....
Definition fixed_function.hpp:145
+
Attributes describe data members of a vertex input element.
Definition fixed_function.hpp:67
+
VertexInputFormat format
Describes the data components of the attribute are laid out.
Definition fixed_function.hpp:73
+
std::uint32_t binding_id
Binding id corresponding to this attribute. VertexInputState::bindings must contain an element Vertex...
Definition fixed_function.hpp:71
+
std::uint32_t shader_location
Shader Input Location number corresponding to this attribute.
Definition fixed_function.hpp:69
+
std::uint32_t element_offset
Distance (in bytes) from the beginning of the vertex input element to this attribute....
Definition fixed_function.hpp:75
+
Each binding has an index. Attributes refer to an existing binding via its index.
Definition fixed_function.hpp:56
+
VertexInputRate input_rate
Describes how often the binding appears throughout the vertex input.
Definition fixed_function.hpp:62
+
std::uint32_t binding
Index of the binding.
Definition fixed_function.hpp:58
+
std::uint32_t stride
Distance (in bytes) between the same binding in the next vertex input element.
Definition fixed_function.hpp:60
+
Specifies how the input vertex data is organised.
Definition fixed_function.hpp:53
+
Specifies the region of the output that will be rendered to.
Definition fixed_function.hpp:98
+
+ + + + 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/framebuffer_8hpp_source.html b/framebuffer_8hpp_source.html new file mode 100644 index 0000000000..df4f9657d9 --- /dev/null +++ b/framebuffer_8hpp_source.html @@ -0,0 +1,183 @@ + + + + + + + +Topaz: src/tz/gl/impl/opengl/detail/framebuffer.hpp Source File + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.2.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/free__list_8hpp_source.html b/free__list_8hpp_source.html new file mode 100644 index 0000000000..20e6c999af --- /dev/null +++ b/free__list_8hpp_source.html @@ -0,0 +1,298 @@ + + + + + + + +Topaz: src/tz/core/data/free_list.hpp Source File + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.2.0.1 +
+
C++20 Graphics Engine
+
+
+ + + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+
free_list.hpp
+
+
+
1#ifndef TOPAZ_CORE_DATA_free_list_HPP
+
2#define TOPAZ_CORE_DATA_free_list_HPP
+
3#include "tz/core/data/handle.hpp"
+
4#include "tz/core/types.hpp"
+
5#include "tz/core/debug.hpp"
+
6#include <vector>
+
7#include <iterator>
+
8#include <type_traits>
+
9
+
10namespace tz
+
11{
+
12 template<tz::nullable T, tz::random_access_container C = std::vector<T>>
+
13 class free_list;
+
14
+
15 template<tz::nullable T, tz::random_access_container C = std::vector<T>, typename F = free_list<T, C>>
+
+ +
17 {
+
18 using iterator_category = std::random_access_iterator_tag;
+
19 using value_type = std::conditional_t<std::is_const_v<F>, const T, T>;
+
20 using difference_type = std::ptrdiff_t;
+
21 using pointer = std::conditional_t<std::is_const_v<F>, const T*, T*>;
+
22 using reference = std::conditional_t<std::is_const_v<F>, const T&, T&>;
+
23
+
24 auto operator<=>(const free_list_iterator<T, C, F>& lhs) const = default;
+
25 free_list_iterator& operator+=(const std::integral auto dst)
+
26 {
+
27 for(difference_type i = 0; i < dst; i++)
+
28 {
+
29 (*this)++;
+
30 }
+
31 return *this;
+
32 }
+
33 free_list_iterator& operator-=(const std::integral auto dst)
+
34 {
+
35 for(difference_type i = 0; i < dst; i++)
+
36 {
+
37 (*this)--;
+
38 }
+
39 return *this;
+
40 }
+
41 free_list_iterator& operator++()
+
42 {
+
43 while(this->internal_handle < this->l->elements.size() && this->l->is_in_free_list(++this->internal_handle));
+
44 return *this;
+
45 }
+
46 free_list_iterator& operator--()
+
47 {
+
48 tz::assert(this->internal_handle > 0);
+
49 while(this->internal_handle > 0 && this->l->is_in_free_list(--this->internal_handle));
+
50 return *this;
+
51 }
+
52 free_list_iterator operator++(int){auto tmp = *this; ++tmp; return tmp;}
+
53 free_list_iterator operator--(int){auto tmp = *this; --tmp; return tmp;}
+
54 free_list_iterator operator+(const std::integral auto dst) const{auto old = *this; return old += dst;}
+
55 free_list_iterator operator-(const std::integral auto dst) const{auto old = *this; return old -= dst;}
+
56
+
57 difference_type operator-(const free_list_iterator& rhs) const {tz::assert(this->l == rhs.l); return this->internal_handle - rhs.internal_handle;}
+
58
+
59 T& operator[](difference_type i) requires(!std::is_const_v<F>)
+
60 {
+
61 auto iter_cpy = (*this) + i;
+
62 return *iter_cpy;
+
63 }
+
64
+
65 std::conditional_t<std::is_const_v<F>, const T&, T&> operator[](difference_type i) const
+
66 {
+
67 auto iter_cpy = (*this) + i;
+
68 return *iter_cpy;
+
69 }
+
70
+
71 T& operator*() requires(!std::is_const_v<F>)
+
72 {
+
73 auto handle = static_cast<free_list<T, C>::handle>(static_cast<tz::hanval>(this->internal_handle));
+
74 return this->l->operator[](handle);
+
75 }
+
76
+
77 std::conditional_t<std::is_const_v<F>, const T&, T&> operator*() const
+
78 {
+
79 auto handle = static_cast<F::handle>(static_cast<tz::hanval>(this->internal_handle));
+
80 return this->l->operator[](handle);
+
81 }
+
82
+
83 // note: a mutable iterator needs to be implicitly convertible to a const iterator.
+
84 // however, a const iterator shouldn't be implicitly convertible to a const-const iterator (hence the concept constraint.)
+
85 operator free_list_iterator<T, C, const F>() const requires(!std::is_const_v<F>)
+
86 {
+
87 return {.l = this->l, .internal_handle = this->internal_handle};
+
88 }
+
89
+
90 F* l;
+
91 std::size_t internal_handle;
+
92 };
+
+
93
+
94 // support for int + free_list_iterator
+
95 // as operator+ needs to be commutative to be a proper random_access_iterator.
+
96
+
97 template<tz::nullable T, tz::random_access_container C = std::vector<T>, typename F>
+
98 free_list_iterator<T, C, F> operator+(std::integral auto lhs, const free_list_iterator<T, C, F>& iter)
+
99 {
+
100 return iter + lhs;
+
101 }
+
102
+
103 template<tz::nullable T, tz::random_access_container C = std::vector<T>, typename F>
+
104 free_list_iterator<T, C, F> operator-(std::integral auto lhs, const free_list_iterator<T, C, F>& iter)
+
105 {
+
106 return iter - lhs;
+
107 }
+
108
+
109
+
119 template<tz::nullable T, tz::random_access_container C>
+
+ +
121 {
+
122 public:
+
123 using handle = tz::handle<T>;
+ + +
126 friend struct free_list_iterator<T, C, free_list<T, C>>;
+
127 friend struct free_list_iterator<T, C, const free_list<T, C>>;
+
129 free_list() = default;
+
130 free_list(const free_list<T, C>& cpy) = default;
+
131 free_list(free_list<T, C>&& move) = default;
+
132 free_list(C&& container);
+
133 free_list& operator=(const free_list<T, C>& rhs);
+
134 free_list& operator=(free_list<T, C>&& rhs);
+
135 free_list& operator=(C&& container);
+
136
+
138 std::size_t size() const;
+
140 bool empty() const;
+
142 void clear();
+
144 void reserve(std::size_t count);
+
145
+
146 iterator begin();
+
147 const_iterator begin() const;
+
148 iterator end();
+
149 const_iterator end() const;
+
150
+
158 handle push_back(const T& t) requires
+
159 requires(C con, T t) {con.push_back(t);};
+
160
+
168 handle push_back(T&& t) requires
+
169 requires(C con, T&& t) {con.push_back(std::move(t));};
+
170
+
178 template<typename... Ts>
+
179 handle emplace_back(Ts&&... ts) requires
+
180 requires(C con) {{con.emplace_back(std::forward<Ts>(ts)...)} -> std::same_as<T&>;};
+
181
+
188 void erase(handle h);
+
189
+
195 const T& front() const;
+
201 T& front();
+
207 const T& back() const;
+
213 T& back();
+
214
+
220 const T& operator[](handle h) const;
+
226 T& operator[](handle h);
+
227
+
228 bool contains(handle h) const;
+
229 private:
+
230 bool is_in_free_list(std::size_t internal_id) const;
+
231 bool is_in_free_list(handle h) const;
+
232
+
233 C elements = {};
+
234 std::vector<handle> frees = {};
+
235 };
+
+
236}
+
237
+
238#include "tz/core/data/free_list.inl"
+
239#endif // TOPAZ_CORE_DATA_free_list_HPP
+
Bespoke free-list implementation.
Definition free_list.hpp:121
+
std::size_t size() const
Retrieve the number of elements.
Definition free_list.inl:35
+
void clear()
Remove all elements, and clear out the underlying free-list. Next handle returned is guaranteed to be...
Definition free_list.inl:47
+
const T & front() const
Retrieve the first non-null element within the list.
Definition free_list.inl:195
+
const T & operator[](handle h) const
Retrieve the element value corresponding to the provided handle.
Definition free_list.inl:231
+
const T & back() const
Retrieve the last non-null element within the list.
Definition free_list.inl:213
+
handle push_back(const T &t)
Add a copy of a new element to the list.
Definition free_list.inl:104
+
void erase(handle h)
Erase an existing element from the list using its handle.
Definition free_list.inl:183
+
free_list()=default
Create an empty free list.
+
bool empty() const
Query as to whether the list is empty. Equivalent to size() == 0.
Definition free_list.inl:41
+
void reserve(std::size_t count)
Invoke reserve(count) on the underlying container. Does not invalidate iterators. Only invalidates re...
Definition free_list.inl:54
+
Definition handle.hpp:17
+
Definition types.hpp:89
+
void assert(bool condition, detail::format_string fmt="<No message>", Args &&... args)
Assert on a condition.
Definition debug.inl:35
+
Definition free_list.hpp:17
+
+ + + + diff --git a/free__list_8inl_source.html b/free__list_8inl_source.html new file mode 100644 index 0000000000..e2ecbcbc1c --- /dev/null +++ b/free__list_8inl_source.html @@ -0,0 +1,432 @@ + + + + + + + +Topaz: src/tz/core/data/free_list.inl Source File + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.2.0.1 +
+
C++20 Graphics Engine
+
+
+ + + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+
free_list.inl
+
+
+
1#include "tz/core/data/free_list.hpp"
+
2
+
3namespace tz
+
4{
+
5 template<tz::nullable T, tz::random_access_container C>
+
6 free_list<T, C>::free_list(C&& container):
+
7 elements(container),
+
8 frees(){}
+
9
+
10 template<tz::nullable T, tz::random_access_container C>
+
11 free_list<T, C>& free_list<T, C>::operator=(const free_list<T, C>& rhs)
+
12 {
+
13 this->elements = rhs.container;
+
14 this->frees = rhs.frees;
+
15 return *this;
+
16 }
+
17
+
18 template<tz::nullable T, tz::random_access_container C>
+
19 free_list<T, C>& free_list<T, C>::operator=(free_list<T, C>&& rhs)
+
20 {
+
21 std::swap(this->elements, rhs.elements);
+
22 std::swap(this->frees, rhs.frees);
+
23 return *this;
+
24 }
+
25
+
26 template<tz::nullable T, tz::random_access_container C>
+
27 free_list<T, C>& free_list<T, C>::operator=(C&& container)
+
28 {
+
29 this->elements = container;
+
30 this->frees = {};
+
31 return *this;
+
32 }
+
33
+
34 template<tz::nullable T, tz::random_access_container C>
+
+
35 std::size_t free_list<T, C>::size() const
+
36 {
+
37 return this->elements.size() - this->frees.size();
+
38 }
+
+
39
+
40 template<tz::nullable T, tz::random_access_container C>
+
+ +
42 {
+
43 return this->size() == 0;
+
44 }
+
+
45
+
46 template<tz::nullable T, tz::random_access_container C>
+
+ +
48 {
+
49 this->elements.clear();
+
50 this->frees.clear();
+
51 }
+
+
52
+
53 template<tz::nullable T, tz::random_access_container C>
+
+
54 void free_list<T, C>::reserve(std::size_t count)
+
55 {
+
56 this->elements.reserve(count + this->frees.size());
+
57 }
+
+
58
+
59 template<tz::nullable T, tz::random_access_container C>
+ +
61 {
+
62 std::size_t begin_id = 0;
+
63 while(begin_id < this->elements.size() && this->is_in_free_list(begin_id))
+
64 {
+
65 begin_id++;
+
66 }
+
67 return {.l = this, .internal_handle = begin_id};
+
68 }
+
69
+
70 template<tz::nullable T, tz::random_access_container C>
+
71 free_list<T, C>::const_iterator free_list<T, C>::begin() const
+
72 {
+
73 std::size_t begin_id = 0;
+
74 while(begin_id < this->elements.size() && this->is_in_free_list(begin_id))
+
75 {
+
76 begin_id++;
+
77 }
+
78 return {.l = this, .internal_handle = begin_id};
+
79 }
+
80
+
81 template<tz::nullable T, tz::random_access_container C>
+
82 free_list<T, C>::iterator free_list<T, C>::end()
+
83 {
+
84 std::size_t end_id = this->elements.size();
+
85 while(end_id > 0 && this->is_in_free_list(end_id))
+
86 {
+
87 end_id--;
+
88 }
+
89 return {.l = this, .internal_handle = end_id};
+
90 }
+
91
+
92 template<tz::nullable T, tz::random_access_container C>
+
93 free_list<T, C>::const_iterator free_list<T, C>::end() const
+
94 {
+
95 std::size_t end_id = this->elements.size();
+
96 while(end_id > 0 && this->is_in_free_list(end_id))
+
97 {
+
98 end_id--;
+
99 }
+
100 return {.l = this, .internal_handle = end_id};
+
101 }
+
102
+
103 template<tz::nullable T, tz::random_access_container C>
+
+
104 free_list<T, C>::handle free_list<T, C>::push_back(const T& t) requires
+
105 requires(C con, T t) {con.push_back(t);}
+
106 // implementation note: i dont think the `requires` clause needs to be here. i am only re-defining it coz of a clang bug. https://github.com/llvm/llvm-project/issues/56482
+
107 {
+
108 handle ret;
+
109 if(this->frees.size())
+
110 {
+
111 ret = this->frees.front();
+
112 this->frees.erase(this->frees.begin());
+
113
+
114 // assign to free-list location.
+
115 // previous value must be null.
+
116 T& loc = this->elements[static_cast<std::size_t>(static_cast<tz::hanval>(ret))];
+
117 tz::assert(loc.is_null());
+
118 loc = t;
+
119 }
+
120 else
+
121 {
+
122 ret = static_cast<tz::hanval>(this->elements.size());
+
123 // just invoke push back.
+
124 this->elements.push_back(t);
+
125 }
+
126 return ret;
+
127 }
+
+
128
+
129 template<tz::nullable T, tz::random_access_container C>
+
+
130 free_list<T, C>::handle free_list<T, C>::push_back(T&& t) requires
+
131 requires(C con, T&& t) {con.push_back(std::move(t));}
+
132 // implementation note: i dont think the `requires` clause needs to be here. i am only re-defining it coz of a clang bug. https://github.com/llvm/llvm-project/issues/56482
+
133 {
+
134 handle ret;
+
135 if(this->frees.size())
+
136 {
+
137 ret = this->frees.front();
+
+
138 this->frees.erase(this->frees.begin());
+
139
+
+
140 // assign to free-list location.
+
141 // previous value must be null.
+
+
142 T& loc = this->elements[static_cast<std::size_t>(static_cast<tz::hanval>(ret))];
+
143 tz::assert(loc.is_null());
+
+
144 loc = std::move(t);
+
145 }
+
146 else
+
147 {
+
148 ret = static_cast<tz::hanval>(this->elements.size());
+
149 // just invoke push back.
+
150 this->elements.push_back(std::move(t));
+
151 }
+
152 return ret;
+
153 }
+
154
+
155 template<tz::nullable T, tz::random_access_container C>
+
156 template<typename... Ts>
+
+
157 free_list<T, C>::handle free_list<T, C>::emplace_back(Ts&&... ts) requires
+
+
158 requires(C con) {{con.emplace_back(std::forward<Ts>(ts)...)} -> std::same_as<T&>;}
+
159 // implementation note: i dont think the `requires` clause needs to be here. i am only re-defining it coz of a clang bug. https://github.com/llvm/llvm-project/issues/56482
+
160 {
+
161 handle ret;
+
162 if(this->frees.size())
+
163 {
+
164 ret = this->frees.front();
+
165 this->frees.erase(this->frees.begin());
+
166
+
167 // assign to free-list location.
+
+
168 // previous value must be null.
+
169 T& loc = this->elements[static_cast<std::size_t>(static_cast<tz::hanval>(ret))];
+
170 tz::assert(loc.is_null());
+
171 loc = T{std::forward<Ts>(ts)...};
+
172 }
+
173 else
+
174 {
+
175 ret = static_cast<tz::hanval>(this->elements.size());
+
176 // just invoke emplace back.
+
177 this->elements.emplace_back(std::forward<Ts>(ts)...);
+
178 }
+
+
179 return ret;
+
180 }
+
+
181
+
182 template<tz::nullable T, tz::random_access_container C>
+
+ +
184 {
+
185 if(this->is_in_free_list(h))
+
186 {
+
187 return;
+
+ +
189 // set the element to empty. add to free-list.
+
190 this->elements[static_cast<std::size_t>(static_cast<tz::hanval>(h))] = T::null();
+
191 this->frees.push_back(h);
+
192 }
+
+
+
193
+
194 template<tz::nullable T, tz::random_access_container C>
+
+
195 const T& free_list<T, C>::front() const
+
196 {
+
197 tz::assert(this->size());
+
198 std::size_t id = 0;
+
199 while(this->is_in_free_list(id)){id++;}
+
200 return this->elements[id];
+ +
+
202
+
203 template<tz::nullable T, tz::random_access_container C>
+
+ +
205 {
+
206 tz::assert(this->size());
+
+
207 std::size_t id = 0;
+
208 while(this->is_in_free_list(id)){id++;}
+
209 return this->elements[id];
+
210 }
+
211
+
212 template<tz::nullable T, tz::random_access_container C>
+
+
213 const T& free_list<T, C>::back() const
+
214 {
+
215 tz::assert(this->size());
+
216 std::size_t id = this->elements.size() - 1;
+
217 while(id > 0 && this->is_in_free_list(id)){id--;}
+
218 return this->elements[id];
+
219 }
+
+
+
+ +
221 template<tz::nullable T, tz::random_access_container C>
+
+ +
223 {
+
224 tz::assert(this->size());
+
225 std::size_t id = this->elements.size() - 1;
+
+
226 while(id > 0 && this->is_in_free_list(id)){id--;}
+
227 return this->elements[id];
+
228 }
+
229
+
230 template<tz::nullable T, tz::random_access_container C>
+
+
231 const T& free_list<T, C>::operator[](handle h) const
+
232 {
+
233 tz::assert(this->contains(h), "Handle did not exist in free-list");
+
234 return this->elements[static_cast<std::size_t>(static_cast<tz::hanval>(h))];
+
235 }
+
+
236
+
237 template<tz::nullable T, tz::random_access_container C>
+
+ +
239 {
+
240 tz::assert(this->contains(h), "Handle did not exist in free-list");
+
241 return this->elements[static_cast<std::size_t>(static_cast<tz::hanval>(h))];
+
242 }
+
+
+
243
+
244 template<tz::nullable T, tz::random_access_container C>
+ +
246 {
+
247 return !is_in_free_list(h) && this->elements.size() > static_cast<std::size_t>(static_cast<tz::hanval>(h));
+
248 }
+
249
+
250 template<tz::nullable T, tz::random_access_container C>
+
251 bool free_list<T, C>::is_in_free_list(std::size_t internal_id) const
+
252 {
+
253 return this->is_in_free_list(static_cast<tz::hanval>(internal_id));
+
254 }
+
255
+
256 template<tz::nullable T, tz::random_access_container C>
+
257 bool free_list<T, C>::is_in_free_list(handle h) const
+
258 {
+
259 return std::find(this->frees.begin(), this->frees.end(), h) != this->frees.end();
+
260 }
+
261
+
262}
+
+
+
+
+
+
+
+
+
+
+
+
Bespoke free-list implementation.
Definition free_list.hpp:121
+
std::size_t size() const
Retrieve the number of elements.
Definition free_list.inl:35
+
void clear()
Remove all elements, and clear out the underlying free-list. Next handle returned is guaranteed to be...
Definition free_list.inl:47
+
handle push_back(const T &t)
Add a copy of a new element to the list.
Definition free_list.inl:104
+
handle emplace_back(Ts &&... ts)
Construct a new element in-place within the list.
Definition free_list.inl:157
+
void reserve(std::size_t count)
Invoke reserve(count) on the underlying container. Does not invalidate iterators. Only invalidates re...
Definition free_list.inl:54
+
Definition handle.hpp:17
+
void assert(bool condition, detail::format_string fmt="<No message>", Args &&... args)
Assert on a condition.
Definition debug.inl:35
+
Definition free_list.hpp:17
+
+ + + + diff --git a/game__info_8hpp_source.html b/game__info_8hpp_source.html new file mode 100644 index 0000000000..f689703e85 --- /dev/null +++ b/game__info_8hpp_source.html @@ -0,0 +1,152 @@ + + + + + + + +Topaz: src/tz/core/game_info.hpp Source File + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.2.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..51987471f0 --- /dev/null +++ b/gl_2impl_2opengl_2detail_2image_8hpp_source.html @@ -0,0 +1,195 @@ + + + + + + + +Topaz: src/tz/gl/impl/opengl/detail/image.hpp Source File + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.2.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:74
+
image_format get_format() const
Definition image.cpp:52
+
tz::vec2ui get_dimensions() const
Definition image.cpp:57
+
static image null()
Create an image which acts as a null image, that is, no operations are valid on it.
Definition image.cpp:112
+
void set_data(std::span< const std::byte > texture_data)
Set the image data.
Definition image.cpp:67
+
bindless_handle get_bindless_handle() const
Retrieves the bindless texture handle for this bindless image.
Definition image.cpp:88
+
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:62
+
bool is_bindless() const
Query as to whether this image is bindless.
Definition image.cpp:83
+
bool is_null() const
Query as to whether the image is a null image.
Definition image.cpp:117
+
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..f1a81c8340 --- /dev/null +++ b/gl_2impl_2vulkan_2detail_2image_8hpp_source.html @@ -0,0 +1,324 @@ + + + + + + + +Topaz: src/tz/gl/impl/vulkan/detail/image.hpp Source File + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.2.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:76
+
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:33
+
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..434cdd8d4c --- /dev/null +++ b/gltf_8hpp_source.html @@ -0,0 +1,540 @@ + + + + + + + +Topaz: src/tz/io/gltf.hpp Source File + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.2.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 <set>
+
10#include <any>
+
11
+
12namespace tz::io
+
13{
+
14 namespace detail
+
15 {
+
16 // i hate msvc so damn much.
+
17 constexpr std::size_t badzu = static_cast<std::size_t>(-1);
+
18 }
+
19
+
+ +
21 {
+
22 std::string label;
+
23 std::span<const std::byte> data;
+
24 };
+
+
25
+
26 enum class gltf_chunk_type
+
27 {
+
28 json,
+
29 bin,
+
30 ext
+
31 };
+
32
+
+ +
34 {
+
35 gltf_chunk_type type;
+
36 std::vector<std::byte> data;
+
37 };
+
+
38
+
+ +
40 {
+
41 std::size_t version = detail::badzu;
+
42 std::size_t size = detail::badzu;
+
43 };
+
+
44
+
+ +
46 {
+
47 std::vector<std::size_t> nodes = {};
+
48 std::string name = "Unnamed Scene";
+
49 };
+
+
50
+
+
51 struct gltf_node
+
52 {
+
53 std::size_t id;
+
54 std::string name = "Unnamed Node";
+
55 std::size_t mesh = detail::badzu;
+
56 std::size_t skin = detail::badzu;
+
57 tz::trs transform = {};
+
58 std::vector<std::size_t> children = {};
+
59 bool operator==(const gltf_node& rhs) const = default;
+
60 };
+
+
61
+
62 enum class gltf_buffer_view_type
+
63 {
+
64 none = 0,
+
65 vertex = 34962,
+
66 index = 34963,
+
67 };
+
68
+
+ +
70 {
+
71 std::size_t buffer_id;
+
72 gltf_buffer_view_type type;
+
73 std::size_t offset;
+
74 std::size_t length;
+
75 };
+
+
76
+
77 enum class gltf_accessor_component_type
+
78 {
+
79 sbyte = 5120,
+
80 ubyte = 5121,
+
81 sshort = 5122,
+
82 ushort = 5123,
+
83 uint = 5125,
+
84 flt = 5126
+
85 };
+
86
+
87 enum class gltf_accessor_type
+
88 {
+
89 scalar,
+
90 vec2,
+
91 vec3,
+
92 vec4,
+
93 mat2,
+
94 mat3,
+
95 mat4
+
96 };
+
97
+
+ +
99 {
+
100 std::size_t buffer_view_id;
+
101 std::size_t byte_offset = 0;
+
102 gltf_accessor_component_type component_type;
+
103 std::size_t element_count;
+
104 gltf_accessor_type type;
+
105 tz::mat4 max = tz::mat4::identity();
+
106 tz::mat4 min = tz::mat4::identity();
+
107 };
+
+
108
+
109 constexpr int gltf_max_texcoord_attribs = 8;
+
110 constexpr int gltf_max_color_attribs = 8;
+
111 constexpr int gltf_max_joint_attribs = 8;
+
112 constexpr int gltf_max_weight_attribs = 8;
+
113 enum class gltf_attribute
+
114 {
+
115 position,
+
116 normal,
+
117 tangent,
+
118 texcoord0,
+
119 texcoord_max = texcoord0 + gltf_max_texcoord_attribs,
+
120 color0,
+
121 colormax = color0 + gltf_max_color_attribs,
+
122 joint0,
+
123 jointmax = joint0 + gltf_max_joint_attribs,
+
124 weight0,
+
125 weightmax = weight0 + gltf_max_weight_attribs,
+
126 _count
+
127 };
+
128 using accessor_ref = std::array<int, static_cast<int>(gltf_attribute::_count)>;
+
129
+
130 using gltf_attributes = tz::enum_field<gltf_attribute>;
+
131
+
132 enum class gltf_primitive_mode
+
133 {
+
134 points,
+
135 lines,
+
136 line_loop,
+
137 line_strip,
+
138 triangles,
+
139 triangle_strip,
+
140 triangle_fan
+
141 };
+
142
+
+ +
144 {
+
145 std::string name = "Untitled Mesh";
+
+
146 struct submesh
+
147 {
+
148 gltf_attributes attributes = {};
+
149 accessor_ref accessors = {};
+
150 std::size_t indices_accessor = detail::badzu;
+
151 std::size_t material_id = detail::badzu;
+
152 gltf_primitive_mode mode;
+
153
+
154 };
+
+
155 std::vector<submesh> submeshes = {};
+
156 };
+
+
157
+
+ +
159 {
+
160 std::size_t inverse_bind_matrix_accessor_id = detail::badzu;
+
161 std::vector<tz::mat4> inverse_bind_matrices = {};
+
162 std::size_t skeleton_id = detail::badzu;
+
163 std::vector<std::size_t> joints = {};
+
164 std::string name = "Unnamed Skin";
+
165 };
+
+
166
+
167 enum class gltf_animation_channel_target_path
+
168 {
+
169 translation,
+
170 rotation,
+
171 scale,
+
172 weights
+
173 };
+
174
+
+ +
176 {
+
177 std::size_t node;
+
178 gltf_animation_channel_target_path path;
+
179 };
+
+
180
+
+ +
182 {
+
183 std::size_t sampler_id;
+ +
185 };
+
+
186
+
187 enum class gltf_animation_key_interpolation
+
188 {
+
189 linear,
+
190 step,
+
191 cubic_spline
+
192 };
+
193
+
+ +
195 {
+
196 std::size_t input;
+
197 std::size_t output;
+
198 gltf_animation_key_interpolation interpolation;
+
199 };
+
+
200
+
+ +
202 {
+
+ +
204 {
+
205 float time_point;
+
206 // mutable is safe here even in use in std::set because the transform is not used in comparison (set iterators are always const)
+
207 mutable tz::vec4 transform = tz::vec4::zero();
+
208
+
209 bool operator<(const keyframe_data_element& rhs) const{return this->time_point < rhs.time_point;}
+
210 bool operator<(float time) const{return this->time_point < time;}
+
211 };
+
+
212 using keyframe_container = std::set<keyframe_data_element>;
+
213 using keyframe_data = std::tuple<keyframe_container, keyframe_container, keyframe_container>;
+
214 using keyframe_iterator = keyframe_container::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 tz::vec4 color_factor = tz::vec4::filled(1.0f);
+
245 std::size_t metallic_roughness_texture_id = detail::badzu;
+
246 std::size_t metallic_roughness_texcoord_id = detail::badzu;
+
247 float metallic_factor = 1.0f;
+
248 float roughness_factor = 1.0f;
+
249 std::size_t normal_texture_id = detail::badzu;
+
250 std::size_t normal_texcoord_id = detail::badzu;
+
251 float normal_scale = 1.0f;
+
252 std::size_t occlusion_texture_id = detail::badzu;
+
253 std::size_t occlusion_texcoord_id = detail::badzu;
+
254 float occlusion_strength = 1.0f;
+
255 std::size_t emissive_texture_id = detail::badzu;
+
256 std::size_t emissive_texcoord_id = detail::badzu;
+
257 tz::vec3 emissive_factor = tz::vec3::filled(1.0f);
+
258 };
+
+
259
+
+ +
261 {
+
262 tz::vec3 position;
+
263 tz::vec3 normal;
+
264 tz::vec3 tangent;
+
265 std::array<tz::vec2, gltf_max_texcoord_attribs> texcoordn;
+
266 std::array<tz::vec3, gltf_max_color_attribs> colorn;
+
267 std::array<tz::vec4us, gltf_max_joint_attribs> jointn;
+
268 std::array<tz::vec4, gltf_max_weight_attribs> weightn;
+
269 };
+
+
270
+
271 enum class gltf_submesh_texture_type
+
272 {
+
273 color,
+
274 normal,
+
275 occlusion,
+
276 emissive
+
277 };
+
278;
+
+ +
280 {
+
281 std::size_t texcoord_id;
+
282 std::size_t image_id;
+
283 tz::vec4 factor = tz::vec4::filled(1.0f);
+
284 float extra_data = 1.0f; // normal scale / occlusion strength.
+
285 gltf_submesh_texture_type type;
+
286 };
+
+
287
+
+ +
289 {
+
290 std::string name;
+
291 gltf_attributes attributes = {};
+
292 std::vector<gltf_vertex_data> vertices = {};
+
293 std::vector<std::uint32_t> indices = {};
+
294 std::vector<gltf_submesh_texture_data> textures = {};
+
295 };
+
+
296
+
+
297 class gltf
+
298 {
+
299 public:
+
300 gltf() = default;
+
301 // note: you should pass in the file contents of a .glb.
+
302 static gltf from_memory(std::string_view sv);
+
303 static gltf from_file(const char* path);
+
304 std::size_t vertex_count() const;
+
305 std::size_t index_count() const;
+
306 std::span<const std::byte> view_buffer(gltf_buffer_view view) const;
+
307 std::span<const gltf_mesh> get_meshes() const;
+
308 std::span<const gltf_buffer> get_buffers() const;
+
309 std::span<const gltf_image> get_images() const;
+
310 std::span<const gltf_material> get_materials() const;
+
311 std::span<const gltf_skin> get_skins() const;
+
312 std::span<const gltf_animation> get_animations() const;
+
313 std::span<const gltf_node> get_nodes() const;
+
314 std::vector<gltf_node> get_root_nodes() const;
+
315 std::vector<gltf_node> get_active_nodes() const;
+
316 gltf_submesh_data get_submesh_vertex_data(std::size_t meshid, std::size_t submeshid) const;
+
317 tz::io::image get_image_data(std::size_t imageid) const;
+
318 private:
+
319 gltf(std::string_view glb_data);
+
320 std::any json_data;
+
321 void parse_header(std::string_view header);
+
322 void parse_chunks(std::string_view chunkdata);
+
323 void create_scenes();
+
324 void create_nodes();
+
325 void create_buffers();
+
326 void create_images();
+
327 void create_materials();
+
328 void create_skins();
+
329 void create_animations();
+
330 void create_views();
+
331 void create_accessors();
+
332 void create_meshes();
+
333 gltf_buffer load_buffer(void* node);
+
334 gltf_mesh load_mesh(void* node);
+
335 std::span<const std::byte> get_binary_data(std::size_t offset, std::size_t len) const;
+
336 void compute_inverse_bind_matrices();
+
337 void compute_animation_data();
+
338
+
339 gltf_header header;
+
340 std::vector<gltf_chunk_data> chunks = {};
+
341 std::size_t active_scene_id = detail::badzu;
+
342 std::vector<gltf_scene> scenes = {};
+
343 std::vector<gltf_node> nodes = {};
+
344 std::vector<gltf_buffer> buffers = {};
+
345 std::vector<gltf_image> images = {};
+
346 std::vector<gltf_material> materials = {};
+
347 std::vector<gltf_skin> skins = {};
+
348 std::vector<gltf_animation> animations = {};
+
349 std::vector<gltf_buffer_view> views = {};
+
350 std::vector<gltf_accessor> accessors = {};
+
351 std::vector<gltf_mesh> meshes = {};
+
352 std::size_t parsed_buf_count = 0;
+
353 };
+
+
354}
+
355#endif // TOPAZ_IO_GLTF_HPP
+
Container for enum values, useful for vintage bitfield types.
Definition enum_field.hpp:16
+
Definition gltf.hpp:298
+
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:80
+
Represents a row-major matrix with R rows and C columns.
Definition matrix.hpp:16
+ +
vector< float, 3 > vec3
A vector of three floats.
Definition vector.hpp:217
+
mat4 view(tz::vec3 position, tz::vec3 rotation)
Generates a view matrix using the given view position and rotation.
Definition matrix_transform.cpp:109
+
matrix< float, 4, 4 > mat4
Definition matrix.hpp:208
+
mat4 scale(tz::vec3 scale)
Generates a matrix which performs the following transformations at once:
Definition matrix_transform.cpp:92
+
Definition gltf.hpp:99
+ + +
Definition gltf.hpp:182
+
Definition gltf.hpp:195
+
Definition gltf.hpp:202
+
Definition gltf.hpp:70
+
Definition gltf.hpp:21
+
Definition gltf.hpp:34
+
Definition gltf.hpp:40
+
Definition gltf.hpp:233
+
Definition gltf.hpp:240
+
Definition gltf.hpp:147
+
Definition gltf.hpp:144
+
Definition gltf.hpp:52
+
Definition gltf.hpp:46
+
Definition gltf.hpp:159
+
Definition gltf.hpp:289
+
Definition gltf.hpp:280
+
Definition gltf.hpp:261
+
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..c01c946520 --- /dev/null +++ b/gpu__mem_8hpp_source.html @@ -0,0 +1,127 @@ + + + + + + + +Topaz: src/tz/gl/impl/vulkan/detail/gpu_mem.hpp Source File + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.2.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..3e1a9b6f00 --- /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.2.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
+
9namespace tz::gl::vk2
+
10{
+
+ +
12 {
+
13 public:
+
14 PipelineCache(const LogicalDevice& ldev);
+
15 PipelineCache(const PipelineCache& copy) = delete;
+ + +
18 PipelineCache& operator=(const PipelineCache& rhs) = delete;
+
19 PipelineCache& operator=(PipelineCache&& rhs);
+
20
+
21
+
22 bool is_null() const;
+
23 static PipelineCache null();
+
24 using NativeType = VkPipelineCache;
+
25 NativeType native() const;
+
26 private:
+
27 PipelineCache(std::nullptr_t);
+
28
+
29 VkPipelineCache cache = VK_NULL_HANDLE;
+
30 const LogicalDevice* ldev = nullptr;
+
31 };
+
+
+ +
33 {
+
34 ViewportState viewport;
+
35 VertexInputState vertex_input = {};
+
36 RasteriserState rasteriser = {};
+
37 MultisampleState multisample = {};
+
38 DepthStencilState depth_stencil = {};
+
39 ColourBlendState colour_blend = {};
+
40 DynamicState dynamic = {};
+
41 };
+
+
+ +
47 {
+
49 bool valid() const;
+
51 bool valid_device() const;
+
52
+
53 ShaderPipelineData shaders;
+
54 PrimitiveTopology topology = PrimitiveTopology::Triangles;
+
55 PipelineState state;
+
56 const PipelineLayout* pipeline_layout;
+
+ +
58 {
+
59 std::vector<VkFormat> colour_attachment_formats = {};
+
60 VkFormat depth_format = VK_FORMAT_UNDEFINED;
+
61 bool operator==(const DynamicRenderingState& rhs) const = default;
+
62 };
+
+
63 DynamicRenderingState dynamic_rendering_state = {};
+
64 const LogicalDevice* device;
+
65 };
+
+
66
+
+ +
68 {
+
69 ShaderPipelineData shader;
+
70 const PipelineLayout* pipeline_layout;
+
71
+
72 const LogicalDevice* device;
+
73 };
+
+
74
+
+ +
80 {
+
81 public:
+
82 GraphicsPipeline(const GraphicsPipelineInfo& info, const PipelineCache& existing_cache = PipelineCache::null());
+
83 GraphicsPipeline(const GraphicsPipeline& copy) = delete;
+ + +
86
+
87 GraphicsPipeline& operator=(const GraphicsPipeline& rhs) = delete;
+
88 GraphicsPipeline& operator=(GraphicsPipeline&& rhs);
+
89
+
90 const LogicalDevice& get_device() const;
+
91 const GraphicsPipelineInfo& get_info() const;
+
92 void set_layout(PipelineLayout& layout);
+
93
+
94 using NativeType = VkPipeline;
+
95 NativeType native() const;
+
96 private:
+
97 VkPipeline pipeline;
+ +
99 };
+
+
100
+
+ +
102 {
+
103 public:
+
104 ComputePipeline(const ComputePipelineInfo& info, const PipelineCache& existing_cache = PipelineCache::null());
+
105 ComputePipeline(const ComputePipeline& copy) = delete;
+ + +
108
+
109 ComputePipeline& operator=(const ComputePipeline& rhs) = delete;
+
110 ComputePipeline& operator=(ComputePipeline&& rhs);
+
111
+
112 const LogicalDevice& get_device() const;
+
113 const ComputePipelineInfo& get_info() const;
+
114 void set_layout(PipelineLayout& layout);
+
115
+
116 using NativeType = VkPipeline;
+
117 NativeType native() const;
+
118 private:
+
119 VkPipeline pipeline;
+ +
121 };
+
+
122
+
+ +
124 {
+
125 public:
+
126 Pipeline(const GraphicsPipelineInfo& graphics_info, const PipelineCache& cache = PipelineCache::null());
+
127 Pipeline(const ComputePipelineInfo& compute_info, const PipelineCache& cache = PipelineCache::null());
+
128
+
129 PipelineContext get_context() const;
+
130 const LogicalDevice& get_device() const;
+
131 const PipelineLayout& get_layout() const;
+
132 void set_layout(PipelineLayout& layout);
+
133
+
134 using NativeType = VkPipeline;
+
135 NativeType native() const;
+
136
+
137 static Pipeline null();
+
138 bool is_null() const;
+
139 private:
+
140 Pipeline();
+
141
+
142 std::variant<GraphicsPipeline, ComputePipeline, std::monostate> pipeline_variant;
+
143 };
+
+
144
+
+ +
146 {
+
147 PipelineData() = default;
+ +
149 {
+
150 *this = std::move(move);
+
151 }
+
152 PipelineData& operator=(PipelineData&& rhs)
+
153 {
+
154 std::swap(this->layout, rhs.layout);
+
155 std::swap(this->data, rhs.data);
+
156 if(!this->layout.is_null())
+
157 {
+
158 this->data.set_layout(this->layout);
+
159 }
+
160 return *this;
+
161 }
+
162 PipelineLayout layout = PipelineLayout::null();
+
163 Pipeline data = Pipeline::null();
+
164 };
+
+
165}
+
166
+
167
+
168#endif // TZ_VULKAN
+
169#endif // TOPAZ_GL_IMPL_BACKEND_VK2_GRAPHICS_PIPELINE_HPP
+
Implements tz::gl::device_type.
Definition device.hpp:76
+
Definition graphics_pipeline.hpp:102
+
Represents the Graphics Pipeline.
Definition graphics_pipeline.hpp:80
+
Logical interface to an existing PhysicalDevice.
Definition logical_device.hpp:95
+
Definition graphics_pipeline.hpp:12
+
Definition graphics_pipeline.hpp:124
+
Represents an interface between shader stages and shader resources in terms of the layout of a group ...
Definition pipeline_layout.hpp:25
+
PipelineContext
Specifies which pipeline type a RenderPass subpass is expected to bind to.
Definition tz_vulkan.hpp:290
+
Specifies how a new fragment colour is combined with the previous colour within the output.
Definition fixed_function.hpp:223
+
Definition graphics_pipeline.hpp:68
+
Specifies the state of the depth/stencil buffer, if any.
Definition fixed_function.hpp:193
+
At present, dynamic state is not supported, so this struct is not configurable.
Definition fixed_function.hpp:249
+ +
Specifies creation flags for a GraphicsPipeline.
Definition graphics_pipeline.hpp:47
+
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:160
+
Definition graphics_pipeline.hpp:146
+
Definition graphics_pipeline.hpp:33
+
Configures how the geometry shaped by input data is transformed into fragments.
Definition fixed_function.hpp:143
+
Definition shader.hpp:85
+
Specifies how the input vertex data is organised.
Definition fixed_function.hpp:53
+
Specifies the region of the output that will be rendered to.
Definition fixed_function.hpp:98
+
+ + + + diff --git a/grid__view_8hpp_source.html b/grid__view_8hpp_source.html new file mode 100644 index 0000000000..e0859558e2 --- /dev/null +++ b/grid__view_8hpp_source.html @@ -0,0 +1,146 @@ + + + + + + + +Topaz: src/tz/core/data/grid_view.hpp Source File + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.2.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..d11155389e --- /dev/null +++ b/grid__view_8inl_source.html @@ -0,0 +1,180 @@ + + + + + + + +Topaz: src/tz/core/data/grid_view.inl Source File + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.2.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:35
+
vector< unsigned int, 2 > vec2ui
A vector of two unsigned ints.
Definition vector.hpp:244
+
void report(detail::format_string fmt, Args &&... args)
Print out the formatted message to standard output, including source location information.
Definition debug.inl:56
+
+ + + + diff --git a/group__tz__core.html b/group__tz__core.html new file mode 100644 index 0000000000..0993209800 --- /dev/null +++ b/group__tz__core.html @@ -0,0 +1,1088 @@ + + + + + + + +Topaz: Core Functionality + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.2.0.1 +
+
C++20 Graphics Engine
+
+
+ + + + +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+ +

A grab-bag of common helpers used frequently in other engine modules. +More...

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

+Topics

 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.
 
 Messaging
 Documentation for object-to-object messaging.
 
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+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::endian {
+  endian::little +,
+  endian::big +
+ }
 Indicates the endianness of scalar types. More...
 
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.
 
endian tz::get_local_machine_endianness ()
 Query the endianness of the running machine.
 
bool tz::is_big_endian ()
 Query as to whether the current system is big-endian.
 
bool tz::is_little_endian ()
 Query as to whether the current system is littel-endian.
 
template<std::integral T>
tz::endian_byte_swap (T value)
 Given an integral type, make a copy of the value, swap its bytes, and then return it.
 
template<std::integral T>
tz::big_endian (T value)
 Retrieve a scalar value in big-endian form.
 
template<std::integral T>
tz::little_endian (T value)
 Retrieve a scalar value in little-endian form.
 
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.
 
+using tz::vec2 = vector<float, 2>
 A vector of two floats.
 
+using tz::vec3 = vector<float, 3>
 A vector of three floats.
 
+using tz::vec4 = vector<float, 4>
 A vector of four floats.
 
+using tz::vec2s = vector<short, 2>
 A vector of two shorts.
 
+using tz::vec3s = vector<short, 3>
 A vector of three shorts.
 
+using tz::vec4s = vector<short, 4>
 A vector of four shorts.
 
+using tz::vec2us = vector<unsigned short, 2>
 A vector of two unsigned shorts.
 
+using tz::vec3us = vector<unsigned short, 3>
 A vector of three shorts.
 
+using tz::vec4us = vector<unsigned short, 4>
 A vector of four shorts.
 
+using tz::vec2i = vector<int, 2>
 A vector of two ints.
 
+using tz::vec3i = vector<int, 3>
 A vector of three ints.
 
+using tz::vec4i = vector<int, 4>
 A vector of four ints.
 
+using tz::vec2ui = vector<unsigned int, 2>
 A vector of two unsigned ints.
 
+using tz::vec3ui = vector<unsigned int, 3>
 A vector of three unsigned ints.
 
+using tz::vec4ui = vector<unsigned int, 4>
 A vector of four unsigned ints.
 
+using tz::vec2i32 = vector<std::int32_t, 2>
 A vector of two 32-bit ints.
 
+using tz::vec3i32 = vector<std::int32_t, 3>
 A vector of three 32-bit ints.
 
+using tz::vec4i32 = vector<std::int32_t, 4>
 A vector of four 32-bit ints.
 
+using tz::vec2ui32 = vector<std::uint32_t, 2>
 A vector of two 32-bit unsigned ints.
 
+using tz::vec3ui32 = vector<std::uint32_t, 3>
 A vector of three 32-bit unsigned ints.
 
+using tz::vec4ui32 = vector<std::uint32_t, 4>
 A vector of four 32-bit unsigned ints.
 
using tz::mat4 = matrix<float, 4, 4>
 
+using tz::mat3 = matrix<float, 3, 3>
 A 3x3 row-major matrix of floats.
 
+using tz::mat2 = matrix<float, 2, 2>
 A 2x2 row-major matrix of floats.
 
+

Detailed Description

+

A grab-bag of common helpers used frequently in other engine modules.

+

A collection of platform-agnostic core interfaces.

+

A collection of platform-agnostic core interfaces.

+

Notable features:

    +
  • Initialisation via tz::initialise() and tz::terminate()
  • +
  • Callback functions via tz::callback
  • +
  • Custom file includes (via ImportedTextData)
  • +
+

Typedef Documentation

+ +

◆ mat4

+ +
+
+ + + + +
using tz::mat4 = 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.
  • +
+
+ +
+
+ +

◆ endian

+ +
+
+ + + + + +
+ + + + +
enum class tz::endian
+
+strong
+
+ +

Indicates the endianness of scalar types.

+ + + +
Enumerator
little 

Little Endian.

+
big 

Big Endian.

+
+ +
+
+

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.
+ +
+
+ +

◆ big_endian()

+ +
+
+
+template<std::integral T>
+ + + + + + + +
T tz::big_endian (T value)
+
+ +

Retrieve a scalar value in big-endian form.

+

If the system is detected to be big-endian, the value is unchanged.

Parameters
+ + +
valueThe value to ensure is big-endian.
+
+
+
Returns
Byte-swap of the value if the system is little-endian, otherwise the same value.
+ +
+
+ +

◆ 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.
+ +
+
+ +

◆ endian_byte_swap()

+ +
+
+
+template<std::integral T>
+ + + + + + + +
T tz::endian_byte_swap (T value)
+
+ +

Given an integral type, make a copy of the value, swap its bytes, and then return it.

+

If the value for example is little-endian, then the result will be its big-endian variant.

Parameters
+ + +
valueValue to byte swap.
+
+
+
Returns
Copy of value, with endianness swapped.
+ +
+
+ +

◆ 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_local_machine_endianness()

+ +
+
+ + + + + + + +
endian tz::get_local_machine_endianness ()
+
+ +

Query the endianness of the running machine.

+
Returns
endian::little if machine is little-endian, or endian::big otherwise.
+ +
+
+ +

◆ 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_big_endian()

+ +
+
+ + + + + + + +
bool tz::is_big_endian ()
+
+ +

Query as to whether the current system is big-endian.

+
Note
Equivalent to tz::get_local_machine_endianness() == endian::big
+ +
+
+ +

◆ 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.
+ +
+
+ +

◆ is_little_endian()

+ +
+
+ + + + + + + +
bool tz::is_little_endian ()
+
+ +

Query as to whether the current system is littel-endian.

+
Note
Equivalent to tz::get_local_machine_endianness() == endian::little
+ +
+
+ +

◆ little_endian()

+ +
+
+
+template<std::integral T>
+ + + + + + + +
T tz::little_endian (T value)
+
+ +

Retrieve a scalar value in little-endian form.

+

If the system is detected to be little-endian, the value is unchanged.

Parameters
+ + +
valueThe value to ensure is little-endian.
+
+
+
Returns
Byte-swap of the value if the system is big-endian, otherwise the same value.
+ +
+
+ +

◆ 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..a385f5628e --- /dev/null +++ b/group__tz__core__algorithms.html @@ -0,0 +1,163 @@ + + + + + + + +Topaz: Algorithms + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.2.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..9a3cdb0f3d --- /dev/null +++ b/group__tz__core__data.html @@ -0,0 +1,128 @@ + + + + + + + +Topaz: Data + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.2.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::free_list< T, C >
 Bespoke free-list implementation. 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..028e2aa900 --- /dev/null +++ b/group__tz__core__job.html @@ -0,0 +1,173 @@ + + + + + + + +Topaz: Job System + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.2.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_blockingcurrentqueue
 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 = tz::impl::job_system_blockingcurrentqueue
+
+ +

Underlying job system.

+

See tz::job_system_type for API.

+ +
+
+ +

◆ job_t

+ +
+
+ + + + +
using tz::job_t = 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..5f376e70f8 --- /dev/null +++ b/group__tz__core__memory.html @@ -0,0 +1,116 @@ + + + + + + + +Topaz: Memory Utility + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.2.0.1 +
+
C++20 Graphics Engine
+
+
+ + + + +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+ +

Documentation for a grab-bag of memory helper structs, classes and functions. +More...

+ + + + + +

+Topics

 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..dc5f1c6163 --- /dev/null +++ b/group__tz__core__memory__allocator.html @@ -0,0 +1,134 @@ + + + + + + + +Topaz: Allocators + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.2.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::slab_allocator
 An allocator which creates large slabs of implementation-defined memory just-in-time, and continually suballocates from said slabs. 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__core__messaging.html b/group__tz__core__messaging.html new file mode 100644 index 0000000000..e880e6f33c --- /dev/null +++ b/group__tz__core__messaging.html @@ -0,0 +1,119 @@ + + + + + + + +Topaz: Messaging + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.2.0.1 +
+
C++20 Graphics Engine
+
+
+ + + + +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+ +

Documentation for object-to-object messaging. +More...

+ + + + + + + + +

+Data Structures

class  tz::message_receiver< M, thread_safe >
 Conditionally thread-safe message receiver. More...
 
class  tz::message_passer< M, thread_safe >
 Conditionally thread-safe message passer. More...
 
+

Detailed Description

+

Documentation for object-to-object messaging.

+
+ + + + diff --git a/group__tz__cpp.html b/group__tz__cpp.html new file mode 100644 index 0000000000..626a0ad27d --- /dev/null +++ b/group__tz__cpp.html @@ -0,0 +1,127 @@ + + + + + + + +Topaz: C++ API Reference + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.2.0.1 +
+
C++20 Graphics Engine
+
+
+ + + + +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+ +
C++ API Reference
+
+
+ + + + + + + + + + + + + + + + + + + + +

+Topics

 Core Functionality
 A grab-bag of common helpers used frequently in other engine modules.
 
 Debug UI
 
 
 Graphics Library
 Low-level 3D graphics library.
 
 Lua Integration
 Run Lua code from within Topaz C++.
 
 Rendering Library
 High-level 3D rendering library.
 
 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..1b7c440a49 --- /dev/null +++ b/group__tz__dbgui.html @@ -0,0 +1,227 @@ + + + + + + + +Topaz: Debug UI + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.2.0.1 +
+
C++20 Graphics Engine
+
+
+ + + + +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+ + + + + + + + + + + + + + +

+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:170
+
+
+
+ +

◆ 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..15c1f5412e --- /dev/null +++ b/group__tz__gl2.html @@ -0,0 +1,286 @@ + + + + + + + +Topaz: Graphics Library + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.2.0.1 +
+
C++20 Graphics Engine
+
+
+ + + + +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+ +

Low-level 3D graphics library. +More...

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

+Topics

 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

+

Low-level 3D graphics library.

+

Rendering 3D graphics in Topaz is achieved by doing the following:

    +
  • Populate a tz::gl::renderer_info describing how to render what you want.
  • +
  • Pass the info to tz::gl::device::create_renderer() via the global tz::gl::get_device(). Save the returned renderer handle as a local variable.
  • +
  • Every frame, use the global tz::gl::get_device() via tz::gl::device::get_renderer(handle), to invoke invoke tz::gl::renderer::render() to draw your graphics.
      +
    • Don't forget to tz::begin_frame() and tz::end_frame()!
    • +
    +
  • +
+

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..b0c32aee4a --- /dev/null +++ b/group__tz__gl2__graphicsapi.html @@ -0,0 +1,120 @@ + + + + + + + +Topaz: Maintainer Guide + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.2.0.1 +
+
C++20 Graphics Engine
+
+
+ + + + +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+ + +
+
+ +

For Topaz maintainers only. +More...

+ + + + + + + + +

+Topics

 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..78f2c0fc2e --- /dev/null +++ b/group__tz__gl2__graphicsapi__ogl.html @@ -0,0 +1,119 @@ + + + + + + + +Topaz: OpenGL + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.2.0.1 +
+
C++20 Graphics Engine
+
+
+ + + + +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+ +

Documentation for all things OpenGL. +More...

+ + + + + + + + +

+Topics

 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..019068516a --- /dev/null +++ b/group__tz__gl2__graphicsapi__ogl__frontend.html @@ -0,0 +1,116 @@ + + + + + + + +Topaz: OpenGL Frontend + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.2.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...

+ + + + + +

+Topics

 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..8d7d7793a7 --- /dev/null +++ b/group__tz__gl2__graphicsapi__ogl__frontend__renderer.html @@ -0,0 +1,125 @@ + + + + + + + +Topaz: renderer Implementation + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.2.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..c4b629a623 --- /dev/null +++ b/group__tz__gl2__graphicsapi__vk.html @@ -0,0 +1,119 @@ + + + + + + + +Topaz: Vulkan + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.2.0.1 +
+
C++20 Graphics Engine
+
+
+ + + + +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+ +

Documentation for all things Vulkan. +More...

+ + + + + + + + +

+Topics

 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..1ef0ac3f28 --- /dev/null +++ b/group__tz__gl2__graphicsapi__vk__frontend.html @@ -0,0 +1,106 @@ + + + + + + + +Topaz: Vulkan Frontend + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.2.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..1a8cf01321 --- /dev/null +++ b/group__tz__gl2__io.html @@ -0,0 +1,106 @@ + + + + + + + +Topaz: Inputs and Outputs + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.2.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..eb4a4370df --- /dev/null +++ b/group__tz__gl2__renderer.html @@ -0,0 +1,293 @@ + + + + + + + +Topaz: Renderers + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.2.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...
 
enum class  tz::gl::graphics_topology {
+  graphics_topology::triangles +,
+  graphics_topology::points +,
+  graphics_topology::triangle_strips +
+ }
 Specifies which primitives shall be drawn by a renderer. 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 = 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

+ +

◆ graphics_topology

+ +
+
+ + + + + +
+ + + + +
enum class tz::gl::graphics_topology
+
+strong
+
+ +

Specifies which primitives shall be drawn by a renderer.

+

Defauts to triangles.

+ + + + +
Enumerator
triangles 

Triangles. Each set of 3 vertices constitutes a triangle. 3n length.

+
points 

Points. Each vertex constitutes a single point. 1n length.

+
triangle_strips 

Triangle Strips. Each group of 3 adjacent vertices constitutes a triangle. n-2 length.

+
+ +
+
+ +

◆ 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..572149c9b2 --- /dev/null +++ b/group__tz__gl2__res.html @@ -0,0 +1,307 @@ + + + + + + + +Topaz: Resources + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.2.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..ccdf03f147 --- /dev/null +++ b/group__tz__gl__ogl2.html @@ -0,0 +1,149 @@ + + + + + + + +Topaz: OpenGL Backend + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.2.0.1 +
+
C++20 Graphics Engine
+
+
+ + + + +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+ +

Documentation for the OpenGL backend, which acts as a large abstraction around OpenGL. +More...

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

+Topics

 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..8fe518794d --- /dev/null +++ b/group__tz__gl__ogl2__buffers.html @@ -0,0 +1,285 @@ + + + + + + + +Topaz: Buffers + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.2.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 buffer & buf,
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 buffer & source,
buffer & destination )
+
+ +

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..8b6c5caec5 --- /dev/null +++ b/group__tz__gl__ogl2__framebuffer.html @@ -0,0 +1,144 @@ + + + + + + + +Topaz: Framebuffers + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.2.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 = 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..007ee0b519 --- /dev/null +++ b/group__tz__gl__ogl2__image.html @@ -0,0 +1,220 @@ + + + + + + + +Topaz: Images, Samplers and Formats + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.2.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..e6b81b51f6 --- /dev/null +++ b/group__tz__gl__ogl2__shader.html @@ -0,0 +1,190 @@ + + + + + + + +Topaz: Shaders + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.2.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..d1210d5092 --- /dev/null +++ b/group__tz__gl__vk.html @@ -0,0 +1,245 @@ + + + + + + + +Topaz: Vulkan Backend + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.2.0.1 +
+
C++20 Graphics Engine
+
+
+ + + + +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+ +

Documentation for the Vulkan backend, which acts as a large abstraction around Vulkan. +More...

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

+Topics

 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.
 
void tz::gl::vk2::initialise (tz::game_info game_info)
 Initialise the vulkan backend.
 
+void tz::gl::vk2::terminate ()
 Terminate the vulkan backend.
 
const VulkanInstancetz::gl::vk2::get ()
 Retrieve a reference to the current Vulkan Instance.
 
+

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 VulkanInstance & instance)
+
+ +

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..7d64e2f028 --- /dev/null +++ b/group__tz__gl__vk__buffer.html @@ -0,0 +1,196 @@ + + + + + + + +Topaz: Buffers + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.2.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..790c1e42ac --- /dev/null +++ b/group__tz__gl__vk__commands.html @@ -0,0 +1,128 @@ + + + + + + + +Topaz: Command Buffers and Pools + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.2.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..d0e0e756b6 --- /dev/null +++ b/group__tz__gl__vk__descriptors.html @@ -0,0 +1,190 @@ + + + + + + + +Topaz: Descriptor Layouts and Sets + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.2.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...
 
+ + + + +

+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..f311f75685 --- /dev/null +++ b/group__tz__gl__vk__extension.html @@ -0,0 +1,256 @@ + + + + + + + +Topaz: Extensions and Features + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.2.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...
 
enum class  tz::gl::vk2::InstanceExtension { InstanceExtension::DebugMessenger +, Count + }
 Supported Vulkan extension for a VulkanInstance. More...
 
enum class  tz::gl::vk2::DeviceExtension { Swapchain +, ShaderDebugPrint +, Count + }
 Supported Vulkan extension for a LogicalDevice.
 
+

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..5d580331dc --- /dev/null +++ b/group__tz__gl__vk__graphics__pipeline.html @@ -0,0 +1,265 @@ + + + + + + + +Topaz: Graphics Pipeline + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.2.0.1 +
+
C++20 Graphics Engine
+
+
+ + + + +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+ +

Documentation for the graphics pipeline. +More...

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

+Topics

 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..1b758157c0 --- /dev/null +++ b/group__tz__gl__vk__graphics__pipeline__fixed.html @@ -0,0 +1,382 @@ + + + + + + + +Topaz: Fixed Pipeline State Values + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.2.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..c835106dc1 --- /dev/null +++ b/group__tz__gl__vk__graphics__pipeline__render__pass.html @@ -0,0 +1,345 @@ + + + + + + + +Topaz: Render Passes + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.2.0.1 +
+
C++20 Graphics Engine
+
+
+ + + + +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+ +

Documentation for render passes and how they interact with the rendering pipeline. +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..fa8c6cbcd5 --- /dev/null +++ b/group__tz__gl__vk__graphics__pipeline__shader.html @@ -0,0 +1,132 @@ + + + + + + + +Topaz: Shader Programs and Modules + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.2.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..0d68761f1d --- /dev/null +++ b/group__tz__gl__vk__image.html @@ -0,0 +1,502 @@ + + + + + + + +Topaz: Images, Samplers and Formats + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.2.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 
    +
  • Image is suitable as a colour attachment within a Framebuffer.
  • +
+
DepthStencilAttachment 
    +
  • Image is suitable as a depth/stencil attachment within a Framebuffer.
  • +
+
InputAttachment 
    +
  • Image is suitable as an input attachment within a Framebuffer.
  • +
+
+ +
+
+ +

◆ 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..b6462f1fd3 --- /dev/null +++ b/group__tz__gl__vk__presentation.html @@ -0,0 +1,188 @@ + + + + + + + +Topaz: Presentation and Window Surface Interation (WSI) + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.2.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..2831db1e15 --- /dev/null +++ b/group__tz__gl__vk__sync.html @@ -0,0 +1,133 @@ + + + + + + + +Topaz: Synchronisation Primitives + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.2.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..bfeeac9ec4 --- /dev/null +++ b/group__tz__lua__cpp.html @@ -0,0 +1,125 @@ + + + + + + + +Topaz: Lua Integration + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.2.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__ren.html b/group__tz__ren.html new file mode 100644 index 0000000000..398d2b48fc --- /dev/null +++ b/group__tz__ren.html @@ -0,0 +1,127 @@ + + + + + + + +Topaz: Rendering Library + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.2.0.1 +
+
C++20 Graphics Engine
+
+
+ + + + +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+ +
Rendering Library
+
+
+ +

High-level 3D rendering library. +More...

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

+Data Structures

class  tz::ren::animation_renderer
 A superset of mesh_renderer an extension of mesh_renderer. More...
 
class  tz::ren::ihigh_level_renderer
 Interface for a high-level tz::ren renderer class. More...
 
class  tz::ren::mesh_renderer
 A lightweight 3D mesh renderer. More...
 
class  tz::ren::text_renderer
 A 2D text renderer. More...
 
+

Detailed Description

+

High-level 3D rendering library.

+

Built ontop of Graphics Library.

+

The rendering library is mostly comprised of high-level renderer classes.

+
+ + + + diff --git a/group__tz__wsi.html b/group__tz__wsi.html new file mode 100644 index 0000000000..0cad89f4dc --- /dev/null +++ b/group__tz__wsi.html @@ -0,0 +1,125 @@ + + + + + + + +Topaz: Window System Integration + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.2.0.1 +
+
C++20 Graphics Engine
+
+
+ + + + +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+ +
Window System Integration
+
+
+ +

Documentation for functionality related to windowing, peripherals and input. +More...

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

+Topics

 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..60852eba22 --- /dev/null +++ b/group__tz__wsi__keyboard.html @@ -0,0 +1,199 @@ + + + + + + + +Topaz: Keyboard Input + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.2.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_state & state )
+
+ +

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_state & kb,
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..265fb9da36 --- /dev/null +++ b/group__tz__wsi__monitor.html @@ -0,0 +1,144 @@ + + + + + + + +Topaz: Monitors + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.2.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..e563283fa5 --- /dev/null +++ b/group__tz__wsi__mouse.html @@ -0,0 +1,246 @@ + + + + + + + +Topaz: Mouse Input + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.2.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_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).

+
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..794b5abe61 --- /dev/null +++ b/group__tz__wsi__window.html @@ -0,0 +1,260 @@ + + + + + + + +Topaz: Window + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.2.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..2bc2e35ec4 --- /dev/null +++ b/group__tzsl.html @@ -0,0 +1,131 @@ + + + + + + + +Topaz: TZSL API Reference + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.2.0.1 +
+
C++20 Graphics Engine
+
+
+ + + + +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+ +
TZSL API Reference
+
+
+ +

Topaz Shader Language (shaders) +More...

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

+Topics

 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..ba4a9c97cd --- /dev/null +++ b/group__tzsl__atomic.html @@ -0,0 +1,153 @@ + + + + + + + +Topaz: Atomic Operations + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.2.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..aef1954d4b --- /dev/null +++ b/group__tzsl__debug.html @@ -0,0 +1,175 @@ + + + + + + + +Topaz: Debugging + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.2.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..19a369c5a5 --- /dev/null +++ b/group__tzsl__math.html @@ -0,0 +1,577 @@ + + + + + + + +Topaz: Mathematical Operations + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.2.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..de8b47fb17 --- /dev/null +++ b/group__tzsl__matrix.html @@ -0,0 +1,157 @@ + + + + + + + +Topaz: Matrix Operations + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.2.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..364cb08304 --- /dev/null +++ b/group__tzsl__mesh.html @@ -0,0 +1,133 @@ + + + + + + + +Topaz: Precomputed Meshes + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.2.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..7bd6765078 --- /dev/null +++ b/group__tzsl__noise.html @@ -0,0 +1,168 @@ + + + + + + + +Topaz: Noise Functions + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.2.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..2f14c7f15f --- /dev/null +++ b/handle_8hpp_source.html @@ -0,0 +1,167 @@ + + + + + + + +Topaz: src/tz/core/data/handle.hpp Source File + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.2.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..e715367a90 --- /dev/null +++ b/image__view_8hpp_source.html @@ -0,0 +1,166 @@ + + + + + + + +Topaz: src/tz/gl/impl/vulkan/detail/image_view.hpp Source File + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.2.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_2concurrentqueue__blocking_2job_8hpp_source.html b/impl_2concurrentqueue__blocking_2job_8hpp_source.html new file mode 100644 index 0000000000..10a505368f --- /dev/null +++ b/impl_2concurrentqueue__blocking_2job_8hpp_source.html @@ -0,0 +1,191 @@ + + + + + + + +Topaz: src/tz/core/job/impl/concurrentqueue_blocking/job.hpp Source File + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.2.0.1 +
+
C++20 Graphics Engine
+
+
+ + + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+
job.hpp
+
+
+
1#ifndef TZ_JOB_IMPL_CONCURRENTQUEUE_BLOCKING_JOB_HPP
+
2#define TZ_JOB_IMPL_CONCURRENTQUEUE_BLOCKING_JOB_HPP
+
3#include "tz/core/job/api/job.hpp"
+
4#include "blockingconcurrentqueue.h"
+
5#include <deque>
+
6#include <mutex>
+
7#include <condition_variable>
+
8
+
9namespace tz::impl
+
10{
+
+
11 struct concurrentqueue_traits : public moodycamel::ConcurrentQueueDefaultTraits
+
12 {
+
13 // here im trying to trade some ram for less churn on enqueue - too often enqueue takes a really long time (like over 1ms)
+
14 static const size_t BLOCK_SIZE = 512;
+
15 // given we expect a not-so-volatile number of new jobs to be enqueued every frame, recycling hopefully makes nice gains.
+
16 static const bool RECYCLE_ALLOCATED_BLOCKS = true;
+
17 };
+
+
+ +
19 {
+
20 public:
+ + +
23
+
24 virtual job_handle execute(job_t job, execution_info einfo = {}) override;
+
25 virtual void block(job_handle j) const override;
+
26 virtual bool complete(job_handle j) const override;
+
27 virtual bool any_work_remaining() const override;
+
28 virtual void block_all() const override;
+
29 void new_frame(); // ???
+
30 virtual std::size_t size() const override;
+
31 virtual std::size_t worker_count() const override;
+
32 virtual std::vector<worker_id_t> get_worker_ids() const override;
+
33 unsigned int jobs_started_this_frame() const;
+
34 private:
+
35 struct job_info_t
+
36 {
+
37 job_t func;
+
38 std::size_t job_id;
+
39 std::optional<worker_id_t> maybe_affinity = std::nullopt;
+
40 };
+
41
+
42 struct worker_t
+
43 {
+
44 std::thread thread;
+
45 std::size_t local_tid;
+
46 std::atomic<std::size_t> currently_running_job_id = std::numeric_limits<std::size_t>::max();
+
47 moodycamel::ConcurrentQueue<job_info_t> affine_jobs;
+
48 std::optional<moodycamel::ConsumerToken> ctok = std::nullopt;
+
49 std::vector<std::size_t> completed_job_cache;
+
50 std::optional<std::size_t> get_running_job() const;
+
51 void clear_job_cache(job_system_blockingcurrentqueue& js);
+
52 };
+
53 friend struct worker_t;
+
54
+
55 void worker_thread_entrypoint(std::size_t local_tid);
+
56
+
57 std::deque<worker_t> thread_pool;
+
58 moodycamel::BlockingConcurrentQueue<job_info_t, concurrentqueue_traits> global_job_queue;
+
59 moodycamel::ProducerToken ptok;
+
60 mutable std::mutex done_job_list_mutex;
+
61 std::vector<std::size_t> running_job_ids = {};
+
62 mutable std::mutex wake_me_on_a_job_done_mutex;
+
63 mutable std::condition_variable wake_me_on_a_job_done;
+
64 std::atomic<std::uint64_t> lifetime_jobs_created = 0u;
+
65 std::atomic<std::size_t> jobs_created_this_frame = 0u;
+
66 std::atomic<bool> close_requested = false;
+
67 };
+
+
68}
+
69
+
70#endif // TZ_JOB_IMPL_CONCURRENTQUEUE_BLOCKING_JOB_HPP
+
Definition job.hpp:44
+ +
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_2linux_2keyboard_8hpp_source.html b/impl_2linux_2keyboard_8hpp_source.html new file mode 100644 index 0000000000..7f78bf9718 --- /dev/null +++ b/impl_2linux_2keyboard_8hpp_source.html @@ -0,0 +1,124 @@ + + + + + + + +Topaz: src/tz/wsi/impl/linux/keyboard.hpp Source File + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.2.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..38b477fd95 --- /dev/null +++ b/impl_2linux_2monitor_8hpp_source.html @@ -0,0 +1,124 @@ + + + + + + + +Topaz: src/tz/wsi/impl/linux/monitor.hpp Source File + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.2.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..c03fe234f6 --- /dev/null +++ b/impl_2linux_2window_8hpp_source.html @@ -0,0 +1,179 @@ + + + + + + + +Topaz: src/tz/wsi/impl/linux/window.hpp Source File + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.2.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..10c247b573 --- /dev/null +++ b/impl_2opengl_2component_8hpp_source.html @@ -0,0 +1,181 @@ + + + + + + + +Topaz: src/tz/gl/impl/opengl/component.hpp Source File + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.2.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:14
+
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..015b33aba4 --- /dev/null +++ b/impl_2opengl_2detail_2draw_8hpp_source.html @@ -0,0 +1,144 @@ + + + + + + + +Topaz: src/tz/gl/impl/opengl/detail/draw.hpp Source File + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.2.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..c2350949b4 --- /dev/null +++ b/impl_2opengl_2detail_2image__format_8hpp_source.html @@ -0,0 +1,258 @@ + + + + + + + +Topaz: src/tz/gl/impl/opengl/detail/image_format.hpp Source File + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.2.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#if TZ_OGL
+
4#include "tz/gl/impl/opengl/detail/tz_opengl.hpp"
+
5#include <array>
+
6
+
7namespace tz::gl::ogl2
+
8{
+
+ +
14 {
+
15 GLenum format;
+
16 GLenum internal_format;
+
17 GLenum type;
+
18 };
+
+
19
+
20 enum class image_format
+
21 {
+ +
23 R8,
+
24 R8_UNorm = R8,
+
25 R8_SNorm,
+
26 R8_UInt,
+
27 R8_SInt,
+
28 R8_sRGB,
+
29
+
30 R16,
+
31 R16_UNorm = R16,
+
32 R16_SNorm,
+
33 R16_UInt,
+
34 R16_SInt,
+
35
+
36 RG16,
+
37 RG16_UNorm = RG16,
+
38 RG16_SNorm,
+
39 RG16_UInt,
+
40 RG16_SInt,
+
41 RG16_sRGB,
+
42
+
43 RG32,
+
44 RG32_UNorm = RG32,
+
45 RG32_SNorm,
+
46 RG32_UInt,
+
47 RG32_SInt,
+
48
+
49 RGB24,
+
50 RGB24_UNorm = RGB24,
+
51 RGB24_SNorm,
+
52 RGB24_UInt,
+
53 RGB24_SInt,
+
54 RGB24_sRGB,
+
55
+
56 BGR24,
+
57 BGR24_UNorm = BGR24,
+
58 BGR24_SNorm,
+
59 BGR24_UInt,
+
60 BGR24_SInt,
+
61 BGR24_sRGB,
+
62
+
63 RGBA32,
+
64 RGBA32_UNorm = RGBA32,
+
65 RGBA32_SNorm,
+
66 RGBA32_UInt,
+
67 RGBA32_SInt,
+
68 RGBA32_sRGB,
+
69
+
70 BGRA32,
+
71 BGRA32_UNorm = BGRA32,
+
72 BGRA32_SNorm,
+
73 BGRA32_UInt,
+
74 BGRA32_SInt,
+
75 BGRA32_sRGB,
+
76
+
77 RGBA64_SFloat,
+
78 RGBA128_SFloat,
+
79
+
80 Depth16_UNorm,
+
81 Depth32_UNorm,
+
82 Count
+
83 };
+
84
+
85 constexpr std::array<FormatData, static_cast<int>(image_format::Count)> internal_fmts
+
86 {{
+
87 /* Undefined */ {.format = GL_INVALID_VALUE, .internal_format = GL_INVALID_VALUE, .type = GL_INVALID_VALUE},
+
88 /* R8, R8_UNorm */ {.format = GL_RED, .internal_format = GL_R8, .type = GL_UNSIGNED_BYTE},
+
89 /* R8_SNorm */ {.format = GL_RED, .internal_format = GL_R8_SNORM, .type = GL_BYTE},
+
90 /* R8_UInt */ {.format = GL_RED, .internal_format = GL_R8UI, .type = GL_UNSIGNED_INT},
+
91 /* R8_SInt */ {.format = GL_RED, .internal_format = GL_R8I, .type = GL_INT},
+
92 /* R8_sRGB */ {.format = GL_RED, .internal_format = GL_SRGB8, .type = GL_INT},
+
93
+
94 /* R16, R16_UNorm */ {.format = GL_RED, .internal_format = GL_R16, .type = GL_UNSIGNED_BYTE},
+
95 /* R16_SNorm */ {.format = GL_RED, .internal_format = GL_R16_SNORM, .type = GL_BYTE},
+
96 /* R16_UInt */ {.format = GL_RED, .internal_format = GL_R16UI, .type = GL_UNSIGNED_INT},
+
97 /* R16_SInt */ {.format = GL_RED, .internal_format = GL_R16I, .type = GL_INT},
+
98
+
99 /* RG16, RG16_UNorm */ {.format = GL_RG, .internal_format = GL_RG8, .type = GL_UNSIGNED_BYTE},
+
100 /* RG16_SNorm */ {.format = GL_RG, .internal_format = GL_RG8_SNORM, .type = GL_BYTE},
+
101 /* RG16_UInt */ {.format = GL_RG, .internal_format = GL_RG8UI, .type = GL_UNSIGNED_INT},
+
102 /* RG16_SInt */ {.format = GL_RG, .internal_format = GL_RG8I, .type = GL_INT},
+
103 /* RG16_sRGB */ {.format = GL_RG, .internal_format = GL_SRGB8, .type = GL_INT},
+
104
+
105 /* RG32, RG32_UNorm */ {.format = GL_RG, .internal_format = GL_RG16, .type = GL_UNSIGNED_BYTE},
+
106 /* RG32_SNorm */ {.format = GL_RG, .internal_format = GL_RG16_SNORM, .type = GL_BYTE},
+
107 /* RG32_UInt */ {.format = GL_RG, .internal_format = GL_RG16UI, .type = GL_UNSIGNED_INT},
+
108 /* RG32_SInt */ {.format = GL_RG, .internal_format = GL_RG16I, .type = GL_INT},
+
109
+
110 /* RGB24, RGB24_UNorm */ {.format = GL_RGB, .internal_format = GL_RGB8, .type = GL_UNSIGNED_BYTE},
+
111 /* RGB24_SNorm */ {.format = GL_RGB, .internal_format = GL_RGB8_SNORM, .type = GL_BYTE},
+
112 /* RGB24_UInt */ {.format = GL_RGB, .internal_format = GL_RGB8UI, .type = GL_UNSIGNED_INT},
+
113 /* RGB24_SInt */ {.format = GL_RGB, .internal_format = GL_RGB8I, .type = GL_UNSIGNED_INT},
+
114 /* RGB24_sRGB */ {.format = GL_RGB, .internal_format = GL_SRGB8, .type = GL_INT},
+
115
+
116 /* BGR24, BGR24_UNorm */ {.format = GL_BGR, .internal_format = GL_RGB8, .type = GL_UNSIGNED_BYTE},
+
117 /* BGR24_SNorm */ {.format = GL_BGR, .internal_format = GL_RGB8_SNORM, .type = GL_BYTE},
+
118 /* BGR24_UInt */ {.format = GL_BGR, .internal_format = GL_RGB8UI, .type = GL_UNSIGNED_INT},
+
119 /* BGR24_SInt */ {.format = GL_BGR, .internal_format = GL_RGB8I, .type = GL_INT},
+
120 /* BGR24_sRGB */ {.format = GL_BGR, .internal_format = GL_SRGB8, .type = GL_INT},
+
121
+
122 /* RGBA32, RGBA32_UNorm */ {.format = GL_RGBA, .internal_format = GL_RGBA8, .type = GL_UNSIGNED_BYTE},
+
123 /* RGBA32_SNorm */ {.format = GL_RGBA, .internal_format = GL_RGBA8_SNORM, .type = GL_BYTE},
+
124 /* RGBA32_UInt */ {.format = GL_RGBA, .internal_format = GL_RGBA8UI, .type = GL_UNSIGNED_INT},
+
125 /* RGBA32_SInt */ {.format = GL_RGBA, .internal_format = GL_RGBA8I, .type = GL_INT},
+
126 /* RGBA32_sRGB */ {.format = GL_RGBA, .internal_format = GL_SRGB8_ALPHA8, .type = GL_INT},
+
127
+
128 /* BGRA32, BGRA32_UNorm */ {.format = GL_BGRA, .internal_format = GL_RGBA8, .type = GL_UNSIGNED_BYTE},
+
129 /* BGRA32_SNorm */ {.format = GL_BGRA, .internal_format = GL_RGBA8_SNORM, .type = GL_BYTE},
+
130 /* BGRA32_UInt */ {.format = GL_BGRA, .internal_format = GL_RGBA8UI, .type = GL_UNSIGNED_INT},
+
131 /* BGRA32_SInt */ {.format = GL_BGRA, .internal_format = GL_RGBA8I, .type = GL_INT},
+
132 /* BGRA32_sRGB */ {.format = GL_BGRA, .internal_format = GL_SRGB8_ALPHA8, .type = GL_INT},
+
133 /* RGBA64_SFloat */{.format = GL_RGBA, .internal_format = GL_RGBA16F, .type = GL_FLOAT},
+
134 /* RGBA128_SFloat */{.format = GL_RGBA, .internal_format = GL_RGBA32F, .type = GL_FLOAT},
+
135
+
136 /* Depth16_UNorm */ {.format = GL_DEPTH_COMPONENT, .internal_format = GL_DEPTH_COMPONENT16, .type = GL_UNSIGNED_BYTE},
+
137 /* Depth32_UNorm */ {.format = GL_DEPTH_COMPONENT, .internal_format = GL_DEPTH_COMPONENT32, .type = GL_UNSIGNED_BYTE}
+
138 }};
+
139
+
140 constexpr FormatData get_format_data(image_format format)
+
141 {
+
142 return internal_fmts[static_cast<int>(format)];
+
143 }
+
144}
+
145
+
146#endif // TZ_OGL
+
147#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:14
+
+ + + + diff --git a/impl_2opengl_2detail_2shader_8hpp_source.html b/impl_2opengl_2detail_2shader_8hpp_source.html new file mode 100644 index 0000000000..f97ea1d48b --- /dev/null +++ b/impl_2opengl_2detail_2shader_8hpp_source.html @@ -0,0 +1,238 @@ + + + + + + + +Topaz: src/tz/gl/impl/opengl/detail/shader.hpp Source File + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.2.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..e89f92e99b --- /dev/null +++ b/impl_2opengl_2device_8hpp_source.html @@ -0,0 +1,172 @@ + + + + + + + +Topaz: src/tz/gl/impl/opengl/device.hpp Source File + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.2.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 bool is_vsync_enabled() const;
+
37 void set_vsync_enabled(bool vsync_enabled);
+
38 void dbgui();
+
39 void begin_frame();
+
40 void end_frame();
+
41 void full_wait() const;
+
42 void frame_wait() const;
+
43 };
+
+ +
45}
+
46
+
47#endif // TZ_OGL
+
48#endif // TOPAZ_GL2_IMPL_FRONTEND_OGL2_DEVICE_HPP
+
Device API.
Definition device.hpp:42
+
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:139
+
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
+
Represents a render graph.
Definition schedule.hpp:35
+
+ + + + diff --git a/impl_2opengl_2renderer_8hpp_source.html b/impl_2opengl_2renderer_8hpp_source.html new file mode 100644 index 0000000000..e220bdf7a5 --- /dev/null +++ b/impl_2opengl_2renderer_8hpp_source.html @@ -0,0 +1,276 @@ + + + + + + + +Topaz: src/tz/gl/impl/opengl/renderer.hpp Source File + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.2.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/core/data/maybe_owned_list.hpp"
+
5#include "tz/gl/api/renderer.hpp"
+
6#include "tz/gl/api/component.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 tz::maybe_owned_list<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
+
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:443
+
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:222
+
unsigned int resource_count_of(resource_type type) const
Retrieve the number of resources stored of the given type.
Definition renderer.cpp:156
+
void bind_buffers(const render_state &state)
Bind all buffer resources to their expected resource ids.
Definition renderer.cpp:192
+
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:138
+
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:323
+
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:38
+
Helper struct which the user can use to specify which inputs, resources they want and where they want...
Definition renderer.hpp:139
+
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:737
+
void render()
Invoke the renderer, emitting a single draw call of a set number of triangles.
Definition renderer.cpp:570
+
const icomponent * get_component(resource_handle handle) const
Retrieve the component sourcing the resource (read-only) corresponding to the given handle.
Definition renderer.cpp:540
+
unsigned int resource_count() const
Retrieve the number of resources.
Definition renderer.cpp:525
+
const renderer_options & get_options() const
Retrieve options denoting extra features used by the renderer.
Definition renderer.cpp:560
+
const iresource * get_resource(resource_handle handle) const
Retrieve the resource (read-only) corresponding to the given handle.
Definition renderer.cpp:530
+
const render_state & get_state() const
Retrieve current state of the renderer.
Definition renderer.cpp:565
+
Definition shader.hpp:26
+
Definition handle.hpp:17
+
Definition maybe_owned_list.hpp:13
+
Named requirement for a renderer.
Definition renderer.hpp:374
+
std::vector< renderer_edit::variant > renderer_edit_request
Represents an edit to an existing renderer.
Definition renderer.hpp:331
+
tz::enum_field< renderer_option > renderer_options
Represents a collection of renderer options.
Definition renderer.hpp:132
+
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:95
+
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..f63553e8f0 --- /dev/null +++ b/impl_2threadpool__lfq_2job_8hpp_source.html @@ -0,0 +1,177 @@ + + + + + + + +Topaz: src/tz/core/job/impl/threadpool_lfq/job.hpp Source File + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.2.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..282a09f17d --- /dev/null +++ b/impl_2vulkan_2component_8hpp_source.html @@ -0,0 +1,182 @@ + + + + + + + +Topaz: src/tz/gl/impl/vulkan/component.hpp Source File + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.2.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:14
+
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..fe852edd87 --- /dev/null +++ b/impl_2vulkan_2detail_2draw_8hpp_source.html @@ -0,0 +1,143 @@ + + + + + + + +Topaz: src/tz/gl/impl/vulkan/detail/draw.hpp Source File + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.2.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#if TZ_VULKAN
+
4#include "tz/gl/impl/vulkan/detail/tz_vulkan.hpp"
+
5
+
6namespace tz::gl::vk2
+
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 };
+
+
+ +
16 {
+
17 std::uint32_t count;
+
18 std::uint32_t instance_count = 1;
+
19 std::uint32_t first_index;
+
20 std::int32_t base_vertex = 0;
+
21 std::uint32_t base_instance = 0;
+
22 };
+
+
23}
+
24
+
25#endif // TZ_VULKAN
+
26#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..0f1b2c1d18 --- /dev/null +++ b/impl_2vulkan_2detail_2image__format_8hpp_source.html @@ -0,0 +1,276 @@ + + + + + + + +Topaz: src/tz/gl/impl/vulkan/detail/image_format.hpp Source File + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.2.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..d300efca00 --- /dev/null +++ b/impl_2vulkan_2detail_2shader_8hpp_source.html @@ -0,0 +1,229 @@ + + + + + + + +Topaz: src/tz/gl/impl/vulkan/detail/shader.hpp Source File + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.2.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:76
+
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..2a7fcdb472 --- /dev/null +++ b/impl_2windows_2keyboard_8hpp_source.html @@ -0,0 +1,130 @@ + + + + + + + +Topaz: src/tz/wsi/impl/windows/keyboard.hpp Source File + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.2.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..6fe367e1e7 --- /dev/null +++ b/impl_2windows_2monitor_8hpp_source.html @@ -0,0 +1,123 @@ + + + + + + + +Topaz: src/tz/wsi/impl/windows/monitor.hpp Source File + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.2.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..c2fccd06af --- /dev/null +++ b/impl_2windows_2window_8hpp_source.html @@ -0,0 +1,185 @@ + + + + + + + +Topaz: src/tz/wsi/impl/windows/window.hpp Source File + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.2.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..18ee812934 --- /dev/null +++ b/imported__shaders_8hpp_source.html @@ -0,0 +1,131 @@ + + + + + + + +Topaz: src/tz/gl/imported_shaders.hpp Source File + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.2.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..86678a24ec --- /dev/null +++ b/imported__text_8hpp_source.html @@ -0,0 +1,125 @@ + + + + + + + +Topaz: src/tz/core/imported_text.hpp Source File + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.2.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..f1a1c5a7a3 --- /dev/null +++ b/index.html @@ -0,0 +1,164 @@ + + + + + + + +Topaz: Home + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.2.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:139
+
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:82
+
void end_frame()
End the current frame.
Definition tz.cpp:116
+
void begin_frame()
Begin a new frame.
Definition tz.cpp:104
+
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:10
+
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:105
+
Graphics graphics
Graphics state.
Definition renderer.hpp:121
+
+ +
+ + + + diff --git a/io_2image_8hpp_source.html b/io_2image_8hpp_source.html new file mode 100644 index 0000000000..8b21795548 --- /dev/null +++ b/io_2image_8hpp_source.html @@ -0,0 +1,135 @@ + + + + + + + +Topaz: src/tz/io/image.hpp Source File + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.2.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 static image load_from_file(std::string_view path);
+
18 };
+
+
19}
+
20
+
21#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..720eb3f954 --- /dev/null +++ b/job_8hpp_source.html @@ -0,0 +1,135 @@ + + + + + + + +Topaz: src/tz/core/job/job.hpp Source File + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.2.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#include "tz/core/job/impl/concurrentqueue_blocking/job.hpp"
+
7#undef assert
+
8
+
9namespace tz
+
10{
+ +
16
+
17 namespace detail
+
18 {
+
19 void job_system_init();
+
20 void job_system_term();
+
21 }
+
22
+
27 job_system_t& job_system();
+
28}
+
29
+
30#endif // TZ_JOB_JOB_HPP
+ +
tz::impl::job_system_blockingcurrentqueue job_system_t
Underlying job system.
Definition job.hpp:15
+
+ + + + 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..053f15cada --- /dev/null +++ b/keyboard_8hpp_source.html @@ -0,0 +1,128 @@ + + + + + + + +Topaz: src/tz/wsi/keyboard.hpp Source File + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.2.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..e2de7040c6 --- /dev/null +++ b/keyboard_8inl_source.html @@ -0,0 +1,375 @@ + + + + + + + +Topaz: src/tz/wsi/impl/windows/keyboard.inl Source File + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.2.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..732bf48188 --- /dev/null +++ b/linear_8hpp_source.html @@ -0,0 +1,145 @@ + + + + + + + +Topaz: src/tz/core/memory/allocators/linear.hpp Source File + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.2.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:81
+
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..d755e3a5b1 --- /dev/null +++ b/logical__device_8hpp_source.html @@ -0,0 +1,245 @@ + + + + + + + +Topaz: src/tz/gl/impl/vulkan/detail/logical_device.hpp Source File + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.2.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:76
+
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_2api_8hpp_source.html b/lua_2api_8hpp_source.html new file mode 100644 index 0000000000..8cc19a801c --- /dev/null +++ b/lua_2api_8hpp_source.html @@ -0,0 +1,226 @@ + + + + + + + +Topaz: src/tz/lua/api.hpp Source File + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.2.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#include "tz/core/algorithms/static.hpp"
+
6
+
8#define LUA_BEGIN(name) int luafn_##name(void* s){tz::lua::state state{s};
+
9// end implementation of a new free function.
+
10#define LUA_END }
+
11// register a previously-defined lua function for all thread-local lua states.
+
12#define LUA_REGISTER_ALL(name) tz::lua::for_all_states([](tz::lua::state& s){s.assign_func(#name, luafn_##name);});
+
13// register a previously-defined lua function for the current lua-state (the one on this thread)
+
14#define LUA_REGISTER_ONE(name, state) s.assign_func(#name, luafn_##name)
+
15// retrieve the name of the lua-struct harness for a given name. you probably don't care about this.
+
16#define LUA_FN_NAME(name) luafn_##name
+
17
+
18// namespaces (i.e libs)
+
19// begin a new namespace
+
20#define LUA_NAMESPACE_BEGIN(name) struct luans_##name { static constexpr tz::lua::impl::lua_register registers[] = {
+
21// begin implementation of a new namespace function
+
22#define LUA_NAMESPACE_FUNC_BEGIN(name) {.namestr = #name, .fnptr = [](void* s)->int{tz::lua::state state{s};
+
23// end implementation of a new namespace function
+
24#define LUA_NAMESPACE_FUNC_END }},
+
25// end the current namespace.
+
26#define LUA_NAMESPACE_END };};
+
27// retrive the name of the lua-struct harness for a given namespace. you probably dont care about this.
+
28#define LUA_NAMESPACE_NAME(name) luans_##name
+
29// register a previously-defined lua namespace for all thread-local lua states.
+
30#define LUA_NAMESPACE_REGISTER_ALL(name) tz::lua::for_all_states([](tz::lua::state& s){s.open_lib(#name, tz::lua::impl::lua_registers{luans_##name::registers});});
+
31
+
32// classes (i.e types, object oriented programming)
+
33// lua classes essentially wrap around existing classes. the existing class should have methods that follow the signature `int(tz::lua::state&)`.
+
34// defining a lua class around that existing class allows you to easily expose those methods to be called in lua code.
+
35// begin implementaton of a new class.
+
36#define LUA_CLASS_BEGIN(name) struct luat_##name {
+
37// begin a list of method declarations. you must only call LUA_METHOD from now on, until you call LUA_CLASS_METHODS_END
+
38#define LUA_CLASS_METHODS_BEGIN static constexpr tz::lua::impl::lua_register registers[] = {
+
39// expose a previously-defined method to lua. specifically, classname::methodname, which must have the signature (int(tz::lua::state&)).
+
40// note that the equvalent of `this` is available through `lua_this`
+
41#define LUA_METHOD(classname, methodname) {.namestr = #methodname, .fnptr = [](void* s)->int{tz::lua::state state{s}; auto& lua_this = state.stack_get_userdata<classname>(1); \
+
42 return lua_this.methodname(state);\
+
43 \
+
44}},
+
45// end the list of method declarations. you can only have one list per class.
+
46#define LUA_CLASS_METHODS_END };
+
47// end the implementation of the class.
+
48#define LUA_CLASS_END };
+
49// retrive the name of the lua-struct harness for a given class. you probably dont care about this.
+
50#define LUA_CLASS_NAME(name) luat_##name
+
51// register a previously-defined lua class for all thread-local lua states.
+
52#define LUA_CLASS_REGISTER_ALL(name) tz::lua::for_all_states([](tz::lua::state& s){s.new_type(#name, tz::lua::impl::lua_registers{luat_##name::registers});});
+
53
+
54// helper macro. push a lua-class by value onto the top of the lua stack, ensuring that the metatable madness is all sorted out under-the-hood.
+
55// i know this is pretty ugly, but trust me, its less ugly than doing the metatable bollocks.
+
56#define LUA_CLASS_PUSH(state, class_name, value) state.stack_push_userdata<class_name>(value); state.attach_to_top_userdata(#class_name, LUA_CLASS_NAME(class_name)::registers);
+
57
+
58namespace tz::lua
+
59{
+
60 void api_initialise(state& s);
+
61 template<typename... Ts>
+
62 std::tuple<Ts...> parse_args(state& s)
+
63 {
+
64 std::tuple<Ts...> ret;
+
65 tz::static_for<0, sizeof...(Ts)>([&ret, &s]([[maybe_unused]] auto i) constexpr
+
66 {
+
67 using T = std::decay_t<decltype(std::get<i.value>(std::declval<std::tuple<Ts...>>()))>;
+
68 auto& v = std::get<i.value>(ret);
+
69 if constexpr(std::is_same_v<T, bool>)
+
70 {
+
71 v = s.stack_get_bool(i.value + 1);
+
72 }
+
73 else if constexpr(std::is_same_v<T, float>)
+
74 {
+
75 v = s.stack_get_float(i.value + 1);
+
76 }
+
77 else if constexpr(std::is_same_v<T, double>)
+
78 {
+
79 v = s.stack_get_double(i.value + 1);
+
80 }
+
81 else if constexpr(std::is_same_v<T, std::int64_t> || std::is_same_v<T, int>)
+
82 {
+
83 v = s.stack_get_int(i.value + 1);
+
84 }
+
85 else if constexpr(std::is_same_v<T, std::uint64_t> || std::is_same_v<T, unsigned int>)
+
86 {
+
87 v = s.stack_get_uint(i.value + 1);
+
88 }
+
89 else if constexpr(std::is_same_v<T, std::string>)
+
90 {
+
91 v = s.stack_get_string(i.value + 1);
+
92 }
+
93 else if constexpr(std::is_same_v<T, tz::lua::nil>)
+
94 {
+
95 // do nothing! its whatever
+
96 }
+
97 else
+
98 {
+
99 static_assert(std::is_void_v<T>, "Unrecognised lua argument type. Is it a supported type?");
+
100 }
+
101 });
+
102 return ret;
+
103 }
+
104}
+
105
+
106// example: define in a TU
+
107//LUA_BEGIN(test_me_please)
+
108// tz::report("test successful!");
+
109// return 0;
+
110//LUA_END
+
111
+
112// usage: somewhere during runtime, invoke:
+
113// LUA_REGISTER_ALL(test_me_please)
+
114// which makes the function resident to all lua states on both the main thread and the job system worker threads.
+
115
+
116#endif // TZ_LUA_API_HPP
+
+ + + + diff --git a/lua_2slab_8hpp_source.html b/lua_2slab_8hpp_source.html new file mode 100644 index 0000000000..c0fc6d090e --- /dev/null +++ b/lua_2slab_8hpp_source.html @@ -0,0 +1,200 @@ + + + + + + + +Topaz: src/tz/lua/slab.hpp Source File + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.2.0.1 +
+
C++20 Graphics Engine
+
+
+ + + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+
slab.hpp
+
+
+
1#ifndef TOPAZ_LUA_SLAB_HPP
+
2#define TOPAZ_LUA_SLAB_HPP
+
3#include <string>
+
4#include <any>
+
5#include <vector>
+
6#include <span>
+
7
+
8namespace tz::lua
+
9{
+
+ +
11 {
+
12 unsigned int context_id;
+
13 long int subject_id;
+
14 unsigned int operation_id;
+
15 std::any value = {};
+
16 };
+
+
17
+ +
19
+
+ +
21 {
+
22 public:
+
23 virtual ~i_slab_processor() = default;
+
24 virtual lua_operation merge(lua_operation lhs, lua_operation rhs) const = 0;
+
25 virtual void process_operation(lua_operation op) = 0;
+
26 virtual std::string describe(const lua_operation& op) const
+
27 {
+
28 (void)op;
+
29 return {};
+
30 }
+
31
+
32 constexpr virtual bool does_anything() const
+
33 {
+
34 return true;
+
35 }
+
36 };
+
+
37
+
+ +
39 {
+
40 virtual lua_operation merge(lua_operation lhs, lua_operation rhs) const override final
+
41 {
+
42 (void)lhs; (void)rhs;
+
43 return lhs;
+
44 }
+
45
+
46 virtual void process_operation(lua_operation op) override final
+
47 {
+
48 (void)op;
+
49 }
+
50
+
51 virtual bool does_anything() const override final
+
52 {
+
53 return false;
+
54 }
+
55 };
+
+
56
+
+
57 class slab
+
58 {
+
59 public:
+
60 slab() = default;
+
61 void clear();
+
62 std::size_t size() const;
+
63 std::span<const lua_operation> data() const;
+
64 void add(lua_operation op, bool is_new = true);
+
65 void add_bulk(std::span<const lua_operation> operations, bool is_new = true);
+
66 private:
+
67 std::vector<lua_operation> operations = {};
+
68 };
+
+
69
+
70 slab& get_slab();
+
71 i_slab_processor& get_slab_processor();
+
72 void install_slab_processor(i_slab_processor& proc);
+
73 std::vector<lua_operation> process_slab();
+
74 void process_all_slabs();
+
75}
+
76
+
77#endif // TOPAZ_LUA_SLAB_HPP
+
Definition slab.hpp:39
+
Definition slab.hpp:21
+
Definition slab.hpp:58
+
Definition slab.hpp:11
+
+ + + + diff --git a/lua_8hpp_source.html b/lua_8hpp_source.html new file mode 100644 index 0000000000..66ec9446b8 --- /dev/null +++ b/lua_8hpp_source.html @@ -0,0 +1,115 @@ + + + + + + + +Topaz: src/tz/lua/lua.hpp Source File + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.2.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..77dd3fb3a1 --- /dev/null +++ b/macros_8hpp_source.html @@ -0,0 +1,112 @@ + + + + + + + +Topaz: src/tz/core/macros.hpp Source File + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.2.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..cce769ae52 --- /dev/null +++ b/malloc_8hpp_source.html @@ -0,0 +1,136 @@ + + + + + + + +Topaz: src/tz/core/memory/allocators/malloc.hpp Source File + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.2.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:81
+
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..70cdd20906 --- /dev/null +++ b/matrix_8hpp_source.html @@ -0,0 +1,206 @@ + + + + + + + +Topaz: src/tz/core/matrix.hpp Source File + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.2.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..fc24ded8b0 --- /dev/null +++ b/matrix_8inl_source.html @@ -0,0 +1,655 @@ + + + + + + + +Topaz: src/tz/core/matrix.inl Source File + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.2.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:144
+
void assert(bool condition, detail::format_string fmt="<No message>", Args &&... args)
Assert on a condition.
Definition debug.inl:35
+
+ + + + diff --git a/matrix__transform_8hpp_source.html b/matrix__transform_8hpp_source.html new file mode 100644 index 0000000000..87cb8f9ac7 --- /dev/null +++ b/matrix__transform_8hpp_source.html @@ -0,0 +1,143 @@ + + + + + + + +Topaz: src/tz/core/matrix_transform.hpp Source File + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.2.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
+
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
+
matrix< float, 4, 4 > mat4
Definition matrix.hpp:208
+
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__list_8hpp_source.html b/maybe__owned__list_8hpp_source.html new file mode 100644 index 0000000000..f086866625 --- /dev/null +++ b/maybe__owned__list_8hpp_source.html @@ -0,0 +1,144 @@ + + + + + + + +Topaz: src/tz/core/data/maybe_owned_list.hpp Source File + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.2.0.1 +
+
C++20 Graphics Engine
+
+
+ + + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+
maybe_owned_list.hpp
+
+
+
1#ifndef TOPAZ_CORE_DATA_MAYBE_OWNED_LIST_HPP
+
2#define TOPAZ_CORE_DATA_MAYBE_OWNED_LIST_HPP
+
3#include "tz/core/types.hpp"
+
4#include "tz/core/data/handle.hpp"
+
5#include "tz/core/memory/maybe_owned_ptr.hpp"
+
6#include <span>
+
7#include <vector>
+
8
+
9namespace tz
+
10{
+
11 template<tz::unique_cloneable_type T>
+
+ +
13 {
+
14 public:
+
15 using handle_t = tz::handle<T>;
+
16 maybe_owned_list(std::span<const T* const> ts = {});
+
17
+
18 unsigned int count() const;
+
19 const T* get(handle_t handle) const;
+
20 T* get(handle_t handle);
+
21 void set(handle_t handle, T* value);
+
22 private:
+
23 std::vector<maybe_owned_ptr<T>> asset_storage;
+
24 };
+
+
25
+
26}
+
27
+
28#include "tz/core/data/maybe_owned_list.inl"
+
29#endif // TOPAZ_CORE_DATA_MAYBE_OWNED_LIST_HPP
+
Definition handle.hpp:17
+
Definition maybe_owned_list.hpp:13
+
+ + + + diff --git a/maybe__owned__list_8inl_source.html b/maybe__owned__list_8inl_source.html new file mode 100644 index 0000000000..4e4e09dded --- /dev/null +++ b/maybe__owned__list_8inl_source.html @@ -0,0 +1,162 @@ + + + + + + + +Topaz: src/tz/core/data/maybe_owned_list.inl Source File + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.2.0.1 +
+
C++20 Graphics Engine
+
+
+ + + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+
maybe_owned_list.inl
+
+
+
1#include "tz/core/debug.hpp"
+
2
+
3namespace tz
+
4{
+
5 template<tz::unique_cloneable_type T>
+
6 maybe_owned_list<T>::maybe_owned_list(std::span<const T* const> ts)
+
7 {
+
8 for(const T* t : ts)
+
9 {
+
10 if(t == nullptr)
+
11 {
+
12 this->asset_storage.push_back(nullptr);
+
13 }
+
14 else
+
15 {
+
16 this->asset_storage.push_back(t->unique_clone());
+
17 }
+
18 }
+
19 }
+
20
+
21 template<tz::unique_cloneable_type T>
+
22 unsigned int maybe_owned_list<T>::count() const
+
23 {
+
24 return this->asset_storage.size();
+
25 }
+
26
+
27 template<tz::unique_cloneable_type T>
+
28 const T* maybe_owned_list<T>::get(handle_t handle) const
+
29 {
+
30 if(handle == tz::nullhand) return nullptr;
+
31 std::size_t handle_val = static_cast<std::size_t>(static_cast<tz::hanval>(handle));
+
32 return this->asset_storage[handle_val].get();
+
33 }
+
34
+
35 template<tz::unique_cloneable_type T>
+
36 T* maybe_owned_list<T>::get(handle_t handle)
+
37 {
+
38 if(handle == tz::nullhand) return nullptr;
+
39 std::size_t handle_val = static_cast<std::size_t>(static_cast<tz::hanval>(handle));
+
40 return this->asset_storage[handle_val].get();
+
41 }
+
42
+
43 template<tz::unique_cloneable_type T>
+
44 void maybe_owned_list<T>::set(handle_t handle, T* value)
+
45 {
+
46 std::size_t handle_val = static_cast<std::size_t>(static_cast<tz::hanval>(handle));
+
47 tz::assert(!this->asset_storage[handle_val].owning(), "maybe_owned_list: Try to set specific asset value, but the asset at that handle is not a reference (it is owned by us)");
+
48 this->asset_storage[handle_val] = value;
+
49 }
+
50}
+
void assert(bool condition, detail::format_string fmt="<No message>", Args &&... args)
Assert on a condition.
Definition debug.inl:35
+
+ + + + diff --git a/maybe__owned__ptr_8hpp_source.html b/maybe__owned__ptr_8hpp_source.html new file mode 100644 index 0000000000..7906276a5a --- /dev/null +++ b/maybe__owned__ptr_8hpp_source.html @@ -0,0 +1,174 @@ + + + + + + + +Topaz: src/tz/core/memory/maybe_owned_ptr.hpp Source File + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.2.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#include <memory>
+
5#include <variant>
+
6#include <concepts>
+
7
+
8namespace tz
+
9{
+
10 template<typename T>
+
+ +
12 {
+
13 public:
+
14 maybe_owned_ptr(std::nullptr_t);
+
15 maybe_owned_ptr(T* ptr);
+
16 maybe_owned_ptr(std::unique_ptr<T> owned);
+
17 template<typename P>
+
18 maybe_owned_ptr(maybe_owned_ptr<P>&& move) requires std::derived_from<P, T>;
+
19
+
20 maybe_owned_ptr(const maybe_owned_ptr<T>& copy) = default;
+
21 maybe_owned_ptr(maybe_owned_ptr<T>&& move) = default;
+
22 maybe_owned_ptr& operator=(const maybe_owned_ptr<T>& rhs) = default;
+
23 maybe_owned_ptr& operator=(maybe_owned_ptr<T>&& rhs) = default;
+
24 maybe_owned_ptr& operator=(std::nullptr_t);
+
25 maybe_owned_ptr& operator=(T* ptr);
+
26 maybe_owned_ptr& operator=(std::unique_ptr<T> ptr);
+
27
+
28 T* get();
+
29 const T* get() const;
+
30 bool owning() const;
+
31 void reset();
+
32 T* release();
+
33 void set_owning(bool should_own);
+
34
+
35 template<typename P>
+
36 P* as() requires std::derived_from<P, T>
+
37 {
+
38 return static_cast<P*>(this->get());
+
39 }
+
40
+
41 template<typename P>
+
42 const P* as() const requires std::derived_from<P, T>
+
43 {
+
44 return static_cast<const P*>(this->get());
+
45 }
+
46
+
47 T* operator->();
+
48 const T* operator->() const;
+
49 bool operator==(const T* t) const;
+
50 private:
+
51 using variant = std::variant<T*, std::unique_ptr<T>>;
+
52 variant ptr;
+
53 };
+
+
54
+
55 template<typename T, typename... Args>
+
56 maybe_owned_ptr<T> make_owned(Args&&... args);
+
57}
+
58
+
59#include "tz/core/memory/maybe_owned_ptr.inl"
+
60#endif // TOPAZ_CORE_MEMORY_MAYBE_OWNED_PTR_HPP
+
Definition maybe_owned_ptr.hpp:12
+
+ + + + diff --git a/maybe__owned__ptr_8inl_source.html b/maybe__owned__ptr_8inl_source.html new file mode 100644 index 0000000000..bfde8b7c32 --- /dev/null +++ b/maybe__owned__ptr_8inl_source.html @@ -0,0 +1,257 @@ + + + + + + + +Topaz: src/tz/core/memory/maybe_owned_ptr.inl Source File + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.2.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..c5ce1fbabb --- /dev/null +++ b/memblk_8hpp_source.html @@ -0,0 +1,133 @@ + + + + + + + +Topaz: src/tz/core/memory/memblk.hpp Source File + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.2.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..d7d6ff41cf --- /dev/null +++ b/mesh_8hpp_source.html @@ -0,0 +1,552 @@ + + + + + + + +Topaz: src/tz/ren/mesh.hpp Source File + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.2.0.1 +
+
C++20 Graphics Engine
+
+
+ + + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+
mesh.hpp
+
+
+
1#ifndef TZ_REN_mesh_renderer_HPP
+
2#define TZ_REN_mesh_renderer_HPP
+
3#include "tz/core/data/free_list.hpp"
+
4#include "tz/core/data/transform_hierarchy.hpp"
+
5#include "tz/gl/resource.hpp"
+
6#include "tz/io/image.hpp"
+
7#include <deque>
+
8
+
9namespace tz::ren
+
10{
+
11 namespace impl
+
12 {
+
13 // represents a single vertex of a mesh_renderer
+
+ +
15 {
+
16 tz::vec3 position;
+
17 float pad0;
+
18 tz::vec2 texcoord;
+
19 float pad1[2];
+
20 tz::vec3 normal;
+
21 float pad2;
+
22 tz::vec3 tangent;
+
23 float pad3;
+
24 tz::vec4ui32 joint_indices;
+
25 tz::vec4 joint_weights;
+
26 };
+
+
27
+
28 // represents a single index of a mesh_renderer
+
29 using mesh_index = std::uint32_t;
+
30
+
31 // a mesh for a mesh_renderer
+
+
32 struct mesh
+
33 {
+
34 std::vector<mesh_vertex> vertices = {};
+
35 std::vector<mesh_index> indices = {};
+
36 };
+
+
37
+
38 // describes the location and dimensions of a mesh within the giant vertex and index buffers.
+
+ +
40 {
+
41 // how far into the vertex buffer does this mesh's vertices live?
+
42 std::uint32_t vertex_offset = 0;
+
43 // how many vertices does this mesh have?
+
44 std::uint32_t vertex_count = 0;
+
45 // how far into the index buffer does this mesh's indices live?
+
46 std::uint32_t index_offset = 0;
+
47 // how many indices does this mesh have?
+
48 std::uint32_t index_count = 0;
+
49
+
50 static mesh_locator null(){return mesh_locator{};}
+
51 bool is_null() const{return *this == mesh_locator{};}
+
52 bool operator==(const mesh_locator& rhs) const = default;
+
53 };
+
+
54
+
55 // this is a component of a mesh_renderer. deals entirely with the vertex/index logic, and nothing else.
+
56 // provide a renderer_info to attach a vertex/index buffer to your renderer.
+
57 // once you create the renderer from that info, you can call these methods with it to request info/do operations.
+
+ +
59 {
+
60 public:
+
61 vertex_wrangler() = default;
+ +
63 using mesh_handle = tz::handle<mesh_locator>;
+
64
+
65 // get how many vertices the vertex buffer can fit in theory.
+
66 std::size_t get_vertex_capacity(tz::gl::renderer_handle rh) const;
+
67 // get how many indices the index buffer can fit in theory.
+
68 std::size_t get_index_capacity(tz::gl::renderer_handle rh) const;
+
69 // calculate how many vertices are actively being used by added meshes.
+
70 std::size_t get_vertex_count() const;
+
71 // calculate how many indices are actively being used by added meshes.
+
72 std::size_t get_index_count() const;
+
73
+
74 // add a mesh. its vertices and indices are added into the buffers, increasing capacity if needed.
+
75 // returns a handle signifying the mesh.
+
76 // worst case - this can be very slow, performing upto 2 renderer edits.
+
77 // best case - this is somewhat slow. it must perform a resource write renderer edit.
+
78 // you should *not* do this very often.
+
79 mesh_handle add_mesh(tz::gl::renderer_handle rh, mesh m);
+
80 const mesh_locator& get_mesh(mesh_handle h) const;
+
81 mesh_handle try_find_mesh_handle(const mesh_locator& loc) const;
+
82 std::size_t get_mesh_count(bool include_free_list = false) const;
+
83 // removes a mesh, freeing up its indices/vertex to be used by someone else.
+
84 // this is always very fast - no data is actually erased, just bookkeeping.
+
85 void remove_mesh(mesh_handle m);
+
86 void dbgui(tz::gl::renderer_handle rh);
+
87 private:
+
88 // return element-offset into vertex buffer that could fit the required vertices, or nullopt if there isn't enough space.
+
89 std::optional<std::uint32_t> try_find_vertex_region(tz::gl::renderer_handle rh, std::size_t vertex_count) const;
+
90 // return element-offset into index buffer that could fit the required indices, or nullopt if there isn't enough space.
+
91 std::optional<std::uint32_t> try_find_index_region(tz::gl::renderer_handle rh, std::size_t index_count) const;
+
92 mesh_locator add_mesh_impl(tz::gl::renderer_handle rh, const mesh& m);
+
93
+
94 static constexpr std::size_t initial_vertex_capacity = 1024u;
+
95 tz::gl::resource_handle vertex_buffer = tz::nullhand;
+
96 tz::gl::resource_handle index_buffer = tz::nullhand;
+
97
+
98 tz::free_list<mesh_locator> mesh_locators = {};
+
99 //std::vector<mesh_locator> mesh_locators = {};
+
100 //std::deque<tz::hanval> mesh_handle_free_list = {};
+
101 int dbgui_mesh_cursor = 0;
+
102 };
+
+
103
+
104 // this is a component of a mesh_renderer. deals with textures only.
+
105 // provide a renderer_info to provide a set of empty image slots to your renderer.
+
106 // once you create the renderer from that info, you can then start assigning them to images.
+
+ +
108 {
+
109 public:
+
110 texture_manager() = default;
+
111 texture_manager(tz::gl::renderer_info& rinfo, std::size_t texture_capacity, tz::gl::resource_flags image_flags = {tz::gl::resource_flag::image_wrap_repeat});
+
112 using texture_handle = tz::handle<tz::io::image>;
+
113
+
114 texture_handle add_texture(tz::gl::renderer_handle rh, const tz::io::image& img);
+
115 void assign_texture(tz::gl::renderer_handle rh, texture_handle h, const tz::io::image& img);
+
116 void dbgui(tz::gl::renderer_handle rh);
+
117 std::size_t get_texture_count() const;
+
118 std::size_t get_texture_capacity() const;
+
119 private:
+
120 texture_handle add_texture_impl(tz::gl::renderer_handle rh, tz::vec2ui dimensions, std::span<const std::byte> imgdata);
+
121 void assign_texture_impl(tz::gl::renderer_handle rh, texture_handle th, tz::vec2ui dimensions, std::span<const std::byte> imgdata);
+
122
+
123 std::vector<tz::gl::resource_handle> images = {};
+
124 std::size_t texture_cursor = 0;
+
125 };
+
+
126
+
127 // this is a component of a mesh_renderer. deals with a compute pre-pass to generate draw commands.
+
128 // this has its own compute pass stored internally. you're gonna want to include this as a member in the mesh renderer and then use its API accordingly.
+
129 // theres alot of methods with overlapping interests.
+
130 // generally, when you wanna add N new objects:
+
131 // just use add_new_draws(N), and
+
132 // then for i=0,N,++ set_mesh_at(object_id, whichever_mesh_locator_you_want)
+
133 // please make sure the mesh_locator maps to something the vertex_wrangler gives you... otherwise shit is bound to get corrupted.
+
+ +
135 {
+
136 public:
+
137 compute_pass();
+
138 tz::gl::renderer_handle get_compute_pass() const;
+
139 // get the number of draws (including empty free-listed draws).
+
140 std::size_t get_draw_count() const;
+
141 // get the maximum number of draws without resizing.
+
142 std::size_t get_draw_capacity() const;
+
143 // change the draw capacity to something new.
+
144 // this is always very slow. 2 renderer edits.
+
145 void set_draw_capacity(std::size_t new_capacity);
+
146 // set the mesh of an existing draw to something else. does not affect draw count. draw_id needs to be less than draw count.
+
147 mesh_locator get_mesh_at(std::size_t draw_id) const;
+
148 void set_mesh_at(std::size_t draw_id, mesh_locator loc);
+
149 bool get_visibility_at(std::size_t draw_id) const;
+
150 void set_visibility_at(std::size_t draw_id, bool visible);
+
151 // add N new draws. increments the draw count N times. if draw capacity is too small, increase it by N or double its capacity, whichever is bigger.
+
152 // mesh at the new draw will be an empty mesh locator. you're free to change it to something else.
+
153 // returns the draw-id of the first new draw.
+
154 // worst case - very slow. needs to do a renderer edit.
+
155 // best case - very fast. just writes into a dynamic buffer resource.
+
156 std::vector<std::size_t> add_new_draws(std::size_t number_of_new_draws);
+
157 void remove_draw(std::size_t draw_id);
+
158
+
159 tz::gl::resource_handle get_draw_indirect_buffer() const;
+
160 std::size_t get_draw_free_list_count() const;
+
161 bool is_in_free_list(std::size_t draw_id) const;
+
162 static constexpr std::size_t initial_max_draw_count = 1024u;
+
163 private:
+
164 // sets the draw count to something new.
+
165 // `new_draw_count` must be less than the current draw capacity, or this will assert.
+
166 // also, the mesh locators of the new draws will be an indeterminate value. you should probably make sure they're empty yourself.
+
167 // if you dont want to deal with this, use `add_new_draws` instead.
+
168 void set_draw_count(std::size_t new_draw_count);
+
169
+
170 tz::gl::resource_handle draw_indirect_buffer = tz::nullhand;
+
171 tz::gl::resource_handle mesh_locator_buffer = tz::nullhand;
+
172 tz::gl::resource_handle draw_visibility_buffer = tz::nullhand;
+
173 tz::gl::renderer_handle compute = tz::nullhand;
+
174 std::deque<std::size_t> draw_id_free_list = {};
+
175 };
+
+
176
+
177 // represents one of the textures bound to an object (drawable)
+
+ +
179 {
+
180 bool is_null() const{return this->texture == tz::nullhand;}
+
181 // colour multiplier on the sampled texel
+
182 tz::vec3 colour_tint = tz::vec3::filled(1.0f);
+
183 // id within the overarching texture resource array to be sampled.
+
184 texture_manager::texture_handle texture = tz::nullhand;
+
185 float texture_scale = 1.0f;
+
186 float pad0[3];
+
187
+
188 bool operator==(const texture_locator& rhs) const = default;
+
189 };
+
+
190
+
+ +
192 {
+
193 constexpr static std::size_t max_bound_textures = 8u;
+
194 tz::mat4 global_transform = tz::mat4::identity();
+
195 tz::mat4 unused;
+
196 tz::vec3 colour_tint = tz::vec3::filled(1.0f);
+
197 float pad0 = 0.0f;
+
198 std::array<texture_locator, max_bound_textures> bound_textures = {};
+
199 tz::vec4ui32 unused2 = {};
+
200 };
+
+
201
+
202 // objects represent a single renderable thing.
+
203 // they are comprised of:
+
204 // a transform (as part of a full transform hierarchy)
+
205 // - this is a part of the object tree.
+
206 // - the global transform of the object based on the hierarchy is computed every frame. cpu-side.
+
207 // a fixed-size array of texture locators. essentially an object can use multiple textures. useful for normal-maps etc...
+
208 // - this also contains a tint.
+
209 // - texture locators are part of the object data.
+
210 // an optional mesh!
+
211 // - the mesh of object X corresponds to the mesh_locator at index X of the mesh_locator_buffer of the compute_pass.
+
212 // - an empty (default) mesh_locator means that the object exists in the hierarchy, but isn't meant to be rendered (e.g bones in a skeletal animation)
+
213
+
214 // this is a component of a mesh_renderer.
+
215 // deals with object storage and how they are rendered.
+
+ +
217 {
+
218 public:
+
219 object_storage() = default;
+ +
221
+
222 using object_handle = tz::handle<object_data>;
+
223 // note: get_object_capacity should always be equal to compute_pass::get_draw_capacity.
+
224 // this is because every object must have a corresponding mesh locator associated with it.
+
225 std::size_t get_object_capacity(tz::gl::renderer_handle rh) const;
+
226 // change the object capacity
+
227 // do this whenever you set_draw_count on the compute pass - these need to be synchronised.
+
228 // note: any new objects resulting from an increase of capacity will be implicitly defaulted.
+
229 void set_object_capacity(tz::gl::renderer_handle rh, std::size_t new_capacity);
+
230 // you can read/write to object data at any time (note: not thread safe).
+
231 std::span<const object_data> get_object_internals(tz::gl::renderer_handle rh) const;
+
232 std::span<object_data> get_object_internals(tz::gl::renderer_handle rh);
+
233 private:
+
234 tz::gl::resource_handle object_buffer = tz::nullhand;
+
235 };
+
+
236
+
237 // this is a component of a mesh_renderer. deals with the main tz::gl::renderer.
+
238 // this should make it easier to maintain and configure.
+
+ +
240 {
+
241 public:
+
242 using mesh_handle = vertex_wrangler::mesh_handle;
+
243 using texture_handle = texture_manager::texture_handle;
+
244 using object_handle = object_storage::object_handle;
+ +
+
247 struct info
+
248 {
+
250 std::string_view custom_vertex_spirv = {};
+
252 std::string_view custom_fragment_spirv = {};
+
254 tz::gl::renderer_options custom_options = {};
+
256 std::size_t texture_capacity = 1024u;
+
258 std::vector<tz::gl::buffer_resource> extra_buffers = {};
+ +
261 };
+
+
262
+
+ +
264 {
+ +
268 mesh_handle mesh = tz::nullhand;
+
270 bool is_visible = true;
+
272 object_handle parent = tz::nullhand;
+
274 std::vector<texture_locator> bound_textures = {};
+
276 tz::vec3 colour_tint = tz::vec3::filled(1.0f);
+
277 };
+
+
278 render_pass(info i);
+
279
+ +
283 void update();
+
284 void dbgui_mesh();
+
285 void dbgui_texture();
+
286 void dbgui_objects();
+
287
+
293 std::size_t get_mesh_count(bool include_free_list = false) const;
+
300 mesh_handle add_mesh(mesh m);
+
307 const mesh_locator& get_mesh(mesh_handle m) const;
+
316 void remove_mesh(mesh_handle m);
+
317
+
324 texture_handle add_texture(const tz::io::image& img);
+
325
+
331 std::size_t get_object_count(bool include_free_list = false) const;
+
337 object_handle add_object(object_create_info create);
+
343 const object_data& get_object(object_handle oh) const;
+
349 object_data& get_object(object_handle oh);
+
355 void remove_object(object_handle oh);
+
356
+
363 tz::trs object_get_local_transform(object_handle oh) const;
+
370 void object_set_local_transform(object_handle oh, tz::trs trs);
+
377 tz::trs object_get_global_transform(object_handle oh) const;
+
385 void object_set_global_transform(object_handle oh, tz::trs trs);
+
386
+
387 texture_locator object_get_texture(object_handle oh, std::size_t bound_texture_id) const;
+
388 void object_set_texture(object_handle oh, std::size_t bound_texture_id, texture_locator tloc);
+
389 bool object_get_visible(object_handle oh) const;
+
390 void object_set_visible(object_handle oh, bool visible);
+
391
+ + +
410
+
417 tz::gl::resource_handle get_extra_buffer(std::size_t extra_buffer_id) const;
+
422 std::size_t get_extra_buffer_count() const;
+
423
+
424 tz::trs get_camera_transform() const;
+
425 void set_camera_transform(tz::trs camera_transform);
+
426
+
+ +
428 {
+
429 float aspect_ratio = 1.0f;
+
430 float fov = 1.5701f;
+
431 float near_clip = 0.1f;
+
432 float far_clip = 100.0f;
+
433 };
+
+
+ +
435 {
+
436 float left, right;
+
437 float top, bottom;
+
438 float near_plane, far_plane;
+
439 };
+
+
440
+
441 void camera_perspective(camera_perspective_t persp);
+
442 void camera_orthographic(camera_orthographic_t ortho);
+
443
+
445 tz::gl::renderer_handle get_compute_pass() const;
+
447 tz::gl::renderer_handle get_render_pass() const;
+
448 protected:
+
449 bool object_is_in_free_list(object_handle oh) const;
+
450 private:
+
451 compute_pass compute;
+
452 tz::gl::renderer_handle render = tz::nullhand;
+
453 tz::gl::resource_handle camera_buffer = tz::nullhand;
+
454 tz::gl::resource_handle draw_indirect_ref = tz::nullhand;
+
455 vertex_wrangler vtx = {};
+
456 texture_manager tex = {};
+
457 object_storage obj = {};
+ +
459 std::optional<std::size_t> extra_buf_hanval_first = std::nullopt;
+
460 std::optional<std::size_t> extra_buf_hanval_last = std::nullopt;
+
461 int dbgui_object_cursor = 0;
+
462 };
+
+
463 }
+
464
+
+ +
490 {
+
491 public:
+ +
493 using mesh = impl::mesh;
+ +
498 mesh_renderer(info i = {});
+
499 void dbgui(bool include_operations = true);
+
500 void dbgui_operations();
+
501 };
+
+
502}
+
503
+
504#endif // TZ_REN_mesh_renderer_HPP
+
Bespoke free-list implementation.
Definition free_list.hpp:121
+
Definition output.hpp:43
+
Helper struct which the user can use to specify which inputs, resources they want and where they want...
Definition renderer.hpp:139
+
Definition handle.hpp:17
+
Definition mesh.hpp:135
+
Definition mesh.hpp:217
+
Definition mesh.hpp:240
+
const mesh_locator & get_mesh(mesh_handle m) const
Retrieve the mesh locator corresponding to an existing mesh.
Definition mesh.cpp:897
+
texture_handle add_texture(const tz::io::image &img)
Add a new texture to the renderer.
Definition mesh.cpp:925
+
tz::trs object_get_local_transform(object_handle oh) const
Get the local transform of a given object.
Definition mesh.cpp:1043
+
void remove_object(object_handle oh)
Remove an object.
Definition mesh.cpp:1019
+
void object_set_global_transform(object_handle oh, tz::trs trs)
Set the global transform of a given object.
Definition mesh.cpp:1077
+
object_handle add_object(object_create_info create)
Add a new object.
Definition mesh.cpp:944
+
tz::trs object_get_global_transform(object_handle oh) const
Get the global transform of a given object.
Definition mesh.cpp:1066
+
void object_set_local_transform(object_handle oh, tz::trs trs)
Set the local transform of a given object.
Definition mesh.cpp:1054
+
mesh_handle add_mesh(mesh m)
Add a new mesh, returning the corresponding handle.
Definition mesh.cpp:889
+
void remove_mesh(mesh_handle m)
Remove a mesh from the renderer.
Definition mesh.cpp:904
+
const object_data & get_object(object_handle oh) const
Retrieve the internal shader data for an object.
Definition mesh.cpp:1001
+
std::size_t get_object_count(bool include_free_list=false) const
Retrieve the number of objects that have been added so far.
Definition mesh.cpp:933
+
void append_to_render_graph()
Add the underlying renderers to the end of the render graph. They will not be reliant on any other re...
Definition mesh.cpp:855
+
tz::gl::renderer_handle get_render_pass() const
Retrieve the renderer handle associated with the mesh renderer's main render pass.
Definition mesh.cpp:1200
+
tz::gl::renderer_handle get_compute_pass() const
Retrieve the renderer handle associated with the compute pre-pass. This pass populates the indirect d...
Definition mesh.cpp:1193
+
void update()
Update the transform hierarchy.
Definition mesh.cpp:869
+
std::size_t get_extra_buffer_count() const
Retrieve the number of extra buffers that were specified when the mesh renderer was created.
Definition mesh.cpp:1150
+
std::size_t get_mesh_count(bool include_free_list=false) const
Retrieve the number of meshes that have been added so far.
Definition mesh.cpp:882
+
const tz::transform_hierarchy< std::uint32_t > & get_hierarchy() const
Retrieve the underlying transform hierarchy.
Definition mesh.cpp:1127
+
tz::gl::resource_handle get_extra_buffer(std::size_t extra_buffer_id) const
Retrieve the resource handle corresponding to an extra buffer that was passed in info during creation...
Definition mesh.cpp:1141
+
Definition mesh.hpp:108
+
Definition mesh.hpp:59
+
A lightweight 3D mesh renderer.
Definition mesh.hpp:490
+
Represents a hierarchy of 3D transformations, with a payload applied.
Definition transform_hierarchy.hpp:35
+
vector< float, 3 > vec3
A vector of three floats.
Definition vector.hpp:217
+
vector< float, 2 > vec2
A vector of two floats.
Definition vector.hpp:215
+
vector< std::uint32_t, 4 > vec4ui32
A vector of four 32-bit unsigned ints.
Definition vector.hpp:262
+
vector< unsigned int, 2 > vec2ui
A vector of two unsigned ints.
Definition vector.hpp:244
+
matrix< float, 4, 4 > mat4
Definition matrix.hpp:208
+
Definition image.hpp:11
+
Definition mesh.hpp:40
+
Definition mesh.hpp:15
+
Definition mesh.hpp:33
+
Definition mesh.hpp:192
+ + +
Creation details for a mesh renderer's render-pass.
Definition mesh.hpp:248
+
std::vector< tz::gl::buffer_resource > extra_buffers
A list of extra buffer resources. These buffers will be resident to both the vertex and fragment shad...
Definition mesh.hpp:258
+
tz::gl::renderer_options custom_options
If you want more fine-grained control over the created graphics renderer pass (such as if you want to...
Definition mesh.hpp:254
+
std::size_t texture_capacity
Maximum number of textures. Note that this capacity cannot be expanded - make sure you never exceed t...
Definition mesh.hpp:256
+
std::string_view custom_fragment_spirv
String representing SPIRV for the fragment shader. If empty, a default fragment shader is used - disp...
Definition mesh.hpp:252
+
tz::gl::ioutput * output
Optional output. Use this if you want to render into a specific render target. If this is nullptr,...
Definition mesh.hpp:260
+
std::string_view custom_vertex_spirv
String representing SPIRV for the vertex shader. If empty, a default vertex shader is used.
Definition mesh.hpp:250
+ +
std::vector< texture_locator > bound_textures
List of all bound textures. Note that you can specify as many as you like, but any locators beyond ob...
Definition mesh.hpp:274
+
object_handle parent
Does this object have a parent? Nullhand if not. Global transform will be computed with respect to th...
Definition mesh.hpp:272
+
tz::vec3 colour_tint
Colour tint of this object. Does not affect children.
Definition mesh.hpp:276
+
tz::trs local_transform
Transform of the object, before parent transformations.
Definition mesh.hpp:266
+
bool is_visible
Set whether the object is initially visible or not.
Definition mesh.hpp:270
+
Definition mesh.hpp:179
+
Definition trs.hpp:8
+
+ + + + diff --git a/messaging_8hpp_source.html b/messaging_8hpp_source.html new file mode 100644 index 0000000000..618628af18 --- /dev/null +++ b/messaging_8hpp_source.html @@ -0,0 +1,207 @@ + + + + + + + +Topaz: src/tz/core/messaging.hpp Source File + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.2.0.1 +
+
C++20 Graphics Engine
+
+
+ + + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+
messaging.hpp
+
+
+
1#ifndef TOPAZ_CORE_MESSAGING_HPP
+
2#define TOPAZ_CORE_MESSAGING_HPP
+
3#include "tz/core/types.hpp"
+
4#include "tz/core/profile.hpp"
+
5#include <vector>
+
6#include <mutex>
+
7#include <ranges>
+
8#include <variant>
+
9
+
10namespace tz
+
11{
+
12 namespace detail
+
13 {
+
14 // base class for a non-thread-safe receiver.
+
15 // lock returns empty lock type (i.e doesnt lock anything)
+
+
16 struct no_lock
+
17 {
+
18 protected:
+
19 using lock_t = std::unique_lock<std::mutex>;
+
20 lock_t lock() const{return {};}
+
21 };
+
+
22
+
23 // base class for a thread-safe receiver.
+
24 // lock returns a unique lock to the internal mutex.
+
+
25 struct with_lock
+
26 {
+
27 protected:
+
28 mutable std::mutex mtx = {};
+
29 using lock_t = std::unique_lock<std::mutex>;
+
30 lock_t lock() const
+
31 {
+
32 TZ_PROFZONE("message receiver - lock", 0xFFCCAACC);
+
33 return lock_t{this->mtx};
+
34 }
+
35 };
+
+
36 }
+
37
+
44 template<tz::message M, bool thread_safe = true>
+
+
45 class message_receiver : protected std::conditional_t<thread_safe, detail::with_lock, detail::no_lock>
+
46 {
+
47 public:
+
49 void send_message(M msg);
+
51 void send_messages(tz::range_of<M> auto range);
+
53 std::size_t message_count() const;
+
54 protected:
+
55 // Processes all messages and then clears the list. Thread-safe.
+
56 virtual void process_messages();
+
58 virtual bool on_send_message(const M& msg) {return true;};
+
61 virtual void process_message(const M& msg) = 0;
+
62 protected:
+
63 using base_t = std::conditional_t<thread_safe, detail::with_lock, detail::no_lock>;
+
64 std::vector<M> messages = {};
+
65 };
+
+
66
+
75 template<tz::message M, bool thread_safe = true>
+
+
76 class message_passer : public message_receiver<M, thread_safe>
+
77 {
+
78 public:
+
80 message_passer() = default;
+ + +
86 virtual void process_messages() override final;
+
88 virtual void process_message(const M& msg) override final;
+
89
+
91 void set_target(message_receiver<M, true>& target);
+
93 void set_target(message_receiver<M, false>& target);
+
95 void clear_target();
+
96 private:
+
97 using base_t = message_receiver<M, thread_safe>::base_t;
+
98 std::variant<message_receiver<M, true>*, message_receiver<M, false>*, std::monostate> target = std::monostate{};
+
99 };
+
+
100}
+
101
+
102#include "tz/core/messaging.inl"
+
103
+
104#endif // TOPAZ_CORE_MESSAGING_HPP
+
Conditionally thread-safe message passer.
Definition messaging.hpp:77
+
message_passer()=default
Create a passer with no target.
+
virtual void process_messages() override final
Redirect all messages to the target.
Definition messaging.inl:73
+
Conditionally thread-safe message receiver.
Definition messaging.hpp:46
+
virtual bool on_send_message(const M &msg)
Invoked when a message is sent. Your override can return false to drop the message....
Definition messaging.hpp:58
+
std::size_t message_count() const
Retrieve the number of messages in the receiver's queue. Conditionally thread-safe.
Definition messaging.inl:37
+
void send_messages(tz::range_of< M > auto range)
Send multiple messages at once. Conditionally thread-safe.
Definition messaging.inl:17
+
void send_message(M msg)
Send a message to the receiver. Conditionally thread-safe.
Definition messaging.inl:4
+
virtual void process_message(const M &msg)=0
Invoked when a message is processed.
+
Definition types.hpp:127
+
Definition messaging.hpp:17
+
Definition messaging.hpp:26
+
+ + + + diff --git a/messaging_8inl_source.html b/messaging_8inl_source.html new file mode 100644 index 0000000000..cbe486c568 --- /dev/null +++ b/messaging_8inl_source.html @@ -0,0 +1,266 @@ + + + + + + + +Topaz: src/tz/core/messaging.inl Source File + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.2.0.1 +
+
C++20 Graphics Engine
+
+
+ + + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+
messaging.inl
+
+
+
1namespace tz
+
2{
+
3 template<tz::message M, bool thread_safe>
+
+ +
5 {
+
6 if(!this->on_send_message(msg))
+
7 {
+
8 return;
+
9 }
+
10
+
11 typename base_t::lock_t lock = base_t::lock();
+
12
+
13 this->messages.push_back(msg);
+
14 }
+
+
15
+
16 template<tz::message M, bool thread_safe>
+
+ +
18 {
+
19 std::vector<M> non_dropped_messages;
+
20 non_dropped_messages.reserve(std::ranges::size(range));
+
21 for(const M& msg : range)
+
22 {
+
23 if(this->on_send_message(msg))
+
24 {
+
25 non_dropped_messages.push_back(msg);
+
26 }
+
27 }
+
28 if(non_dropped_messages.size())
+
29 {
+
30 typename base_t::lock_t lock = base_t::lock();
+
31 this->messages.insert(this->messages.end(), non_dropped_messages.begin(), non_dropped_messages.end());
+
32 }
+
33 }
+
+
34
+
35
+
36 template<tz::message M, bool thread_safe>
+
+ +
38 {
+
39 typename base_t::lock_t lock = base_t::lock();
+
40 return this->messages.size();
+
41 }
+
+
42
+
43 template<tz::message M, bool thread_safe>
+ +
45 {
+
46 using message_container_t = decltype(this->messages);
+
47 message_container_t msgs = {};
+
48 // lock for as short a time as possible. move messages into our own buffer and then relinquish lock.
+
+
49 {
+
50 typename base_t::lock_t lock = base_t::lock();
+
+
51 msgs = std::move(this->messages);
+
52 tz::assert(this->messages.empty());
+
+
53 //this->messages.clear();
+
54 }
+
55 // iterate and process.
+
56 for(const M& msg : msgs)
+
57 {
+
58 this->process_message(msg);
+
59 }
+
60 }
+
61
+
62 template<tz::message M, bool thread_safe>
+ +
66
+
67 template<tz::message M, bool thread_safe>
+ +
71
+
72 template<tz::message M, bool thread_safe>
+
+ +
74 {
+
75 typename base_t::lock_t lock = base_t::lock();
+
76 if(this->messages.empty())
+
77 {
+
78 return;
+
79 }
+
80 std::visit([this](auto&& receiver_ptr)
+
81 {
+
82 if constexpr(!std::is_same_v<std::decay_t<decltype(receiver_ptr)>, std::monostate>)
+
83 {
+
84 if(receiver_ptr != nullptr)
+
85 {
+
86 receiver_ptr->send_messages(this->messages);
+
87 }
+
88 }
+
89 }, this->target);
+
90 this->messages.clear();
+
91 }
+
+
92
+
93 template<tz::message M, bool thread_safe>
+
+ +
95 {
+
96 std::visit([&msg](auto&& receiver_ptr)
+
97 {
+
98 if constexpr(!std::is_same_v<std::decay_t<decltype(receiver_ptr)>, std::monostate>)
+
99 {
+
100 if(receiver_ptr != nullptr)
+
101 {
+
102 receiver_ptr->send_message(msg);
+
103 }
+
104 }
+
105 }, this->target);
+
106 }
+
+
107
+
108 template<tz::message M, bool thread_safe>
+
+ +
110 {
+
111 this->target = &target;
+
112 }
+
+
113
+
114 template<tz::message M, bool thread_safe>
+
+ +
116 {
+
117 this->target = &target;
+
118 }
+
+
119
+
120 template<tz::message M, bool thread_safe>
+
+ +
122 {
+
123 this->target = std::monostate{};
+
124 }
+
+
125}
+
+
+
+
Conditionally thread-safe message passer.
Definition messaging.hpp:77
+
Conditionally thread-safe message receiver.
Definition messaging.hpp:46
+
Definition types.hpp:127
+
void assert(bool condition, detail::format_string fmt="<No message>", Args &&... args)
Assert on a condition.
Definition debug.inl:35
+
+ + + + 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..b0e021e8b7 --- /dev/null +++ b/monitor_8hpp_source.html @@ -0,0 +1,123 @@ + + + + + + + +Topaz: src/tz/wsi/monitor.hpp Source File + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.2.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..b2c065813d --- /dev/null +++ b/mouse_8hpp_source.html @@ -0,0 +1,123 @@ + + + + + + + +Topaz: src/tz/wsi/mouse.hpp Source File + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.2.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 0000000000000000000000000000000000000000..20c45e7a445d1d8f91c7b21de27e7e4db11a92b9 GIT binary patch literal 5054 zcmcIoS6EZs(hfvIM-Y%+l&*j@A%K8V1q76?^xjFpPy?7KiYUDcBGN?=q=U3b7f=Mm zgdR$0evm-u_1~Uz^fGN}}2oxj(0+ItbGGvUaSjg=LEOr$A?~G|qUwIF_5) zo;p%)actEuIeYaKMP)~rZ-2(-&gZuxZU;Zi)YD?fX3_mR!#C;XHt}6xrC{*h+?3kP z{@zC4zS&KSUvJmOBC{vvcG^}>qBN3(^;7;ApYXX?tqv$hC;xB}IE3WuNR;FMB5)sE z$^B5ReJNmfaw#9?sXaFd8iiUHiY|z@jyQdv>p?|ci;JrKU@BfP(h`lG@+ zP)?09N~euX{DCF}ziG_XcSDUywJ1<&PYTupzl-oL(O z_nLaW{#!amAbHqmBr?~s%7~vu-V)rCSHV01#m|5uGl>@8!*`F&3^y6V zIbjUR_F^R4g&S6vQ9deJ$By_^z$}-r8-bi$(CsZsm5y@~U#C&8Zj{u~z|=MTbJ|5L zH(S(S3ZR@HxAG50j%|=K=Aj>N(8eZUl3SKvQ+sAw34U;vr_AwyznZ zUv(15_&Njx%O~$gUWeNhqQm{RC6-!pYH-OIGWTC+s_6!Te8*`qRDjhc-;vc_otP03 z`p08>ti~@(0*21NB#$p%?1|$8vyttI>Xyk7#%|yZ*x=@$FwA5thpHrC`(LMk=Er(r zr7|=8_`T>YGqlj7x8*jyf9k&_XH`peM}$8rp@h$#{L>9vYQs4>;`^=BFu~GrV*|4@ z<^%hGStU4W$Uit4JA%Db=whZp-Tr2QY^$K58el$4&yRp4{F8g(M0t%6XRCD*iOys; zw%E&N!S6(G@z91Td0Eq+1pHf!L2Af|sCOX3zk#TXj0kbvJ=n~umPd)Lv~6zs~3h3Jv$vg5_y<0V%~ zUjgvgw_xRE7?D_4RfaZ>llNks^oEpx+#>ZbFck{w<-I`&kTAg5zT>&pIdsGGh9SS zcc$I+pQ8)405~S@(#u%d~=r{t?MBnIb?@8bcU5zSRN7Vfy%Do0ex&*OqlvK0?@utTL5OOF&uV_DT6 zqf>_x0ZhUX>vtcKe=y{o({u*xco0r?cdjG*8iXm}W zJgG>!9)qrx)&17j0F-e&sq%lY8+v;kdB^Dk<9e!j?gvffqwP1NgA-zszvmvZN8818 zQ256mzRA3#(zQD!(SM4{0q`Ro#}uLVb?7LF8Y}=w5X;%Xv5#P_+<#Z)TuU!MZMdGU z3f4Prpq!&r*Y$*?r6Xf6^3r3DHck>SO^W{wHf5;w(`3selnIqn$xRq?(K)vo)7jSYioLSiWHQ5=gCyEt5jt5 zel0Cq8#QwW1G?2VcdcJ^ z`N=n3A3t%qLHcIe9BwxIT7V6bfbhGT#u6d^tQq^;CpD%oZpHw|y%}_o(n>TgPyd5{ zc1atC18ul%e_*dyA3MO`9igWClcbVUp3B z)qxtM;04ve#y@VfF<&>Ymgu-9;&iw3t1>|*{(c`bZfQar&gxq^)L%02a!IgV$AV#$ zQArDRK>4)_L->AVijXG;iQyQgXFVO=PrsxWP4T!ZkwP$sqSbD|0{N?OocSxWgrtb( zn&gAd-Y`RzogjrZOP>z*rVr+o?m?CAt6b2U5ZX0`1&FMIt-Mh^_#*%%nuQ@I0bi%OmE_5g8s_fLzU>)^=Sm$23oI8H?Z{RF6 zE#0}lS@-~qGm=%Uindp|awzyMQ=&B0nC>(Lm6$d#9z(V#$;iMFSgPp7`COHE2bW*9 zpnS;otLhER+>%m%agkp%Mhl}R-TC8#NJJODrt2Bdy8ZkI%#oj=^_J6#cle474$T*06I-y#qI;;)l%HjpW-a~=e;kiKCGr2jiWqedsApe+Ql0sWUPw!3 zRxPVt&9fyTQq_fb;|Cz!CQq z^CNGp8wTjT{D5d~?+0m;JjJ-mA8s13XAOGUW$Jw`PsSa~OEtZ@?~A*Y#tXDrz?Oq4 z1+FU4c=vGuz&p##%1Py#(%rsNcL}cTW2W|%cm5LLSh+&~SO&g>(yTTW)9^=18+QvN|M%vXfpZE=OcBJ0hEx`+ow`F9GJEIuM`#rz?|V8b3TROka_s?W_M$3MD*t7ZQrX=N(7MRodrVC&pGg0vujp9gQ0PMktF-vnNW&p zv7W7usO@r88f|O8t{>B$AU4hEH!h98VMtgXw+r9!PDU3}>+~d?KO@wqNs6$^&1&O% zhb9$M=r83_-SXoi+X+OL^>ISOv86OhhBj@LCSPpBvf!M)u->XeQ9Kf81hgCmzZo@i zhZ+LOQD2}9G<3B9*rYY_O-(&9aUc(|xVd|KE!UN_Z7}h?)UEG(!Wu4Z-*2rNDP-VP z1L%PRtl_ulh4=X&M*w zNE>)3B;xJz_X-!7rY>XNn0Q7j&aXQpUxPE0?^}mY3(5pAl1Dz&ZvcfZOk{hNK7}UJ z+Tj)zruHgQqOL3gmVVkXYED7exLtFBB%G0{G&5F*S))YP0^L|ipV%CRO;CfZy?y$| z`5knj9%Z(6w*f93@c=wn7~SQRDRP1%zbsqf+O^Xs2NHg)`ozB3{gXXY5s88qowQ5N z$rle}Mq&!^TOtcKk`-5*i31F48-yo?48AoME$b85O6Nr>5OiZ)uk25j6I`=pdW=wUxv!SkOT^#;Q9-hGufPAHOh>Z zD05H2#@Fsf(2!afUz{;EHJMkcXY3?A%&l!Y_=&AS-*QDA^gx7D~$YJf%KW`3JuvMS1lwHLeHJ(EUF)AK@V zKwgl67c2}^*awEE~ld;O})3$A@Xkwr4i4 zmP*UO89o59;2?==BGD|JjDt|@NcdcOJgvlz4~+6T5 zh0mzyHd5-|grpLI0l$XvFd(e2Y>-u&70uq9pm8Zo>ZRVQE5Df4YQ9u^wuanMows* zHliXT`*Z53vDY0&=tY#o4<&RAD^sM`OD-teily_Uz}^4JdC7nM4CdGLIXI`#i>LUE z4+)$;i6C^W5w1=MHx-vaH(&tC$;in{$=sBZlQoxK5Ow#xfi!5Hg9Wjz Tc{3eY0;I2FtX-+;`1Jn(Y1otr literal 0 HcmV?d00001 diff --git a/namespacetz_1_1atomic.html b/namespacetz_1_1atomic.html new file mode 100644 index 0000000000..8cd9e30006 --- /dev/null +++ b/namespacetz_1_1atomic.html @@ -0,0 +1,149 @@ + + + + + + + +Topaz: tz::atomic Namespace Reference + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.2.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..8f3f724099 --- /dev/null +++ b/namespacetz_1_1debug.html @@ -0,0 +1,123 @@ + + + + + + + +Topaz: tz::debug Namespace Reference + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.2.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..0308036e68 --- /dev/null +++ b/namespacetz_1_1gl_1_1vk2_1_1format__traits.html @@ -0,0 +1,211 @@ + + + + + + + +Topaz: tz::gl::vk2::format_traits Namespace Reference + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.2.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..c02c0bafd8 --- /dev/null +++ b/namespacetz_1_1gl_1_1vk2_1_1present__traits.html @@ -0,0 +1,149 @@ + + + + + + + +Topaz: tz::gl::vk2::present_traits Namespace Reference + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.2.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..514dac95dd --- /dev/null +++ b/namespacetz_1_1math.html @@ -0,0 +1,259 @@ + + + + + + + +Topaz: tz::math Namespace Reference + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.2.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..bde5b7a300 --- /dev/null +++ b/namespacetz_1_1matrix.html @@ -0,0 +1,132 @@ + + + + + + + +Topaz: tz::matrix Namespace Reference + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.2.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..61dd6e4605 --- /dev/null +++ b/namespacetz_1_1mesh.html @@ -0,0 +1,129 @@ + + + + + + + +Topaz: tz::mesh Namespace Reference + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.2.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..f5efa63f05 --- /dev/null +++ b/namespacetz_1_1noise.html @@ -0,0 +1,123 @@ + + + + + + + +Topaz: tz::noise Namespace Reference + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.2.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..46d3a8ac79 --- /dev/null +++ b/namespacetz_1_1wsi_1_1window__flag.html @@ -0,0 +1,112 @@ + + + + + + + +Topaz: tz::wsi::window_flag Namespace Reference + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.2.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 0000000000000000000000000000000000000000..72a58a529ed3a9ed6aa0c51a79cf207e026deee2 GIT binary patch literal 153 zcmeAS@N?(olHy`uVBq!ia0vp^j6iI`!2~2XGqLUlQVE_ejv*C{Z|{2ZH7M}7UYxc) zn!W8uqtnIQ>_z8U literal 0 HcmV?d00001 diff --git a/nav_fd.png b/nav_fd.png new file mode 100644 index 0000000000000000000000000000000000000000..032fbdd4c54f54fa9a2e6423b94ef4b2ebdfaceb GIT binary patch literal 169 zcmeAS@N?(olHy`uVBq!ia0vp^j6iI`!2~2XGqLUlQU#tajv*C{Z|C~*H7f|XvG1G8 zt7aS*L7xwMeS}!z6R#{C5tIw-s~AJ==F^i}x3XyJseHR@yF& zerFf(Zf;Dd{+(0lDIROL@Sj-Ju2JQ8&-n%4%q?>|^bShc&lR?}7HeMo@BDl5N(aHY Uj$gdr1MOz;boFyt=akR{0D!zeaR2}S literal 0 HcmV?d00001 diff --git a/nav_g.png b/nav_g.png new file mode 100644 index 0000000000000000000000000000000000000000..2093a237a94f6c83e19ec6e5fd42f7ddabdafa81 GIT binary patch literal 95 zcmeAS@N?(olHy`uVBq!ia0vp^j6lrB!3HFm1ilyoDK$?Q$B+ufw|5PB85lU25BhtE tr?otc=hd~V+ws&_A@j8Fiv!KF$B+ufw|5=67#uj90@pIL wZ=Q8~_Ju`#59=RjDrmm`tMD@M=!-l18IR?&vFVdQ&MBb@0HFXL6W-eg#Jd_@e6*DPn)w;=|1H}Zvm9l6xXXB%>yL=NQU;mg M>FVdQ&MBb@0Bdt1Qvd(} literal 0 HcmV?d00001 diff --git a/null_8hpp_source.html b/null_8hpp_source.html new file mode 100644 index 0000000000..7415503ded --- /dev/null +++ b/null_8hpp_source.html @@ -0,0 +1,136 @@ + + + + + + + +Topaz: src/tz/core/memory/allocators/null.hpp Source File + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.2.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:81
+
A non-owning, contiguous block of memory.
Definition memblk.hpp:12
+
+ + + + diff --git a/open.png b/open.png new file mode 100644 index 0000000000000000000000000000000000000000..30f75c7efe2dd0c9e956e35b69777a02751f048b GIT binary patch literal 123 zcmeAS@N?(olHy`uVBq!ia0vp^oFL4>1|%O$WD@{VPM$7~Ar*{o?;hlAFyLXmaDC0y znK1_#cQqJWPES%4Uujug^TE?jMft$}Eq^WaR~)%f)vSNs&gek&x%A9X9sM + + + + + + +Topaz: src/tz/gl/impl/opengl/convert.hpp Source File + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.2.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..0cef98d8dc --- /dev/null +++ b/opengl_2convert_8inl_source.html @@ -0,0 +1,213 @@ + + + + + + + +Topaz: src/tz/gl/impl/opengl/convert.inl Source File + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.2.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..1c521357fe --- /dev/null +++ b/opengl_2detail_2buffer_8hpp_source.html @@ -0,0 +1,229 @@ + + + + + + + +Topaz: src/tz/gl/impl/opengl/detail/buffer.hpp Source File + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.2.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_2sampler_8hpp_source.html b/opengl_2detail_2sampler_8hpp_source.html new file mode 100644 index 0000000000..29ba1b8bbf --- /dev/null +++ b/opengl_2detail_2sampler_8hpp_source.html @@ -0,0 +1,164 @@ + + + + + + + +Topaz: src/tz/gl/impl/opengl/detail/sampler.hpp Source File + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.2.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..69f1097247 --- /dev/null +++ b/output_8hpp_source.html @@ -0,0 +1,189 @@ + + + + + + + +Topaz: src/tz/gl/output.hpp Source File + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.2.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:129
+
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..9bdcfecbf6 --- /dev/null +++ b/physical__device_8hpp_source.html @@ -0,0 +1,262 @@ + + + + + + + +Topaz: src/tz/gl/impl/vulkan/detail/hardware/physical_device.hpp Source File + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.2.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..3ef536cb9b --- /dev/null +++ b/pipeline__layout_8hpp_source.html @@ -0,0 +1,161 @@ + + + + + + + +Topaz: src/tz/gl/impl/vulkan/detail/pipeline_layout.hpp Source File + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.2.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..dcc7c7820a --- /dev/null +++ b/polymorphic__list_8hpp_source.html @@ -0,0 +1,180 @@ + + + + + + + +Topaz: src/tz/core/data/polymorphic_list.hpp Source File + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.2.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..378a45d154 --- /dev/null +++ b/polymorphic__list_8inl_source.html @@ -0,0 +1,245 @@ + + + + + + + +Topaz: src/tz/core/data/polymorphic_list.inl Source File + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.2.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:35
+
+ + + + diff --git a/profile_8hpp_source.html b/profile_8hpp_source.html new file mode 100644 index 0000000000..9261d8d3fb --- /dev/null +++ b/profile_8hpp_source.html @@ -0,0 +1,139 @@ + + + + + + + +Topaz: src/tz/core/profile.hpp Source File + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.2.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..8ad12607ed --- /dev/null +++ b/quat_8hpp_source.html @@ -0,0 +1,155 @@ + + + + + + + +Topaz: src/tz/core/data/quat.hpp Source File + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.2.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
+
vector< float, 3 > vec3
A vector of three floats.
Definition vector.hpp:217
+
matrix< float, 4, 4 > mat4
Definition matrix.hpp:208
+
+ + + + diff --git a/queue_8hpp_source.html b/queue_8hpp_source.html new file mode 100644 index 0000000000..814f394d55 --- /dev/null +++ b/queue_8hpp_source.html @@ -0,0 +1,281 @@ + + + + + + + +Topaz: src/tz/gl/impl/vulkan/detail/hardware/queue.hpp Source File + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.2.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:76
+
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:378
+
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:33
+
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/ren_2api_8hpp_source.html b/ren_2api_8hpp_source.html new file mode 100644 index 0000000000..21c08fd256 --- /dev/null +++ b/ren_2api_8hpp_source.html @@ -0,0 +1,128 @@ + + + + + + + +Topaz: src/tz/ren/api.hpp Source File + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.2.0.1 +
+
C++20 Graphics Engine
+
+
+ + + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+
api.hpp
+
+
+
1#ifndef TOPAZ_REN_API_HPP
+
2#define TOPAZ_REN_API_HPP
+
3
+
4namespace tz::ren
+
5{
+
+ +
11 {
+
12 public:
+
16 virtual void append_to_render_graph() = 0;
+
17 };
+
+
18}
+
19
+
20#endif // TOPAZ_REN_API_HPP
+
Interface for a high-level tz::ren renderer class.
Definition api.hpp:11
+
virtual void append_to_render_graph()=0
Append this renderer to the end of the render-graph, without specifying any dependencies.
+
+ + + + diff --git a/renderbuffer_8hpp_source.html b/renderbuffer_8hpp_source.html new file mode 100644 index 0000000000..5c95c00256 --- /dev/null +++ b/renderbuffer_8hpp_source.html @@ -0,0 +1,163 @@ + + + + + + + +Topaz: src/tz/gl/impl/opengl/detail/renderbuffer.hpp Source File + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.2.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..1cc35d2faa --- /dev/null +++ b/renderer2_8hpp_source.html @@ -0,0 +1,402 @@ + + + + + + + +Topaz: src/tz/gl/impl/vulkan/renderer2.hpp Source File + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.2.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/core/data/maybe_owned_list.hpp"
+
5#include "tz/gl/api/renderer.hpp"
+
6#include "tz/core/memory/maybe_owned_ptr.hpp"
+
7#include "tz/gl/impl/vulkan/component.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 // only initialise the static resources specified
+
179 // unless parameter is empty span - in which case initialise *all* static resources.
+
180 void scratch_initialise_static_resources(std::span<const tz::gl::resource_handle> static_resources_to_initialise = {});
+
181 void queue_resource_write(tz::gl::renderer_edit::resource_write rwrite);
+
182 void submit_resource_writes();
+
183 void reset_resource_write_buffers();
+
184 private:
+
185 void record_render_commands(const tz::gl::render_state& state, const tz::gl::renderer_options& options, std::string label);
+
186 void record_compute_commands(const tz::gl::render_state& state, const tz::gl::renderer_options& options, std::string label);
+
187 void allocate_commands(command_type t = command_type::both);
+
188 void free_commands(command_type t = command_type::both);
+
189 void do_static_resource_transfers(std::span<vk2::Buffer> resource_staging_buffers);
+
190
+
191 std::span<vk2::CommandBuffer> work_command_buffers();
+
192 vk2::CommandBuffer& scratch_command_buffer();
+
193 bool render_wait_enabled = false;
+
194 bool no_present_enabled = false;
+
195 bool is_internal = false;
+
196 std::vector<vk2::CommandPool::AllocationResult> command_allocations = {};
+
197 vk2::Fence render_wait_fence = vk2::Fence::null();
+
198 vk2::BinarySemaphore present_sync_semaphore = vk2::BinarySemaphore::null();
+
199 std::vector<vk2::Buffer> pending_resource_write_staging_buffers = {};
+
200 };
+
+
201
+
+ +
203 {
+
204 public:
+ +
206 renderer_vulkan2(const renderer_vulkan2& copy) = delete;
+
207 renderer_vulkan2(renderer_vulkan2&& move) = default;
+ +
209 renderer_vulkan2& operator=(const renderer_vulkan2& copy) = delete;
+
210 renderer_vulkan2& operator=(renderer_vulkan2&& move) = default;
+
211 // NYI
+
212 const tz::gl::renderer_options& get_options() const;
+
213 const tz::gl::render_state& get_state() const;
+
214 void render();
+
215 void edit(tz::gl::renderer_edit_request req);
+
216 void dbgui();
+
217 // NYI
+
218 std::string_view debug_get_name() const;
+
219
+
220 void vk_notify_swapchain_changed();
+
221
+
222 // Satisfies tz::nullable
+
223 static renderer_vulkan2 null();
+
224 bool is_null() const;
+
225 private:
+
226 renderer_vulkan2() = default;
+
227 bool check_and_handle_resize();
+
228 void do_resize();
+
229
+
230 tz::gl::renderer_options options = {};
+
231 tz::gl::render_state state = {};
+
232 tz::vec2ui window_cache_dims = {};
+
233 bool null_flag = true;
+
234 std::string debug_name = "Untitled Renderer";
+
235 };
+
+ +
237}
+
238
+
239#endif // TZ_VULKAN
+
240#endif // TZ_GL_IMPL_VULKAN_RENDERER2_HPP
+
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:139
+
Definition renderer2.hpp:94
+
Definition renderer2.hpp:117
+
Definition renderer2.hpp:38
+
Definition renderer2.hpp:203
+
Definition resource.hpp:14
+
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:378
+
Represents the full duration of the recording process of an existing CommandBuffer.
Definition command.hpp:270
+
Specifies the types of resources that will be accessed by a graphics or compute pipeline via a Shader...
Definition descriptors.hpp:87
+
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:12
+
Definition graphics_pipeline.hpp:124
+
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_list.hpp:13
+
Definition maybe_owned_ptr.hpp:12
+
Named requirement for a renderer.
Definition renderer.hpp:374
+
vector< unsigned int, 2 > vec2ui
A vector of two unsigned ints.
Definition vector.hpp:244
+
std::vector< renderer_edit::variant > renderer_edit_request
Represents an edit to an existing renderer.
Definition renderer.hpp:331
+
tz::enum_field< renderer_option > renderer_options
Represents a collection of renderer options.
Definition renderer.hpp:132
+
Stores renderer-specific state, which drives the behaviour of the rendering.
Definition renderer.hpp:95
+ +
Definition renderer.hpp:271
+ +
Definition renderer2.hpp:24
+
Definition descriptors.hpp:484
+
Definition graphics_pipeline.hpp:146
+
Specifies creation flags for a Sampler.
Definition sampler.hpp:49
+
+ + + + diff --git a/renderer_8dbgui_8hpp_source.html b/renderer_8dbgui_8hpp_source.html new file mode 100644 index 0000000000..55cece8713 --- /dev/null +++ b/renderer_8dbgui_8hpp_source.html @@ -0,0 +1,121 @@ + + + + + + + +Topaz: src/tz/gl/impl/common/renderer.dbgui.hpp Source File + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.2.0.1 +
+
C++20 Graphics Engine
+
+
+ + + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+
renderer.dbgui.hpp
+
+
+
1#include "tz/gl/api/renderer.hpp"
+
2#include "tz/gl/api/shader.hpp"
+
3#include "imgui.h"
+
4#undef assert
+
5
+
6namespace tz::gl
+
7{
+
12 void common_renderer_dbgui(renderer_type auto& renderer);
+
13}
+
void common_renderer_dbgui(renderer_type auto &renderer)
Helper function which displays render-api-agnostic information about renderers.
Definition renderer.dbgui.cpp:6
+
+ + + + diff --git a/renderer_8hpp_source.html b/renderer_8hpp_source.html new file mode 100644 index 0000000000..e17ab1926e --- /dev/null +++ b/renderer_8hpp_source.html @@ -0,0 +1,130 @@ + + + + + + + +Topaz: src/tz/gl/renderer.hpp Source File + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.2.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..b59b35ba46 --- /dev/null +++ b/resource_8hpp_source.html @@ -0,0 +1,285 @@ + + + + + + + +Topaz: src/tz/gl/resource.hpp Source File + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.2.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 "tz/io/image.hpp"
+
8#include <ranges>
+
9#include <optional>
+
10
+
11namespace tz::gl
+
12{
+
+
13 class resource : public iresource
+
14 {
+
15 public:
+
16 virtual ~resource() = default;
+
17 // iresource
+
18 virtual resource_type get_type() const final;
+
19 virtual resource_access get_access() const final;
+
20 virtual const resource_flags& get_flags() const final;
+
21 virtual std::span<const std::byte> data() const final;
+
22 virtual std::span<std::byte> data() final;
+
23 virtual void dbgui() override;
+
24
+
25 void resize_data(std::size_t new_size);
+
26 protected:
+
27 resource(resource_access access, std::vector<std::byte> resource_data, std::size_t initial_alignment_offset, resource_type type, resource_flags flags = {});
+
28 virtual void set_mapped_data(std::span<std::byte> mapped_resource_data) override;
+
29 resource_access access;
+
30 std::vector<std::byte> resource_data;
+
31 private:
+
32 std::optional<std::span<std::byte>> mapped_resource_data;
+
33 std::size_t initial_alignment_offset;
+
34 resource_type type;
+
35 resource_flags flags;
+
36 };
+
+
37
+
+ +
39 {
+
40 resource_access access = resource_access::static_access;
+
41 resource_flags flags = {};
+
42 };
+
+
43
+
+ +
49 {
+
50 public:
+
51 virtual ~buffer_resource() = default;
+
60 template<tz::trivially_copyable T>
+
61 static buffer_resource from_one(const T& data, buffer_info info = {});
+
62
+
63 template<tz::trivially_copyable T>
+
64 static buffer_resource from_many(std::initializer_list<T> ts, buffer_info info = {})
+
65 {
+
66 return from_many(std::span<const T>(ts), info);
+
67 }
+
75 template<std::ranges::contiguous_range R>
+
76 static buffer_resource from_many(R&& data, buffer_info info = {});
+
+ +
83 {
+
84 return from_one(std::byte{255}, {});
+
85 }
+
+
86
+
87 bool is_null() const;
+
88 virtual std::unique_ptr<iresource> unique_clone() const final;
+
89 virtual void dbgui() final;
+
90 private:
+
91 buffer_resource(resource_access access, std::vector<std::byte> resource_data, std::size_t initial_alignment_offset, resource_flags flags);
+
92 };
+
+
93
+
94
+
+ +
99 {
+ + +
105 resource_access access = resource_access::static_access;
+
107 resource_flags flags = {};
+
108 };
+
+
109
+
+ +
115 {
+
116 public:
+
117 virtual ~image_resource() = default;
+
122 static image_resource from_uninitialised(image_info info = {});
+
123
+
124 template<tz::trivially_copyable T>
+
125 static image_resource from_memory(std::initializer_list<T> ts, image_info info = {})
+
126 {
+
127 return from_memory(std::span<const T>(ts), info);
+
128 }
+
134 static image_resource from_memory(std::ranges::contiguous_range auto data, image_info info = {});
+
135
+
136 static image_resource from_struct(tz::io::image img, image_info info = {});
+
+ +
143 {
+
144 return from_memory
+
145 (
+
146 {
+
147 // Missingno purple
+
148 (unsigned char)0b1111'1111,
+
149 (unsigned char)0b0000'0000,
+
150 (unsigned char)0b1111'1111,
+
151 (unsigned char)0b1111'1111,
+
152 // Black
+
153 (unsigned char)0b0000'0000,
+
154 (unsigned char)0b0000'0000,
+
155 (unsigned char)0b0000'0000,
+
156 (unsigned char)0b1111'1111,
+
157 // Black
+
158 (unsigned char)0b0000'0000,
+
159 (unsigned char)0b0000'0000,
+
160 (unsigned char)0b0000'0000,
+
161 (unsigned char)0b1111'1111,
+
162 // Missingno purple
+
163 (unsigned char)0b1111'1111,
+
164 (unsigned char)0b0000'0000,
+
165 (unsigned char)0b1111'1111,
+
166 (unsigned char)0b1111'1111
+
167 },
+
168 {.format = image_format::RGBA32, .dimensions = {2u, 2u}}
+
169 );
+
170 }
+
+
171
+
172 bool is_null() const;
+
173
+
174 virtual std::unique_ptr<iresource> unique_clone() const final;
+
175 virtual void dbgui() final;
+
176 image_format get_format() const;
+
177 tz::vec2ui get_dimensions() const;
+
178 void set_dimensions(tz::vec2ui dims);
+
179 private:
+
180 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);
+
181 image_format format;
+
182 tz::vec2ui dimensions;
+
183 };
+
+
184}
+
185#include "tz/gl/resource.inl"
+
186
+
187#endif // TOPAZ_GL2_RESOURCE_HPP
+
Represents a fixed-size, static Buffer to be used by a renderer or Processor.
Definition resource.hpp:49
+
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:82
+
Represents a fixed-size, static Image to be used by a renderer or Processor.
Definition resource.hpp:115
+
static image_resource null()
Create a null image_resource.
Definition resource.hpp:142
+
Interface for a renderer or Processor resource.
Definition resource.hpp:80
+
Definition resource.hpp:14
+
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:39
+
Represents creation flags for an image.
Definition resource.hpp:99
+
tz::vec2ui dimensions
Image dimensions, in pixels.
Definition resource.hpp:103
+
image_format format
Image format.
Definition resource.hpp:101
+
Definition image.hpp:11
+
+ + + + diff --git a/resource_8inl_source.html b/resource_8inl_source.html new file mode 100644 index 0000000000..8978528644 --- /dev/null +++ b/resource_8inl_source.html @@ -0,0 +1,170 @@ + + + + + + + +Topaz: src/tz/gl/resource.inl Source File + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.2.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:49
+
Represents a fixed-size, static Image to be used by a renderer or Processor.
Definition resource.hpp:115
+
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:35
+
Definition resource.hpp:39
+
Represents creation flags for an image.
Definition resource.hpp:99
+
+ + + + 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..706cb101ca --- /dev/null +++ b/schedule_8hpp_source.html @@ -0,0 +1,228 @@ + + + + + + + +Topaz: src/tz/gl/api/schedule.hpp Source File + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.2.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
+
+
34 struct schedule
+
35 {
+
37 std::vector<event> events = {};
+ +
40
+
44 std::span<const eid_t> get_dependencies(eid_t evt) const;
+
45
+
50 template<typename T0, typename... T>
+
+
51 void add_dependencies(T0 evth, T... deps)
+
52 {
+
53 auto evt = static_cast<eid_t>(static_cast<tz::hanval>(evth));
+
54 auto iter = std::find_if(this->events.begin(), this->events.end(), [evt](const auto& event){return event.eid == evt;});
+
55 tz::assert(iter != this->events.end());
+
56 (iter->dependencies.push_back(static_cast<eid_t>(static_cast<tz::hanval>(deps))), ...);
+
57 }
+
+
58
+
62 template<typename H>
+
+
63 unsigned int chronological_rank(H handle) const
+
64 {
+
65 auto evt = static_cast<eid_t>(static_cast<tz::hanval>(handle));
+
66 return chronological_rank_eid(evt);
+
67 }
+
+
68
+
+
72 unsigned int max_chronological_rank() const
+
73 {
+
74 unsigned int maxrank = 0;
+
75 for(eid_t evt : this->timeline)
+
76 {
+
77 maxrank = std::max(maxrank, this->chronological_rank_eid(evt));
+
78 }
+
79 return maxrank;
+
80 }
+
+
81
+
82 std::optional<unsigned int> get_wait_rank(eid_t evt) const
+
83 {
+
84 if(this->chronological_rank_eid(evt) == 0)
+
85 {
+
86 return std::nullopt;
+
87 }
+
88 unsigned int max_wait_rank = 0;
+
89 for(eid_t dep : this->get_dependencies(evt))
+
90 {
+
91 max_wait_rank = std::max(max_wait_rank, this->chronological_rank_eid(dep));
+
92 }
+
93 return {max_wait_rank};
+
94 }
+
95
+
96 unsigned int chronological_rank_eid(eid_t evt) const
+
97 {
+
98 unsigned int rank = 0;
+
99 if(this->get_dependencies(evt).size())
+
100 {
+
101 for(std::size_t dep : this->get_dependencies(evt))
+
102 {
+
103 rank = std::max(rank, this->chronological_rank_eid(dep));
+
104 }
+
105 rank++;
+
106 }
+
107 return rank;
+
108 }
+
109 };
+
+
110
+
111}
+
112
+
113#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:35
+
Definition schedule.hpp:15
+
Represents a render graph.
Definition schedule.hpp:35
+
timeline_t timeline
Represents the event indices which will take place per frame, in chronological order.
Definition schedule.hpp:39
+
std::vector< event > events
List of all events. Do not touch this directly.
Definition schedule.hpp:37
+
unsigned int max_chronological_rank() const
Retrieve the maximum chronological rank within the render graph.
Definition schedule.hpp:72
+
unsigned int chronological_rank(H handle) const
Retrieve the chronological rank of a renderer.
Definition schedule.hpp:63
+
void add_dependencies(T0 evth, T... deps)
Add a number of existing event dependencies to an existing event.
Definition schedule.hpp:51
+
std::span< const eid_t > get_dependencies(eid_t evt) const
Retrieve all the events that depend on the provided event.
Definition schedule.cpp:8
+
Definition schedule.hpp:21
+
+ + + + diff --git a/search/all_0.js b/search/all_0.js new file mode 100644 index 0000000000..1790a644a4 --- /dev/null +++ b/search/all_0.js @@ -0,0 +1,72 @@ +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_1vk2_1_1_swapchain.html#a96bd4cf27464216c5294b65c939ae525',1,'tz::gl::vk2::Swapchain::acquire_image()'],['../classtz_1_1gl_1_1device__window.html#a692cd28b2be1c18e04d60d2f834b2dc4',1,'tz::gl::device_window::acquire_image()']]], + ['add_6',['add',['../classtz_1_1basic__list.html#a4145934a925e6b0a6166396fe079e912',1,'tz::basic_list::add(const T &element)'],['../classtz_1_1basic__list.html#a3879564a08f0874bd34335a172fa8327',1,'tz::basic_list::add(T &&element)'],['../group__tzsl__atomic.html#ga89d32f0bbb6535185abe39b69fb39030',1,'tz::atomic::add()']]], + ['add_5fcallback_7',['add_callback',['../classtz_1_1callback.html#a9c2d992722fe82e5ee1c211348d7ff32',1,'tz::callback']]], + ['add_5fdependencies_8',['add_dependencies',['../structtz_1_1gl_1_1schedule.html#acb82217e570acc1e33881ea46d2b0a00',1,'tz::gl::schedule']]], + ['add_5fdependency_9',['add_dependency',['../classtz_1_1gl_1_1renderer__info.html#a67cee96b537c3155396b7e537648e208',1,'tz::gl::renderer_info']]], + ['add_5ffont_10',['add_font',['../classtz_1_1ren_1_1text__renderer.html#afd4018a91989a9eb8250e431432f3bdf',1,'tz::ren::text_renderer']]], + ['add_5fhierarchy_11',['add_hierarchy',['../classtz_1_1transform__hierarchy.html#a1ee77288814244d347d1c9f9f718cbf1',1,'tz::transform_hierarchy']]], + ['add_5fhierarchy_5fonto_12',['add_hierarchy_onto',['../classtz_1_1transform__hierarchy.html#af9980e4f61e9442cd37e51aac4a9d76c',1,'tz::transform_hierarchy']]], + ['add_5fmesh_13',['add_mesh',['../classtz_1_1ren_1_1impl_1_1render__pass.html#a8bd505aa6d090bcfdb42c9869fa3e2d0',1,'tz::ren::impl::render_pass']]], + ['add_5fnode_14',['add_node',['../classtz_1_1transform__hierarchy.html#a3080a5dbadbc5dee46491867559d3452',1,'tz::transform_hierarchy']]], + ['add_5fobject_15',['add_object',['../classtz_1_1ren_1_1impl_1_1render__pass.html#a5f93360820f60584f19a5fad2ec77d62',1,'tz::ren::impl::render_pass']]], + ['add_5fresource_16',['add_resource',['../classtz_1_1gl_1_1renderer__info.html#a754e0e44d92be27ecf399501ba318d53',1,'tz::gl::renderer_info']]], + ['add_5fset_5fedit_17',['add_set_edit',['../classtz_1_1gl_1_1vk2_1_1_descriptor_pool_1_1_update_request.html#a9eadabf90c16c3d2cc228868752da65a',1,'tz::gl::vk2::DescriptorPool::UpdateRequest']]], + ['add_5fstring_18',['add_string',['../classtz_1_1ren_1_1text__renderer.html#a81450d3c710a07357f74b7201634f1ac',1,'tz::ren::text_renderer']]], + ['add_5ftexture_19',['add_texture',['../classtz_1_1ren_1_1impl_1_1render__pass.html#a31b2854f6aba8a2b7c8b00cf20987794',1,'tz::ren::impl::render_pass']]], + ['address_5fmode_20',['address_mode',['../group__tz__gl__ogl2__image.html#ga52bed615aea0b883aeb6702716f95e5b',1,'tz::gl::ogl2']]], + ['address_5fmode_5fr_21',['address_mode_r',['../structtz_1_1gl_1_1ogl2_1_1sampler.html#ad973088359ae025d62a9be56c499913f',1,'tz::gl::ogl2::sampler']]], + ['address_5fmode_5fs_22',['address_mode_s',['../structtz_1_1gl_1_1ogl2_1_1sampler.html#a9e5a13f2abc511e9e41a5c65a0ed543d',1,'tz::gl::ogl2::sampler']]], + ['address_5fmode_5ft_23',['address_mode_t',['../structtz_1_1gl_1_1ogl2_1_1sampler.html#a4eb3aac6c9f3f325b154b52227a589d7',1,'tz::gl::ogl2::sampler']]], + ['address_5fmode_5fu_24',['address_mode_u',['../structtz_1_1gl_1_1vk2_1_1_sampler_info.html#a3cddf0a741522a123deaaa4c6c5d3041',1,'tz::gl::vk2::SamplerInfo']]], + ['address_5fmode_5fv_25',['address_mode_v',['../structtz_1_1gl_1_1vk2_1_1_sampler_info.html#abdb13df130823a0b66af27234b2a414c',1,'tz::gl::vk2::SamplerInfo']]], + ['address_5fmode_5fw_26',['address_mode_w',['../structtz_1_1gl_1_1vk2_1_1_sampler_info.html#ab44f5074772b344c8307c561f98b2149',1,'tz::gl::vk2::SamplerInfo']]], + ['affected_5flayers_27',['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_28',['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_29',['Algorithms',['../group__tz__core__algorithms.html',1,'']]], + ['allcommands_30',['AllCommands',['../group__tz__gl__vk__graphics__pipeline.html#ggaa581c5a329a76e48f41ca02bd263251aacf92f78ac1cdeee1e78e8b2866abe474',1,'tz::gl::vk2']]], + ['allgraphics_31',['AllGraphics',['../group__tz__gl__vk__graphics__pipeline.html#ggaa581c5a329a76e48f41ca02bd263251aa576ad90e86113d352899b3369a9c5b15',1,'tz::gl::vk2']]], + ['allocate_5fbuffers_32',['allocate_buffers',['../classtz_1_1gl_1_1vk2_1_1_command_pool.html#a791dba923c7069be7b684d58c62017fe',1,'tz::gl::vk2::CommandPool']]], + ['allocate_5fsets_33',['allocate_sets',['../classtz_1_1gl_1_1vk2_1_1_descriptor_pool.html#a08339d22389d1d308abbce0ea80a4be8',1,'tz::gl::vk2::DescriptorPool']]], + ['allocation_34',['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_35',['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_36',['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_37',['AllocationSuccess',['../structtz_1_1gl_1_1vk2_1_1_descriptor_pool_1_1_allocation_result.html#abad85d19de3197a840dc5e69ad797c54a6f8ab75df1f61fe1d74b80230950e6a0',1,'tz::gl::vk2::DescriptorPool::AllocationResult']]], + ['allocator_5fadapter_38',['allocator_adapter',['../classtz_1_1allocator__adapter.html',1,'tz']]], + ['allocators_39',['Allocators',['../group__tz__core__memory__allocator.html',1,'']]], + ['allreads_40',['AllReads',['../group__tz__gl__vk__graphics__pipeline__render__pass.html#ggaa5dd0142a36cd59d14dff54eed67c3dfa8ab0a7cae3cbaff41e05a64461e3d3dc',1,'tz::gl::vk2']]], + ['allwrites_41',['AllWrites',['../group__tz__gl__vk__graphics__pipeline__render__pass.html#ggaa5dd0142a36cd59d14dff54eed67c3dfa87c699210d01c41d2f2e4d26a26467b9',1,'tz::gl::vk2']]], + ['alpha_5fblending_42',['alpha_blending',['../group__tz__gl2__renderer.html#ggac6f74feb8cd57f49c051f5d83a12be5da9c2fd878595ad8136ed219ece90dfef9',1,'tz::gl']]], + ['alwaysfalse_43',['AlwaysFalse',['../group__tz__gl__vk__graphics__pipeline__fixed.html#gga93e2cb3a5e44484b0548e28496de69c7a8cec5cec7e1bd101eefe8dde47c99289',1,'tz::gl::vk2']]], + ['alwaystrue_44',['AlwaysTrue',['../group__tz__gl__vk__graphics__pipeline__fixed.html#gga93e2cb3a5e44484b0548e28496de69c7a65db12e33585aff2007aad58b62b7bcd',1,'tz::gl::vk2']]], + ['and_45',['and',['../group__tzsl__atomic.html#gafe35966b39ca9b843aee1df9bf0e8dcc',1,'tz::atomic']]], + ['and_20features_46',['Extensions and Features',['../group__tz__gl__vk__extension.html',1,'']]], + ['and_20formats_47',['and Formats',['../group__tz__gl__ogl2__image.html',1,'Images, Samplers and Formats'],['../group__tz__gl__vk__image.html',1,'Images, Samplers and Formats']]], + ['and_20modules_48',['Shader Programs and Modules',['../group__tz__gl__vk__graphics__pipeline__shader.html',1,'']]], + ['and_20outputs_49',['Inputs and Outputs',['../group__tz__gl2__io.html',1,'']]], + ['and_20pools_50',['Command Buffers and Pools',['../group__tz__gl__vk__commands.html',1,'']]], + ['and_20sets_51',['Descriptor Layouts and Sets',['../group__tz__gl__vk__descriptors.html',1,'']]], + ['and_20window_20surface_20interation_20wsi_52',['Presentation and Window Surface Interation (WSI)',['../group__tz__gl__vk__presentation.html',1,'']]], + ['animated_5fobjects_5fcreate_5finfo_53',['animated_objects_create_info',['../structtz_1_1ren_1_1animation__renderer_1_1animated__objects__create__info.html',1,'tz::ren::animation_renderer']]], + ['animation_5frenderer_54',['animation_renderer',['../classtz_1_1ren_1_1animation__renderer.html',1,'tz::ren']]], + ['api_20reference_55',['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_56',['append',['../classtz_1_1basic__list.html#a2da568b03a98882cfd70dbc9ef726f29',1,'tz::basic_list']]], + ['append_5frange_57',['append_range',['../classtz_1_1basic__list.html#ae49735e774b1d312a5fbe8f383a54af5',1,'tz::basic_list']]], + ['append_5fto_5frender_5fgraph_58',['append_to_render_graph',['../classtz_1_1ren_1_1ihigh__level__renderer.html#a4ec7392ee83574bb647bd4b2eca80d61',1,'tz::ren::ihigh_level_renderer::append_to_render_graph()'],['../classtz_1_1ren_1_1impl_1_1render__pass.html#ac734e77fbbf163c245a8e6bf24e7a4f2',1,'tz::ren::impl::render_pass::append_to_render_graph()'],['../classtz_1_1ren_1_1text__renderer.html#a7e9ce4d02c54da0745ed0c31a91607a9',1,'tz::ren::text_renderer::append_to_render_graph()']]], + ['application_5fflag_59',['application_flag',['../group__tz__core.html#gad12da2cb05946402335871d2e282cbf9',1,'tz']]], + ['array_5felement_60',['array_element',['../structtz_1_1gl_1_1vk2_1_1_descriptor_set_1_1_write.html#a7646cd399f52126271396f9693e69c94',1,'tz::gl::vk2::DescriptorSet::Write']]], + ['array_5flayers_61',['array_layers',['../structtz_1_1gl_1_1vk2_1_1image__info.html#a351c5165fd522daa256f8f9010672256',1,'tz::gl::vk2::image_info']]], + ['asin_62',['asin',['../group__tzsl__math.html#ga303ccf32c2a3bd51916059746e13d4fb',1,'tz::math']]], + ['asinh_63',['asinh',['../group__tzsl__math.html#ga3cea91edf9f9b37f5aaeb8b20eeed9a8',1,'tz::math']]], + ['assert_64',['assert',['../group__tz__core.html#ga35faea66fc04dfa33238c863eb740c34',1,'tz::assert()'],['../group__tzsl__debug.html#ga46aa856e72453e84675e0a867438b8d0',1,'tz::debug::assert()']]], + ['atan_65',['atan',['../group__tzsl__math.html#gab6513224bd4ea1a83d9e1e78083a5899',1,'tz::math']]], + ['atanh_66',['atanh',['../group__tzsl__math.html#ga6321494f7f16de62c6693d5ec61aafd0',1,'tz::math']]], + ['atomic_20operations_67',['Atomic Operations',['../group__tzsl__atomic.html',1,'']]], + ['attribute_68',['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..286a131fad --- /dev/null +++ b/search/all_1.js @@ -0,0 +1,84 @@ +var searchData= +[ + ['back_0',['back',['../structtz_1_1gl_1_1vk2_1_1_depth_stencil_state.html#ad0deeef78c7f2102fc60a1e12010bb6e',1,'tz::gl::vk2::DepthStencilState::back'],['../classtz_1_1basic__list.html#ada048725d4c9628619d5fb8ff984c6d3',1,'tz::basic_list::back()'],['../classtz_1_1basic__list.html#a7997b2e322ea17998655cbbb4846ae69',1,'tz::basic_list::back() const'],['../classtz_1_1enum__field.html#ac7bf408eb8998817ef105243093e5edc',1,'tz::enum_field::back()'],['../classtz_1_1free__list.html#aabf1b2ed1868ea0ecc68c4126c65ba33',1,'tz::free_list::back() const'],['../classtz_1_1free__list.html#a9c2cdbf73f0e7f7a9c16cf20272bb6b5',1,'tz::free_list::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',1,'tz::basic_list< T, Allocator >'],['../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']]], + ['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_3acommandbuffer_20_3e_16',['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_17',['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_18',['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_19',['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_20',['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_3ashadermoduleinfo_20_3e_21',['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_22',['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_23',['basic_list< tz::gl::vk2::VertexInputState::Binding >',['../classtz_1_1basic__list.html',1,'tz']]], + ['basic_5flist_3c_20vkpipelineshaderstagecreateinfo_20_3e_24',['basic_list< VkPipelineShaderStageCreateInfo >',['../classtz_1_1basic__list.html',1,'tz']]], + ['basic_5flist_3c_20vkrect2d_20_3e_25',['basic_list< VkRect2D >',['../classtz_1_1basic__list.html',1,'tz']]], + ['basic_5flist_3c_20vkviewport_20_3e_26',['basic_list< VkViewport >',['../classtz_1_1basic__list.html',1,'tz']]], + ['basic_5flist_3c_20write_20_3e_27',['basic_list< Write >',['../classtz_1_1basic__list.html',1,'tz']]], + ['begin_28',['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_29',['begin_frame',['../group__tz__core.html#gae00451643399562c92b48a05a40896b7',1,'tz']]], + ['begindynamicrendering_30',['BeginDynamicRendering',['../structtz_1_1gl_1_1vk2_1_1_vulkan_command_1_1_begin_dynamic_rendering.html',1,'tz::gl::vk2::VulkanCommand']]], + ['big_31',['big',['../group__tz__core.html#gga7e3c11361b9752a8f8eec7af87a23a1cad861877da56b8b4ceb35c8cbfdf65bb4',1,'tz']]], + ['big_5fendian_32',['big_endian',['../group__tz__core.html#ga5636b8096d96efb60512ae51b8e4ffb1',1,'tz']]], + ['binarysemaphore_33',['BinarySemaphore',['../classtz_1_1gl_1_1vk2_1_1_binary_semaphore.html',1,'tz::gl::vk2']]], + ['bind_34',['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_35',['bind_buffer',['../classtz_1_1gl_1_1vk2_1_1_command_buffer_recording.html#aa015012eda3e9de92f3a5adbaff798bd',1,'tz::gl::vk2::CommandBufferRecording']]], + ['bind_5fbuffers_36',['bind_buffers',['../classtz_1_1gl_1_1_resource_storage.html#ad52eafd3a054c5e4489c026c94a6c81a',1,'tz::gl::ResourceStorage']]], + ['bind_5fdescriptor_5fsets_37',['bind_descriptor_sets',['../classtz_1_1gl_1_1vk2_1_1_command_buffer_recording.html#ac9e417b34e2a883b34ab2099a82acd54',1,'tz::gl::vk2::CommandBufferRecording']]], + ['bind_5fimage_5fbuffer_38',['bind_image_buffer',['../classtz_1_1gl_1_1_resource_storage.html#a71e4a2bb72688cea1a4849a8f0705a42',1,'tz::gl::ResourceStorage']]], + ['bind_5fpipeline_39',['bind_pipeline',['../classtz_1_1gl_1_1vk2_1_1_command_buffer_recording.html#a8bbeeef67dcb9b04b17bf5abde907e01',1,'tz::gl::vk2::CommandBufferRecording']]], + ['bind_5fto_5fresource_5fid_40',['bind_to_resource_id',['../classtz_1_1gl_1_1ogl2_1_1buffer.html#a2f38aa4dfb4a6f0504bee1a44e0bbee6',1,'tz::gl::ogl2::buffer']]], + ['bindbuffer_41',['BindBuffer',['../structtz_1_1gl_1_1vk2_1_1_vulkan_command_1_1_bind_buffer.html',1,'tz::gl::vk2::VulkanCommand']]], + ['binddescriptorsets_42',['BindDescriptorSets',['../structtz_1_1gl_1_1vk2_1_1_vulkan_command_1_1_bind_descriptor_sets.html',1,'tz::gl::vk2::VulkanCommand']]], + ['bindindexbuffer_43',['BindIndexBuffer',['../structtz_1_1gl_1_1vk2_1_1_vulkan_command_1_1_bind_index_buffer.html',1,'tz::gl::vk2::VulkanCommand']]], + ['binding_44',['Binding',['../structtz_1_1gl_1_1vk2_1_1_vertex_input_state_1_1_binding.html',1,'tz::gl::vk2::VertexInputState']]], + ['binding_45',['binding',['../structtz_1_1gl_1_1vk2_1_1_vertex_input_state_1_1_binding.html#a7022ed9b009dd3f047f594907b00de30',1,'tz::gl::vk2::VertexInputState::Binding']]], + ['binding_5fcount_46',['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()']]], + ['binding_5fid_47',['binding_id',['../structtz_1_1gl_1_1vk2_1_1_descriptor_set_1_1_write.html#a7e29fad1b7b3a6f8170853f132d51ad1',1,'tz::gl::vk2::DescriptorSet::Write::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']]], + ['bindinginfo_48',['BindingInfo',['../structtz_1_1gl_1_1vk2_1_1_descriptor_layout_info_1_1_binding_info.html',1,'tz::gl::vk2::DescriptorLayoutInfo']]], + ['bindings_49',['bindings',['../structtz_1_1gl_1_1vk2_1_1_descriptor_layout_info.html#a9612491e1802fd7a5d0812e80d25f332',1,'tz::gl::vk2::DescriptorLayoutInfo']]], + ['bindless_5fhandle_50',['bindless_handle',['../classtz_1_1gl_1_1ogl2_1_1image.html#a95cc3a29802146fa924deac10a64fc72',1,'tz::gl::ogl2::image']]], + ['bindlessdescriptors_51',['BindlessDescriptors',['../group__tz__gl__vk__extension.html#gga6744c8f7d1276d6d9ae861b21c489505aa470c5a1e7f7f5154881cbc29acff30c',1,'tz::gl::vk2']]], + ['bindpipeline_52',['BindPipeline',['../structtz_1_1gl_1_1vk2_1_1_vulkan_command_1_1_bind_pipeline.html',1,'tz::gl::vk2::VulkanCommand']]], + ['bothculling_53',['BothCulling',['../group__tz__gl__vk__graphics__pipeline__fixed.html#ggaf55856ce9f281f90908bac12e0061e16a41356deeb07cbbcf9da994b364f45374',1,'tz::gl::vk2']]], + ['bottom_54',['Bottom',['../group__tz__gl__vk__graphics__pipeline.html#ggaa581c5a329a76e48f41ca02bd263251aa2ad9d63b69c4a10a5cc9cad923133bc4',1,'tz::gl::vk2']]], + ['bound_5ftextures_55',['bound_textures',['../structtz_1_1ren_1_1impl_1_1render__pass_1_1object__create__info.html#a1f4e8f4a921f73999606ae67449454fa',1,'tz::ren::impl::render_pass::object_create_info']]], + ['buffer_56',['buffer',['../classtz_1_1gl_1_1ogl2_1_1buffer.html',1,'tz::gl::ogl2']]], + ['buffer_57',['Buffer',['../classtz_1_1gl_1_1vk2_1_1_buffer.html',1,'tz::gl::vk2']]], + ['buffer_58',['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_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_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',['../structtz_1_1gl_1_1vk2_1_1_command_pool_1_1_allocation_result.html#a7090fa6999352b4a444cd22121c8ae45',1,'tz::gl::vk2::CommandPool::AllocationResult']]], + ['buffers_75',['Buffers',['../group__tz__gl__vk__buffer.html',1,'Buffers'],['../group__tz__gl__ogl2__buffers.html',1,'Buffers']]], + ['buffers_20and_20pools_76',['Command Buffers and Pools',['../group__tz__gl__vk__commands.html',1,'']]], + ['bufferusage_77',['BufferUsage',['../group__tz__gl__vk__buffer.html#ga0c6ff78fc058c3e209ba59dc1b2c02a6',1,'tz::gl::vk2']]], + ['bufferwriteinfo_78',['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_79',['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()']]], + ['button_5fstate_80',['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..49e691927d --- /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_2',['queue',['../structtz_1_1gl_1_1vk2_1_1_command_pool_info.html#ad61f2476a6a318a6c77e147c43b84e8c',1,'tz::gl::vk2::CommandPoolInfo']]], + ['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..d83fa55226 --- /dev/null +++ b/search/all_11.js @@ -0,0 +1,74 @@ +var searchData= +[ + ['rasterise_5finfo_0',['rasterise_info',['../structtz_1_1io_1_1ttf_1_1rasterise__info.html',1,'tz::io::ttf']]], + ['rasteriserstate_1',['RasteriserState',['../structtz_1_1gl_1_1vk2_1_1_rasteriser_state.html',1,'tz::gl::vk2']]], + ['record_2',['record',['../classtz_1_1gl_1_1vk2_1_1_command_buffer.html#ac914c5d21dc2fc919375b27fc1fc78f0',1,'tz::gl::vk2::CommandBuffer']]], + ['ref_5fresource_3',['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_4',['Reference',['../group__tz__cpp.html',1,'C++ API Reference'],['../tz_lua.html',1,'Lua API Reference'],['../group__tzsl.html',1,'TZSL API Reference']]], + ['reflect_5',['reflect',['../group__tzsl__math.html#gafed4b19ac0c92a8be0c4423075a651cc',1,'tz::math']]], + ['refract_6',['refract',['../group__tzsl__math.html#ga9e6144cd5b477de94de1bca43421724f',1,'tz::math']]], + ['remove_7',['remove',['../classtz_1_1enum__field.html#a22968209e6c89b1c32e223de7f0b9dd2',1,'tz::enum_field']]], + ['remove_5fcallback_8',['remove_callback',['../classtz_1_1callback.html#ac1d0a29c2a313071132aceded7347619',1,'tz::callback']]], + ['remove_5fchildren_9',['remove_children',['../classtz_1_1transform__hierarchy.html#a03c95b250f14ac9f110b59eceb772222af68ad5a97e4322c39a182b75b4719967',1,'tz::transform_hierarchy']]], + ['remove_5ffont_10',['remove_font',['../classtz_1_1ren_1_1text__renderer.html#a2e3d1cbbd8b300759798cc5d9f38f5cc',1,'tz::ren::text_renderer']]], + ['remove_5fmesh_11',['remove_mesh',['../classtz_1_1ren_1_1impl_1_1render__pass.html#a8f640fbcb5ab4c6ff7245b634b80064a',1,'tz::ren::impl::render_pass']]], + ['remove_5fnode_12',['remove_node',['../classtz_1_1transform__hierarchy.html#aa0ced17908b8fd14298132668f1d45c9',1,'tz::transform_hierarchy']]], + ['remove_5fobject_13',['remove_object',['../classtz_1_1ren_1_1impl_1_1render__pass.html#a4f56bcfb8a870f150dbcfa92c8d95052',1,'tz::ren::impl::render_pass']]], + ['remove_5fstrategy_14',['remove_strategy',['../classtz_1_1transform__hierarchy.html#a03c95b250f14ac9f110b59eceb772222',1,'tz::transform_hierarchy']]], + ['remove_5fstring_15',['remove_string',['../classtz_1_1ren_1_1text__renderer.html#a4b62cf03fab066de265a3d2658404536',1,'tz::ren::text_renderer']]], + ['render_16',['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_17',['Render Passes',['../group__tz__gl__vk__graphics__pipeline__render__pass.html',1,'']]], + ['render_5fbuffer_18',['render_buffer',['../classtz_1_1gl_1_1ogl2_1_1render__buffer.html',1,'tz::gl::ogl2']]], + ['render_5fbuffer_5finfo_19',['render_buffer_info',['../structtz_1_1gl_1_1ogl2_1_1render__buffer__info.html',1,'tz::gl::ogl2']]], + ['render_5fconfig_20',['render_config',['../structtz_1_1gl_1_1renderer__edit_1_1render__config.html',1,'tz::gl::renderer_edit']]], + ['render_5fgraph_21',['render_graph',['../classtz_1_1gl_1_1device__common.html#ac9c14078578a4c6d1ad38e3ff42b5e27',1,'tz::gl::device_common::render_graph() const'],['../classtz_1_1gl_1_1device__common.html#af584b017489462ba6869d729b2771c46',1,'tz::gl::device_common::render_graph()']]], + ['render_5fpass_22',['render_pass',['../classtz_1_1ren_1_1impl_1_1render__pass.html',1,'tz::ren::impl']]], + ['render_5fstate_23',['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_24',['render_target_t',['../structtz_1_1gl_1_1renderer__output__manager_1_1render__target__t.html',1,'tz::gl::renderer_output_manager']]], + ['render_5fwait_25',['render_wait',['../group__tz__gl2__renderer.html#ggac6f74feb8cd57f49c051f5d83a12be5da53620d781237787604432a229f2d8af7',1,'tz::gl']]], + ['renderer_26',['renderer',['../classtz_1_1gl_1_1renderer.html',1,'tz::gl']]], + ['renderer_20implementation_27',['renderer Implementation',['../group__tz__gl2__graphicsapi__ogl__frontend__renderer.html',1,'']]], + ['renderer_5fcommand_5fprocessor_28',['renderer_command_processor',['../classtz_1_1gl_1_1renderer__command__processor.html',1,'tz::gl']]], + ['renderer_5fcount_29',['renderer_count',['../classtz_1_1gl_1_1device.html#aa2adea5cb25d9712f1fe2b22dba3eec7',1,'tz::gl::device']]], + ['renderer_5fdescriptor_5fmanager_30',['renderer_descriptor_manager',['../classtz_1_1gl_1_1renderer__descriptor__manager.html',1,'tz::gl']]], + ['renderer_5fedit_31',['renderer_edit',['../structtz_1_1gl_1_1renderer__edit.html',1,'tz::gl']]], + ['renderer_5fedit_5frequest_32',['renderer_edit_request',['../group__tz__gl2__renderer.html#ga48a3b595cfef583690bee605a6531671',1,'tz::gl']]], + ['renderer_5fhandle_33',['renderer_handle',['../group__tz__gl2__renderer.html#gafea5859f095bd8a1a740ae443b1e8471',1,'tz::gl']]], + ['renderer_5finfo_34',['renderer_info',['../classtz_1_1gl_1_1renderer__info.html',1,'tz::gl']]], + ['renderer_5fogl_35',['renderer_ogl',['../classtz_1_1gl_1_1renderer__ogl.html',1,'tz::gl::renderer_ogl'],['../classtz_1_1gl_1_1renderer__ogl.html#ad8f5c88c01550694021d6d15e8b1222b',1,'tz::gl::renderer_ogl::renderer_ogl()']]], + ['renderer_5fogl_5fbase_36',['renderer_ogl_base',['../structtz_1_1gl_1_1renderer__ogl__base.html',1,'tz::gl']]], + ['renderer_5foption_37',['renderer_option',['../group__tz__gl2__renderer.html#gac6f74feb8cd57f49c051f5d83a12be5d',1,'tz::gl']]], + ['renderer_5foptions_38',['renderer_options',['../group__tz__gl2__renderer.html#gac0d0a34b58dc4f8a1fe679e0faad54fc',1,'tz::gl']]], + ['renderer_5foutput_39',['renderer_output',['../group__tz__gl2__res.html#ggaacaeec69fc5b83e204af317250a47eb8a8875c7873ad9469ba236f17af49ab331',1,'tz::gl']]], + ['renderer_5foutput_5fmanager_40',['renderer_output_manager',['../classtz_1_1gl_1_1renderer__output__manager.html',1,'tz::gl']]], + ['renderer_5fpipeline_41',['renderer_pipeline',['../classtz_1_1gl_1_1renderer__pipeline.html',1,'tz::gl']]], + ['renderer_5fresource_5fmanager_42',['renderer_resource_manager',['../classtz_1_1gl_1_1renderer__resource__manager.html',1,'tz::gl']]], + ['renderer_5ftag_43',['renderer_tag',['../structtz_1_1gl_1_1detail_1_1renderer__tag.html',1,'tz::gl::detail']]], + ['renderer_5fvulkan2_44',['renderer_vulkan2',['../classtz_1_1gl_1_1renderer__vulkan2.html',1,'tz::gl']]], + ['renderer_5fvulkan_5fbase_45',['renderer_vulkan_base',['../structtz_1_1gl_1_1renderer__vulkan__base.html',1,'tz::gl']]], + ['renderereditbuilder_46',['RendererEditBuilder',['../classtz_1_1gl_1_1_renderer_edit_builder.html',1,'tz::gl']]], + ['renderers_47',['Renderers',['../group__tz__gl2__renderer.html',1,'']]], + ['rendering_20library_48',['Rendering Library',['../group__tz__ren.html',1,'']]], + ['repeat_49',['repeat',['../group__tz__gl__ogl2__image.html#gga52bed615aea0b883aeb6702716f95e5ba32cf6da134a8b268cf4ab6b79a9a5ad9',1,'tz::gl::ogl2']]], + ['repeat_50',['Repeat',['../group__tz__gl__vk__image.html#gga8d6daa8ff20537f40f5e1145342c2d4da7020426cfb0a204051be4b3053d2acc8',1,'tz::gl::vk2']]], + ['report_51',['report',['../group__tz__core.html#gab9cfea70c99d9d2b1dd82bebee489377',1,'tz']]], + ['reserve_52',['reserve',['../classtz_1_1free__list.html#afc9b4f698b47a1a457087837d8d69beb',1,'tz::free_list']]], + ['reset_53',['reset',['../classtz_1_1delay.html#ab4828a83cde0cd8739937a533dd91b60',1,'tz::delay']]], + ['residency_54',['residency',['../structtz_1_1gl_1_1ogl2_1_1buffer__info.html#ae081fcea6ae41da602dce4fc8682b30a',1,'tz::gl::ogl2::buffer_info::residency'],['../structtz_1_1gl_1_1vk2_1_1buffer__info.html#a70bc07d110c2ca518cab2eef097fa4a7',1,'tz::gl::vk2::buffer_info::residency'],['../structtz_1_1gl_1_1vk2_1_1image__info.html#aaf46fd5a595ef4843becc7ac80983130',1,'tz::gl::vk2::image_info::residency']]], + ['resize_55',['resize',['../classtz_1_1basic__list.html#a0a3896bd6babdbde094588b846fa8f5e',1,'tz::basic_list']]], + ['resource_56',['resource',['../classtz_1_1gl_1_1resource.html',1,'tz::gl']]], + ['resource_5faccess_57',['resource_access',['../group__tz__gl2__res.html#gac9293366fa49e7f476827595ca80fbbb',1,'tz::gl']]], + ['resource_5fcount_58',['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_59',['resource_count_of',['../classtz_1_1gl_1_1_resource_storage.html#a7434d0c28fc3e936ea2da36b6e5cd020',1,'tz::gl::ResourceStorage']]], + ['resource_5fflag_60',['resource_flag',['../group__tz__gl2__res.html#gaacaeec69fc5b83e204af317250a47eb8',1,'tz::gl']]], + ['resource_5freference_61',['resource_reference',['../structtz_1_1gl_1_1renderer__edit_1_1resource__reference.html',1,'tz::gl::renderer_edit']]], + ['resource_5ftype_62',['resource_type',['../group__tz__gl2__res.html#ga4a7818551bb2ef3d04edb95ec731d041',1,'tz::gl']]], + ['resource_5fwrite_63',['resource_write',['../structtz_1_1gl_1_1renderer__edit_1_1resource__write.html',1,'tz::gl::renderer_edit']]], + ['resources_64',['Resources',['../group__tz__gl2__res.html',1,'']]], + ['resourcestorage_65',['ResourceStorage',['../classtz_1_1gl_1_1_resource_storage.html',1,'tz::gl::ResourceStorage'],['../classtz_1_1gl_1_1_resource_storage.html#ab57f9e4401a87f4fa877d0cdd69204ed',1,'tz::gl::ResourceStorage::ResourceStorage()']]], + ['right_66',['right',['../group__tz__wsi__mouse.html#ggaf90a65771c2d2d40e2d8a35f27288e23a7c4f29407893c334a6cb7a87bf045c0d',1,'tz::wsi']]], + ['rotate_67',['rotate',['../group__tz__core.html#gac0457238d0094915eda4df542774a9e8',1,'tz']]], + ['round_68',['round',['../group__tzsl__math.html#ga39cc0a661ddc88ab512b639cb38d4928',1,'tz::math']]], + ['row_69',['Row',['../classtz_1_1matrix.html#a6f7afc1df98e3a9a74430908f0db308a',1,'tz::matrix']]], + ['run_70',['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..12d28d1116 --- /dev/null +++ b/search/all_12.js @@ -0,0 +1,122 @@ +var searchData= +[ + ['sample_5fcount_0',['sample_count',['../structtz_1_1gl_1_1vk2_1_1image__info.html#a8d2aa7a0a435dd913d70be9713ca6eae',1,'tz::gl::vk2::image_info']]], + ['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',['../structtz_1_1gl_1_1ogl2_1_1sampler.html',1,'tz::gl::ogl2']]], + ['sampler_4',['Sampler',['../classtz_1_1gl_1_1vk2_1_1_sampler.html',1,'tz::gl::vk2']]], + ['sampler_5',['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']]], + ['sampleraddressmode_6',['SamplerAddressMode',['../group__tz__gl__vk__image.html#ga8d6daa8ff20537f40f5e1145342c2d4d',1,'tz::gl::vk2']]], + ['samplerinfo_7',['SamplerInfo',['../structtz_1_1gl_1_1vk2_1_1_sampler_info.html',1,'tz::gl::vk2']]], + ['samplers_20and_20formats_8',['Samplers and Formats',['../group__tz__gl__ogl2__image.html',1,'Images, Samplers and Formats'],['../group__tz__gl__vk__image.html',1,'Images, Samplers and Formats']]], + ['scale_9',['scale',['../group__tz__core.html#gac4e79331e3b84c5a36360169f7f6d4c8',1,'tz']]], + ['schedule_10',['schedule',['../structtz_1_1gl_1_1schedule.html',1,'tz::gl']]], + ['scissor_11',['scissor',['../structtz_1_1gl_1_1renderer__edit_1_1scissor.html',1,'tz::gl::renderer_edit']]], + ['scissor_5fregion_12',['scissor_region',['../structtz_1_1gl_1_1scissor__region.html',1,'tz::gl']]], + ['seconds_13',['seconds',['../classtz_1_1duration.html#adec2e357a7d098cbc4356752c3f188f5',1,'tz::duration']]], + ['semaphore_14',['Semaphore',['../group__tz__gl__vk__sync.html#gaa74bc00ca21348f0fac93706c52eb23d',1,'tz::gl::vk2']]], + ['send_5fmessage_15',['send_message',['../classtz_1_1message__receiver.html#a8bca5d18f09e1d69a4439ae5a73cc008',1,'tz::message_receiver']]], + ['send_5fmessages_16',['send_messages',['../classtz_1_1message__receiver.html#a7cf3d2674efc3087cf85776ea08ddb4d',1,'tz::message_receiver']]], + ['set_17',['set',['../structtz_1_1gl_1_1vk2_1_1_descriptor_set_1_1_write.html#a5c2a25ebc211daec9185f1079cb3eeb1',1,'tz::gl::vk2::DescriptorSet::Write']]], + ['set_5fbuffer_18',['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_19',['set_data',['../classtz_1_1gl_1_1ogl2_1_1image.html#a7244f6f3bbb421d3f3a7f770ab70c886',1,'tz::gl::ogl2::image']]], + ['set_5fdevice_20',['set_device',['../classtz_1_1gl_1_1vk2_1_1_descriptor_layout_builder.html#a8718cf9f569caf8dac4d4a08741925d0',1,'tz::gl::vk2::DescriptorLayoutBuilder']]], + ['set_5fimage_21',['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_22',['set_layouts',['../structtz_1_1gl_1_1vk2_1_1_descriptor_pool_1_1_allocation.html#adfe5a4a22dc012db515ff70ff5e39b7d',1,'tz::gl::vk2::DescriptorPool::Allocation']]], + ['set_5foptions_23',['set_options',['../classtz_1_1gl_1_1renderer__info.html#acd63326412fa7a90e2abe5021f5202fb',1,'tz::gl::renderer_info']]], + ['set_5foutput_24',['set_output',['../classtz_1_1gl_1_1renderer__info.html#abbd793271fd70297cf47034425c09cc6',1,'tz::gl::renderer_info']]], + ['set_5frender_5ftarget_25',['set_render_target',['../classtz_1_1gl_1_1_output_manager.html#aab56ee1c79ecceba987b04b8e28b873b',1,'tz::gl::OutputManager']]], + ['set_5ftarget_26',['set_target',['../classtz_1_1message__passer.html#a2bcc0abca0917032cd6d9790f03946a4',1,'tz::message_passer::set_target(message_receiver< M, true > &target)'],['../classtz_1_1message__passer.html#aa9c5137ae8bbdaf33295c0819e6b6609',1,'tz::message_passer::set_target(message_receiver< M, false > &target)']]], + ['sets_27',['Descriptor Layouts and Sets',['../group__tz__gl__vk__descriptors.html',1,'']]], + ['sets_28',['sets',['../structtz_1_1gl_1_1vk2_1_1_descriptor_pool_1_1_allocation_result.html#a6181eaf11bd25e3b3819e2ea5112f3ea',1,'tz::gl::vk2::DescriptorPool::AllocationResult']]], + ['setscissordynamic_29',['SetScissorDynamic',['../structtz_1_1gl_1_1vk2_1_1_vulkan_command_1_1_set_scissor_dynamic.html',1,'tz::gl::vk2::VulkanCommand']]], + ['shader_30',['shader',['../classtz_1_1gl_1_1ogl2_1_1shader.html',1,'tz::gl::ogl2']]], + ['shader_31',['Shader',['../classtz_1_1gl_1_1vk2_1_1_shader.html',1,'tz::gl::vk2']]], + ['shader_32',['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_20programs_20and_20modules_33',['Shader Programs and Modules',['../group__tz__gl__vk__graphics__pipeline__shader.html',1,'']]], + ['shader_5finfo_34',['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_35',['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_36',['shader_meta',['../structtz_1_1gl_1_1shader__meta.html',1,'tz::gl']]], + ['shader_5fmodule_37',['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_38',['shader_module_info',['../structtz_1_1gl_1_1ogl2_1_1shader__module__info.html',1,'tz::gl::ogl2']]], + ['shader_5fsampler_39',['shader_sampler',['../structtz_1_1gl_1_1ogl2_1_1image__info.html#ade70efe048f382bcea0469c6aa5b71e5',1,'tz::gl::ogl2::image_info']]], + ['shader_5fstorage_40',['shader_storage',['../group__tz__gl__ogl2__buffers.html#gga2d4cfcc22205d2276ef7347cf6e1c1edad76cc0c2dd3511b4bbdddd8f00dd1a0c',1,'tz::gl::ogl2']]], + ['shader_5ftype_41',['shader_type',['../group__tz__gl__ogl2__shader.html#ga6f74da2ab2ba8d9a9e73815fa16ac5f4',1,'tz::gl::ogl2']]], + ['shaderdrawparameters_42',['ShaderDrawParameters',['../group__tz__gl__vk__extension.html#gga6744c8f7d1276d6d9ae861b21c489505a209aad0772152a5828a2dbbf9d63cd10',1,'tz::gl::vk2']]], + ['shaderinfo_43',['ShaderInfo',['../structtz_1_1gl_1_1vk2_1_1_shader_info.html',1,'tz::gl::vk2']]], + ['shadermanager_44',['ShaderManager',['../classtz_1_1gl_1_1_shader_manager.html',1,'tz::gl::ShaderManager'],['../classtz_1_1gl_1_1_shader_manager.html#a02c2d7d722419d8f8de9d48bbab4ab6a',1,'tz::gl::ShaderManager::ShaderManager(const shader_info &sinfo)'],['../classtz_1_1gl_1_1_shader_manager.html#ae2b9fa51036eab3ed06803a31cdd3278',1,'tz::gl::ShaderManager::ShaderManager()']]], + ['shadermodule_45',['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_46',['ShaderModuleInfo',['../structtz_1_1gl_1_1vk2_1_1_shader_module_info.html',1,'tz::gl::vk2']]], + ['shaderpipelinedata_47',['ShaderPipelineData',['../structtz_1_1gl_1_1vk2_1_1_shader_pipeline_data.html',1,'tz::gl::vk2']]], + ['shaderresource_48',['ShaderResource',['../group__tz__gl__vk__image.html#gga4ca55be3d1c101900d800a78deeb595fada4ef1bdf2d2fce1cfc6fd62870a44ef',1,'tz::gl::vk2']]], + ['shaderresourceread_49',['ShaderResourceRead',['../group__tz__gl__vk__graphics__pipeline__render__pass.html#ggaa5dd0142a36cd59d14dff54eed67c3dfa0f723650d92d002ccabaac11c5ffa52a',1,'tz::gl::vk2']]], + ['shaderresourcewrite_50',['ShaderResourceWrite',['../group__tz__gl__vk__graphics__pipeline__render__pass.html#ggaa5dd0142a36cd59d14dff54eed67c3dfaefa1ac5bfa2d8083d613414fe67a03e6',1,'tz::gl::vk2']]], + ['shaders_51',['Shaders',['../group__tz__gl__ogl2__shader.html',1,'']]], + ['shadertype_52',['ShaderType',['../group__tz__gl__vk__graphics__pipeline__shader.html#gaa9de8cdcc58245f0d43c98fef1a1ddcb',1,'tz::gl::vk2']]], + ['sign_53',['sign',['../group__tzsl__math.html#ga456f66d300ef1a241332db1b3a4adc3f',1,'tz::math']]], + ['signal_54',['signal',['../classtz_1_1gl_1_1vk2_1_1_timeline_semaphore.html#a07294686a9c9007d9eea477648ddb307',1,'tz::gl::vk2::TimelineSemaphore']]], + ['signal_5ffence_55',['signal_fence',['../structtz_1_1gl_1_1vk2_1_1_swapchain_1_1_image_acquisition.html#a647f591e840a676dbcb5755ec6c0f940',1,'tz::gl::vk2::Swapchain::ImageAcquisition']]], + ['signal_5fsemaphore_56',['signal_semaphore',['../structtz_1_1gl_1_1vk2_1_1_swapchain_1_1_image_acquisition.html#ae57cd3f44536e214c569b1dc0e12a672',1,'tz::gl::vk2::Swapchain::ImageAcquisition']]], + ['signalinfo_57',['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_58',['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_59',['simplex',['../group__tzsl__noise.html#ga3281f996870e4b9f9a9173cd645d5be5',1,'tz::noise']]], + ['sin_60',['sin',['../group__tzsl__math.html#ga8c0f033ba72fe4acebee70271cfb2449',1,'tz::math']]], + ['size_61',['size',['../structtz_1_1memblk.html#ad796040227144bf5f5db10715574cffd',1,'tz::memblk::size'],['../structtz_1_1gl_1_1renderer__edit_1_1buffer__resize.html#a4a85274a895df6d6b082757bebf00610',1,'tz::gl::renderer_edit::buffer_resize::size'],['../classtz_1_1free__list.html#a340afa2c2a2522af1e19fb14346b1c90',1,'tz::free_list::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()']]], + ['size_5fbytes_62',['size_bytes',['../structtz_1_1gl_1_1ogl2_1_1buffer__info.html#aefd5fac590369ead83ea3c1e79fb8445',1,'tz::gl::ogl2::buffer_info::size_bytes'],['../structtz_1_1gl_1_1vk2_1_1buffer__info.html#a6d5e43d4fa4bde6c5bf0569eafdb21b3',1,'tz::gl::vk2::buffer_info::size_bytes']]], + ['slab_63',['slab',['../classtz_1_1lua_1_1slab.html',1,'tz::lua']]], + ['slab_5fallocator_64',['slab_allocator',['../classtz_1_1slab__allocator.html',1,'tz']]], + ['smooth_5fstep_65',['smooth_step',['../group__tzsl__math.html#gae657986f8605cc005b02cbfdf92cd39c',1,'tz::math']]], + ['source_5faccess_66',['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_67',['source_loc',['../structtz_1_1detail_1_1source__loc.html',1,'tz::detail']]], + ['source_5fstage_68',['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_69',['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_70',['sqrt',['../group__tzsl__math.html#gaa2770f89b7066b4c45909e272d9e0b36',1,'tz::math']]], + ['src_71',['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'],['../structtz_1_1gl_1_1vk2_1_1_vulkan_command_1_1_image_copy_image.html#a63e806b78fd1b7055dfec0ab254397ab',1,'tz::gl::vk2::VulkanCommand::ImageCopyImage::src']]], + ['src_5foffset_72',['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_73',['stack_allocator',['../classtz_1_1stack__allocator.html',1,'tz']]], + ['state_74',['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_75',['Fixed Pipeline State Values',['../group__tz__gl__vk__graphics__pipeline__fixed.html',1,'']]], + ['static_5faccess_76',['static_access',['../group__tz__gl2__res.html#ggac9293366fa49e7f476827595ca80fbbba79479f45c4b1b3b8a03b386762040a4a',1,'tz::gl']]], + ['static_5ffind_77',['static_find',['../group__tz__core__algorithms.html#gac864efe5932f846519806594da168044',1,'tz']]], + ['static_5ffixed_78',['static_fixed',['../group__tz__gl__ogl2__buffers.html#ggae0f51febb963a7dc9fce3cc2208559a6acef5a454d703f41abcc7b138d3739664',1,'tz::gl::ogl2']]], + ['static_5ffor_5ft_79',['static_for_t',['../structtz_1_1static__for__t.html',1,'tz']]], + ['static_5ffor_5ft_3c_20n_2c_20n_20_3e_80',['static_for_t< N, N >',['../structtz_1_1static__for__t_3_01_n_00_01_n_01_4.html',1,'tz']]], + ['stencil_5ftesting_81',['stencil_testing',['../structtz_1_1gl_1_1vk2_1_1_depth_stencil_state.html#aec62502ba4fdab19d6223e9e87eac2e5',1,'tz::gl::vk2::DepthStencilState']]], + ['step_82',['step',['../group__tzsl__math.html#ga2d878b167178a4a3a07fc30818195451',1,'tz::math']]], + ['storagebuffer_83',['StorageBuffer',['../group__tz__gl__vk__buffer.html#gga0c6ff78fc058c3e209ba59dc1b2c02a6a439f57c2c466c89db942b3de48298b2b',1,'tz::gl::vk2']]], + ['storageimage_84',['StorageImage',['../group__tz__gl__vk__image.html#gga6ecb2d248a682aac08d93f4a7078161eaa078fa7ad769f9e7b53b8c42e3b7bbab',1,'tz::gl::vk2']]], + ['store_85',['Store',['../group__tz__gl__vk__graphics__pipeline__render__pass.html#ggab92f36711ba7bb90caf0e4a39748ed7dafdb0c388de01d545017cdf9ccf00eb72',1,'tz::gl::vk2']]], + ['storeop_86',['StoreOp',['../group__tz__gl__vk__graphics__pipeline__render__pass.html#gab92f36711ba7bb90caf0e4a39748ed7d',1,'tz::gl::vk2']]], + ['stride_87',['stride',['../structtz_1_1gl_1_1vk2_1_1_vertex_input_state_1_1_binding.html#a8e55514231fa7e83201c3c66d91e95ad',1,'tz::gl::vk2::VertexInputState::Binding']]], + ['string_5fget_5fwidth_5fpixels_88',['string_get_width_pixels',['../classtz_1_1ren_1_1text__renderer.html#a18bc8de9ab6cbe4521a1e7a98fe75b4e',1,'tz::ren::text_renderer']]], + ['string_5flocator_89',['string_locator',['../structstring__locator.html',1,'string_locator'],['../structtz_1_1ren_1_1char__storage_1_1string__locator.html',1,'tz::ren::char_storage::string_locator']]], + ['string_5fset_5fcolour_90',['string_set_colour',['../classtz_1_1ren_1_1text__renderer.html#a50de1e749ab399f45f66622ecfb0d6aa',1,'tz::ren::text_renderer']]], + ['string_5fset_5ftext_91',['string_set_text',['../classtz_1_1ren_1_1text__renderer.html#aead564036ffbb65ec4e2d002b7b85e49',1,'tz::ren::text_renderer']]], + ['string_5fset_5ftransform_92',['string_set_transform',['../classtz_1_1ren_1_1text__renderer.html#af8de3b5bdf5e1593426c636323eaaf73',1,'tz::ren::text_renderer']]], + ['submesh_93',['submesh',['../structtz_1_1io_1_1gltf__mesh_1_1submesh.html',1,'tz::io::gltf_mesh']]], + ['submit_94',['submit',['../classtz_1_1gl_1_1vk2_1_1hardware_1_1_queue.html#a8a26295a1157308783f3606ddd47922e',1,'tz::gl::vk2::hardware::Queue']]], + ['submitinfo_95',['SubmitInfo',['../structtz_1_1gl_1_1vk2_1_1hardware_1_1_queue_1_1_submit_info.html',1,'tz::gl::vk2::hardware::Queue']]], + ['success_96',['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_97',['Success_NoIssue',['../classtz_1_1gl_1_1vk2_1_1hardware_1_1_queue.html#a85b458bfb664176d140abf3b6b627e67a87f6de9428b91fd7feaecc6df574ad08',1,'tz::gl::vk2::hardware::Queue']]], + ['success_5fsuboptimal_98',['Success_Suboptimal',['../classtz_1_1gl_1_1vk2_1_1hardware_1_1_queue.html#a85b458bfb664176d140abf3b6b627e67a2debf81c3d7e76f030f7d7577971f530',1,'tz::gl::vk2::hardware::Queue']]], + ['supported_99',['supported',['../classtz_1_1gl_1_1vk2_1_1_timeline_semaphore.html#af457dd163f8a75cf2f136cc49cf5d3bd',1,'tz::gl::vk2::TimelineSemaphore']]], + ['supports_5fimage_5fcolour_5fformat_100',['supports_image_colour_format',['../classtz_1_1gl_1_1vk2_1_1_physical_device.html#a988cc3ea73caa2a2e772db01d056afd0',1,'tz::gl::vk2::PhysicalDevice']]], + ['supports_5fimage_5fdepth_5fformat_101',['supports_image_depth_format',['../classtz_1_1gl_1_1vk2_1_1_physical_device.html#a768d8f636ffe994ccbe90dd05534d86c',1,'tz::gl::vk2::PhysicalDevice']]], + ['supports_5fimage_5fsampled_5fformat_102',['supports_image_sampled_format',['../classtz_1_1gl_1_1vk2_1_1_physical_device.html#a7ccfe2ddbd54d7fade6451e6bb037d4b',1,'tz::gl::vk2::PhysicalDevice']]], + ['supports_5fupdate_5fafter_5fbind_103',['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_104',['Presentation and Window Surface Interation (WSI)',['../group__tz__gl__vk__presentation.html',1,'']]], + ['surfacepresentmode_105',['SurfacePresentMode',['../group__tz__gl__vk__presentation.html#ga8e6e925d93013e81273325bc8764577a',1,'tz::gl::vk2']]], + ['swapchain_106',['Swapchain',['../classtz_1_1gl_1_1vk2_1_1_swapchain.html',1,'tz::gl::vk2']]], + ['swapchain_107',['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'],['../structtz_1_1gl_1_1vk2_1_1_swapchain_image_info.html#a52a6891ccfa077153ff0a0a2f1ec4de5',1,'tz::gl::vk2::SwapchainImageInfo::swapchain']]], + ['swapchain_108',['Swapchain',['../classtz_1_1gl_1_1vk2_1_1_swapchain.html#a21e69ef871b919a44c4b7d998170c298',1,'tz::gl::vk2::Swapchain']]], + ['swapchain_5fimage_5fcount_5fminimum_109',['swapchain_image_count_minimum',['../structtz_1_1gl_1_1vk2_1_1_swapchain_info.html#a9526addcd9a0a9a5b1d54ef5905ad91c',1,'tz::gl::vk2::SwapchainInfo']]], + ['swapchain_5fimage_5findex_110',['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_111',['SwapchainExtent',['../structtz_1_1gl_1_1vk2_1_1_physical_device_surface_capability_info_1_1_swapchain_extent.html',1,'tz::gl::vk2::PhysicalDeviceSurfaceCapabilityInfo']]], + ['swapchainimageinfo_112',['SwapchainImageInfo',['../structtz_1_1gl_1_1vk2_1_1_swapchain_image_info.html',1,'tz::gl::vk2']]], + ['swapchaininfo_113',['SwapchainInfo',['../structtz_1_1gl_1_1vk2_1_1_swapchain_info.html',1,'tz::gl::vk2']]], + ['swizzle_114',['swizzle',['../classtz_1_1vector.html#a8eb40003afd7a439c49c08810da3d119',1,'tz::vector']]], + ['synchronisation_20primitives_115',['Synchronisation Primitives',['../group__tz__gl__vk__sync.html',1,'']]], + ['system_116',['Job System',['../group__tz__core__job.html',1,'']]], + ['system_20integration_117',['Window System Integration',['../group__tz__wsi.html',1,'']]], + ['system_5ftime_118',['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..a01af0864b --- /dev/null +++ b/search/all_13.js @@ -0,0 +1,99 @@ +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']]], + ['text_5frenderer_9',['text_renderer',['../classtz_1_1ren_1_1text__renderer.html',1,'tz::ren::text_renderer'],['../classtz_1_1ren_1_1text__renderer.html#ae06e842a87baade760a8d60b6903625f',1,'tz::ren::text_renderer::text_renderer()']]], + ['texture_5fcapacity_10',['texture_capacity',['../structtz_1_1ren_1_1animation__renderer_1_1info.html#a5e59105a82a524741ee94e6d2ce9afca',1,'tz::ren::animation_renderer::info::texture_capacity'],['../structtz_1_1ren_1_1impl_1_1render__pass_1_1info.html#a43c17d940af720bb0ab8c94df3b38594',1,'tz::ren::impl::render_pass::info::texture_capacity']]], + ['texture_5flocator_11',['texture_locator',['../structtexture__locator.html',1,'texture_locator'],['../structtz_1_1ren_1_1impl_1_1texture__locator.html',1,'tz::ren::impl::texture_locator']]], + ['texture_5fmanager_12',['texture_manager',['../classtz_1_1ren_1_1impl_1_1texture__manager.html',1,'tz::ren::impl']]], + ['timeline_13',['timeline',['../structtz_1_1gl_1_1schedule.html#a11e0249c57327983d389d127cd7158f4',1,'tz::gl::schedule']]], + ['timeline_5ft_14',['timeline_t',['../structtz_1_1gl_1_1timeline__t.html',1,'tz::gl']]], + ['timelinesemaphore_15',['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_16',['TimelineSemaphores',['../group__tz__gl__vk__extension.html#gga6744c8f7d1276d6d9ae861b21c489505a2ba71b83fa5ce2f8870a1259a92cd76b',1,'tz::gl::vk2']]], + ['timeout_17',['timeout',['../structtz_1_1gl_1_1vk2_1_1_swapchain_1_1_image_acquisition.html#a61c55696db6f8a36d378df188bada03a',1,'tz::gl::vk2::Swapchain::ImageAcquisition']]], + ['title_18',['title',['../structtz_1_1wsi_1_1window__info.html#a0395b7dd58ed3b717fb8be002439c637',1,'tz::wsi::window_info']]], + ['to_5ffit_5flayout_19',['to_fit_layout',['../structtz_1_1gl_1_1vk2_1_1_descriptor_pool_info.html#ac78c3e3e5641dd67c83df522f8b2ed36',1,'tz::gl::vk2::DescriptorPoolInfo']]], + ['to_5fstring_20',['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_21',['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_22',['Top',['../group__tz__gl__vk__graphics__pipeline.html#ggaa581c5a329a76e48f41ca02bd263251aaa4ffdcf0dc1f31b9acaf295d75b51d00',1,'tz::gl::vk2']]], + ['topazplatformdata_23',['TopazPlatformData',['../structtz_1_1dbgui_1_1_topaz_platform_data.html',1,'tz::dbgui']]], + ['topazrenderdata_24',['TopazRenderData',['../structtz_1_1dbgui_1_1_topaz_render_data.html',1,'tz::dbgui']]], + ['topazshaderrenderdata_25',['TopazShaderRenderData',['../structtz_1_1dbgui_1_1_topaz_shader_render_data.html',1,'tz::dbgui']]], + ['topology_26',['topology',['../structtz_1_1gl_1_1render__state_1_1_graphics.html#a1fcc1dbc2c8cf0ab7bfe4a5627bfa1e4',1,'tz::gl::render_state::Graphics']]], + ['transfercommands_27',['TransferCommands',['../group__tz__gl__vk__graphics__pipeline.html#ggaa581c5a329a76e48f41ca02bd263251aa6ceeb738294823c48050af12328d0606',1,'tz::gl::vk2']]], + ['transferdestination_28',['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_29',['TransferOperationRead',['../group__tz__gl__vk__graphics__pipeline__render__pass.html#ggaa5dd0142a36cd59d14dff54eed67c3dfa9e73033c1e7e3a919d6bc35d007c5fdd',1,'tz::gl::vk2']]], + ['transferoperationwrite_30',['TransferOperationWrite',['../group__tz__gl__vk__graphics__pipeline__render__pass.html#ggaa5dd0142a36cd59d14dff54eed67c3dfac3de85a886292aa73480d52a5cfeb2df',1,'tz::gl::vk2']]], + ['transfersource_31',['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_32',['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_33',['transform_hierarchy< std::uint32_t >',['../classtz_1_1transform__hierarchy.html',1,'tz']]], + ['transform_5fnode_34',['transform_node',['../structtz_1_1transform__node.html',1,'tz']]], + ['transitionimagelayout_35',['TransitionImageLayout',['../structtz_1_1gl_1_1vk2_1_1_vulkan_command_1_1_transition_image_layout.html',1,'tz::gl::vk2::VulkanCommand']]], + ['translate_36',['translate',['../group__tz__core.html#gacea5d629885bd9192ee6e9325a236707',1,'tz']]], + ['transpose_37',['transpose',['../classtz_1_1matrix.html#a438a39d4cab41797bcab3df105e66d3a',1,'tz::matrix::transpose()'],['../group__tzsl__matrix.html#ga96a675595f89d8f83464db22e7d54b4d',1,'tz::matrix::transpose()']]], + ['tri_5fcount_38',['tri_count',['../structtz_1_1gl_1_1render__state_1_1_graphics.html#a0e082f315122781cecfbc7063397c063',1,'tz::gl::render_state::Graphics::tri_count'],['../structtz_1_1gl_1_1renderer__edit_1_1render__config.html#a13eb389536539f9f26fd7d8e5c369f26',1,'tz::gl::renderer_edit::render_config::tri_count']]], + ['triangle_5fstrips_39',['triangle_strips',['../group__tz__gl2__renderer.html#ggadf9f70703e9829dbdd82abc88dca23bda6312d01627db1038b43322467edb543a',1,'tz::gl']]], + ['triangles_40',['triangles',['../group__tz__gl2__renderer.html#ggadf9f70703e9829dbdd82abc88dca23bda817d7d587258bac88b24567b17bdda87',1,'tz::gl']]], + ['trs_41',['trs',['../structtz_1_1trs.html',1,'tz']]], + ['trunc_42',['trunc',['../group__tzsl__math.html#ga2bff4ac0c236ad62c302464b9eb35c74',1,'tz::math']]], + ['ttf_43',['ttf',['../classtz_1_1io_1_1ttf.html',1,'tz::io']]], + ['ttf_5fcmap_5fencoding_5frecord_44',['ttf_cmap_encoding_record',['../structtz_1_1io_1_1ttf__cmap__encoding__record.html',1,'tz::io']]], + ['ttf_5fcmap_5ftable_45',['ttf_cmap_table',['../structtz_1_1io_1_1ttf__cmap__table.html',1,'tz::io']]], + ['ttf_5fglyf_5felem_46',['ttf_glyf_elem',['../structtz_1_1io_1_1ttf__glyf__elem.html',1,'tz::io']]], + ['ttf_5fglyf_5ftable_47',['ttf_glyf_table',['../structtz_1_1io_1_1ttf__glyf__table.html',1,'tz::io']]], + ['ttf_5fglyph_48',['ttf_glyph',['../structtz_1_1io_1_1ttf__glyph.html',1,'tz::io']]], + ['ttf_5fglyph_5fcontour_49',['ttf_glyph_contour',['../structtz_1_1io_1_1ttf__glyph__contour.html',1,'tz::io']]], + ['ttf_5fglyph_5fmap_50',['ttf_glyph_map',['../structtz_1_1io_1_1ttf__glyph__map.html',1,'tz::io']]], + ['ttf_5fglyph_5fshape_5finfo_51',['ttf_glyph_shape_info',['../structtz_1_1io_1_1ttf__glyph__shape__info.html',1,'tz::io']]], + ['ttf_5fglyph_5fspacing_5finfo_52',['ttf_glyph_spacing_info',['../structtz_1_1io_1_1ttf__glyph__spacing__info.html',1,'tz::io']]], + ['ttf_5fhead_5ftable_53',['ttf_head_table',['../structtz_1_1io_1_1ttf__head__table.html',1,'tz::io']]], + ['ttf_5fheader_54',['ttf_header',['../structtz_1_1io_1_1ttf__header.html',1,'tz::io']]], + ['ttf_5fhhea_5ftable_55',['ttf_hhea_table',['../structtz_1_1io_1_1ttf__hhea__table.html',1,'tz::io']]], + ['ttf_5fhmtx_5ftable_56',['ttf_hmtx_table',['../structtz_1_1io_1_1ttf__hmtx__table.html',1,'tz::io']]], + ['ttf_5floca_5ftable_57',['ttf_loca_table',['../structtz_1_1io_1_1ttf__loca__table.html',1,'tz::io']]], + ['ttf_5fmaxp_5ftable_58',['ttf_maxp_table',['../structtz_1_1io_1_1ttf__maxp__table.html',1,'tz::io']]], + ['ttf_5ftable_59',['ttf_table',['../structtz_1_1io_1_1ttf__table.html',1,'tz::io']]], + ['tuple_5felement_3c_20i_2c_20tz_3a_3avector_3c_20t_2c_20s_20_3e_20_3e_60',['tuple_element< I, tz::vector< T, S > >',['../structstd_1_1tuple__element_3_01_i_00_01tz_1_1vector_3_01_t_00_01_s_01_4_01_4.html',1,'std']]], + ['tuple_5fsize_3c_20tz_3a_3avector_3c_20t_2c_20s_20_3e_20_3e_61',['tuple_size< tz::vector< T, S > >',['../structstd_1_1tuple__size_3_01tz_1_1vector_3_01_t_00_01_s_01_4_01_4.html',1,'std']]], + ['type_62',['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'],['../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_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']]], + ['tz_3a_3aaction_63',['action',['../concepttz_1_1action.html',1,'tz']]], + ['tz_3a_3aallocator_64',['allocator',['../concepttz_1_1allocator.html',1,'tz']]], + ['tz_3a_3aarithmetic_65',['arithmetic',['../concepttz_1_1arithmetic.html',1,'tz']]], + ['tz_3a_3aatomic_66',['atomic',['../namespacetz_1_1atomic.html',1,'tz']]], + ['tz_3a_3aconst_5ftype_67',['const_type',['../concepttz_1_1const__type.html',1,'tz']]], + ['tz_3a_3acontainer_68',['container',['../concepttz_1_1container.html',1,'tz']]], + ['tz_3a_3adebug_69',['debug',['../namespacetz_1_1debug.html',1,'tz']]], + ['tz_3a_3aenum_5fclass_70',['enum_class',['../concepttz_1_1enum__class.html',1,'tz']]], + ['tz_3a_3afunction_71',['function',['../concepttz_1_1function.html',1,'tz']]], + ['tz_3a_3agl_3a_3abuffer_5fcomponent_5ftype_72',['buffer_component_type',['../concepttz_1_1gl_1_1buffer__component__type.html',1,'tz::gl']]], + ['tz_3a_3agl_3a_3adevice_5ftype_73',['device_type',['../concepttz_1_1gl_1_1device__type.html',1,'tz::gl']]], + ['tz_3a_3agl_3a_3aimage_5fcomponent_5ftype_74',['image_component_type',['../concepttz_1_1gl_1_1image__component__type.html',1,'tz::gl']]], + ['tz_3a_3agl_3a_3arenderer_5ftype_75',['renderer_type',['../concepttz_1_1gl_1_1renderer__type.html',1,'tz::gl']]], + ['tz_3a_3agl_3a_3avk2_3a_3aformat_5ftraits_76',['format_traits',['../namespacetz_1_1gl_1_1vk2_1_1format__traits.html',1,'tz::gl::vk2']]], + ['tz_3a_3agl_3a_3avk2_3a_3apresent_5ftraits_77',['present_traits',['../namespacetz_1_1gl_1_1vk2_1_1present__traits.html',1,'tz::gl::vk2']]], + ['tz_3a_3ahas_5fdbgui_5fmethod_78',['has_dbgui_method',['../concepttz_1_1has__dbgui__method.html',1,'tz']]], + ['tz_3a_3ais_5fprintable_79',['is_printable',['../concepttz_1_1is__printable.html',1,'tz']]], + ['tz_3a_3amath_80',['math',['../namespacetz_1_1math.html',1,'tz']]], + ['tz_3a_3amatrix_81',['matrix',['../namespacetz_1_1matrix.html',1,'tz']]], + ['tz_3a_3amesh_82',['mesh',['../namespacetz_1_1mesh.html',1,'tz']]], + ['tz_3a_3amessage_83',['message',['../concepttz_1_1message.html',1,'tz']]], + ['tz_3a_3anative_5favailable_84',['native_available',['../concepttz_1_1native__available.html',1,'tz']]], + ['tz_3a_3anoise_85',['noise',['../namespacetz_1_1noise.html',1,'tz']]], + ['tz_3a_3anullable_86',['nullable',['../concepttz_1_1nullable.html',1,'tz']]], + ['tz_3a_3anumber_87',['number',['../concepttz_1_1number.html',1,'tz']]], + ['tz_3a_3arandom_5faccess_5fcontainer_88',['random_access_container',['../concepttz_1_1random__access__container.html',1,'tz']]], + ['tz_3a_3arange_5fof_89',['range_of',['../concepttz_1_1range__of.html',1,'tz']]], + ['tz_3a_3atrivially_5fcopyable_90',['trivially_copyable',['../concepttz_1_1trivially__copyable.html',1,'tz']]], + ['tz_3a_3aunique_5fcloneable_5ftype_91',['unique_cloneable_type',['../concepttz_1_1unique__cloneable__type.html',1,'tz']]], + ['tz_3a_3awsi_3a_3awindow_5fapi_92',['window_api',['../concepttz_1_1wsi_1_1window__api.html',1,'tz::wsi']]], + ['tz_3a_3awsi_3a_3awindow_5fflag_93',['window_flag',['../namespacetz_1_1wsi_1_1window__flag.html',1,'tz::wsi']]], + ['tz_5flua_5fdata_5fstore_94',['tz_lua_data_store',['../structtz_1_1tz__lua__data__store.html',1,'tz']]], + ['tzsl_20api_20reference_95',['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..2397df75a0 --- /dev/null +++ b/search/all_14.js @@ -0,0 +1,22 @@ +var searchData= +[ + ['ui_0',['Debug UI',['../group__tz__dbgui.html',1,'']]], + ['undefined_1',['Undefined',['../group__tz__gl__vk__image.html#gga4ca55be3d1c101900d800a78deeb595faec0fc0100c4fc1ce4eea230c3dc10360',1,'tz::gl::vk2']]], + ['undefined_2',['undefined',['../group__tz__gl2.html#gga79b99b79311ee4f6dd10a6dfada3a235a5e543256c480ac577d30f76f9120eb74',1,'undefinedtz::gl'],['../group__tz__gl__vk__image.html#ggaf7d399489dcebca1c95d5852c8d7ec6ea5e543256c480ac577d30f76f9120eb74',1,'undefinedtz::gl::vk2']]], + ['uniform_3',['uniform',['../group__tz__gl__ogl2__buffers.html#gga2d4cfcc22205d2276ef7347cf6e1c1edaa489ffed938ef1b9e86889bc413501ee',1,'tz::gl::ogl2']]], + ['uniformbuffer_4',['UniformBuffer',['../group__tz__gl__vk__buffer.html#gga0c6ff78fc058c3e209ba59dc1b2c02a6a88f133adfed6c854e5731cdffbf208cf',1,'tz::gl::vk2']]], + ['uniformbufferread_5',['UniformBufferRead',['../group__tz__gl__vk__graphics__pipeline__render__pass.html#ggaa5dd0142a36cd59d14dff54eed67c3dfa1f13b30fd405557096bb743af090f50d',1,'tz::gl::vk2']]], + ['unique_5fcloneable_6',['unique_cloneable',['../classtz_1_1unique__cloneable.html',1,'tz']]], + ['unique_5fcloneable_3c_20ioutput_20_3e_7',['unique_cloneable< ioutput >',['../classtz_1_1unique__cloneable.html',1,'tz']]], + ['unique_5fcloneable_3c_20iresource_20_3e_8',['unique_cloneable< iresource >',['../classtz_1_1unique__cloneable.html',1,'tz']]], + ['unmap_9',['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_10',['unsignal',['../classtz_1_1gl_1_1vk2_1_1_fence.html#a080cf8b09fac04e088098854772d9951',1,'tz::gl::vk2::Fence']]], + ['update_11',['update',['../classtz_1_1ren_1_1impl_1_1render__pass.html#aea86643ccdf5d00deac01a6e6c9d6e16',1,'tz::ren::impl::render_pass::update()'],['../classtz_1_1ren_1_1text__renderer.html#ae5ba48e8527fb97336901b6c8c90dea4',1,'tz::ren::text_renderer::update()']]], + ['update_5fsets_12',['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)']]], + ['updateafterbind_13',['UpdateAfterBind',['../group__tz__gl__vk__descriptors.html#ggaf15b5e240b6c64c9dad040171f553123a4b8308424b6fb4b70803778cfc461015',1,'tz::gl::vk2']]], + ['updaterequest_14',['UpdateRequest',['../classtz_1_1gl_1_1vk2_1_1_descriptor_pool_1_1_update_request.html',1,'tz::gl::vk2::DescriptorPool']]], + ['updateunusedwhilepending_15',['UpdateUnusedWhilePending',['../group__tz__gl__vk__descriptors.html#ggaf15b5e240b6c64c9dad040171f553123a74985606c2a8d95e3aa784b1f882ba44',1,'tz::gl::vk2']]], + ['usage_16',['usage',['../structtz_1_1gl_1_1vk2_1_1buffer__info.html#ace18d8d8f8032d2ed6e5b5fc0edf4bcb',1,'tz::gl::vk2::buffer_info::usage'],['../structtz_1_1gl_1_1vk2_1_1image__info.html#a3af56255762adba4570abd348f3eca62',1,'tz::gl::vk2::image_info::usage']]], + ['use_17',['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_18',['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..bf7da88778 --- /dev/null +++ b/search/all_15.js @@ -0,0 +1,68 @@ +var searchData= +[ + ['valid_0',['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,'']]], + ['variablecount_3',['VariableCount',['../group__tz__gl__vk__descriptors.html#ggaf15b5e240b6c64c9dad040171f553123a0a4625b183e121c4198d645f0a9bf07e',1,'tz::gl::vk2']]], + ['variant_4',['variant',['../structtz_1_1gl_1_1vk2_1_1_vulkan_command.html#a554187774b0244c87935aa88c50b4904',1,'tz::gl::vk2::VulkanCommand']]], + ['vec1float16_5',['Vec1Float16',['../group__tz__gl__vk__graphics__pipeline__fixed.html#gga486655233c597343f461a27c5316d087a42e64b5b4480aa1d3d11cb1bfd2ee012',1,'tz::gl::vk2']]], + ['vec1float32_6',['Vec1Float32',['../group__tz__gl__vk__graphics__pipeline__fixed.html#gga486655233c597343f461a27c5316d087a619665b33f0fe33e3c277f0191a3f7d6',1,'tz::gl::vk2']]], + ['vec2_7',['vec2',['../group__tz__core.html#ga262ea1b2260b0ff078f094b988a10b2a',1,'tz']]], + ['vec2float32_8',['Vec2Float32',['../group__tz__gl__vk__graphics__pipeline__fixed.html#gga486655233c597343f461a27c5316d087a63264646c58c78cb27b293519e3d0dbb',1,'tz::gl::vk2']]], + ['vec2float64_9',['Vec2Float64',['../group__tz__gl__vk__graphics__pipeline__fixed.html#gga486655233c597343f461a27c5316d087ad173987eb549e79990c7a167421f6db7',1,'tz::gl::vk2']]], + ['vec2i_10',['vec2i',['../group__tz__core.html#ga5cad3ca7517fb9a8a2bf5608967bfc6a',1,'tz']]], + ['vec2i32_11',['vec2i32',['../group__tz__core.html#gabaa70169c039c641e0a8f132ffbbd6cf',1,'tz']]], + ['vec2s_12',['vec2s',['../group__tz__core.html#ga936036e83becf8bb87f42679c8be6ca8',1,'tz']]], + ['vec2ui_13',['vec2ui',['../group__tz__core.html#ga65483b2a3fa1540d80c174c91d3e345e',1,'tz']]], + ['vec2ui32_14',['vec2ui32',['../group__tz__core.html#gafd38101b802ade2132acbcdbd0056bfb',1,'tz']]], + ['vec2us_15',['vec2us',['../group__tz__core.html#ga1e4b91a1a848d68a066561d980beea95',1,'tz']]], + ['vec3_16',['vec3',['../group__tz__core.html#ga15838376fc486efdb2cf2f6913ff4365',1,'tz']]], + ['vec3float48_17',['Vec3Float48',['../group__tz__gl__vk__graphics__pipeline__fixed.html#gga486655233c597343f461a27c5316d087a0ac49216ffcaddb289c055a77cda7470',1,'tz::gl::vk2']]], + ['vec3float96_18',['Vec3Float96',['../group__tz__gl__vk__graphics__pipeline__fixed.html#gga486655233c597343f461a27c5316d087aa83f4627a492b41eb080400fd6af72fa',1,'tz::gl::vk2']]], + ['vec3i_19',['vec3i',['../group__tz__core.html#ga2915b9c8f92a94d89db46bf219ee2213',1,'tz']]], + ['vec3i32_20',['vec3i32',['../group__tz__core.html#ga807dc4f33493c6285ca8a1dbe3033c67',1,'tz']]], + ['vec3s_21',['vec3s',['../group__tz__core.html#ga1c87ebd417525bf9825b4b18d5bf3371',1,'tz']]], + ['vec3ui_22',['vec3ui',['../group__tz__core.html#ga74d257fdaddfff67dec19a42e6caa853',1,'tz']]], + ['vec3ui32_23',['vec3ui32',['../group__tz__core.html#ga7fd80cca0b861079c340bcb96a5ea89b',1,'tz']]], + ['vec3us_24',['vec3us',['../group__tz__core.html#ga74277819bd517749cd04f7d6ee1c9ec0',1,'tz']]], + ['vec4_25',['vec4',['../group__tz__core.html#gaf3eb4e8a0440db6f48eb93e5eb77f3dd',1,'tz']]], + ['vec4float128_26',['Vec4Float128',['../group__tz__gl__vk__graphics__pipeline__fixed.html#gga486655233c597343f461a27c5316d087aeb8909da84a3e8acc08c00ad1c61f9b7',1,'tz::gl::vk2']]], + ['vec4float64_27',['Vec4Float64',['../group__tz__gl__vk__graphics__pipeline__fixed.html#gga486655233c597343f461a27c5316d087a39af6f9354b09edb13fbd0c1c77130f9',1,'tz::gl::vk2']]], + ['vec4i_28',['vec4i',['../group__tz__core.html#ga52147f879b72c7e3206da4bdb44dc68d',1,'tz']]], + ['vec4i32_29',['vec4i32',['../group__tz__core.html#gad290825d17faaf2956bf0d0087681b2c',1,'tz']]], + ['vec4s_30',['vec4s',['../group__tz__core.html#gae4f0e371f0bf375be31de3fb8b8e5d0f',1,'tz']]], + ['vec4ui_31',['vec4ui',['../group__tz__core.html#gaece1e6d1ee4cb5a9e13fc61ecdb1a5f4',1,'tz']]], + ['vec4ui32_32',['vec4ui32',['../group__tz__core.html#ga2ca3531cb55f5d370bc12c78e16afd5a',1,'tz']]], + ['vec4us_33',['vec4us',['../group__tz__core.html#ga0799ec0efe293d7dba43d32967f84e3f',1,'tz']]], + ['vector_34',['vector',['../classtz_1_1vector.html',1,'tz::vector< T, S >'],['../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']]], + ['vector_3c_20float_2c_202_20_3e_35',['vector< float, 2 >',['../classtz_1_1vector.html',1,'tz']]], + ['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_1version.html',1,'tz::version'],['../structtz_1_1initialise__info.html#ad869820ee345fd5b23e8afe5ef4bf40d',1,'tz::initialise_info::version']]], + ['vertex_43',['vertex',['../group__tz__gl__ogl2__shader.html#gga6f74da2ab2ba8d9a9e73815fa16ac5f4a2b5bc093b09bd81f51de433bde9d202a',1,'tz::gl::ogl2']]], + ['vertex_5farray_44',['vertex_array',['../classtz_1_1gl_1_1ogl2_1_1vertex__array.html',1,'tz::gl::ogl2::vertex_array'],['../classtz_1_1gl_1_1ogl2_1_1vertex__array.html#a5f965b5a60d0a2cc1c0623d63a81fd26',1,'tz::gl::ogl2::vertex_array::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,'']]], + ['vertex_5fwrangler_47',['vertex_wrangler',['../classtz_1_1ren_1_1impl_1_1vertex__wrangler.html',1,'tz::ren::impl']]], + ['vertexbuffer_48',['VertexBuffer',['../group__tz__gl__vk__buffer.html#gga0c6ff78fc058c3e209ba59dc1b2c02a6a10461f19cdb5aadba2fc9986be6400bd',1,'tz::gl::vk2']]], + ['vertexbufferread_49',['VertexBufferRead',['../group__tz__gl__vk__graphics__pipeline__render__pass.html#ggaa5dd0142a36cd59d14dff54eed67c3dfaec21703627e9de694102e22b1f2542c0',1,'tz::gl::vk2']]], + ['vertexindexinput_50',['VertexIndexInput',['../group__tz__gl__vk__graphics__pipeline.html#ggaa581c5a329a76e48f41ca02bd263251aa1311d08fb1f8b78c1be3ebb4c53c0e80',1,'tz::gl::vk2']]], + ['vertexinputformat_51',['VertexInputFormat',['../group__tz__gl__vk__graphics__pipeline__fixed.html#ga486655233c597343f461a27c5316d087',1,'tz::gl::vk2']]], + ['vertexinputstate_52',['VertexInputState',['../structtz_1_1gl_1_1vk2_1_1_vertex_input_state.html',1,'tz::gl::vk2']]], + ['vertexpipelineresourcewrite_53',['VertexPipelineResourceWrite',['../group__tz__gl__vk__extension.html#gga6744c8f7d1276d6d9ae861b21c489505ab77badc545def5f132a116dcfab8e272',1,'tz::gl::vk2']]], + ['vertexshader_54',['VertexShader',['../group__tz__gl__vk__graphics__pipeline.html#ggaa581c5a329a76e48f41ca02bd263251aaeb3ca4dac3e206977e0b7d998eefcc33',1,'tz::gl::vk2']]], + ['view_55',['view',['../group__tz__core.html#ga26c5e69afcfbedae7d168b332682483f',1,'tz']]], + ['viewport_5fregion_56',['viewport_region',['../structtz_1_1gl_1_1viewport__region.html',1,'tz::gl']]], + ['viewportstate_57',['ViewportState',['../structtz_1_1gl_1_1vk2_1_1_viewport_state.html',1,'tz::gl::vk2']]], + ['vulkan_58',['Vulkan',['../group__tz__gl2__graphicsapi__vk.html',1,'']]], + ['vulkan_20backend_59',['Vulkan Backend',['../group__tz__gl__vk.html',1,'']]], + ['vulkan_20frontend_60',['Vulkan Frontend',['../group__tz__gl2__graphicsapi__vk__frontend.html',1,'']]], + ['vulkancommand_61',['VulkanCommand',['../structtz_1_1gl_1_1vk2_1_1_vulkan_command.html',1,'tz::gl::vk2']]], + ['vulkandebugmessenger_62',['VulkanDebugMessenger',['../classtz_1_1gl_1_1vk2_1_1_vulkan_debug_messenger.html',1,'tz::gl::vk2']]], + ['vulkaninstance_63',['VulkanInstance',['../classtz_1_1gl_1_1vk2_1_1_vulkan_instance.html',1,'tz::gl::vk2']]], + ['vulkaninstanceinfo_64',['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..067440ba87 --- /dev/null +++ b/search/all_16.js @@ -0,0 +1,37 @@ +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'],['../structtz_1_1gl_1_1vk2_1_1_vulkan_instance_info.html#a281575d59314c0a2b9d40fa5a41da37d',1,'tz::gl::vk2::VulkanInstanceInfo::window'],['../group__tz__core.html#gab3acf7c6e5c5d2d15ac34272799744f0',1,'tz::window()']]], + ['window_11',['Window',['../group__tz__wsi__window.html',1,'']]], + ['window_20surface_20interation_20wsi_12',['Presentation and Window Surface Interation (WSI)',['../group__tz__gl__vk__presentation.html',1,'']]], + ['window_20system_20integration_13',['Window System Integration',['../group__tz__wsi.html',1,'']]], + ['window_5fcount_14',['window_count',['../group__tz__wsi__window.html#ga3d49f486afecfee1fe0739a193267915',1,'tz::wsi']]], + ['window_5fflags_15',['window_flags',['../structtz_1_1wsi_1_1window__info.html#a2bf6cc2849715ae0470c560db1a7678a',1,'tz::wsi::window_info']]], + ['window_5fhandle_16',['window_handle',['../group__tz__wsi__window.html#gab357f7f8806fabf0b27d275f6ba2ab82',1,'tz::wsi']]], + ['window_5fhandle_5ftag_17',['window_handle_tag',['../structtz_1_1wsi_1_1detail_1_1window__handle__tag.html',1,'tz::wsi::detail']]], + ['window_5fhidden_18',['window_hidden',['../group__tz__core.html#ggad12da2cb05946402335871d2e282cbf9a1425bc6356c345ad2056f57cacf44ac4',1,'tz']]], + ['window_5finfo_19',['window_info',['../structtz_1_1wsi_1_1window__info.html',1,'tz::wsi']]], + ['window_5fmanager_20',['window_manager',['../structtz_1_1wsi_1_1window__manager.html',1,'tz::wsi']]], + ['window_5fnoresize_21',['window_noresize',['../group__tz__core.html#ggad12da2cb05946402335871d2e282cbf9a0d043ffc8c61373723263480302c143d',1,'tz']]], + ['window_5foutput_22',['window_output',['../classtz_1_1gl_1_1window__output.html',1,'tz::gl']]], + ['window_5ftransparent_23',['window_transparent',['../group__tz__core.html#ggad12da2cb05946402335871d2e282cbf9a7861ae15fcf4eb409057db8c14e8c10a',1,'tz']]], + ['window_5fwinapi_24',['window_winapi',['../classtz_1_1wsi_1_1impl_1_1window__winapi.html',1,'tz::wsi::impl']]], + ['window_5fx11_25',['window_x11',['../classtz_1_1wsi_1_1impl_1_1window__x11.html',1,'tz::wsi::impl']]], + ['windowsurface_26',['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_27',['wireframe_mode',['../structtz_1_1gl_1_1render__state_1_1_graphics.html#a5289b1d526838e9d3e855ec3ea0b7b55',1,'tz::gl::render_state::Graphics::wireframe_mode'],['../structtz_1_1gl_1_1renderer__edit_1_1render__config.html#a1f284abaf7a4ca67423539505b8b572c',1,'tz::gl::renderer_edit::render_config::wireframe_mode']]], + ['with_5fbinding_28',['with_binding',['../classtz_1_1gl_1_1vk2_1_1_descriptor_layout_builder.html#a35bee4b07c0c343b53520a5f9c693691',1,'tz::gl::vk2::DescriptorLayoutBuilder']]], + ['with_5flock_29',['with_lock',['../structtz_1_1detail_1_1with__lock.html',1,'tz::detail']]], + ['with_5fmore_30',['with_more',['../classtz_1_1vector.html#a17082649b5b1dcfdda21e3225f99c247',1,'tz::vector::with_more(T end) const'],['../classtz_1_1vector.html#ac484780fbef820de4004781a119a56d1',1,'tz::vector::with_more(const vector< T, S2 > &end) const']]], + ['write_31',['Write',['../structtz_1_1gl_1_1vk2_1_1_descriptor_set_1_1_write.html',1,'tz::gl::vk2::DescriptorSet']]], + ['write_5finfos_32',['write_infos',['../structtz_1_1gl_1_1vk2_1_1_descriptor_set_1_1_write.html#af4094e04b87ad5da6c8c8861bf9dfb73',1,'tz::gl::vk2::DescriptorSet::Write']]], + ['wsi_33',['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..8d68d00b78 --- /dev/null +++ b/search/all_2.js @@ -0,0 +1,70 @@ +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#ga46e6dbea64b4af8c916980d798efdcca',1,'tz']]], + ['callback_5ftype_3',['callback_type',['../structtz_1_1detail_1_1callback__type.html',1,'tz::detail']]], + ['camera_5forthographic_5ft_4',['camera_orthographic_t',['../structtz_1_1ren_1_1impl_1_1render__pass_1_1camera__orthographic__t.html',1,'tz::ren::impl::render_pass']]], + ['camera_5fperspective_5ft_5',['camera_perspective_t',['../structtz_1_1ren_1_1impl_1_1render__pass_1_1camera__perspective__t.html',1,'tz::ren::impl::render_pass']]], + ['cas_6',['cas',['../group__tzsl__atomic.html#ga17a4dea83f60906651d0b557ad770bbc',1,'tz::atomic']]], + ['ceil_7',['ceil',['../group__tzsl__math.html#ga8028220d2f0dd80f9111d54f1079bcc7',1,'tz::math']]], + ['char_5fstorage_8',['char_storage',['../classtz_1_1ren_1_1char__storage.html',1,'tz::ren']]], + ['children_9',['children',['../structtz_1_1transform__node.html#a733eb37970410891c90b5bc2f5684760',1,'tz::transform_node']]], + ['chronological_5frank_10',['chronological_rank',['../structtz_1_1gl_1_1schedule.html#ab8cb4713b3c9a7c0bbb3fc6182631010',1,'tz::gl::schedule']]], + ['claims_5fkeyboard_11',['claims_keyboard',['../group__tz__dbgui.html#gae9289fba934f3184929dea07db97e28f',1,'tz::dbgui']]], + ['claims_5fmouse_12',['claims_mouse',['../group__tz__dbgui.html#ga36e08fae37ee7e26149c1ba247f54ce9',1,'tz::dbgui']]], + ['clamp_13',['clamp',['../group__tzsl__math.html#ga42282f727b67dab6da08e0366ba7787e',1,'tz::math']]], + ['clamp_5fto_5fedge_14',['clamp_to_edge',['../group__tz__gl__ogl2__image.html#gga52bed615aea0b883aeb6702716f95e5ba7ff5ead6fef18ca5f63119754ac76c3e',1,'tz::gl::ogl2']]], + ['clamptoborder_15',['ClampToBorder',['../group__tz__gl__vk__image.html#gga8d6daa8ff20537f40f5e1145342c2d4dafb07f88f6f11cc5ab9c951290716f147',1,'tz::gl::vk2']]], + ['clamptoedge_16',['ClampToEdge',['../group__tz__gl__vk__image.html#gga8d6daa8ff20537f40f5e1145342c2d4da74556551231333c36debc3d373261134',1,'tz::gl::vk2']]], + ['clear_17',['clear',['../classtz_1_1basic__list.html#a5a9fe1832b83930a03bdc598b6f48f42',1,'tz::basic_list::clear()'],['../classtz_1_1free__list.html#a6e32e36af936e89426b59e2e44bb9ec2',1,'tz::free_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_18',['Clear',['../group__tz__gl__vk__graphics__pipeline__render__pass.html#ggaa1e0e627270d80ef86624590afc5a03fadc30bc0c7914db5918da4263fce93ad2',1,'tz::gl::vk2']]], + ['clear_5fcolour_19',['clear_colour',['../structtz_1_1gl_1_1render__state_1_1_graphics.html#afdbf39b5e5e727154eb35092a5f3329e',1,'tz::gl::render_state::Graphics::clear_colour'],['../structtz_1_1gl_1_1renderer__edit_1_1render__config.html#a0c7a818dad1cdc504ae8204173e57c95',1,'tz::gl::renderer_edit::render_config::clear_colour']]], + ['clear_5ftarget_20',['clear_target',['../classtz_1_1message__passer.html#a609d94453c786408a836665c442f770f',1,'tz::message_passer']]], + ['clicked_21',['clicked',['../group__tz__wsi__mouse.html#gga089bafa0df7fa17353dbf27087a1f65ba90c655064697116004fbac6936e898d1',1,'tz::wsi']]], + ['clone_5fresized_22',['clone_resized',['../group__tz__gl__ogl2__buffers.html#ga66311328d0ac73108c1dac80a670255b',1,'tz::gl::ogl2::buffer_helper']]], + ['code_23',['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_24',['colour_attachment_count',['../classtz_1_1gl_1_1ogl2_1_1framebuffer.html#a899e633ce1e2005e942c7e417d8208ce',1,'tz::gl::ogl2::framebuffer']]], + ['colour_5fattachments_25',['colour_attachments',['../structtz_1_1gl_1_1ogl2_1_1framebuffer__info.html#a0324e63f72ec4d93575ccb38fadd7de1',1,'tz::gl::ogl2::framebuffer_info']]], + ['colour_5ftint_26',['colour_tint',['../structtz_1_1ren_1_1impl_1_1render__pass_1_1object__create__info.html#add85dc293734f53016a394b1edd35fe3',1,'tz::ren::impl::render_pass::object_create_info']]], + ['colourattachment_27',['ColourAttachment',['../group__tz__gl__vk__image.html#gga4ca55be3d1c101900d800a78deeb595fa19c3378429e6e0fce64ea1de4290a6d5',1,'ColourAttachmenttz::gl::vk2'],['../group__tz__gl__vk__image.html#gga6ecb2d248a682aac08d93f4a7078161ea19c3378429e6e0fce64ea1de4290a6d5',1,'ColourAttachmenttz::gl::vk2']]], + ['colourattachmentoutput_28',['ColourAttachmentOutput',['../group__tz__gl__vk__graphics__pipeline.html#ggaa581c5a329a76e48f41ca02bd263251aaec356eeffd7d26280475eadca9140604',1,'tz::gl::vk2']]], + ['colourattachmentread_29',['ColourAttachmentRead',['../group__tz__gl__vk__graphics__pipeline__render__pass.html#ggaa5dd0142a36cd59d14dff54eed67c3dfa94913a4c01c391312dd5de73eda8f3e2',1,'tz::gl::vk2']]], + ['colourattachmentwrite_30',['ColourAttachmentWrite',['../group__tz__gl__vk__graphics__pipeline__render__pass.html#ggaa5dd0142a36cd59d14dff54eed67c3dfa2f4e5868ed1ef1abb6e450f2040633f7',1,'tz::gl::vk2']]], + ['colourblendlogicaloperations_31',['ColourBlendLogicalOperations',['../group__tz__gl__vk__extension.html#gga6744c8f7d1276d6d9ae861b21c489505a5c5e6dcae77164cee63d668af3b3bc9e',1,'tz::gl::vk2']]], + ['colourblendstate_32',['ColourBlendState',['../structtz_1_1gl_1_1vk2_1_1_colour_blend_state.html',1,'tz::gl::vk2']]], + ['column_33',['Column',['../classtz_1_1matrix.html#a9e61aa087f278ef2733ad65644796e80',1,'tz::matrix']]], + ['command_20buffers_20and_20pools_34',['Command Buffers and Pools',['../group__tz__gl__vk__commands.html',1,'']]], + ['command_5fbuffers_35',['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_36',['command_count',['../classtz_1_1gl_1_1vk2_1_1_command_buffer.html#a67c7bfe9c4368600d35d8b8484b06972',1,'tz::gl::vk2::CommandBuffer']]], + ['commandbuffer_37',['CommandBuffer',['../classtz_1_1gl_1_1vk2_1_1_command_buffer.html',1,'tz::gl::vk2']]], + ['commandbufferdata_38',['CommandBufferData',['../structtz_1_1gl_1_1vk2_1_1_command_buffer_data.html',1,'tz::gl::vk2']]], + ['commandbufferrecording_39',['CommandBufferRecording',['../classtz_1_1gl_1_1vk2_1_1_command_buffer_recording.html',1,'tz::gl::vk2']]], + ['commandpool_40',['CommandPool',['../classtz_1_1gl_1_1vk2_1_1_command_pool.html',1,'tz::gl::vk2']]], + ['commandpoolinfo_41',['CommandPoolInfo',['../structtz_1_1gl_1_1vk2_1_1_command_pool_info.html',1,'tz::gl::vk2']]], + ['common_5frenderer_5fdbgui_42',['common_renderer_dbgui',['../group__tz__gl2__renderer.html#ga9c3b9173cecb5e05ffa86811213c5ab0',1,'tz::gl']]], + ['compile_43',['compile',['../classtz_1_1gl_1_1ogl2_1_1shader__module.html#a0566183e70bb23740967df9e69c5afd4',1,'tz::gl::ogl2::shader_module']]], + ['compile_5fresult_44',['compile_result',['../structtz_1_1gl_1_1ogl2_1_1shader__module_1_1compile__result.html',1,'tz::gl::ogl2::shader_module']]], + ['compute_45',['Compute',['../structtz_1_1gl_1_1render__state_1_1_compute.html',1,'tz::gl::render_state']]], + ['compute_46',['compute',['../structtz_1_1gl_1_1render__state.html#a359f1ee9b0b8fbe9ebed30bb7b37e709',1,'tz::gl::render_state::compute'],['../classtz_1_1gl_1_1_renderer_edit_builder.html#a34deef028a6a13e0c17055174e3ea9c1',1,'tz::gl::RendererEditBuilder::compute()'],['../group__tz__gl__ogl2__shader.html#gga6f74da2ab2ba8d9a9e73815fa16ac5f4a77e73f3a185e16d1f08ca5e057710b9d',1,'computetz::gl::ogl2']]], + ['compute_5fconfig_47',['compute_config',['../structtz_1_1gl_1_1renderer__edit_1_1compute__config.html',1,'tz::gl::renderer_edit']]], + ['compute_5fpass_48',['compute_pass',['../classtz_1_1ren_1_1impl_1_1compute__pass.html',1,'tz::ren::impl']]], + ['computepipeline_49',['ComputePipeline',['../classtz_1_1gl_1_1vk2_1_1_compute_pipeline.html',1,'tz::gl::vk2']]], + ['computepipelineinfo_50',['ComputePipelineInfo',['../structtz_1_1gl_1_1vk2_1_1_compute_pipeline_info.html',1,'tz::gl::vk2']]], + ['concurrentqueue_5ftraits_51',['concurrentqueue_traits',['../structtz_1_1impl_1_1concurrentqueue__traits.html',1,'tz::impl']]], + ['contains_52',['contains',['../classtz_1_1basic__list.html#a296a4bc78b4a32394ee4e7c4f7d5140b',1,'tz::basic_list::contains()'],['../classtz_1_1enum__field.html#ae84e799eabd0c60f79eafdfa86b3d0d7',1,'tz::enum_field::contains(E type) const'],['../classtz_1_1enum__field.html#abec7d6a4a2b4b81600760dd74f5b23c3',1,'tz::enum_field::contains(const enum_field< E > &field) const'],['../classtz_1_1gl_1_1vk2_1_1_descriptor_pool.html#ab3ba99062df8e90d09abccd6c0f6e6c6',1,'tz::gl::vk2::DescriptorPool::contains()']]], + ['context_53',['context',['../structtz_1_1gl_1_1vk2_1_1_vulkan_command_1_1_bind_descriptor_sets.html#a86f62f989223c979fc35e98b4d88bcd1',1,'tz::gl::vk2::VulkanCommand::BindDescriptorSets']]], + ['copy_54',['copy',['../group__tz__gl__ogl2__buffers.html#ga20a62c3c2f993f7680765d90634a7584',1,'tz::gl::ogl2::buffer_helper']]], + ['core_20functionality_55',['Core Functionality',['../group__tz__core.html',1,'']]], + ['cos_56',['cos',['../group__tzsl__math.html#ga2001fa3e32e884b9923308b485da6702',1,'tz::math']]], + ['count_57',['count',['../structtz_1_1gl_1_1vk2_1_1_descriptor_layout_info_1_1_binding_info.html#ad41f8b98daabff26fc3692e064a1cf7b',1,'tz::gl::vk2::DescriptorLayoutInfo::BindingInfo::count'],['../classtz_1_1enum__field.html#a74cd18aeadeffdaa17bd22068e34dc59',1,'tz::enum_field::count()']]], + ['create_5frenderer_58',['create_renderer',['../classtz_1_1gl_1_1device.html#a8ac3063b712ef664852318e14830e64d',1,'tz::gl::device']]], + ['create_5fwindow_59',['create_window',['../group__tz__wsi__window.html#gac6059674ffff19966225cea5a7367a38',1,'tz::wsi']]], + ['cross_60',['cross',['../group__tzsl__math.html#ga7fd37ee5cfa25fcc727390773273eb88',1,'tz::math']]], + ['cull_5fmode_61',['cull_mode',['../structtz_1_1gl_1_1vk2_1_1_rasteriser_state.html#aaa4460c60b44ffb1f3e80197ac4fcc28',1,'tz::gl::vk2::RasteriserState']]], + ['culling_62',['culling',['../structtz_1_1gl_1_1render__state_1_1_graphics.html#a7ed1637640b717cce295a8a272880603',1,'tz::gl::render_state::Graphics::culling'],['../structtz_1_1gl_1_1renderer__edit_1_1render__config.html#aee896426a882186c409639069131bc12',1,'tz::gl::renderer_edit::render_config::culling']]], + ['cullmode_63',['CullMode',['../group__tz__gl__vk__graphics__pipeline__fixed.html#gaf55856ce9f281f90908bac12e0061e16',1,'tz::gl::vk2']]], + ['custom_5ffragment_5fspirv_64',['custom_fragment_spirv',['../structtz_1_1ren_1_1animation__renderer_1_1info.html#a83f96e60c9f95c95823d9807e27d0065',1,'tz::ren::animation_renderer::info::custom_fragment_spirv'],['../structtz_1_1ren_1_1impl_1_1render__pass_1_1info.html#a837deda968f4b79b35fd350e374fb2d5',1,'tz::ren::impl::render_pass::info::custom_fragment_spirv']]], + ['custom_5foptions_65',['custom_options',['../structtz_1_1ren_1_1animation__renderer_1_1info.html#ac04b833a51f33bcee66f0776c59b3948',1,'tz::ren::animation_renderer::info::custom_options'],['../structtz_1_1ren_1_1impl_1_1render__pass_1_1info.html#a411cf195c6b62e1fc37537de4e12b3b9',1,'tz::ren::impl::render_pass::info::custom_options']]], + ['custom_5fvertex_5fspirv_66',['custom_vertex_spirv',['../structtz_1_1ren_1_1animation__renderer_1_1info.html#a25b34ff05a6d9245300aa138ca805112',1,'tz::ren::animation_renderer::info::custom_vertex_spirv'],['../structtz_1_1ren_1_1impl_1_1render__pass_1_1info.html#ada51de25a7d8fad97520dec2c28445e6',1,'tz::ren::impl::render_pass::info::custom_vertex_spirv']]] +]; diff --git a/search/all_3.js b/search/all_3.js new file mode 100644 index 0000000000..d7b0663efb --- /dev/null +++ b/search/all_3.js @@ -0,0 +1,107 @@ +var searchData= +[ + ['data_0',['data',['../structtz_1_1transform__node.html#ac532a4cca52f3d000e20bad9a10fb33a',1,'tz::transform_node::data'],['../classtz_1_1basic__list.html#a32759f2f577643e9e013c4f16dd4f78f',1,'tz::basic_list::data() const'],['../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']]], + ['data_1',['Data',['../group__tz__core__data.html',1,'']]], + ['data_5fas_2',['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()']]], + ['data_5fstore_3',['data_store',['../classtz_1_1data__store.html',1,'tz']]], + ['days_4',['days',['../classtz_1_1duration.html#a9ebbab08c04bf01f2a14d6f65dc795f0',1,'tz::duration']]], + ['dbgui_5',['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_6',['Debug UI',['../group__tz__dbgui.html',1,'']]], + ['debug_5fget_5fname_7',['debug_get_name',['../classtz_1_1gl_1_1renderer__info.html#aad262d25b64ee45c5cd79faf8c6d5af0',1,'tz::gl::renderer_info']]], + ['debug_5fname_8',['debug_name',['../classtz_1_1gl_1_1renderer__info.html#a92f4e4d9f25acb3151987066df17db48',1,'tz::gl::renderer_info']]], + ['debugbeginlabel_9',['DebugBeginLabel',['../structtz_1_1gl_1_1vk2_1_1_vulkan_command_1_1_debug_begin_label.html',1,'tz::gl::vk2::VulkanCommand']]], + ['debugendlabel_10',['DebugEndLabel',['../structtz_1_1gl_1_1vk2_1_1_vulkan_command_1_1_debug_end_label.html',1,'tz::gl::vk2::VulkanCommand']]], + ['debugging_11',['Debugging',['../group__tzsl__debug.html',1,'']]], + ['debugmessenger_12',['DebugMessenger',['../group__tz__gl__vk__extension.html#ggaab3eb58740575c989d5eab8c3fd877a7ad69051b615fff4b893472a8289678385',1,'tz::gl::vk2']]], + ['debugnameable_13',['DebugNameable',['../classtz_1_1gl_1_1vk2_1_1_debug_nameable.html',1,'tz::gl::vk2']]], + ['debugnameable_3c_20vk_5fobject_5ftype_5fbuffer_20_3e_14',['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_15',['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_16',['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_17',['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_18',['DebugNameable< VK_OBJECT_TYPE_SEMAPHORE >',['../classtz_1_1gl_1_1vk2_1_1_debug_nameable.html',1,'tz::gl::vk2']]], + ['decompose_5fquaternion_19',['decompose_quaternion',['../group__tzsl__matrix.html#ga382271ea9bd62c983a9cc777d6c0baad',1,'tz::matrix']]], + ['delay_20',['delay',['../classtz_1_1delay.html',1,'tz::delay'],['../classtz_1_1delay.html#a8b18e64689f16949afe24964e132fe58',1,'tz::delay::delay()']]], + ['depth_5fbounds_5ftesting_21',['depth_bounds_testing',['../structtz_1_1gl_1_1vk2_1_1_depth_stencil_state.html#a8a69c0546708e59f2d62a97eb84dad78',1,'tz::gl::vk2::DepthStencilState']]], + ['depth_5fclamp_22',['depth_clamp',['../structtz_1_1gl_1_1vk2_1_1_rasteriser_state.html#ae4a83452fed0f5066719116dc1ccf1e5',1,'tz::gl::vk2::RasteriserState']]], + ['depth_5fcompare_5foperation_23',['depth_compare_operation',['../structtz_1_1gl_1_1vk2_1_1_depth_stencil_state.html#a0b4a3e700422e3e61fd80f022b474cd1',1,'tz::gl::vk2::DepthStencilState']]], + ['depth_5ftesting_24',['depth_testing',['../structtz_1_1gl_1_1vk2_1_1_depth_stencil_state.html#a6e3b509c9f2df1bd154f1e0f8b42ef41',1,'tz::gl::vk2::DepthStencilState']]], + ['depth_5fwrites_25',['depth_writes',['../structtz_1_1gl_1_1vk2_1_1_depth_stencil_state.html#ab60dc72d87d3d376e30395f7aea9877b',1,'tz::gl::vk2::DepthStencilState']]], + ['depthcomparator_26',['DepthComparator',['../group__tz__gl__vk__graphics__pipeline__fixed.html#ga93e2cb3a5e44484b0548e28496de69c7',1,'tz::gl::vk2']]], + ['depthstencilattachment_27',['DepthStencilAttachment',['../group__tz__gl__vk__image.html#gga4ca55be3d1c101900d800a78deeb595fa652fd1408b3de263e32147770a48931e',1,'DepthStencilAttachmenttz::gl::vk2'],['../group__tz__gl__vk__image.html#gga6ecb2d248a682aac08d93f4a7078161ea652fd1408b3de263e32147770a48931e',1,'DepthStencilAttachmenttz::gl::vk2']]], + ['depthstencilattachmentread_28',['DepthStencilAttachmentRead',['../group__tz__gl__vk__graphics__pipeline__render__pass.html#ggaa5dd0142a36cd59d14dff54eed67c3dfa35a30e5a6da75a4db202f65938e5189a',1,'tz::gl::vk2']]], + ['depthstencilattachmentwrite_29',['DepthStencilAttachmentWrite',['../group__tz__gl__vk__graphics__pipeline__render__pass.html#ggaa5dd0142a36cd59d14dff54eed67c3dfae2b1f5924289699c44b8ecba300a5de0',1,'tz::gl::vk2']]], + ['depthstencilstate_30',['DepthStencilState',['../structtz_1_1gl_1_1vk2_1_1_depth_stencil_state.html',1,'tz::gl::vk2']]], + ['descriptor_20layouts_20and_20sets_31',['Descriptor Layouts and Sets',['../group__tz__gl__vk__descriptors.html',1,'']]], + ['descriptor_5fcount_32',['descriptor_count',['../classtz_1_1gl_1_1vk2_1_1_descriptor_layout.html#accc746a50caa61641bb14fc4f8fadc6a',1,'tz::gl::vk2::DescriptorLayout']]], + ['descriptor_5fcount_5fof_33',['descriptor_count_of',['../classtz_1_1gl_1_1vk2_1_1_descriptor_layout.html#a4dcee1b2805e6163351ea0aefbcc3305',1,'tz::gl::vk2::DescriptorLayout']]], + ['descriptor_5flayouts_34',['descriptor_layouts',['../structtz_1_1gl_1_1vk2_1_1_pipeline_layout_info.html#a747cfdac10080e957c45d92c229d7578',1,'tz::gl::vk2::PipelineLayoutInfo']]], + ['descriptor_5fsets_35',['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_36',['DescriptorData',['../structtz_1_1gl_1_1vk2_1_1_descriptor_data.html',1,'tz::gl::vk2']]], + ['descriptorflag_37',['DescriptorFlag',['../group__tz__gl__vk__descriptors.html#gaf15b5e240b6c64c9dad040171f553123',1,'tz::gl::vk2']]], + ['descriptorlayout_38',['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_39',['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_40',['DescriptorLayoutInfo',['../structtz_1_1gl_1_1vk2_1_1_descriptor_layout_info.html',1,'tz::gl::vk2']]], + ['descriptorpool_41',['DescriptorPool',['../classtz_1_1gl_1_1vk2_1_1_descriptor_pool.html',1,'tz::gl::vk2']]], + ['descriptorpoolinfo_42',['DescriptorPoolInfo',['../structtz_1_1gl_1_1vk2_1_1_descriptor_pool_info.html',1,'tz::gl::vk2']]], + ['descriptorset_43',['DescriptorSet',['../classtz_1_1gl_1_1vk2_1_1_descriptor_set.html',1,'tz::gl::vk2']]], + ['destination_5faccess_44',['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_45',['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_46',['destroy_renderer',['../classtz_1_1gl_1_1device.html#a6e5026b0eafd4a9bd7e8f5242b7c4899',1,'tz::gl::device']]], + ['destroy_5fwindow_47',['destroy_window',['../group__tz__wsi__window.html#ga54f16c6122b5d08eef234586de422eef',1,'tz::wsi']]], + ['detach_5fchildren_48',['detach_children',['../classtz_1_1transform__hierarchy.html#a03c95b250f14ac9f110b59eceb772222aa0dd84f469d573546155b02538698177',1,'tz::transform_hierarchy']]], + ['determinant_49',['determinant',['../group__tzsl__matrix.html#ga8da6239534e090803b41e5c853042977',1,'tz::matrix']]], + ['device_50',['device',['../classtz_1_1gl_1_1device.html',1,'tz::gl::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'],['../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_shader_info.html#a36ba7947e26d7eb6559950f6243b8c52',1,'tz::gl::vk2::ShaderInfo::device'],['../structtz_1_1gl_1_1vk2_1_1_swapchain_info.html#a490e12cda3859fe94bb1211db4d694e7',1,'tz::gl::vk2::SwapchainInfo::device']]], + ['device_5fcommand_5fpool_51',['device_command_pool',['../classtz_1_1gl_1_1device__command__pool.html',1,'tz::gl']]], + ['device_5fcommon_52',['device_common',['../classtz_1_1gl_1_1device__common.html',1,'tz::gl']]], + ['device_5fcommon_3c_20renderer_5fogl_20_3e_53',['device_common< renderer_ogl >',['../classtz_1_1gl_1_1device__common.html',1,'tz::gl']]], + ['device_5fcommon_3c_20renderer_5fvulkan2_20_3e_54',['device_common< renderer_vulkan2 >',['../classtz_1_1gl_1_1device__common.html',1,'tz::gl']]], + ['device_5fdescriptor_5fpool_55',['device_descriptor_pool',['../classtz_1_1gl_1_1device__descriptor__pool.html',1,'tz::gl']]], + ['device_5fogl_56',['device_ogl',['../classtz_1_1gl_1_1device__ogl.html',1,'tz::gl']]], + ['device_5frender_5fscheduler_5fogl_57',['device_render_scheduler_ogl',['../classtz_1_1gl_1_1device__render__scheduler__ogl.html',1,'tz::gl']]], + ['device_5frender_5fsync_58',['device_render_sync',['../classtz_1_1gl_1_1device__render__sync.html',1,'tz::gl']]], + ['device_5fsupports_5fflags_59',['device_supports_flags',['../structtz_1_1gl_1_1vk2_1_1_descriptor_layout_info.html#a2e5cab5844cce37fcc8a06c1436f33e6',1,'tz::gl::vk2::DescriptorLayoutInfo']]], + ['device_5fvulkan2_60',['device_vulkan2',['../classtz_1_1gl_1_1device__vulkan2.html',1,'tz::gl']]], + ['device_5fvulkan_5fbase_61',['device_vulkan_base',['../classtz_1_1gl_1_1device__vulkan__base.html',1,'tz::gl']]], + ['device_5fwindow_62',['device_window',['../classtz_1_1gl_1_1device__window.html',1,'tz::gl']]], + ['deviceextension_63',['DeviceExtension',['../group__tz__gl__vk__extension.html#ga56bb45f4b48b35c621dc90ea70227158',1,'tz::gl::vk2']]], + ['devicefeature_64',['DeviceFeature',['../group__tz__gl__vk__extension.html#ga6744c8f7d1276d6d9ae861b21c489505',1,'tz::gl::vk2']]], + ['devicefeatureinfo_65',['DeviceFeatureInfo',['../structtz_1_1gl_1_1vk2_1_1detail_1_1_device_feature_info.html',1,'tz::gl::vk2::detail']]], + ['dimensions_66',['dimensions',['../structtz_1_1gl_1_1renderer__edit_1_1image__resize.html#a80b3e618fd1d8f8c1f26490c6260f204',1,'tz::gl::renderer_edit::image_resize::dimensions'],['../structtz_1_1gl_1_1ogl2_1_1framebuffer__info.html#aecc4286ec0828ee80ebfb992946732b3',1,'tz::gl::ogl2::framebuffer_info::dimensions'],['../structtz_1_1gl_1_1ogl2_1_1image__info.html#ab18980b7a33a40df21a39473793482c6',1,'tz::gl::ogl2::image_info::dimensions'],['../structtz_1_1gl_1_1ogl2_1_1render__buffer__info.html#a19bd3ca678419ccb8443b1be18a79fe8',1,'tz::gl::ogl2::render_buffer_info::dimensions'],['../structtz_1_1gl_1_1vk2_1_1image__info.html#af8102f2b0bda5a33254c6213950e67a6',1,'tz::gl::vk2::image_info::dimensions'],['../structtz_1_1gl_1_1image__info.html#a62eb6099efbe4416fbc20c45a06fb38b',1,'tz::gl::image_info::dimensions'],['../structtz_1_1initialise__info.html#aa1b701a1fbe1219e58ca9e4257834b10',1,'tz::initialise_info::dimensions'],['../structtz_1_1wsi_1_1monitor.html#aab9b77f0a9ab9b9f8f417b7cf8c8d09c',1,'tz::wsi::monitor::dimensions'],['../structtz_1_1wsi_1_1window__info.html#a9a9be15bc17a5d71fb31b89eb8f7d13b',1,'tz::wsi::window_info::dimensions']]], + ['dispatch_67',['Dispatch',['../structtz_1_1gl_1_1vk2_1_1_vulkan_command_1_1_dispatch.html',1,'tz::gl::vk2::VulkanCommand']]], + ['dispatch_68',['dispatch',['../classtz_1_1gl_1_1vk2_1_1_command_buffer_recording.html#a3c305e3576f093dad51bd911c6dbab60',1,'tz::gl::vk2::CommandBufferRecording']]], + ['distance_69',['distance',['../group__tzsl__math.html#ga81780532b6bb411b2b550c09b76b7f93',1,'tz::math']]], + ['done_70',['done',['../classtz_1_1delay.html#abecd402d7755f73c4a61a33b77af4963',1,'tz::delay']]], + ['dontcare_71',['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_72',['dot',['../classtz_1_1vector.html#a074e671fe11952ee602c6b60d542fc75',1,'tz::vector::dot()'],['../group__tzsl__math.html#gae3a061e3c170f530fbc99969abdeb333',1,'tz::math::dot()']]], + ['double_5fclicked_73',['double_clicked',['../group__tz__wsi__mouse.html#gga089bafa0df7fa17353dbf27087a1f65bac587d5d54676217aeecb4b993c3186cf',1,'tz::wsi']]], + ['draw_74',['Draw',['../structtz_1_1gl_1_1vk2_1_1_vulkan_command_1_1_draw.html',1,'tz::gl::vk2::VulkanCommand']]], + ['draw_75',['draw',['../classtz_1_1gl_1_1ogl2_1_1vertex__array.html#a4ca2490c9af9681d4e151e149197d326',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()']]], + ['draw_5fbuffer_76',['draw_buffer',['../structtz_1_1gl_1_1render__state_1_1_graphics.html#a3f7566566d5ad5403bdfc19813b85126',1,'tz::gl::render_state::Graphics']]], + ['draw_5findexed_77',['draw_indexed',['../classtz_1_1gl_1_1ogl2_1_1vertex__array.html#a4b11ecc184617603efaa30298df4e67f',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_78',['draw_indexed_indirect',['../classtz_1_1gl_1_1vk2_1_1_command_buffer_recording.html#a883d311ab6e1f1c1f29260129179d0e0',1,'tz::gl::vk2::CommandBufferRecording']]], + ['draw_5findexed_5findirect_5fcommand_79',['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_80',['draw_indirect',['../classtz_1_1gl_1_1vk2_1_1_command_buffer_recording.html#a3eebf5124e99fc760f29698edcda6577',1,'tz::gl::vk2::CommandBufferRecording::draw_indirect()'],['../group__tz__gl__ogl2__buffers.html#gga2d4cfcc22205d2276ef7347cf6e1c1edabe98195f011ff22c0afcb8e499f015bf',1,'draw_indirecttz::gl::ogl2']]], + ['draw_5findirect_5fbuffer_81',['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_82',['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_83',['draw_indirect_count',['../group__tz__gl2__renderer.html#ggac6f74feb8cd57f49c051f5d83a12be5da33cd60667ba40af9abe3d4c9346ea1eb',1,'tz::gl']]], + ['drawindexed_84',['DrawIndexed',['../structtz_1_1gl_1_1vk2_1_1_vulkan_command_1_1_draw_indexed.html',1,'tz::gl::vk2::VulkanCommand']]], + ['drawindexedindirect_85',['DrawIndexedIndirect',['../structtz_1_1gl_1_1vk2_1_1_vulkan_command_1_1_draw_indexed_indirect.html',1,'tz::gl::vk2::VulkanCommand']]], + ['drawindexedindirectcommand_86',['DrawIndexedIndirectCommand',['../structtz_1_1draw_1_1_draw_indexed_indirect_command.html',1,'tz::draw']]], + ['drawindexedindirectcount_87',['DrawIndexedIndirectCount',['../structtz_1_1gl_1_1vk2_1_1_vulkan_command_1_1_draw_indexed_indirect_count.html',1,'tz::gl::vk2::VulkanCommand']]], + ['drawindirect_88',['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_89',['DrawIndirectCommand',['../structtz_1_1draw_1_1_draw_indirect_command.html',1,'tz::draw']]], + ['drawindirectcount_90',['DrawIndirectCount',['../structtz_1_1gl_1_1vk2_1_1_vulkan_command_1_1_draw_indirect_count.html',1,'tz::gl::vk2::VulkanCommand::DrawIndirectCount'],['../group__tz__gl__vk__extension.html#gga6744c8f7d1276d6d9ae861b21c489505a215e219c44e85364464e51a55db84847',1,'DrawIndirectCounttz::gl::vk2']]], + ['ds_5fadd_91',['ds_add',['../structtz_1_1detail_1_1ds__add.html',1,'tz::detail']]], + ['ds_5fedit_92',['ds_edit',['../structtz_1_1detail_1_1ds__edit.html',1,'tz::detail']]], + ['ds_5fremove_93',['ds_remove',['../structtz_1_1detail_1_1ds__remove.html',1,'tz::detail']]], + ['dst_94',['dst',['../structtz_1_1gl_1_1vk2_1_1_vulkan_command_1_1_buffer_copy_buffer.html#ab25083e4d84c146bfb7cf38f5f37dc0b',1,'tz::gl::vk2::VulkanCommand::BufferCopyBuffer::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_image_copy_image.html#aa59748f1bcde9666d172ec07c7f92654',1,'tz::gl::vk2::VulkanCommand::ImageCopyImage::dst']]], + ['dst_5foffset_95',['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_96',['duration',['../classtz_1_1duration.html',1,'tz']]], + ['dynamic_97',['dynamic',['../group__tz__gl__ogl2__buffers.html#ggae0f51febb963a7dc9fce3cc2208559a6ab72f3bd391ba731a35708bfd8cd8a68f',1,'tz::gl::ogl2']]], + ['dynamic_5faccess_98',['dynamic_access',['../group__tz__gl2__res.html#ggac9293366fa49e7f476827595ca80fbbba4d2d126e5a776af51934638915e14737',1,'tz::gl']]], + ['dynamicrendering_99',['DynamicRendering',['../group__tz__gl__vk__extension.html#gga6744c8f7d1276d6d9ae861b21c489505a25013a5dfa918c9d7f1ad4e596648514',1,'tz::gl::vk2']]], + ['dynamicrenderingrun_100',['DynamicRenderingRun',['../classtz_1_1gl_1_1vk2_1_1_command_buffer_recording_1_1_dynamic_rendering_run.html',1,'tz::gl::vk2::CommandBufferRecording']]], + ['dynamicrenderingruninfo_101',['DynamicRenderingRunInfo',['../structtz_1_1gl_1_1vk2_1_1_dynamic_rendering_run_info.html',1,'tz::gl::vk2']]], + ['dynamicrenderingstate_102',['DynamicRenderingState',['../structtz_1_1gl_1_1vk2_1_1_graphics_pipeline_info_1_1_dynamic_rendering_state.html',1,'tz::gl::vk2::GraphicsPipelineInfo']]], + ['dynamicstate_103',['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..809ac8a538 --- /dev/null +++ b/search/all_4.js @@ -0,0 +1,52 @@ +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_1basic__list.html#af3feb8b0f4a28360f8cb2b79550c9eb5',1,'tz::basic_list::emplace()'],['../classtz_1_1_polymorphic_list.html#abcd45264b9a32adcfde7d7469d526bac',1,'tz::PolymorphicList::emplace()']]], + ['emplace_5fback_7',['emplace_back',['../classtz_1_1free__list.html#ab634125c08809cea004700c9addfee3e',1,'tz::free_list']]], + ['empty_8',['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_1free__list.html#af9160f443cb45c4126362833a0edf2b5',1,'tz::free_list::empty()'],['../classtz_1_1transform__hierarchy.html#a98feb2361bfda5351a3396f26a09e614',1,'tz::transform_hierarchy::empty()']]], + ['empty_5fslab_5fprocessor_9',['empty_slab_processor',['../classtz_1_1lua_1_1empty__slab__processor.html',1,'tz::lua']]], + ['enable_5fvalidation_5flayers_10',['enable_validation_layers',['../structtz_1_1gl_1_1vk2_1_1_vulkan_instance_info.html#ae57359ac237cb9596e822af3a6478b7f',1,'tz::gl::vk2::VulkanInstanceInfo']]], + ['end_11',['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_12',['end_frame',['../group__tz__core.html#ga3444884fd2ee290340864428de1df82f',1,'tz']]], + ['enddynamicrendering_13',['EndDynamicRendering',['../structtz_1_1gl_1_1vk2_1_1_vulkan_command_1_1_end_dynamic_rendering.html',1,'tz::gl::vk2::VulkanCommand']]], + ['endian_14',['endian',['../group__tz__core.html#ga7e3c11361b9752a8f8eec7af87a23a1c',1,'tz']]], + ['endian_5fbyte_5fswap_15',['endian_byte_swap',['../group__tz__core.html#ga8dbe3cbffcab15666954debd859d9ea5',1,'tz']]], + ['engine_5finfo_16',['engine_info',['../structtz_1_1engine__info.html',1,'tz']]], + ['enum_5ffield_17',['enum_field',['../classtz_1_1enum__field.html',1,'tz::enum_field< E >'],['../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)']]], + ['enum_5ffield_3c_20accessflag_20_3e_18',['enum_field< AccessFlag >',['../classtz_1_1enum__field.html',1,'tz']]], + ['enum_5ffield_3c_20application_5fflag_20_3e_19',['enum_field< application_flag >',['../classtz_1_1enum__field.html',1,'tz']]], + ['enum_5ffield_3c_20bufferusage_20_3e_20',['enum_field< BufferUsage >',['../classtz_1_1enum__field.html',1,'tz']]], + ['enum_5ffield_3c_20commandpoolflag_20_3e_21',['enum_field< CommandPoolFlag >',['../classtz_1_1enum__field.html',1,'tz']]], + ['enum_5ffield_3c_20descriptorflag_20_3e_22',['enum_field< DescriptorFlag >',['../classtz_1_1enum__field.html',1,'tz']]], + ['enum_5ffield_3c_20deviceextension_20_3e_23',['enum_field< DeviceExtension >',['../classtz_1_1enum__field.html',1,'tz']]], + ['enum_5ffield_3c_20devicefeature_20_3e_24',['enum_field< DeviceFeature >',['../classtz_1_1enum__field.html',1,'tz']]], + ['enum_5ffield_3c_20dynamicstatetype_20_3e_25',['enum_field< DynamicStateType >',['../classtz_1_1enum__field.html',1,'tz']]], + ['enum_5ffield_3c_20gltf_5fattribute_20_3e_26',['enum_field< gltf_attribute >',['../classtz_1_1enum__field.html',1,'tz']]], + ['enum_5ffield_3c_20imageaspectflag_20_3e_27',['enum_field< ImageAspectFlag >',['../classtz_1_1enum__field.html',1,'tz']]], + ['enum_5ffield_3c_20imageusage_20_3e_28',['enum_field< ImageUsage >',['../classtz_1_1enum__field.html',1,'tz']]], + ['enum_5ffield_3c_20instanceextension_20_3e_29',['enum_field< InstanceExtension >',['../classtz_1_1enum__field.html',1,'tz']]], + ['enum_5ffield_3c_20queuefamilytype_20_3e_30',['enum_field< QueueFamilyType >',['../classtz_1_1enum__field.html',1,'tz']]], + ['enum_5ffield_3c_20renderer_5foption_20_3e_31',['enum_field< renderer_option >',['../classtz_1_1enum__field.html',1,'tz']]], + ['enum_5ffield_3c_20resource_5fflag_20_3e_32',['enum_field< resource_flag >',['../classtz_1_1enum__field.html',1,'tz']]], + ['equalto_33',['EqualTo',['../group__tz__gl__vk__graphics__pipeline__fixed.html#gga93e2cb3a5e44484b0548e28496de69c7a0242c502bd906e05171e64bad31c7c21',1,'tz::gl::vk2']]], + ['erase_34',['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)'],['../classtz_1_1free__list.html#ad85c403be7b0cf265be6da917ef24603',1,'tz::free_list::erase()']]], + ['error_35',['error',['../group__tz__core.html#ga51d5f1707ccebf785a59cbb6a90b0fad',1,'tz']]], + ['event_36',['event',['../structtz_1_1gl_1_1event.html',1,'tz::gl']]], + ['events_37',['events',['../structtz_1_1gl_1_1schedule.html#a84bd8bc69e532771537bb6c737e61229',1,'tz::gl::schedule']]], + ['exchange_38',['exchange',['../group__tzsl__atomic.html#gac66c88e078d10e049838618e5c5d80f6',1,'tz::atomic']]], + ['execute_39',['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_40',['execute_file',['../classtz_1_1lua_1_1state.html#a15bbc3a9526837cd15a4550ab562488f',1,'tz::lua::state']]], + ['execution_5fcomplete_5ffence_41',['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_42',['execution_info',['../structtz_1_1execution__info.html',1,'tz']]], + ['exp_43',['exp',['../group__tzsl__math.html#ga0b3e83e179fee3b947ff6725d85ea9bc',1,'tz::math']]], + ['exp2_44',['exp2',['../group__tzsl__math.html#ga62b92e38309339005fea6213dfda3454',1,'tz::math']]], + ['export_5fnode_45',['export_node',['../classtz_1_1transform__hierarchy.html#a55b86e9dd702eefbacbc478895485263',1,'tz::transform_hierarchy']]], + ['extensions_46',['extensions',['../structtz_1_1gl_1_1vk2_1_1_logical_device_info.html#ac6e1aabf78d0e11a8cbb420ceb1a4136',1,'tz::gl::vk2::LogicalDeviceInfo::extensions'],['../structtz_1_1gl_1_1vk2_1_1_vulkan_instance_info.html#ac0600b7dfc2ae1e5322f413626c2269d',1,'tz::gl::vk2::VulkanInstanceInfo::extensions']]], + ['extensions_20and_20features_47',['Extensions and Features',['../group__tz__gl__vk__extension.html',1,'']]], + ['extra_5fbuffers_48',['extra_buffers',['../structtz_1_1ren_1_1animation__renderer_1_1info.html#a2d8e5234e876a272c6bf22841555b7ff',1,'tz::ren::animation_renderer::info::extra_buffers'],['../structtz_1_1ren_1_1impl_1_1render__pass_1_1info.html#a09b3c8416cac54edceea08d81e09651c',1,'tz::ren::impl::render_pass::info::extra_buffers']]] +]; diff --git a/search/all_5.js b/search/all_5.js new file mode 100644 index 0000000000..85ad0c2855 --- /dev/null +++ b/search/all_5.js @@ -0,0 +1,61 @@ +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',['Extensions and Features',['../group__tz__gl__vk__extension.html',1,'']]], + ['features_7',['features',['../structtz_1_1gl_1_1vk2_1_1_logical_device_info.html#a3b5dc703c3eb8b8be92a16ce9a566741',1,'tz::gl::vk2::LogicalDeviceInfo']]], + ['fence_8',['Fence',['../classtz_1_1gl_1_1vk2_1_1_fence.html',1,'tz::gl::vk2']]], + ['fenceinfo_9',['FenceInfo',['../structtz_1_1gl_1_1vk2_1_1_fence_info.html',1,'tz::gl::vk2']]], + ['field_10',['field',['../structtz_1_1gl_1_1vk2_1_1_queue_request.html#abba7d549a963a57d7733ed196dd6859b',1,'tz::gl::vk2::QueueRequest']]], + ['fifo_11',['Fifo',['../group__tz__gl__vk__presentation.html#gga8e6e925d93013e81273325bc8764577aaa0476ca4d7283b340d24c53c16270958',1,'tz::gl::vk2']]], + ['fiforelaxed_12',['FifoRelaxed',['../group__tz__gl__vk__presentation.html#gga8e6e925d93013e81273325bc8764577aa492bb3d1da50c48c7ae3a1f699f4c3ed',1,'tz::gl::vk2']]], + ['fill_13',['Fill',['../group__tz__gl__vk__graphics__pipeline__fixed.html#ggaaeda985d06849d890d7ba2902688cd01adb3e3f51c9107e26c9bccf9a188ce2ed',1,'tz::gl::vk2']]], + ['filled_14',['filled',['../classtz_1_1vector.html#a0f398914ccdf06e34a58a8b07f09374c',1,'tz::vector']]], + ['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_1vk2_1_1_command_pool_info.html#a65a1ed6987db2de397e3131ee431a7ca',1,'tz::gl::vk2::CommandPoolInfo::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_1image__info.html#ad1b7fff82183a8638589b483c9638cda',1,'tz::gl::image_info::flags'],['../structtz_1_1initialise__info.html#a89af26827dda938bd57fcca7bf874cec',1,'tz::initialise_info::flags']]], + ['floor_23',['floor',['../group__tzsl__math.html#ga1c27f29cb88aa0f88b330125c402290f',1,'tz::math']]], + ['font_5fdata_24',['font_data',['../structfont__data.html',1,'font_data'],['../structtz_1_1ren_1_1font__data.html',1,'tz::ren::font_data']]], + ['font_5fstorage_25',['font_storage',['../classtz_1_1ren_1_1font__storage.html',1,'tz::ren']]], + ['format_26',['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_swapchain_info.html#ab0f057d31857809bce53bc0998e8e0f4',1,'tz::gl::vk2::SwapchainInfo::format'],['../structtz_1_1gl_1_1image__info.html#a7db4cf98b345a62b03ce302bca51ee67',1,'tz::gl::image_info::format']]], + ['format4_27',['format4',['../structtz_1_1io_1_1format4.html',1,'tz::io']]], + ['format_5fstring_28',['format_string',['../structtz_1_1detail_1_1format__string.html',1,'tz::detail']]], + ['formatdata_29',['FormatData',['../structtz_1_1gl_1_1ogl2_1_1_format_data.html',1,'tz::gl::ogl2']]], + ['formats_30',['Formats',['../group__tz__gl__ogl2__image.html',1,'Images, Samplers and Formats'],['../group__tz__gl__vk__image.html',1,'Images, Samplers and Formats']]], + ['fract_31',['fract',['../group__tzsl__math.html#gae4a7499ca85d03fd9f68e58f378227d6',1,'tz::math']]], + ['fragment_32',['fragment',['../group__tz__gl__ogl2__shader.html#gga6f74da2ab2ba8d9a9e73815fa16ac5f4a02e918fc72837d7c2689be88684dceb1',1,'tz::gl::ogl2']]], + ['fragmentedpool_33',['FragmentedPool',['../structtz_1_1gl_1_1vk2_1_1_descriptor_pool_1_1_allocation_result.html#abad85d19de3197a840dc5e69ad797c54ae95f85b8630e52cf6e5f6aa542bec654',1,'tz::gl::vk2::DescriptorPool::AllocationResult']]], + ['fragmentshader_34',['FragmentShader',['../group__tz__gl__vk__graphics__pipeline.html#ggaa581c5a329a76e48f41ca02bd263251aa90a9bb4e665932b1781da33fc2f32922',1,'tz::gl::vk2']]], + ['fragmentshaderresourcewrite_35',['FragmentShaderResourceWrite',['../group__tz__gl__vk__extension.html#gga6744c8f7d1276d6d9ae861b21c489505a70e29cc30c58871bc15535cb09d4ee87',1,'tz::gl::vk2']]], + ['framebuffer_36',['framebuffer',['../classtz_1_1gl_1_1ogl2_1_1framebuffer.html',1,'tz::gl::ogl2::framebuffer'],['../classtz_1_1gl_1_1ogl2_1_1framebuffer.html#af1250568a185e34b802fbe5cc5f86f8d',1,'tz::gl::ogl2::framebuffer::framebuffer()']]], + ['framebuffer_5finfo_37',['framebuffer_info',['../structtz_1_1gl_1_1ogl2_1_1framebuffer__info.html',1,'tz::gl::ogl2']]], + ['framebuffer_5ftexture_38',['framebuffer_texture',['../group__tz__gl__ogl2__framebuffer.html#ga1847521972c6cf905bd443a0f537fbe1',1,'tz::gl::ogl2']]], + ['framebuffers_39',['Framebuffers',['../group__tz__gl__ogl2__framebuffer.html',1,'']]], + ['free_5flist_40',['free_list',['../classtz_1_1free__list.html',1,'tz::free_list< T, C >'],['../classtz_1_1free__list.html#ae9e4896208ebee2d28caf3669fad03b2',1,'tz::free_list::free_list()']]], + ['free_5flist_3c_20t_2c_20std_3a_3avector_3c_20t_20_3e_20_3e_41',['free_list< T, std::vector< T > >',['../classtz_1_1free__list.html',1,'tz']]], + ['free_5flist_3c_20tz_3a_3aren_3a_3aimpl_3a_3amesh_5flocator_20_3e_42',['free_list< tz::ren::impl::mesh_locator >',['../classtz_1_1free__list.html',1,'tz']]], + ['free_5flist_5fiterator_43',['free_list_iterator',['../structtz_1_1free__list__iterator.html',1,'tz']]], + ['from_5fbinary_5fstring_44',['from_binary_string',['../structtz_1_1version.html#a5a2056c19ee809ab7d8fffb346861544',1,'tz::version']]], + ['from_5fmany_45',['from_many',['../classtz_1_1gl_1_1buffer__resource.html#aa2d8aea7debdaf9f6dcdc92ac9c96cf0',1,'tz::gl::buffer_resource']]], + ['from_5fmemory_46',['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_47',['from_one',['../classtz_1_1gl_1_1buffer__resource.html#ab407ea843abea43d94853c2711b109bb',1,'tz::gl::buffer_resource']]], + ['from_5fstring_48',['from_string',['../structtz_1_1version.html#a922d87bd7d64534660e3209313992f8b',1,'tz::version']]], + ['from_5funinitialised_49',['from_uninitialised',['../classtz_1_1gl_1_1image__resource.html#abcfde01f8ab68048439810a68248f10c',1,'tz::gl::image_resource']]], + ['front_50',['front',['../structtz_1_1gl_1_1vk2_1_1_depth_stencil_state.html#a4208d7ae144e8c483e6166e0d71d9009',1,'tz::gl::vk2::DepthStencilState::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()'],['../classtz_1_1free__list.html#a828d66092ff69205312d41f570ea833c',1,'tz::free_list::front() const'],['../classtz_1_1free__list.html#a75c4a252bbdfeeeab3a6c05474ef9da3',1,'tz::free_list::front()']]], + ['frontculling_51',['FrontCulling',['../group__tz__gl__vk__graphics__pipeline__fixed.html#ggaf55856ce9f281f90908bac12e0061e16a1292c8b012a45fb6b03a5354925777e2',1,'tz::gl::vk2']]], + ['frontend_52',['Frontend',['../group__tz__gl2__graphicsapi__ogl__frontend.html',1,'OpenGL Frontend'],['../group__tz__gl2__graphicsapi__vk__frontend.html',1,'Vulkan Frontend']]], + ['fullscreen_5fcube_53',['fullscreen_cube',['../group__tzsl__mesh.html#ga8e7cfc30c9609b6b3bfe041cd39dae19',1,'tz::mesh']]], + ['fullscreen_5fquad_54',['fullscreen_quad',['../group__tzsl__mesh.html#ga58bd542614c3571580c36e49cbad8081',1,'tz::mesh']]], + ['fullscreen_5ftriangle_55',['fullscreen_triangle',['../group__tzsl__mesh.html#ga250af04d0386c860d1a2e202ca77de6c',1,'tz::mesh']]], + ['functionality_56',['Core Functionality',['../group__tz__core.html',1,'']]], + ['functions_57',['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..1a9866c4ff --- /dev/null +++ b/search/all_6.js @@ -0,0 +1,103 @@ +var searchData= +[ + ['game_5finfo_0',['game_info',['../structtz_1_1game__info.html',1,'tz::game_info'],['../structtz_1_1dbgui_1_1init__info.html#a004b821a277cfa2ea7e52a97a905b3f9',1,'tz::dbgui::init_info::game_info'],['../structtz_1_1gl_1_1vk2_1_1_vulkan_instance_info.html#a7f4f6b78d9dc91c26ddbb71c5ac89676',1,'tz::gl::vk2::VulkanInstanceInfo::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_5fbindings_7',['get_bindings',['../classtz_1_1gl_1_1vk2_1_1_descriptor_layout.html#a553861e3a7facb291f5de6a2c518aea1',1,'tz::gl::vk2::DescriptorLayout']]], + ['get_5fbindless_5fhandle_8',['get_bindless_handle',['../classtz_1_1gl_1_1ogl2_1_1image.html#a82ae5c9ca2e7230cd4a6eb68bed34de0',1,'tz::gl::ogl2::image']]], + ['get_5fchars_5ftyped_9',['get_chars_typed',['../group__tz__wsi__keyboard.html#ga68b8d4b1bb580c2d72d35901e31e9bb5',1,'tz::wsi']]], + ['get_5fcommand_5fbuffer_10',['get_command_buffer',['../classtz_1_1gl_1_1vk2_1_1_command_buffer_recording.html#a6678f3d4ee65c534f273547942dbc208',1,'tz::gl::vk2::CommandBufferRecording']]], + ['get_5fcomponent_11',['get_component',['../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)'],['../classtz_1_1gl_1_1renderer__ogl.html#a4536f9408510194599a41fe7d983cfad',1,'tz::gl::renderer_ogl::get_component(resource_handle handle) const'],['../classtz_1_1gl_1_1renderer__ogl.html#a437b2e68e0af94193d6310191fb3e770',1,'tz::gl::renderer_ogl::get_component(resource_handle handle)']]], + ['get_5fcompute_5fpass_12',['get_compute_pass',['../classtz_1_1ren_1_1impl_1_1render__pass.html#acba84b89930b2b0635449d6227b2306f',1,'tz::ren::impl::render_pass']]], + ['get_5fdependencies_13',['get_dependencies',['../structtz_1_1gl_1_1schedule.html#af0cbcf0f3d30b199c1dd6bba7b09edff',1,'tz::gl::schedule']]], + ['get_5fdevice_14',['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_image.html#a049cd08ea548cf18a48359df5439f790',1,'tz::gl::vk2::Image::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_15',['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()'],['../classtz_1_1gl_1_1ogl2_1_1image.html#a34bdb1917898f67e8c8f919febe9dbd1',1,'tz::gl::ogl2::image::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()']]], + ['get_5fextensions_16',['get_extensions',['../classtz_1_1gl_1_1vk2_1_1_logical_device.html#aa8e581e0199c5ed305291e569c3196be',1,'tz::gl::vk2::LogicalDevice']]], + ['get_5fextra_5fbuffer_17',['get_extra_buffer',['../classtz_1_1ren_1_1impl_1_1render__pass.html#afd11e5978fe7395f709729b48ea12c44',1,'tz::ren::impl::render_pass']]], + ['get_5fextra_5fbuffer_5fcount_18',['get_extra_buffer_count',['../classtz_1_1ren_1_1impl_1_1render__pass.html#aee9a74e08f8efe789af4152a49a6302b',1,'tz::ren::impl::render_pass']]], + ['get_5ffeatures_19',['get_features',['../classtz_1_1gl_1_1vk2_1_1_logical_device.html#aa8d935b7f0b3783f17c3093cce7b86e7',1,'tz::gl::vk2::LogicalDevice']]], + ['get_5fflags_20',['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_21',['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_22',['get_global_transform',['../classtz_1_1transform__hierarchy.html#a10789865b93b68da39ee793d470b88e7',1,'tz::transform_hierarchy']]], + ['get_5fhardware_23',['get_hardware',['../classtz_1_1gl_1_1vk2_1_1_logical_device.html#acda5876065dd357359b3528553dac464',1,'tz::gl::vk2::LogicalDevice']]], + ['get_5fhierarchy_24',['get_hierarchy',['../classtz_1_1ren_1_1impl_1_1render__pass.html#aef055ac4a1ef14b91bf8215413d60d62',1,'tz::ren::impl::render_pass::get_hierarchy() const'],['../classtz_1_1ren_1_1impl_1_1render__pass.html#a4b05b49aa5662529efb67f5d2ebaba27',1,'tz::ren::impl::render_pass::get_hierarchy()']]], + ['get_5fimage_5fformat_25',['get_image_format',['../classtz_1_1gl_1_1vk2_1_1_swapchain.html#a01d41578f33880b720b3b7217db994ea',1,'tz::gl::vk2::Swapchain']]], + ['get_5fimage_5fviews_26',['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_27',['get_images',['../classtz_1_1gl_1_1vk2_1_1_swapchain.html#afe252ffdbcd30be51991b2cab05c8833',1,'tz::gl::vk2::Swapchain::get_images() const'],['../classtz_1_1gl_1_1vk2_1_1_swapchain.html#a96c1b6e9908255c892041e61f4ce2f66',1,'tz::gl::vk2::Swapchain::get_images()']]], + ['get_5finfo_28',['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_29',['get_instance',['../classtz_1_1gl_1_1vk2_1_1_physical_device.html#aa07d19e3e31cfd8d5d40ed83d01b4dcd',1,'tz::gl::vk2::PhysicalDevice']]], + ['get_5fkey_5fname_30',['get_key_name',['../group__tz__wsi__keyboard.html#ga71b029972073b41a5e63b852262af5be',1,'tz::wsi']]], + ['get_5flayout_31',['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_5flocal_5fmachine_5fendianness_32',['get_local_machine_endianness',['../group__tz__core.html#gaa4d410b271156d0a6928a6d8de368282',1,'tz']]], + ['get_5fmandatory_5fcolour_5fattachment_5fformats_33',['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_34',['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_35',['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_36',['get_mandatory_sampled_image_formats',['../namespacetz_1_1gl_1_1vk2_1_1format__traits.html#abe8f1c1644982b2e797f9445c5f62636',1,'tz::gl::vk2::format_traits']]], + ['get_5fmesh_37',['get_mesh',['../classtz_1_1ren_1_1impl_1_1render__pass.html#a28cbc6ec775e19983681a0c5e1a8c21d',1,'tz::ren::impl::render_pass']]], + ['get_5fmesh_5fcount_38',['get_mesh_count',['../classtz_1_1ren_1_1impl_1_1render__pass.html#aeeb3eb136f32484e2b0a7fe4f411b2c1',1,'tz::ren::impl::render_pass']]], + ['get_5fmonitors_39',['get_monitors',['../group__tz__wsi__monitor.html#gaf49b534da37be19431f74183eacfe56a',1,'tz::wsi']]], + ['get_5fnode_40',['get_node',['../classtz_1_1transform__hierarchy.html#a35e63b9956f057fd109840e5f436499a',1,'tz::transform_hierarchy']]], + ['get_5fobject_41',['get_object',['../classtz_1_1ren_1_1impl_1_1render__pass.html#aaa0f3fdbad8c7500ed144a01f6a93198',1,'tz::ren::impl::render_pass::get_object(object_handle oh) const'],['../classtz_1_1ren_1_1impl_1_1render__pass.html#a89c5bacfe71df5e427a022f355712667',1,'tz::ren::impl::render_pass::get_object(object_handle oh)']]], + ['get_5fobject_5fcount_42',['get_object_count',['../classtz_1_1ren_1_1impl_1_1render__pass.html#abb0413b3687c24713ab6af33b2373342',1,'tz::ren::impl::render_pass']]], + ['get_5foptions_43',['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_44',['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_5fpresent_5fmode_45',['get_present_mode',['../classtz_1_1gl_1_1vk2_1_1_swapchain.html#a4b1fdde7f90b64fb7f9f094fa08dac05',1,'tz::gl::vk2::Swapchain']]], + ['get_5frender_5fpass_46',['get_render_pass',['../classtz_1_1ren_1_1impl_1_1render__pass.html#aca317ef4e07b4ce72bbe5ccb6ce09b6a',1,'tz::ren::impl::render_pass']]], + ['get_5frenderer_47',['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_48',['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_49',['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_50',['get_resources',['../classtz_1_1gl_1_1renderer__info.html#aad33d729130cc8619cc736850ea91525',1,'tz::gl::renderer_info']]], + ['get_5froot_5fnode_5fids_51',['get_root_node_ids',['../classtz_1_1transform__hierarchy.html#a51f167da906d1903cf6265344d14c3b9',1,'tz::transform_hierarchy']]], + ['get_5fsampler_52',['get_sampler',['../classtz_1_1gl_1_1ogl2_1_1image.html#a96efa74dba6d1ba2af2a5125f16a05c3',1,'tz::gl::ogl2::image']]], + ['get_5fset_53',['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_54',['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_55',['get_state',['../classtz_1_1gl_1_1renderer.html#a964d9415ecb24b8c3d8f99542acc6ffb',1,'tz::gl::renderer::get_state()'],['../classtz_1_1gl_1_1renderer__ogl.html#aac4e76798fc197ebfa7790607da7d0af',1,'tz::gl::renderer_ogl::get_state()'],['../group__tz__lua__cpp.html#ga9a602c5f2589ea1c21846afbda7bbe29',1,'tz::lua::get_state()']]], + ['get_5fsupported_5fextensions_56',['get_supported_extensions',['../classtz_1_1gl_1_1vk2_1_1_physical_device.html#a9bbd0557b43b2c2605e36c0e5a70a59c',1,'tz::gl::vk2::PhysicalDevice']]], + ['get_5fsupported_5ffeatures_57',['get_supported_features',['../classtz_1_1gl_1_1vk2_1_1_physical_device.html#af8c939fb4265bf1c015f987d9c4c0380',1,'tz::gl::vk2::PhysicalDevice']]], + ['get_5fsupported_5fsurface_5fformats_58',['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_59',['get_supported_surface_present_modes',['../classtz_1_1gl_1_1vk2_1_1_physical_device.html#a3136ce2d7b7d952609e2ea9404f26335',1,'tz::gl::vk2::PhysicalDevice']]], + ['get_5ftarget_60',['get_target',['../classtz_1_1gl_1_1ogl2_1_1buffer.html#a88865542c959df85656e7b449468c8c1',1,'tz::gl::ogl2::buffer']]], + ['get_5ftype_61',['get_type',['../classtz_1_1gl_1_1iresource.html#a1511ed9713102a7b141271c75b1b4633',1,'tz::gl::iresource::get_type()'],['../classtz_1_1gl_1_1vk2_1_1_shader_module.html#a7e6c83e267b4bd1c7bc502211aee08d5',1,'tz::gl::vk2::ShaderModule::get_type()'],['../classtz_1_1gl_1_1resource.html#a1ce1477776828a3bec4e957d2c908a18',1,'tz::gl::resource::get_type()']]], + ['get_5fusage_62',['get_usage',['../classtz_1_1gl_1_1vk2_1_1_buffer.html#ac84676ea5d9d5f459cb9c385a1032729',1,'tz::gl::vk2::Buffer']]], + ['get_5fvalue_63',['get_value',['../classtz_1_1gl_1_1vk2_1_1_timeline_semaphore.html#a31afde1d634e5b7e5e2ae3292e9ace1b',1,'tz::gl::vk2::TimelineSemaphore']]], + ['get_5fversion_64',['get_version',['../group__tz__core.html#gabed61701bea0790680354d9793946583',1,'tz']]], + ['get_5fwindow_65',['get_window',['../group__tz__wsi__window.html#ga9e50b4d537b0154de05ba6de39042b2b',1,'tz::wsi']]], + ['get_5fwindow_5fformat_66',['get_window_format',['../classtz_1_1gl_1_1device.html#af3bb467ad3c470d6f4352b4ff1a63607',1,'tz::gl::device']]], + ['gltf_67',['gltf',['../classtz_1_1io_1_1gltf.html',1,'tz::io']]], + ['gltf_5faccessor_68',['gltf_accessor',['../structtz_1_1io_1_1gltf__accessor.html',1,'tz::io']]], + ['gltf_5fanimation_69',['gltf_animation',['../structtz_1_1io_1_1gltf__animation.html',1,'tz::io']]], + ['gltf_5fanimation_5fchannel_70',['gltf_animation_channel',['../structtz_1_1io_1_1gltf__animation__channel.html',1,'tz::io']]], + ['gltf_5fanimation_5fchannel_5ftarget_71',['gltf_animation_channel_target',['../structtz_1_1io_1_1gltf__animation__channel__target.html',1,'tz::io']]], + ['gltf_5fanimation_5fsampler_72',['gltf_animation_sampler',['../structtz_1_1io_1_1gltf__animation__sampler.html',1,'tz::io']]], + ['gltf_5fbuffer_73',['gltf_buffer',['../structtz_1_1io_1_1gltf__buffer.html',1,'tz::io']]], + ['gltf_5fbuffer_5fview_74',['gltf_buffer_view',['../structtz_1_1io_1_1gltf__buffer__view.html',1,'tz::io']]], + ['gltf_5fchunk_5fdata_75',['gltf_chunk_data',['../structtz_1_1io_1_1gltf__chunk__data.html',1,'tz::io']]], + ['gltf_5fheader_76',['gltf_header',['../structtz_1_1io_1_1gltf__header.html',1,'tz::io']]], + ['gltf_5fimage_77',['gltf_image',['../structtz_1_1io_1_1gltf__image.html',1,'tz::io']]], + ['gltf_5fmaterial_78',['gltf_material',['../structtz_1_1io_1_1gltf__material.html',1,'tz::io']]], + ['gltf_5fmesh_79',['gltf_mesh',['../structtz_1_1io_1_1gltf__mesh.html',1,'tz::io']]], + ['gltf_5fnode_80',['gltf_node',['../structtz_1_1io_1_1gltf__node.html',1,'tz::io']]], + ['gltf_5fscene_81',['gltf_scene',['../structtz_1_1io_1_1gltf__scene.html',1,'tz::io']]], + ['gltf_5fskin_82',['gltf_skin',['../structtz_1_1io_1_1gltf__skin.html',1,'tz::io']]], + ['gltf_5fsubmesh_5fdata_83',['gltf_submesh_data',['../structtz_1_1io_1_1gltf__submesh__data.html',1,'tz::io']]], + ['gltf_5fsubmesh_5ftexture_5fdata_84',['gltf_submesh_texture_data',['../structtz_1_1io_1_1gltf__submesh__texture__data.html',1,'tz::io']]], + ['gltf_5fvertex_5fdata_85',['gltf_vertex_data',['../structtz_1_1io_1_1gltf__vertex__data.html',1,'tz::io']]], + ['glyph_5fdata_86',['glyph_data',['../structglyph__data.html',1,'glyph_data'],['../structtz_1_1ren_1_1font__data_1_1glyph__data.html',1,'tz::ren::font_data::glyph_data']]], + ['glyph_5frender_5fdata_87',['glyph_render_data',['../structglyph__render__data.html',1,'glyph_render_data'],['../structtz_1_1ren_1_1glyph__render__data.html',1,'tz::ren::glyph_render_data']]], + ['gold_88',['gold',['../group__tzsl__noise.html#gaf2147086d053b3049440a65a705e3841',1,'tz::noise']]], + ['graphics_89',['Graphics',['../structtz_1_1gl_1_1render__state_1_1_graphics.html',1,'tz::gl::render_state']]], + ['graphics_90',['graphics',['../structtz_1_1gl_1_1render__state.html#a48bc0d47e4ce6f6bc9d3889d0045b2fc',1,'tz::gl::render_state']]], + ['graphics_20library_91',['Graphics Library',['../group__tz__gl2.html',1,'']]], + ['graphics_20pipeline_92',['Graphics Pipeline',['../group__tz__gl__vk__graphics__pipeline.html',1,'']]], + ['graphics_5ftopology_93',['graphics_topology',['../group__tz__gl2__renderer.html#gadf9f70703e9829dbdd82abc88dca23bd',1,'tz::gl']]], + ['graphicspipeline_94',['GraphicsPipeline',['../classtz_1_1gl_1_1vk2_1_1_graphics_pipeline.html',1,'tz::gl::vk2']]], + ['graphicspipelineinfo_95',['GraphicsPipelineInfo',['../structtz_1_1gl_1_1vk2_1_1_graphics_pipeline_info.html',1,'tz::gl::vk2']]], + ['greaterthan_96',['GreaterThan',['../group__tz__gl__vk__graphics__pipeline__fixed.html#gga93e2cb3a5e44484b0548e28496de69c7af6d044fe1f01fb0c956b80099e2a3072',1,'tz::gl::vk2']]], + ['greaterthanorequal_97',['GreaterThanOrEqual',['../group__tz__gl__vk__graphics__pipeline__fixed.html#gga93e2cb3a5e44484b0548e28496de69c7a25c44812e9d75f685d2a0b815dea1ebe',1,'tz::gl::vk2']]], + ['grid_5fview_98',['grid_view',['../classtz_1_1grid__view.html',1,'tz::grid_view< T, N >'],['../classtz_1_1grid__view.html#a55938dc4566d1435fd2362e3bef7a4ae',1,'tz::grid_view::grid_view(std::span< T > data, tz::vec2ui dimensions)'],['../classtz_1_1grid__view.html#ae011be6078a7b9b6a35ec4de5367670c',1,'tz::grid_view::grid_view(std::span< T > data, unsigned int length)']]], + ['guide_99',['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..e3488a069c --- /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_20iresource_20_3e_3',['handle< iresource >',['../classtz_1_1handle.html',1,'tz']]], + ['handle_3c_20tz_3a_3aio_3a_3agltf_20_3e_4',['handle< tz::io::gltf >',['../classtz_1_1handle.html',1,'tz']]], + ['handle_3c_20tz_3a_3aio_3a_3aimage_20_3e_5',['handle< tz::io::image >',['../classtz_1_1handle.html',1,'tz']]], + ['has_5fdepth_5fattachment_6',['has_depth_attachment',['../classtz_1_1gl_1_1ogl2_1_1framebuffer.html#a9bffd7e6b5321dbeba5ff1055b5f47f2',1,'tz::gl::ogl2::framebuffer']]], + ['has_5fever_5frecorded_7',['has_ever_recorded',['../classtz_1_1gl_1_1vk2_1_1_command_buffer.html#af1184d8a0d83461bf90fc04dcd62d3bb',1,'tz::gl::vk2::CommandBuffer']]], + ['has_5fvalid_5fdevice_8',['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()']]], + ['has_5fwindow_9',['has_window',['../group__tz__wsi__window.html#ga17b7e39ac40d1f9b2c39c6b536049442',1,'tz::wsi']]], + ['hash_3c_20tz_3a_3aquat_20_3e_10',['hash< tz::quat >',['../structstd_1_1hash_3_01tz_1_1quat_01_4.html',1,'std']]], + ['hash_3c_20tz_3a_3atrs_20_3e_11',['hash< tz::trs >',['../structstd_1_1hash_3_01tz_1_1trs_01_4.html',1,'std']]], + ['hash_3c_20tz_3a_3avector_3c_20t_2c_20s_20_3e_20_3e_12',['hash< tz::vector< T, S > >',['../structstd_1_1hash_3_01tz_1_1vector_3_01_t_00_01_s_01_4_01_4.html',1,'std']]], + ['hmetrics_5ft_13',['hmetrics_t',['../structtz_1_1io_1_1ttf__hmtx__table_1_1hmetrics__t.html',1,'tz::io::ttf_hmtx_table']]], + ['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..c33b3ea4f4 --- /dev/null +++ b/search/all_8.js @@ -0,0 +1,97 @@ +var searchData= +[ + ['i_5fjob_5fsystem_0',['i_job_system',['../classtz_1_1i__job__system.html',1,'tz']]], + ['i_5fslab_5fprocessor_1',['i_slab_processor',['../classtz_1_1lua_1_1i__slab__processor.html',1,'tz::lua']]], + ['icomponent_2',['icomponent',['../classtz_1_1gl_1_1icomponent.html',1,'tz::gl']]], + ['identity_3',['identity',['../classtz_1_1matrix.html#ac3c2819f55748e942c0b31473befba0f',1,'tz::matrix']]], + ['ihigh_5flevel_5frenderer_4',['ihigh_level_renderer',['../classtz_1_1ren_1_1ihigh__level__renderer.html',1,'tz::ren']]], + ['image_5',['image',['../classtz_1_1gl_1_1ogl2_1_1image.html',1,'tz::gl::ogl2']]], + ['image_6',['Image',['../classtz_1_1gl_1_1vk2_1_1_image.html',1,'tz::gl::vk2']]], + ['image_7',['image',['../structtz_1_1io_1_1image.html',1,'tz::io::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_1ogl2_1_1image.html#ac20bf3b1847956d4b3b56160e3c0fa8d',1,'tz::gl::ogl2::image::image()']]], + ['image_8',['Image',['../classtz_1_1gl_1_1vk2_1_1_image.html#a9749cb054c3afbc18d56331793c7c247',1,'tz::gl::vk2::Image']]], + ['image_9',['image',['../group__tz__gl2__res.html#gga4a7818551bb2ef3d04edb95ec731d041a78805a221a988e79ef3f42d7c5bfd418',1,'tz::gl']]], + ['image_5faspects_10',['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_image_copy_image.html#a0e407b294c7e6ee5ef34c9cc7ee4aa13',1,'tz::gl::vk2::VulkanCommand::ImageCopyImage::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_11',['image_component_ogl',['../classtz_1_1gl_1_1image__component__ogl.html',1,'tz::gl']]], + ['image_5fcomponent_5fvulkan_12',['image_component_vulkan',['../classtz_1_1gl_1_1image__component__vulkan.html',1,'tz::gl']]], + ['image_5fcopy_5fimage_13',['image_copy_image',['../classtz_1_1gl_1_1vk2_1_1_command_buffer_recording.html#a25b7a8e42401dd2af896c3c9459e112e',1,'tz::gl::vk2::CommandBufferRecording']]], + ['image_5ffilter_5flinear_14',['image_filter_linear',['../group__tz__gl2__res.html#ggaacaeec69fc5b83e204af317250a47eb8a8a9b1b3e43c4113ad451ec193bd68017',1,'tz::gl']]], + ['image_5ffilter_5fnearest_15',['image_filter_nearest',['../group__tz__gl2__res.html#ggaacaeec69fc5b83e204af317250a47eb8ad63423e4b6b9917dff5b8aa8fe18d037',1,'tz::gl']]], + ['image_5fformat_16',['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_17',['image_handle',['../structtz_1_1gl_1_1renderer__edit_1_1image__resize.html#aa8671b845a680750c4ba6f65a5baca78',1,'tz::gl::renderer_edit::image_resize']]], + ['image_5findex_18',['image_index',['../structtz_1_1gl_1_1vk2_1_1_swapchain_image_info.html#adf625a0862f94f5073b0615b7a069361',1,'tz::gl::vk2::SwapchainImageInfo']]], + ['image_5finfo_19',['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_5fmip_5flinear_20',['image_mip_linear',['../group__tz__gl2__res.html#ggaacaeec69fc5b83e204af317250a47eb8ae25261ba757fcd9064544e84356773b8',1,'tz::gl']]], + ['image_5fmip_5fnearest_21',['image_mip_nearest',['../group__tz__gl2__res.html#ggaacaeec69fc5b83e204af317250a47eb8a69dc2a032867f1fbbdbe7902a7a9c318',1,'tz::gl']]], + ['image_5foutput_22',['image_output',['../classtz_1_1gl_1_1image__output.html',1,'tz::gl']]], + ['image_5foutput_5finfo_23',['image_output_info',['../structtz_1_1gl_1_1image__output__info.html',1,'tz::gl']]], + ['image_5fresize_24',['image_resize',['../structtz_1_1gl_1_1renderer__edit_1_1image__resize.html',1,'tz::gl::renderer_edit::image_resize'],['../classtz_1_1gl_1_1_renderer_edit_builder.html#ae26ce64c12ecca5c355f85869e666ded',1,'tz::gl::RendererEditBuilder::image_resize()']]], + ['image_5fresource_25',['image_resource',['../classtz_1_1gl_1_1image__resource.html',1,'tz::gl']]], + ['image_5ftiling_26',['image_tiling',['../structtz_1_1gl_1_1vk2_1_1image__info.html#a3ff1e5d047eaaacc299e3327b9cd9a91',1,'tz::gl::vk2::image_info']]], + ['image_5fview_27',['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_28',['image_wrap_clamp_edge',['../group__tz__gl2__res.html#ggaacaeec69fc5b83e204af317250a47eb8abd6818f6b1e5e41a1f1169b95f55b328',1,'tz::gl']]], + ['image_5fwrap_5fmirrored_5frepeat_29',['image_wrap_mirrored_repeat',['../group__tz__gl2__res.html#ggaacaeec69fc5b83e204af317250a47eb8a3f3f8f65235766b00d473480e8eecaa7',1,'tz::gl']]], + ['image_5fwrap_5frepeat_30',['image_wrap_repeat',['../group__tz__gl2__res.html#ggaacaeec69fc5b83e204af317250a47eb8a51625ecb1d2582b8ba7de2809f6a0de6',1,'tz::gl']]], + ['imageacquisition_31',['ImageAcquisition',['../structtz_1_1gl_1_1vk2_1_1_swapchain_1_1_image_acquisition.html',1,'tz::gl::vk2::Swapchain']]], + ['imageacquisitionresult_32',['ImageAcquisitionResult',['../structtz_1_1gl_1_1vk2_1_1_swapchain_1_1_image_acquisition_result.html',1,'tz::gl::vk2::Swapchain']]], + ['imageaspectflag_33',['ImageAspectFlag',['../group__tz__gl__vk__image.html#ga93db24e9eb1cffe51979bd8a141ddc77',1,'tz::gl::vk2']]], + ['imagecopyimage_34',['ImageCopyImage',['../structtz_1_1gl_1_1vk2_1_1_vulkan_command_1_1_image_copy_image.html',1,'tz::gl::vk2::VulkanCommand']]], + ['imagelayout_35',['ImageLayout',['../group__tz__gl__vk__image.html#ga4ca55be3d1c101900d800a78deeb595f',1,'tz::gl::vk2']]], + ['images_20samplers_20and_20formats_36',['Images Samplers and Formats',['../group__tz__gl__ogl2__image.html',1,'Images, Samplers and Formats'],['../group__tz__gl__vk__image.html',1,'Images, Samplers and Formats']]], + ['imagetiling_37',['ImageTiling',['../group__tz__gl__vk__image.html#ga41ec6a06ba8bf8e03f80cf81eb99b46a',1,'tz::gl::vk2']]], + ['imageusage_38',['ImageUsage',['../group__tz__gl__vk__image.html#ga6ecb2d248a682aac08d93f4a7078161e',1,'tz::gl::vk2']]], + ['imageview_39',['ImageView',['../classtz_1_1gl_1_1vk2_1_1_image_view.html',1,'tz::gl::vk2']]], + ['imageviewinfo_40',['ImageViewInfo',['../structtz_1_1gl_1_1vk2_1_1_image_view_info.html',1,'tz::gl::vk2']]], + ['imagewriteinfo_41',['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_42',['ImGuiTabTZ',['../structtz_1_1dbgui_1_1_im_gui_tab_t_z.html',1,'tz::dbgui']]], + ['imguivertex_43',['ImGuiVertex',['../struct_im_gui_vertex.html',1,'']]], + ['immediate_44',['Immediate',['../group__tz__gl__vk__presentation.html#gga8e6e925d93013e81273325bc8764577aa43f6615bbb2c40a5306ff804094420b1',1,'tz::gl::vk2']]], + ['impl_5fdo_5fnothing_45',['impl_do_nothing',['../classtz_1_1transform__hierarchy.html#a03c95b250f14ac9f110b59eceb772222aba466e63f48b82ad02a81f23358510d5',1,'tz::transform_hierarchy']]], + ['impl_5ftz_5fgl_5fdevice_46',['impl_tz_gl_device',['../structtz_1_1gl_1_1impl__tz__gl__device.html',1,'tz::gl']]], + ['impl_5ftz_5fgl_5frenderer_47',['impl_tz_gl_renderer',['../structtz_1_1gl_1_1impl__tz__gl__renderer.html',1,'tz::gl']]], + ['impl_5ftz_5fio_5fgltf_48',['impl_tz_io_gltf',['../structtz_1_1io_1_1impl__tz__io__gltf.html',1,'tz::io']]], + ['impl_5ftz_5fwsi_5fwindow_49',['impl_tz_wsi_window',['../structtz_1_1wsi_1_1impl__tz__wsi__window.html',1,'tz::wsi']]], + ['implementation_50',['renderer Implementation',['../group__tz__gl2__graphicsapi__ogl__frontend__renderer.html',1,'']]], + ['index_51',['index',['../group__tz__gl__ogl2__buffers.html#gga2d4cfcc22205d2276ef7347cf6e1c1eda6a992d5529f459a44fee58c733255e86',1,'tz::gl::ogl2']]], + ['index_5fbuffer_52',['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_53',['IndexBufferRead',['../group__tz__gl__vk__graphics__pipeline__render__pass.html#ggaa5dd0142a36cd59d14dff54eed67c3dfac52fe3a67d19e52c2d8be1c1085af208',1,'tz::gl::vk2']]], + ['indirectbufferread_54',['IndirectBufferRead',['../group__tz__gl__vk__graphics__pipeline__render__pass.html#ggaa5dd0142a36cd59d14dff54eed67c3dfa4656386f11c44452e8d3dd44b23c8bc2',1,'tz::gl::vk2']]], + ['info_55',['info',['../structtz_1_1ren_1_1animation__renderer_1_1info.html',1,'tz::ren::animation_renderer::info'],['../structtz_1_1ren_1_1impl_1_1render__pass_1_1info.html',1,'tz::ren::impl::render_pass::info'],['../group__tz__core.html#ga1134f9d409701427b780589ca9fd48e5',1,'tz::engine_info::info()']]], + ['info_5flog_56',['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_57',['init_info',['../structtz_1_1dbgui_1_1init__info.html',1,'tz::dbgui']]], + ['init_5fstate_58',['init_state',['../structtz_1_1core_1_1detail_1_1init__state.html',1,'tz::core::detail']]], + ['initialise_59',['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(initialise_info init={})']]], + ['initialise_5finfo_60',['initialise_info',['../structtz_1_1initialise__info.html',1,'tz']]], + ['initially_5fsignalled_61',['initially_signalled',['../structtz_1_1gl_1_1vk2_1_1_fence_info.html#a22f2ab9e2e0152fde4949ea49dbd0cc4',1,'tz::gl::vk2::FenceInfo']]], + ['input_62',['Input',['../group__tz__wsi__keyboard.html',1,'Keyboard Input'],['../group__tz__wsi__mouse.html',1,'Mouse Input']]], + ['input_5frate_63',['input_rate',['../structtz_1_1gl_1_1vk2_1_1_vertex_input_state_1_1_binding.html#a37caf3785a283d47e9e9b5f8eea0cd60',1,'tz::gl::vk2::VertexInputState::Binding']]], + ['inputattachment_64',['InputAttachment',['../group__tz__gl__vk__image.html#gga6ecb2d248a682aac08d93f4a7078161ea261d965f5dd43c6873489b68730dbe57',1,'tz::gl::vk2']]], + ['inputattachmentread_65',['InputAttachmentRead',['../group__tz__gl__vk__graphics__pipeline__render__pass.html#ggaa5dd0142a36cd59d14dff54eed67c3dfa37bc3fb1753f31a1bfd76b475531d179',1,'tz::gl::vk2']]], + ['inputdelta_66',['InputDelta',['../structtz_1_1dbgui_1_1_input_delta.html',1,'tz::dbgui']]], + ['inputs_20and_20outputs_67',['Inputs and Outputs',['../group__tz__gl2__io.html',1,'']]], + ['instance_5fcount_68',['instance_count',['../structtz_1_1gl_1_1vk2_1_1_vulkan_command_1_1_draw.html#a365324b668b406ae92f340c15ecd30cb',1,'tz::gl::vk2::VulkanCommand::Draw']]], + ['instanceextension_69',['InstanceExtension',['../group__tz__gl__vk__extension.html#gaab3eb58740575c989d5eab8c3fd877a7',1,'tz::gl::vk2']]], + ['integration_70',['Integration',['../group__tz__lua__cpp.html',1,'Lua Integration'],['../group__tz__wsi.html',1,'Window System Integration']]], + ['interation_20wsi_71',['Presentation and Window Surface Interation (WSI)',['../group__tz__gl__vk__presentation.html',1,'']]], + ['interfaceiterator_72',['InterfaceIterator',['../classtz_1_1_interface_iterator.html',1,'tz']]], + ['internaldeviceinfo_73',['InternalDeviceInfo',['../structtz_1_1gl_1_1vk2_1_1_internal_device_info.html',1,'tz::gl::vk2']]], + ['inverse_74',['inverse',['../classtz_1_1matrix.html#a7e433fe3e699b5408379853e995047d7',1,'tz::matrix::inverse()'],['../group__tzsl__matrix.html#ga5acabab4299f3a83255b29951529b723',1,'tz::matrix::inverse()']]], + ['inverse_5fsqrt_75',['inverse_sqrt',['../group__tzsl__math.html#gada52dfc780717ed2093173a1d7fc2756',1,'tz::math']]], + ['ioutput_76',['ioutput',['../classtz_1_1gl_1_1ioutput.html',1,'tz::gl']]], + ['iresource_77',['iresource',['../classtz_1_1gl_1_1iresource.html',1,'tz::gl']]], + ['is_5fbig_5fendian_78',['is_big_endian',['../group__tz__core.html#ga3825fb98a5dcd1cea794be8a9ae21087',1,'tz']]], + ['is_5fbindless_79',['is_bindless',['../classtz_1_1gl_1_1ogl2_1_1image.html#abbbbeecb6616cc854440f88583e11739',1,'tz::gl::ogl2::image']]], + ['is_5finfinity_80',['is_infinity',['../group__tzsl__math.html#ga9fad99521b5db2890038926308391384',1,'tz::math']]], + ['is_5finitialised_81',['is_initialised',['../group__tz__gl__ogl2.html#gadb3c9422dbeed2aa29746cc76e69595f',1,'tz::gl::ogl2::is_initialised()'],['../group__tz__core.html#ga4197bca3cce79edb5652963d5bd7c1f0',1,'tz::is_initialised()']]], + ['is_5fkey_5fdown_82',['is_key_down',['../group__tz__wsi__keyboard.html#ga5e31e075f6fd53e6c03dce80ea5f3b7e',1,'tz::wsi']]], + ['is_5flittle_5fendian_83',['is_little_endian',['../group__tz__core.html#gad7f4858728fb24de9511dba9bdedf4ce',1,'tz']]], + ['is_5fmouse_5fbutton_5fdown_84',['is_mouse_button_down',['../group__tz__wsi__mouse.html#ga922f648e394c766866b9f09677f52a97',1,'tz::wsi']]], + ['is_5fnan_85',['is_nan',['../group__tzsl__math.html#gafb0b592c454e7f033ea85f46819d149a',1,'tz::math']]], + ['is_5fnull_86',['is_null',['../classtz_1_1gl_1_1ogl2_1_1buffer.html#a6b58eda5496da5d8bd70a05fe2bbad6e',1,'tz::gl::ogl2::buffer::is_null()'],['../classtz_1_1gl_1_1ogl2_1_1framebuffer.html#adf2c7cbf8d99d4989162683c264a49f5',1,'tz::gl::ogl2::framebuffer::is_null()'],['../classtz_1_1gl_1_1ogl2_1_1image.html#ac0f5d8d365b93ee6282751e94f8973e8',1,'tz::gl::ogl2::image::is_null()'],['../classtz_1_1gl_1_1ogl2_1_1shader.html#a51d7596169244c8fb6414302e2f1b1ef',1,'tz::gl::ogl2::shader::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()'],['../classtz_1_1gl_1_1vk2_1_1_swapchain.html#a3b79708061815cb17a57911986fc267f',1,'tz::gl::vk2::Swapchain::is_null()']]], + ['is_5frecording_87',['is_recording',['../classtz_1_1gl_1_1vk2_1_1_command_buffer.html#a721538a81ab301429e1eea581ca9a012',1,'tz::gl::vk2::CommandBuffer']]], + ['is_5fsignalled_88',['is_signalled',['../classtz_1_1gl_1_1vk2_1_1_fence.html#ac7ef0b27a987a0522a39a6bbdb071a90',1,'tz::gl::vk2::Fence']]], + ['is_5fvisible_89',['is_visible',['../structtz_1_1ren_1_1impl_1_1render__pass_1_1object__create__info.html#af97dde3ae4080b691f39f63f6567333a',1,'tz::ren::impl::render_pass::object_create_info']]], + ['iterate_5fancestors_90',['iterate_ancestors',['../classtz_1_1transform__hierarchy.html#a9c13eb5f585294602923ead2ba4c7813',1,'tz::transform_hierarchy']]], + ['iterate_5fchildren_91',['iterate_children',['../classtz_1_1transform__hierarchy.html#ab5301295fe1fe2c0cd788e06619e03f6',1,'tz::transform_hierarchy']]], + ['iterate_5fdescendants_92',['iterate_descendants',['../classtz_1_1transform__hierarchy.html#a5269b10605b0e2dca174a3532a356951',1,'tz::transform_hierarchy']]], + ['iterate_5fnodes_93',['iterate_nodes',['../classtz_1_1transform__hierarchy.html#acc7bc891096859dea26cbd49db71a563',1,'tz::transform_hierarchy']]] +]; diff --git a/search/all_9.js b/search/all_9.js new file mode 100644 index 0000000000..21b4b90917 --- /dev/null +++ b/search/all_9.js @@ -0,0 +1,12 @@ +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#gac3dcd43a6852662a66f2c17c17b00d79',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_5fblockingcurrentqueue_5',['job_system_blockingcurrentqueue',['../classtz_1_1impl_1_1job__system__blockingcurrentqueue.html',1,'tz::impl']]], + ['job_5fsystem_5ft_6',['job_system_t',['../group__tz__core__job.html#ga65cc284462dbe5a9a5651989bfb8e81b',1,'tz']]], + ['job_5fsystem_5fthreadpool_5flfq_7',['job_system_threadpool_lfq',['../classtz_1_1impl_1_1job__system__threadpool__lfq.html',1,'tz::impl']]], + ['job_5ft_8',['job_t',['../group__tz__core__job.html#gac43edddff5fe3939a52b76d9f9ca72b0',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..bb42d7f7e0 --- /dev/null +++ b/search/all_b.js @@ -0,0 +1,35 @@ +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',['Library',['../group__tz__gl2.html',1,'Graphics Library'],['../group__tz__ren.html',1,'Rendering Library']]], + ['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__ogl2__image.html#ggadabff1825f7cf36d8fada93ee1164a31a9a932b3cb396238423eb2f33ec17d6aa',1,'tz::gl::ogl2']]], + ['linear_12',['Linear',['../group__tz__gl__vk__image.html#gga41ec6a06ba8bf8e03f80cf81eb99b46aa32a843da6ea40ab3b17a3421ccdf671b',1,'tz::gl::vk2']]], + ['linear_5fallocator_13',['linear_allocator',['../classtz_1_1linear__allocator.html',1,'tz']]], + ['link_14',['link',['../classtz_1_1gl_1_1ogl2_1_1shader.html#ae19573903c49062b248032857ec14355',1,'tz::gl::ogl2::shader']]], + ['link_5fresult_15',['link_result',['../structtz_1_1gl_1_1ogl2_1_1shader_1_1link__result.html',1,'tz::gl::ogl2::shader']]], + ['little_16',['little',['../group__tz__core.html#gga7e3c11361b9752a8f8eec7af87a23a1caaae6635e044ac56046b2893a529b5114',1,'tz']]], + ['little_5fendian_17',['little_endian',['../group__tz__core.html#gaa33aa37bcfb7f692656a9533c3c4d62b',1,'tz']]], + ['ln_18',['ln',['../group__tzsl__math.html#gaa3a474353fb7c18a671fb285c38f12fa',1,'tz::math']]], + ['load_19',['Load',['../group__tz__gl__vk__graphics__pipeline__render__pass.html#ggaa1e0e627270d80ef86624590afc5a03faf19dbf2edb3a0bd74b0524d960ff21eb',1,'tz::gl::vk2']]], + ['loadop_20',['LoadOp',['../group__tz__gl__vk__graphics__pipeline__render__pass.html#gaa1e0e627270d80ef86624590afc5a03f',1,'tz::gl::vk2']]], + ['local_5ftransform_21',['local_transform',['../structtz_1_1transform__node.html#ad6eba04c7e83f7ac3a57ffc5cd7d558e',1,'tz::transform_node::local_transform'],['../structtz_1_1ren_1_1impl_1_1render__pass_1_1object__create__info.html#ae78b727f0165f5b952900cafbaa1d77f',1,'tz::ren::impl::render_pass::object_create_info::local_transform']]], + ['log_22',['log',['../group__tzsl__math.html#gaa8fbf2fd8ac5c0c3e7a3ad51cfe5acca',1,'tz::math']]], + ['logical_5fdevice_23',['logical_device',['../structtz_1_1gl_1_1vk2_1_1_descriptor_layout_info.html#af62a5ae0b0d0ecd5936c4efc36569cf7',1,'tz::gl::vk2::DescriptorLayoutInfo::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_pipeline_layout_info.html#a54a3f0e47bb70c14d39bf1e57551e85d',1,'tz::gl::vk2::PipelineLayoutInfo::logical_device']]], + ['logicaldevice_24',['LogicalDevice',['../classtz_1_1gl_1_1vk2_1_1_logical_device.html',1,'tz::gl::vk2::LogicalDevice'],['../classtz_1_1gl_1_1vk2_1_1_logical_device.html#a2bee85f2a05cbf3653a887f471745cdb',1,'tz::gl::vk2::LogicalDevice::LogicalDevice()']]], + ['logicaldeviceinfo_25',['LogicalDeviceInfo',['../structtz_1_1gl_1_1vk2_1_1_logical_device_info.html',1,'tz::gl::vk2']]], + ['lookup_5ffilter_26',['lookup_filter',['../group__tz__gl__ogl2__image.html#gadabff1825f7cf36d8fada93ee1164a31',1,'tz::gl::ogl2']]], + ['lookupfilter_27',['LookupFilter',['../group__tz__gl__vk__image.html#ga24cb95974e796673bd262b86ee9cfa89',1,'tz::gl::vk2']]], + ['lua_20api_20reference_28',['Lua API Reference',['../tz_lua.html',1,'']]], + ['lua_20integration_29',['Lua Integration',['../group__tz__lua__cpp.html',1,'']]], + ['lua_5foperation_30',['lua_operation',['../structtz_1_1lua_1_1lua__operation.html',1,'tz::lua']]], + ['lua_5fregister_31',['lua_register',['../structtz_1_1lua_1_1impl_1_1lua__register.html',1,'tz::lua::impl']]] +]; diff --git a/search/all_c.js b/search/all_c.js new file mode 100644 index 0000000000..ce3d41c571 --- /dev/null +++ b/search/all_c.js @@ -0,0 +1,71 @@ +var searchData= +[ + ['mag_5ffilter_0',['mag_filter',['../structtz_1_1gl_1_1ogl2_1_1sampler.html#ae53d7cb6e1d68e05d954b00d9d72b466',1,'tz::gl::ogl2::sampler::mag_filter'],['../structtz_1_1gl_1_1vk2_1_1_sampler_info.html#ad8a132850a8b6922a8d9c095631bbb0c',1,'tz::gl::vk2::SamplerInfo::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_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_10',['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()']]], + ['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#ga3180a15ce448ae5e076091d82ed2b129',1,'tz']]], + ['mat3_13',['mat3',['../group__tz__core.html#ga3516008d986158992b7366a7f810568e',1,'tz']]], + ['mat4_14',['mat4',['../group__tz__core.html#ga78aa62e47db6dbb0b675a6e1b8fedfe6',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#a08597e418e20c292ea54f4b845a6a35a',1,'tz::matrix::matrix()=default'],['../classtz_1_1matrix.html#ab93aae54ae663d225ed18bed1dde22ef',1,'tz::matrix::matrix(std::array< std::array< T, R >, C > data)']]], + ['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_5fchronological_5frank_20',['max_chronological_rank',['../structtz_1_1gl_1_1schedule.html#ab7d1d3bd45c313429389ad56f437c617',1,'tz::gl::schedule']]], + ['max_5fdepth_5fbounds_21',['max_depth_bounds',['../structtz_1_1gl_1_1vk2_1_1_depth_stencil_state.html#a58c3f50ea28733e7f2aa58925fa483ae',1,'tz::gl::vk2::DepthStencilState']]], + ['max_5fsets_22',['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_23',['maybe_depth_attachment',['../structtz_1_1gl_1_1ogl2_1_1framebuffer__info.html#ae7762196e1cb2dca0e5906eda2e03c66',1,'tz::gl::ogl2::framebuffer_info']]], + ['maybe_5fowned_5flist_24',['maybe_owned_list',['../classtz_1_1maybe__owned__list.html',1,'tz']]], + ['maybe_5fowned_5flist_3c_20iresource_20_3e_25',['maybe_owned_list< iresource >',['../classtz_1_1maybe__owned__list.html',1,'tz']]], + ['maybe_5fowned_5fptr_26',['maybe_owned_ptr',['../classtz_1_1maybe__owned__ptr.html',1,'tz']]], + ['maybe_5fworker_5faffinity_27',['maybe_worker_affinity',['../structtz_1_1execution__info.html#a52e9c8fdfe60f00ff9e32ee506330554',1,'tz::execution_info']]], + ['memblk_28',['memblk',['../structtz_1_1memblk.html',1,'tz']]], + ['memory_20utility_29',['Memory Utility',['../group__tz__core__memory.html',1,'']]], + ['mesh_30',['mesh',['../structtz_1_1ren_1_1impl_1_1mesh.html',1,'tz::ren::impl::mesh'],['../structtz_1_1ren_1_1impl_1_1render__pass_1_1object__create__info.html#aa7d494518b87ad43d87b06750db90b29',1,'tz::ren::impl::render_pass::object_create_info::mesh']]], + ['mesh_5flocator_31',['mesh_locator',['../structmesh__locator.html',1,'mesh_locator'],['../structtz_1_1ren_1_1impl_1_1mesh__locator.html',1,'tz::ren::impl::mesh_locator']]], + ['mesh_5frenderer_32',['mesh_renderer',['../classtz_1_1ren_1_1mesh__renderer.html',1,'tz::ren::mesh_renderer'],['../classtz_1_1ren_1_1mesh__renderer.html#a022f124fcf6fab386181d4881cdc9d4e',1,'tz::ren::mesh_renderer::mesh_renderer()']]], + ['mesh_5fvertex_33',['mesh_vertex',['../structtz_1_1ren_1_1impl_1_1mesh__vertex.html',1,'tz::ren::impl']]], + ['meshes_34',['Precomputed Meshes',['../group__tzsl__mesh.html',1,'']]], + ['message_5fcount_35',['message_count',['../classtz_1_1message__receiver.html#a6a2ee7680b8af7ef5149a591eb2536fe',1,'tz::message_receiver']]], + ['message_5fpasser_36',['message_passer',['../classtz_1_1message__passer.html',1,'tz::message_passer< M, thread_safe >'],['../classtz_1_1message__passer.html#a04cca529b058fa1264abbfdb53090cfa',1,'tz::message_passer::message_passer()=default'],['../classtz_1_1message__passer.html#a968b50616b63eed5a4fe2b063158565b',1,'tz::message_passer::message_passer(message_receiver< M, false > &target)'],['../classtz_1_1message__passer.html#a5b772bf664535fd0aca153513631596c',1,'tz::message_passer::message_passer(message_receiver< M, true > &target)']]], + ['message_5freceiver_37',['message_receiver',['../classtz_1_1message__receiver.html',1,'tz']]], + ['message_5freceiver_3c_20m_2c_20true_20_3e_38',['message_receiver< M, true >',['../classtz_1_1message__receiver.html',1,'tz']]], + ['messaging_39',['Messaging',['../group__tz__core__messaging.html',1,'']]], + ['metadata_5ft_40',['metadata_t',['../structtz_1_1ren_1_1animation__renderer_1_1gltf__data_1_1metadata__t.html',1,'tz::ren::animation_renderer::gltf_data']]], + ['micros_41',['micros',['../classtz_1_1duration.html#a77132d356c4f747078fd4574e778a1a8',1,'tz::duration']]], + ['middle_42',['middle',['../group__tz__wsi__mouse.html#ggaf90a65771c2d2d40e2d8a35f27288e23a4a548addbfb239bbd12f5afe11a4b6dc',1,'tz::wsi']]], + ['millis_43',['millis',['../classtz_1_1duration.html#a7e77d183a8aeecf8e36a6a7b76947f8b',1,'tz::duration']]], + ['min_44',['min',['../group__tzsl__atomic.html#ga86e1a113d8ee0dd644704f091bcb1b13',1,'tz::atomic::min()'],['../group__tzsl__math.html#ga4bd7bdfcb0408f324b5e80a7c233a2ed',1,'tz::math::min()']]], + ['min_5fdepth_5fbounds_45',['min_depth_bounds',['../structtz_1_1gl_1_1vk2_1_1_depth_stencil_state.html#a61412b4f256eebf85bd2c8107925e9ea',1,'tz::gl::vk2::DepthStencilState']]], + ['min_5ffilter_46',['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_47',['minor',['../structtz_1_1version.html#a6d890f224c8f89f1c17856c894bb3796',1,'tz::version']]], + ['minutes_48',['minutes',['../classtz_1_1duration.html#a03ae7d13037cac61ff6c60852d1d20fc',1,'tz::duration']]], + ['mip_5flevels_49',['mip_levels',['../structtz_1_1gl_1_1vk2_1_1image__info.html#aa5d7724a2fdf258894349ed434c342f2',1,'tz::gl::vk2::image_info']]], + ['miplookupfilter_50',['MipLookupFilter',['../group__tz__gl__vk__image.html#ga4023d87f2b0f64e5fc17ededf9e1a712',1,'tz::gl::vk2']]], + ['mirrored_5frepeat_51',['mirrored_repeat',['../group__tz__gl__ogl2__image.html#gga52bed615aea0b883aeb6702716f95e5ba301defc6e7425fc63ef35c7827d43b44',1,'tz::gl::ogl2']]], + ['mirroredrepeat_52',['MirroredRepeat',['../group__tz__gl__vk__image.html#gga8d6daa8ff20537f40f5e1145342c2d4da12ce4a5977988214a6b098b8cb0bf695',1,'tz::gl::vk2']]], + ['misc_5fdata_53',['misc_data',['../structtz_1_1ren_1_1misc__data.html',1,'tz::ren']]], + ['mod_54',['mod',['../group__tzsl__math.html#ga9e6708981e516e127c8e7f9e078aa50a',1,'tz::math']]], + ['model_55',['model',['../group__tz__core.html#ga8eee7d1f58cb6eefcc220bc2026ba7e1',1,'tz']]], + ['modules_56',['modules',['../structtz_1_1gl_1_1ogl2_1_1shader__info.html#a756a0fe26b2d4ec298dabeae07d003ab',1,'tz::gl::ogl2::shader_info::modules'],['../structtz_1_1gl_1_1vk2_1_1_shader_info.html#ad001f2e367292069e9993df2e02cebc7',1,'tz::gl::vk2::ShaderInfo::modules']]], + ['modules_57',['Shader Programs and Modules',['../group__tz__gl__vk__graphics__pipeline__shader.html',1,'']]], + ['monitor_58',['monitor',['../structtz_1_1wsi_1_1monitor.html',1,'tz::wsi']]], + ['monitors_59',['Monitors',['../group__tz__wsi__monitor.html',1,'']]], + ['mouse_20input_60',['Mouse Input',['../group__tz__wsi__mouse.html',1,'']]], + ['mouse_5fbutton_61',['mouse_button',['../group__tz__wsi__mouse.html#gaf90a65771c2d2d40e2d8a35f27288e23',1,'tz::wsi']]], + ['mouse_5fbutton_5fstate_62',['mouse_button_state',['../group__tz__wsi__mouse.html#ga089bafa0df7fa17353dbf27087a1f65b',1,'tz::wsi']]], + ['mouse_5fposition_63',['mouse_position',['../structtz_1_1wsi_1_1mouse__state.html#a20cc90fea16314dd5eff2dbc1c273427',1,'tz::wsi::mouse_state']]], + ['mouse_5fstate_64',['mouse_state',['../structtz_1_1wsi_1_1mouse__state.html',1,'tz::wsi']]], + ['multidrawindirect_65',['MultiDrawIndirect',['../group__tz__gl__vk__extension.html#gga6744c8f7d1276d6d9ae861b21c489505abea0d690193c82d29c896d859a91d8ff',1,'tz::gl::vk2']]], + ['multisamplestate_66',['MultisampleState',['../structtz_1_1gl_1_1vk2_1_1_multisample_state.html',1,'tz::gl::vk2']]], + ['mvp_67',['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..08b9ffc584 --- /dev/null +++ b/search/all_d.js @@ -0,0 +1,25 @@ +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']]], + ['nil_3',['nil',['../structtz_1_1lua_1_1nil.html',1,'tz::lua']]], + ['no_5fclear_5foutput_4',['no_clear_output',['../group__tz__gl2__renderer.html#ggac6f74feb8cd57f49c051f5d83a12be5da2203bd6a7850fb82fd5e59beddc2533d',1,'tz::gl']]], + ['no_5fdbgui_5',['no_dbgui',['../group__tz__core.html#ggad12da2cb05946402335871d2e282cbf9ad9ca1f44f2854bcace7ddf018002c26f',1,'tz']]], + ['no_5fdepth_5ftesting_6',['no_depth_testing',['../group__tz__gl2__renderer.html#ggac6f74feb8cd57f49c051f5d83a12be5daee30a7f521c17e0d4e97d6b247540301',1,'tz::gl']]], + ['no_5fgraphics_7',['no_graphics',['../group__tz__core.html#ggad12da2cb05946402335871d2e282cbf9a5deafc826baa20fe6c136c1e928e8fc3',1,'tz']]], + ['no_5flock_8',['no_lock',['../structtz_1_1detail_1_1no__lock.html',1,'tz::detail']]], + ['no_5fpresent_9',['no_present',['../group__tz__gl2__renderer.html#ggac6f74feb8cd57f49c051f5d83a12be5da8c583826577e40349f4d932f07107a8e',1,'tz::gl']]], + ['noclicked_10',['noclicked',['../group__tz__wsi__mouse.html#gga089bafa0df7fa17353dbf27087a1f65bac40b9c441c245ba7a4537352a73f5b90',1,'tz::wsi']]], + ['noculling_11',['NoCulling',['../group__tz__gl__vk__graphics__pipeline__fixed.html#ggaf55856ce9f281f90908bac12e0061e16a6913ff808b22b8502cdcf790839eeaa0',1,'tz::gl::vk2']]], + ['node_12',['node',['../classtz_1_1transform__hierarchy.html#a09c124bb6f951116630fcbde000867e9',1,'tz::transform_hierarchy']]], + ['noise_20functions_13',['Noise Functions',['../group__tzsl__noise.html',1,'']]], + ['noneneeded_14',['NoneNeeded',['../group__tz__gl__vk__graphics__pipeline__render__pass.html#ggaa5dd0142a36cd59d14dff54eed67c3dfa8de1f22edd904226836321deb96d7f1d',1,'tz::gl::vk2']]], + ['nonsolidfillrasteriser_15',['NonSolidFillRasteriser',['../group__tz__gl__vk__extension.html#gga6744c8f7d1276d6d9ae861b21c489505a50df80e0d2daa3c2a0fbf8a994ad3a62',1,'tz::gl::vk2']]], + ['normalise_16',['normalise',['../classtz_1_1vector.html#a6c5d76ac6e6c423a3939a68a104a2476',1,'tz::vector::normalise()'],['../group__tzsl__math.html#ga7e9161c4554681c9e3455f2044d74378',1,'tz::math::normalise()']]], + ['normalised_17',['normalised',['../classtz_1_1vector.html#a7d3f52f2b2eee13ed28869b1d5775a40',1,'tz::vector']]], + ['notequalto_18',['NotEqualTo',['../group__tz__gl__vk__graphics__pipeline__fixed.html#gga93e2cb3a5e44484b0548e28496de69c7a0961129d84d9d8f6aa4138a3e5022a1d',1,'tz::gl::vk2']]], + ['null_19',['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()']]], + ['null_5fallocator_20',['null_allocator',['../classtz_1_1null__allocator.html',1,'tz']]], + ['nullhand_5ft_21',['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..8d5b76b376 --- /dev/null +++ b/search/all_e.js @@ -0,0 +1,40 @@ +var searchData= +[ + ['object_5fcreate_5finfo_0',['object_create_info',['../structtz_1_1ren_1_1impl_1_1render__pass_1_1object__create__info.html',1,'tz::ren::impl::render_pass']]], + ['object_5fdata_1',['object_data',['../structtz_1_1ren_1_1impl_1_1object__data.html',1,'tz::ren::impl']]], + ['object_5fget_5fglobal_5ftransform_2',['object_get_global_transform',['../classtz_1_1ren_1_1impl_1_1render__pass.html#a65c4a8e3224f1d74945eb11f3b402bb0',1,'tz::ren::impl::render_pass']]], + ['object_5fget_5flocal_5ftransform_3',['object_get_local_transform',['../classtz_1_1ren_1_1impl_1_1render__pass.html#a349bd1c85304df77b50c389ccd2f9b2b',1,'tz::ren::impl::render_pass']]], + ['object_5fset_5fglobal_5ftransform_4',['object_set_global_transform',['../classtz_1_1ren_1_1impl_1_1render__pass.html#a5b6f3de2781533ad48d7e09803168928',1,'tz::ren::impl::render_pass']]], + ['object_5fset_5flocal_5ftransform_5',['object_set_local_transform',['../classtz_1_1ren_1_1impl_1_1render__pass.html#a771b23db90dbc4687151e667124a2c28',1,'tz::ren::impl::render_pass']]], + ['object_5fstorage_6',['object_storage',['../classtz_1_1ren_1_1impl_1_1object__storage.html',1,'tz::ren::impl']]], + ['object_5ft_7',['object_t',['../structobject__t.html',1,'']]], + ['old_5fswapchain_8',['old_swapchain',['../structtz_1_1gl_1_1vk2_1_1_swapchain_info.html#a3250b11e92a4f4f5bc8ed7dd00c8a26d',1,'tz::gl::vk2::SwapchainInfo']]], + ['on_5fsend_5fmessage_9',['on_send_message',['../classtz_1_1message__receiver.html#a02a473a737e33af3a81d905ea842a70c',1,'tz::message_receiver']]], + ['opengl_10',['OpenGL',['../group__tz__gl2__graphicsapi__ogl.html',1,'']]], + ['opengl_20backend_11',['OpenGL Backend',['../group__tz__gl__ogl2.html',1,'']]], + ['opengl_20frontend_12',['OpenGL Frontend',['../group__tz__gl2__graphicsapi__ogl__frontend.html',1,'']]], + ['operations_13',['Operations',['../group__tzsl__atomic.html',1,'Atomic Operations'],['../group__tzsl__math.html',1,'Mathematical Operations'],['../group__tzsl__matrix.html',1,'Matrix Operations']]], + ['operator_20e_14',['operator E',['../classtz_1_1enum__field.html#a3327eb996a17b1b537c9dd0f4ca7b4ff',1,'tz::enum_field']]], + ['operator_20std_3a_3aspan_3c_20const_20t_20_3e_15',['span< const T >',['../classtz_1_1basic__list.html#a54c9f1226a0ac27cd0f51485e3991181',1,'tz::basic_list']]], + ['operator_20vector_3c_20x_2c_20s_20_3e_16',['operator vector< X, S >',['../classtz_1_1vector.html#a07e3d24a2740e69ab8d7b3d3fbf1cae9',1,'tz::vector']]], + ['operator_28_29_17',['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_18',['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_19',['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_20',['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_21',['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_22',['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_23',['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_24',['operator/',['../classtz_1_1vector.html#a0258c2f1b18c602fa0d3e6f111d9a302',1,'tz::vector']]], + ['operator_2f_3d_25',['operator/=',['../classtz_1_1vector.html#a3bf18e76e10c2744051757ac69d28ea1',1,'tz::vector']]], + ['operator_3d_3d_26',['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_27',['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_1free__list.html#a95157608dd9f1bc73afac9f687d0f2f7',1,'tz::free_list::operator[](handle h) const'],['../classtz_1_1free__list.html#a07b4ecbe8f994cd94cb5b859642d1b67',1,'tz::free_list::operator[](handle h)'],['../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_28',['operator|',['../classtz_1_1enum__field.html#a2aecfc1eb743a60eb38d612bee21797c',1,'tz::enum_field']]], + ['operator_7c_3d_29',['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)']]], + ['optimal_30',['Optimal',['../group__tz__gl__vk__image.html#gga41ec6a06ba8bf8e03f80cf81eb99b46aacb61fef1e5e79e07a80421cb9a073a80',1,'tz::gl::vk2']]], + ['or_31',['or',['../group__tzsl__atomic.html#ga95e7e3ef54161ce397ae4496aa09be0c',1,'tz::atomic']]], + ['orthographic_32',['orthographic',['../group__tz__core.html#ga234891ef18cb4fd49558abc807e172e2',1,'tz']]], + ['output_33',['output',['../structtz_1_1ren_1_1animation__renderer_1_1info.html#a0fef30722d5c9fa9ad0ebaeea6351364',1,'tz::ren::animation_renderer::info::output'],['../structtz_1_1ren_1_1impl_1_1render__pass_1_1info.html#a88bc57724f951e4f046183dcf92d52e8',1,'tz::ren::impl::render_pass::info::output']]], + ['outputmanager_34',['OutputManager',['../classtz_1_1gl_1_1_output_manager.html',1,'tz::gl::OutputManager'],['../classtz_1_1gl_1_1_output_manager.html#adc7d95d64b3331d874c482a08b2471d5',1,'tz::gl::OutputManager::OutputManager()']]], + ['outputs_35',['Inputs and Outputs',['../group__tz__gl2__io.html',1,'']]], + ['overloaded_36',['overloaded',['../structtz_1_1gl_1_1overloaded.html',1,'tz::gl::overloaded< Ts >'],['../structtz_1_1overloaded.html',1,'tz::overloaded< Ts >']]] +]; diff --git a/search/all_f.js b/search/all_f.js new file mode 100644 index 0000000000..c67921991f --- /dev/null +++ b/search/all_f.js @@ -0,0 +1,53 @@ +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::parent'],['../structtz_1_1ren_1_1impl_1_1render__pass_1_1object__create__info.html#a534a58925a39da34f8be945db86f8731',1,'tz::ren::impl::render_pass::object_create_info::parent']]], + ['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'],['../classtz_1_1gl_1_1vk2_1_1_pipeline.html',1,'tz::gl::vk2::Pipeline']]], + ['pipeline_13',['pipeline',['../structtz_1_1gl_1_1vk2_1_1_vulkan_command_1_1_bind_pipeline.html#af61bd11bebba3d7c26caaf05c5488b77',1,'tz::gl::vk2::VulkanCommand::BindPipeline']]], + ['pipeline_20state_20values_14',['Fixed Pipeline State Values',['../group__tz__gl__vk__graphics__pipeline__fixed.html',1,'']]], + ['pipeline_5flayout_15',['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_16',['PipelineCache',['../classtz_1_1gl_1_1vk2_1_1_pipeline_cache.html',1,'tz::gl::vk2']]], + ['pipelinecontext_17',['PipelineContext',['../group__tz__gl__vk__graphics__pipeline__render__pass.html#ga58cefe5ecfeac91929d767bdb56f943b',1,'tz::gl::vk2']]], + ['pipelinedata_18',['PipelineData',['../structtz_1_1gl_1_1vk2_1_1_pipeline_data.html',1,'tz::gl::vk2']]], + ['pipelinelayout_19',['PipelineLayout',['../classtz_1_1gl_1_1vk2_1_1_pipeline_layout.html',1,'tz::gl::vk2']]], + ['pipelinelayoutinfo_20',['PipelineLayoutInfo',['../structtz_1_1gl_1_1vk2_1_1_pipeline_layout_info.html',1,'tz::gl::vk2']]], + ['pipelinestage_21',['PipelineStage',['../group__tz__gl__vk__graphics__pipeline.html#gaa581c5a329a76e48f41ca02bd263251a',1,'tz::gl::vk2']]], + ['pipelinestate_22',['PipelineState',['../structtz_1_1gl_1_1vk2_1_1_pipeline_state.html',1,'tz::gl::vk2']]], + ['playback_5fdata_23',['playback_data',['../structtz_1_1ren_1_1animation__renderer_1_1playback__data.html',1,'tz::ren::animation_renderer']]], + ['point_24',['Point',['../group__tz__gl__vk__graphics__pipeline__fixed.html#ggaaeda985d06849d890d7ba2902688cd01a2a3cd5946cfd317eb99c3d32e35e2d4c',1,'tz::gl::vk2']]], + ['points_25',['points',['../group__tz__gl2__renderer.html#ggadf9f70703e9829dbdd82abc88dca23bda0aab81de5c4c87021772015efc184d67',1,'tz::gl']]], + ['polygon_5fmode_26',['polygon_mode',['../structtz_1_1gl_1_1vk2_1_1_rasteriser_state.html#a791ff910d8069973e2ac715a7fbf0a34',1,'tz::gl::vk2::RasteriserState']]], + ['polygonmode_27',['PolygonMode',['../group__tz__gl__vk__graphics__pipeline__fixed.html#gaaeda985d06849d890d7ba2902688cd01',1,'tz::gl::vk2']]], + ['polymorphiclist_28',['PolymorphicList',['../classtz_1_1_polymorphic_list.html',1,'tz::PolymorphicList< T, Allocator >'],['../classtz_1_1_polymorphic_list.html#abc16be83e1ee23b79e3f6025015cc036',1,'tz::PolymorphicList::PolymorphicList()']]], + ['poollimits_29',['PoolLimits',['../structtz_1_1gl_1_1vk2_1_1_descriptor_pool_info_1_1_pool_limits.html',1,'tz::gl::vk2::DescriptorPoolInfo']]], + ['pooloutofmemory_30',['PoolOutOfMemory',['../structtz_1_1gl_1_1vk2_1_1_descriptor_pool_1_1_allocation_result.html#abad85d19de3197a840dc5e69ad797c54a59ea7060f6bf874416655509987eaa47',1,'tz::gl::vk2::DescriptorPool::AllocationResult']]], + ['pools_31',['Command Buffers and Pools',['../group__tz__gl__vk__commands.html',1,'']]], + ['pop_5flast_5fkey_32',['pop_last_key',['../structtz_1_1wsi_1_1keyboard__state.html#aff2a1e6ef218cd37ac2628ae96b20492',1,'tz::wsi::keyboard_state']]], + ['pow_33',['pow',['../group__tzsl__math.html#ga9f34e69d9b60f40eff093810b901758f',1,'tz::math']]], + ['precomputed_20meshes_34',['Precomputed Meshes',['../group__tzsl__mesh.html',1,'']]], + ['present_35',['present',['../classtz_1_1gl_1_1vk2_1_1hardware_1_1_queue.html#aa4f3d7a351fe699cd90ea6457c64caee',1,'tz::gl::vk2::hardware::Queue']]], + ['present_36',['Present',['../group__tz__gl__vk__image.html#gga4ca55be3d1c101900d800a78deeb595fadd058df87f5c88e3285a28ad7406a3c6',1,'tz::gl::vk2']]], + ['present_5fimage_37',['present_image',['../classtz_1_1gl_1_1device__command__pool.html#ab1098fdc258d74a3017f6eae5f2b2e18',1,'tz::gl::device_command_pool']]], + ['present_5fmode_38',['present_mode',['../structtz_1_1gl_1_1vk2_1_1_swapchain_info.html#a36db578d14d66370bc66718ef6ad9ebd',1,'tz::gl::vk2::SwapchainInfo']]], + ['present_5fsupport_39',['present_support',['../structtz_1_1gl_1_1vk2_1_1_queue_request.html#a14749d3d7e932216e42c76500bb4645a',1,'tz::gl::vk2::QueueRequest']]], + ['presentation_20and_20window_20surface_20interation_20wsi_40',['Presentation and Window Surface Interation (WSI)',['../group__tz__gl__vk__presentation.html',1,'']]], + ['presentinfo_41',['PresentInfo',['../structtz_1_1gl_1_1vk2_1_1hardware_1_1_queue_1_1_present_info.html',1,'tz::gl::vk2::hardware::Queue']]], + ['presentresult_42',['PresentResult',['../classtz_1_1gl_1_1vk2_1_1hardware_1_1_queue.html#a85b458bfb664176d140abf3b6b627e67',1,'tz::gl::vk2::hardware::Queue']]], + ['primitives_43',['Synchronisation Primitives',['../group__tz__gl__vk__sync.html',1,'']]], + ['printf_44',['printf',['../group__tzsl__debug.html#ga401528dfbbe8d1188886cc571d1265b6',1,'tz::debug']]], + ['process_5fmessage_45',['process_message',['../classtz_1_1message__receiver.html#ac26c9b17c8b06c4dc89aae76f9b481d0',1,'tz::message_receiver::process_message()'],['../classtz_1_1message__passer.html#a7c751a118baf9ba0c882abf871c350e4',1,'tz::message_passer::process_message(const M &msg) override final']]], + ['process_5fmessages_46',['process_messages',['../classtz_1_1message__passer.html#ae1b80f3a006cadcc5ecb3639acd54ae3',1,'tz::message_passer']]], + ['programs_20and_20modules_47',['Shader Programs and Modules',['../group__tz__gl__vk__graphics__pipeline__shader.html',1,'']]], + ['ptr_48',['ptr',['../structtz_1_1memblk.html#a1fbc7ecd17b8e88fafd516f747371d5d',1,'tz::memblk']]], + ['push_5fback_49',['push_back',['../classtz_1_1free__list.html#ab2d37790e8c37d08c8243c520b20eced',1,'tz::free_list::push_back(const T &t)'],['../classtz_1_1free__list.html#aea32553731eecf30c3453c121b3e55c4',1,'tz::free_list::push_back(T &&t)']]] +]; diff --git a/search/classes_0.js b/search/classes_0.js new file mode 100644 index 0000000000..8705fba348 --- /dev/null +++ b/search/classes_0.js @@ -0,0 +1,9 @@ +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']]], + ['animated_5fobjects_5fcreate_5finfo_3',['animated_objects_create_info',['../structtz_1_1ren_1_1animation__renderer_1_1animated__objects__create__info.html',1,'tz::ren::animation_renderer']]], + ['animation_5frenderer_4',['animation_renderer',['../classtz_1_1ren_1_1animation__renderer.html',1,'tz::ren']]], + ['attribute_5',['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..5c940716aa --- /dev/null +++ b/search/classes_1.js @@ -0,0 +1,45 @@ +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_3acommandbuffer_20_3e_12',['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_13',['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_14',['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_15',['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_16',['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_3ashadermoduleinfo_20_3e_17',['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_18',['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_19',['basic_list< tz::gl::vk2::VertexInputState::Binding >',['../classtz_1_1basic__list.html',1,'tz']]], + ['basic_5flist_3c_20vkpipelineshaderstagecreateinfo_20_3e_20',['basic_list< VkPipelineShaderStageCreateInfo >',['../classtz_1_1basic__list.html',1,'tz']]], + ['basic_5flist_3c_20vkrect2d_20_3e_21',['basic_list< VkRect2D >',['../classtz_1_1basic__list.html',1,'tz']]], + ['basic_5flist_3c_20vkviewport_20_3e_22',['basic_list< VkViewport >',['../classtz_1_1basic__list.html',1,'tz']]], + ['basic_5flist_3c_20write_20_3e_23',['basic_list< Write >',['../classtz_1_1basic__list.html',1,'tz']]], + ['begindynamicrendering_24',['BeginDynamicRendering',['../structtz_1_1gl_1_1vk2_1_1_vulkan_command_1_1_begin_dynamic_rendering.html',1,'tz::gl::vk2::VulkanCommand']]], + ['binarysemaphore_25',['BinarySemaphore',['../classtz_1_1gl_1_1vk2_1_1_binary_semaphore.html',1,'tz::gl::vk2']]], + ['bindbuffer_26',['BindBuffer',['../structtz_1_1gl_1_1vk2_1_1_vulkan_command_1_1_bind_buffer.html',1,'tz::gl::vk2::VulkanCommand']]], + ['binddescriptorsets_27',['BindDescriptorSets',['../structtz_1_1gl_1_1vk2_1_1_vulkan_command_1_1_bind_descriptor_sets.html',1,'tz::gl::vk2::VulkanCommand']]], + ['bindindexbuffer_28',['BindIndexBuffer',['../structtz_1_1gl_1_1vk2_1_1_vulkan_command_1_1_bind_index_buffer.html',1,'tz::gl::vk2::VulkanCommand']]], + ['binding_29',['Binding',['../structtz_1_1gl_1_1vk2_1_1_vertex_input_state_1_1_binding.html',1,'tz::gl::vk2::VertexInputState']]], + ['bindinginfo_30',['BindingInfo',['../structtz_1_1gl_1_1vk2_1_1_descriptor_layout_info_1_1_binding_info.html',1,'tz::gl::vk2::DescriptorLayoutInfo']]], + ['bindpipeline_31',['BindPipeline',['../structtz_1_1gl_1_1vk2_1_1_vulkan_command_1_1_bind_pipeline.html',1,'tz::gl::vk2::VulkanCommand']]], + ['buffer_32',['buffer',['../classtz_1_1gl_1_1ogl2_1_1buffer.html',1,'tz::gl::ogl2']]], + ['buffer_33',['Buffer',['../classtz_1_1gl_1_1vk2_1_1_buffer.html',1,'tz::gl::vk2']]], + ['buffer_5fcomponent_5fogl_34',['buffer_component_ogl',['../classtz_1_1gl_1_1buffer__component__ogl.html',1,'tz::gl']]], + ['buffer_5fcomponent_5fvulkan_35',['buffer_component_vulkan',['../classtz_1_1gl_1_1buffer__component__vulkan.html',1,'tz::gl']]], + ['buffer_5finfo_36',['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_37',['buffer_resize',['../structtz_1_1gl_1_1renderer__edit_1_1buffer__resize.html',1,'tz::gl::renderer_edit']]], + ['buffer_5fresource_38',['buffer_resource',['../classtz_1_1gl_1_1buffer__resource.html',1,'tz::gl']]], + ['buffercopybuffer_39',['BufferCopyBuffer',['../structtz_1_1gl_1_1vk2_1_1_vulkan_command_1_1_buffer_copy_buffer.html',1,'tz::gl::vk2::VulkanCommand']]], + ['buffercopyimage_40',['BufferCopyImage',['../structtz_1_1gl_1_1vk2_1_1_vulkan_command_1_1_buffer_copy_image.html',1,'tz::gl::vk2::VulkanCommand']]], + ['bufferwriteinfo_41',['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..ec6f296a86 --- /dev/null +++ b/search/classes_10.js @@ -0,0 +1,9 @@ +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']]], + ['queuefamilyinfo_2',['QueueFamilyInfo',['../structtz_1_1gl_1_1vk2_1_1_queue_family_info.html',1,'tz::gl::vk2']]], + ['queueinfo_3',['QueueInfo',['../structtz_1_1gl_1_1vk2_1_1hardware_1_1_queue_info.html',1,'tz::gl::vk2::hardware']]], + ['queuerequest_4',['QueueRequest',['../structtz_1_1gl_1_1vk2_1_1_queue_request.html',1,'tz::gl::vk2']]], + ['queuestorage_5',['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..880473b3a9 --- /dev/null +++ b/search/classes_11.js @@ -0,0 +1,29 @@ +var searchData= +[ + ['rasterise_5finfo_0',['rasterise_info',['../structtz_1_1io_1_1ttf_1_1rasterise__info.html',1,'tz::io::ttf']]], + ['rasteriserstate_1',['RasteriserState',['../structtz_1_1gl_1_1vk2_1_1_rasteriser_state.html',1,'tz::gl::vk2']]], + ['render_5fbuffer_2',['render_buffer',['../classtz_1_1gl_1_1ogl2_1_1render__buffer.html',1,'tz::gl::ogl2']]], + ['render_5fbuffer_5finfo_3',['render_buffer_info',['../structtz_1_1gl_1_1ogl2_1_1render__buffer__info.html',1,'tz::gl::ogl2']]], + ['render_5fconfig_4',['render_config',['../structtz_1_1gl_1_1renderer__edit_1_1render__config.html',1,'tz::gl::renderer_edit']]], + ['render_5fpass_5',['render_pass',['../classtz_1_1ren_1_1impl_1_1render__pass.html',1,'tz::ren::impl']]], + ['render_5fstate_6',['render_state',['../structtz_1_1gl_1_1render__state.html',1,'tz::gl']]], + ['render_5ftarget_5ft_7',['render_target_t',['../structtz_1_1gl_1_1renderer__output__manager_1_1render__target__t.html',1,'tz::gl::renderer_output_manager']]], + ['renderer_8',['renderer',['../classtz_1_1gl_1_1renderer.html',1,'tz::gl']]], + ['renderer_5fcommand_5fprocessor_9',['renderer_command_processor',['../classtz_1_1gl_1_1renderer__command__processor.html',1,'tz::gl']]], + ['renderer_5fdescriptor_5fmanager_10',['renderer_descriptor_manager',['../classtz_1_1gl_1_1renderer__descriptor__manager.html',1,'tz::gl']]], + ['renderer_5fedit_11',['renderer_edit',['../structtz_1_1gl_1_1renderer__edit.html',1,'tz::gl']]], + ['renderer_5finfo_12',['renderer_info',['../classtz_1_1gl_1_1renderer__info.html',1,'tz::gl']]], + ['renderer_5fogl_13',['renderer_ogl',['../classtz_1_1gl_1_1renderer__ogl.html',1,'tz::gl']]], + ['renderer_5fogl_5fbase_14',['renderer_ogl_base',['../structtz_1_1gl_1_1renderer__ogl__base.html',1,'tz::gl']]], + ['renderer_5foutput_5fmanager_15',['renderer_output_manager',['../classtz_1_1gl_1_1renderer__output__manager.html',1,'tz::gl']]], + ['renderer_5fpipeline_16',['renderer_pipeline',['../classtz_1_1gl_1_1renderer__pipeline.html',1,'tz::gl']]], + ['renderer_5fresource_5fmanager_17',['renderer_resource_manager',['../classtz_1_1gl_1_1renderer__resource__manager.html',1,'tz::gl']]], + ['renderer_5ftag_18',['renderer_tag',['../structtz_1_1gl_1_1detail_1_1renderer__tag.html',1,'tz::gl::detail']]], + ['renderer_5fvulkan2_19',['renderer_vulkan2',['../classtz_1_1gl_1_1renderer__vulkan2.html',1,'tz::gl']]], + ['renderer_5fvulkan_5fbase_20',['renderer_vulkan_base',['../structtz_1_1gl_1_1renderer__vulkan__base.html',1,'tz::gl']]], + ['renderereditbuilder_21',['RendererEditBuilder',['../classtz_1_1gl_1_1_renderer_edit_builder.html',1,'tz::gl']]], + ['resource_22',['resource',['../classtz_1_1gl_1_1resource.html',1,'tz::gl']]], + ['resource_5freference_23',['resource_reference',['../structtz_1_1gl_1_1renderer__edit_1_1resource__reference.html',1,'tz::gl::renderer_edit']]], + ['resource_5fwrite_24',['resource_write',['../structtz_1_1gl_1_1renderer__edit_1_1resource__write.html',1,'tz::gl::renderer_edit']]], + ['resourcestorage_25',['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..953dae4994 --- /dev/null +++ b/search/classes_12.js @@ -0,0 +1,36 @@ +var searchData= +[ + ['sampler_0',['sampler',['../structtz_1_1gl_1_1ogl2_1_1sampler.html',1,'tz::gl::ogl2']]], + ['sampler_1',['Sampler',['../classtz_1_1gl_1_1vk2_1_1_sampler.html',1,'tz::gl::vk2']]], + ['samplerinfo_2',['SamplerInfo',['../structtz_1_1gl_1_1vk2_1_1_sampler_info.html',1,'tz::gl::vk2']]], + ['schedule_3',['schedule',['../structtz_1_1gl_1_1schedule.html',1,'tz::gl']]], + ['scissor_4',['scissor',['../structtz_1_1gl_1_1renderer__edit_1_1scissor.html',1,'tz::gl::renderer_edit']]], + ['scissor_5fregion_5',['scissor_region',['../structtz_1_1gl_1_1scissor__region.html',1,'tz::gl']]], + ['setscissordynamic_6',['SetScissorDynamic',['../structtz_1_1gl_1_1vk2_1_1_vulkan_command_1_1_set_scissor_dynamic.html',1,'tz::gl::vk2::VulkanCommand']]], + ['shader_7',['shader',['../classtz_1_1gl_1_1ogl2_1_1shader.html',1,'tz::gl::ogl2']]], + ['shader_8',['Shader',['../classtz_1_1gl_1_1vk2_1_1_shader.html',1,'tz::gl::vk2']]], + ['shader_5finfo_9',['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_10',['shader_meta',['../structtz_1_1gl_1_1shader__meta.html',1,'tz::gl']]], + ['shader_5fmodule_11',['shader_module',['../classtz_1_1gl_1_1ogl2_1_1shader__module.html',1,'tz::gl::ogl2']]], + ['shader_5fmodule_5finfo_12',['shader_module_info',['../structtz_1_1gl_1_1ogl2_1_1shader__module__info.html',1,'tz::gl::ogl2']]], + ['shaderinfo_13',['ShaderInfo',['../structtz_1_1gl_1_1vk2_1_1_shader_info.html',1,'tz::gl::vk2']]], + ['shadermanager_14',['ShaderManager',['../classtz_1_1gl_1_1_shader_manager.html',1,'tz::gl']]], + ['shadermodule_15',['ShaderModule',['../classtz_1_1gl_1_1vk2_1_1_shader_module.html',1,'tz::gl::vk2']]], + ['shadermoduleinfo_16',['ShaderModuleInfo',['../structtz_1_1gl_1_1vk2_1_1_shader_module_info.html',1,'tz::gl::vk2']]], + ['shaderpipelinedata_17',['ShaderPipelineData',['../structtz_1_1gl_1_1vk2_1_1_shader_pipeline_data.html',1,'tz::gl::vk2']]], + ['signalinfo_18',['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']]], + ['slab_19',['slab',['../classtz_1_1lua_1_1slab.html',1,'tz::lua']]], + ['slab_5fallocator_20',['slab_allocator',['../classtz_1_1slab__allocator.html',1,'tz']]], + ['source_5floc_21',['source_loc',['../structtz_1_1detail_1_1source__loc.html',1,'tz::detail']]], + ['stack_5fallocator_22',['stack_allocator',['../classtz_1_1stack__allocator.html',1,'tz']]], + ['state_23',['state',['../classtz_1_1lua_1_1state.html',1,'tz::lua']]], + ['static_5ffor_5ft_24',['static_for_t',['../structtz_1_1static__for__t.html',1,'tz']]], + ['static_5ffor_5ft_3c_20n_2c_20n_20_3e_25',['static_for_t< N, N >',['../structtz_1_1static__for__t_3_01_n_00_01_n_01_4.html',1,'tz']]], + ['string_5flocator_26',['string_locator',['../structstring__locator.html',1,'string_locator'],['../structtz_1_1ren_1_1char__storage_1_1string__locator.html',1,'tz::ren::char_storage::string_locator']]], + ['submesh_27',['submesh',['../structtz_1_1io_1_1gltf__mesh_1_1submesh.html',1,'tz::io::gltf_mesh']]], + ['submitinfo_28',['SubmitInfo',['../structtz_1_1gl_1_1vk2_1_1hardware_1_1_queue_1_1_submit_info.html',1,'tz::gl::vk2::hardware::Queue']]], + ['swapchain_29',['Swapchain',['../classtz_1_1gl_1_1vk2_1_1_swapchain.html',1,'tz::gl::vk2']]], + ['swapchainextent_30',['SwapchainExtent',['../structtz_1_1gl_1_1vk2_1_1_physical_device_surface_capability_info_1_1_swapchain_extent.html',1,'tz::gl::vk2::PhysicalDeviceSurfaceCapabilityInfo']]], + ['swapchainimageinfo_31',['SwapchainImageInfo',['../structtz_1_1gl_1_1vk2_1_1_swapchain_image_info.html',1,'tz::gl::vk2']]], + ['swapchaininfo_32',['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..75279dcdf8 --- /dev/null +++ b/search/classes_13.js @@ -0,0 +1,36 @@ +var searchData= +[ + ['text_5frenderer_0',['text_renderer',['../classtz_1_1ren_1_1text__renderer.html',1,'tz::ren']]], + ['texture_5flocator_1',['texture_locator',['../structtexture__locator.html',1,'texture_locator'],['../structtz_1_1ren_1_1impl_1_1texture__locator.html',1,'tz::ren::impl::texture_locator']]], + ['texture_5fmanager_2',['texture_manager',['../classtz_1_1ren_1_1impl_1_1texture__manager.html',1,'tz::ren::impl']]], + ['timeline_5ft_3',['timeline_t',['../structtz_1_1gl_1_1timeline__t.html',1,'tz::gl']]], + ['timelinesemaphore_4',['TimelineSemaphore',['../classtz_1_1gl_1_1vk2_1_1_timeline_semaphore.html',1,'tz::gl::vk2']]], + ['topazplatformdata_5',['TopazPlatformData',['../structtz_1_1dbgui_1_1_topaz_platform_data.html',1,'tz::dbgui']]], + ['topazrenderdata_6',['TopazRenderData',['../structtz_1_1dbgui_1_1_topaz_render_data.html',1,'tz::dbgui']]], + ['topazshaderrenderdata_7',['TopazShaderRenderData',['../structtz_1_1dbgui_1_1_topaz_shader_render_data.html',1,'tz::dbgui']]], + ['transform_5fhierarchy_8',['transform_hierarchy',['../classtz_1_1transform__hierarchy.html',1,'tz']]], + ['transform_5fhierarchy_3c_20std_3a_3auint32_5ft_20_3e_9',['transform_hierarchy< std::uint32_t >',['../classtz_1_1transform__hierarchy.html',1,'tz']]], + ['transform_5fnode_10',['transform_node',['../structtz_1_1transform__node.html',1,'tz']]], + ['transitionimagelayout_11',['TransitionImageLayout',['../structtz_1_1gl_1_1vk2_1_1_vulkan_command_1_1_transition_image_layout.html',1,'tz::gl::vk2::VulkanCommand']]], + ['trs_12',['trs',['../structtz_1_1trs.html',1,'tz']]], + ['ttf_13',['ttf',['../classtz_1_1io_1_1ttf.html',1,'tz::io']]], + ['ttf_5fcmap_5fencoding_5frecord_14',['ttf_cmap_encoding_record',['../structtz_1_1io_1_1ttf__cmap__encoding__record.html',1,'tz::io']]], + ['ttf_5fcmap_5ftable_15',['ttf_cmap_table',['../structtz_1_1io_1_1ttf__cmap__table.html',1,'tz::io']]], + ['ttf_5fglyf_5felem_16',['ttf_glyf_elem',['../structtz_1_1io_1_1ttf__glyf__elem.html',1,'tz::io']]], + ['ttf_5fglyf_5ftable_17',['ttf_glyf_table',['../structtz_1_1io_1_1ttf__glyf__table.html',1,'tz::io']]], + ['ttf_5fglyph_18',['ttf_glyph',['../structtz_1_1io_1_1ttf__glyph.html',1,'tz::io']]], + ['ttf_5fglyph_5fcontour_19',['ttf_glyph_contour',['../structtz_1_1io_1_1ttf__glyph__contour.html',1,'tz::io']]], + ['ttf_5fglyph_5fmap_20',['ttf_glyph_map',['../structtz_1_1io_1_1ttf__glyph__map.html',1,'tz::io']]], + ['ttf_5fglyph_5fshape_5finfo_21',['ttf_glyph_shape_info',['../structtz_1_1io_1_1ttf__glyph__shape__info.html',1,'tz::io']]], + ['ttf_5fglyph_5fspacing_5finfo_22',['ttf_glyph_spacing_info',['../structtz_1_1io_1_1ttf__glyph__spacing__info.html',1,'tz::io']]], + ['ttf_5fhead_5ftable_23',['ttf_head_table',['../structtz_1_1io_1_1ttf__head__table.html',1,'tz::io']]], + ['ttf_5fheader_24',['ttf_header',['../structtz_1_1io_1_1ttf__header.html',1,'tz::io']]], + ['ttf_5fhhea_5ftable_25',['ttf_hhea_table',['../structtz_1_1io_1_1ttf__hhea__table.html',1,'tz::io']]], + ['ttf_5fhmtx_5ftable_26',['ttf_hmtx_table',['../structtz_1_1io_1_1ttf__hmtx__table.html',1,'tz::io']]], + ['ttf_5floca_5ftable_27',['ttf_loca_table',['../structtz_1_1io_1_1ttf__loca__table.html',1,'tz::io']]], + ['ttf_5fmaxp_5ftable_28',['ttf_maxp_table',['../structtz_1_1io_1_1ttf__maxp__table.html',1,'tz::io']]], + ['ttf_5ftable_29',['ttf_table',['../structtz_1_1io_1_1ttf__table.html',1,'tz::io']]], + ['tuple_5felement_3c_20i_2c_20tz_3a_3avector_3c_20t_2c_20s_20_3e_20_3e_30',['tuple_element< I, tz::vector< T, S > >',['../structstd_1_1tuple__element_3_01_i_00_01tz_1_1vector_3_01_t_00_01_s_01_4_01_4.html',1,'std']]], + ['tuple_5fsize_3c_20tz_3a_3avector_3c_20t_2c_20s_20_3e_20_3e_31',['tuple_size< tz::vector< T, S > >',['../structstd_1_1tuple__size_3_01tz_1_1vector_3_01_t_00_01_s_01_4_01_4.html',1,'std']]], + ['tz_5flua_5fdata_5fstore_32',['tz_lua_data_store',['../structtz_1_1tz__lua__data__store.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..5667280bdd --- /dev/null +++ b/search/classes_15.js @@ -0,0 +1,22 @@ +var searchData= +[ + ['vector_0',['vector',['../classtz_1_1vector.html',1,'tz']]], + ['vector_3c_20float_2c_202_20_3e_1',['vector< float, 2 >',['../classtz_1_1vector.html',1,'tz']]], + ['vector_3c_20float_2c_203_20_3e_2',['vector< float, 3 >',['../classtz_1_1vector.html',1,'tz']]], + ['vector_3c_20float_2c_204_20_3e_3',['vector< float, 4 >',['../classtz_1_1vector.html',1,'tz']]], + ['vector_3c_20std_3a_3auint32_5ft_2c_202_20_3e_4',['vector< std::uint32_t, 2 >',['../classtz_1_1vector.html',1,'tz']]], + ['vector_3c_20std_3a_3auint32_5ft_2c_204_20_3e_5',['vector< std::uint32_t, 4 >',['../classtz_1_1vector.html',1,'tz']]], + ['vector_3c_20unsigned_20int_2c_202_20_3e_6',['vector< unsigned int, 2 >',['../classtz_1_1vector.html',1,'tz']]], + ['vector_3c_20unsigned_20int_2c_203_20_3e_7',['vector< unsigned int, 3 >',['../classtz_1_1vector.html',1,'tz']]], + ['version_8',['version',['../structtz_1_1version.html',1,'tz']]], + ['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,'']]], + ['vertex_5fwrangler_11',['vertex_wrangler',['../classtz_1_1ren_1_1impl_1_1vertex__wrangler.html',1,'tz::ren::impl']]], + ['vertexinputstate_12',['VertexInputState',['../structtz_1_1gl_1_1vk2_1_1_vertex_input_state.html',1,'tz::gl::vk2']]], + ['viewport_5fregion_13',['viewport_region',['../structtz_1_1gl_1_1viewport__region.html',1,'tz::gl']]], + ['viewportstate_14',['ViewportState',['../structtz_1_1gl_1_1vk2_1_1_viewport_state.html',1,'tz::gl::vk2']]], + ['vulkancommand_15',['VulkanCommand',['../structtz_1_1gl_1_1vk2_1_1_vulkan_command.html',1,'tz::gl::vk2']]], + ['vulkandebugmessenger_16',['VulkanDebugMessenger',['../classtz_1_1gl_1_1vk2_1_1_vulkan_debug_messenger.html',1,'tz::gl::vk2']]], + ['vulkaninstance_17',['VulkanInstance',['../classtz_1_1gl_1_1vk2_1_1_vulkan_instance.html',1,'tz::gl::vk2']]], + ['vulkaninstanceinfo_18',['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..a038681552 --- /dev/null +++ b/search/classes_16.js @@ -0,0 +1,15 @@ +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']]], + ['with_5flock_10',['with_lock',['../structtz_1_1detail_1_1with__lock.html',1,'tz::detail']]], + ['write_11',['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..32434dfa55 --- /dev/null +++ b/search/classes_2.js @@ -0,0 +1,21 @@ +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_5forthographic_5ft_2',['camera_orthographic_t',['../structtz_1_1ren_1_1impl_1_1render__pass_1_1camera__orthographic__t.html',1,'tz::ren::impl::render_pass']]], + ['camera_5fperspective_5ft_3',['camera_perspective_t',['../structtz_1_1ren_1_1impl_1_1render__pass_1_1camera__perspective__t.html',1,'tz::ren::impl::render_pass']]], + ['char_5fstorage_4',['char_storage',['../classtz_1_1ren_1_1char__storage.html',1,'tz::ren']]], + ['colourblendstate_5',['ColourBlendState',['../structtz_1_1gl_1_1vk2_1_1_colour_blend_state.html',1,'tz::gl::vk2']]], + ['commandbuffer_6',['CommandBuffer',['../classtz_1_1gl_1_1vk2_1_1_command_buffer.html',1,'tz::gl::vk2']]], + ['commandbufferdata_7',['CommandBufferData',['../structtz_1_1gl_1_1vk2_1_1_command_buffer_data.html',1,'tz::gl::vk2']]], + ['commandbufferrecording_8',['CommandBufferRecording',['../classtz_1_1gl_1_1vk2_1_1_command_buffer_recording.html',1,'tz::gl::vk2']]], + ['commandpool_9',['CommandPool',['../classtz_1_1gl_1_1vk2_1_1_command_pool.html',1,'tz::gl::vk2']]], + ['commandpoolinfo_10',['CommandPoolInfo',['../structtz_1_1gl_1_1vk2_1_1_command_pool_info.html',1,'tz::gl::vk2']]], + ['compile_5fresult_11',['compile_result',['../structtz_1_1gl_1_1ogl2_1_1shader__module_1_1compile__result.html',1,'tz::gl::ogl2::shader_module']]], + ['compute_12',['Compute',['../structtz_1_1gl_1_1render__state_1_1_compute.html',1,'tz::gl::render_state']]], + ['compute_5fconfig_13',['compute_config',['../structtz_1_1gl_1_1renderer__edit_1_1compute__config.html',1,'tz::gl::renderer_edit']]], + ['compute_5fpass_14',['compute_pass',['../classtz_1_1ren_1_1impl_1_1compute__pass.html',1,'tz::ren::impl']]], + ['computepipeline_15',['ComputePipeline',['../classtz_1_1gl_1_1vk2_1_1_compute_pipeline.html',1,'tz::gl::vk2']]], + ['computepipelineinfo_16',['ComputePipelineInfo',['../structtz_1_1gl_1_1vk2_1_1_compute_pipeline_info.html',1,'tz::gl::vk2']]], + ['concurrentqueue_5ftraits_17',['concurrentqueue_traits',['../structtz_1_1impl_1_1concurrentqueue__traits.html',1,'tz::impl']]] +]; diff --git a/search/classes_3.js b/search/classes_3.js new file mode 100644 index 0000000000..f5b6e17eb6 --- /dev/null +++ b/search/classes_3.js @@ -0,0 +1,53 @@ +var searchData= +[ + ['data_5fstore_0',['data_store',['../classtz_1_1data__store.html',1,'tz']]], + ['debugbeginlabel_1',['DebugBeginLabel',['../structtz_1_1gl_1_1vk2_1_1_vulkan_command_1_1_debug_begin_label.html',1,'tz::gl::vk2::VulkanCommand']]], + ['debugendlabel_2',['DebugEndLabel',['../structtz_1_1gl_1_1vk2_1_1_vulkan_command_1_1_debug_end_label.html',1,'tz::gl::vk2::VulkanCommand']]], + ['debugnameable_3',['DebugNameable',['../classtz_1_1gl_1_1vk2_1_1_debug_nameable.html',1,'tz::gl::vk2']]], + ['debugnameable_3c_20vk_5fobject_5ftype_5fbuffer_20_3e_4',['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_5',['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_6',['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_7',['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_8',['DebugNameable< VK_OBJECT_TYPE_SEMAPHORE >',['../classtz_1_1gl_1_1vk2_1_1_debug_nameable.html',1,'tz::gl::vk2']]], + ['delay_9',['delay',['../classtz_1_1delay.html',1,'tz']]], + ['depthstencilstate_10',['DepthStencilState',['../structtz_1_1gl_1_1vk2_1_1_depth_stencil_state.html',1,'tz::gl::vk2']]], + ['descriptordata_11',['DescriptorData',['../structtz_1_1gl_1_1vk2_1_1_descriptor_data.html',1,'tz::gl::vk2']]], + ['descriptorlayout_12',['DescriptorLayout',['../classtz_1_1gl_1_1vk2_1_1_descriptor_layout.html',1,'tz::gl::vk2']]], + ['descriptorlayoutbuilder_13',['DescriptorLayoutBuilder',['../classtz_1_1gl_1_1vk2_1_1_descriptor_layout_builder.html',1,'tz::gl::vk2']]], + ['descriptorlayoutinfo_14',['DescriptorLayoutInfo',['../structtz_1_1gl_1_1vk2_1_1_descriptor_layout_info.html',1,'tz::gl::vk2']]], + ['descriptorpool_15',['DescriptorPool',['../classtz_1_1gl_1_1vk2_1_1_descriptor_pool.html',1,'tz::gl::vk2']]], + ['descriptorpoolinfo_16',['DescriptorPoolInfo',['../structtz_1_1gl_1_1vk2_1_1_descriptor_pool_info.html',1,'tz::gl::vk2']]], + ['descriptorset_17',['DescriptorSet',['../classtz_1_1gl_1_1vk2_1_1_descriptor_set.html',1,'tz::gl::vk2']]], + ['device_18',['device',['../classtz_1_1gl_1_1device.html',1,'tz::gl']]], + ['device_5fcommand_5fpool_19',['device_command_pool',['../classtz_1_1gl_1_1device__command__pool.html',1,'tz::gl']]], + ['device_5fcommon_20',['device_common',['../classtz_1_1gl_1_1device__common.html',1,'tz::gl']]], + ['device_5fcommon_3c_20renderer_5fogl_20_3e_21',['device_common< renderer_ogl >',['../classtz_1_1gl_1_1device__common.html',1,'tz::gl']]], + ['device_5fcommon_3c_20renderer_5fvulkan2_20_3e_22',['device_common< renderer_vulkan2 >',['../classtz_1_1gl_1_1device__common.html',1,'tz::gl']]], + ['device_5fdescriptor_5fpool_23',['device_descriptor_pool',['../classtz_1_1gl_1_1device__descriptor__pool.html',1,'tz::gl']]], + ['device_5fogl_24',['device_ogl',['../classtz_1_1gl_1_1device__ogl.html',1,'tz::gl']]], + ['device_5frender_5fscheduler_5fogl_25',['device_render_scheduler_ogl',['../classtz_1_1gl_1_1device__render__scheduler__ogl.html',1,'tz::gl']]], + ['device_5frender_5fsync_26',['device_render_sync',['../classtz_1_1gl_1_1device__render__sync.html',1,'tz::gl']]], + ['device_5fvulkan2_27',['device_vulkan2',['../classtz_1_1gl_1_1device__vulkan2.html',1,'tz::gl']]], + ['device_5fvulkan_5fbase_28',['device_vulkan_base',['../classtz_1_1gl_1_1device__vulkan__base.html',1,'tz::gl']]], + ['device_5fwindow_29',['device_window',['../classtz_1_1gl_1_1device__window.html',1,'tz::gl']]], + ['devicefeatureinfo_30',['DeviceFeatureInfo',['../structtz_1_1gl_1_1vk2_1_1detail_1_1_device_feature_info.html',1,'tz::gl::vk2::detail']]], + ['dispatch_31',['Dispatch',['../structtz_1_1gl_1_1vk2_1_1_vulkan_command_1_1_dispatch.html',1,'tz::gl::vk2::VulkanCommand']]], + ['draw_32',['Draw',['../structtz_1_1gl_1_1vk2_1_1_vulkan_command_1_1_draw.html',1,'tz::gl::vk2::VulkanCommand']]], + ['draw_5findexed_5findirect_5fcommand_33',['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_34',['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']]], + ['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']]], + ['ds_5fadd_42',['ds_add',['../structtz_1_1detail_1_1ds__add.html',1,'tz::detail']]], + ['ds_5fedit_43',['ds_edit',['../structtz_1_1detail_1_1ds__edit.html',1,'tz::detail']]], + ['ds_5fremove_44',['ds_remove',['../structtz_1_1detail_1_1ds__remove.html',1,'tz::detail']]], + ['duration_45',['duration',['../classtz_1_1duration.html',1,'tz']]], + ['dynamicrenderingrun_46',['DynamicRenderingRun',['../classtz_1_1gl_1_1vk2_1_1_command_buffer_recording_1_1_dynamic_rendering_run.html',1,'tz::gl::vk2::CommandBufferRecording']]], + ['dynamicrenderingruninfo_47',['DynamicRenderingRunInfo',['../structtz_1_1gl_1_1vk2_1_1_dynamic_rendering_run_info.html',1,'tz::gl::vk2']]], + ['dynamicrenderingstate_48',['DynamicRenderingState',['../structtz_1_1gl_1_1vk2_1_1_graphics_pipeline_info_1_1_dynamic_rendering_state.html',1,'tz::gl::vk2::GraphicsPipelineInfo']]], + ['dynamicstate_49',['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..70665dfcb0 --- /dev/null +++ b/search/classes_4.js @@ -0,0 +1,26 @@ +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']]], + ['empty_5fslab_5fprocessor_2',['empty_slab_processor',['../classtz_1_1lua_1_1empty__slab__processor.html',1,'tz::lua']]], + ['enddynamicrendering_3',['EndDynamicRendering',['../structtz_1_1gl_1_1vk2_1_1_vulkan_command_1_1_end_dynamic_rendering.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_20queuefamilytype_20_3e_18',['enum_field< QueueFamilyType >',['../classtz_1_1enum__field.html',1,'tz']]], + ['enum_5ffield_3c_20renderer_5foption_20_3e_19',['enum_field< renderer_option >',['../classtz_1_1enum__field.html',1,'tz']]], + ['enum_5ffield_3c_20resource_5fflag_20_3e_20',['enum_field< resource_flag >',['../classtz_1_1enum__field.html',1,'tz']]], + ['event_21',['event',['../structtz_1_1gl_1_1event.html',1,'tz::gl']]], + ['execution_5finfo_22',['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..cecff73ee2 --- /dev/null +++ b/search/classes_5.js @@ -0,0 +1,18 @@ +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']]], + ['font_5fdata_4',['font_data',['../structfont__data.html',1,'font_data'],['../structtz_1_1ren_1_1font__data.html',1,'tz::ren::font_data']]], + ['font_5fstorage_5',['font_storage',['../classtz_1_1ren_1_1font__storage.html',1,'tz::ren']]], + ['format4_6',['format4',['../structtz_1_1io_1_1format4.html',1,'tz::io']]], + ['format_5fstring_7',['format_string',['../structtz_1_1detail_1_1format__string.html',1,'tz::detail']]], + ['formatdata_8',['FormatData',['../structtz_1_1gl_1_1ogl2_1_1_format_data.html',1,'tz::gl::ogl2']]], + ['framebuffer_9',['framebuffer',['../classtz_1_1gl_1_1ogl2_1_1framebuffer.html',1,'tz::gl::ogl2']]], + ['framebuffer_5finfo_10',['framebuffer_info',['../structtz_1_1gl_1_1ogl2_1_1framebuffer__info.html',1,'tz::gl::ogl2']]], + ['free_5flist_11',['free_list',['../classtz_1_1free__list.html',1,'tz']]], + ['free_5flist_3c_20t_2c_20std_3a_3avector_3c_20t_20_3e_20_3e_12',['free_list< T, std::vector< T > >',['../classtz_1_1free__list.html',1,'tz']]], + ['free_5flist_3c_20tz_3a_3aren_3a_3aimpl_3a_3amesh_5flocator_20_3e_13',['free_list< tz::ren::impl::mesh_locator >',['../classtz_1_1free__list.html',1,'tz']]], + ['free_5flist_5fiterator_14',['free_list_iterator',['../structtz_1_1free__list__iterator.html',1,'tz']]] +]; diff --git a/search/classes_6.js b/search/classes_6.js new file mode 100644 index 0000000000..45e4d6b2f0 --- /dev/null +++ b/search/classes_6.js @@ -0,0 +1,29 @@ +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']]], + ['glyph_5fdata_20',['glyph_data',['../structglyph__data.html',1,'glyph_data'],['../structtz_1_1ren_1_1font__data_1_1glyph__data.html',1,'tz::ren::font_data::glyph_data']]], + ['glyph_5frender_5fdata_21',['glyph_render_data',['../structglyph__render__data.html',1,'glyph_render_data'],['../structtz_1_1ren_1_1glyph__render__data.html',1,'tz::ren::glyph_render_data']]], + ['graphics_22',['Graphics',['../structtz_1_1gl_1_1render__state_1_1_graphics.html',1,'tz::gl::render_state']]], + ['graphicspipeline_23',['GraphicsPipeline',['../classtz_1_1gl_1_1vk2_1_1_graphics_pipeline.html',1,'tz::gl::vk2']]], + ['graphicspipelineinfo_24',['GraphicsPipelineInfo',['../structtz_1_1gl_1_1vk2_1_1_graphics_pipeline_info.html',1,'tz::gl::vk2']]], + ['grid_5fview_25',['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..3357c825cf --- /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_20iresource_20_3e_3',['handle< iresource >',['../classtz_1_1handle.html',1,'tz']]], + ['handle_3c_20tz_3a_3aio_3a_3agltf_20_3e_4',['handle< tz::io::gltf >',['../classtz_1_1handle.html',1,'tz']]], + ['handle_3c_20tz_3a_3aio_3a_3aimage_20_3e_5',['handle< tz::io::image >',['../classtz_1_1handle.html',1,'tz']]], + ['hash_3c_20tz_3a_3aquat_20_3e_6',['hash< tz::quat >',['../structstd_1_1hash_3_01tz_1_1quat_01_4.html',1,'std']]], + ['hash_3c_20tz_3a_3atrs_20_3e_7',['hash< tz::trs >',['../structstd_1_1hash_3_01tz_1_1trs_01_4.html',1,'std']]], + ['hash_3c_20tz_3a_3avector_3c_20t_2c_20s_20_3e_20_3e_8',['hash< tz::vector< T, S > >',['../structstd_1_1hash_3_01tz_1_1vector_3_01_t_00_01_s_01_4_01_4.html',1,'std']]], + ['hmetrics_5ft_9',['hmetrics_t',['../structtz_1_1io_1_1ttf__hmtx__table_1_1hmetrics__t.html',1,'tz::io::ttf_hmtx_table']]] +]; diff --git a/search/classes_8.js b/search/classes_8.js new file mode 100644 index 0000000000..eb9040de1b --- /dev/null +++ b/search/classes_8.js @@ -0,0 +1,38 @@ +var searchData= +[ + ['i_5fjob_5fsystem_0',['i_job_system',['../classtz_1_1i__job__system.html',1,'tz']]], + ['i_5fslab_5fprocessor_1',['i_slab_processor',['../classtz_1_1lua_1_1i__slab__processor.html',1,'tz::lua']]], + ['icomponent_2',['icomponent',['../classtz_1_1gl_1_1icomponent.html',1,'tz::gl']]], + ['ihigh_5flevel_5frenderer_3',['ihigh_level_renderer',['../classtz_1_1ren_1_1ihigh__level__renderer.html',1,'tz::ren']]], + ['image_4',['image',['../classtz_1_1gl_1_1ogl2_1_1image.html',1,'tz::gl::ogl2']]], + ['image_5',['Image',['../classtz_1_1gl_1_1vk2_1_1_image.html',1,'tz::gl::vk2']]], + ['image_6',['image',['../structtz_1_1io_1_1image.html',1,'tz::io']]], + ['image_5fcomponent_5fogl_7',['image_component_ogl',['../classtz_1_1gl_1_1image__component__ogl.html',1,'tz::gl']]], + ['image_5fcomponent_5fvulkan_8',['image_component_vulkan',['../classtz_1_1gl_1_1image__component__vulkan.html',1,'tz::gl']]], + ['image_5finfo_9',['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_10',['image_output',['../classtz_1_1gl_1_1image__output.html',1,'tz::gl']]], + ['image_5foutput_5finfo_11',['image_output_info',['../structtz_1_1gl_1_1image__output__info.html',1,'tz::gl']]], + ['image_5fresize_12',['image_resize',['../structtz_1_1gl_1_1renderer__edit_1_1image__resize.html',1,'tz::gl::renderer_edit']]], + ['image_5fresource_13',['image_resource',['../classtz_1_1gl_1_1image__resource.html',1,'tz::gl']]], + ['imageacquisition_14',['ImageAcquisition',['../structtz_1_1gl_1_1vk2_1_1_swapchain_1_1_image_acquisition.html',1,'tz::gl::vk2::Swapchain']]], + ['imageacquisitionresult_15',['ImageAcquisitionResult',['../structtz_1_1gl_1_1vk2_1_1_swapchain_1_1_image_acquisition_result.html',1,'tz::gl::vk2::Swapchain']]], + ['imagecopyimage_16',['ImageCopyImage',['../structtz_1_1gl_1_1vk2_1_1_vulkan_command_1_1_image_copy_image.html',1,'tz::gl::vk2::VulkanCommand']]], + ['imageview_17',['ImageView',['../classtz_1_1gl_1_1vk2_1_1_image_view.html',1,'tz::gl::vk2']]], + ['imageviewinfo_18',['ImageViewInfo',['../structtz_1_1gl_1_1vk2_1_1_image_view_info.html',1,'tz::gl::vk2']]], + ['imagewriteinfo_19',['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_20',['ImGuiTabTZ',['../structtz_1_1dbgui_1_1_im_gui_tab_t_z.html',1,'tz::dbgui']]], + ['imguivertex_21',['ImGuiVertex',['../struct_im_gui_vertex.html',1,'']]], + ['impl_5ftz_5fgl_5fdevice_22',['impl_tz_gl_device',['../structtz_1_1gl_1_1impl__tz__gl__device.html',1,'tz::gl']]], + ['impl_5ftz_5fgl_5frenderer_23',['impl_tz_gl_renderer',['../structtz_1_1gl_1_1impl__tz__gl__renderer.html',1,'tz::gl']]], + ['impl_5ftz_5fio_5fgltf_24',['impl_tz_io_gltf',['../structtz_1_1io_1_1impl__tz__io__gltf.html',1,'tz::io']]], + ['impl_5ftz_5fwsi_5fwindow_25',['impl_tz_wsi_window',['../structtz_1_1wsi_1_1impl__tz__wsi__window.html',1,'tz::wsi']]], + ['info_26',['info',['../structtz_1_1ren_1_1animation__renderer_1_1info.html',1,'tz::ren::animation_renderer::info'],['../structtz_1_1ren_1_1impl_1_1render__pass_1_1info.html',1,'tz::ren::impl::render_pass::info']]], + ['init_5finfo_27',['init_info',['../structtz_1_1dbgui_1_1init__info.html',1,'tz::dbgui']]], + ['init_5fstate_28',['init_state',['../structtz_1_1core_1_1detail_1_1init__state.html',1,'tz::core::detail']]], + ['initialise_5finfo_29',['initialise_info',['../structtz_1_1initialise__info.html',1,'tz']]], + ['inputdelta_30',['InputDelta',['../structtz_1_1dbgui_1_1_input_delta.html',1,'tz::dbgui']]], + ['interfaceiterator_31',['InterfaceIterator',['../classtz_1_1_interface_iterator.html',1,'tz']]], + ['internaldeviceinfo_32',['InternalDeviceInfo',['../structtz_1_1gl_1_1vk2_1_1_internal_device_info.html',1,'tz::gl::vk2']]], + ['ioutput_33',['ioutput',['../classtz_1_1gl_1_1ioutput.html',1,'tz::gl']]], + ['iresource_34',['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..7f5be6f073 --- /dev/null +++ b/search/classes_9.js @@ -0,0 +1,7 @@ +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_5fblockingcurrentqueue_2',['job_system_blockingcurrentqueue',['../classtz_1_1impl_1_1job__system__blockingcurrentqueue.html',1,'tz::impl']]], + ['job_5fsystem_5fthreadpool_5flfq_3',['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..621aa1827b --- /dev/null +++ b/search/classes_b.js @@ -0,0 +1,9 @@ +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']]], + ['lua_5foperation_4',['lua_operation',['../structtz_1_1lua_1_1lua__operation.html',1,'tz::lua']]], + ['lua_5fregister_5',['lua_register',['../structtz_1_1lua_1_1impl_1_1lua__register.html',1,'tz::lua::impl']]] +]; diff --git a/search/classes_c.js b/search/classes_c.js new file mode 100644 index 0000000000..6e185b40c3 --- /dev/null +++ b/search/classes_c.js @@ -0,0 +1,24 @@ +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_5flist_4',['maybe_owned_list',['../classtz_1_1maybe__owned__list.html',1,'tz']]], + ['maybe_5fowned_5flist_3c_20iresource_20_3e_5',['maybe_owned_list< iresource >',['../classtz_1_1maybe__owned__list.html',1,'tz']]], + ['maybe_5fowned_5fptr_6',['maybe_owned_ptr',['../classtz_1_1maybe__owned__ptr.html',1,'tz']]], + ['memblk_7',['memblk',['../structtz_1_1memblk.html',1,'tz']]], + ['mesh_8',['mesh',['../structtz_1_1ren_1_1impl_1_1mesh.html',1,'tz::ren::impl']]], + ['mesh_5flocator_9',['mesh_locator',['../structmesh__locator.html',1,'mesh_locator'],['../structtz_1_1ren_1_1impl_1_1mesh__locator.html',1,'tz::ren::impl::mesh_locator']]], + ['mesh_5frenderer_10',['mesh_renderer',['../classtz_1_1ren_1_1mesh__renderer.html',1,'tz::ren']]], + ['mesh_5fvertex_11',['mesh_vertex',['../structtz_1_1ren_1_1impl_1_1mesh__vertex.html',1,'tz::ren::impl']]], + ['message_5fpasser_12',['message_passer',['../classtz_1_1message__passer.html',1,'tz']]], + ['message_5freceiver_13',['message_receiver',['../classtz_1_1message__receiver.html',1,'tz']]], + ['message_5freceiver_3c_20m_2c_20true_20_3e_14',['message_receiver< M, true >',['../classtz_1_1message__receiver.html',1,'tz']]], + ['metadata_5ft_15',['metadata_t',['../structtz_1_1ren_1_1animation__renderer_1_1gltf__data_1_1metadata__t.html',1,'tz::ren::animation_renderer::gltf_data']]], + ['misc_5fdata_16',['misc_data',['../structtz_1_1ren_1_1misc__data.html',1,'tz::ren']]], + ['monitor_17',['monitor',['../structtz_1_1wsi_1_1monitor.html',1,'tz::wsi']]], + ['mouse_5fstate_18',['mouse_state',['../structtz_1_1wsi_1_1mouse__state.html',1,'tz::wsi']]], + ['multisamplestate_19',['MultisampleState',['../structtz_1_1gl_1_1vk2_1_1_multisample_state.html',1,'tz::gl::vk2']]], + ['mvp_20',['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..3089381f20 --- /dev/null +++ b/search/classes_d.js @@ -0,0 +1,7 @@ +var searchData= +[ + ['nil_0',['nil',['../structtz_1_1lua_1_1nil.html',1,'tz::lua']]], + ['no_5flock_1',['no_lock',['../structtz_1_1detail_1_1no__lock.html',1,'tz::detail']]], + ['null_5fallocator_2',['null_allocator',['../classtz_1_1null__allocator.html',1,'tz']]], + ['nullhand_5ft_3',['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..185844c995 --- /dev/null +++ b/search/classes_e.js @@ -0,0 +1,9 @@ +var searchData= +[ + ['object_5fcreate_5finfo_0',['object_create_info',['../structtz_1_1ren_1_1impl_1_1render__pass_1_1object__create__info.html',1,'tz::ren::impl::render_pass']]], + ['object_5fdata_1',['object_data',['../structtz_1_1ren_1_1impl_1_1object__data.html',1,'tz::ren::impl']]], + ['object_5fstorage_2',['object_storage',['../classtz_1_1ren_1_1impl_1_1object__storage.html',1,'tz::ren::impl']]], + ['object_5ft_3',['object_t',['../structobject__t.html',1,'']]], + ['outputmanager_4',['OutputManager',['../classtz_1_1gl_1_1_output_manager.html',1,'tz::gl']]], + ['overloaded_5',['overloaded',['../structtz_1_1gl_1_1overloaded.html',1,'tz::gl::overloaded< Ts >'],['../structtz_1_1overloaded.html',1,'tz::overloaded< Ts >']]] +]; diff --git a/search/classes_f.js b/search/classes_f.js new file mode 100644 index 0000000000..fda050b6f5 --- /dev/null +++ b/search/classes_f.js @@ -0,0 +1,16 @@ +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']]], + ['playback_5fdata_9',['playback_data',['../structtz_1_1ren_1_1animation__renderer_1_1playback__data.html',1,'tz::ren::animation_renderer']]], + ['polymorphiclist_10',['PolymorphicList',['../classtz_1_1_polymorphic_list.html',1,'tz']]], + ['poollimits_11',['PoolLimits',['../structtz_1_1gl_1_1vk2_1_1_descriptor_pool_info_1_1_pool_limits.html',1,'tz::gl::vk2::DescriptorPoolInfo']]], + ['presentinfo_12',['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..72f5adf1fd --- /dev/null +++ b/search/concepts_0.js @@ -0,0 +1,25 @@ +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_3acontainer_4',['container',['../concepttz_1_1container.html',1,'tz']]], + ['tz_3a_3aenum_5fclass_5',['enum_class',['../concepttz_1_1enum__class.html',1,'tz']]], + ['tz_3a_3afunction_6',['function',['../concepttz_1_1function.html',1,'tz']]], + ['tz_3a_3agl_3a_3abuffer_5fcomponent_5ftype_7',['buffer_component_type',['../concepttz_1_1gl_1_1buffer__component__type.html',1,'tz::gl']]], + ['tz_3a_3agl_3a_3adevice_5ftype_8',['device_type',['../concepttz_1_1gl_1_1device__type.html',1,'tz::gl']]], + ['tz_3a_3agl_3a_3aimage_5fcomponent_5ftype_9',['image_component_type',['../concepttz_1_1gl_1_1image__component__type.html',1,'tz::gl']]], + ['tz_3a_3agl_3a_3arenderer_5ftype_10',['renderer_type',['../concepttz_1_1gl_1_1renderer__type.html',1,'tz::gl']]], + ['tz_3a_3ahas_5fdbgui_5fmethod_11',['has_dbgui_method',['../concepttz_1_1has__dbgui__method.html',1,'tz']]], + ['tz_3a_3ais_5fprintable_12',['is_printable',['../concepttz_1_1is__printable.html',1,'tz']]], + ['tz_3a_3amessage_13',['message',['../concepttz_1_1message.html',1,'tz']]], + ['tz_3a_3anative_5favailable_14',['native_available',['../concepttz_1_1native__available.html',1,'tz']]], + ['tz_3a_3anullable_15',['nullable',['../concepttz_1_1nullable.html',1,'tz']]], + ['tz_3a_3anumber_16',['number',['../concepttz_1_1number.html',1,'tz']]], + ['tz_3a_3arandom_5faccess_5fcontainer_17',['random_access_container',['../concepttz_1_1random__access__container.html',1,'tz']]], + ['tz_3a_3arange_5fof_18',['range_of',['../concepttz_1_1range__of.html',1,'tz']]], + ['tz_3a_3atrivially_5fcopyable_19',['trivially_copyable',['../concepttz_1_1trivially__copyable.html',1,'tz']]], + ['tz_3a_3aunique_5fcloneable_5ftype_20',['unique_cloneable_type',['../concepttz_1_1unique__cloneable__type.html',1,'tz']]], + ['tz_3a_3awsi_3a_3awindow_5fapi_21',['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..feffecd522 --- /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..3a2e29393c --- /dev/null +++ b/search/enums_4.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['endian_0',['endian',['../group__tz__core.html#ga7e3c11361b9752a8f8eec7af87a23a1c',1,'tz']]] +]; diff --git a/search/enums_5.js b/search/enums_5.js new file mode 100644 index 0000000000..ae09c731c4 --- /dev/null +++ b/search/enums_5.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['graphics_5ftopology_0',['graphics_topology',['../group__tz__gl2__renderer.html#gadf9f70703e9829dbdd82abc88dca23bd',1,'tz::gl']]] +]; diff --git a/search/enums_6.js b/search/enums_6.js new file mode 100644 index 0000000000..3fe205bfcc --- /dev/null +++ b/search/enums_6.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_7.js b/search/enums_7.js new file mode 100644 index 0000000000..a876095c1c --- /dev/null +++ b/search/enums_7.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['key_0',['key',['../group__tz__wsi__keyboard.html#ga6c853393f015f781b34a6f1cde094e85',1,'tz::wsi']]] +]; diff --git a/search/enums_8.js b/search/enums_8.js new file mode 100644 index 0000000000..02396e93a3 --- /dev/null +++ b/search/enums_8.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_9.js b/search/enums_9.js new file mode 100644 index 0000000000..9b816b5d19 --- /dev/null +++ b/search/enums_9.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_a.js b/search/enums_a.js new file mode 100644 index 0000000000..0210bc9572 --- /dev/null +++ b/search/enums_a.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_b.js b/search/enums_b.js new file mode 100644 index 0000000000..d417972caa --- /dev/null +++ b/search/enums_b.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_c.js b/search/enums_c.js new file mode 100644 index 0000000000..16d7852be9 --- /dev/null +++ b/search/enums_c.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_d.js b/search/enums_d.js new file mode 100644 index 0000000000..fab3021c31 --- /dev/null +++ b/search/enums_d.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..0f3fba8542 --- /dev/null +++ b/search/enumvalues_1.js @@ -0,0 +1,9 @@ +var searchData= +[ + ['backculling_0',['BackCulling',['../group__tz__gl__vk__graphics__pipeline__fixed.html#ggaf55856ce9f281f90908bac12e0061e16ae801bd1e6bd89372f391535221e71cf3',1,'tz::gl::vk2']]], + ['big_1',['big',['../group__tz__core.html#gga7e3c11361b9752a8f8eec7af87a23a1cad861877da56b8b4ceb35c8cbfdf65bb4',1,'tz']]], + ['bindlessdescriptors_2',['BindlessDescriptors',['../group__tz__gl__vk__extension.html#gga6744c8f7d1276d6d9ae861b21c489505aa470c5a1e7f7f5154881cbc29acff30c',1,'tz::gl::vk2']]], + ['bothculling_3',['BothCulling',['../group__tz__gl__vk__graphics__pipeline__fixed.html#ggaf55856ce9f281f90908bac12e0061e16a41356deeb07cbbcf9da994b364f45374',1,'tz::gl::vk2']]], + ['bottom_4',['Bottom',['../group__tz__gl__vk__graphics__pipeline.html#ggaa581c5a329a76e48f41ca02bd263251aa2ad9d63b69c4a10a5cc9cad923133bc4',1,'tz::gl::vk2']]], + ['buffer_5',['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..83e0812afb --- /dev/null +++ b/search/enumvalues_10.js @@ -0,0 +1,17 @@ +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']]], + ['triangle_5fstrips_12',['triangle_strips',['../group__tz__gl2__renderer.html#ggadf9f70703e9829dbdd82abc88dca23bda6312d01627db1038b43322467edb543a',1,'tz::gl']]], + ['triangles_13',['triangles',['../group__tz__gl2__renderer.html#ggadf9f70703e9829dbdd82abc88dca23bda817d7d587258bac88b24567b17bdda87',1,'tz::gl']]] +]; diff --git a/search/enumvalues_11.js b/search/enumvalues_11.js new file mode 100644 index 0000000000..e93f38a7e9 --- /dev/null +++ b/search/enumvalues_11.js @@ -0,0 +1,10 @@ +var searchData= +[ + ['undefined_0',['Undefined',['../group__tz__gl__vk__image.html#gga4ca55be3d1c101900d800a78deeb595faec0fc0100c4fc1ce4eea230c3dc10360',1,'tz::gl::vk2']]], + ['undefined_1',['undefined',['../group__tz__gl2.html#gga79b99b79311ee4f6dd10a6dfada3a235a5e543256c480ac577d30f76f9120eb74',1,'undefinedtz::gl'],['../group__tz__gl__vk__image.html#ggaf7d399489dcebca1c95d5852c8d7ec6ea5e543256c480ac577d30f76f9120eb74',1,'undefinedtz::gl::vk2']]], + ['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']]], + ['updateafterbind_5',['UpdateAfterBind',['../group__tz__gl__vk__descriptors.html#ggaf15b5e240b6c64c9dad040171f553123a4b8308424b6fb4b70803778cfc461015',1,'tz::gl::vk2']]], + ['updateunusedwhilepending_6',['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..5fde95c1a1 --- /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..13c54da5c3 --- /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..1530ba14b5 --- /dev/null +++ b/search/enumvalues_8.js @@ -0,0 +1,19 @@ +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']]], + ['impl_5fdo_5fnothing_9',['impl_do_nothing',['../classtz_1_1transform__hierarchy.html#a03c95b250f14ac9f110b59eceb772222aba466e63f48b82ad02a81f23358510d5',1,'tz::transform_hierarchy']]], + ['index_10',['index',['../group__tz__gl__ogl2__buffers.html#gga2d4cfcc22205d2276ef7347cf6e1c1eda6a992d5529f459a44fee58c733255e86',1,'tz::gl::ogl2']]], + ['index_5fbuffer_11',['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_12',['IndexBufferRead',['../group__tz__gl__vk__graphics__pipeline__render__pass.html#ggaa5dd0142a36cd59d14dff54eed67c3dfac52fe3a67d19e52c2d8be1c1085af208',1,'tz::gl::vk2']]], + ['indirectbufferread_13',['IndirectBufferRead',['../group__tz__gl__vk__graphics__pipeline__render__pass.html#ggaa5dd0142a36cd59d14dff54eed67c3dfa4656386f11c44452e8d3dd44b23c8bc2',1,'tz::gl::vk2']]], + ['inputattachment_14',['InputAttachment',['../group__tz__gl__vk__image.html#gga6ecb2d248a682aac08d93f4a7078161ea261d965f5dd43c6873489b68730dbe57',1,'tz::gl::vk2']]], + ['inputattachmentread_15',['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..457b88dc01 --- /dev/null +++ b/search/enumvalues_9.js @@ -0,0 +1,12 @@ +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,'tz::gl::ogl2']]], + ['linear_6',['Linear',['../group__tz__gl__vk__image.html#gga41ec6a06ba8bf8e03f80cf81eb99b46aa32a843da6ea40ab3b17a3421ccdf671b',1,'tz::gl::vk2']]], + ['little_7',['little',['../group__tz__core.html#gga7e3c11361b9752a8f8eec7af87a23a1caaae6635e044ac56046b2893a529b5114',1,'tz']]], + ['load_8',['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..57604ce646 --- /dev/null +++ b/search/enumvalues_d.js @@ -0,0 +1,10 @@ +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']]], + ['points_4',['points',['../group__tz__gl2__renderer.html#ggadf9f70703e9829dbdd82abc88dca23bda0aab81de5c4c87021772015efc184d67',1,'tz::gl']]], + ['pooloutofmemory_5',['PoolOutOfMemory',['../structtz_1_1gl_1_1vk2_1_1_descriptor_pool_1_1_allocation_result.html#abad85d19de3197a840dc5e69ad797c54a59ea7060f6bf874416655509987eaa47',1,'tz::gl::vk2::DescriptorPool::AllocationResult']]], + ['present_6',['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..20e032da80 --- /dev/null +++ b/search/enumvalues_e.js @@ -0,0 +1,9 @@ +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__ogl2__image.html#gga52bed615aea0b883aeb6702716f95e5ba32cf6da134a8b268cf4ab6b79a9a5ad9',1,'tz::gl::ogl2']]], + ['repeat_4',['Repeat',['../group__tz__gl__vk__image.html#gga8d6daa8ff20537f40f5e1145342c2d4da7020426cfb0a204051be4b3053d2acc8',1,'tz::gl::vk2']]], + ['right_5',['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..fb5e5c123c --- /dev/null +++ b/search/functions_0.js @@ -0,0 +1,32 @@ +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_1vk2_1_1_swapchain.html#a96bd4cf27464216c5294b65c939ae525',1,'tz::gl::vk2::Swapchain::acquire_image()'],['../classtz_1_1gl_1_1device__window.html#a692cd28b2be1c18e04d60d2f834b2dc4',1,'tz::gl::device_window::acquire_image()']]], + ['add_4',['add',['../classtz_1_1basic__list.html#a4145934a925e6b0a6166396fe079e912',1,'tz::basic_list::add(const T &element)'],['../classtz_1_1basic__list.html#a3879564a08f0874bd34335a172fa8327',1,'tz::basic_list::add(T &&element)'],['../group__tzsl__atomic.html#ga89d32f0bbb6535185abe39b69fb39030',1,'tz::atomic::add()']]], + ['add_5fcallback_5',['add_callback',['../classtz_1_1callback.html#a9c2d992722fe82e5ee1c211348d7ff32',1,'tz::callback']]], + ['add_5fdependencies_6',['add_dependencies',['../structtz_1_1gl_1_1schedule.html#acb82217e570acc1e33881ea46d2b0a00',1,'tz::gl::schedule']]], + ['add_5fdependency_7',['add_dependency',['../classtz_1_1gl_1_1renderer__info.html#a67cee96b537c3155396b7e537648e208',1,'tz::gl::renderer_info']]], + ['add_5ffont_8',['add_font',['../classtz_1_1ren_1_1text__renderer.html#afd4018a91989a9eb8250e431432f3bdf',1,'tz::ren::text_renderer']]], + ['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_5fmesh_11',['add_mesh',['../classtz_1_1ren_1_1impl_1_1render__pass.html#a8bd505aa6d090bcfdb42c9869fa3e2d0',1,'tz::ren::impl::render_pass']]], + ['add_5fnode_12',['add_node',['../classtz_1_1transform__hierarchy.html#a3080a5dbadbc5dee46491867559d3452',1,'tz::transform_hierarchy']]], + ['add_5fobject_13',['add_object',['../classtz_1_1ren_1_1impl_1_1render__pass.html#a5f93360820f60584f19a5fad2ec77d62',1,'tz::ren::impl::render_pass']]], + ['add_5fresource_14',['add_resource',['../classtz_1_1gl_1_1renderer__info.html#a754e0e44d92be27ecf399501ba318d53',1,'tz::gl::renderer_info']]], + ['add_5fset_5fedit_15',['add_set_edit',['../classtz_1_1gl_1_1vk2_1_1_descriptor_pool_1_1_update_request.html#a9eadabf90c16c3d2cc228868752da65a',1,'tz::gl::vk2::DescriptorPool::UpdateRequest']]], + ['add_5fstring_16',['add_string',['../classtz_1_1ren_1_1text__renderer.html#a81450d3c710a07357f74b7201634f1ac',1,'tz::ren::text_renderer']]], + ['add_5ftexture_17',['add_texture',['../classtz_1_1ren_1_1impl_1_1render__pass.html#a31b2854f6aba8a2b7c8b00cf20987794',1,'tz::ren::impl::render_pass']]], + ['allocate_5fbuffers_18',['allocate_buffers',['../classtz_1_1gl_1_1vk2_1_1_command_pool.html#a791dba923c7069be7b684d58c62017fe',1,'tz::gl::vk2::CommandPool']]], + ['allocate_5fsets_19',['allocate_sets',['../classtz_1_1gl_1_1vk2_1_1_descriptor_pool.html#a08339d22389d1d308abbce0ea80a4be8',1,'tz::gl::vk2::DescriptorPool']]], + ['and_20',['and',['../group__tzsl__atomic.html#gafe35966b39ca9b843aee1df9bf0e8dcc',1,'tz::atomic']]], + ['append_21',['append',['../classtz_1_1basic__list.html#a2da568b03a98882cfd70dbc9ef726f29',1,'tz::basic_list']]], + ['append_5frange_22',['append_range',['../classtz_1_1basic__list.html#ae49735e774b1d312a5fbe8f383a54af5',1,'tz::basic_list']]], + ['append_5fto_5frender_5fgraph_23',['append_to_render_graph',['../classtz_1_1ren_1_1ihigh__level__renderer.html#a4ec7392ee83574bb647bd4b2eca80d61',1,'tz::ren::ihigh_level_renderer::append_to_render_graph()'],['../classtz_1_1ren_1_1impl_1_1render__pass.html#ac734e77fbbf163c245a8e6bf24e7a4f2',1,'tz::ren::impl::render_pass::append_to_render_graph()'],['../classtz_1_1ren_1_1text__renderer.html#a7e9ce4d02c54da0745ed0c31a91607a9',1,'tz::ren::text_renderer::append_to_render_graph()']]], + ['asin_24',['asin',['../group__tzsl__math.html#ga303ccf32c2a3bd51916059746e13d4fb',1,'tz::math']]], + ['asinh_25',['asinh',['../group__tzsl__math.html#ga3cea91edf9f9b37f5aaeb8b20eeed9a8',1,'tz::math']]], + ['assert_26',['assert',['../group__tz__core.html#ga35faea66fc04dfa33238c863eb740c34',1,'tz::assert()'],['../group__tzsl__debug.html#ga46aa856e72453e84675e0a867438b8d0',1,'tz::debug::assert()']]], + ['atan_27',['atan',['../group__tzsl__math.html#gab6513224bd4ea1a83d9e1e78083a5899',1,'tz::math']]], + ['atanh_28',['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..6d0e21b554 --- /dev/null +++ b/search/functions_1.js @@ -0,0 +1,22 @@ +var searchData= +[ + ['back_0',['back',['../classtz_1_1basic__list.html#ada048725d4c9628619d5fb8ff984c6d3',1,'tz::basic_list::back()'],['../classtz_1_1basic__list.html#a7997b2e322ea17998655cbbb4846ae69',1,'tz::basic_list::back() const'],['../classtz_1_1enum__field.html#ac7bf408eb8998817ef105243093e5edc',1,'tz::enum_field::back()'],['../classtz_1_1free__list.html#aabf1b2ed1868ea0ecc68c4126c65ba33',1,'tz::free_list::back() const'],['../classtz_1_1free__list.html#a9c2cdbf73f0e7f7a9c16cf20272bb6b5',1,'tz::free_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']]], + ['big_5fendian_5',['big_endian',['../group__tz__core.html#ga5636b8096d96efb60512ae51b8e4ffb1',1,'tz']]], + ['bind_6',['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_7',['bind_buffer',['../classtz_1_1gl_1_1vk2_1_1_command_buffer_recording.html#aa015012eda3e9de92f3a5adbaff798bd',1,'tz::gl::vk2::CommandBufferRecording']]], + ['bind_5fbuffers_8',['bind_buffers',['../classtz_1_1gl_1_1_resource_storage.html#ad52eafd3a054c5e4489c026c94a6c81a',1,'tz::gl::ResourceStorage']]], + ['bind_5fdescriptor_5fsets_9',['bind_descriptor_sets',['../classtz_1_1gl_1_1vk2_1_1_command_buffer_recording.html#ac9e417b34e2a883b34ab2099a82acd54',1,'tz::gl::vk2::CommandBufferRecording']]], + ['bind_5fimage_5fbuffer_10',['bind_image_buffer',['../classtz_1_1gl_1_1_resource_storage.html#a71e4a2bb72688cea1a4849a8f0705a42',1,'tz::gl::ResourceStorage']]], + ['bind_5fpipeline_11',['bind_pipeline',['../classtz_1_1gl_1_1vk2_1_1_command_buffer_recording.html#a8bbeeef67dcb9b04b17bf5abde907e01',1,'tz::gl::vk2::CommandBufferRecording']]], + ['bind_5fto_5fresource_5fid_12',['bind_to_resource_id',['../classtz_1_1gl_1_1ogl2_1_1buffer.html#a2f38aa4dfb4a6f0504bee1a44e0bbee6',1,'tz::gl::ogl2::buffer']]], + ['binding_5fcount_13',['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_14',['buffer',['../classtz_1_1gl_1_1ogl2_1_1buffer.html#ad983e40068db50252e23d62e928e17a1',1,'tz::gl::ogl2::buffer']]], + ['buffer_5fcopy_5fbuffer_15',['buffer_copy_buffer',['../classtz_1_1gl_1_1vk2_1_1_command_buffer_recording.html#a42ed45f3524b6bfe1c98de341b8b88de',1,'tz::gl::vk2::CommandBufferRecording']]], + ['buffer_5fcopy_5fimage_16',['buffer_copy_image',['../classtz_1_1gl_1_1vk2_1_1_command_buffer_recording.html#a245b299b9c5cf4248e7ae19c63f63a8d',1,'tz::gl::vk2::CommandBufferRecording']]], + ['buffer_5fresize_17',['buffer_resize',['../classtz_1_1gl_1_1_renderer_edit_builder.html#a1bac636b2eaad5c37e49d7dcf290dc04',1,'tz::gl::RendererEditBuilder']]], + ['build_18',['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()']]] +]; diff --git a/search/functions_10.js b/search/functions_10.js new file mode 100644 index 0000000000..9ac3290805 --- /dev/null +++ b/search/functions_10.js @@ -0,0 +1,43 @@ +var searchData= +[ + ['scale_0',['scale',['../group__tz__core.html#gac4e79331e3b84c5a36360169f7f6d4c8',1,'tz']]], + ['seconds_1',['seconds',['../classtz_1_1duration.html#adec2e357a7d098cbc4356752c3f188f5',1,'tz::duration']]], + ['send_5fmessage_2',['send_message',['../classtz_1_1message__receiver.html#a8bca5d18f09e1d69a4439ae5a73cc008',1,'tz::message_receiver']]], + ['send_5fmessages_3',['send_messages',['../classtz_1_1message__receiver.html#a7cf3d2674efc3087cf85776ea08ddb4d',1,'tz::message_receiver']]], + ['set_5fbuffer_4',['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_5',['set_data',['../classtz_1_1gl_1_1ogl2_1_1image.html#a7244f6f3bbb421d3f3a7f770ab70c886',1,'tz::gl::ogl2::image']]], + ['set_5fdevice_6',['set_device',['../classtz_1_1gl_1_1vk2_1_1_descriptor_layout_builder.html#a8718cf9f569caf8dac4d4a08741925d0',1,'tz::gl::vk2::DescriptorLayoutBuilder']]], + ['set_5fimage_7',['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_8',['set_options',['../classtz_1_1gl_1_1renderer__info.html#acd63326412fa7a90e2abe5021f5202fb',1,'tz::gl::renderer_info']]], + ['set_5foutput_9',['set_output',['../classtz_1_1gl_1_1renderer__info.html#abbd793271fd70297cf47034425c09cc6',1,'tz::gl::renderer_info']]], + ['set_5frender_5ftarget_10',['set_render_target',['../classtz_1_1gl_1_1_output_manager.html#aab56ee1c79ecceba987b04b8e28b873b',1,'tz::gl::OutputManager']]], + ['set_5ftarget_11',['set_target',['../classtz_1_1message__passer.html#a2bcc0abca0917032cd6d9790f03946a4',1,'tz::message_passer::set_target(message_receiver< M, true > &target)'],['../classtz_1_1message__passer.html#aa9c5137ae8bbdaf33295c0819e6b6609',1,'tz::message_passer::set_target(message_receiver< M, false > &target)']]], + ['shader_12',['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_13',['shader_module',['../classtz_1_1gl_1_1ogl2_1_1shader__module.html#a65e736dec375d272b4887010998e0647',1,'tz::gl::ogl2::shader_module']]], + ['shadermanager_14',['ShaderManager',['../classtz_1_1gl_1_1_shader_manager.html#a02c2d7d722419d8f8de9d48bbab4ab6a',1,'tz::gl::ShaderManager::ShaderManager(const shader_info &sinfo)'],['../classtz_1_1gl_1_1_shader_manager.html#ae2b9fa51036eab3ed06803a31cdd3278',1,'tz::gl::ShaderManager::ShaderManager()']]], + ['shadermodule_15',['ShaderModule',['../classtz_1_1gl_1_1vk2_1_1_shader_module.html#a28f43a6e19604fc3034d5a95d16f6f96',1,'tz::gl::vk2::ShaderModule']]], + ['sign_16',['sign',['../group__tzsl__math.html#ga456f66d300ef1a241332db1b3a4adc3f',1,'tz::math']]], + ['signal_17',['signal',['../classtz_1_1gl_1_1vk2_1_1_timeline_semaphore.html#a07294686a9c9007d9eea477648ddb307',1,'tz::gl::vk2::TimelineSemaphore']]], + ['simplex_18',['simplex',['../group__tzsl__noise.html#ga3281f996870e4b9f9a9173cd645d5be5',1,'tz::noise']]], + ['sin_19',['sin',['../group__tzsl__math.html#ga8c0f033ba72fe4acebee70271cfb2449',1,'tz::math']]], + ['size_20',['size',['../classtz_1_1free__list.html#a340afa2c2a2522af1e19fb14346b1c90',1,'tz::free_list::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_21',['smooth_step',['../group__tzsl__math.html#gae657986f8605cc005b02cbfdf92cd39c',1,'tz::math']]], + ['span_22',['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_23',['sqrt',['../group__tzsl__math.html#gaa2770f89b7066b4c45909e272d9e0b36',1,'tz::math']]], + ['state_24',['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']]], + ['static_5ffind_25',['static_find',['../group__tz__core__algorithms.html#gac864efe5932f846519806594da168044',1,'tz']]], + ['step_26',['step',['../group__tzsl__math.html#ga2d878b167178a4a3a07fc30818195451',1,'tz::math']]], + ['string_5fget_5fwidth_5fpixels_27',['string_get_width_pixels',['../classtz_1_1ren_1_1text__renderer.html#a18bc8de9ab6cbe4521a1e7a98fe75b4e',1,'tz::ren::text_renderer']]], + ['string_5fset_5fcolour_28',['string_set_colour',['../classtz_1_1ren_1_1text__renderer.html#a50de1e749ab399f45f66622ecfb0d6aa',1,'tz::ren::text_renderer']]], + ['string_5fset_5ftext_29',['string_set_text',['../classtz_1_1ren_1_1text__renderer.html#aead564036ffbb65ec4e2d002b7b85e49',1,'tz::ren::text_renderer']]], + ['string_5fset_5ftransform_30',['string_set_transform',['../classtz_1_1ren_1_1text__renderer.html#af8de3b5bdf5e1593426c636323eaaf73',1,'tz::ren::text_renderer']]], + ['submit_31',['submit',['../classtz_1_1gl_1_1vk2_1_1hardware_1_1_queue.html#a8a26295a1157308783f3606ddd47922e',1,'tz::gl::vk2::hardware::Queue']]], + ['success_32',['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()']]], + ['supported_33',['supported',['../classtz_1_1gl_1_1vk2_1_1_timeline_semaphore.html#af457dd163f8a75cf2f136cc49cf5d3bd',1,'tz::gl::vk2::TimelineSemaphore']]], + ['supports_5fimage_5fcolour_5fformat_34',['supports_image_colour_format',['../classtz_1_1gl_1_1vk2_1_1_physical_device.html#a988cc3ea73caa2a2e772db01d056afd0',1,'tz::gl::vk2::PhysicalDevice']]], + ['supports_5fimage_5fdepth_5fformat_35',['supports_image_depth_format',['../classtz_1_1gl_1_1vk2_1_1_physical_device.html#a768d8f636ffe994ccbe90dd05534d86c',1,'tz::gl::vk2::PhysicalDevice']]], + ['supports_5fimage_5fsampled_5fformat_36',['supports_image_sampled_format',['../classtz_1_1gl_1_1vk2_1_1_physical_device.html#a7ccfe2ddbd54d7fade6451e6bb037d4b',1,'tz::gl::vk2::PhysicalDevice']]], + ['swapchain_37',['Swapchain',['../classtz_1_1gl_1_1vk2_1_1_swapchain.html#a21e69ef871b919a44c4b7d998170c298',1,'tz::gl::vk2::Swapchain']]], + ['swizzle_38',['swizzle',['../classtz_1_1vector.html#a8eb40003afd7a439c49c08810da3d119',1,'tz::vector']]], + ['system_5ftime_39',['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..f3dc32ca39 --- /dev/null +++ b/search/functions_11.js @@ -0,0 +1,14 @@ +var searchData= +[ + ['tan_0',['tan',['../group__tzsl__math.html#ga58a5baa37cf0de905b3317b5db676f41',1,'tz::math']]], + ['terminate_1',['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()']]], + ['text_5frenderer_2',['text_renderer',['../classtz_1_1ren_1_1text__renderer.html#ae06e842a87baade760a8d60b6903625f',1,'tz::ren::text_renderer']]], + ['timelinesemaphore_3',['TimelineSemaphore',['../classtz_1_1gl_1_1vk2_1_1_timeline_semaphore.html#ae4480f9d0ce9716aadc581aa0769c2ea',1,'tz::gl::vk2::TimelineSemaphore']]], + ['to_5ffit_5flayout_4',['to_fit_layout',['../structtz_1_1gl_1_1vk2_1_1_descriptor_pool_info.html#ac78c3e3e5641dd67c83df522f8b2ed36',1,'tz::gl::vk2::DescriptorPoolInfo']]], + ['to_5fstring_5',['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_6',['to_write_list',['../classtz_1_1gl_1_1vk2_1_1_descriptor_set_1_1_edit_request.html#a9c1d0d78df69b3ea2317e07bddb925b9',1,'tz::gl::vk2::DescriptorSet::EditRequest']]], + ['transform_5fhierarchy_7',['transform_hierarchy',['../classtz_1_1transform__hierarchy.html#a5b8574b1ca6fc383eee2129b6b929f96',1,'tz::transform_hierarchy']]], + ['translate_8',['translate',['../group__tz__core.html#gacea5d629885bd9192ee6e9325a236707',1,'tz']]], + ['transpose_9',['transpose',['../classtz_1_1matrix.html#a438a39d4cab41797bcab3df105e66d3a',1,'tz::matrix::transpose()'],['../group__tzsl__matrix.html#ga96a675595f89d8f83464db22e7d54b4d',1,'tz::matrix::transpose()']]], + ['trunc_10',['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..6ebf973d04 --- /dev/null +++ b/search/functions_12.js @@ -0,0 +1,8 @@ +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_2',['update',['../classtz_1_1ren_1_1impl_1_1render__pass.html#aea86643ccdf5d00deac01a6e6c9d6e16',1,'tz::ren::impl::render_pass::update()'],['../classtz_1_1ren_1_1text__renderer.html#ae5ba48e8527fb97336901b6c8c90dea4',1,'tz::ren::text_renderer::update()']]], + ['update_5fsets_3',['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_4',['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..f35a868cf2 --- /dev/null +++ b/search/functions_13.js @@ -0,0 +1,8 @@ +var searchData= +[ + ['valid_0',['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']]], + ['vector_2',['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_3',['vertex_array',['../classtz_1_1gl_1_1ogl2_1_1vertex__array.html#a5f965b5a60d0a2cc1c0623d63a81fd26',1,'tz::gl::ogl2::vertex_array']]], + ['view_4',['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..a550790236 --- /dev/null +++ b/search/functions_14.js @@ -0,0 +1,11 @@ +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_5fbinding_6',['with_binding',['../classtz_1_1gl_1_1vk2_1_1_descriptor_layout_builder.html#a35bee4b07c0c343b53520a5f9c693691',1,'tz::gl::vk2::DescriptorLayoutBuilder']]], + ['with_5fmore_7',['with_more',['../classtz_1_1vector.html#a17082649b5b1dcfdda21e3225f99c247',1,'tz::vector::with_more(T end) const'],['../classtz_1_1vector.html#ac484780fbef820de4004781a119a56d1',1,'tz::vector::with_more(const vector< T, S2 > &end) const']]] +]; 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..630e04e6d0 --- /dev/null +++ b/search/functions_2.js @@ -0,0 +1,25 @@ +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']]], + ['chronological_5frank_3',['chronological_rank',['../structtz_1_1gl_1_1schedule.html#ab8cb4713b3c9a7c0bbb3fc6182631010',1,'tz::gl::schedule']]], + ['claims_5fkeyboard_4',['claims_keyboard',['../group__tz__dbgui.html#gae9289fba934f3184929dea07db97e28f',1,'tz::dbgui']]], + ['claims_5fmouse_5',['claims_mouse',['../group__tz__dbgui.html#ga36e08fae37ee7e26149c1ba247f54ce9',1,'tz::dbgui']]], + ['clamp_6',['clamp',['../group__tzsl__math.html#ga42282f727b67dab6da08e0366ba7787e',1,'tz::math']]], + ['clear_7',['clear',['../classtz_1_1basic__list.html#a5a9fe1832b83930a03bdc598b6f48f42',1,'tz::basic_list::clear()'],['../classtz_1_1free__list.html#a6e32e36af936e89426b59e2e44bb9ec2',1,'tz::free_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_5ftarget_8',['clear_target',['../classtz_1_1message__passer.html#a609d94453c786408a836665c442f770f',1,'tz::message_passer']]], + ['clone_5fresized_9',['clone_resized',['../group__tz__gl__ogl2__buffers.html#ga66311328d0ac73108c1dac80a670255b',1,'tz::gl::ogl2::buffer_helper']]], + ['colour_5fattachment_5fcount_10',['colour_attachment_count',['../classtz_1_1gl_1_1ogl2_1_1framebuffer.html#a899e633ce1e2005e942c7e417d8208ce',1,'tz::gl::ogl2::framebuffer']]], + ['command_5fcount_11',['command_count',['../classtz_1_1gl_1_1vk2_1_1_command_buffer.html#a67c7bfe9c4368600d35d8b8484b06972',1,'tz::gl::vk2::CommandBuffer']]], + ['common_5frenderer_5fdbgui_12',['common_renderer_dbgui',['../group__tz__gl2__renderer.html#ga9c3b9173cecb5e05ffa86811213c5ab0',1,'tz::gl']]], + ['compile_13',['compile',['../classtz_1_1gl_1_1ogl2_1_1shader__module.html#a0566183e70bb23740967df9e69c5afd4',1,'tz::gl::ogl2::shader_module']]], + ['compute_14',['compute',['../classtz_1_1gl_1_1_renderer_edit_builder.html#a34deef028a6a13e0c17055174e3ea9c1',1,'tz::gl::RendererEditBuilder']]], + ['contains_15',['contains',['../classtz_1_1basic__list.html#a296a4bc78b4a32394ee4e7c4f7d5140b',1,'tz::basic_list::contains()'],['../classtz_1_1enum__field.html#ae84e799eabd0c60f79eafdfa86b3d0d7',1,'tz::enum_field::contains(E type) const'],['../classtz_1_1enum__field.html#abec7d6a4a2b4b81600760dd74f5b23c3',1,'tz::enum_field::contains(const enum_field< E > &field) const'],['../classtz_1_1gl_1_1vk2_1_1_descriptor_pool.html#ab3ba99062df8e90d09abccd6c0f6e6c6',1,'tz::gl::vk2::DescriptorPool::contains()']]], + ['copy_16',['copy',['../group__tz__gl__ogl2__buffers.html#ga20a62c3c2f993f7680765d90634a7584',1,'tz::gl::ogl2::buffer_helper']]], + ['cos_17',['cos',['../group__tzsl__math.html#ga2001fa3e32e884b9923308b485da6702',1,'tz::math']]], + ['count_18',['count',['../classtz_1_1enum__field.html#a74cd18aeadeffdaa17bd22068e34dc59',1,'tz::enum_field']]], + ['create_5frenderer_19',['create_renderer',['../classtz_1_1gl_1_1device.html#a8ac3063b712ef664852318e14830e64d',1,'tz::gl::device']]], + ['create_5fwindow_20',['create_window',['../group__tz__wsi__window.html#gac6059674ffff19966225cea5a7367a38',1,'tz::wsi']]], + ['cross_21',['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..52bdd57f98 --- /dev/null +++ b/search/functions_3.js @@ -0,0 +1,27 @@ +var searchData= +[ + ['data_0',['data',['../classtz_1_1basic__list.html#a32759f2f577643e9e013c4f16dd4f78f',1,'tz::basic_list::data() const'],['../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']]], + ['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#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)']]], + ['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',['../classtz_1_1vector.html#a074e671fe11952ee602c6b60d542fc75',1,'tz::vector::dot()'],['../group__tzsl__math.html#gae3a061e3c170f530fbc99969abdeb333',1,'tz::math::dot()']]], + ['draw_20',['draw',['../classtz_1_1gl_1_1ogl2_1_1vertex__array.html#a4ca2490c9af9681d4e151e149197d326',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()']]], + ['draw_5findexed_21',['draw_indexed',['../classtz_1_1gl_1_1ogl2_1_1vertex__array.html#a4b11ecc184617603efaa30298df4e67f',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_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..40b1be7d83 --- /dev/null +++ b/search/functions_4.js @@ -0,0 +1,20 @@ +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()']]], + ['emplace_5fback_3',['emplace_back',['../classtz_1_1free__list.html#ab634125c08809cea004700c9addfee3e',1,'tz::free_list']]], + ['empty_4',['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_1free__list.html#af9160f443cb45c4126362833a0edf2b5',1,'tz::free_list::empty()'],['../classtz_1_1transform__hierarchy.html#a98feb2361bfda5351a3396f26a09e614',1,'tz::transform_hierarchy::empty()']]], + ['end_5',['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_6',['end_frame',['../group__tz__core.html#ga3444884fd2ee290340864428de1df82f',1,'tz']]], + ['endian_5fbyte_5fswap_7',['endian_byte_swap',['../group__tz__core.html#ga8dbe3cbffcab15666954debd859d9ea5',1,'tz']]], + ['enum_5ffield_8',['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)']]], + ['erase_9',['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)'],['../classtz_1_1free__list.html#ad85c403be7b0cf265be6da917ef24603',1,'tz::free_list::erase()']]], + ['error_10',['error',['../group__tz__core.html#ga51d5f1707ccebf785a59cbb6a90b0fad',1,'tz']]], + ['exchange_11',['exchange',['../group__tzsl__atomic.html#gac66c88e078d10e049838618e5c5d80f6',1,'tz::atomic']]], + ['execute_12',['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_13',['execute_file',['../classtz_1_1lua_1_1state.html#a15bbc3a9526837cd15a4550ab562488f',1,'tz::lua::state']]], + ['exp_14',['exp',['../group__tzsl__math.html#ga0b3e83e179fee3b947ff6725d85ea9bc',1,'tz::math']]], + ['exp2_15',['exp2',['../group__tzsl__math.html#ga62b92e38309339005fea6213dfda3454',1,'tz::math']]], + ['export_5fnode_16',['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..59c920fd29 --- /dev/null +++ b/search/functions_5.js @@ -0,0 +1,17 @@ +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']]], + ['free_5flist_6',['free_list',['../classtz_1_1free__list.html#ae9e4896208ebee2d28caf3669fad03b2',1,'tz::free_list']]], + ['from_5fbinary_5fstring_7',['from_binary_string',['../structtz_1_1version.html#a5a2056c19ee809ab7d8fffb346861544',1,'tz::version']]], + ['from_5fmany_8',['from_many',['../classtz_1_1gl_1_1buffer__resource.html#aa2d8aea7debdaf9f6dcdc92ac9c96cf0',1,'tz::gl::buffer_resource']]], + ['from_5fmemory_9',['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_10',['from_one',['../classtz_1_1gl_1_1buffer__resource.html#ab407ea843abea43d94853c2711b109bb',1,'tz::gl::buffer_resource']]], + ['from_5fstring_11',['from_string',['../structtz_1_1version.html#a922d87bd7d64534660e3209313992f8b',1,'tz::version']]], + ['from_5funinitialised_12',['from_uninitialised',['../classtz_1_1gl_1_1image__resource.html#abcfde01f8ab68048439810a68248f10c',1,'tz::gl::image_resource']]], + ['front_13',['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()'],['../classtz_1_1free__list.html#a828d66092ff69205312d41f570ea833c',1,'tz::free_list::front() const'],['../classtz_1_1free__list.html#a75c4a252bbdfeeeab3a6c05474ef9da3',1,'tz::free_list::front()']]] +]; diff --git a/search/functions_6.js b/search/functions_6.js new file mode 100644 index 0000000000..3704880830 --- /dev/null +++ b/search/functions_6.js @@ -0,0 +1,69 @@ +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_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_3',['get_all_devices',['../group__tz__gl__vk.html#gaa3cb0c8cac3957bc69faeed650da8e5b',1,'tz::gl::vk2']]], + ['get_5fbindings_4',['get_bindings',['../classtz_1_1gl_1_1vk2_1_1_descriptor_layout.html#a553861e3a7facb291f5de6a2c518aea1',1,'tz::gl::vk2::DescriptorLayout']]], + ['get_5fbindless_5fhandle_5',['get_bindless_handle',['../classtz_1_1gl_1_1ogl2_1_1image.html#a82ae5c9ca2e7230cd4a6eb68bed34de0',1,'tz::gl::ogl2::image']]], + ['get_5fchars_5ftyped_6',['get_chars_typed',['../group__tz__wsi__keyboard.html#ga68b8d4b1bb580c2d72d35901e31e9bb5',1,'tz::wsi']]], + ['get_5fcommand_5fbuffer_7',['get_command_buffer',['../classtz_1_1gl_1_1vk2_1_1_command_buffer_recording.html#a6678f3d4ee65c534f273547942dbc208',1,'tz::gl::vk2::CommandBufferRecording']]], + ['get_5fcomponent_8',['get_component',['../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)'],['../classtz_1_1gl_1_1renderer__ogl.html#a4536f9408510194599a41fe7d983cfad',1,'tz::gl::renderer_ogl::get_component(resource_handle handle) const'],['../classtz_1_1gl_1_1renderer__ogl.html#a437b2e68e0af94193d6310191fb3e770',1,'tz::gl::renderer_ogl::get_component(resource_handle handle)']]], + ['get_5fcompute_5fpass_9',['get_compute_pass',['../classtz_1_1ren_1_1impl_1_1render__pass.html#acba84b89930b2b0635449d6227b2306f',1,'tz::ren::impl::render_pass']]], + ['get_5fdependencies_10',['get_dependencies',['../structtz_1_1gl_1_1schedule.html#af0cbcf0f3d30b199c1dd6bba7b09edff',1,'tz::gl::schedule']]], + ['get_5fdevice_11',['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_image.html#a049cd08ea548cf18a48359df5439f790',1,'tz::gl::vk2::Image::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_12',['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()'],['../classtz_1_1gl_1_1ogl2_1_1image.html#a34bdb1917898f67e8c8f919febe9dbd1',1,'tz::gl::ogl2::image::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()']]], + ['get_5fextensions_13',['get_extensions',['../classtz_1_1gl_1_1vk2_1_1_logical_device.html#aa8e581e0199c5ed305291e569c3196be',1,'tz::gl::vk2::LogicalDevice']]], + ['get_5fextra_5fbuffer_14',['get_extra_buffer',['../classtz_1_1ren_1_1impl_1_1render__pass.html#afd11e5978fe7395f709729b48ea12c44',1,'tz::ren::impl::render_pass']]], + ['get_5fextra_5fbuffer_5fcount_15',['get_extra_buffer_count',['../classtz_1_1ren_1_1impl_1_1render__pass.html#aee9a74e08f8efe789af4152a49a6302b',1,'tz::ren::impl::render_pass']]], + ['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_1iresource.html#a3b1b6a30f2554e43d806fb5d5210d9be',1,'tz::gl::iresource::get_flags()'],['../classtz_1_1gl_1_1resource.html#a55bd3e603dbf280dcdca33f614e4bd6d',1,'tz::gl::resource::get_flags()']]], + ['get_5fformat_18',['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_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_5fhierarchy_21',['get_hierarchy',['../classtz_1_1ren_1_1impl_1_1render__pass.html#aef055ac4a1ef14b91bf8215413d60d62',1,'tz::ren::impl::render_pass::get_hierarchy() const'],['../classtz_1_1ren_1_1impl_1_1render__pass.html#a4b05b49aa5662529efb67f5d2ebaba27',1,'tz::ren::impl::render_pass::get_hierarchy()']]], + ['get_5fimage_5fformat_22',['get_image_format',['../classtz_1_1gl_1_1vk2_1_1_swapchain.html#a01d41578f33880b720b3b7217db994ea',1,'tz::gl::vk2::Swapchain']]], + ['get_5fimage_5fviews_23',['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_24',['get_images',['../classtz_1_1gl_1_1vk2_1_1_swapchain.html#afe252ffdbcd30be51991b2cab05c8833',1,'tz::gl::vk2::Swapchain::get_images() const'],['../classtz_1_1gl_1_1vk2_1_1_swapchain.html#a96c1b6e9908255c892041e61f4ce2f66',1,'tz::gl::vk2::Swapchain::get_images()']]], + ['get_5finfo_25',['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_26',['get_instance',['../classtz_1_1gl_1_1vk2_1_1_physical_device.html#aa07d19e3e31cfd8d5d40ed83d01b4dcd',1,'tz::gl::vk2::PhysicalDevice']]], + ['get_5fkey_5fname_27',['get_key_name',['../group__tz__wsi__keyboard.html#ga71b029972073b41a5e63b852262af5be',1,'tz::wsi']]], + ['get_5flayout_28',['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_5flocal_5fmachine_5fendianness_29',['get_local_machine_endianness',['../group__tz__core.html#gaa4d410b271156d0a6928a6d8de368282',1,'tz']]], + ['get_5fmandatory_5fcolour_5fattachment_5fformats_30',['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_31',['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_32',['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_33',['get_mandatory_sampled_image_formats',['../namespacetz_1_1gl_1_1vk2_1_1format__traits.html#abe8f1c1644982b2e797f9445c5f62636',1,'tz::gl::vk2::format_traits']]], + ['get_5fmesh_34',['get_mesh',['../classtz_1_1ren_1_1impl_1_1render__pass.html#a28cbc6ec775e19983681a0c5e1a8c21d',1,'tz::ren::impl::render_pass']]], + ['get_5fmesh_5fcount_35',['get_mesh_count',['../classtz_1_1ren_1_1impl_1_1render__pass.html#aeeb3eb136f32484e2b0a7fe4f411b2c1',1,'tz::ren::impl::render_pass']]], + ['get_5fmonitors_36',['get_monitors',['../group__tz__wsi__monitor.html#gaf49b534da37be19431f74183eacfe56a',1,'tz::wsi']]], + ['get_5fnode_37',['get_node',['../classtz_1_1transform__hierarchy.html#a35e63b9956f057fd109840e5f436499a',1,'tz::transform_hierarchy']]], + ['get_5fobject_38',['get_object',['../classtz_1_1ren_1_1impl_1_1render__pass.html#aaa0f3fdbad8c7500ed144a01f6a93198',1,'tz::ren::impl::render_pass::get_object(object_handle oh) const'],['../classtz_1_1ren_1_1impl_1_1render__pass.html#a89c5bacfe71df5e427a022f355712667',1,'tz::ren::impl::render_pass::get_object(object_handle oh)']]], + ['get_5fobject_5fcount_39',['get_object_count',['../classtz_1_1ren_1_1impl_1_1render__pass.html#abb0413b3687c24713ab6af33b2373342',1,'tz::ren::impl::render_pass']]], + ['get_5foptions_40',['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_41',['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_5fpresent_5fmode_42',['get_present_mode',['../classtz_1_1gl_1_1vk2_1_1_swapchain.html#a4b1fdde7f90b64fb7f9f094fa08dac05',1,'tz::gl::vk2::Swapchain']]], + ['get_5frender_5fpass_43',['get_render_pass',['../classtz_1_1ren_1_1impl_1_1render__pass.html#aca317ef4e07b4ce72bbe5ccb6ce09b6a',1,'tz::ren::impl::render_pass']]], + ['get_5frenderer_44',['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_45',['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_46',['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_47',['get_resources',['../classtz_1_1gl_1_1renderer__info.html#aad33d729130cc8619cc736850ea91525',1,'tz::gl::renderer_info']]], + ['get_5froot_5fnode_5fids_48',['get_root_node_ids',['../classtz_1_1transform__hierarchy.html#a51f167da906d1903cf6265344d14c3b9',1,'tz::transform_hierarchy']]], + ['get_5fsampler_49',['get_sampler',['../classtz_1_1gl_1_1ogl2_1_1image.html#a96efa74dba6d1ba2af2a5125f16a05c3',1,'tz::gl::ogl2::image']]], + ['get_5fset_50',['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_51',['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_52',['get_state',['../classtz_1_1gl_1_1renderer.html#a964d9415ecb24b8c3d8f99542acc6ffb',1,'tz::gl::renderer::get_state()'],['../classtz_1_1gl_1_1renderer__ogl.html#aac4e76798fc197ebfa7790607da7d0af',1,'tz::gl::renderer_ogl::get_state()'],['../group__tz__lua__cpp.html#ga9a602c5f2589ea1c21846afbda7bbe29',1,'tz::lua::get_state()']]], + ['get_5fsupported_5fextensions_53',['get_supported_extensions',['../classtz_1_1gl_1_1vk2_1_1_physical_device.html#a9bbd0557b43b2c2605e36c0e5a70a59c',1,'tz::gl::vk2::PhysicalDevice']]], + ['get_5fsupported_5ffeatures_54',['get_supported_features',['../classtz_1_1gl_1_1vk2_1_1_physical_device.html#af8c939fb4265bf1c015f987d9c4c0380',1,'tz::gl::vk2::PhysicalDevice']]], + ['get_5fsupported_5fsurface_5fformats_55',['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_56',['get_supported_surface_present_modes',['../classtz_1_1gl_1_1vk2_1_1_physical_device.html#a3136ce2d7b7d952609e2ea9404f26335',1,'tz::gl::vk2::PhysicalDevice']]], + ['get_5ftarget_57',['get_target',['../classtz_1_1gl_1_1ogl2_1_1buffer.html#a88865542c959df85656e7b449468c8c1',1,'tz::gl::ogl2::buffer']]], + ['get_5ftype_58',['get_type',['../classtz_1_1gl_1_1iresource.html#a1511ed9713102a7b141271c75b1b4633',1,'tz::gl::iresource::get_type()'],['../classtz_1_1gl_1_1vk2_1_1_shader_module.html#a7e6c83e267b4bd1c7bc502211aee08d5',1,'tz::gl::vk2::ShaderModule::get_type()'],['../classtz_1_1gl_1_1resource.html#a1ce1477776828a3bec4e957d2c908a18',1,'tz::gl::resource::get_type()']]], + ['get_5fusage_59',['get_usage',['../classtz_1_1gl_1_1vk2_1_1_buffer.html#ac84676ea5d9d5f459cb9c385a1032729',1,'tz::gl::vk2::Buffer']]], + ['get_5fvalue_60',['get_value',['../classtz_1_1gl_1_1vk2_1_1_timeline_semaphore.html#a31afde1d634e5b7e5e2ae3292e9ace1b',1,'tz::gl::vk2::TimelineSemaphore']]], + ['get_5fversion_61',['get_version',['../group__tz__core.html#gabed61701bea0790680354d9793946583',1,'tz']]], + ['get_5fwindow_62',['get_window',['../group__tz__wsi__window.html#ga9e50b4d537b0154de05ba6de39042b2b',1,'tz::wsi']]], + ['get_5fwindow_5fformat_63',['get_window_format',['../classtz_1_1gl_1_1device.html#af3bb467ad3c470d6f4352b4ff1a63607',1,'tz::gl::device']]], + ['gold_64',['gold',['../group__tzsl__noise.html#gaf2147086d053b3049440a65a705e3841',1,'tz::noise']]], + ['grid_5fview_65',['grid_view',['../classtz_1_1grid__view.html#a55938dc4566d1435fd2362e3bef7a4ae',1,'tz::grid_view::grid_view(std::span< T > data, tz::vec2ui dimensions)'],['../classtz_1_1grid__view.html#ae011be6078a7b9b6a35ec4de5367670c',1,'tz::grid_view::grid_view(std::span< T > data, unsigned int length)']]] +]; diff --git a/search/functions_7.js b/search/functions_7.js new file mode 100644 index 0000000000..a4cb39a5ae --- /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()']]], + ['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..73db2f1474 --- /dev/null +++ b/search/functions_8.js @@ -0,0 +1,27 @@ +var searchData= +[ + ['identity_0',['identity',['../classtz_1_1matrix.html#ac3c2819f55748e942c0b31473befba0f',1,'tz::matrix']]], + ['image_1',['image',['../classtz_1_1gl_1_1ogl2_1_1image.html#ac20bf3b1847956d4b3b56160e3c0fa8d',1,'tz::gl::ogl2::image']]], + ['image_2',['Image',['../classtz_1_1gl_1_1vk2_1_1_image.html#a9749cb054c3afbc18d56331793c7c247',1,'tz::gl::vk2::Image']]], + ['image_5fcopy_5fimage_3',['image_copy_image',['../classtz_1_1gl_1_1vk2_1_1_command_buffer_recording.html#a25b7a8e42401dd2af896c3c9459e112e',1,'tz::gl::vk2::CommandBufferRecording']]], + ['image_5fresize_4',['image_resize',['../classtz_1_1gl_1_1_renderer_edit_builder.html#ae26ce64c12ecca5c355f85869e666ded',1,'tz::gl::RendererEditBuilder']]], + ['info_5',['info',['../group__tz__core.html#ga1134f9d409701427b780589ca9fd48e5',1,'tz::engine_info']]], + ['initialise_6',['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_7',['inverse',['../classtz_1_1matrix.html#a7e433fe3e699b5408379853e995047d7',1,'tz::matrix::inverse()'],['../group__tzsl__matrix.html#ga5acabab4299f3a83255b29951529b723',1,'tz::matrix::inverse()']]], + ['inverse_5fsqrt_8',['inverse_sqrt',['../group__tzsl__math.html#gada52dfc780717ed2093173a1d7fc2756',1,'tz::math']]], + ['is_5fbig_5fendian_9',['is_big_endian',['../group__tz__core.html#ga3825fb98a5dcd1cea794be8a9ae21087',1,'tz']]], + ['is_5fbindless_10',['is_bindless',['../classtz_1_1gl_1_1ogl2_1_1image.html#abbbbeecb6616cc854440f88583e11739',1,'tz::gl::ogl2::image']]], + ['is_5finfinity_11',['is_infinity',['../group__tzsl__math.html#ga9fad99521b5db2890038926308391384',1,'tz::math']]], + ['is_5finitialised_12',['is_initialised',['../group__tz__gl__ogl2.html#gadb3c9422dbeed2aa29746cc76e69595f',1,'tz::gl::ogl2::is_initialised()'],['../group__tz__core.html#ga4197bca3cce79edb5652963d5bd7c1f0',1,'tz::is_initialised()']]], + ['is_5fkey_5fdown_13',['is_key_down',['../group__tz__wsi__keyboard.html#ga5e31e075f6fd53e6c03dce80ea5f3b7e',1,'tz::wsi']]], + ['is_5flittle_5fendian_14',['is_little_endian',['../group__tz__core.html#gad7f4858728fb24de9511dba9bdedf4ce',1,'tz']]], + ['is_5fmouse_5fbutton_5fdown_15',['is_mouse_button_down',['../group__tz__wsi__mouse.html#ga922f648e394c766866b9f09677f52a97',1,'tz::wsi']]], + ['is_5fnan_16',['is_nan',['../group__tzsl__math.html#gafb0b592c454e7f033ea85f46819d149a',1,'tz::math']]], + ['is_5fnull_17',['is_null',['../classtz_1_1gl_1_1ogl2_1_1buffer.html#a6b58eda5496da5d8bd70a05fe2bbad6e',1,'tz::gl::ogl2::buffer::is_null()'],['../classtz_1_1gl_1_1ogl2_1_1framebuffer.html#adf2c7cbf8d99d4989162683c264a49f5',1,'tz::gl::ogl2::framebuffer::is_null()'],['../classtz_1_1gl_1_1ogl2_1_1image.html#ac0f5d8d365b93ee6282751e94f8973e8',1,'tz::gl::ogl2::image::is_null()'],['../classtz_1_1gl_1_1ogl2_1_1shader.html#a51d7596169244c8fb6414302e2f1b1ef',1,'tz::gl::ogl2::shader::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()'],['../classtz_1_1gl_1_1vk2_1_1_swapchain.html#a3b79708061815cb17a57911986fc267f',1,'tz::gl::vk2::Swapchain::is_null()']]], + ['is_5frecording_18',['is_recording',['../classtz_1_1gl_1_1vk2_1_1_command_buffer.html#a721538a81ab301429e1eea581ca9a012',1,'tz::gl::vk2::CommandBuffer']]], + ['is_5fsignalled_19',['is_signalled',['../classtz_1_1gl_1_1vk2_1_1_fence.html#ac7ef0b27a987a0522a39a6bbdb071a90',1,'tz::gl::vk2::Fence']]], + ['iterate_5fancestors_20',['iterate_ancestors',['../classtz_1_1transform__hierarchy.html#a9c13eb5f585294602923ead2ba4c7813',1,'tz::transform_hierarchy']]], + ['iterate_5fchildren_21',['iterate_children',['../classtz_1_1transform__hierarchy.html#ab5301295fe1fe2c0cd788e06619e03f6',1,'tz::transform_hierarchy']]], + ['iterate_5fdescendants_22',['iterate_descendants',['../classtz_1_1transform__hierarchy.html#a5269b10605b0e2dca174a3532a356951',1,'tz::transform_hierarchy']]], + ['iterate_5fnodes_23',['iterate_nodes',['../classtz_1_1transform__hierarchy.html#acc7bc891096859dea26cbd49db71a563',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..a3dbcca774 --- /dev/null +++ b/search/functions_a.js @@ -0,0 +1,10 @@ +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']]], + ['little_5fendian_3',['little_endian',['../group__tz__core.html#gaa33aa37bcfb7f692656a9533c3c4d62b',1,'tz']]], + ['ln_4',['ln',['../group__tzsl__math.html#gaa3a474353fb7c18a671fb285c38f12fa',1,'tz::math']]], + ['log_5',['log',['../group__tzsl__math.html#gaa8fbf2fd8ac5c0c3e7a3ad51cfe5acca',1,'tz::math']]], + ['logicaldevice_6',['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..b95652c3ea --- /dev/null +++ b/search/functions_b.js @@ -0,0 +1,21 @@ +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#a08597e418e20c292ea54f4b845a6a35a',1,'tz::matrix::matrix()=default'],['../classtz_1_1matrix.html#ab93aae54ae663d225ed18bed1dde22ef',1,'tz::matrix::matrix(std::array< std::array< T, R >, C > data)']]], + ['max_7',['max',['../group__tzsl__atomic.html#ga7be084073b7420420cd5f5b5b9f81db6',1,'tz::atomic::max()'],['../group__tzsl__math.html#gaace435adbf3045892fcff015ae6446ae',1,'tz::math::max()']]], + ['max_5fchronological_5frank_8',['max_chronological_rank',['../structtz_1_1gl_1_1schedule.html#ab7d1d3bd45c313429389ad56f437c617',1,'tz::gl::schedule']]], + ['mesh_5frenderer_9',['mesh_renderer',['../classtz_1_1ren_1_1mesh__renderer.html#a022f124fcf6fab386181d4881cdc9d4e',1,'tz::ren::mesh_renderer']]], + ['message_5fcount_10',['message_count',['../classtz_1_1message__receiver.html#a6a2ee7680b8af7ef5149a591eb2536fe',1,'tz::message_receiver']]], + ['message_5fpasser_11',['message_passer',['../classtz_1_1message__passer.html#a04cca529b058fa1264abbfdb53090cfa',1,'tz::message_passer::message_passer()=default'],['../classtz_1_1message__passer.html#a968b50616b63eed5a4fe2b063158565b',1,'tz::message_passer::message_passer(message_receiver< M, false > &target)'],['../classtz_1_1message__passer.html#a5b772bf664535fd0aca153513631596c',1,'tz::message_passer::message_passer(message_receiver< M, true > &target)']]], + ['micros_12',['micros',['../classtz_1_1duration.html#a77132d356c4f747078fd4574e778a1a8',1,'tz::duration']]], + ['millis_13',['millis',['../classtz_1_1duration.html#a7e77d183a8aeecf8e36a6a7b76947f8b',1,'tz::duration']]], + ['min_14',['min',['../group__tzsl__atomic.html#ga86e1a113d8ee0dd644704f091bcb1b13',1,'tz::atomic::min()'],['../group__tzsl__math.html#ga4bd7bdfcb0408f324b5e80a7c233a2ed',1,'tz::math::min()']]], + ['minutes_15',['minutes',['../classtz_1_1duration.html#a03ae7d13037cac61ff6c60852d1d20fc',1,'tz::duration']]], + ['mod_16',['mod',['../group__tzsl__math.html#ga9e6708981e516e127c8e7f9e078aa50a',1,'tz::math']]], + ['model_17',['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..33e0b33121 --- /dev/null +++ b/search/functions_d.js @@ -0,0 +1,27 @@ +var searchData= +[ + ['object_5fget_5fglobal_5ftransform_0',['object_get_global_transform',['../classtz_1_1ren_1_1impl_1_1render__pass.html#a65c4a8e3224f1d74945eb11f3b402bb0',1,'tz::ren::impl::render_pass']]], + ['object_5fget_5flocal_5ftransform_1',['object_get_local_transform',['../classtz_1_1ren_1_1impl_1_1render__pass.html#a349bd1c85304df77b50c389ccd2f9b2b',1,'tz::ren::impl::render_pass']]], + ['object_5fset_5fglobal_5ftransform_2',['object_set_global_transform',['../classtz_1_1ren_1_1impl_1_1render__pass.html#a5b6f3de2781533ad48d7e09803168928',1,'tz::ren::impl::render_pass']]], + ['object_5fset_5flocal_5ftransform_3',['object_set_local_transform',['../classtz_1_1ren_1_1impl_1_1render__pass.html#a771b23db90dbc4687151e667124a2c28',1,'tz::ren::impl::render_pass']]], + ['on_5fsend_5fmessage_4',['on_send_message',['../classtz_1_1message__receiver.html#a02a473a737e33af3a81d905ea842a70c',1,'tz::message_receiver']]], + ['operator_20e_5',['operator E',['../classtz_1_1enum__field.html#a3327eb996a17b1b537c9dd0f4ca7b4ff',1,'tz::enum_field']]], + ['operator_20std_3a_3aspan_3c_20const_20t_20_3e_6',['span< const T >',['../classtz_1_1basic__list.html#a54c9f1226a0ac27cd0f51485e3991181',1,'tz::basic_list']]], + ['operator_20vector_3c_20x_2c_20s_20_3e_7',['operator vector< X, S >',['../classtz_1_1vector.html#a07e3d24a2740e69ab8d7b3d3fbf1cae9',1,'tz::vector']]], + ['operator_28_29_8',['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_9',['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_10',['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_11',['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_12',['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_13',['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_14',['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_15',['operator/',['../classtz_1_1vector.html#a0258c2f1b18c602fa0d3e6f111d9a302',1,'tz::vector']]], + ['operator_2f_3d_16',['operator/=',['../classtz_1_1vector.html#a3bf18e76e10c2744051757ac69d28ea1',1,'tz::vector']]], + ['operator_3d_3d_17',['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_18',['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_1free__list.html#a95157608dd9f1bc73afac9f687d0f2f7',1,'tz::free_list::operator[](handle h) const'],['../classtz_1_1free__list.html#a07b4ecbe8f994cd94cb5b859642d1b67',1,'tz::free_list::operator[](handle h)'],['../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_19',['operator|',['../classtz_1_1enum__field.html#a2aecfc1eb743a60eb38d612bee21797c',1,'tz::enum_field']]], + ['operator_7c_3d_20',['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_21',['or',['../group__tzsl__atomic.html#ga95e7e3ef54161ce397ae4496aa09be0c',1,'tz::atomic']]], + ['orthographic_22',['orthographic',['../group__tz__core.html#ga234891ef18cb4fd49558abc807e172e2',1,'tz']]], + ['outputmanager_23',['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..7011313342 --- /dev/null +++ b/search/functions_e.js @@ -0,0 +1,14 @@ +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']]], + ['process_5fmessage_8',['process_message',['../classtz_1_1message__receiver.html#ac26c9b17c8b06c4dc89aae76f9b481d0',1,'tz::message_receiver::process_message()'],['../classtz_1_1message__passer.html#a7c751a118baf9ba0c882abf871c350e4',1,'tz::message_passer::process_message(const M &msg) override final']]], + ['process_5fmessages_9',['process_messages',['../classtz_1_1message__passer.html#ae1b80f3a006cadcc5ecb3639acd54ae3',1,'tz::message_passer']]], + ['push_5fback_10',['push_back',['../classtz_1_1free__list.html#ab2d37790e8c37d08c8243c520b20eced',1,'tz::free_list::push_back(const T &t)'],['../classtz_1_1free__list.html#aea32553731eecf30c3453c121b3e55c4',1,'tz::free_list::push_back(T &&t)']]] +]; diff --git a/search/functions_f.js b/search/functions_f.js new file mode 100644 index 0000000000..5ef97dc0b3 --- /dev/null +++ b/search/functions_f.js @@ -0,0 +1,29 @@ +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_5ffont_6',['remove_font',['../classtz_1_1ren_1_1text__renderer.html#a2e3d1cbbd8b300759798cc5d9f38f5cc',1,'tz::ren::text_renderer']]], + ['remove_5fmesh_7',['remove_mesh',['../classtz_1_1ren_1_1impl_1_1render__pass.html#a8f640fbcb5ab4c6ff7245b634b80064a',1,'tz::ren::impl::render_pass']]], + ['remove_5fnode_8',['remove_node',['../classtz_1_1transform__hierarchy.html#aa0ced17908b8fd14298132668f1d45c9',1,'tz::transform_hierarchy']]], + ['remove_5fobject_9',['remove_object',['../classtz_1_1ren_1_1impl_1_1render__pass.html#a4f56bcfb8a870f150dbcfa92c8d95052',1,'tz::ren::impl::render_pass']]], + ['remove_5fstring_10',['remove_string',['../classtz_1_1ren_1_1text__renderer.html#a4b62cf03fab066de265a3d2658404536',1,'tz::ren::text_renderer']]], + ['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_5fgraph_12',['render_graph',['../classtz_1_1gl_1_1device__common.html#ac9c14078578a4c6d1ad38e3ff42b5e27',1,'tz::gl::device_common::render_graph() const'],['../classtz_1_1gl_1_1device__common.html#af584b017489462ba6869d729b2771c46',1,'tz::gl::device_common::render_graph()']]], + ['render_5fstate_13',['render_state',['../classtz_1_1gl_1_1_renderer_edit_builder.html#a93c4ffa0d35525ace09a54ce897f028d',1,'tz::gl::RendererEditBuilder']]], + ['renderer_5fcount_14',['renderer_count',['../classtz_1_1gl_1_1device.html#aa2adea5cb25d9712f1fe2b22dba3eec7',1,'tz::gl::device']]], + ['renderer_5fogl_15',['renderer_ogl',['../classtz_1_1gl_1_1renderer__ogl.html#ad8f5c88c01550694021d6d15e8b1222b',1,'tz::gl::renderer_ogl']]], + ['report_16',['report',['../group__tz__core.html#gab9cfea70c99d9d2b1dd82bebee489377',1,'tz']]], + ['reserve_17',['reserve',['../classtz_1_1free__list.html#afc9b4f698b47a1a457087837d8d69beb',1,'tz::free_list']]], + ['reset_18',['reset',['../classtz_1_1delay.html#ab4828a83cde0cd8739937a533dd91b60',1,'tz::delay']]], + ['resize_19',['resize',['../classtz_1_1basic__list.html#a0a3896bd6babdbde094588b846fa8f5e',1,'tz::basic_list']]], + ['resource_5fcount_20',['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_21',['resource_count_of',['../classtz_1_1gl_1_1_resource_storage.html#a7434d0c28fc3e936ea2da36b6e5cd020',1,'tz::gl::ResourceStorage']]], + ['resourcestorage_22',['ResourceStorage',['../classtz_1_1gl_1_1_resource_storage.html#ab57f9e4401a87f4fa877d0cdd69204ed',1,'tz::gl::ResourceStorage']]], + ['rotate_23',['rotate',['../group__tz__core.html#gac0457238d0094915eda4df542774a9e8',1,'tz']]], + ['round_24',['round',['../group__tzsl__math.html#ga39cc0a661ddc88ab512b639cb38d4928',1,'tz::math']]], + ['run_25',['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..e7abeaf009 --- /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__ogl2__image.html',1,'Images, Samplers and Formats'],['../group__tz__gl__vk__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..244d2ee8f9 --- /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..062f7ae005 --- /dev/null +++ b/search/groups_10.js @@ -0,0 +1,12 @@ +var searchData= +[ + ['samplers_20and_20formats_0',['Samplers and Formats',['../group__tz__gl__ogl2__image.html',1,'Images, Samplers and Formats'],['../group__tz__gl__vk__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..8fe616b2ac --- /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__ogl2__image.html',1,'Images, Samplers and Formats'],['../group__tz__gl__vk__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..91d3eb2930 --- /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__ogl2__image.html',1,'Images, Samplers and Formats'],['../group__tz__gl__vk__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..3c30f32b15 --- /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',['Library',['../group__tz__gl2.html',1,'Graphics Library'],['../group__tz__ren.html',1,'Rendering Library']]], + ['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..153540f9b3 --- /dev/null +++ b/search/groups_b.js @@ -0,0 +1,12 @@ +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,'']]], + ['messaging_5',['Messaging',['../group__tz__core__messaging.html',1,'']]], + ['modules_6',['Shader Programs and Modules',['../group__tz__gl__vk__graphics__pipeline__shader.html',1,'']]], + ['monitors_7',['Monitors',['../group__tz__wsi__monitor.html',1,'']]], + ['mouse_20input_8',['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..8683c88030 --- /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..ebf017c249 --- /dev/null +++ b/search/groups_f.js @@ -0,0 +1,9 @@ +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,'']]], + ['rendering_20library_4',['Rendering Library',['../group__tz__ren.html',1,'']]], + ['resources_5',['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..666af01e5e --- /dev/null +++ b/search/search.js @@ -0,0 +1,694 @@ +/* + @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 + */ +const SEARCH_COOKIE_NAME = ''+'search_grp'; + +const searchResults = new SearchResults(); + +/* A class handling everything associated with the search panel. + + Parameters: + name - The name of the global variable that will be + storing this instance. Is needed to be able to set timeouts. + resultPath - path to use for external files +*/ +function SearchBox(name, resultsPath, extension) { + if (!name || !resultsPath) { alert("Missing parameters to SearchBox."); } + if (!extension || extension == "") { extension = ".html"; } + + function getXPos(item) { + let x = 0; + if (item.offsetWidth) { + while (item && item!=document.body) { + x += item.offsetLeft; + item = item.offsetParent; + } + } + return x; + } + + function getYPos(item) { + let y = 0; + if (item.offsetWidth) { + while (item && item!=document.body) { + y += item.offsetTop; + item = item.offsetParent; + } + } + return y; + } + + // ---------- Instance variables + this.name = name; + this.resultsPath = resultsPath; + this.keyTimeout = 0; + this.keyTimeoutLength = 500; + this.closeSelectionTimeout = 300; + this.lastSearchValue = ""; + this.lastResultsPage = ""; + this.hideTimeout = 0; + this.searchIndex = 0; + this.searchActive = false; + this.extension = extension; + + // ----------- DOM Elements + + this.DOMSearchField = () => document.getElementById("MSearchField"); + this.DOMSearchSelect = () => document.getElementById("MSearchSelect"); + this.DOMSearchSelectWindow = () => document.getElementById("MSearchSelectWindow"); + this.DOMPopupSearchResults = () => document.getElementById("MSearchResults"); + this.DOMPopupSearchResultsWindow = () => document.getElementById("MSearchResultsWindow"); + this.DOMSearchClose = () => document.getElementById("MSearchClose"); + this.DOMSearchBox = () => document.getElementById("MSearchBox"); + + // ------------ Event Handlers + + // Called when focus is added or removed from the search field. + this.OnSearchFieldFocus = function(isActive) { + this.Activate(isActive); + } + + this.OnSearchSelectShow = function() { + const searchSelectWindow = this.DOMSearchSelectWindow(); + const searchField = this.DOMSearchSelect(); + + const left = getXPos(searchField); + const top = getYPos(searchField) + searchField.offsetHeight; + + // show search selection popup + searchSelectWindow.style.display='block'; + searchSelectWindow.style.left = left + 'px'; + searchSelectWindow.style.top = top + 'px'; + + // stop selection hide timer + if (this.hideTimeout) { + clearTimeout(this.hideTimeout); + this.hideTimeout=0; + } + return false; // to avoid "image drag" default event + } + + this.OnSearchSelectHide = function() { + this.hideTimeout = setTimeout(this.CloseSelectionWindow.bind(this), + this.closeSelectionTimeout); + } + + // Called when the content of the search field is changed. + this.OnSearchFieldChange = function(evt) { + if (this.keyTimeout) { // kill running timer + clearTimeout(this.keyTimeout); + this.keyTimeout = 0; + } + + const e = evt ? evt : window.event; // for IE + if (e.keyCode==40 || e.keyCode==13) { + if (e.shiftKey==1) { + this.OnSearchSelectShow(); + const win=this.DOMSearchSelectWindow(); + for (let i=0;i do a search + this.Search(); + } + } + + this.OnSearchSelectKey = function(evt) { + const 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 + const searchValue = this.DOMSearchField().value.replace(/^ +/, ""); + + const code = searchValue.toLowerCase().charCodeAt(0); + let idxChar = searchValue.substr(0, 1).toLowerCase(); + if ( 0xD800 <= code && code <= 0xDBFF && searchValue > 1) { // surrogate pair + idxChar = searchValue.substr(0, 2); + } + + let jsFile; + let idx = indexSectionsWithContent[this.searchIndex].indexOf(idxChar); + if (idx!=-1) { + const hexCode=idx.toString(16); + jsFile = this.resultsPath + indexSectionNames[this.searchIndex] + '_' + hexCode + '.js'; + } + + const loadJS = function(url, impl, loc) { + const scriptTag = document.createElement('script'); + scriptTag.src = url; + scriptTag.onload = impl; + scriptTag.onreadystatechange = impl; + loc.appendChild(scriptTag); + } + + const domPopupSearchResultsWindow = this.DOMPopupSearchResultsWindow(); + const domSearchBox = this.DOMSearchBox(); + const domPopupSearchResults = this.DOMPopupSearchResults(); + const domSearchClose = this.DOMSearchClose(); + const resultsPath = this.resultsPath; + + const 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'; + let left = getXPos(domSearchBox) + 150; + let top = getYPos(domSearchBox) + 20; + domPopupSearchResultsWindow.style.display = 'block'; + left -= domPopupSearchResults.offsetWidth; + const maxWidth = document.body.clientWidth; + const maxHeight = document.body.clientHeight; + let width = 300; + if (left<10) left=10; + if (width+left+8>maxWidth) width=maxWidth-left-8; + let 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() { + + function convertToId(search) { + let result = ''; + for (let i=0;i. + this.lastMatchCount = 0; + this.lastKey = 0; + this.repeatOn = false; + + // Toggles the visibility of the passed element ID. + this.FindChildElement = function(id) { + const parentElement = document.getElementById(id); + let 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) { + const 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); + + const resultRows = document.getElementsByTagName("div"); + let matches = 0; + + let i = 0; + while (i < resultRows.length) { + const row = resultRows.item(i); + if (row.className == "SRResult") { + let 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) { + let focusItem; + for (;;) { + const 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) { + let focusItem; + for (;;) { + const 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) { + const e = (evt) ? evt : window.event; // for IE + if (e.keyCode==13) return true; + if (!this.ProcessKeys(e)) return false; + + if (this.lastKey==38) { // Up + const newIndex = itemIndex-1; + let focusItem = this.NavPrev(newIndex); + if (focusItem) { + let child = this.FindChildElement(focusItem.parentNode.parentNode.id); + if (child && child.style.display == 'block') { // children visible + let n=0; + let tmpElem; + for (;;) { // 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 + const newIndex = itemIndex+1; + let focusItem; + const item = document.getElementById('Item'+itemIndex); + const 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 + const item = document.getElementById('Item'+itemIndex); + const elem = this.FindChildElement(item.parentNode.parentNode.id); + if (elem) elem.style.display = 'block'; + } else if (this.lastKey==37) { // Left + const item = document.getElementById('Item'+itemIndex); + const 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) { + const 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) { + const 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 + const newIndex = childIndex+1; + let 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 createResults(resultsPath) { + + 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); + } + + const results = document.getElementById("SRResults"); + results.innerHTML = ''; + searchData.forEach((elem,index) => { + const id = elem[0]; + const srResult = document.createElement('div'); + srResult.setAttribute('id','SR_'+id); + setClassAttr(srResult,'SRResult'); + const srEntry = document.createElement('div'); + setClassAttr(srEntry,'SREntry'); + const srLink = document.createElement('a'); + srLink.setAttribute('id','Item'+index); + setKeyActions(srLink,'return searchResults.Nav(event,'+index+')'); + setClassAttr(srLink,'SRSymbol'); + srLink.innerHTML = elem[1][0]; + srEntry.appendChild(srLink); + if (elem[1].length==2) { // single result + srLink.setAttribute('href',resultsPath+elem[1][1][0]); + srLink.setAttribute('onclick','searchBox.CloseResultsWindow()'); + if (elem[1][1][1]) { + srLink.setAttribute('target','_parent'); + } else { + srLink.setAttribute('target','_blank'); + } + const srScope = document.createElement('span'); + setClassAttr(srScope,'SRScope'); + srScope.innerHTML = elem[1][1][2]; + srEntry.appendChild(srScope); + } else { // multiple results + srLink.setAttribute('href','javascript:searchResults.Toggle("SR_'+id+'")'); + const srChildren = document.createElement('div'); + setClassAttr(srChildren,'SRChildren'); + for (let c=0; c + + + + + + +Topaz: src/tz/gl/impl/vulkan/detail/semaphore.hpp Source File + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    Topaz 4.2.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:76
    +
    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..465bc8023c --- /dev/null +++ b/shader_8hpp_source.html @@ -0,0 +1,111 @@ + + + + + + + +Topaz: src/tz/gl/shader.hpp Source File + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    Topaz 4.2.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 0000000000000000000000000000000000000000..fe895f2c58179b471a22d8320b39a4bd7312ec8e GIT binary patch literal 314 zcmeAS@N?(olHy`uVBq!ia0vp^Yzz!63>-{AmhX=Jf(#6djGiuzAr*{o?=JLmPLyc> z_*`QK&+BH@jWrYJ7>r6%keRM@)Qyv8R=enp0jiI>aWlGyB58O zFVR20d+y`K7vDw(hJF3;>dD*3-?v=<8M)@x|EEGLnJsniYK!2U1 Y!`|5biEc?d1`HDhPgg&ebxsLQ02F6;9RL6T literal 0 HcmV?d00001 diff --git a/splitbard.png b/splitbard.png new file mode 100644 index 0000000000000000000000000000000000000000..8367416d757fd7b6dc4272b6432dc75a75abd068 GIT binary patch literal 282 zcmeAS@N?(olHy`uVBq!ia0vp^Yzz!63>-{AmhX=Jf@VhhFKy35^fiT zT~&lUj3=cDh^%3HDY9k5CEku}PHXNoNC(_$U3XPb&Q*ME25pT;2(*BOgAf<+R$lzakPG`kF31()Fx{L5Wrac|GQzjeE= zueY1`Ze{#x<8=S|`~MgGetGce)#vN&|J{Cd^tS%;tBYTo?+^d68<#n_Y_xx`J||4O V@QB{^CqU0Kc)I$ztaD0e0svEzbJzd? literal 0 HcmV?d00001 diff --git a/stack_8hpp_source.html b/stack_8hpp_source.html new file mode 100644 index 0000000000..2dc7afefbb --- /dev/null +++ b/stack_8hpp_source.html @@ -0,0 +1,136 @@ + + + + + + + +Topaz: src/tz/core/memory/allocators/stack.hpp Source File + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    Topaz 4.2.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:81
    +
    + + + + diff --git a/stack_8inl_source.html b/stack_8inl_source.html new file mode 100644 index 0000000000..4e8c457b4a --- /dev/null +++ b/stack_8inl_source.html @@ -0,0 +1,118 @@ + + + + + + + +Topaz: src/tz/core/memory/allocators/stack.inl Source File + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    Topaz 4.2.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..3abdcfccd3 --- /dev/null +++ b/state_8hpp_source.html @@ -0,0 +1,255 @@ + + + + + + + +Topaz: src/tz/lua/state.hpp Source File + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    Topaz 4.2.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#include <span>
    +
    12#include <variant>
    +
    13
    +
    14namespace tz::lua
    +
    15{
    +
    16 struct nil{};
    +
    17 namespace impl
    +
    18 {
    +
    19 using fn_t = int(*)(void*);
    +
    + +
    21 {
    +
    22 const char* namestr;
    +
    23 fn_t fnptr; // signature: int(void*)
    +
    24 };
    +
    +
    25 using lua_registers = std::span<const lua_register>;
    +
    26 }
    +
    27
    +
    28 using lua_generic = std::variant<bool, double, std::int64_t, std::string, nil>;
    +
    29
    +
    +
    34 class state
    +
    35 {
    +
    36 public:
    +
    37 state() = default;
    +
    38 state(void* lstate);
    +
    43 bool valid() const;
    +
    50 bool execute_file(const char* path, bool assert_on_failure = true) const;
    +
    57 bool execute(const char* lua_src, bool assert_on_failure = true) const;
    +
    58
    +
    59 // assigning variables
    +
    60 bool assign_nil(const char* varname) const;
    +
    61 bool assign_emptytable(const char* varname) const;
    +
    62 bool assign_bool(const char* varname, bool b) const;
    +
    63 bool assign_float(const char* varname, float f) const;
    +
    64 bool assign_double(const char* varname, double d) const;
    +
    65 bool assign_int(const char* varname, std::int64_t i) const;
    +
    66 bool assign_uint(const char* varname, std::uint64_t u) const;
    +
    67 bool assign_func(const char* varname, auto anon_ptr) const
    +
    68 {
    +
    69 using T = std::decay_t<decltype(anon_ptr)>;
    +
    70 if constexpr(std::is_pointer_v<T>)
    +
    71 {
    +
    72 return this->assign_func(varname, reinterpret_cast<void*>(anon_ptr));
    +
    73 }
    +
    74 return false;
    +
    75 }
    +
    76 bool assign_func(const char* varname, void* func_ptr) const;
    +
    77 bool assign_string(const char* varname, std::string str) const;
    +
    78 void assign_stack(const char* varname);
    +
    79 // retrieving variable values
    +
    80 std::optional<bool> get_bool(const char* varname) const;
    +
    81 std::optional<float> get_float(const char* varname) const;
    +
    82 std::optional<double> get_double(const char* varname) const;
    +
    83 std::optional<std::int64_t> get_int(const char* varname) const;
    +
    84 std::optional<std::uint64_t> get_uint(const char* varname) const;
    +
    85 std::optional<std::string> get_string(const char* varname) const;
    +
    86 // stack operations
    +
    87 std::size_t stack_size() const;
    +
    88 void stack_pop(std::size_t count = 1);
    +
    89 // read a value off of the stack
    +
    90 bool stack_get_bool(std::size_t idx, bool type_check = true) const;
    +
    91 double stack_get_double(std::size_t idx, bool type_check = true) const;
    +
    92 float stack_get_float(std::size_t idx, bool type_check = true) const;
    +
    93 std::int64_t stack_get_int(std::size_t idx, bool type_check = true) const;
    +
    94 std::uint64_t stack_get_uint(std::size_t idx, bool type_check = true) const;
    +
    95 std::string stack_get_string(std::size_t idx, bool type_check = true) const;
    +
    96 tz::lua::nil stack_get_nil(std::size_t idx, bool type_check = true) const;
    +
    97 void* stack_get_ptr(std::size_t idx, bool type_check = true) const;
    +
    98 template<typename T>
    +
    99 T& stack_get_userdata(std::size_t idx, bool type_check = true) const
    +
    100 {
    +
    101 return *reinterpret_cast<T*>(this->stack_get_ptr(idx, type_check));
    +
    102 }
    +
    103 lua_generic stack_get_generic(std::size_t idx) const;
    +
    104 // push a new value onto the stack
    +
    105 void stack_push_nil() const;
    +
    106 void stack_push_bool(bool b) const;
    +
    107 void stack_push_double(double d) const;
    +
    108 void stack_push_float(float f) const;
    +
    109 void stack_push_int(std::int64_t i) const;
    +
    110 void stack_push_uint(std::uint64_t u) const;
    +
    111 void stack_push_string(std::string_view sv) const;
    +
    112 void stack_push_generic(lua_generic generic) const;
    +
    113 // light user data
    +
    114 void stack_push_ptr(void* ptr) const;
    +
    115 template<typename T>
    +
    116 void stack_push_ref(T& t) const
    +
    117 {
    +
    118 stack_push_ptr(&t);
    +
    119 }
    +
    120 template<typename T>
    +
    121 void stack_push_userdata(const T& t)
    +
    122 {
    +
    123 constexpr std::size_t sz = sizeof(T);
    +
    124 auto blk = lua_userdata_stack_push(sz);
    +
    125 new (blk.ptr) T{t};
    +
    126 }
    +
    127
    +
    128 std::string collect_stack() const;
    +
    129 std::string print_traceback() const;
    +
    130 const std::string& get_last_error() const;
    +
    131 std::thread::id get_owner_thread_id() const;
    +
    132 void attach_to_top_userdata(const char* classname, impl::lua_registers registers);
    +
    133 void attach_to_top_table(impl::lua_registers registers);
    +
    134 void new_type(const char* type_name, impl::lua_registers registers);
    +
    135 void open_lib(const char* name, impl::lua_registers registers);
    +
    136 void* operator()() const;
    +
    137 private:
    +
    138 tz::memblk lua_userdata_stack_push(std::size_t byte_count) const;
    +
    139 bool impl_check_stack(std::size_t sz) const;
    +
    140 mutable std::string last_error = "";
    +
    141 void* lstate = nullptr;
    +
    142 std::thread::id owner = std::this_thread::get_id();
    +
    143 };
    +
    +
    144
    +
    149 state& get_state();
    +
    150
    +
    151 using state_applicator = std::function<void(state&)>;
    +
    152 void for_all_states(state_applicator fn);
    +
    153
    +
    154}
    +
    155
    +
    156#endif // TZ_LUA_STATE_HPP
    +
    Represents a lua state.
    Definition state.hpp:35
    +
    bool execute_file(const char *path, bool assert_on_failure=true) const
    Attempt to execute a lua source file.
    Definition state.cpp:37
    +
    bool execute(const char *lua_src, bool assert_on_failure=true) const
    Attempt to execute a lua source string.
    Definition state.cpp:50
    +
    bool valid() const
    Query as to whether the state is valid.
    Definition state.cpp:32
    +
    state & get_state()
    Retrieve the main lua tz::lua::state.
    Definition state.cpp:558
    +
    Definition state.hpp:21
    +
    Definition state.hpp:16
    +
    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..9f2df9a0f1 --- /dev/null +++ b/static_8hpp_source.html @@ -0,0 +1,172 @@ + + + + + + + +Topaz: src/tz/core/algorithms/static.hpp Source File + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    Topaz 4.2.0.1 +
    +
    C++20 Graphics Engine
    +
    +
    + + + + + + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + + +
    +
    +
    static.hpp
    +
    +
    +
    1#ifndef TOPAZ_CORE_ALGORITHM_STATIC_HPP
    +
    2#define TOPAZ_CORE_ALGORITHM_STATIC_HPP
    +
    3#include <cstdint>
    +
    4#include <tuple>
    +
    5#include <variant>
    +
    6
    +
    7namespace tz
    +
    8{
    +
    9 template<int F, int L>
    +
    + +
    11 {
    +
    12 template<typename Functor>
    +
    13 static inline constexpr void apply(const Functor& f)
    +
    14 {
    +
    15 if(F < L)
    +
    16 {
    +
    17 f(std::integral_constant<int, F>{});
    + +
    19 }
    +
    20 }
    +
    21
    +
    22 template<typename Functor>
    +
    23 inline constexpr void operator()(const Functor& f) const
    +
    24 {
    +
    25 apply(f);
    +
    26 }
    +
    27 };
    +
    +
    28
    +
    42 template<int N>
    +
    +
    43 struct static_for_t<N, N>
    +
    44 {
    +
    45 template<typename Functor>
    +
    46 static inline constexpr void apply([[maybe_unused]] const Functor& f){}
    +
    47 };
    +
    +
    48
    +
    49 template<int F, int L>
    +
    50 inline constexpr static_for_t<F, L> static_for = {};
    +
    51
    +
    59 template<typename needle, typename... haystack>
    +
    +
    60 constexpr bool static_find()
    +
    61 {
    +
    62 bool b = false;
    +
    63 static_for<0, sizeof...(haystack)>([&b]([[maybe_unused]] auto i) constexpr
    +
    64 {
    +
    65 if constexpr(std::is_same<std::decay_t<decltype(std::get<i.value>(std::declval<std::tuple<haystack...>>()))>, needle>::value)
    +
    66 {
    +
    67 b = true;
    +
    68 }
    +
    69 });
    +
    70 return b;
    +
    71 }
    +
    +
    72}
    +
    73#endif // TOPAZ_CORE_ALGORITHM_STATIC_HPP
    +
    constexpr bool static_find()
    Check if a needle is found in a haystack at compile-time.
    Definition static.hpp:60
    +
    Definition static.hpp:11
    +
    + + + + diff --git a/struct_im_gui_vertex.html b/struct_im_gui_vertex.html new file mode 100644 index 0000000000..72afde9f57 --- /dev/null +++ b/struct_im_gui_vertex.html @@ -0,0 +1,102 @@ + + + + + + + +Topaz: ImGuiVertex Struct Reference + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    Topaz 4.2.0.1 +
    +
    C++20 Graphics Engine
    +
    +
    + + + + + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    +
    ImGuiVertex Struct Reference
    +
    +
    +
    + + + + diff --git a/structfont__data.html b/structfont__data.html new file mode 100644 index 0000000000..23e96aa096 --- /dev/null +++ b/structfont__data.html @@ -0,0 +1,102 @@ + + + + + + + +Topaz: font_data Struct Reference + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    Topaz 4.2.0.1 +
    +
    C++20 Graphics Engine
    +
    +
    + + + + + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    +
    font_data Struct Reference
    +
    +
    +
    + + + + diff --git a/structglyph__data.html b/structglyph__data.html new file mode 100644 index 0000000000..21ecc4f0cf --- /dev/null +++ b/structglyph__data.html @@ -0,0 +1,102 @@ + + + + + + + +Topaz: glyph_data Struct Reference + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    Topaz 4.2.0.1 +
    +
    C++20 Graphics Engine
    +
    +
    + + + + + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    +
    glyph_data Struct Reference
    +
    +
    +
    + + + + diff --git a/structglyph__render__data.html b/structglyph__render__data.html new file mode 100644 index 0000000000..3d530ea3b0 --- /dev/null +++ b/structglyph__render__data.html @@ -0,0 +1,102 @@ + + + + + + + +Topaz: glyph_render_data Struct Reference + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    Topaz 4.2.0.1 +
    +
    C++20 Graphics Engine
    +
    +
    + + + + + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    +
    glyph_render_data Struct Reference
    +
    +
    +
    + + + + diff --git a/structmesh__locator.html b/structmesh__locator.html new file mode 100644 index 0000000000..f6a9ce1d77 --- /dev/null +++ b/structmesh__locator.html @@ -0,0 +1,102 @@ + + + + + + + +Topaz: mesh_locator Struct Reference + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    Topaz 4.2.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..bc5c994803 --- /dev/null +++ b/structobject__t.html @@ -0,0 +1,102 @@ + + + + + + + +Topaz: object_t Struct Reference + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    Topaz 4.2.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..6291b67bc2 --- /dev/null +++ b/structstd_1_1hash_3_01tz_1_1quat_01_4.html @@ -0,0 +1,112 @@ + + + + + + + +Topaz: std::hash< tz::quat > Struct Reference + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    Topaz 4.2.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 0000000000000000000000000000000000000000..c7dd10c20d6d35034d4010f9691d50018ff07f31 GIT binary patch literal 569 zcmeAS@N?(olHy`uVBq!ia0vp^)j%A;!3-q%ihk_?QqloFA+G=b{|7Q(y!l$%e`vXd zfo6fk^fNCWJa_;UH$5A+1SrQ@666=m0OW&#In(Sb3=E7%JY5_^Dj46+y*TNO0*A}& z=?nk=?>0AH)MU7O^4i@-q1Ux`hbYN7eC89JsNxtB8ocG^s#V!v1K&hy3E!SASzrAo z|7OwjSed^2>np=&^Z(jXnr-=Xb_?~>!&e9tGcg?HrMweX*3`})9^=V`BwgoVDT zyyI3DarWi(oYyP9{<%^}_O@zI z=l@6h;`J@R#DxCNc)v&OVpi$pyZ@s@ODCEEiM3#2(oH2LOQweVuNfIUy;AJuDnGb< zYxHYQ-}L`>`M#SB8zN@&GGuQBGQzMjwyP>lQsMAima*BhXsumG?(DSLs%9JaPW*r7 zwepQ3oxb{aTMOPSKWaC{`0TSLo7guVy`fEet|(3ZvUp?bo8(PawQE;?S=91o@y5F% zHA>cV-d>w9XY)^ujjONC?aV)8@#W8?T-mkh$M&($pBP(nxKR7h-mMqz3v9W4CvC;= zF553PVcRFv#%wtL + + + + + + +Topaz: std::hash< tz::trs > Struct Reference + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    Topaz 4.2.0.1 +
    +
    C++20 Graphics Engine
    +
    +
    + + + + + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + + +
    +
    +
    std::hash< tz::trs > Struct Reference
    +
    +
    +
    + + + + diff --git a/structstd_1_1hash_3_01tz_1_1vector_3_01_t_00_01_s_01_4_01_4.html b/structstd_1_1hash_3_01tz_1_1vector_3_01_t_00_01_s_01_4_01_4.html new file mode 100644 index 0000000000..f59a4e56c9 --- /dev/null +++ b/structstd_1_1hash_3_01tz_1_1vector_3_01_t_00_01_s_01_4_01_4.html @@ -0,0 +1,106 @@ + + + + + + + +Topaz: std::hash< tz::vector< T, S > > Struct Template Reference + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    Topaz 4.2.0.1 +
    +
    C++20 Graphics Engine
    +
    +
    + + + + + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + + +
    +
    +
    std::hash< tz::vector< T, S > > Struct Template Reference
    +
    +
    +
    + + + + diff --git a/structstd_1_1tuple__element_3_01_i_00_01tz_1_1vector_3_01_t_00_01_s_01_4_01_4.html b/structstd_1_1tuple__element_3_01_i_00_01tz_1_1vector_3_01_t_00_01_s_01_4_01_4.html new file mode 100644 index 0000000000..d326d9efd4 --- /dev/null +++ b/structstd_1_1tuple__element_3_01_i_00_01tz_1_1vector_3_01_t_00_01_s_01_4_01_4.html @@ -0,0 +1,106 @@ + + + + + + + +Topaz: std::tuple_element< I, tz::vector< T, S > > Struct Template Reference + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    Topaz 4.2.0.1 +
    +
    C++20 Graphics Engine
    +
    +
    + + + + + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + + +
    +
    +
    std::tuple_element< I, tz::vector< T, S > > Struct Template Reference
    +
    +
    +
    + + + + diff --git a/structstd_1_1tuple__size_3_01tz_1_1vector_3_01_t_00_01_s_01_4_01_4.html b/structstd_1_1tuple__size_3_01tz_1_1vector_3_01_t_00_01_s_01_4_01_4.html new file mode 100644 index 0000000000..b72d539ac1 --- /dev/null +++ b/structstd_1_1tuple__size_3_01tz_1_1vector_3_01_t_00_01_s_01_4_01_4.html @@ -0,0 +1,112 @@ + + + + + + + +Topaz: std::tuple_size< tz::vector< T, S > > Struct Template Reference + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    Topaz 4.2.0.1 +
    +
    C++20 Graphics Engine
    +
    +
    + + + + + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + + +
    +
    +
    std::tuple_size< tz::vector< T, S > > Struct Template Reference
    +
    +
    +
    +Inheritance diagram for std::tuple_size< tz::vector< T, S > >:
    +
    +
    + +
    +
    + + + + diff --git a/structstd_1_1tuple__size_3_01tz_1_1vector_3_01_t_00_01_s_01_4_01_4.png b/structstd_1_1tuple__size_3_01tz_1_1vector_3_01_t_00_01_s_01_4_01_4.png new file mode 100644 index 0000000000000000000000000000000000000000..a234051a7670bf95afd2b672db22d035bc9c5580 GIT binary patch literal 893 zcmeAS@N?(olHy`uVBq!ia0vp^4}myrYL^q7>KEi~!LjiQ!~laGB$ zF&CJ=C`32w-6y#cevR7re-oEn=6vYd@!!v567S8>*X5@_y8PffAl2&njcd1{6~Z20-vRtd9NPudA3ERx4hLUD8KRTfTY$;tEtQO z9d>wDHf^bEO!fN<(s`=yFIum0-yInxuJPPgu^ zS~`_|Z`7==yX^bhRVrP#n@xQ3zVz8CUZ?*)K@7JIRZhmAo>Nx!WUloeYoSSh!pt{M zQDMKRqH=PhDW_*qj&6%$%ZC)k1M^?8GW1`2%o)Faxw7570>&DPN1r*vS}g){x-6bm8`Ku6^se>P@JwFqDbaq(XX_IMt-T4c zoKHT^iV(Zop)&W?@|H;@OWt#=KDo90B(MJuzB5vDU4Nh1{r_KG|2pn%^SCo(Ht>cs z#^ufkOjniL`9G3>Qc84lz$Cw?9L-arC*-U?cE+&sjIWxSb^4p1|BWhl?oHaHX!FZX z;fvk89gn_A%1iT2yL&08GH=h#duwA;a#CNK9{RNM`4ivPg=HJw99QYh3>2>NS6vzM z)hDW_bZKVH#f!3Dr_Sb`(*MzOVfwb!*A&9|1^-Jias@cgw)F(;xeGw1#KzQ29am2187PM*K!+Lb@>KD0F` zhG&^d?P_WD-m>;dUuN2=Oj&Z!gi|#W7`~oT(cFm~iZ+q|8JOAlpUT#ouK;Eg22WQ% Jmvv4FO#ojfo>Tw; literal 0 HcmV?d00001 diff --git a/structstring__locator.html b/structstring__locator.html new file mode 100644 index 0000000000..67c65a52c6 --- /dev/null +++ b/structstring__locator.html @@ -0,0 +1,102 @@ + + + + + + + +Topaz: string_locator Struct Reference + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    Topaz 4.2.0.1 +
    +
    C++20 Graphics Engine
    +
    +
    + + + + + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    +
    string_locator Struct Reference
    +
    +
    +
    + + + + diff --git a/structtexture__locator.html b/structtexture__locator.html new file mode 100644 index 0000000000..fff7cfbf42 --- /dev/null +++ b/structtexture__locator.html @@ -0,0 +1,102 @@ + + + + + + + +Topaz: texture_locator Struct Reference + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    Topaz 4.2.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..c0a8b4ff53 --- /dev/null +++ b/structtz_1_1core_1_1detail_1_1init__state.html @@ -0,0 +1,106 @@ + + + + + + + +Topaz: tz::core::detail::init_state Struct Reference + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    Topaz 4.2.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..05341f9b24 --- /dev/null +++ b/structtz_1_1dbgui_1_1_im_gui_tab_t_z.html @@ -0,0 +1,106 @@ + + + + + + + +Topaz: tz::dbgui::ImGuiTabTZ Struct Reference + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    Topaz 4.2.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..407a996997 --- /dev/null +++ b/structtz_1_1dbgui_1_1_input_delta.html @@ -0,0 +1,106 @@ + + + + + + + +Topaz: tz::dbgui::InputDelta Struct Reference + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    Topaz 4.2.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..d5ecfebd08 --- /dev/null +++ b/structtz_1_1dbgui_1_1_topaz_platform_data.html @@ -0,0 +1,106 @@ + + + + + + + +Topaz: tz::dbgui::TopazPlatformData Struct Reference + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    Topaz 4.2.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..0396e7f353 --- /dev/null +++ b/structtz_1_1dbgui_1_1_topaz_render_data.html @@ -0,0 +1,106 @@ + + + + + + + +Topaz: tz::dbgui::TopazRenderData Struct Reference + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    Topaz 4.2.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..f8496dec54 --- /dev/null +++ b/structtz_1_1dbgui_1_1_topaz_shader_render_data.html @@ -0,0 +1,106 @@ + + + + + + + +Topaz: tz::dbgui::TopazShaderRenderData Struct Reference + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    Topaz 4.2.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..9b86351406 --- /dev/null +++ b/structtz_1_1dbgui_1_1init__info.html @@ -0,0 +1,116 @@ + + + + + + + +Topaz: tz::dbgui::init_info Struct Reference + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    Topaz 4.2.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..4d82e62044 --- /dev/null +++ b/structtz_1_1detail_1_1callback__type.html @@ -0,0 +1,106 @@ + + + + + + + +Topaz: tz::detail::callback_type Struct Reference + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    Topaz 4.2.0.1 +
    +
    C++20 Graphics Engine
    +
    +
    + + + + + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + + +
    +
    +
    tz::detail::callback_type Struct Reference
    +
    +
    +
    + + + + diff --git a/structtz_1_1detail_1_1ds__add.html b/structtz_1_1detail_1_1ds__add.html new file mode 100644 index 0000000000..7ec8b001f0 --- /dev/null +++ b/structtz_1_1detail_1_1ds__add.html @@ -0,0 +1,106 @@ + + + + + + + +Topaz: tz::detail::ds_add Struct Reference + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    Topaz 4.2.0.1 +
    +
    C++20 Graphics Engine
    +
    +
    + + + + + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + + +
    +
    +
    tz::detail::ds_add Struct Reference
    +
    +
    +
    + + + + diff --git a/structtz_1_1detail_1_1ds__edit.html b/structtz_1_1detail_1_1ds__edit.html new file mode 100644 index 0000000000..84d2df5c25 --- /dev/null +++ b/structtz_1_1detail_1_1ds__edit.html @@ -0,0 +1,106 @@ + + + + + + + +Topaz: tz::detail::ds_edit Struct Reference + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    Topaz 4.2.0.1 +
    +
    C++20 Graphics Engine
    +
    +
    + + + + + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + + +
    +
    +
    tz::detail::ds_edit Struct Reference
    +
    +
    +
    + + + + diff --git a/structtz_1_1detail_1_1ds__remove.html b/structtz_1_1detail_1_1ds__remove.html new file mode 100644 index 0000000000..884ca7fdd1 --- /dev/null +++ b/structtz_1_1detail_1_1ds__remove.html @@ -0,0 +1,106 @@ + + + + + + + +Topaz: tz::detail::ds_remove Struct Reference + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    Topaz 4.2.0.1 +
    +
    C++20 Graphics Engine
    +
    +
    + + + + + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + + +
    +
    +
    tz::detail::ds_remove 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..1f443479e6 --- /dev/null +++ b/structtz_1_1detail_1_1format__string.html @@ -0,0 +1,113 @@ + + + + + + + +Topaz: tz::detail::format_string Struct Reference + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    Topaz 4.2.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..3523bda149 --- /dev/null +++ b/structtz_1_1detail_1_1job__handle__tag.html @@ -0,0 +1,106 @@ + + + + + + + +Topaz: tz::detail::job_handle_tag Struct Reference + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    Topaz 4.2.0.1 +
    +
    C++20 Graphics Engine
    +
    +
    + + + + + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + + +
    +
    +
    tz::detail::job_handle_tag Struct Reference
    +
    +
    +
    + + + + diff --git a/structtz_1_1detail_1_1no__lock.html b/structtz_1_1detail_1_1no__lock.html new file mode 100644 index 0000000000..9ea31c4efb --- /dev/null +++ b/structtz_1_1detail_1_1no__lock.html @@ -0,0 +1,106 @@ + + + + + + + +Topaz: tz::detail::no_lock Struct Reference + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    Topaz 4.2.0.1 +
    +
    C++20 Graphics Engine
    +
    +
    + + + + + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + + +
    +
    +
    tz::detail::no_lock 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..11c7340107 --- /dev/null +++ b/structtz_1_1detail_1_1source__loc.html @@ -0,0 +1,106 @@ + + + + + + + +Topaz: tz::detail::source_loc Struct Reference + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    Topaz 4.2.0.1 +
    +
    C++20 Graphics Engine
    +
    +
    + + + + + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + + +
    +
    +
    tz::detail::source_loc Struct Reference
    +
    +
    +
    + + + + diff --git a/structtz_1_1detail_1_1with__lock.html b/structtz_1_1detail_1_1with__lock.html new file mode 100644 index 0000000000..d598897a21 --- /dev/null +++ b/structtz_1_1detail_1_1with__lock.html @@ -0,0 +1,106 @@ + + + + + + + +Topaz: tz::detail::with_lock Struct Reference + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    Topaz 4.2.0.1 +
    +
    C++20 Graphics Engine
    +
    +
    + + + + + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + + +
    +
    +
    tz::detail::with_lock 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..f92ab86b65 --- /dev/null +++ b/structtz_1_1draw_1_1_draw_indexed_indirect_command.html @@ -0,0 +1,106 @@ + + + + + + + +Topaz: tz::draw::DrawIndexedIndirectCommand Struct Reference + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    Topaz 4.2.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..65bd4f51d2 --- /dev/null +++ b/structtz_1_1draw_1_1_draw_indirect_command.html @@ -0,0 +1,106 @@ + + + + + + + +Topaz: tz::draw::DrawIndirectCommand Struct Reference + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    Topaz 4.2.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..e885d3a621 --- /dev/null +++ b/structtz_1_1engine__info.html @@ -0,0 +1,157 @@ + + + + + + + +Topaz: tz::engine_info Struct Reference + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    Topaz 4.2.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..c180b0bf62 --- /dev/null +++ b/structtz_1_1execution__info.html @@ -0,0 +1,141 @@ + + + + + + + +Topaz: tz::execution_info Struct Reference + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    Topaz 4.2.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_1free__list__iterator.html b/structtz_1_1free__list__iterator.html new file mode 100644 index 0000000000..763a01de0f --- /dev/null +++ b/structtz_1_1free__list__iterator.html @@ -0,0 +1,106 @@ + + + + + + + +Topaz: tz::free_list_iterator< T, C, F > Struct Template Reference + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    Topaz 4.2.0.1 +
    +
    C++20 Graphics Engine
    +
    +
    + + + + + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + + +
    +
    +
    tz::free_list_iterator< T, C, F > Struct Template Reference
    +
    +
    +
    + + + + diff --git a/structtz_1_1game__info.html b/structtz_1_1game__info.html new file mode 100644 index 0000000000..9a5ed9a263 --- /dev/null +++ b/structtz_1_1game__info.html @@ -0,0 +1,155 @@ + + + + + + + +Topaz: tz::game_info Struct Reference + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    Topaz 4.2.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..229ea0ec1c --- /dev/null +++ b/structtz_1_1gl_1_1buffer__info.html @@ -0,0 +1,106 @@ + + + + + + + +Topaz: tz::gl::buffer_info Struct Reference + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    Topaz 4.2.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..4024d53caf --- /dev/null +++ b/structtz_1_1gl_1_1detail_1_1renderer__tag.html @@ -0,0 +1,106 @@ + + + + + + + +Topaz: tz::gl::detail::renderer_tag Struct Reference + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    Topaz 4.2.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..ca201575a2 --- /dev/null +++ b/structtz_1_1gl_1_1device__command__pool_1_1fingerprint__info__t.html @@ -0,0 +1,106 @@ + + + + + + + +Topaz: tz::gl::device_command_pool::fingerprint_info_t Struct Reference + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    Topaz 4.2.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..1dcb281f82 --- /dev/null +++ b/structtz_1_1gl_1_1edit__side__effects.html @@ -0,0 +1,106 @@ + + + + + + + +Topaz: tz::gl::edit_side_effects Struct Reference + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    Topaz 4.2.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..07033259b4 --- /dev/null +++ b/structtz_1_1gl_1_1event.html @@ -0,0 +1,106 @@ + + + + + + + +Topaz: tz::gl::event Struct Reference + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    Topaz 4.2.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..1b9465f6c0 --- /dev/null +++ b/structtz_1_1gl_1_1image__info.html @@ -0,0 +1,135 @@ + + + + + + + +Topaz: tz::gl::image_info Struct Reference + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    Topaz 4.2.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..56957465fe --- /dev/null +++ b/structtz_1_1gl_1_1image__output__info.html @@ -0,0 +1,106 @@ + + + + + + + +Topaz: tz::gl::image_output_info Struct Reference + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    Topaz 4.2.0.1 +
    +
    C++20 Graphics Engine
    +
    +
    + + + + + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + + +
    +
    +
    tz::gl::image_output_info Struct Reference
    +
    +
    +
    + + + + diff --git a/structtz_1_1gl_1_1impl__tz__gl__device.html b/structtz_1_1gl_1_1impl__tz__gl__device.html new file mode 100644 index 0000000000..80fd74fe05 --- /dev/null +++ b/structtz_1_1gl_1_1impl__tz__gl__device.html @@ -0,0 +1,106 @@ + + + + + + + +Topaz: tz::gl::impl_tz_gl_device Struct Reference + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    Topaz 4.2.0.1 +
    +
    C++20 Graphics Engine
    +
    +
    + + + + + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + + +
    +
    +
    tz::gl::impl_tz_gl_device Struct Reference
    +
    +
    +
    + + + + diff --git a/structtz_1_1gl_1_1impl__tz__gl__renderer.html b/structtz_1_1gl_1_1impl__tz__gl__renderer.html new file mode 100644 index 0000000000..dbbe2c17e5 --- /dev/null +++ b/structtz_1_1gl_1_1impl__tz__gl__renderer.html @@ -0,0 +1,106 @@ + + + + + + + +Topaz: tz::gl::impl_tz_gl_renderer Struct Reference + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    Topaz 4.2.0.1 +
    +
    C++20 Graphics Engine
    +
    +
    + + + + + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + + +
    +
    +
    tz::gl::impl_tz_gl_renderer 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..3483f754ce --- /dev/null +++ b/structtz_1_1gl_1_1ogl2_1_1_format_data.html @@ -0,0 +1,114 @@ + + + + + + + +Topaz: tz::gl::ogl2::FormatData Struct Reference + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    Topaz 4.2.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..47d1551b34 --- /dev/null +++ b/structtz_1_1gl_1_1ogl2_1_1buffer__info.html @@ -0,0 +1,131 @@ + + + + + + + +Topaz: tz::gl::ogl2::buffer_info Struct Reference + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    Topaz 4.2.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..9de059bb12 --- /dev/null +++ b/structtz_1_1gl_1_1ogl2_1_1draw__indexed__indirect__command.html @@ -0,0 +1,106 @@ + + + + + + + +Topaz: tz::gl::ogl2::draw_indexed_indirect_command Struct Reference + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    Topaz 4.2.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..bda868e85b --- /dev/null +++ b/structtz_1_1gl_1_1ogl2_1_1draw__indirect__command.html @@ -0,0 +1,106 @@ + + + + + + + +Topaz: tz::gl::ogl2::draw_indirect_command Struct Reference + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    Topaz 4.2.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..7babcfb616 --- /dev/null +++ b/structtz_1_1gl_1_1ogl2_1_1framebuffer__info.html @@ -0,0 +1,131 @@ + + + + + + + +Topaz: tz::gl::ogl2::framebuffer_info Struct Reference + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    Topaz 4.2.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..726320989f --- /dev/null +++ b/structtz_1_1gl_1_1ogl2_1_1image__info.html @@ -0,0 +1,131 @@ + + + + + + + +Topaz: tz::gl::ogl2::image_info Struct Reference + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    Topaz 4.2.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..a3ffddd4f2 --- /dev/null +++ b/structtz_1_1gl_1_1ogl2_1_1render__buffer__info.html @@ -0,0 +1,120 @@ + + + + + + + +Topaz: tz::gl::ogl2::render_buffer_info Struct Reference + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    Topaz 4.2.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..f6b5612f92 --- /dev/null +++ b/structtz_1_1gl_1_1ogl2_1_1sampler.html @@ -0,0 +1,139 @@ + + + + + + + +Topaz: tz::gl::ogl2::sampler Struct Reference + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    Topaz 4.2.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..e401c3a2ad --- /dev/null +++ b/structtz_1_1gl_1_1ogl2_1_1shader_1_1link__result.html @@ -0,0 +1,127 @@ + + + + + + + +Topaz: tz::gl::ogl2::shader::link_result Struct Reference + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    Topaz 4.2.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..d3650effcb --- /dev/null +++ b/structtz_1_1gl_1_1ogl2_1_1shader__info.html @@ -0,0 +1,123 @@ + + + + + + + +Topaz: tz::gl::ogl2::shader_info Struct Reference + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    Topaz 4.2.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..519af52e54 --- /dev/null +++ b/structtz_1_1gl_1_1ogl2_1_1shader__module_1_1compile__result.html @@ -0,0 +1,127 @@ + + + + + + + +Topaz: tz::gl::ogl2::shader_module::compile_result Struct Reference + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    Topaz 4.2.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..c9532288b3 --- /dev/null +++ b/structtz_1_1gl_1_1ogl2_1_1shader__module__info.html @@ -0,0 +1,127 @@ + + + + + + + +Topaz: tz::gl::ogl2::shader_module_info Struct Reference + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    Topaz 4.2.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..836b6e6876 --- /dev/null +++ b/structtz_1_1gl_1_1overloaded.html @@ -0,0 +1,112 @@ + + + + + + + +Topaz: tz::gl::overloaded< Ts > Struct Template Reference + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    Topaz 4.2.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 0000000000000000000000000000000000000000..2bc6700473dc2808577b90399ab7b3becae6e9cf GIT binary patch literal 569 zcmeAS@N?(olHy`uVBq!ia0vp^6M#5?gBeI3Ea0&NQqloFA+G=b{|7Q(y!l$%e`vXd zfo6fk^fNCWJa_;UH$5A+1SrQ@666=m0OW&#In(Sb3=E7%JY5_^Dj46+z1X+ffXC&y z{@kDc_4kQSZ4eg9pSm=6OVLqHBb9;;$rY_LZ+ac@D3T58P*DcqWi7vgPhH#_?NQWZ z&cVw*;Yt4)j@ZmM&R$7}N$ZVtuiW|fTeaHp z#bVXZo6nhEnf4~xY3b>2)pD_6y07@B^{7baRo}m_ctuBZ(wyhhc+S>qcx+PJ|4l`5 zqLYf`#zhlm-gII(plidBpc*DzWg})B<@;j)`6##3oT<|p9elVL9bAaSNA8On8Ao%@ zP+9BD87{A|4{T;$B= zl-^mx8mlo9we<4a$$2l0JhOhBvaV49hKT1cp2Ix7@$V*mvHO&*?g7 literal 0 HcmV?d00001 diff --git a/structtz_1_1gl_1_1render__state.html b/structtz_1_1gl_1_1render__state.html new file mode 100644 index 0000000000..c4e2f60c4a --- /dev/null +++ b/structtz_1_1gl_1_1render__state.html @@ -0,0 +1,135 @@ + + + + + + + +Topaz: tz::gl::render_state Struct Reference + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    Topaz 4.2.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..8a59d9a4e2 --- /dev/null +++ b/structtz_1_1gl_1_1render__state_1_1_compute.html @@ -0,0 +1,116 @@ + + + + + + + +Topaz: tz::gl::render_state::Compute Struct Reference + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    Topaz 4.2.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..bf62d7fb7c --- /dev/null +++ b/structtz_1_1gl_1_1render__state_1_1_graphics.html @@ -0,0 +1,140 @@ + + + + + + + +Topaz: tz::gl::render_state::Graphics Struct Reference + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    Topaz 4.2.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 must be nullhand. Defaults to 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 must be nullhand. Defaults to nullhand.
     
    +tz::vec4 clear_colour = tz::vec4::zero()
     Normalised RGBA floating point colour. Defaults to {0.0f, 0.0f, 0.0f, 0.0f}.
     
    +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. Defaults to 0.
     
    +bool wireframe_mode = false
     whether wireframe mode is enabled or not. Defaults to false.
     
    +graphics_topology topology = graphics_topology::triangles
     What kind of primitives are you drawing? Defaults to triangles.
     
    +graphics_culling culling = graphics_culling::none
     Do you want culling? Defaults to no culling.
     
    +
    + + + + diff --git a/structtz_1_1gl_1_1renderer__edit.html b/structtz_1_1gl_1_1renderer__edit.html new file mode 100644 index 0000000000..57a7fa771e --- /dev/null +++ b/structtz_1_1gl_1_1renderer__edit.html @@ -0,0 +1,132 @@ + + + + + + + +Topaz: tz::gl::renderer_edit Struct Reference + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    Topaz 4.2.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..f21f0482cc --- /dev/null +++ b/structtz_1_1gl_1_1renderer__edit_1_1buffer__resize.html @@ -0,0 +1,127 @@ + + + + + + + +Topaz: tz::gl::renderer_edit::buffer_resize Struct Reference + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    Topaz 4.2.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..4c422b71d7 --- /dev/null +++ b/structtz_1_1gl_1_1renderer__edit_1_1compute__config.html @@ -0,0 +1,123 @@ + + + + + + + +Topaz: tz::gl::renderer_edit::compute_config Struct Reference + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    Topaz 4.2.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..8fc859b943 --- /dev/null +++ b/structtz_1_1gl_1_1renderer__edit_1_1image__resize.html @@ -0,0 +1,127 @@ + + + + + + + +Topaz: tz::gl::renderer_edit::image_resize Struct Reference + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    Topaz 4.2.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..f5d44351d9 --- /dev/null +++ b/structtz_1_1gl_1_1renderer__edit_1_1mark__dirty.html @@ -0,0 +1,106 @@ + + + + + + + +Topaz: tz::gl::renderer_edit::mark_dirty Struct Reference + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    Topaz 4.2.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..3b915741f3 --- /dev/null +++ b/structtz_1_1gl_1_1renderer__edit_1_1render__config.html @@ -0,0 +1,135 @@ + + + + + + + +Topaz: tz::gl::renderer_edit::render_config Struct Reference + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    Topaz 4.2.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.
     
    +std::optional< tz::vec4 > clear_colour = std::nullopt
     Clear colour.
     
    +std::optional< std::size_t > tri_count = std::nullopt
     Number of triangles (primitives)
     
    +std::optional< tz::gl::graphics_culling > culling = std::nullopt
     Culling method to be used.
     
    +

    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..aa2a09e2fd --- /dev/null +++ b/structtz_1_1gl_1_1renderer__edit_1_1resource__reference.html @@ -0,0 +1,106 @@ + + + + + + + +Topaz: tz::gl::renderer_edit::resource_reference Struct Reference + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    Topaz 4.2.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..ef06598287 --- /dev/null +++ b/structtz_1_1gl_1_1renderer__edit_1_1resource__write.html @@ -0,0 +1,106 @@ + + + + + + + +Topaz: tz::gl::renderer_edit::resource_write Struct Reference + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    Topaz 4.2.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..5e99ee135b --- /dev/null +++ b/structtz_1_1gl_1_1renderer__edit_1_1scissor.html @@ -0,0 +1,106 @@ + + + + + + + +Topaz: tz::gl::renderer_edit::scissor Struct Reference + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    Topaz 4.2.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..cb0c287c4a --- /dev/null +++ b/structtz_1_1gl_1_1renderer__ogl__base.html @@ -0,0 +1,115 @@ + + + + + + + +Topaz: tz::gl::renderer_ogl_base Struct Reference + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    Topaz 4.2.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 0000000000000000000000000000000000000000..a83ff7f5da1f3910215c6f616b674e1e6795c844 GIT binary patch literal 660 zcmeAS@N?(olHy`uVBq!ia0vp^(}6gEgBeIFuMu|#QqloFA+G=b{|7Q(y!l$%e`vXd zfo6fk^fNCWJa_;UH$5A+1SrQ@666=m0OW&#In(Sb3=B;2o-U3d6^w7^zFzlOfv2V2 zan-ZG^DAaQYuc$|XnRr5y?aVvwc!lh*E>h%>9 z*;a46Io;;RkNfSV+x)s$r%va85_fG)NbZ#{n;)mgjcZ>v}S07I{vJXD)6PI8?#Z zu>1>C1EZ + + + + + + +Topaz: tz::gl::renderer_output_manager::render_target_t Struct Reference + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    Topaz 4.2.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..11fa681dae --- /dev/null +++ b/structtz_1_1gl_1_1renderer__vulkan__base.html @@ -0,0 +1,120 @@ + + + + + + + +Topaz: tz::gl::renderer_vulkan_base Struct Reference + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    Topaz 4.2.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 0000000000000000000000000000000000000000..6cc6693b85ceb5869d04493330f4caf7789eeabc GIT binary patch literal 2658 zcmcguc{r4N8y-uPgY;DzL}kqqVVEOpvW;O#B-`-iwHp#ccA+|jFoVI^&LL!P1}TlD z6B(bfg=0IMELmp8r7>iV;d}Mvy3YCU^w0NR*K_~w_j&(#uIu^T&;7g)ZBgbz0^$M? z2t){BVPXfK;}8g!?_nO0(eKus1rG^ZD|^$uy*-dF(OB5@*A+irRJ;Wx^exTK&VqTZ zch}3nZ%4xHP}d;f`_~7~P5c1n=m?X`_IJ4Gg_AgDjqo7?vFgOy-W%PAM^DqA;kRFz z?^J!xSHEH5FVb6E?w5Z*s~qZi+7>11nc6%LsCWA!4KrEoyNwc#5vzXj4fABmUO!Gh zUKDMqT^}M9Ak`*>&Y=Q%eL{;{S@e&-yU&FM99>eo)>jOLZl*q~5B1UR$}LjDXQ456 z67$R9J=)cczLW2ERo_78>QI^3<4W?qJ&{Y!t-y9jPWQNP3P%^Gy(< z?0YpQdITI zX){ygCV2Vd!KnU~x?zdxttzsyL1-FGxzZ z-tGCd8aAY2Ox`=LaYPcY+* zGiSIMWAVv>`Q-$=^7@dXZM_(YS1Nd_MxI398vQk9n&#!Ot3O$lWh5D{#vaVG&M1m$ zcwBYVj}+P8?CX;I3OiPN%`X`KQksU^kRioXz~Nmc#0lPwM)Iu)H!|!lY>KnQ511-$ z^ejfz_T+$FcP3%mri-Qj_-p{M?4)e28e-nq^yCNUAs8hQ-sY`^I;x_Zy%C0N1E=i% zmzw+|Hv$))`UmDjoGzBDE?vv4rKn?5C$PgKRSbK|sZ%ZVw8_smt5k^gX-For6un^} zX7r?e+Y>9@d4;r?%vHA(+mwP9yk++3x|H0V81G`QL$~n4|Jr#b&Slk0g#=Q;SVo8% zAC|Gi1r1-p-T%-4q`$57{S~L*$!97-=!-6ub;9EjxC=UYvg5e#AhGo##x2P7eGq`~ z9Mn>jAwtAiKK=1~<4Uo*pMIE4-i3@iC?_1Z1cqUhEc$GyD`P3(i}oESdAyefJa^^? z^GU+On)jygXYsaA6D-BFOJC5!98Ka`{cR6PhciO}vuI}#iEnQ#6R@w1FWpF7n;%e6 zPHDSDzDe4C%X`n+oY>9^W!APEEM(@<76;^36|$`RSk7{dCqldjLL1|#hVC-TiG)&Z zh69P?d0uj7c1ea*n&>x|14M@Q3VbOMPqCh=?dC*}PE8)|Svl=Y`YM0ksflYrIJO-t zt{kq)cy5dtJ2lb*Ylp2Y*y6eD*&}D536im56|FJFHC0Cv0;1ekYNB~)l>uQvoS=Mu zpKuN3gkY9+2?ds3eXOIZK(HfcKZ<~J$rpc-UDno@^|KH{Zr(|Kq^&Z3JkYi=g!&3@ ziPQStTiCy{p)G-P$*miQK`4VHi4gVGPeuu%wbH2%D)aE=fceSY(qxi9J7D3Gk zB^}HZI>bm*dey5*{wkZB75=Vjs8FO0Zln`pNzeGI{7cuzKTU)?P)<=oSkGDAu)*r? zC)-c1szHr@-dDamr*`{Ly*2(UFq4}o{w1b~LK+lUo zIm#p`>WC#=*bjZG@!@})Acine7DE~0Ika`?Nz4tB!fz$MbGXRhEZKnD8VHh{0$vuh zj(<$b)=nB9j#xeh0)orK=%ALH^tS<+fybZ<(1Ny0YMERo*f9&HB)@#Ld+y#Nf+kgRC(K(n6jBkEt+G|@_6yi;#wbclYKE*^6+%yY z>iJ=v+?r@V8XCf7USoSBRQiJ-9u+{<=Ni4c>gEQdlUz=2q;|H;QGc?YX?E zdmos%F`tCBkF~(Riw@`R8uI#2Goh%zvDKQ!cFzMuTV?lE97fT+TuN$YKP^koCd+$g z+p1f}GZzjyW!oaP#{yyn1N5`ke5g?d@$xP_PyBZt*SL7pcAg}~aTVy0H$~~V1#87t z6VSz{YB~N>6zFuy@CzS)_|Fs{q45cc;aZF+CRPQG(0>}Wwq+*&$cNF})c+D5p8qi} zxTXi9#7Q}$oG{E*x~osBDu>i9$G#=^a{pM3r5m1e=@*^dE04dz=i!Xv^FZ#04N1fp zdKDK&l)}Nv?#o5%nVCxD(2i)IpJ)Momyo087g*sy$Cst%d)e;U^Ogf6W)Ukb#!$*7mb;?M&$$)JRp8Eku6=#+?kZJ;dZQT3;O|( zGIwO?nip=U+S)%UD~J$CwoFki+Qou`_3Av~ + + + + + + +Topaz: tz::gl::schedule Struct Reference + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    Topaz 4.2.0.1 +
    +
    C++20 Graphics Engine
    +
    +
    + + + + + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + + +
    +
    + +
    tz::gl::schedule Struct Reference
    +
    +
    + +

    Represents a render graph. + More...

    + +

    #include <schedule.hpp>

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

    +Public Member Functions

    +std::span< const eid_t > get_dependencies (eid_t evt) const
     Retrieve all the events that depend on the provided event.
     
    template<typename T0 , typename... T>
    void add_dependencies (T0 evth, T... deps)
     Add a number of existing event dependencies to an existing event.
     
    template<typename H >
    unsigned int chronological_rank (H handle) const
     Retrieve the chronological rank of a renderer.
     
    +unsigned int max_chronological_rank () const
     Retrieve the maximum chronological rank within the render graph.
     
    + + + + + + + +

    +Data Fields

    +std::vector< eventevents = {}
     List of all events. Do not touch this directly.
     
    +timeline_t timeline = {}
     Represents the event indices which will take place per frame, in chronological order.
     
    +

    Detailed Description

    +

    Represents a render graph.

    +

    Member Function Documentation

    + +

    ◆ add_dependencies()

    + +
    +
    +
    +template<typename T0 , typename... T>
    + + + + + +
    + + + + + + + + + + + +
    void tz::gl::schedule::add_dependencies (T0 evth,
    T... deps )
    +
    +inline
    +
    + +

    Add a number of existing event dependencies to an existing event.

    +

    Each dependency will not run GPU-side until the event completes its GPU work.

    + +
    +
    + +

    ◆ chronological_rank()

    + +
    +
    +
    +template<typename H >
    + + + + + +
    + + + + + + + +
    unsigned int tz::gl::schedule::chronological_rank (H handle) const
    +
    +inline
    +
    + +

    Retrieve the chronological rank of a renderer.

    +

    The set of renderers that run first at the beginning of the frame will have a chronological rank of 0. Renderers that depend on any of those first renderers have a rank of 1, and so on...

    + +
    +
    +
    + + + + diff --git a/structtz_1_1gl_1_1scissor__region.html b/structtz_1_1gl_1_1scissor__region.html new file mode 100644 index 0000000000..6d63b7af02 --- /dev/null +++ b/structtz_1_1gl_1_1scissor__region.html @@ -0,0 +1,106 @@ + + + + + + + +Topaz: tz::gl::scissor_region Struct Reference + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    Topaz 4.2.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..dc27d3702e --- /dev/null +++ b/structtz_1_1gl_1_1shader__meta.html @@ -0,0 +1,106 @@ + + + + + + + +Topaz: tz::gl::shader_meta Struct Reference + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    Topaz 4.2.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..1c77005eaf --- /dev/null +++ b/structtz_1_1gl_1_1timeline__t.html @@ -0,0 +1,112 @@ + + + + + + + +Topaz: tz::gl::timeline_t Struct Reference + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    Topaz 4.2.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 0000000000000000000000000000000000000000..e6007236471bb65bf8137a4d25f3b91d28d03448 GIT binary patch literal 572 zcmeAS@N?(olHy`uVBq!ia0vp^l|UT8!3-q1+O=ANlyrbki0l9V|AEXGZ@!lHA6jl< zpjjX>{mhF84;}!;P0xlc0m^Zf1o;Is0Qq2G&NTZ90|Vo6PZ!6K3dXl{?@l|cz|qn^ z+vxrOBeUgs6MW3hZo9SltIYCVjhZf%drmG(x)oNfk~KN8YSr2=hEJ|o#-DwkeYbVx zjy>&rW>G$<~>-p8+ zw6_`@owxVoMCTtyLI1iZ2dObBuFIYNJy%fiw(0aKZ>F@{TB=-9lbfjPzwXd0y><1u z=fCpGyayVvQ+1h>mDO{jJH5qzH}7RxtD8@saCO^W)~VZ<#@+tt@$ct#P#Q@7+&7&4YQvNeQB0U1lN zGSXF)F1ZR!db7Y$?PS<5lcHMF*`-x0&a8;$e|%SUa>~NVPh!>l^>6D)&;0#tKhOEQ zInm44?Y((9=b6JK$MkBkOS2}VMk{p2&3sYzD`nf_#rCd>-EIrF?w>UGulc7cqlq&9 z-74IBTVf) + + + + + + +Topaz: tz::gl::viewport_region Struct Reference + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    Topaz 4.2.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_colour_blend_state.html b/structtz_1_1gl_1_1vk2_1_1_colour_blend_state.html new file mode 100644 index 0000000000..5ff5186bce --- /dev/null +++ b/structtz_1_1gl_1_1vk2_1_1_colour_blend_state.html @@ -0,0 +1,113 @@ + + + + + + + +Topaz: tz::gl::vk2::ColourBlendState Struct Reference + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    Topaz 4.2.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..fdcf181945 --- /dev/null +++ b/structtz_1_1gl_1_1vk2_1_1_command_buffer_data.html @@ -0,0 +1,106 @@ + + + + + + + +Topaz: tz::gl::vk2::CommandBufferData Struct Reference + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    Topaz 4.2.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..2d3b3b4dd9 --- /dev/null +++ b/structtz_1_1gl_1_1vk2_1_1_command_pool_1_1_allocation.html @@ -0,0 +1,123 @@ + + + + + + + +Topaz: tz::gl::vk2::CommandPool::Allocation Struct Reference + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    Topaz 4.2.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..a35cef594d --- /dev/null +++ b/structtz_1_1gl_1_1vk2_1_1_command_pool_1_1_allocation_result.html @@ -0,0 +1,143 @@ + + + + + + + +Topaz: tz::gl::vk2::CommandPool::AllocationResult Struct Reference + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    Topaz 4.2.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..b77367de23 --- /dev/null +++ b/structtz_1_1gl_1_1vk2_1_1_command_pool_info.html @@ -0,0 +1,127 @@ + + + + + + + +Topaz: tz::gl::vk2::CommandPoolInfo Struct Reference + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    Topaz 4.2.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..6db803bbcc --- /dev/null +++ b/structtz_1_1gl_1_1vk2_1_1_compute_pipeline_info.html @@ -0,0 +1,106 @@ + + + + + + + +Topaz: tz::gl::vk2::ComputePipelineInfo Struct Reference + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    Topaz 4.2.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..bc9069b83a --- /dev/null +++ b/structtz_1_1gl_1_1vk2_1_1_depth_stencil_state.html @@ -0,0 +1,155 @@ + + + + + + + +Topaz: tz::gl::vk2::DepthStencilState Struct Reference + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    Topaz 4.2.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..1588c51afa --- /dev/null +++ b/structtz_1_1gl_1_1vk2_1_1_descriptor_data.html @@ -0,0 +1,106 @@ + + + + + + + +Topaz: tz::gl::vk2::DescriptorData Struct Reference + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    Topaz 4.2.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..fc146c5261 --- /dev/null +++ b/structtz_1_1gl_1_1vk2_1_1_descriptor_layout_info.html @@ -0,0 +1,150 @@ + + + + + + + +Topaz: tz::gl::vk2::DescriptorLayoutInfo Struct Reference + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    Topaz 4.2.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..4041dbab7e --- /dev/null +++ b/structtz_1_1gl_1_1vk2_1_1_descriptor_layout_info_1_1_binding_info.html @@ -0,0 +1,124 @@ + + + + + + + +Topaz: tz::gl::vk2::DescriptorLayoutInfo::BindingInfo Struct Reference + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    Topaz 4.2.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..9d61c2fcf8 --- /dev/null +++ b/structtz_1_1gl_1_1vk2_1_1_descriptor_pool_1_1_allocation.html @@ -0,0 +1,123 @@ + + + + + + + +Topaz: tz::gl::vk2::DescriptorPool::Allocation Struct Reference + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    Topaz 4.2.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..dd557171c1 --- /dev/null +++ b/structtz_1_1gl_1_1vk2_1_1_descriptor_pool_1_1_allocation_result.html @@ -0,0 +1,194 @@ + + + + + + + +Topaz: tz::gl::vk2::DescriptorPool::AllocationResult Struct Reference + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    Topaz 4.2.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..5fbc8f108e --- /dev/null +++ b/structtz_1_1gl_1_1vk2_1_1_descriptor_pool_info.html @@ -0,0 +1,207 @@ + + + + + + + +Topaz: tz::gl::vk2::DescriptorPoolInfo Struct Reference + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    Topaz 4.2.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 DescriptorLayout & descriptor_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..1fc2e3b72e --- /dev/null +++ b/structtz_1_1gl_1_1vk2_1_1_descriptor_pool_info_1_1_pool_limits.html @@ -0,0 +1,131 @@ + + + + + + + +Topaz: tz::gl::vk2::DescriptorPoolInfo::PoolLimits Struct Reference + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    Topaz 4.2.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..e0546e5d8d --- /dev/null +++ b/structtz_1_1gl_1_1vk2_1_1_descriptor_set_1_1_write.html @@ -0,0 +1,145 @@ + + + + + + + +Topaz: tz::gl::vk2::DescriptorSet::Write Struct Reference + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    Topaz 4.2.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..2345709cfa --- /dev/null +++ b/structtz_1_1gl_1_1vk2_1_1_descriptor_set_1_1_write_1_1_buffer_write_info.html @@ -0,0 +1,131 @@ + + + + + + + +Topaz: tz::gl::vk2::DescriptorSet::Write::BufferWriteInfo Struct Reference + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    Topaz 4.2.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..0b4da598ca --- /dev/null +++ b/structtz_1_1gl_1_1vk2_1_1_descriptor_set_1_1_write_1_1_image_write_info.html @@ -0,0 +1,127 @@ + + + + + + + +Topaz: tz::gl::vk2::DescriptorSet::Write::ImageWriteInfo Struct Reference + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    Topaz 4.2.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..d93f0a8573 --- /dev/null +++ b/structtz_1_1gl_1_1vk2_1_1_dynamic_rendering_run_info.html @@ -0,0 +1,106 @@ + + + + + + + +Topaz: tz::gl::vk2::DynamicRenderingRunInfo Struct Reference + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    Topaz 4.2.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..5f9b7c2807 --- /dev/null +++ b/structtz_1_1gl_1_1vk2_1_1_dynamic_state.html @@ -0,0 +1,113 @@ + + + + + + + +Topaz: tz::gl::vk2::DynamicState Struct Reference + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    Topaz 4.2.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..2cdf008356 --- /dev/null +++ b/structtz_1_1gl_1_1vk2_1_1_fence_info.html @@ -0,0 +1,127 @@ + + + + + + + +Topaz: tz::gl::vk2::FenceInfo Struct Reference + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    Topaz 4.2.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_graphics_pipeline_info.html b/structtz_1_1gl_1_1vk2_1_1_graphics_pipeline_info.html new file mode 100644 index 0000000000..82d82daf29 --- /dev/null +++ b/structtz_1_1gl_1_1vk2_1_1_graphics_pipeline_info.html @@ -0,0 +1,133 @@ + + + + + + + +Topaz: tz::gl::vk2::GraphicsPipelineInfo Struct Reference + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    Topaz 4.2.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..4e1e7e277f --- /dev/null +++ b/structtz_1_1gl_1_1vk2_1_1_graphics_pipeline_info_1_1_dynamic_rendering_state.html @@ -0,0 +1,106 @@ + + + + + + + +Topaz: tz::gl::vk2::GraphicsPipelineInfo::DynamicRenderingState Struct Reference + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    Topaz 4.2.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..042066e59c --- /dev/null +++ b/structtz_1_1gl_1_1vk2_1_1_image_view_info.html @@ -0,0 +1,106 @@ + + + + + + + +Topaz: tz::gl::vk2::ImageViewInfo Struct Reference + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    Topaz 4.2.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..63580e69a4 --- /dev/null +++ b/structtz_1_1gl_1_1vk2_1_1_internal_device_info.html @@ -0,0 +1,106 @@ + + + + + + + +Topaz: tz::gl::vk2::InternalDeviceInfo Struct Reference + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    Topaz 4.2.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..cc9dc9e4f3 --- /dev/null +++ b/structtz_1_1gl_1_1vk2_1_1_logical_device_info.html @@ -0,0 +1,164 @@ + + + + + + + +Topaz: tz::gl::vk2::LogicalDeviceInfo Struct Reference + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    Topaz 4.2.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..044d018349 --- /dev/null +++ b/structtz_1_1gl_1_1vk2_1_1_multisample_state.html @@ -0,0 +1,113 @@ + + + + + + + +Topaz: tz::gl::vk2::MultisampleState Struct Reference + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    Topaz 4.2.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..3f8552879d --- /dev/null +++ b/structtz_1_1gl_1_1vk2_1_1_physical_device_info.html @@ -0,0 +1,106 @@ + + + + + + + +Topaz: tz::gl::vk2::PhysicalDeviceInfo Struct Reference + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    Topaz 4.2.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..3c803a6b53 --- /dev/null +++ b/structtz_1_1gl_1_1vk2_1_1_physical_device_surface_capability_info.html @@ -0,0 +1,114 @@ + + + + + + + +Topaz: tz::gl::vk2::PhysicalDeviceSurfaceCapabilityInfo Struct Reference + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    Topaz 4.2.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..ec07a30690 --- /dev/null +++ b/structtz_1_1gl_1_1vk2_1_1_physical_device_surface_capability_info_1_1_swapchain_extent.html @@ -0,0 +1,106 @@ + + + + + + + +Topaz: tz::gl::vk2::PhysicalDeviceSurfaceCapabilityInfo::SwapchainExtent Struct Reference + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    Topaz 4.2.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..d8bc98e024 --- /dev/null +++ b/structtz_1_1gl_1_1vk2_1_1_pipeline_data.html @@ -0,0 +1,106 @@ + + + + + + + +Topaz: tz::gl::vk2::PipelineData Struct Reference + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    Topaz 4.2.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..bf5c4e22f7 --- /dev/null +++ b/structtz_1_1gl_1_1vk2_1_1_pipeline_layout_info.html @@ -0,0 +1,127 @@ + + + + + + + +Topaz: tz::gl::vk2::PipelineLayoutInfo Struct Reference + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    Topaz 4.2.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..16e224eef8 --- /dev/null +++ b/structtz_1_1gl_1_1vk2_1_1_pipeline_state.html @@ -0,0 +1,106 @@ + + + + + + + +Topaz: tz::gl::vk2::PipelineState Struct Reference + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    Topaz 4.2.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..d1458d0ee0 --- /dev/null +++ b/structtz_1_1gl_1_1vk2_1_1_queue_family_info.html @@ -0,0 +1,106 @@ + + + + + + + +Topaz: tz::gl::vk2::QueueFamilyInfo Struct Reference + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    Topaz 4.2.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..6a48adb29f --- /dev/null +++ b/structtz_1_1gl_1_1vk2_1_1_queue_request.html @@ -0,0 +1,120 @@ + + + + + + + +Topaz: tz::gl::vk2::QueueRequest Struct Reference + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    Topaz 4.2.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..d140f60dd8 --- /dev/null +++ b/structtz_1_1gl_1_1vk2_1_1_rasteriser_state.html @@ -0,0 +1,148 @@ + + + + + + + +Topaz: tz::gl::vk2::RasteriserState Struct Reference + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    Topaz 4.2.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_sampler_info.html b/structtz_1_1gl_1_1vk2_1_1_sampler_info.html new file mode 100644 index 0000000000..6cd983116a --- /dev/null +++ b/structtz_1_1gl_1_1vk2_1_1_sampler_info.html @@ -0,0 +1,143 @@ + + + + + + + +Topaz: tz::gl::vk2::SamplerInfo Struct Reference + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    Topaz 4.2.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..ca4edb7379 --- /dev/null +++ b/structtz_1_1gl_1_1vk2_1_1_shader_info.html @@ -0,0 +1,127 @@ + + + + + + + +Topaz: tz::gl::vk2::ShaderInfo Struct Reference + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    Topaz 4.2.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..222df12862 --- /dev/null +++ b/structtz_1_1gl_1_1vk2_1_1_shader_module_info.html @@ -0,0 +1,131 @@ + + + + + + + +Topaz: tz::gl::vk2::ShaderModuleInfo Struct Reference + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    Topaz 4.2.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..9e464f17a1 --- /dev/null +++ b/structtz_1_1gl_1_1vk2_1_1_shader_pipeline_data.html @@ -0,0 +1,106 @@ + + + + + + + +Topaz: tz::gl::vk2::ShaderPipelineData Struct Reference + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    Topaz 4.2.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..6eee1b3a83 --- /dev/null +++ b/structtz_1_1gl_1_1vk2_1_1_swapchain_1_1_image_acquisition.html @@ -0,0 +1,132 @@ + + + + + + + +Topaz: tz::gl::vk2::Swapchain::ImageAcquisition Struct Reference + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    Topaz 4.2.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..0a1702bc3e --- /dev/null +++ b/structtz_1_1gl_1_1vk2_1_1_swapchain_1_1_image_acquisition_result.html @@ -0,0 +1,106 @@ + + + + + + + +Topaz: tz::gl::vk2::Swapchain::ImageAcquisitionResult Struct Reference + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    Topaz 4.2.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..d64accae66 --- /dev/null +++ b/structtz_1_1gl_1_1vk2_1_1_swapchain_image_info.html @@ -0,0 +1,127 @@ + + + + + + + +Topaz: tz::gl::vk2::SwapchainImageInfo Struct Reference + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    Topaz 4.2.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..64eeab440b --- /dev/null +++ b/structtz_1_1gl_1_1vk2_1_1_swapchain_info.html @@ -0,0 +1,139 @@ + + + + + + + +Topaz: tz::gl::vk2::SwapchainInfo Struct Reference + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    Topaz 4.2.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..9fee033ce2 --- /dev/null +++ b/structtz_1_1gl_1_1vk2_1_1_vertex_input_state.html @@ -0,0 +1,126 @@ + + + + + + + +Topaz: tz::gl::vk2::VertexInputState Struct Reference + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    Topaz 4.2.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..0eedc86eca --- /dev/null +++ b/structtz_1_1gl_1_1vk2_1_1_vertex_input_state_1_1_attribute.html @@ -0,0 +1,135 @@ + + + + + + + +Topaz: tz::gl::vk2::VertexInputState::Attribute Struct Reference + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    Topaz 4.2.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..6366d7a4f9 --- /dev/null +++ b/structtz_1_1gl_1_1vk2_1_1_vertex_input_state_1_1_binding.html @@ -0,0 +1,131 @@ + + + + + + + +Topaz: tz::gl::vk2::VertexInputState::Binding Struct Reference + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    Topaz 4.2.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..9854aa59da --- /dev/null +++ b/structtz_1_1gl_1_1vk2_1_1_viewport_state.html @@ -0,0 +1,114 @@ + + + + + + + +Topaz: tz::gl::vk2::ViewportState Struct Reference + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    Topaz 4.2.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..bea887d408 --- /dev/null +++ b/structtz_1_1gl_1_1vk2_1_1_vulkan_command.html @@ -0,0 +1,179 @@ + + + + + + + +Topaz: tz::gl::vk2::VulkanCommand Struct Reference + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    Topaz 4.2.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  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  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, 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..a0ca199650 --- /dev/null +++ b/structtz_1_1gl_1_1vk2_1_1_vulkan_command_1_1_begin_dynamic_rendering.html @@ -0,0 +1,106 @@ + + + + + + + +Topaz: tz::gl::vk2::VulkanCommand::BeginDynamicRendering Struct Reference + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    Topaz 4.2.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_bind_buffer.html b/structtz_1_1gl_1_1vk2_1_1_vulkan_command_1_1_bind_buffer.html new file mode 100644 index 0000000000..ed9c4b7166 --- /dev/null +++ b/structtz_1_1gl_1_1vk2_1_1_vulkan_command_1_1_bind_buffer.html @@ -0,0 +1,123 @@ + + + + + + + +Topaz: tz::gl::vk2::VulkanCommand::BindBuffer Struct Reference + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    Topaz 4.2.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..32e0aee449 --- /dev/null +++ b/structtz_1_1gl_1_1vk2_1_1_vulkan_command_1_1_bind_descriptor_sets.html @@ -0,0 +1,135 @@ + + + + + + + +Topaz: tz::gl::vk2::VulkanCommand::BindDescriptorSets Struct Reference + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    Topaz 4.2.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..57e6c97e77 --- /dev/null +++ b/structtz_1_1gl_1_1vk2_1_1_vulkan_command_1_1_bind_index_buffer.html @@ -0,0 +1,114 @@ + + + + + + + +Topaz: tz::gl::vk2::VulkanCommand::BindIndexBuffer Struct Reference + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    Topaz 4.2.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..44fed04787 --- /dev/null +++ b/structtz_1_1gl_1_1vk2_1_1_vulkan_command_1_1_bind_pipeline.html @@ -0,0 +1,124 @@ + + + + + + + +Topaz: tz::gl::vk2::VulkanCommand::BindPipeline Struct Reference + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    Topaz 4.2.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..e564cf9bcc --- /dev/null +++ b/structtz_1_1gl_1_1vk2_1_1_vulkan_command_1_1_buffer_copy_buffer.html @@ -0,0 +1,136 @@ + + + + + + + +Topaz: tz::gl::vk2::VulkanCommand::BufferCopyBuffer Struct Reference + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    Topaz 4.2.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..cfe37a2ce7 --- /dev/null +++ b/structtz_1_1gl_1_1vk2_1_1_vulkan_command_1_1_buffer_copy_image.html @@ -0,0 +1,132 @@ + + + + + + + +Topaz: tz::gl::vk2::VulkanCommand::BufferCopyImage Struct Reference + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    Topaz 4.2.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..d3a125e175 --- /dev/null +++ b/structtz_1_1gl_1_1vk2_1_1_vulkan_command_1_1_debug_begin_label.html @@ -0,0 +1,106 @@ + + + + + + + +Topaz: tz::gl::vk2::VulkanCommand::DebugBeginLabel Struct Reference + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    Topaz 4.2.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..e073e0db1b --- /dev/null +++ b/structtz_1_1gl_1_1vk2_1_1_vulkan_command_1_1_debug_end_label.html @@ -0,0 +1,106 @@ + + + + + + + +Topaz: tz::gl::vk2::VulkanCommand::DebugEndLabel Struct Reference + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    Topaz 4.2.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..d56e857ba0 --- /dev/null +++ b/structtz_1_1gl_1_1vk2_1_1_vulkan_command_1_1_dispatch.html @@ -0,0 +1,106 @@ + + + + + + + +Topaz: tz::gl::vk2::VulkanCommand::Dispatch Struct Reference + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    Topaz 4.2.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..50f57b6e62 --- /dev/null +++ b/structtz_1_1gl_1_1vk2_1_1_vulkan_command_1_1_draw.html @@ -0,0 +1,136 @@ + + + + + + + +Topaz: tz::gl::vk2::VulkanCommand::Draw Struct Reference + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    Topaz 4.2.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..4c1ce066e6 --- /dev/null +++ b/structtz_1_1gl_1_1vk2_1_1_vulkan_command_1_1_draw_indexed.html @@ -0,0 +1,114 @@ + + + + + + + +Topaz: tz::gl::vk2::VulkanCommand::DrawIndexed Struct Reference + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    Topaz 4.2.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..0a3f5b3ae6 --- /dev/null +++ b/structtz_1_1gl_1_1vk2_1_1_vulkan_command_1_1_draw_indexed_indirect.html @@ -0,0 +1,114 @@ + + + + + + + +Topaz: tz::gl::vk2::VulkanCommand::DrawIndexedIndirect Struct Reference + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    Topaz 4.2.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..6deae20295 --- /dev/null +++ b/structtz_1_1gl_1_1vk2_1_1_vulkan_command_1_1_draw_indexed_indirect_count.html @@ -0,0 +1,106 @@ + + + + + + + +Topaz: tz::gl::vk2::VulkanCommand::DrawIndexedIndirectCount Struct Reference + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    Topaz 4.2.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..1d35f09c7d --- /dev/null +++ b/structtz_1_1gl_1_1vk2_1_1_vulkan_command_1_1_draw_indirect.html @@ -0,0 +1,114 @@ + + + + + + + +Topaz: tz::gl::vk2::VulkanCommand::DrawIndirect Struct Reference + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    Topaz 4.2.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..c71e80d0ab --- /dev/null +++ b/structtz_1_1gl_1_1vk2_1_1_vulkan_command_1_1_draw_indirect_count.html @@ -0,0 +1,106 @@ + + + + + + + +Topaz: tz::gl::vk2::VulkanCommand::DrawIndirectCount Struct Reference + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    Topaz 4.2.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..72802cc7c2 --- /dev/null +++ b/structtz_1_1gl_1_1vk2_1_1_vulkan_command_1_1_end_dynamic_rendering.html @@ -0,0 +1,106 @@ + + + + + + + +Topaz: tz::gl::vk2::VulkanCommand::EndDynamicRendering Struct Reference + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    Topaz 4.2.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_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..7582f9623b --- /dev/null +++ b/structtz_1_1gl_1_1vk2_1_1_vulkan_command_1_1_image_copy_image.html @@ -0,0 +1,132 @@ + + + + + + + +Topaz: tz::gl::vk2::VulkanCommand::ImageCopyImage Struct Reference + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    Topaz 4.2.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..9fa51df484 --- /dev/null +++ b/structtz_1_1gl_1_1vk2_1_1_vulkan_command_1_1_set_scissor_dynamic.html @@ -0,0 +1,106 @@ + + + + + + + +Topaz: tz::gl::vk2::VulkanCommand::SetScissorDynamic Struct Reference + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    Topaz 4.2.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..7a5c62a6b6 --- /dev/null +++ b/structtz_1_1gl_1_1vk2_1_1_vulkan_command_1_1_transition_image_layout.html @@ -0,0 +1,156 @@ + + + + + + + +Topaz: tz::gl::vk2::VulkanCommand::TransitionImageLayout Struct Reference + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    Topaz 4.2.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..58cbab0d07 --- /dev/null +++ b/structtz_1_1gl_1_1vk2_1_1_vulkan_instance_info.html @@ -0,0 +1,135 @@ + + + + + + + +Topaz: tz::gl::vk2::VulkanInstanceInfo Struct Reference + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    Topaz 4.2.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..c84bf5a443 --- /dev/null +++ b/structtz_1_1gl_1_1vk2_1_1buffer__info.html @@ -0,0 +1,135 @@ + + + + + + + +Topaz: tz::gl::vk2::buffer_info Struct Reference + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    Topaz 4.2.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..adc8a78da8 --- /dev/null +++ b/structtz_1_1gl_1_1vk2_1_1detail_1_1_device_feature_info.html @@ -0,0 +1,106 @@ + + + + + + + +Topaz: tz::gl::vk2::detail::DeviceFeatureInfo Struct Reference + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    Topaz 4.2.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..b681487981 --- /dev/null +++ b/structtz_1_1gl_1_1vk2_1_1draw__indexed__indirect__command.html @@ -0,0 +1,106 @@ + + + + + + + +Topaz: tz::gl::vk2::draw_indexed_indirect_command Struct Reference + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    Topaz 4.2.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..a0962bb3c3 --- /dev/null +++ b/structtz_1_1gl_1_1vk2_1_1draw__indirect__command.html @@ -0,0 +1,106 @@ + + + + + + + +Topaz: tz::gl::vk2::draw_indirect_command Struct Reference + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    Topaz 4.2.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..8d77305974 --- /dev/null +++ b/structtz_1_1gl_1_1vk2_1_1hardware_1_1_queue_1_1_present_info.html @@ -0,0 +1,131 @@ + + + + + + + +Topaz: tz::gl::vk2::hardware::Queue::PresentInfo Struct Reference + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    Topaz 4.2.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..4a624f39e2 --- /dev/null +++ b/structtz_1_1gl_1_1vk2_1_1hardware_1_1_queue_1_1_submit_info.html @@ -0,0 +1,143 @@ + + + + + + + +Topaz: tz::gl::vk2::hardware::Queue::SubmitInfo Struct Reference + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    Topaz 4.2.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..591c14da4f --- /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,106 @@ + + + + + + + +Topaz: tz::gl::vk2::hardware::Queue::SubmitInfo::SignalInfo Struct Reference + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    Topaz 4.2.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..3ddb9da250 --- /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,120 @@ + + + + + + + +Topaz: tz::gl::vk2::hardware::Queue::SubmitInfo::WaitInfo Struct Reference + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    Topaz 4.2.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..0b0231b840 --- /dev/null +++ b/structtz_1_1gl_1_1vk2_1_1hardware_1_1_queue_info.html @@ -0,0 +1,106 @@ + + + + + + + +Topaz: tz::gl::vk2::hardware::QueueInfo Struct Reference + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    Topaz 4.2.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..31ecbea924 --- /dev/null +++ b/structtz_1_1gl_1_1vk2_1_1image__info.html @@ -0,0 +1,155 @@ + + + + + + + +Topaz: tz::gl::vk2::image_info Struct Reference + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    Topaz 4.2.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_1impl_1_1concurrentqueue__traits.html b/structtz_1_1impl_1_1concurrentqueue__traits.html new file mode 100644 index 0000000000..a7d5de60dc --- /dev/null +++ b/structtz_1_1impl_1_1concurrentqueue__traits.html @@ -0,0 +1,112 @@ + + + + + + + +Topaz: tz::impl::concurrentqueue_traits Struct Reference + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    Topaz 4.2.0.1 +
    +
    C++20 Graphics Engine
    +
    +
    + + + + + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + + +
    +
    +
    tz::impl::concurrentqueue_traits Struct Reference
    +
    +
    +
    +Inheritance diagram for tz::impl::concurrentqueue_traits:
    +
    +
    + +
    +
    + + + + diff --git a/structtz_1_1impl_1_1concurrentqueue__traits.png b/structtz_1_1impl_1_1concurrentqueue__traits.png new file mode 100644 index 0000000000000000000000000000000000000000..10cb3e2200e04719e445ed436d60c4b3fa75bef1 GIT binary patch literal 870 zcmV-s1DX7ZP)vTJr#LVva2S`&=-}Ys|Ns9r%~qrU000SeQchC<|NsC0|NsC0Hv*f~0008< zNklY9^OATyr6vNKUxGz7(YWZJN>ed}cX1u+$hPe=orCTZw1`0We zws3o7`~KxN(YsV}-*t=Nz1JLU@ZNuSU0c&Z+%BPNxu2=21v7EH@L=E14iwzH{i+A4 zU!pL)u@r*L#}n}l1zYoLyJ=F#*C;giK80E)&cZI&jiXSOg3UZS5r-7kL)GmgsNl=B z&_^|0XYh2(g>iQ&^z}A>B3dU57m3bGS$nsxj!%S}>b`Ba-01HOk0>1Vh47AO9j4Be zZ{<3(FU+{Nmyj*2Z|voel%fqhtBuXdWY)TNcbk~Z!#hG%^++$?{;I0)ud@_B8p14v z&xSC6B2-mBR!M;rNP!eo)yacGN-5o4MMQpCzeGfCucWX*_#y^UC=iH&6xba}K}4*O z0x6IJDTs&@QXmCVAO#U|LJFin3Zx(+PDp_iNP!eY#0e>o0x6J!h&UkyQXqwQqmWWc zw^vC3aC0REQXmCV0N~^#h0ZweeFoGsF~*E8WbiWz0MO|#Q@EDFISP-PbzGUiw<_R`rgkcHYa@d*QO)U&b2%X7wZm0NBxI#d&2!0EqO@Qpi2> + + + + + + +Topaz: tz::initialise_info Struct Reference + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    Topaz 4.2.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_1format4.html b/structtz_1_1io_1_1format4.html new file mode 100644 index 0000000000..d6096f547f --- /dev/null +++ b/structtz_1_1io_1_1format4.html @@ -0,0 +1,106 @@ + + + + + + + +Topaz: tz::io::format4 Struct Reference + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    Topaz 4.2.0.1 +
    +
    C++20 Graphics Engine
    +
    +
    + + + + + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + + +
    +
    +
    tz::io::format4 Struct Reference
    +
    +
    +
    + + + + diff --git a/structtz_1_1io_1_1gltf__accessor.html b/structtz_1_1io_1_1gltf__accessor.html new file mode 100644 index 0000000000..c121edd5ff --- /dev/null +++ b/structtz_1_1io_1_1gltf__accessor.html @@ -0,0 +1,106 @@ + + + + + + + +Topaz: tz::io::gltf_accessor Struct Reference + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    Topaz 4.2.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..4cfda531d5 --- /dev/null +++ b/structtz_1_1io_1_1gltf__animation.html @@ -0,0 +1,114 @@ + + + + + + + +Topaz: tz::io::gltf_animation Struct Reference + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    Topaz 4.2.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..e4ea1d7049 --- /dev/null +++ b/structtz_1_1io_1_1gltf__animation_1_1keyframe__data__element.html @@ -0,0 +1,106 @@ + + + + + + + +Topaz: tz::io::gltf_animation::keyframe_data_element Struct Reference + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    Topaz 4.2.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..fc554f5d61 --- /dev/null +++ b/structtz_1_1io_1_1gltf__animation__channel.html @@ -0,0 +1,106 @@ + + + + + + + +Topaz: tz::io::gltf_animation_channel Struct Reference + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    Topaz 4.2.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..3b4f4b75b8 --- /dev/null +++ b/structtz_1_1io_1_1gltf__animation__channel__target.html @@ -0,0 +1,106 @@ + + + + + + + +Topaz: tz::io::gltf_animation_channel_target Struct Reference + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    Topaz 4.2.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..9b6ae607c0 --- /dev/null +++ b/structtz_1_1io_1_1gltf__animation__sampler.html @@ -0,0 +1,106 @@ + + + + + + + +Topaz: tz::io::gltf_animation_sampler Struct Reference + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    Topaz 4.2.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..687f656c5d --- /dev/null +++ b/structtz_1_1io_1_1gltf__buffer.html @@ -0,0 +1,106 @@ + + + + + + + +Topaz: tz::io::gltf_buffer Struct Reference + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    Topaz 4.2.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..d76cfdcf0c --- /dev/null +++ b/structtz_1_1io_1_1gltf__buffer__view.html @@ -0,0 +1,106 @@ + + + + + + + +Topaz: tz::io::gltf_buffer_view Struct Reference + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    Topaz 4.2.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..35915a9f26 --- /dev/null +++ b/structtz_1_1io_1_1gltf__chunk__data.html @@ -0,0 +1,106 @@ + + + + + + + +Topaz: tz::io::gltf_chunk_data Struct Reference + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    Topaz 4.2.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..1a18a30a91 --- /dev/null +++ b/structtz_1_1io_1_1gltf__header.html @@ -0,0 +1,106 @@ + + + + + + + +Topaz: tz::io::gltf_header Struct Reference + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    Topaz 4.2.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..6a183a2e7a --- /dev/null +++ b/structtz_1_1io_1_1gltf__image.html @@ -0,0 +1,106 @@ + + + + + + + +Topaz: tz::io::gltf_image Struct Reference + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    Topaz 4.2.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..f069bb2b59 --- /dev/null +++ b/structtz_1_1io_1_1gltf__material.html @@ -0,0 +1,106 @@ + + + + + + + +Topaz: tz::io::gltf_material Struct Reference + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    Topaz 4.2.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..c29817cfcf --- /dev/null +++ b/structtz_1_1io_1_1gltf__mesh.html @@ -0,0 +1,114 @@ + + + + + + + +Topaz: tz::io::gltf_mesh Struct Reference + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    Topaz 4.2.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..3c68de7129 --- /dev/null +++ b/structtz_1_1io_1_1gltf__mesh_1_1submesh.html @@ -0,0 +1,106 @@ + + + + + + + +Topaz: tz::io::gltf_mesh::submesh Struct Reference + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    Topaz 4.2.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..24666fbc54 --- /dev/null +++ b/structtz_1_1io_1_1gltf__node.html @@ -0,0 +1,106 @@ + + + + + + + +Topaz: tz::io::gltf_node Struct Reference + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    Topaz 4.2.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..125322ded0 --- /dev/null +++ b/structtz_1_1io_1_1gltf__scene.html @@ -0,0 +1,106 @@ + + + + + + + +Topaz: tz::io::gltf_scene Struct Reference + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    Topaz 4.2.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..e9d03b9f4f --- /dev/null +++ b/structtz_1_1io_1_1gltf__skin.html @@ -0,0 +1,106 @@ + + + + + + + +Topaz: tz::io::gltf_skin Struct Reference + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    Topaz 4.2.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..9f9ebc1e9e --- /dev/null +++ b/structtz_1_1io_1_1gltf__submesh__data.html @@ -0,0 +1,106 @@ + + + + + + + +Topaz: tz::io::gltf_submesh_data Struct Reference + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    Topaz 4.2.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..07fc37b1b7 --- /dev/null +++ b/structtz_1_1io_1_1gltf__submesh__texture__data.html @@ -0,0 +1,106 @@ + + + + + + + +Topaz: tz::io::gltf_submesh_texture_data Struct Reference + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    Topaz 4.2.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..445e42c4a0 --- /dev/null +++ b/structtz_1_1io_1_1gltf__vertex__data.html @@ -0,0 +1,106 @@ + + + + + + + +Topaz: tz::io::gltf_vertex_data Struct Reference + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    Topaz 4.2.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..3c9ab6a40c --- /dev/null +++ b/structtz_1_1io_1_1image.html @@ -0,0 +1,106 @@ + + + + + + + +Topaz: tz::io::image Struct Reference + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    Topaz 4.2.0.1 +
    +
    C++20 Graphics Engine
    +
    +
    + + + + + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + + +
    +
    +
    tz::io::image Struct Reference
    +
    +
    +
    + + + + diff --git a/structtz_1_1io_1_1impl__tz__io__gltf.html b/structtz_1_1io_1_1impl__tz__io__gltf.html new file mode 100644 index 0000000000..7975001b3f --- /dev/null +++ b/structtz_1_1io_1_1impl__tz__io__gltf.html @@ -0,0 +1,106 @@ + + + + + + + +Topaz: tz::io::impl_tz_io_gltf Struct Reference + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    Topaz 4.2.0.1 +
    +
    C++20 Graphics Engine
    +
    +
    + + + + + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + + +
    +
    +
    tz::io::impl_tz_io_gltf Struct Reference
    +
    +
    +
    + + + + diff --git a/structtz_1_1io_1_1ttf_1_1rasterise__info.html b/structtz_1_1io_1_1ttf_1_1rasterise__info.html new file mode 100644 index 0000000000..5a743baa76 --- /dev/null +++ b/structtz_1_1io_1_1ttf_1_1rasterise__info.html @@ -0,0 +1,106 @@ + + + + + + + +Topaz: tz::io::ttf::rasterise_info Struct Reference + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    Topaz 4.2.0.1 +
    +
    C++20 Graphics Engine
    +
    +
    + + + + + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + + +
    +
    +
    tz::io::ttf::rasterise_info Struct Reference
    +
    +
    +
    + + + + diff --git a/structtz_1_1io_1_1ttf__cmap__encoding__record.html b/structtz_1_1io_1_1ttf__cmap__encoding__record.html new file mode 100644 index 0000000000..f4d579ad81 --- /dev/null +++ b/structtz_1_1io_1_1ttf__cmap__encoding__record.html @@ -0,0 +1,106 @@ + + + + + + + +Topaz: tz::io::ttf_cmap_encoding_record Struct Reference + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    Topaz 4.2.0.1 +
    +
    C++20 Graphics Engine
    +
    +
    + + + + + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + + +
    +
    +
    tz::io::ttf_cmap_encoding_record Struct Reference
    +
    +
    +
    + + + + diff --git a/structtz_1_1io_1_1ttf__cmap__table.html b/structtz_1_1io_1_1ttf__cmap__table.html new file mode 100644 index 0000000000..5cd7785cd7 --- /dev/null +++ b/structtz_1_1io_1_1ttf__cmap__table.html @@ -0,0 +1,106 @@ + + + + + + + +Topaz: tz::io::ttf_cmap_table Struct Reference + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    Topaz 4.2.0.1 +
    +
    C++20 Graphics Engine
    +
    +
    + + + + + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + + +
    +
    +
    tz::io::ttf_cmap_table Struct Reference
    +
    +
    +
    + + + + diff --git a/structtz_1_1io_1_1ttf__glyf__elem.html b/structtz_1_1io_1_1ttf__glyf__elem.html new file mode 100644 index 0000000000..a1e1b6d7c4 --- /dev/null +++ b/structtz_1_1io_1_1ttf__glyf__elem.html @@ -0,0 +1,106 @@ + + + + + + + +Topaz: tz::io::ttf_glyf_elem Struct Reference + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    Topaz 4.2.0.1 +
    +
    C++20 Graphics Engine
    +
    +
    + + + + + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + + +
    +
    +
    tz::io::ttf_glyf_elem Struct Reference
    +
    +
    +
    + + + + diff --git a/structtz_1_1io_1_1ttf__glyf__table.html b/structtz_1_1io_1_1ttf__glyf__table.html new file mode 100644 index 0000000000..cfd355f008 --- /dev/null +++ b/structtz_1_1io_1_1ttf__glyf__table.html @@ -0,0 +1,106 @@ + + + + + + + +Topaz: tz::io::ttf_glyf_table Struct Reference + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    Topaz 4.2.0.1 +
    +
    C++20 Graphics Engine
    +
    +
    + + + + + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + + +
    +
    +
    tz::io::ttf_glyf_table Struct Reference
    +
    +
    +
    + + + + diff --git a/structtz_1_1io_1_1ttf__glyph.html b/structtz_1_1io_1_1ttf__glyph.html new file mode 100644 index 0000000000..895d5e9adf --- /dev/null +++ b/structtz_1_1io_1_1ttf__glyph.html @@ -0,0 +1,106 @@ + + + + + + + +Topaz: tz::io::ttf_glyph Struct Reference + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    Topaz 4.2.0.1 +
    +
    C++20 Graphics Engine
    +
    +
    + + + + + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + + +
    +
    +
    tz::io::ttf_glyph Struct Reference
    +
    +
    +
    + + + + diff --git a/structtz_1_1io_1_1ttf__glyph__contour.html b/structtz_1_1io_1_1ttf__glyph__contour.html new file mode 100644 index 0000000000..baa14a2dc0 --- /dev/null +++ b/structtz_1_1io_1_1ttf__glyph__contour.html @@ -0,0 +1,106 @@ + + + + + + + +Topaz: tz::io::ttf_glyph_contour Struct Reference + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    Topaz 4.2.0.1 +
    +
    C++20 Graphics Engine
    +
    +
    + + + + + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + + +
    +
    +
    tz::io::ttf_glyph_contour Struct Reference
    +
    +
    +
    + + + + diff --git a/structtz_1_1io_1_1ttf__glyph__map.html b/structtz_1_1io_1_1ttf__glyph__map.html new file mode 100644 index 0000000000..cc88ee8c1f --- /dev/null +++ b/structtz_1_1io_1_1ttf__glyph__map.html @@ -0,0 +1,112 @@ + + + + + + + +Topaz: tz::io::ttf_glyph_map Struct Reference + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    Topaz 4.2.0.1 +
    +
    C++20 Graphics Engine
    +
    +
    + + + + + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + + +
    +
    +
    tz::io::ttf_glyph_map Struct Reference
    +
    +
    +
    +Inheritance diagram for tz::io::ttf_glyph_map:
    +
    +
    + +
    +
    + + + + diff --git a/structtz_1_1io_1_1ttf__glyph__map.png b/structtz_1_1io_1_1ttf__glyph__map.png new file mode 100644 index 0000000000000000000000000000000000000000..d5eb1eaa9f9d23086db194095c6e7bc70566c6fe GIT binary patch literal 807 zcmV+?1K9kDP)vTJr#LVva2S`&=-}Ys|Ns9r%~qrU000SeQchC<|NsC0|NsC0Hv*f~0008A zNklupZ6QE5f$$15v-pCMWONNol8mB( zNs>`iVXhws(f7?BS-V?(rnYOd)izC^ok6||v$Z&nd0naLf|*~E@w|lBvaI9WK7S^& zvTC(*vn>s|^EOoBMA70$%m&NP_i^mm#oq89)5u)>M_G~fPOkM;ZUE;_LUo;-(f%a+ z(QNE1pNa`eOm_yFXqFx{ExoFagMA9;LHoLoSx2)sc_J=0?E{$WR$BM34{+_EZ>>Y+ z+1!W+F?ZKEf%+6w_BkHSo1tj-|GjAX365Z{hxlMLjm*VkmZz?aBx!6^oz4C+@14z) zm~L;leBpZb&gQylQwq&DRS|+U3FdrSR`oKi+qAPw`26y4-Ee2zmti&+-6NQt?(48sF8CNGN%r)t>CzIG50dQY?U*F_eho~LjG}=_ zl2J5anwfodm5JdwM z0HSDM0zecEOaO?Yfe8RnG%x`miUuYCMA5(mfG8T601!n3698T!Gqd=DNm6tTOi7BO zfhkE*^iRyHb3NAdeXX)iy(Cv&z1GjglvI=jvo-oM%;`e9Dh;uOE`M%6-@~!bkGXYy zq+zzjS^Ac(l5|#2iKa=u$W#{}-qLRUD$M4^YmFr7K|KT0`IkJ~*|fzXw2xl5rd5*8 z>Is-tu#RJHrZ+H`9sk9c%K^ND*=?1iv-&@#?|%d{hiAKM?qh!ZY;Kvh*k{?(Etj;J zHvMhpdz*G%j}K>BNjj@-!YX}9(vJS`;+rtH`_n}&-9@dHq@sKcrY9*}j}=Wx`lJS? lBt_A{l%yz{FwM-u>km}i7~klwJOTg!002ovPDHLkV1nojiwpn& literal 0 HcmV?d00001 diff --git a/structtz_1_1io_1_1ttf__glyph__shape__info.html b/structtz_1_1io_1_1ttf__glyph__shape__info.html new file mode 100644 index 0000000000..2d2cc430e0 --- /dev/null +++ b/structtz_1_1io_1_1ttf__glyph__shape__info.html @@ -0,0 +1,106 @@ + + + + + + + +Topaz: tz::io::ttf_glyph_shape_info Struct Reference + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    Topaz 4.2.0.1 +
    +
    C++20 Graphics Engine
    +
    +
    + + + + + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + + +
    +
    +
    tz::io::ttf_glyph_shape_info Struct Reference
    +
    +
    +
    + + + + diff --git a/structtz_1_1io_1_1ttf__glyph__spacing__info.html b/structtz_1_1io_1_1ttf__glyph__spacing__info.html new file mode 100644 index 0000000000..91aa3fe92f --- /dev/null +++ b/structtz_1_1io_1_1ttf__glyph__spacing__info.html @@ -0,0 +1,106 @@ + + + + + + + +Topaz: tz::io::ttf_glyph_spacing_info Struct Reference + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    Topaz 4.2.0.1 +
    +
    C++20 Graphics Engine
    +
    +
    + + + + + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + + +
    +
    +
    tz::io::ttf_glyph_spacing_info Struct Reference
    +
    +
    +
    + + + + diff --git a/structtz_1_1io_1_1ttf__head__table.html b/structtz_1_1io_1_1ttf__head__table.html new file mode 100644 index 0000000000..18f47517f1 --- /dev/null +++ b/structtz_1_1io_1_1ttf__head__table.html @@ -0,0 +1,106 @@ + + + + + + + +Topaz: tz::io::ttf_head_table Struct Reference + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    Topaz 4.2.0.1 +
    +
    C++20 Graphics Engine
    +
    +
    + + + + + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + + +
    +
    +
    tz::io::ttf_head_table Struct Reference
    +
    +
    +
    + + + + diff --git a/structtz_1_1io_1_1ttf__header.html b/structtz_1_1io_1_1ttf__header.html new file mode 100644 index 0000000000..9cf7eafb2e --- /dev/null +++ b/structtz_1_1io_1_1ttf__header.html @@ -0,0 +1,106 @@ + + + + + + + +Topaz: tz::io::ttf_header Struct Reference + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    Topaz 4.2.0.1 +
    +
    C++20 Graphics Engine
    +
    +
    + + + + + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + + +
    +
    +
    tz::io::ttf_header Struct Reference
    +
    +
    +
    + + + + diff --git a/structtz_1_1io_1_1ttf__hhea__table.html b/structtz_1_1io_1_1ttf__hhea__table.html new file mode 100644 index 0000000000..56046b27f4 --- /dev/null +++ b/structtz_1_1io_1_1ttf__hhea__table.html @@ -0,0 +1,106 @@ + + + + + + + +Topaz: tz::io::ttf_hhea_table Struct Reference + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    Topaz 4.2.0.1 +
    +
    C++20 Graphics Engine
    +
    +
    + + + + + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + + +
    +
    +
    tz::io::ttf_hhea_table Struct Reference
    +
    +
    +
    + + + + diff --git a/structtz_1_1io_1_1ttf__hmtx__table.html b/structtz_1_1io_1_1ttf__hmtx__table.html new file mode 100644 index 0000000000..a6b9be0914 --- /dev/null +++ b/structtz_1_1io_1_1ttf__hmtx__table.html @@ -0,0 +1,114 @@ + + + + + + + +Topaz: tz::io::ttf_hmtx_table Struct Reference + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    Topaz 4.2.0.1 +
    +
    C++20 Graphics Engine
    +
    +
    + + + + + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + + +
    +
    + +
    tz::io::ttf_hmtx_table Struct Reference
    +
    +
    + + + + +

    +Data Structures

    struct  hmetrics_t
     
    +
    + + + + diff --git a/structtz_1_1io_1_1ttf__hmtx__table_1_1hmetrics__t.html b/structtz_1_1io_1_1ttf__hmtx__table_1_1hmetrics__t.html new file mode 100644 index 0000000000..323c0dd417 --- /dev/null +++ b/structtz_1_1io_1_1ttf__hmtx__table_1_1hmetrics__t.html @@ -0,0 +1,106 @@ + + + + + + + +Topaz: tz::io::ttf_hmtx_table::hmetrics_t Struct Reference + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    Topaz 4.2.0.1 +
    +
    C++20 Graphics Engine
    +
    +
    + + + + + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + + +
    +
    +
    tz::io::ttf_hmtx_table::hmetrics_t Struct Reference
    +
    +
    +
    + + + + diff --git a/structtz_1_1io_1_1ttf__loca__table.html b/structtz_1_1io_1_1ttf__loca__table.html new file mode 100644 index 0000000000..e7d510e0ef --- /dev/null +++ b/structtz_1_1io_1_1ttf__loca__table.html @@ -0,0 +1,106 @@ + + + + + + + +Topaz: tz::io::ttf_loca_table Struct Reference + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    Topaz 4.2.0.1 +
    +
    C++20 Graphics Engine
    +
    +
    + + + + + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + + +
    +
    +
    tz::io::ttf_loca_table Struct Reference
    +
    +
    +
    + + + + diff --git a/structtz_1_1io_1_1ttf__maxp__table.html b/structtz_1_1io_1_1ttf__maxp__table.html new file mode 100644 index 0000000000..52e7649717 --- /dev/null +++ b/structtz_1_1io_1_1ttf__maxp__table.html @@ -0,0 +1,106 @@ + + + + + + + +Topaz: tz::io::ttf_maxp_table Struct Reference + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    Topaz 4.2.0.1 +
    +
    C++20 Graphics Engine
    +
    +
    + + + + + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + + +
    +
    +
    tz::io::ttf_maxp_table Struct Reference
    +
    +
    +
    + + + + diff --git a/structtz_1_1io_1_1ttf__table.html b/structtz_1_1io_1_1ttf__table.html new file mode 100644 index 0000000000..8da1554caa --- /dev/null +++ b/structtz_1_1io_1_1ttf__table.html @@ -0,0 +1,106 @@ + + + + + + + +Topaz: tz::io::ttf_table Struct Reference + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    Topaz 4.2.0.1 +
    +
    C++20 Graphics Engine
    +
    +
    + + + + + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + + +
    +
    +
    tz::io::ttf_table Struct Reference
    +
    +
    +
    + + + + diff --git a/structtz_1_1job__handle.html b/structtz_1_1job__handle.html new file mode 100644 index 0000000000..b11027b40a --- /dev/null +++ b/structtz_1_1job__handle.html @@ -0,0 +1,106 @@ + + + + + + + +Topaz: tz::job_handle Struct Reference + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    Topaz 4.2.0.1 +
    +
    C++20 Graphics Engine
    +
    +
    + + + + + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + + +
    +
    +
    tz::job_handle Struct Reference
    +
    +
    +
    + + + + diff --git a/structtz_1_1lua_1_1impl_1_1lua__register.html b/structtz_1_1lua_1_1impl_1_1lua__register.html new file mode 100644 index 0000000000..2fbc2754fe --- /dev/null +++ b/structtz_1_1lua_1_1impl_1_1lua__register.html @@ -0,0 +1,106 @@ + + + + + + + +Topaz: tz::lua::impl::lua_register Struct Reference + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    Topaz 4.2.0.1 +
    +
    C++20 Graphics Engine
    +
    +
    + + + + + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + + +
    +
    +
    tz::lua::impl::lua_register Struct Reference
    +
    +
    +
    + + + + diff --git a/structtz_1_1lua_1_1lua__operation.html b/structtz_1_1lua_1_1lua__operation.html new file mode 100644 index 0000000000..5323627c6e --- /dev/null +++ b/structtz_1_1lua_1_1lua__operation.html @@ -0,0 +1,106 @@ + + + + + + + +Topaz: tz::lua::lua_operation Struct Reference + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    Topaz 4.2.0.1 +
    +
    C++20 Graphics Engine
    +
    +
    + + + + + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + + +
    +
    +
    tz::lua::lua_operation Struct Reference
    +
    +
    +
    + + + + diff --git a/structtz_1_1lua_1_1nil.html b/structtz_1_1lua_1_1nil.html new file mode 100644 index 0000000000..8f3364af41 --- /dev/null +++ b/structtz_1_1lua_1_1nil.html @@ -0,0 +1,106 @@ + + + + + + + +Topaz: tz::lua::nil Struct Reference + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    Topaz 4.2.0.1 +
    +
    C++20 Graphics Engine
    +
    +
    + + + + + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + + +
    +
    +
    tz::lua::nil Struct Reference
    +
    +
    +
    + + + + diff --git a/structtz_1_1memblk.html b/structtz_1_1memblk.html new file mode 100644 index 0000000000..f30535493b --- /dev/null +++ b/structtz_1_1memblk.html @@ -0,0 +1,127 @@ + + + + + + + +Topaz: tz::memblk Struct Reference + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    Topaz 4.2.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..39a5c056ec --- /dev/null +++ b/structtz_1_1nullhand__t.html @@ -0,0 +1,106 @@ + + + + + + + +Topaz: tz::nullhand_t Struct Reference + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    Topaz 4.2.0.1 +
    +
    C++20 Graphics Engine
    +
    +
    + + + + + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + + +
    +
    +
    tz::nullhand_t Struct Reference
    +
    +
    +
    + + + + diff --git a/structtz_1_1overloaded.html b/structtz_1_1overloaded.html new file mode 100644 index 0000000000..e89be25407 --- /dev/null +++ b/structtz_1_1overloaded.html @@ -0,0 +1,112 @@ + + + + + + + +Topaz: tz::overloaded< Ts > Struct Template Reference + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    Topaz 4.2.0.1 +
    +
    C++20 Graphics Engine
    +
    +
    + + + + + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + + +
    +
    +
    tz::overloaded< Ts > Struct Template Reference
    +
    +
    +
    +Inheritance diagram for tz::overloaded< Ts >:
    +
    +
    + +
    +
    + + + + diff --git a/structtz_1_1overloaded.png b/structtz_1_1overloaded.png new file mode 100644 index 0000000000000000000000000000000000000000..704f4b1f2c3fb5824b35335cb7c82645d8e179fa GIT binary patch literal 444 zcmeAS@N?(olHy`uVBq!ia0vp^4L}^g!3-py-Rr#uq@)9ULR|m<{|{uoc=NTi|Il&^ z1I+@7>1SR%c<=xyZhAIs2~du+B*-tA0mugfbEer>7#JAcJzX3_Dj46+y`9%$z~k~( z{Mi5hM^mMl$_m0Yx<9OvI-+86y;=YLqE%6vfeb5z895AC1-9qh2G zgT}3Q?-zfsb}`%8Yps26`^EPuby^HZbU7VNHk;1-%JM*1nYqBb@3q + + + + + + +Topaz: tz::ren::animation_renderer::animated_objects_create_info Struct Reference + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    Topaz 4.2.0.1 +
    +
    C++20 Graphics Engine
    +
    +
    + + + + + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + + +
    +
    +
    tz::ren::animation_renderer::animated_objects_create_info Struct Reference
    +
    +
    +
    + + + + diff --git a/structtz_1_1ren_1_1animation__renderer_1_1gltf__data_1_1metadata__t.html b/structtz_1_1ren_1_1animation__renderer_1_1gltf__data_1_1metadata__t.html new file mode 100644 index 0000000000..c2af0f1c80 --- /dev/null +++ b/structtz_1_1ren_1_1animation__renderer_1_1gltf__data_1_1metadata__t.html @@ -0,0 +1,106 @@ + + + + + + + +Topaz: tz::ren::animation_renderer::gltf_data::metadata_t Struct Reference + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    Topaz 4.2.0.1 +
    +
    C++20 Graphics Engine
    +
    +
    + + + + + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + + +
    +
    +
    tz::ren::animation_renderer::gltf_data::metadata_t Struct Reference
    +
    +
    +
    + + + + diff --git a/structtz_1_1ren_1_1animation__renderer_1_1info.html b/structtz_1_1ren_1_1animation__renderer_1_1info.html new file mode 100644 index 0000000000..c18d971078 --- /dev/null +++ b/structtz_1_1ren_1_1animation__renderer_1_1info.html @@ -0,0 +1,136 @@ + + + + + + + +Topaz: tz::ren::animation_renderer::info Struct Reference + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    Topaz 4.2.0.1 +
    +
    C++20 Graphics Engine
    +
    +
    + + + + + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + + +
    +
    + +
    tz::ren::animation_renderer::info Struct Reference
    +
    +
    + + + + + + + + + + + + + + + + + + + + +

    +Data Fields

    +std::string_view custom_vertex_spirv = {}
     String representing SPIRV for the vertex shader. If empty, a default vertex shader is used.
     
    +std::string_view custom_fragment_spirv = {}
     String representing SPIRV for the fragment shader. If empty, a default fragment shader is used - displays the textured objects with no lighting effects.
     
    +tz::gl::renderer_options custom_options = {}
     If you want more fine-grained control over the created graphics renderer pass (such as if you want to add a post-process effect), you can add extra options here.
     
    +std::size_t texture_capacity = 1024u
     Maximum number of textures. Note that this capacity cannot be expanded - make sure you never exceed this limit.
     
    +std::vector< tz::gl::buffer_resourceextra_buffers = {}
     A list of extra buffer resources. These buffers will be resident to both the vertex and fragment shader. Resource ID of the first extra buffer will be 3 ascending.
     
    +tz::gl::ioutputoutput = nullptr
     Optional output. Use this if you want to render into a specific render target. If this is nullptr, it will render directly into the window instead.
     
    +
    + + + + diff --git a/structtz_1_1ren_1_1animation__renderer_1_1playback__data.html b/structtz_1_1ren_1_1animation__renderer_1_1playback__data.html new file mode 100644 index 0000000000..b0292903dd --- /dev/null +++ b/structtz_1_1ren_1_1animation__renderer_1_1playback__data.html @@ -0,0 +1,106 @@ + + + + + + + +Topaz: tz::ren::animation_renderer::playback_data Struct Reference + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    Topaz 4.2.0.1 +
    +
    C++20 Graphics Engine
    +
    +
    + + + + + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + + +
    +
    +
    tz::ren::animation_renderer::playback_data Struct Reference
    +
    +
    +
    + + + + diff --git a/structtz_1_1ren_1_1char__storage_1_1string__locator.html b/structtz_1_1ren_1_1char__storage_1_1string__locator.html new file mode 100644 index 0000000000..c5117233c2 --- /dev/null +++ b/structtz_1_1ren_1_1char__storage_1_1string__locator.html @@ -0,0 +1,106 @@ + + + + + + + +Topaz: tz::ren::char_storage::string_locator Struct Reference + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    Topaz 4.2.0.1 +
    +
    C++20 Graphics Engine
    +
    +
    + + + + + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + + +
    +
    +
    tz::ren::char_storage::string_locator Struct Reference
    +
    +
    +
    + + + + diff --git a/structtz_1_1ren_1_1font__data.html b/structtz_1_1ren_1_1font__data.html new file mode 100644 index 0000000000..846a571003 --- /dev/null +++ b/structtz_1_1ren_1_1font__data.html @@ -0,0 +1,114 @@ + + + + + + + +Topaz: tz::ren::font_data Struct Reference + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    Topaz 4.2.0.1 +
    +
    C++20 Graphics Engine
    +
    +
    + + + + + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + + +
    +
    + +
    tz::ren::font_data Struct Reference
    +
    +
    + + + + +

    +Data Structures

    struct  glyph_data
     
    +
    + + + + diff --git a/structtz_1_1ren_1_1font__data_1_1glyph__data.html b/structtz_1_1ren_1_1font__data_1_1glyph__data.html new file mode 100644 index 0000000000..32946a99d2 --- /dev/null +++ b/structtz_1_1ren_1_1font__data_1_1glyph__data.html @@ -0,0 +1,106 @@ + + + + + + + +Topaz: tz::ren::font_data::glyph_data Struct Reference + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    Topaz 4.2.0.1 +
    +
    C++20 Graphics Engine
    +
    +
    + + + + + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + + +
    +
    +
    tz::ren::font_data::glyph_data Struct Reference
    +
    +
    +
    + + + + diff --git a/structtz_1_1ren_1_1glyph__render__data.html b/structtz_1_1ren_1_1glyph__render__data.html new file mode 100644 index 0000000000..a097ef61da --- /dev/null +++ b/structtz_1_1ren_1_1glyph__render__data.html @@ -0,0 +1,106 @@ + + + + + + + +Topaz: tz::ren::glyph_render_data Struct Reference + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    Topaz 4.2.0.1 +
    +
    C++20 Graphics Engine
    +
    +
    + + + + + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + + +
    +
    +
    tz::ren::glyph_render_data Struct Reference
    +
    +
    +
    + + + + diff --git a/structtz_1_1ren_1_1impl_1_1mesh.html b/structtz_1_1ren_1_1impl_1_1mesh.html new file mode 100644 index 0000000000..30e9077a5a --- /dev/null +++ b/structtz_1_1ren_1_1impl_1_1mesh.html @@ -0,0 +1,106 @@ + + + + + + + +Topaz: tz::ren::impl::mesh Struct Reference + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    Topaz 4.2.0.1 +
    +
    C++20 Graphics Engine
    +
    +
    + + + + + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + + +
    +
    +
    tz::ren::impl::mesh Struct Reference
    +
    +
    +
    + + + + diff --git a/structtz_1_1ren_1_1impl_1_1mesh__locator.html b/structtz_1_1ren_1_1impl_1_1mesh__locator.html new file mode 100644 index 0000000000..be118ac1fa --- /dev/null +++ b/structtz_1_1ren_1_1impl_1_1mesh__locator.html @@ -0,0 +1,106 @@ + + + + + + + +Topaz: tz::ren::impl::mesh_locator Struct Reference + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    Topaz 4.2.0.1 +
    +
    C++20 Graphics Engine
    +
    +
    + + + + + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + + +
    +
    +
    tz::ren::impl::mesh_locator Struct Reference
    +
    +
    +
    + + + + diff --git a/structtz_1_1ren_1_1impl_1_1mesh__vertex.html b/structtz_1_1ren_1_1impl_1_1mesh__vertex.html new file mode 100644 index 0000000000..6c3bf2893e --- /dev/null +++ b/structtz_1_1ren_1_1impl_1_1mesh__vertex.html @@ -0,0 +1,106 @@ + + + + + + + +Topaz: tz::ren::impl::mesh_vertex Struct Reference + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    Topaz 4.2.0.1 +
    +
    C++20 Graphics Engine
    +
    +
    + + + + + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + + +
    +
    +
    tz::ren::impl::mesh_vertex Struct Reference
    +
    +
    +
    + + + + diff --git a/structtz_1_1ren_1_1impl_1_1object__data.html b/structtz_1_1ren_1_1impl_1_1object__data.html new file mode 100644 index 0000000000..1885b0c4e4 --- /dev/null +++ b/structtz_1_1ren_1_1impl_1_1object__data.html @@ -0,0 +1,106 @@ + + + + + + + +Topaz: tz::ren::impl::object_data Struct Reference + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    Topaz 4.2.0.1 +
    +
    C++20 Graphics Engine
    +
    +
    + + + + + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + + +
    +
    +
    tz::ren::impl::object_data Struct Reference
    +
    +
    +
    + + + + diff --git a/structtz_1_1ren_1_1impl_1_1render__pass_1_1camera__orthographic__t.html b/structtz_1_1ren_1_1impl_1_1render__pass_1_1camera__orthographic__t.html new file mode 100644 index 0000000000..7ae99c9fea --- /dev/null +++ b/structtz_1_1ren_1_1impl_1_1render__pass_1_1camera__orthographic__t.html @@ -0,0 +1,106 @@ + + + + + + + +Topaz: tz::ren::impl::render_pass::camera_orthographic_t Struct Reference + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    Topaz 4.2.0.1 +
    +
    C++20 Graphics Engine
    +
    +
    + + + + + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + + +
    +
    +
    tz::ren::impl::render_pass::camera_orthographic_t Struct Reference
    +
    +
    +
    + + + + diff --git a/structtz_1_1ren_1_1impl_1_1render__pass_1_1camera__perspective__t.html b/structtz_1_1ren_1_1impl_1_1render__pass_1_1camera__perspective__t.html new file mode 100644 index 0000000000..97fbb23877 --- /dev/null +++ b/structtz_1_1ren_1_1impl_1_1render__pass_1_1camera__perspective__t.html @@ -0,0 +1,106 @@ + + + + + + + +Topaz: tz::ren::impl::render_pass::camera_perspective_t Struct Reference + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    Topaz 4.2.0.1 +
    +
    C++20 Graphics Engine
    +
    +
    + + + + + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + + +
    +
    +
    tz::ren::impl::render_pass::camera_perspective_t Struct Reference
    +
    +
    +
    + + + + diff --git a/structtz_1_1ren_1_1impl_1_1render__pass_1_1info.html b/structtz_1_1ren_1_1impl_1_1render__pass_1_1info.html new file mode 100644 index 0000000000..26d6c606f9 --- /dev/null +++ b/structtz_1_1ren_1_1impl_1_1render__pass_1_1info.html @@ -0,0 +1,143 @@ + + + + + + + +Topaz: tz::ren::impl::render_pass::info Struct Reference + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    Topaz 4.2.0.1 +
    +
    C++20 Graphics Engine
    +
    +
    + + + + + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + + +
    +
    + +
    tz::ren::impl::render_pass::info Struct Reference
    +
    +
    + +

    Creation details for a mesh renderer's render-pass. + More...

    + +

    #include <mesh.hpp>

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

    +Data Fields

    +std::string_view custom_vertex_spirv = {}
     String representing SPIRV for the vertex shader. If empty, a default vertex shader is used.
     
    +std::string_view custom_fragment_spirv = {}
     String representing SPIRV for the fragment shader. If empty, a default fragment shader is used - displays the textured objects with no lighting effects.
     
    +tz::gl::renderer_options custom_options = {}
     If you want more fine-grained control over the created graphics renderer pass (such as if you want to add a post-process effect), you can add extra options here.
     
    +std::size_t texture_capacity = 1024u
     Maximum number of textures. Note that this capacity cannot be expanded - make sure you never exceed this limit.
     
    +std::vector< tz::gl::buffer_resourceextra_buffers = {}
     A list of extra buffer resources. These buffers will be resident to both the vertex and fragment shader. Resource ID of the first extra buffer will be 3 ascending.
     
    +tz::gl::ioutputoutput = nullptr
     Optional output. Use this if you want to render into a specific render target. If this is nullptr, it will render directly into the window instead.
     
    +

    Detailed Description

    +

    Creation details for a mesh renderer's render-pass.

    +
    + + + + diff --git a/structtz_1_1ren_1_1impl_1_1render__pass_1_1object__create__info.html b/structtz_1_1ren_1_1impl_1_1render__pass_1_1object__create__info.html new file mode 100644 index 0000000000..6ba83504f5 --- /dev/null +++ b/structtz_1_1ren_1_1impl_1_1render__pass_1_1object__create__info.html @@ -0,0 +1,136 @@ + + + + + + + +Topaz: tz::ren::impl::render_pass::object_create_info Struct Reference + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    Topaz 4.2.0.1 +
    +
    C++20 Graphics Engine
    +
    +
    + + + + + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + + +
    +
    + +
    tz::ren::impl::render_pass::object_create_info Struct Reference
    +
    +
    + + + + + + + + + + + + + + + + + + + + +

    +Data Fields

    +tz::trs local_transform = {}
     Transform of the object, before parent transformations.
     
    +mesh_handle mesh = tz::nullhand
     Which mesh will be used? If nullhand, then this object is not rendered but still exists in the transform hierarchy.
     
    +bool is_visible = true
     Set whether the object is initially visible or not.
     
    +object_handle parent = tz::nullhand
     Does this object have a parent? Nullhand if not. Global transform will be computed with respect to this parent object.
     
    +std::vector< texture_locatorbound_textures = {}
     List of all bound textures. Note that you can specify as many as you like, but any locators beyond object_data::max_bound_textures will be ignored.
     
    +tz::vec3 colour_tint = tz::vec3::filled(1.0f)
     Colour tint of this object. Does not affect children.
     
    +
    + + + + diff --git a/structtz_1_1ren_1_1impl_1_1texture__locator.html b/structtz_1_1ren_1_1impl_1_1texture__locator.html new file mode 100644 index 0000000000..21a804231b --- /dev/null +++ b/structtz_1_1ren_1_1impl_1_1texture__locator.html @@ -0,0 +1,106 @@ + + + + + + + +Topaz: tz::ren::impl::texture_locator Struct Reference + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    Topaz 4.2.0.1 +
    +
    C++20 Graphics Engine
    +
    +
    + + + + + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + + +
    +
    +
    tz::ren::impl::texture_locator Struct Reference
    +
    +
    +
    + + + + diff --git a/structtz_1_1ren_1_1misc__data.html b/structtz_1_1ren_1_1misc__data.html new file mode 100644 index 0000000000..ee997637bb --- /dev/null +++ b/structtz_1_1ren_1_1misc__data.html @@ -0,0 +1,106 @@ + + + + + + + +Topaz: tz::ren::misc_data Struct Reference + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    Topaz 4.2.0.1 +
    +
    C++20 Graphics Engine
    +
    +
    + + + + + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + + +
    +
    +
    tz::ren::misc_data Struct 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..4121b4900a --- /dev/null +++ b/structtz_1_1space_1_1_m_v_p.html @@ -0,0 +1,111 @@ + + + + + + + +Topaz: tz::space::MVP Struct Reference + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    Topaz 4.2.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..567e117245 --- /dev/null +++ b/structtz_1_1static__for__t.html @@ -0,0 +1,106 @@ + + + + + + + +Topaz: tz::static_for_t< F, L > Struct Template Reference + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    Topaz 4.2.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..7f608cdfb5 --- /dev/null +++ b/structtz_1_1static__for__t_3_01_n_00_01_n_01_4.html @@ -0,0 +1,120 @@ + + + + + + + +Topaz: tz::static_for_t< N, N > Struct Template Reference + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    Topaz 4.2.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:46
    +
    + + + + diff --git a/structtz_1_1transform__node.html b/structtz_1_1transform__node.html new file mode 100644 index 0000000000..5970cd20d5 --- /dev/null +++ b/structtz_1_1transform__node.html @@ -0,0 +1,136 @@ + + + + + + + +Topaz: tz::transform_node< T > Struct Template Reference + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    Topaz 4.2.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..6160ff6789 --- /dev/null +++ b/structtz_1_1trs.html @@ -0,0 +1,106 @@ + + + + + + + +Topaz: tz::trs Struct Reference + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    Topaz 4.2.0.1 +
    +
    C++20 Graphics Engine
    +
    +
    + + + + + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + + +
    +
    +
    tz::trs Struct Reference
    +
    +
    +
    + + + + diff --git a/structtz_1_1tz__lua__data__store.html b/structtz_1_1tz__lua__data__store.html new file mode 100644 index 0000000000..864cf0808e --- /dev/null +++ b/structtz_1_1tz__lua__data__store.html @@ -0,0 +1,106 @@ + + + + + + + +Topaz: tz::tz_lua_data_store Struct Reference + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    Topaz 4.2.0.1 +
    +
    C++20 Graphics Engine
    +
    +
    + + + + + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + + +
    +
    +
    tz::tz_lua_data_store Struct Reference
    +
    +
    +
    + + + + diff --git a/structtz_1_1version.html b/structtz_1_1version.html new file mode 100644 index 0000000000..9524f9ade2 --- /dev/null +++ b/structtz_1_1version.html @@ -0,0 +1,184 @@ + + + + + + + +Topaz: tz::version Struct Reference + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    Topaz 4.2.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..76f6ef707e --- /dev/null +++ b/structtz_1_1wsi_1_1detail_1_1window__handle__tag.html @@ -0,0 +1,106 @@ + + + + + + + +Topaz: tz::wsi::detail::window_handle_tag Struct Reference + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    Topaz 4.2.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..1f17cef7a1 --- /dev/null +++ b/structtz_1_1wsi_1_1impl_1_1wgl__function__data.html @@ -0,0 +1,106 @@ + + + + + + + +Topaz: tz::wsi::impl::wgl_function_data Struct Reference + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    Topaz 4.2.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..7e0ca6c32a --- /dev/null +++ b/structtz_1_1wsi_1_1impl_1_1x11__display__data.html @@ -0,0 +1,106 @@ + + + + + + + +Topaz: tz::wsi::impl::x11_display_data Struct Reference + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    Topaz 4.2.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_1impl__tz__wsi__window.html b/structtz_1_1wsi_1_1impl__tz__wsi__window.html new file mode 100644 index 0000000000..9a7126c4ff --- /dev/null +++ b/structtz_1_1wsi_1_1impl__tz__wsi__window.html @@ -0,0 +1,106 @@ + + + + + + + +Topaz: tz::wsi::impl_tz_wsi_window Struct Reference + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    Topaz 4.2.0.1 +
    +
    C++20 Graphics Engine
    +
    +
    + + + + + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + + +
    +
    +
    tz::wsi::impl_tz_wsi_window 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..31d91ec2d9 --- /dev/null +++ b/structtz_1_1wsi_1_1keyboard__state.html @@ -0,0 +1,164 @@ + + + + + + + +Topaz: tz::wsi::keyboard_state Struct Reference + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    Topaz 4.2.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..0dc541b91d --- /dev/null +++ b/structtz_1_1wsi_1_1monitor.html @@ -0,0 +1,127 @@ + + + + + + + +Topaz: tz::wsi::monitor Struct Reference + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    Topaz 4.2.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..5ccbe071a1 --- /dev/null +++ b/structtz_1_1wsi_1_1mouse__state.html @@ -0,0 +1,132 @@ + + + + + + + +Topaz: tz::wsi::mouse_state Struct Reference + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    Topaz 4.2.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..4d58b0b31b --- /dev/null +++ b/structtz_1_1wsi_1_1window.html @@ -0,0 +1,114 @@ + + + + + + + +Topaz: tz::wsi::window Struct Reference + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    Topaz 4.2.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..c81226293a --- /dev/null +++ b/structtz_1_1wsi_1_1window__info.html @@ -0,0 +1,131 @@ + + + + + + + +Topaz: tz::wsi::window_info Struct Reference + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    Topaz 4.2.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..5553e8aebb --- /dev/null +++ b/structtz_1_1wsi_1_1window__manager.html @@ -0,0 +1,106 @@ + + + + + + + +Topaz: tz::wsi::window_manager Struct Reference + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    Topaz 4.2.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..9c86c44f73 --- /dev/null +++ b/structvertex__t.html @@ -0,0 +1,102 @@ + + + + + + + +Topaz: vertex_t Struct Reference + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    Topaz 4.2.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..d7f5d8f61a --- /dev/null +++ b/swapchain_8hpp_source.html @@ -0,0 +1,223 @@ + + + + + + + +Topaz: src/tz/gl/impl/vulkan/detail/swapchain.hpp Source File + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    Topaz 4.2.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#if TZ_VULKAN
    +
    4#include "tz/gl/impl/vulkan/detail/logical_device.hpp"
    +
    5#include "tz/gl/impl/vulkan/detail/image_view.hpp"
    +
    6
    +
    7namespace tz::gl::vk2
    +
    8{
    +
    9 class Swapchain;
    + +
    27
    +
    + +
    33 {
    +
    34 public:
    +
    + +
    40 {
    + +
    44 const Fence* signal_fence = nullptr;
    +
    46 std::uint64_t timeout = std::numeric_limits<std::uint64_t>::max();
    +
    47 };
    +
    +
    48
    +
    + +
    50 {
    +
    51 enum class AcquisitionResultType
    +
    52 {
    +
    53 AcquireSuccess,
    +
    54 Suboptimal,
    +
    55 ErrorOutOfDate,
    +
    56 ErrorSurfaceLost,
    +
    57 ErrorUnknown
    +
    58 };
    +
    59 std::uint32_t image_index;
    +
    60 AcquisitionResultType type;
    +
    61 };
    +
    + +
    66 Swapchain(const Swapchain& copy) = delete;
    +
    67 Swapchain(Swapchain&& move);
    +
    68 ~Swapchain();
    +
    69 Swapchain& operator=(const Swapchain& rhs) = delete;
    +
    70 Swapchain& operator=(Swapchain&& rhs);
    +
    71
    +
    72 const LogicalDevice& get_device() const;
    + +
    78
    +
    83 static Swapchain null();
    +
    88 bool is_null() const;
    +
    89 using NativeType = VkSwapchainKHR;
    +
    90 NativeType native() const;
    +
    95 std::span<const Image> get_images() const;
    +
    100 std::span<Image> get_images();
    +
    105 std::span<const ImageView> get_image_views() const;
    +
    110 std::span<ImageView> get_image_views();
    + + + +
    126 void refresh();
    +
    127 void refresh(SurfacePresentMode new_present_mode);
    +
    128 private:
    +
    129 Swapchain();
    +
    130 void initialise_images();
    +
    131
    +
    132 VkSwapchainKHR swapchain;
    +
    133 SwapchainInfo info;
    +
    134 tz::vec2ui dimensions;
    +
    135 std::vector<Image> swapchain_images;
    +
    136 std::vector<ImageView> swapchain_image_views;
    +
    137 };
    +
    +
    138}
    +
    139
    +
    140#endif // TZ_VULKAN
    +
    141#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:33
    +
    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:40
    +
    std::uint64_t timeout
    Specifies number of nanoseconds which can pass before failing if no presentable images are available....
    Definition swapchain.hpp:46
    +
    const Fence * signal_fence
    Fence to signal when the image has been retrieved. If not required, this can be nullptr.
    Definition swapchain.hpp:44
    +
    const BinarySemaphore * signal_semaphore
    Semaphore to signal when the image has been retrieved. If not required, this can be nullptr.
    Definition swapchain.hpp:42
    + +
    Specifies parameters of a newly created Swapchain.
    Definition swapchain.hpp:15
    +
    const Swapchain * old_swapchain
    Pointer to swapchain which this will replace, if any. Defaults to nullptr.
    Definition swapchain.hpp:25
    +
    SurfacePresentMode present_mode
    Specifies the presentation mode the Swapchain will use. This must be satisfied by the PhysicalDevice ...
    Definition swapchain.hpp:23
    +
    const LogicalDevice * device
    Pointer to a valid LogicalDevice. This must not be null.
    Definition swapchain.hpp:17
    +
    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:19
    +
    image_format format
    Specifies the format the swapchain image(s) will be created with.
    Definition swapchain.hpp:21
    +
    + + + + diff --git a/sync_off.png b/sync_off.png new file mode 100644 index 0000000000000000000000000000000000000000..3b443fc62892114406e3d399421b2a881b897acc GIT binary patch literal 853 zcmV-b1FHOqP)oT|#XixUYy%lpuf3i8{fX!o zUyDD0jOrAiT^tq>fLSOOABs-#u{dV^F$b{L9&!2=9&RmV;;8s^x&UqB$PCj4FdKbh zoB1WTskPUPu05XzFbA}=KZ-GP1fPpAfSs>6AHb12UlR%-i&uOlTpFNS7{jm@mkU1V zh`nrXr~+^lsV-s1dkZOaI|kYyVj3WBpPCY{n~yd%u%e+d=f%`N0FItMPtdgBb@py; zq@v6NVArhyTC7)ULw-Jy8y42S1~4n(3LkrW8mW(F-4oXUP3E`e#g**YyqI7h-J2zK zK{m9##m4ri!7N>CqQqCcnI3hqo1I;Yh&QLNY4T`*ptiQGozK>FF$!$+84Z`xwmeMh zJ0WT+OH$WYFALEaGj2_l+#DC3t7_S`vHpSivNeFbP6+r50cO8iu)`7i%Z4BTPh@_m3Tk!nAm^)5Bqnr%Ov|Baunj#&RPtRuK& z4RGz|D5HNrW83-#ydk}tVKJrNmyYt-sTxLGlJY5nc&Re zU4SgHNPx8~Yxwr$bsju?4q&%T1874xxzq+_%?h8_ofw~(bld=o3iC)LUNR*BY%c0y zWd_jX{Y8`l%z+ol1$@Qa?Cy!(0CVIEeYpKZ`(9{z>3$CIe;pJDQk$m3p}$>xBm4lb zKo{4S)`wdU9Ba9jJbVJ0C=SOefZe%d$8=2r={nu<_^a3~>c#t_U6dye5)JrR(_a^E f@}b6j1K9lwFJq@>o)+Ry00000NkvXXu0mjfWa5j* literal 0 HcmV?d00001 diff --git a/sync_on.png b/sync_on.png new file mode 100644 index 0000000000000000000000000000000000000000..e08320fb64e6fa33b573005ed6d8fe294e19db76 GIT binary patch literal 845 zcmV-T1G4;yP)Y;xxyHF2B5Wzm| zOOGupOTn@c(JmBOl)e;XMNnZuiTJP>rM8<|Q`7I_))aP?*T)ow&n59{}X4$3Goat zgjs?*aasfbrokzG5cT4K=uG`E14xZl@z)F={P0Y^?$4t z>v!teRnNZym<6h{7sLyF1V0HsfEl+l6TrZpsfr1}luH~F7L}ktXu|*uVX^RG$L0`K zWs3j|0tIvVe(N%_?2{(iCPFGf#B6Hjy6o&}D$A%W%jfO8_W%ZO#-mh}EM$LMn7joJ z05dHr!5Y92g+31l<%i1(=L1a1pXX+OYnalY>31V4K}BjyRe3)9n#;-cCVRD_IG1fT zOKGeNY8q;TL@K{dj@D^scf&VCs*-Jb>8b>|`b*osv52-!A?BpbYtTQBns5EAU**$m zSnVSm(teh>tQi*S*A>#ySc=n;`BHz`DuG4&g4Kf8lLhca+zvZ7t7RflD6-i-mcK=M z!=^P$*u2)bkY5asG4gsss!Hn%u~>}kIW`vMs%lJLH+u*9<4PaV_c6U`KqWXQH%+Nu zTv41O(^ZVi@qhjQdG!fbZw&y+2o!iYymO^?ud3{P*HdoX83YV*Uu_HB=?U&W9%AU# z80}k1SS-CXTU7dcQlsm<^oYLxVSseqY6NO}dc`Nj?8vrhNuCdm@^{a3AQ_>6myOj+ z`1RsLUXF|dm|3k7s2jD(B{rzE>WI2scH8i1;=O5Cc9xB3^aJk%fQjqsu+kH#0=_5a z0nCE8@dbQa-|YIuUVvG0L_IwHMEhOj$Mj4Uq05 X8=0q~qBNan00000NkvXXu0mjfptF>5 literal 0 HcmV?d00001 diff --git a/tab_a.png b/tab_a.png new file mode 100644 index 0000000000000000000000000000000000000000..3b725c41c5a527a3a3e40097077d0e206a681247 GIT binary patch literal 142 zcmeAS@N?(olHy`uVBq!ia0vp^j6kfy!2~3aiye;!QlXwMjv*C{Z|8b*H5dputLHD# z=<0|*y7z(Vor?d;H&?EG&cXR}?!j-Lm&u1OOI7AIF5&c)RFE;&p0MYK>*Kl@eiymD r@|NpwKX@^z+;{u_Z~trSBfrMKa%3`zocFjEXaR$#tDnm{r-UW|TZ1%4 literal 0 HcmV?d00001 diff --git a/tab_ad.png b/tab_ad.png new file mode 100644 index 0000000000000000000000000000000000000000..e34850acfc24be58da6d2fd1ccc6b29cc84fe34d GIT binary patch literal 135 zcmeAS@N?(olHy`uVBq!ia0vp^j6kfy!2~3aiye;!QhuH;jv*C{Z|5d*H3V=pKi{In zd2jxLclDRPylmD}^l7{QOtL{vUjO{-WqItb5sQp2h-99b8^^Scr-=2mblCdZuUm?4 jzOJvgvt3{(cjKLW5(A@0qPS@<&}0TrS3j3^P6y&q2{!U5bk+Tso_B!YCpDh>v z{CM*1U8YvQRyBUHt^Ju0W_sq-?;9@_4equ-bavTs=gk796zopr0EBT&m;e9( literal 0 HcmV?d00001 diff --git a/tab_s.png b/tab_s.png new file mode 100644 index 0000000000000000000000000000000000000000..ab478c95b67371d700a20869f7de1ddd73522d50 GIT binary patch literal 184 zcmeAS@N?(olHy`uVBq!ia0vp^j6kfy!2~3aiye;!QuUrLjv*C{Z|^p8HaRdjTwH7) zC?wLlL}}I{)n%R&r+1}IGmDnq;&J#%V6)9VsYhS`O^BVBQlxOUep0c$RENLq#g8A$ z)z7%K_bI&n@J+X_=x}fJoEKed-$<>=ZI-;YrdjIl`U`uzuDWSP?o#Dmo{%SgM#oan kX~E1%D-|#H#QbHoIja2U-MgvsK&LQxy85}Sb4q9e0Efg%P5=M^ literal 0 HcmV?d00001 diff --git a/tab_sd.png b/tab_sd.png new file mode 100644 index 0000000000000000000000000000000000000000..757a565ced4730f85c833fb2547d8e199ae68f19 GIT binary patch literal 188 zcmeAS@N?(olHy`uVBq!ia0vp^j6kfy!2~3aiye;!Qq7(&jv*C{Z|_!fH5o7*c=%9% zcILh!EA=pAQKdx-Cdiev=v{eg{8Ht<{e8_NAN~b=)%W>-WDCE0PyDHGemi$BoXwcK z{>e9^za6*c1ilttWw&V+U;WCPlV9{LdC~Ey%_H(qj`xgfES(4Yz5jSTZfCt`4E$0YRsR*S^mTCR^;V&sxC8{l_Cp7w8-YPgg&ebxsLQ00$vXK>z>% literal 0 HcmV?d00001 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/text_8hpp_source.html b/text_8hpp_source.html new file mode 100644 index 0000000000..2c4e1fb50e --- /dev/null +++ b/text_8hpp_source.html @@ -0,0 +1,277 @@ + + + + + + + +Topaz: src/tz/ren/text.hpp Source File + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    Topaz 4.2.0.1 +
    +
    C++20 Graphics Engine
    +
    +
    + + + + + + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + + +
    +
    +
    text.hpp
    +
    +
    +
    1#ifndef TOPAZ_REN_TEXT_RENDERER_HPP
    +
    2#define TOPAZ_REN_TEXT_RENDERER_HPP
    +
    3#include "tz/core/data/handle.hpp"
    +
    4#include "tz/core/data/trs.hpp"
    +
    5#include "tz/core/matrix.hpp"
    +
    6#include "tz/gl/api/resource.hpp"
    +
    7#include "tz/gl/resource.hpp"
    +
    8#include "tz/gl/renderer.hpp"
    +
    9#include "tz/io/ttf.hpp"
    +
    10
    +
    11namespace tz::ren
    +
    12{
    +
    13 constexpr std::string_view alphabet = tz::io::ttf_alphabet;
    +
    14 constexpr std::optional<std::size_t> alphabet_indexof(char ch)
    +
    15 {
    +
    16 auto id = alphabet.find(ch);
    +
    17 if(id != std::string_view::npos)
    +
    18 {
    +
    19 return id;
    +
    20 }
    +
    21 return std::nullopt;
    +
    22 }
    +
    23
    +
    + +
    25 {
    +
    26 public:
    + +
    28 char_storage() = default;
    +
    29 using string_handle = tz::handle<const char*>;
    +
    + +
    31 {
    +
    32 std::uint32_t offset = 0;
    +
    33 std::uint32_t count = 0;
    +
    34 std::uint32_t font_id = 0;
    +
    35 float string_width_pixels = 0.0f;
    +
    36 tz::vec3 colour = tz::vec3::filled(1.0f);
    +
    37 float pad1 = 0.0f;
    +
    38 tz::mat4 model = tz::mat4::identity();
    +
    39 };
    +
    +
    40
    +
    41 void compute_config(tz::gl::renderer_info& cinfo, tz::gl::renderer_handle rh);
    +
    42
    +
    43 string_handle add_string(tz::gl::renderer_handle rh, tz::gl::renderer_handle ch, std::uint32_t font_id, tz::trs transform, tz::vec3 colour, std::string str);
    +
    44 void remove_string(tz::gl::renderer_handle rh, tz::gl::renderer_handle ch, string_handle sh);
    +
    45 void clear_strings(tz::gl::renderer_handle rh, tz::gl::renderer_handle ch);
    +
    46 std::size_t string_count(bool include_free_list = false) const;
    +
    47
    +
    48 void string_set_transform(tz::gl::renderer_handle rh, string_handle sh, tz::trs transform);
    +
    49 void string_set_colour(tz::gl::renderer_handle rh, string_handle sh, tz::vec3 colour);
    +
    50 void string_set_text(tz::gl::renderer_handle rh, string_handle sh, std::string);
    +
    51 float string_get_width_pixels(tz::gl::renderer_handle rh, string_handle sh) const;
    +
    52 private:
    +
    53 std::optional<std::size_t> try_find_char_region(std::size_t char_count, tz::gl::renderer_handle rh) const;
    +
    54 void update_tri_count(tz::gl::renderer_handle rh, tz::gl::renderer_handle ch) const;
    +
    55 void write_string_locator(tz::gl::renderer_handle rh, tz::gl::renderer_handle ch, std::size_t string_id, const string_locator& loc);
    +
    56 std::size_t get_char_occupancy(tz::gl::renderer_handle rh) const;
    +
    57 std::size_t get_char_capacity(tz::gl::renderer_handle rh) const;
    +
    58 void set_char_capacity(tz::gl::renderer_handle rh, std::size_t char_count);
    +
    59 std::size_t get_string_capacity(tz::gl::renderer_handle rh) const;
    +
    60 void set_string_capacity(tz::gl::renderer_handle rh, std::size_t string_count);
    +
    61 // convert ascii chars into alphabet indices (in-place)
    +
    62 static constexpr void format(std::span<char> ascii_str)
    +
    63 {
    +
    64 for(char& c : ascii_str)
    +
    65 {
    +
    66 auto maybe_index = alphabet_indexof(c);
    +
    67 if(!maybe_index.has_value())
    +
    68 {
    +
    69 maybe_index = alphabet_indexof('?');
    +
    70 tz::assert(maybe_index.has_value());
    +
    71 }
    +
    72 c = maybe_index.value();
    +
    73 }
    +
    74 }
    +
    75
    +
    76 tz::gl::resource_handle char_buffer = tz::nullhand;
    +
    77 tz::gl::resource_handle string_buffer = tz::nullhand;
    +
    78 std::size_t string_cursor = 0;
    +
    79 std::vector<string_handle> string_free_list = {};
    +
    80 };
    +
    +
    81
    +
    + +
    83 {
    +
    84 public:
    +
    85 font_storage(tz::gl::renderer_info& rinfo, std::size_t image_capacity);
    +
    86 font_storage() = default;
    +
    87 using font_handle = tz::handle<tz::io::ttf>;
    +
    88
    +
    89 void compute_config(tz::gl::renderer_info& cinfo, tz::gl::renderer_handle rh);
    +
    90 font_handle add_font(const tz::io::ttf& font, tz::gl::renderer_handle rh);
    +
    91 void remove_font(font_handle fh, tz::gl::renderer_handle rh);
    +
    92 private:
    +
    93 tz::gl::resource_handle font_buffer = tz::nullhand;
    +
    94 std::vector<tz::gl::resource_handle> images = {};
    +
    95 std::size_t image_cursor = 0;
    +
    96 std::vector<tz::gl::resource_handle> image_free_list = {};
    +
    97 std::size_t font_cursor = 0;
    +
    98 std::vector<font_handle> font_free_list = {};
    +
    99 };
    +
    +
    100
    +
    + +
    120 {
    +
    121 public:
    +
    122 using string_handle = char_storage::string_handle;
    +
    123 using font_handle = font_storage::font_handle;
    +
    124
    +
    129 text_renderer(std::size_t image_capacity = 1024u, tz::gl::renderer_options options = {}, tz::gl::ioutput* output = nullptr);
    +
    130
    +
    132 void update();
    +
    133
    +
    134 tz::gl::renderer_handle get_render_pass() const;
    +
    135
    +
    141 font_handle add_font(const tz::io::ttf& font);
    +
    146 void remove_font(font_handle fh);
    +
    147
    +
    155 string_handle add_string(font_handle font, tz::trs transform, std::string str, tz::vec3 colour = tz::vec3::filled(1.0f));
    +
    160 void remove_string(string_handle sh);
    +
    161 void clear_strings();
    +
    162
    +
    168 void string_set_transform(string_handle sh, tz::trs transform);
    +
    174 void string_set_colour(string_handle sh, tz::vec3 colour);
    +
    180 void string_set_text(string_handle sh, std::string text);
    +
    185 float string_get_width_pixels(string_handle sh) const;
    +
    186
    + +
    189 private:
    +
    190 char_storage chars;
    +
    191 font_storage fonts;
    +
    192 tz::gl::resource_handle misc_buffer = tz::nullhand;
    +
    193 tz::gl::resource_handle render_buffer = tz::nullhand;
    +
    194 tz::gl::renderer_handle ch;
    +
    195 tz::gl::renderer_handle rh;
    +
    196 };
    +
    +
    197}
    +
    198
    +
    199#endif // TOPAZ_REN_TEXT_RENDERER_HPP
    +
    Definition output.hpp:43
    +
    Helper struct which the user can use to specify which inputs, resources they want and where they want...
    Definition renderer.hpp:139
    +
    Definition handle.hpp:17
    +
    Definition ttf.hpp:181
    +
    Definition text.hpp:25
    +
    Definition text.hpp:83
    +
    A 2D text renderer.
    Definition text.hpp:120
    +
    float string_get_width_pixels(string_handle sh) const
    Get the horizontal width of the string, in pixels.
    Definition text.cpp:597
    +
    void remove_font(font_handle fh)
    Remove an existing font.
    Definition text.cpp:543
    +
    void remove_string(string_handle sh)
    Remove an existing rendered text.
    Definition text.cpp:559
    +
    void string_set_colour(string_handle sh, tz::vec3 colour)
    Set the colour of an existing rendered text.
    Definition text.cpp:582
    +
    void append_to_render_graph()
    Add the text-renderer to the render-graph, causing it to be invoked every frame.
    Definition text.cpp:604
    +
    string_handle add_string(font_handle font, tz::trs transform, std::string str, tz::vec3 colour=tz::vec3::filled(1.0f))
    Add a new rendered text.
    Definition text.cpp:550
    +
    void update()
    Invoke this every update.
    Definition text.cpp:521
    +
    void string_set_text(string_handle sh, std::string text)
    Edit an existing rendered text.
    Definition text.cpp:589
    +
    void string_set_transform(string_handle sh, tz::trs transform)
    Set the transform (in screen-space) of an existing rendered text.
    Definition text.cpp:575
    +
    font_handle add_font(const tz::io::ttf &font)
    Add a new font.
    Definition text.cpp:536
    +
    vector< float, 3 > vec3
    A vector of three floats.
    Definition vector.hpp:217
    +
    void assert(bool condition, detail::format_string fmt="<No message>", Args &&... args)
    Assert on a condition.
    Definition debug.inl:35
    +
    matrix< float, 4, 4 > mat4
    Definition matrix.hpp:208
    + +
    Definition trs.hpp:8
    +
    + + + + diff --git a/time_8hpp_source.html b/time_8hpp_source.html new file mode 100644 index 0000000000..16e138134c --- /dev/null +++ b/time_8hpp_source.html @@ -0,0 +1,271 @@ + + + + + + + +Topaz: src/tz/core/time.hpp Source File + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    Topaz 4.2.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..dd45e2b8db --- /dev/null +++ b/transform__hierarchy_8hpp_source.html @@ -0,0 +1,213 @@ + + + + + + + +Topaz: src/tz/core/data/transform_hierarchy.hpp Source File + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    Topaz 4.2.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/free_list.hpp"
    +
    4#include "tz/core/data/trs.hpp"
    +
    5#include "tz/core/data/handle.hpp"
    +
    6#include <optional>
    +
    7#include <cstddef>
    +
    8
    +
    9namespace tz
    +
    10{
    +
    15 template<typename T>
    +
    + +
    17 {
    +
    19 mutable T data;
    + +
    23 std::optional<unsigned int> parent = std::nullopt;
    +
    25 std::vector<unsigned int> children = {};
    +
    26 };
    +
    +
    27
    +
    33 template<typename T = void*>
    +
    + +
    35 {
    +
    36 public:
    + +
    +
    39 enum class remove_strategy
    +
    40 {
    +
    42 patch_children_to_parent,
    +
    44 remove_children,
    +
    46 detach_children,
    +
    48 impl_do_nothing,
    +
    49 };
    +
    + +
    56 std::size_t size() const;
    +
    61 bool empty() const{return this->size() == 0;}
    +
    66 void clear();
    +
    71 std::vector<unsigned int> get_root_node_ids() const;
    +
    77 std::optional<unsigned int> find_node(const T& value) const;
    +
    83 std::optional<unsigned int> find_node_if(tz::function<bool, const T&> auto predicate) const;
    +
    84
    +
    85 // returns id of the new node.
    +
    93 unsigned int add_node(tz::trs local_transform = {}, T data = {}, std::optional<unsigned int> parent = std::nullopt);
    +
    100 void remove_node(unsigned int node_id, remove_strategy strategy);
    +
    101 // returns offset to be applied to the previous hierarchy's set of nodes to get their corresponding node ids
    +
    102 // within this hierarchy
    +
    109 unsigned int add_hierarchy(const transform_hierarchy<T>& tree);
    +
    117 unsigned int add_hierarchy_onto(const transform_hierarchy<T>& tree, unsigned int node_id);
    +
    124 transform_hierarchy<T> export_node(unsigned int id) const;
    +
    131 const transform_node<T>& get_node(unsigned int id) const;
    +
    137 tz::trs get_global_transform(unsigned int id) const;
    +
    143 void iterate_children(unsigned int id, tz::action<unsigned int> auto callback) const;
    +
    150 void iterate_descendants(unsigned int id, tz::action<unsigned int> auto callback, bool callback_thread_safe = false) const;
    +
    151 // invoke callback for each ancestor (parent, their parent, etc...) of the node `id`
    +
    157 void iterate_ancestors(unsigned int id, tz::action<unsigned int> auto callback) const;
    +
    163 void iterate_nodes(tz::action<unsigned int> auto callback, bool callback_thread_safe = false) const;
    +
    164
    +
    165 bool node_cache_miss(unsigned int node_id) const;
    +
    166 void cache_write(unsigned int node_id, tz::trs global) const;
    +
    167 void clear_cache_for(unsigned int node_id) const;
    +
    168 void clear_cache() const;
    +
    169
    +
    170 void dbgui(bool display_gizmo = true);
    +
    171 bool dbgui_node(unsigned int node_id, bool display_gizmo);
    +
    172 private:
    +
    173 std::vector<transform_node<T>> nodes = {};
    +
    174 std::vector<std::size_t> node_free_list = {};
    +
    175 std::unordered_map<T, std::size_t> value_node_map = {};
    +
    176 mutable std::vector<std::size_t> node_local_transform_hashes = {};
    +
    177 mutable std::vector<tz::trs> node_global_transform_cache = {};
    +
    178 };
    +
    +
    179}
    +
    180
    +
    181#include "tz/core/data/transform_hierarchy.inl"
    +
    182#endif // TZ_CORE_DATA_TRANSFORM_HIERARCHY_HPP
    +
    Represents a hierarchy of 3D transformations, with a payload applied.
    Definition transform_hierarchy.hpp:35
    +
    remove_strategy
    Definition transform_hierarchy.hpp:40
    +
    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:286
    +
    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:215
    +
    const transform_node< T > & get_node(unsigned int id) const
    Retrieve the node corresponding to the given index.
    Definition transform_hierarchy.inl:277
    +
    void iterate_descendants(unsigned int id, tz::action< unsigned int > auto callback, bool callback_thread_safe=false) const
    Invoke a callback for each descendent of the node corresponding to id.
    Definition transform_hierarchy.inl:323
    +
    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:267
    +
    transform_hierarchy()=default
    Create a new, empty hierarchy.
    +
    bool empty() const
    Query as to whether the hierarchy has nodes.
    Definition transform_hierarchy.hpp:61
    +
    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:370
    +
    void remove_node(unsigned int node_id, remove_strategy strategy)
    Remove a node.
    Definition transform_hierarchy.inl:159
    +
    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:312
    +
    std::size_t size() const
    Retrieves the number of nodes within the hierarchy.
    Definition transform_hierarchy.inl:24
    +
    void iterate_nodes(tz::action< unsigned int > auto callback, bool callback_thread_safe=false) const
    Invoke a callback for each node within the hierarchy, in-order.
    Definition transform_hierarchy.inl:382
    +
    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:231
    +
    Just like a tz::function, except will never return anything.
    Definition types.hpp:55
    +
    function concept which constrains F to any type that can be called with Args... to produce a Result.
    Definition types.hpp:46
    +
    Represents a node within a transform hierarchy.
    Definition transform_hierarchy.hpp:17
    +
    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:23
    +
    std::vector< unsigned int > children
    List of all indices representing this node's children.
    Definition transform_hierarchy.hpp:25
    +
    T data
    User-data. You can use this for whatever you wish. Must be at least moveable.
    Definition transform_hierarchy.hpp:19
    +
    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:21
    +
    Definition trs.hpp:8
    +
    + + + + diff --git a/transform__hierarchy_8inl_source.html b/transform__hierarchy_8inl_source.html new file mode 100644 index 0000000000..cdc61520d3 --- /dev/null +++ b/transform__hierarchy_8inl_source.html @@ -0,0 +1,699 @@ + + + + + + + +Topaz: src/tz/core/data/transform_hierarchy.inl Source File + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    Topaz 4.2.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 "tz/core/job/job.hpp"
    +
    5#include <set>
    +
    6#include <type_traits>
    +
    7#include <sstream>
    +
    8
    +
    9namespace tz
    +
    10{
    +
    11 template<typename T>
    +
    +
    12 concept has_dbgui_method = requires(T t)
    +
    13 {
    +
    14 {t.dbgui()} -> std::same_as<void>;
    +
    15 };
    +
    +
    16
    +
    17 template<typename T>
    +
    +
    18 concept is_printable = requires(T t)
    +
    19 {
    +
    20 {std::ostringstream{} << t};
    +
    21 };
    +
    +
    22
    +
    23 template<typename T>
    +
    +
    24 std::size_t transform_hierarchy<T>::size() const
    +
    25 {
    +
    26 return this->nodes.size();
    +
    27 }
    +
    +
    28
    +
    29 template<typename T>
    +
    + +
    31 {
    +
    32 this->nodes.clear();
    +
    33 this->node_free_list.clear();
    +
    34 this->value_node_map.clear();
    +
    35 }
    +
    +
    36
    +
    37 template<typename T>
    +
    +
    38 std::vector<unsigned int> transform_hierarchy<T>::get_root_node_ids() const
    +
    39 {
    +
    40 TZ_PROFZONE("transform_hierarchy - get root node ids", 0xFF0000AA);
    +
    41 std::vector<unsigned int> ret;
    +
    42 // for each element, check if any element has that as a child.
    +
    43 // if nobody does, its a root node.
    +
    44
    +
    45 // linear approach: iterate through each node and collate a list of all children ever. iterate through again and filter out any that appear in the list of children.
    +
    46 std::set<unsigned int> all_children;
    +
    47 for(std::size_t i = 0; i < this->size(); i++)
    +
    48 {
    +
    49 const auto& node = this->nodes[i];
    +
    50 for(auto child : node.children)
    +
    51 {
    +
    52 all_children.insert(child);
    +
    53 }
    +
    54 }
    +
    55
    +
    +
    56 for(std::size_t i = 0; i < this->size(); i++)
    +
    57 {
    +
    58 if(!all_children.contains(i))
    +
    59 {
    +
    60 ret.push_back(i);
    +
    61 }
    +
    62 }
    +
    63
    +
    64 // quadratic approach is: for each element a, for each element b, is a any of bs children? if never then a is root node
    +
    65 //for(std::size_t i = 0; i < this->size(); i++)
    +
    +
    66 //{
    +
    67 // bool found_child = false;
    +
    68 // for(std::size_t j = 0; j < this->size(); j++)
    +
    69 // {
    +
    70 // if(i == j) continue;
    +
    +
    71 // TZ_PROFZONE("get root node ids - quadratic iterate", 0xFF0000AA);
    +
    72 // const auto& jnode = this->nodes[j];
    +
    73 // auto iter = std::find(jnode.children.begin(), jnode.children.end(), i);
    +
    74 // if(iter != jnode.children.end())
    +
    75 // {
    +
    76 // // i is a child of j
    +
    +
    77 // // skip this one, its not a root node.
    +
    78 // found_child = true;
    +
    79 // break;
    +
    80 // }
    +
    81 // }
    +
    82 // if(!found_child)
    +
    +
    83 // {
    +
    84 // ret.push_back(i);
    +
    85 // }
    +
    86 //}
    +
    87 return ret;
    +
    88 }
    +
    89
    +
    90 template<typename T>
    +
    +
    91 std::optional<unsigned int> transform_hierarchy<T>::find_node(const T& value) const
    +
    92 {
    +
    +
    93 TZ_PROFZONE("transform_hierarchy - find node", 0xFF0000AA);
    +
    94 auto iter = this->value_node_map.find(value);
    +
    95 if(iter == this->value_node_map.end())
    +
    96 {
    +
    97 return std::nullopt;
    +
    98 }
    +
    99 return iter->second;
    +
    +
    100 /*
    +
    101 auto iter = std::find_if(this->nodes.begin(), this->nodes.end(),
    +
    102 [value](const auto& node)
    +
    103 {
    +
    104 return node.data == value;
    +
    105 });
    +
    106 if(iter == this->nodes.end())
    +
    107 {
    +
    108 return std::nullopt;
    +
    + +
    110 return std::distance(this->nodes.begin(), iter);
    +
    111 */
    +
    112 }
    +
    113
    +
    114 template<typename T>
    +
    +
    115 std::optional<unsigned int> transform_hierarchy<T>::find_node_if(tz::function<bool, const T&> auto predicate) const
    +
    116 {
    +
    +
    117 TZ_PROFZONE("transform_hierarchy - find node if", 0xFF0000AA);
    +
    118 auto iter = std::find_if(this->nodes.begin(), this->nodes.end(),
    +
    119 [predicate](const auto& node)
    +
    120 {
    +
    121 return predicate(node.data);
    +
    122 });
    +
    123 if(iter == this->nodes.end())
    +
    + +
    125 return std::nullopt;
    +
    126 }
    +
    127 return std::distance(this->nodes.begin(), iter);
    +
    128 }
    +
    129
    +
    130 template<typename T>
    +
    +
    131 unsigned int transform_hierarchy<T>::add_node(tz::trs local_transform, T data, std::optional<unsigned int> parent)
    +
    132 {
    +
    133 TZ_PROFZONE("transform_hierarchy - add node", 0xFF0000AA);
    +
    134 std::size_t id;
    +
    135 if(this->node_free_list.size())
    +
    136 {
    +
    +
    137 id = this->node_free_list.front();
    +
    138 tz::report("Use recycled node id %zu", id);
    +
    139 this->node_free_list.erase(this->node_free_list.begin());
    +
    140 this->nodes[id] = {.data = data, .local_transform = local_transform, .parent = parent};
    +
    141 }
    +
    142 else
    +
    + +
    144 id = this->nodes.size();
    +
    145 this->nodes.push_back({.data = data, .local_transform = local_transform, .parent = parent});
    +
    146 this->node_local_transform_hashes.push_back(std::numeric_limits<std::size_t>::max());
    +
    147 this->node_global_transform_cache.push_back({});
    +
    148 }
    +
    149 if(parent.has_value())
    +
    + +
    151 this->nodes[parent.value()].children.push_back(id);
    +
    152 }
    +
    153 tz::assert(this->value_node_map.find(data) == this->value_node_map.end(), "Node values must be unique. Detected there was already an existing node with the given value.");
    +
    154 this->value_node_map[data] = id;
    +
    155 return id;
    +
    156 }
    +
    + +
    158 template<typename T>
    +
    +
    159 void transform_hierarchy<T>::remove_node(unsigned int node_id, remove_strategy strategy)
    +
    160 {
    +
    161 TZ_PROFZONE("transform_hierarchy - remove node", 0xFF0000AA);
    +
    162 tz::assert(std::find(this->node_free_list.begin(), this->node_free_list.end(), node_id) == this->node_free_list.end(), "Double remove detected on node %u", node_id);
    +
    +
    163 tz::report("Remove node %u", node_id);
    +
    164 tz::assert(node_id < this->nodes.size(), "Invalid node_id %zu (node count: %zu)", node_id, this->nodes.size());
    +
    165 // what if the node had a parent?
    +
    166 const auto& node = this->get_node(node_id);
    +
    167 if(node.parent.has_value())
    +
    168 {
    +
    169 auto& parent = this->nodes[node.parent.value()];
    +
    170 parent.children.erase(std::remove(parent.children.begin(), parent.children.end(), node_id), parent.children.end());
    +
    171 }
    +
    172 this->value_node_map.erase(node.data);
    +
    173 switch(strategy)
    +
    174 {
    +
    175 case remove_strategy::patch_children_to_parent:
    +
    176 if(node.parent.has_value())
    +
    177 {
    +
    178 for(unsigned int child_node_idx : node.children)
    +
    179 {
    +
    180 auto& parent = this->nodes[node.parent.value()];
    +
    181 this->nodes[child_node_idx].parent = node.parent.value();
    +
    182 parent.children.push_back(child_node_idx);
    +
    183 }
    +
    184 }
    +
    185 for(unsigned int child_node_idx : node.children)
    +
    186 {
    +
    187 this->nodes[child_node_idx].parent = std::nullopt;
    +
    188 }
    +
    189 break;
    +
    190 case remove_strategy::remove_children:
    +
    191 {
    +
    192 // node.children will change each iteration, so work on a copy.
    +
    193 while(node.children.size())
    +
    194 {
    +
    195 this->remove_node(node.children.front(), strategy);
    +
    196 }
    +
    197 }
    +
    198 break;
    +
    199 case remove_strategy::detach_children:
    +
    200 for(unsigned int child_node_idx : node.children)
    +
    201 {
    +
    202 this->nodes[child_node_idx].parent = std::nullopt;
    +
    203 }
    +
    204 break;
    +
    205 case remove_strategy::impl_do_nothing:
    +
    206 break;
    +
    207 }
    +
    208 this->nodes[node_id] = {};
    +
    209 this->node_free_list.push_back(node_id);
    +
    210 this->clear_cache_for(node_id);
    +
    211 //this->nodes.erase(this->nodes.begin() + node_id);
    +
    212 }
    +
    213
    +
    214 template<typename T>
    +
    + +
    216 {
    +
    217 unsigned int offset = this->size();
    +
    218 for(std::size_t i = 0; i < tree.size(); i++)
    +
    219 {
    +
    220 auto node = tree.get_node(i);
    +
    221 if(node.parent.has_value())
    +
    222 {
    +
    223 node.parent.value() += offset;
    +
    224 }
    +
    225 this->add_node(node.local_transform, node.data, node.parent);
    +
    226 }
    +
    227 return offset;
    +
    228 }
    +
    +
    229
    +
    230 template<typename T>
    +
    +
    231 unsigned int transform_hierarchy<T>::add_hierarchy_onto(const transform_hierarchy<T>& tree, unsigned int node_id)
    +
    232 {
    +
    233 unsigned int offset = this->size();
    +
    234 for(std::size_t i = 0; i < tree.size(); i++)
    +
    235 {
    +
    236 auto node = tree.get_node(i);
    +
    237 if(node.parent.has_value())
    +
    238 {
    +
    239 node.parent.value() += offset;
    +
    240 }
    +
    241 else
    +
    242 {
    +
    243 node.parent = node_id;
    +
    244 }
    +
    245 this->add_node(node.local_transform, node.data, node.parent);
    +
    246 }
    +
    247 return offset;
    +
    248 }
    +
    +
    249
    +
    250 template<typename T>
    +
    251 void expand_children(const transform_hierarchy<T>& src, transform_hierarchy<T>& hier, unsigned int src_id, unsigned int node_id)
    +
    252 {
    +
    253 TZ_PROFZONE("transform_hierarchy - expand children", 0xFF0000AA);
    +
    254 const auto& src_node = src.get_node(src_id);
    +
    255 const auto& node = hier.get_node(node_id);
    +
    256 for(std::size_t i = 0; i < src_node.children.size(); i++)
    +
    257 {
    +
    258 // get the children of the source node. make a copy for the dest node and recursce on children.
    +
    259 unsigned int src_child = src_node.children[i];
    +
    260 const auto& src_child_node = src.get_node(src_child);
    +
    261 unsigned int child = hier.add_node(src_child_node.local_transform, src_child_node.data, node_id);
    +
    262 expand_children(src, hier, src_child, child);
    +
    263 }
    +
    264 }
    +
    265
    +
    266 template<typename T>
    +
    + +
    268 {
    +
    269 auto node = this->get_node(id);
    + +
    271 unsigned int new_root = ret.add_node(this->get_global_transform(id), node.data);
    +
    272 expand_children<T>(*this, ret, id, new_root);
    +
    273 return ret;
    +
    274 }
    +
    +
    275
    +
    276 template<typename T>
    +
    + +
    278 {
    +
    279 // dont instrument this. this gets called a **ton** even on tiny scenes.
    +
    280 //TZ_PROFZONE("transform_hierarchy - get node", 0xFF0000AA);
    +
    281 tz::assert(id < this->nodes.size(), "Invalid node id %u", id);
    +
    282 return this->nodes[id];
    +
    283 }
    +
    +
    284
    +
    285 template<typename T>
    +
    + +
    287 {
    +
    288 TZ_PROFZONE("transform_hierarchy - get global transform", 0xFF0000AA);
    +
    289 if(!this->node_cache_miss(id))
    +
    290 {
    +
    291 // cache is correct, just return that.
    +
    292 return this->node_global_transform_cache[id];
    +
    293 }
    +
    294 //tz::report("transform hierarchy cache miss at %zu", id);
    +
    295 const auto& n = this->get_node(id);
    +
    296 // cache is incorrect. we should also dirty all children as our local has changed.
    +
    297 for(unsigned int child : n.children)
    +
    298 {
    +
    299 clear_cache_for(child);
    +
    300 }
    +
    301 tz::trs global = n.local_transform;
    +
    302 std::optional<unsigned int> p = n.parent;
    +
    303 if(p.has_value())
    +
    304 {
    +
    305 global.combine(get_global_transform(p.value()));
    +
    306 }
    +
    307 this->cache_write(id, global);
    +
    308 return global;
    +
    309 }
    +
    +
    310
    +
    311 template<typename T>
    +
    + +
    313 {
    +
    314 TZ_PROFZONE("transform_hierarchy - iterate children", 0xFF0000AA);
    +
    315 const auto& node = this->get_node(id);
    +
    316 for(unsigned int child : node.children)
    +
    317 {
    +
    318 callback(child);
    +
    319 }
    +
    320 }
    +
    +
    321
    +
    322 template<typename T>
    +
    +
    323 void transform_hierarchy<T>::iterate_descendants(unsigned int id, tz::action<unsigned int> auto callback, bool callback_thread_safe) const
    +
    324 {
    +
    325 TZ_PROFZONE("transform_hierarchy - iterate descendants", 0xFF0000AA);
    +
    326 const auto& node = this->get_node(id);
    +
    327
    +
    328 if(callback_thread_safe && node.children.size() >= tz::job_system().worker_count())
    +
    329 {
    +
    330 // if we're allowed to spawn jobs to help, let's do it.
    +
    331 const std::size_t job_count = tz::job_system().worker_count();
    +
    332 std::size_t children_per_job = node.children.size() / job_count;
    +
    333 std::size_t remainder_children = node.children.size() % job_count;
    +
    334
    +
    335 std::vector<tz::job_handle> jobs;
    +
    336 jobs.resize(job_count);
    +
    337 for(std::size_t i = 0; i < job_count; i++)
    +
    338 {
    +
    339 jobs[i] = tz::job_system().execute([&node, &callback, this, offset = i * children_per_job, child_count = children_per_job]()
    +
    340 {
    +
    341 for(std::size_t j = 0; j < child_count; j++)
    +
    342 {
    +
    343 unsigned int child = node.children[j + offset];
    +
    344 callback(child); this->iterate_descendants(child, callback, false);
    +
    345 }
    +
    346 });
    +
    347 }
    +
    348 for(std::size_t i = node.children.size() - remainder_children; i < node.children.size(); i++)
    +
    349 {
    +
    350 unsigned int child = node.children[i];
    +
    351 callback(child);
    +
    352 this->iterate_descendants(child, callback, false);
    +
    353 }
    +
    354 for(tz::job_handle jh : jobs)
    +
    355 {
    +
    356 tz::job_system().block(jh);
    +
    357 }
    +
    358 }
    +
    359 else
    +
    360 {
    +
    361 for(unsigned int child : node.children)
    +
    362 {
    +
    363 callback(child);
    +
    364 this->iterate_descendants(child, callback, callback_thread_safe);
    +
    365 }
    +
    366 }
    +
    367 }
    +
    +
    368
    +
    369 template<typename T>
    +
    + +
    371 {
    +
    372 TZ_PROFZONE("transform_hierarchy - iterate ancestors", 0xFF0000AA);
    +
    373 auto maybe_parent = this->get_node(id).parent;
    +
    374 if(maybe_parent.has_value())
    +
    375 {
    +
    376 callback(maybe_parent.value());
    +
    377 this->iterate_ancestors(maybe_parent.value(), callback);
    +
    378 }
    +
    379 }
    +
    +
    380
    +
    381 template<typename T>
    +
    + +
    383 {
    +
    384 TZ_PROFZONE("transform_hierarchy - iterate nodes", 0xFF0000AA);
    +
    385 auto root_node_ids = this->get_root_node_ids();
    +
    386 for(unsigned int root_node : root_node_ids)
    +
    387 {
    +
    388 {
    +
    389 TZ_PROFZONE("iterate nodes - invoke callback", 0xFF0000AA);
    +
    390 callback(root_node);
    +
    391 }
    +
    392 TZ_PROFZONE("iterate nodes - iterate descendants", 0xFF0000AA);
    +
    393 this->iterate_descendants(root_node, callback, callback_thread_safe);
    +
    394 }
    +
    395 }
    +
    +
    +
    396
    +
    397 template<typename T>
    +
    398 bool transform_hierarchy<T>::node_cache_miss(unsigned int node_id) const
    +
    399 {
    +
    400 std::size_t hash = std::hash<tz::trs>{}(this->get_node(node_id).local_transform);
    +
    401 tz::assert(node_id < this->node_local_transform_hashes.size());
    +
    402 if(hash == this->node_local_transform_hashes[node_id])
    +
    403 {
    +
    404 return false;
    +
    405 }
    +
    406 this->node_local_transform_hashes[node_id] = hash;
    +
    407 return true;
    +
    408 }
    +
    409
    +
    410 template<typename T>
    +
    411 void transform_hierarchy<T>::cache_write(unsigned int node_id, tz::trs global) const
    +
    412 {
    +
    413 this->node_global_transform_cache[node_id] = global;
    +
    414 }
    +
    415
    +
    416 template<typename T>
    +
    417 void transform_hierarchy<T>::clear_cache_for(unsigned int node_id) const
    +
    418 {
    +
    419 this->node_local_transform_hashes[node_id] = std::numeric_limits<std::size_t>::max();
    +
    420 }
    +
    421
    +
    422 template<typename T>
    +
    423 void transform_hierarchy<T>::clear_cache() const
    +
    424 {
    +
    425 for(auto& hash : this->node_local_transform_hashes)
    +
    426 {
    +
    427 hash = std::numeric_limits<std::size_t>::max();
    +
    428 }
    +
    429 }
    +
    430
    +
    431 template<typename T>
    +
    432 void transform_hierarchy<T>::dbgui(bool display_gizmo)
    +
    433 {
    +
    434 for(unsigned int root : this->get_root_node_ids())
    +
    435 {
    +
    436 if(!this->dbgui_node(root, display_gizmo))
    +
    437 {
    +
    438 break;
    +
    439 }
    +
    440 }
    +
    441 }
    +
    442
    +
    443 template<typename T>
    +
    444 bool transform_hierarchy<T>::dbgui_node(unsigned int node_id, bool display_gizmo)
    +
    445 {
    +
    446 const transform_node<T>& node = this->get_node(node_id);
    +
    447 if(std::find(this->node_free_list.begin(), this->node_free_list.end(), node_id) != this->node_free_list.end())
    +
    448 {
    +
    449 // its on the free-list. this is a deleted node. skip
    +
    450 return true;
    +
    451 }
    +
    452 std::string node_name;
    +
    453 if constexpr(is_printable<T>)
    +
    454 {
    +
    455 std::ostringstream oss;
    +
    456 oss << node.data;
    +
    457 node_name = "Node \"" + oss.str() + "\"";
    +
    458 }
    +
    459 else
    +
    460 {
    +
    461 node_name = "Node " + std::to_string(node_id);
    +
    462 }
    +
    463 bool ret = true;
    +
    464 if(ImGui::TreeNode(node_name.c_str()))
    +
    465 {
    +
    466 if constexpr(has_dbgui_method<T>)
    +
    467 {
    +
    468 node.data.dbgui();
    +
    469 }
    +
    470 if(display_gizmo)
    +
    471 {
    +
    472 node.local_transform.dbgui();
    +
    473 tz::mat4 local = node.local_transform.matrix();
    +
    474 tz::mat4 global = this->get_global_transform(node_id).matrix();
    +
    475 if(local != tz::mat4::identity())
    +
    476 {
    +
    477 ImGui::Text("Local Transform");
    +
    478 tz::dbgui_model(local);
    +
    479 ImGui::Text("Global Transform");
    +
    480 tz::dbgui_model(global);
    +
    481 }
    +
    482 }
    +
    483 for(unsigned int child_idx : node.children)
    +
    484 {
    +
    485 if(!this->dbgui_node(child_idx, display_gizmo))
    +
    486 {
    +
    487 break;
    +
    488 }
    +
    489 }
    +
    490 if(ImGui::Button("X"))
    +
    491 {
    +
    492 this->remove_node(node_id, remove_strategy::patch_children_to_parent);
    +
    493 ret = false;
    +
    494 }
    +
    495 ImGui::TreePop();
    +
    496 }
    +
    497 return ret;
    +
    498 }
    +
    499}
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    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:35
    +
    remove_strategy
    Definition transform_hierarchy.hpp:40
    +
    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:131
    +
    const transform_node< T > & get_node(unsigned int id) const
    Retrieve the node corresponding to the given index.
    Definition transform_hierarchy.inl:277
    +
    void clear()
    Remove all nodes from the hierarchy, emptying it.
    Definition transform_hierarchy.inl:30
    +
    std::size_t size() const
    Retrieves the number of nodes within the hierarchy.
    Definition transform_hierarchy.inl:24
    +
    Just like a tz::function, except will never return anything.
    Definition types.hpp:55
    +
    function concept which constrains F to any type that can be called with Args... to produce a Result.
    Definition types.hpp:46
    +
    Definition transform_hierarchy.inl:12
    +
    Definition transform_hierarchy.inl:18
    +
    job_system_t & job_system()
    Retrieve the global job system.
    Definition job.cpp:22
    +
    void assert(bool condition, detail::format_string fmt="<No message>", Args &&... args)
    Assert on a condition.
    Definition debug.inl:35
    +
    matrix< float, 4, 4 > mat4
    Definition matrix.hpp:208
    +
    void report(detail::format_string fmt, Args &&... args)
    Print out the formatted message to standard output, including source location information.
    Definition debug.inl:56
    +
    Definition job.hpp:19
    +
    Represents a node within a transform hierarchy.
    Definition transform_hierarchy.hpp:17
    +
    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:23
    +
    std::vector< unsigned int > children
    List of all indices representing this node's children.
    Definition transform_hierarchy.hpp:25
    +
    T data
    User-data. You can use this for whatever you wish. Must be at least moveable.
    Definition transform_hierarchy.hpp:19
    +
    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:21
    +
    Definition trs.hpp:8
    +
    + + + + diff --git a/trs_8hpp_source.html b/trs_8hpp_source.html new file mode 100644 index 0000000000..340e8d9dc2 --- /dev/null +++ b/trs_8hpp_source.html @@ -0,0 +1,165 @@ + + + + + + + +Topaz: src/tz/core/data/trs.hpp Source File + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    Topaz 4.2.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
    +
    vector< float, 3 > vec3
    A vector of three floats.
    Definition vector.hpp:217
    +
    vector< float, 2 > vec2
    A vector of two floats.
    Definition vector.hpp:215
    +
    matrix< float, 4, 4 > mat4
    Definition matrix.hpp:208
    +
    Definition trs.hpp:8
    +
    + + + + diff --git a/ttf_8hpp_source.html b/ttf_8hpp_source.html new file mode 100644 index 0000000000..e695dfc535 --- /dev/null +++ b/ttf_8hpp_source.html @@ -0,0 +1,400 @@ + + + + + + + +Topaz: src/tz/io/ttf.hpp Source File + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    Topaz 4.2.0.1 +
    +
    C++20 Graphics Engine
    +
    +
    + + + + + + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + + +
    +
    +
    ttf.hpp
    +
    +
    +
    1#ifndef TOPAZ_IO_TTF_HPP
    +
    2#define TOPAZ_IO_TTF_HPP
    +
    3#include "tz/io/image.hpp"
    +
    4#include "tz/core/data/vector.hpp"
    +
    5#include <string_view>
    +
    6#include <vector>
    +
    7#include <limits>
    +
    8#include <unordered_map>
    +
    9
    +
    10namespace tz::io
    +
    11{
    +
    + +
    13 {
    +
    14 std::uint32_t scalar_type = 0u;
    +
    15 std::uint16_t num_tables = 0u;
    +
    16 std::uint16_t search_range = 0u;
    +
    17 std::uint16_t entry_selector = 0u;
    +
    18 std::uint16_t range_shift = 0u;
    +
    19 };
    +
    +
    20
    +
    +
    21 struct ttf_table
    +
    22 {
    +
    23 char tag[5] = "DEAD";
    +
    24 std::uint32_t checksum = 0u;
    +
    25 std::uint32_t offset = 0u;
    +
    26 std::uint32_t length = 0u;
    +
    27 };
    +
    +
    28
    +
    + +
    30 {
    +
    31 std::uint16_t major_version = 0u;
    +
    32 std::uint16_t minor_version = 0u;
    +
    33 std::int32_t font_revision_fixed_point = 0;
    +
    34 std::uint32_t checksum_adjustment = 0u;
    +
    35 std::uint32_t magic = 0u;
    +
    36 std::uint16_t flags = 0u;
    +
    37 std::uint16_t units_per_em = 0u;
    +
    38 std::uint64_t created_date = 0u;
    +
    39 std::uint64_t modified_date = 0u;
    +
    40 std::int16_t xmin = 0;
    +
    41 std::int16_t ymin = 0;
    +
    42 std::int16_t xmax = std::numeric_limits<std::int16_t>::max();
    +
    43 std::int16_t ymax = std::numeric_limits<std::int16_t>::max();
    +
    44 std::uint16_t mac_style = 0u;
    +
    45 std::uint16_t lowest_rec_ppem = 0u;
    +
    46 std::int16_t font_direction_hint = 0;
    +
    47 std::int16_t index_to_loc_format = 0;
    +
    48 std::int16_t glyph_data_format = 0;
    +
    49 bool canary = false;
    +
    50 };
    +
    +
    51
    +
    + +
    53 {
    +
    54 std::int32_t version_fixed_point = 0;
    +
    55 std::uint16_t num_glyphs = 0u;
    +
    56 std::uint16_t max_points = 0u;
    +
    57 std::uint16_t max_contours = 0u;
    +
    58 std::uint16_t max_composite_points = 0u;
    +
    59 std::uint16_t max_composite_contours = 0u;
    +
    60 std::uint16_t max_zones = 0u;
    +
    61 std::uint16_t max_twilight_points = 0u;
    +
    62 std::uint16_t max_storage = 0u;
    +
    63 std::uint16_t max_function_defs = 0u;
    +
    64 std::uint16_t max_instruction_defs = 0u;
    +
    65 std::uint16_t max_stack_elements = 0u;
    +
    66 std::uint16_t max_size_of_instructions = 0u;
    +
    67 std::uint16_t max_component_elements = 0u;
    +
    68 std::uint16_t max_component_depth = 0u;
    +
    69 bool canary = false;
    +
    70 };
    +
    +
    71
    +
    + +
    73 {
    +
    74 std::int32_t version_fixed_point = 0;
    +
    75 std::int16_t ascent = 0;
    +
    76 std::int16_t descent = 0;
    +
    77 std::int16_t line_gap = 0;
    +
    78 std::uint16_t advance_width_max = 0u;
    +
    79 std::int16_t min_left_side_bearing = 0;
    +
    80 std::int16_t min_right_side_bearing = 0;
    +
    81 std::int16_t x_max_extent = 0;
    +
    82 std::int16_t caret_slope_rise = 0;
    +
    83 std::int16_t caret_slope_run = 0;
    +
    84 std::int16_t caret_offset = 0;
    +
    85
    +
    86 std::int16_t metric_data_format = 0;
    +
    87 std::uint16_t num_of_long_hor_metrics = 0u;
    +
    88 bool canary = false;
    +
    89 };
    +
    +
    90
    +
    + +
    92 {
    +
    + +
    94 {
    +
    95 std::uint16_t advance_width = 0u;
    +
    96 std::int16_t left_side_bearing = 0;
    +
    97 };
    +
    +
    98
    +
    99 std::vector<hmetrics_t> hmetrics = {};
    +
    100 std::vector<std::int16_t> left_side_bearings = {};
    +
    101 bool canary = false;
    +
    102 };
    +
    +
    103
    +
    + +
    105 {
    +
    106 std::vector<std::uint16_t> locations16 = {};
    +
    107 std::vector<std::uint32_t> locations32 = {};
    +
    108 bool canary = false;
    +
    109 };
    +
    +
    110
    +
    + +
    112 {
    +
    113 std::int16_t number_of_contours = 0;
    +
    114 std::int16_t xmin = 0;
    +
    115 std::int16_t ymin = 0;
    +
    116 std::int16_t xmax = 0;
    +
    117 std::int16_t ymax = 0;
    +
    118
    +
    119 std::vector<std::byte> instructions = {};
    +
    120 std::vector<std::byte> flags = {};
    +
    121 std::vector<int> x_coords = {};
    +
    122 std::vector<int> y_coords = {};
    +
    123 std::vector<std::uint16_t> end_pts_of_contours = {};
    +
    124 };
    +
    +
    125
    +
    + +
    127 {
    +
    128 std::vector<ttf_glyf_elem> glyfs = {};
    +
    129 bool canary = false;
    +
    130 };
    +
    +
    131
    +
    + +
    133 {
    +
    134 std::uint16_t platform_id = 0u;
    +
    135 std::uint16_t encoding_id = 0u;
    +
    136 std::uint32_t offset = 0u;
    +
    137 };
    +
    +
    138
    +
    + +
    140 {
    +
    141 std::uint16_t version = 0u;
    +
    142 std::uint16_t num_tables = 0u;
    +
    143 std::vector<ttf_cmap_encoding_record> encoding_records = {};
    +
    144 std::unordered_map<std::uint16_t, std::int16_t> glyph_index_map = {};
    +
    145 bool canary = false;
    +
    146 };
    +
    +
    147
    +
    + +
    149 {
    +
    150 tz::vec2 position = tz::vec2ui::zero();
    +
    151 tz::vec2 dimensions = tz::vec2ui::zero();
    +
    152 int left_side_bearing = 0u;
    +
    153 int right_side_bearing = 0u;
    +
    154 float advance = 0u;
    +
    155 };
    +
    +
    156
    +
    + +
    158 {
    +
    159 std::vector<std::pair<tz::vec2, tz::vec2>> edges = {};
    +
    160 };
    +
    +
    161
    +
    + +
    163 {
    +
    164 std::vector<ttf_glyph_contour> contours = {};
    +
    165 };
    +
    +
    166
    +
    + +
    168 {
    +
    169 ttf_glyph_spacing_info spacing = {};
    +
    170 ttf_glyph_shape_info shape = {};
    +
    171 };
    +
    +
    172
    +
    173 constexpr char ttf_alphabet[] = " !\"#$%&\'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~";
    +
    174
    +
    +
    175 struct ttf_glyph_map : public std::unordered_map<char, ttf_glyph>
    +
    176 {
    +
    177 ttf_glyph_map() = default;
    +
    178 };
    +
    +
    179
    +
    +
    180 class ttf
    +
    181 {
    +
    182 public:
    +
    183 ttf() = default;
    +
    184 static ttf from_memory(std::string_view sv);
    +
    185 static ttf from_file(const char* path);
    +
    186
    +
    + +
    188 {
    +
    189 tz::vec2ui dimensions;
    +
    190 float angle_threshold;
    +
    191 float range;
    +
    192 float scale;
    +
    193 tz::vec2 translate;
    +
    194 };
    +
    +
    195
    +
    196 tz::io::image rasterise_msdf(char c, rasterise_info i) const;
    +
    197 const ttf_glyph_map& get_glyphs() const;
    +
    198 ttf(std::string_view ttf_data);
    +
    199 private:
    +
    200 std::string_view parse_header(std::string_view str);
    +
    201 void parse_table_info(std::string_view str, std::string_view full_data);
    +
    202 ttf_table find_table_by_tag(const char* tag) const;
    +
    203 void parse_tables(std::string_view data);
    +
    204 std::uint32_t calculate_table_checksum(std::string_view data, std::uint32_t offset, std::uint32_t length) const;
    +
    205 void parse_head_table(std::string_view data, ttf_table table_descriptor);
    +
    206 void parse_maxp_table(std::string_view data, ttf_table table_descriptor);
    +
    207 void parse_hhea_table(std::string_view data, ttf_table table_descriptor);
    +
    208 void parse_hmtx_table(std::string_view data, ttf_table table_descriptor);
    +
    209 void parse_loca_table(std::string_view data, ttf_table table_descriptor);
    +
    210 void parse_glyf_table(std::string_view data, ttf_table table_descriptor);
    +
    211 void parse_cmap_table(std::string_view data, ttf_table table_descriptor);
    +
    212 void populate_glyph_map();
    +
    213 ttf_header header = {};
    +
    214
    +
    215 std::vector<ttf_table> tables = {};
    +
    216 ttf_head_table head = {};
    +
    217 ttf_maxp_table maxp = {};
    +
    218 ttf_hhea_table hhea = {};
    +
    219 ttf_hmtx_table hmtx = {};
    +
    220 ttf_loca_table loca = {};
    +
    221 ttf_glyf_table glyf = {};
    +
    222 ttf_cmap_table cmap = {};
    +
    223
    +
    224 ttf_glyph_map glyphs = {};
    +
    225 };
    +
    +
    226}
    +
    227
    +
    228#endif //TOPAZ_IO_TTF_HPP
    +
    Definition ttf.hpp:181
    +
    vector< float, 2 > vec2
    A vector of two floats.
    Definition vector.hpp:215
    +
    vector< unsigned int, 2 > vec2ui
    A vector of two unsigned ints.
    Definition vector.hpp:244
    +
    Definition image.hpp:11
    +
    Definition ttf.hpp:188
    +
    Definition ttf.hpp:133
    +
    Definition ttf.hpp:140
    +
    Definition ttf.hpp:112
    +
    Definition ttf.hpp:127
    +
    Definition ttf.hpp:158
    +
    Definition ttf.hpp:176
    +
    Definition ttf.hpp:163
    +
    Definition ttf.hpp:149
    +
    Definition ttf.hpp:168
    +
    Definition ttf.hpp:30
    +
    Definition ttf.hpp:13
    +
    Definition ttf.hpp:73
    + +
    Definition ttf.hpp:92
    +
    Definition ttf.hpp:105
    +
    Definition ttf.hpp:53
    +
    Definition ttf.hpp:22
    +
    Versions consist of a major, minor, patch and a version_type.
    Definition version.hpp:32
    +
    + + + + diff --git a/types_8hpp_source.html b/types_8hpp_source.html new file mode 100644 index 0000000000..38706470b3 --- /dev/null +++ b/types_8hpp_source.html @@ -0,0 +1,261 @@ + + + + + + + +Topaz: src/tz/core/types.hpp Source File + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    Topaz 4.2.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 "tz/core/memory/memblk.hpp"
    +
    4#include <type_traits>
    +
    5#include <concepts>
    +
    6#include <iterator>
    +
    7#include <ranges>
    +
    8
    +
    9namespace tz
    +
    10{
    +
    14 template<typename T>
    +
    15 concept arithmetic = std::is_arithmetic_v<std::decay_t<T>>;
    +
    16
    +
    17 template<typename T>
    +
    18 concept const_type = std::is_const_v<T>;
    +
    19
    +
    20 template<typename T>
    +
    21 concept enum_class = std::is_enum_v<T> && !std::is_convertible_v<T, int>;
    +
    22
    +
    23 template<typename T>
    +
    +
    24 concept unique_cloneable_type = requires(T* t)
    +
    25 {
    +
    26 {t->unique_clone()};
    +
    27 };
    +
    +
    28
    +
    32 template<typename T>
    +
    +
    33 concept number = requires
    +
    34 {
    +
    35 requires arithmetic<T>;
    +
    36 requires !std::is_same_v<std::remove_cvref_t<T>, bool>;
    +
    37 requires !std::is_same_v<std::remove_cvref_t<T>, char>;
    +
    38 };
    +
    +
    39
    +
    45 template<typename F, typename Result, typename... Args>
    +
    +
    46 concept function = requires(F f, Args... args)
    +
    47 {
    +
    48 {f(args...)} -> std::convertible_to<Result>;
    +
    49 };
    +
    +
    50
    +
    54 template<typename F, typename... Args>
    +
    55 concept action = function<F, void, Args...>;
    +
    56
    +
    57 template<typename T>
    +
    58 constexpr bool copyable = requires { requires std::copyable<T>; };
    +
    59
    +
    60 template<typename T>
    +
    61 constexpr bool moveable = requires { requires std::movable<T>; };
    +
    62
    +
    63 template<typename T>
    +
    64 concept trivially_copyable = std::is_trivially_copyable_v<T>;
    +
    65
    +
    66 template<typename T>
    +
    +
    67 concept nullable = requires(const T t)
    +
    68 {
    +
    69 {T::null()};
    +
    70 {t.is_null()} -> std::same_as<bool>;
    +
    71 };
    +
    +
    72
    +
    73 template<typename T>
    +
    +
    74 concept native_available = requires(T t)
    +
    75 {
    +
    76 T::NativeType;
    +
    77 {t.native()} -> std::same_as<typename T::NativeType>;
    +
    78 };
    +
    +
    79
    +
    80 template<typename T>
    +
    +
    81 concept allocator = requires(T t, tz::memblk blk, std::size_t sz)
    +
    82 {
    +
    83 {t.allocate(sz)} -> std::same_as<tz::memblk>;
    +
    84 {t.deallocate(blk)} -> std::same_as<void>;
    +
    85 {t.owns(blk)} -> std::same_as<bool>;
    +
    86 };
    +
    +
    87
    +
    88 template<typename T>
    +
    +
    89 concept container = requires(T a, const T b)
    +
    90 {
    +
    91 requires std::regular<T>;
    +
    92 requires std::swappable<T>;
    +
    93 typename T::iterator;
    +
    94 requires std::destructible<typename T::value_type>;
    +
    95 requires std::same_as<typename T::reference, typename T::value_type &>;
    +
    96 requires std::same_as<typename T::const_reference, const typename T::value_type &>;
    +
    97 requires std::forward_iterator<typename T::iterator>;
    +
    98 requires std::forward_iterator<typename T::const_iterator>;
    +
    99 requires std::signed_integral<typename T::difference_type>;
    +
    100 requires std::same_as<typename T::difference_type, typename std::iterator_traits<typename T::iterator>::difference_type>;
    +
    101 requires std::same_as<typename T::difference_type, typename std::iterator_traits<typename T::const_iterator>::difference_type>;
    +
    102 { a.begin() } -> std::same_as<typename T::iterator>;
    +
    103 { a.end() } -> std::same_as<typename T::iterator>;
    +
    104 { b.begin() } -> std::same_as<typename T::const_iterator>;
    +
    105 { b.end() } -> std::same_as<typename T::const_iterator>;
    +
    106 { a.cbegin() } -> std::same_as<typename T::const_iterator>;
    +
    107 { a.cend() } -> std::same_as<typename T::const_iterator>;
    +
    108 { a.size() } -> std::same_as<typename T::size_type>;
    +
    109 { a.max_size() } -> std::same_as<typename T::size_type>;
    +
    110 { a.empty() } -> std::same_as<bool>;
    +
    111 };
    +
    +
    112
    +
    113 template<typename T>
    +
    +
    114 concept random_access_container = requires(T a, const T b)
    +
    115 {
    +
    116 requires tz::container<T>;
    +
    117 requires std::random_access_iterator<typename T::iterator>;
    +
    118 };
    +
    +
    119
    +
    120 template<typename T>
    +
    +
    121 concept message = requires(T a)
    +
    122 {
    +
    123 requires std::is_standard_layout_v<T>;
    +
    124 };
    +
    +
    125
    +
    126 template<typename R, typename T>
    +
    127 concept range_of = std::ranges::range<R> && std::same_as<std::decay_t<std::ranges::range_value_t<R>>, std::decay_t<T>>;
    +
    128}
    +
    129
    +
    130#endif // TOPAZ_CORE_TYPES_HPP
    +
    Just like a tz::function, except will never return anything.
    Definition types.hpp:55
    +
    Definition types.hpp:81
    +
    An integral type or a floating-point type (including char and bool).
    Definition types.hpp:15
    +
    Definition types.hpp:18
    +
    Definition types.hpp:89
    +
    Definition types.hpp:21
    +
    function concept which constrains F to any type that can be called with Args... to produce a Result.
    Definition types.hpp:46
    +
    Definition types.hpp:121
    +
    Definition types.hpp:74
    +
    Definition types.hpp:67
    +
    A number is any arithmetic type excluding char and bool.
    Definition types.hpp:33
    +
    Definition types.hpp:114
    +
    Definition types.hpp:127
    +
    Definition types.hpp:64
    +
    Definition types.hpp:24
    +
    A non-owning, contiguous block of memory.
    Definition memblk.hpp:12
    +
    + + + + diff --git a/tz.png b/tz.png new file mode 100644 index 0000000000000000000000000000000000000000..714168fce9401f541d6d50247caa7fb8f889b5be GIT binary patch literal 3262 zcmZuzdpwkB8y+1T#yX5&Joo!N_u;y(`+Z)f@BY0SaD6xo z2Gj8LARL6jl!%H`RT)^)lD-@PgWL!=H(yUTH%weY?D2@GFc=JXDdUo(hiH#M_YZz- zEUG?5JN~{e*OI~7<%MD&tq`Ip$u?~Z>ZP_O=36ghN8Y{rWB2tOcB4R3kd0YV8h`Vq zY8q?$+1gyln0wV~^v8S0_oGU#m0gD#BiH!aJ@n`frR`|>E~Nu|R$Ez{;6dYE@vuJr z%Kpy#v5A=@h2g2?%ZUr-sRc?-mrh-Hdyd%dvb!sC>zJIZ~Q;&2y(Y zdhHtP=GATRq(9d5-i$tDBuklJ_aEoA0TkH}(XhtyszDj$wd(Xs<*fo)X}ikd_b|5u zH;;K-cwKFdgm*4)%<$7hx351v_+pf@yek9t{j>fL8gX%|9F%$5$i#>v_x5TUum7c% zLw~|0S|U~iXi=u^+e?7W!`{H|oTOGp0*hLlM^GXRw$)g1DxJFOoC1t0NuEALmC5xw z2*Yo`SYx_@X=4&GFv%@8Iyx*S3Fej%MokJkhB+CLM91v)^zjYI($s^&;6lOjo_ruHgxG zu!5;0t6v>{Gg>k~l`21gc-cN@J;j;g-m(PI|9Mn>>@;niet9PIjNWX=TWP_R$f>%q zKy=b+@>bf?LjR4&uV&}iapiYMKVQ;qUo6?D?Z7bRat%Jq{ZeKdaw*95@t+D?Eg$Z5 zdOKTpZEG!d}}=^*I+W3Z#zDPpish+{p^SsLkdo{0@&Cu$gfp;e}#eONGPC_GyE zDTE_`7-Tq$8<`WF_M$5qNTT2PNc!8lZ+S!#Qk=NiF*S31?*=N8=wg5-@DtymP6rj0 z=aP`m4aF)snWs9E?LuWT=TB09ZLkpkl#}1I&58wKLO!sKrjQm3*KEL`>mKS;J(GlN z>v`2O4ue$rwSDhpEU4ceVSV;~^7*H`YktVc+iKVy;g>G5Vs`8JetrRxOg@He2+8a+a|gWj0; zv_92)W4EhIQuB5*cToR)*(}F~h0V#KCkxtKt<@yC0-Qh6!iOnIIsS`RxNCT+t`DoN zT1V>}w?W+Ll{XYgir}_uIk|0X5RX`Z6^B$9-GW1bnO+O7K{p@RSe^S3YAUI+5H8>L z6ru5~?A8LkJqt@w4;)_`*>k9sfp!dX`1|i!Su82+*I@R4@CERdY%Ygb*w=P~!CzGd@Ni~~6AuW@4Xbm>!7?2u*q0`e_ ziDR4$xtE^tDBO%=I50I{Hv8i8_KFS9ZCN}5W?0x7gj|ncpnH6vAsdDyB}P)xm)bRb zWjtMya*jZVUoS~fCJFIcno$39c!nofIT%tAaGoZ@;AJJ|-*MFptvGz5H1_fzh6Jt8 zT`X$Sfo&?`4#5?5338U%dB_~WtLdAS36j82};95=~#B zrH8=Aw%=x2s~ls}rp%@CN0jSV)NW4-=?B*p8xj|F?#127e_Zsjx_b1D-gvtg zKJqE0cN(y$lIV=6dCVjH`bfCTl9j!yC~dz}XtUbHMSxgg|MOMxrxyX=pxqadO8;y= z7))o=hvw170=L-FkfO=4rvakT%#}Zvy2}OhjI`ywkKI>;&aA97m5aiH?tJ>(^5tXV z(qF%!RVU)^J#1Kc^?l)=!=?#7AB2e=cvoV@|TQTC=g5P=M{EklyXKy0Bu^jvAJ? zhbCu+dU@NLQ!1%9*SdH&JEzM32OGg}y*m8#zHavhTkkexom$yDHE zo}ylf(&r}%Ffk2Im(h3S26l|g1O%o5kQ+fUSiv`ie||vWIym0A{byn8+ba6`b7_%t zoqy`O2%V-b@3?SeeR1S`MD0V_&D)n`^4;|0n7QY%cBbcwk+sr2g_v_e<#}@wgHx{? zb;Q?a607}(;nB&>_0?tL@Ct+S}ckH+)_p0jbRu2UOSOxxaM4>_`8 zlnw_@gxrMqbrO-FZD$l4ikJ&U8=lBBC;c6)t<C%G2N^+`w{j!A+1mc&0N(23Qh3ZncTR1qwYjNY(fb=qrI>kut$1Gz*J z;FCNh<|pQ3nuE)IIDy>t{|hvq52~^vPyI(L>ZCeN25M5nF07Rq<_zIky}V8Nl)F|< zrEu-C?S`fHKGcaM+n>jGG5-9|7vSgSMH%xRNb$AAMK@zF! zz(w%J*Mh$tqEpuSK{&XvD!5F5)LK|4QK7cuz189JJ^s7rJ`0+UL&D` z&J& zvne}~GY~&8QUn5~a5eRQ4qzdxu9%|!2J5+c$TD9MBlP;UxQlt~o>bpG~q(PH7?k}uy|E9$Zi;N|z@!)q1m#HBog6GVs4 zsNudxEy-!dizoQ=!pKlBMRU4ngNc5*^-n6uV_!N{p^qh=d?5<|@+;zI`#G9T4c{As z-S&Qy!HJ*g$?nJ?YF>|=0|3uv0Kog(_eVXD?|yen0bDWK0{!7D^tlL-ShH5>A__me zsTt^@LMPvki5;NV^gxvOr`wdf#x&j>-eyngKe%Gs38cq2dz#>7@w+@+fFpF17m@*4dvr zbfy5P9_zy+=2J>^5JW0L8$lHKfAF=)_uB%3`Y;*TE*yh_%@GC8Cewn`2ZOYUhz+57 z4jnT9Nrnv;xQq5D(_@F+k<`tK#L098Wi~~D6@!Nr+-%!MQQQ#jiYyF!YVs+ybDhl? z7S^mspt%k~I@YrQ)cNE?-O0#Z$<=eN2In^pnN z1msxd+F#B-T(S85J9o!A^cc>cfN;$vY1e~o6?^vMMhjv8#schF+!_WpJ#Ol&?!f3t zmRl`DLg_M#Sq`T2x0?}Rq^gR+oXJ~1d>#DTp7ifFU(uOYj%q(=ygWOvnBYm=PY}2s&HgVhmAN?p literal 0 HcmV?d00001 diff --git a/tz_8hpp_source.html b/tz_8hpp_source.html new file mode 100644 index 0000000000..5a43eb8d8b --- /dev/null +++ b/tz_8hpp_source.html @@ -0,0 +1,176 @@ + + + + + + + +Topaz: src/tz/tz.hpp Source File + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    Topaz 4.2.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
    +
    vector< unsigned int, 2 > vec2ui
    A vector of two unsigned ints.
    Definition vector.hpp:244
    +
    tz::wsi::window & window()
    Retrieve the application window.
    Definition tz.cpp:129
    +
    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..ea38e4bd81 --- /dev/null +++ b/tz_8inl_source.html @@ -0,0 +1,111 @@ + + + + + + + +Topaz: src/tz/tz.inl Source File + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    Topaz 4.2.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..c5ecec9506 --- /dev/null +++ b/tz__core_8hpp_source.html @@ -0,0 +1,130 @@ + + + + + + + +Topaz: src/tz/core/tz_core.hpp Source File + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    Topaz 4.2.0.1 +
    +
    C++20 Graphics Engine
    +
    +
    + + + + + + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + + +
    +
    +
    tz_core.hpp
    +
    +
    +
    1#ifndef TZ_HPP
    +
    2#define TZ_HPP
    +
    3#include "tz/lua/api.hpp"
    +
    4
    +
    5namespace tz::core
    +
    6{
    +
    7
    +
    31 void initialise();
    +
    32 void terminate();
    +
    33 void lua_initialise(tz::lua::state& state);
    +
    34
    +
    35 namespace detail
    +
    36 {
    +
    37 bool is_initialised();
    +
    38 }
    +
    39}
    +
    40
    +
    41#endif // TZ_HPP
    +
    Represents a lua state.
    Definition state.hpp:35
    +
    + + + + diff --git a/tz__gl_8hpp_source.html b/tz__gl_8hpp_source.html new file mode 100644 index 0000000000..801bfc87ad --- /dev/null +++ b/tz__gl_8hpp_source.html @@ -0,0 +1,127 @@ + + + + + + + +Topaz: src/tz/gl/tz_gl.hpp Source File + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    Topaz 4.2.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 "tz/lua/api.hpp"
    +
    5#include <array>
    +
    6
    +
    7namespace tz::gl
    +
    8{
    +
    71 void initialise();
    +
    72 void terminate();
    +
    73
    +
    74 void lua_initialise(tz::lua::state& state);
    +
    75}
    +
    76
    +
    77#endif // TOPAZ_GL2_TZ_GL_HPP
    +
    Represents a lua state.
    Definition state.hpp:35
    +
    + + + + diff --git a/tz__io_8hpp_source.html b/tz__io_8hpp_source.html new file mode 100644 index 0000000000..43bf5505b0 --- /dev/null +++ b/tz__io_8hpp_source.html @@ -0,0 +1,122 @@ + + + + + + + +Topaz: src/tz/io/tz_io.hpp Source File + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    Topaz 4.2.0.1 +
    +
    C++20 Graphics Engine
    +
    +
    + + + + + + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + + +
    +
    +
    tz_io.hpp
    +
    +
    +
    1#ifndef TOPAZ_IO_HPP
    +
    2#define TOPAZ_IO_HPP
    +
    3#include "tz/lua/api.hpp"
    +
    4
    +
    5namespace tz::io
    +
    6{
    +
    7 void lua_initialise(tz::lua::state& state);
    +
    8}
    +
    9
    +
    10#endif // TOPAZ_IO_HPP
    +
    Represents a lua state.
    Definition state.hpp:35
    +
    + + + + diff --git a/tz__opengl_8hpp_source.html b/tz__opengl_8hpp_source.html new file mode 100644 index 0000000000..45ef3ca7d5 --- /dev/null +++ b/tz__opengl_8hpp_source.html @@ -0,0 +1,136 @@ + + + + + + + +Topaz: src/tz/gl/impl/opengl/detail/tz_opengl.hpp Source File + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    Topaz 4.2.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__ren_8hpp_source.html b/tz__ren_8hpp_source.html new file mode 100644 index 0000000000..3706df4c09 --- /dev/null +++ b/tz__ren_8hpp_source.html @@ -0,0 +1,122 @@ + + + + + + + +Topaz: src/tz/ren/tz_ren.hpp Source File + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    Topaz 4.2.0.1 +
    +
    C++20 Graphics Engine
    +
    +
    + + + + + + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + + +
    +
    +
    tz_ren.hpp
    +
    +
    +
    1#ifndef TOPAZ_REN_TZ_REN_HPP
    +
    2#define TOPAZ_REN_TZ_REN_HPP
    +
    3#include "tz/lua/api.hpp"
    +
    4
    +
    5namespace tz::ren
    +
    6{
    +
    15 void lua_initialise(tz::lua::state& state);
    +
    16}
    +
    17
    +
    18#endif // TOPAZ_REN_TZ_REN_HPP
    +
    Represents a lua state.
    Definition state.hpp:35
    +
    + + + + diff --git a/tz__vulkan_8hpp_source.html b/tz__vulkan_8hpp_source.html new file mode 100644 index 0000000000..3dc6abf2c2 --- /dev/null +++ b/tz__vulkan_8hpp_source.html @@ -0,0 +1,370 @@ + + + + + + + +Topaz: src/tz/gl/impl/vulkan/detail/tz_vulkan.hpp Source File + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    Topaz 4.2.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 enum class LoadOp
    +
    264 {
    +
    266 Load = VK_ATTACHMENT_LOAD_OP_LOAD,
    +
    268 Clear = VK_ATTACHMENT_LOAD_OP_CLEAR,
    +
    270 DontCare = VK_ATTACHMENT_LOAD_OP_DONT_CARE
    +
    271 };
    +
    +
    272
    +
    +
    277 enum class StoreOp
    +
    278 {
    +
    280 Store = VK_ATTACHMENT_STORE_OP_STORE,
    +
    282 DontCare = VK_ATTACHMENT_STORE_OP_DONT_CARE
    +
    283 };
    +
    +
    284
    +
    + +
    290 {
    +
    291 graphics = VK_PIPELINE_BIND_POINT_GRAPHICS,
    +
    292 compute = VK_PIPELINE_BIND_POINT_COMPUTE,
    +
    293 };
    +
    +
    294
    +
    +
    299 enum class AccessFlag
    +
    300 {
    +
    302 NoneNeeded = VK_ACCESS_NONE_KHR,
    +
    304 AllReads = VK_ACCESS_MEMORY_READ_BIT,
    +
    306 AllWrites = VK_ACCESS_MEMORY_WRITE_BIT,
    +
    307
    +
    309 IndirectBufferRead = VK_ACCESS_INDIRECT_COMMAND_READ_BIT,
    +
    311 IndexBufferRead = VK_ACCESS_INDEX_READ_BIT,
    +
    313 VertexBufferRead = VK_ACCESS_VERTEX_ATTRIBUTE_READ_BIT,
    +
    315 UniformBufferRead = VK_ACCESS_UNIFORM_READ_BIT,
    +
    316
    +
    318 InputAttachmentRead = VK_ACCESS_INPUT_ATTACHMENT_READ_BIT,
    +
    320 ShaderResourceRead = VK_ACCESS_SHADER_READ_BIT,
    +
    322 ShaderResourceWrite = VK_ACCESS_SHADER_WRITE_BIT,
    +
    324 ColourAttachmentRead = VK_ACCESS_COLOR_ATTACHMENT_READ_BIT,
    +
    326 ColourAttachmentWrite = VK_ACCESS_COLOR_ATTACHMENT_WRITE_BIT,
    +
    328 DepthStencilAttachmentRead = VK_ACCESS_DEPTH_STENCIL_ATTACHMENT_READ_BIT,
    +
    330 DepthStencilAttachmentWrite = VK_ACCESS_DEPTH_STENCIL_ATTACHMENT_WRITE_BIT,
    +
    332 TransferOperationRead = VK_ACCESS_TRANSFER_READ_BIT,
    +
    334 TransferOperationWrite = VK_ACCESS_TRANSFER_WRITE_BIT,
    +
    336 HostRead = VK_ACCESS_HOST_READ_BIT,
    +
    338 HostWrite = VK_ACCESS_HOST_WRITE_BIT,
    +
    339
    +
    340 };
    +
    +
    341
    +
    342 using AccessFlagField = tz::enum_field<AccessFlag>;
    +
    343
    +
    +
    348 namespace present_traits
    +
    349 {
    +
    +
    354 constexpr std::span<const SurfacePresentMode> get_mandatory_present_modes()
    +
    355 {
    +
    356 return {safe_present_modes};
    +
    357 }
    +
    +
    358 }
    +
    +
    359}
    +
    360#endif // TZ_VULKAN
    +
    361#endif // TOPAZ_GL_IMPL_BACKEND_VK2_TZ_VULKAN_HPP
    +
    Container for enum values, useful for vintage bitfield types.
    Definition enum_field.hpp:16
    +
    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:129
    +
    PipelineContext
    Specifies which pipeline type a RenderPass subpass is expected to bind to.
    Definition tz_vulkan.hpp:290
    +
    LoadOp
    Represents how some resource is loaded.
    Definition tz_vulkan.hpp:264
    +
    AccessFlag
    Specifies specific events during which a memory dependency takes place.
    Definition tz_vulkan.hpp:300
    +
    StoreOp
    Represents how some resource is stored.
    Definition tz_vulkan.hpp:278
    + + + + + + + + + + + + + + + + + + + + + + +
    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:354
    +
    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..59e263477e --- /dev/null +++ b/tz_lua.html @@ -0,0 +1,123 @@ + + + + + + + +Topaz: Lua API Reference + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    Topaz 4.2.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..c3f3639f35 --- /dev/null +++ b/vector_8hpp_source.html @@ -0,0 +1,282 @@ + + + + + + + +Topaz: src/tz/core/data/vector.hpp Source File + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    Topaz 4.2.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:99
    +
    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:144
    +
    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:132
    +
    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:36
    +
    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:28
    +
    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:68
    +
    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:204
    +
    vector()=default
    Default-constructed vectors have indeterminate values.
    +
    vector< T, S > & operator/=(T scalar)
    Divide each element of the current vector by the given value.
    Definition vector.inl:91
    +
    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:168
    +
    vector< T, S > normalised() const
    Create a copy of the vector, normalise it and return the result.
    Definition vector.inl:183
    +
    vector< T, sizeof...(indices)> swizzle() const
    Perform vector swizzling.
    Definition vector.inl:192
    +
    vector< T, S > & operator*=(T scalar)
    Multiply each element of the current vector by the given value.
    Definition vector.inl:60
    +
    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:52
    +
    T length() const
    Retrieve the magnitude of the current vector.
    Definition vector.inl:156
    +
    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:44
    +
    bool operator==(const vector< T, S > &rhs) const
    Equate the current vector with the given vector.
    Definition vector.inl:107
    +
    A number is any arithmetic type excluding char and bool.
    Definition types.hpp:33
    +
    + + + + diff --git a/vector_8inl_source.html b/vector_8inl_source.html new file mode 100644 index 0000000000..e4251e9976 --- /dev/null +++ b/vector_8inl_source.html @@ -0,0 +1,446 @@ + + + + + + + +Topaz: src/tz/core/data/vector.inl Source File + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    Topaz 4.2.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 // note: these asserts are disabled even on debug because this code path is so burning hot, that it can drastically slow down anything im trying to debug.
    +
    16 //tz::assert(idx < S, "vector<T, %zu>::operator[%zu]: Index out of range!", S, idx);
    +
    17 return this->vec[idx];
    +
    18 }
    +
    +
    19
    +
    20 template<tz::number T, std::size_t S>
    +
    +
    21 T& vector<T, S>::operator[](std::size_t idx)
    +
    22 {
    +
    23 //tz::assert(idx < S, "vector<T, %zu>::operator[%zu]: Index out of range!", S, idx);
    +
    24 return this->vec[idx];
    +
    25 }
    +
    +
    26
    +
    27 template<tz::number T, std::size_t S>
    +
    + +
    29 {
    +
    30 for(std::size_t i = 0; i < S; i++)
    +
    31 this->vec[i] += rhs.vec[i];
    +
    32 return *this;
    +
    33 }
    +
    +
    34
    +
    35 template<tz::number T, std::size_t S>
    +
    + +
    37 {
    +
    38 vector<T, S> copy = *this;
    +
    39 copy += rhs;
    +
    40 return copy;
    +
    41 }
    +
    +
    42
    +
    43 template<tz::number T, std::size_t S>
    +
    + +
    45 {
    +
    46 for(std::size_t i = 0; i < S; i++)
    +
    47 this->vec[i] -= rhs.vec[i];
    +
    +
    48 return *this;
    +
    49 }
    +
    50
    +
    51 template<tz::number T, std::size_t S>
    +
    + +
    53 {
    +
    54 vector<T, S> copy = *this;
    +
    55 copy -= rhs;
    +
    56 return copy;
    +
    57 }
    +
    +
    + +
    59 template<tz::number T, std::size_t S>
    +
    + +
    61 {
    +
    62 for(std::size_t i = 0; i < S; i++)
    +
    63 this->vec[i] *= scalar;
    +
    +
    64 return *this;
    +
    65 }
    +
    66
    +
    67 template<tz::number T, std::size_t S>
    +
    + +
    69 {
    +
    +
    70 vector<T, S> copy = *this;
    +
    71 copy *= scalar;
    +
    72 return copy;
    +
    73 }
    +
    74
    +
    75 template<tz::number T, std::size_t S>
    +
    + +
    77 {
    +
    78 for(std::size_t i = 0; i < S; i++)
    +
    79 this->vec[i] *= rhs[i];
    +
    80 return *this;
    +
    81 }
    +
    +
    + +
    83 template<tz::number T, std::size_t S>
    +
    + +
    85 {
    +
    86 vector<T, S> copy = *this;
    +
    87 return copy *= rhs;
    +
    88 }
    +
    +
    89
    +
    90 template<tz::number T, std::size_t S>
    +
    + +
    92 {
    +
    93 for(std::size_t i = 0; i < S; i++)
    +
    +
    94 this->vec[i] /= scalar;
    +
    95 return *this;
    +
    96 }
    +
    97
    +
    98 template<tz::number T, std::size_t S>
    +
    + +
    + +
    101 vector<T, S> copy = *this;
    +
    102 copy /= scalar;
    +
    103 return copy;
    +
    104 }
    +
    105
    +
    +
    106 template<tz::number T, std::size_t S>
    +
    + +
    108 {
    +
    109 for(std::size_t i = 0; i < S; i++)
    +
    110 {
    +
    111 if constexpr(std::is_integral_v<T>)
    +
    + +
    113 // If we're some integer type
    +
    114 if(!std::cmp_equal(this->vec[i], rhs[i]))
    +
    115 {
    +
    116 return false;
    +
    117 }
    +
    + +
    119 else
    +
    120 {
    +
    121 // Float or double
    +
    122 if(std::fabs(this->vec[i] - rhs[i]) > std::numeric_limits<T>::epsilon())
    +
    123 {
    +
    +
    124 return false;
    +
    125 }
    +
    126 }
    +
    127 }
    +
    128 return true;
    +
    129 }
    +
    130
    +
    +
    131 template<tz::number T, std::size_t S>
    +
    +
    132 std::span<const T> vector<T, S>::data() const
    +
    133 {
    +
    134 return this->vec;
    +
    135 }
    +
    +
    + +
    137 template<tz::number T, std::size_t S>
    +
    +
    138 std::span<T> vector<T, S>::data()
    +
    139 {
    +
    140 return this->vec;
    + +
    +
    142
    +
    143 template<tz::number T, std::size_t S>
    +
    +
    144 T vector<T, S>::dot(const vector<T, S>& rhs) const
    +
    145 {
    +
    146 TZ_PROFZONE("Vector - Dot Product", 0xFF0000AA);
    +
    +
    147 T sum = T();
    +
    148 for(std::size_t i = 0; i < S; i++)
    +
    149 {
    +
    150 sum += ((*this)[i] * rhs[i]);
    +
    151 }
    +
    +
    152 return sum;
    +
    153 }
    +
    154
    +
    155 template<tz::number T, std::size_t S>
    +
    + +
    + +
    158 TZ_PROFZONE("Vector - Length", 0xFF0000AA);
    +
    159 T sum_squares = T();
    +
    160 for(std::size_t i = 0; i < S; i++)
    +
    161 {
    +
    +
    162 sum_squares += (*this)[i] * (*this)[i];
    +
    163 }
    +
    164 return std::sqrt(sum_squares);
    +
    165 }
    +
    166
    +
    167 template<tz::number T, std::size_t S>
    +
    + +
    169 {
    +
    170 TZ_PROFZONE("Vector - Normalise", 0xFF0000AA);
    +
    171 T l = this->length();
    +
    172 if(l == T{}) [[unlikely]]
    +
    173 {
    +
    174 return;
    +
    175 }
    +
    +
    176 for(auto& d : this->vec)
    +
    177 {
    +
    178 d /= l;
    +
    179 }
    +
    180 }
    +
    181
    +
    182 template<tz::number T, std::size_t S>
    +
    + +
    184 {
    +
    185 vector<T, S> cpy = *this;
    +
    + +
    187 return cpy;
    +
    188 }
    +
    189
    +
    190 template<tz::number T, std::size_t S>
    +
    191 template<int... indices>
    +
    +
    192 vector<T, sizeof...(indices)> vector<T, S>::swizzle() const
    +
    193 {
    +
    194 std::array<int, sizeof...(indices)> data_unswizzled{indices...};
    +
    195 std::array<T, sizeof...(indices)> data{indices...};
    +
    196 for(std::size_t i = 0; i < sizeof...(indices); i++)
    +
    + +
    198 data[i] = this->vec[data_unswizzled[i]];
    +
    199 }
    +
    200 return {data};
    +
    201 }
    +
    202
    +
    +
    203 template<tz::number T, std::size_t S>
    +
    + +
    205 {
    +
    206 std::array<T, S + 1> new_data;
    +
    207 std::copy(this->vec.begin(), this->vec.end(), new_data.begin());
    +
    208 new_data.back() = end;
    +
    209 return {new_data};
    +
    210 }
    +
    +
    211
    +
    212 template<tz::number T, std::size_t S>
    +
    213 template<std::size_t S2>
    +
    + +
    215 {
    +
    216 std::array<T, S + S2> new_data;
    +
    217 std::copy(this->vec.begin(), this->vec.end(), new_data.begin());
    +
    218 std::copy(end.vec.begin(), end.vec.end(), new_data.begin() + S);
    +
    219 return {new_data};
    +
    220 }
    +
    +
    221
    +
    222 template<tz::number T, std::size_t S>
    +
    223 template<tz::number X, typename>
    +
    + +
    225 {
    +
    226 std::array<X, S> different_data;
    +
    227 std::transform(this->vec.begin(), this->vec.end(), different_data.begin(), [](const T& t){return static_cast<X>(t);});
    +
    228 return {different_data};
    +
    229 }
    +
    +
    +
    230
    +
    231 template<tz::number T>
    +
    232 vector<T, 3> cross(const vector<T, 3>& lhs, const vector<T, 3>& rhs)
    +
    233 {
    +
    234 TZ_PROFZONE("Vector - Cross", 0xFF0000AA);
    +
    235 vector<T, 3> ret;
    +
    236 //cx = aybz − azby
    +
    237 ret[0] = (lhs[1] * rhs[2]) - (lhs[2] * rhs[1]);
    +
    238 //cy = azbx − axbz
    +
    239 ret[1] = (lhs[2] * rhs[0]) - (lhs[0] * rhs[2]);
    +
    240 //cz = axby − aybx
    +
    241 ret[2] = (lhs[0] * rhs[1]) - (lhs[1] * rhs[0]);
    +
    242 return ret;
    +
    243 }
    +
    244
    +
    245}
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    Definition vector.hpp:18
    +
    void normalise()
    Normalise the vector.
    Definition vector.inl:168
    +
    + + + + diff --git a/version_8hpp_source.html b/version_8hpp_source.html new file mode 100644 index 0000000000..ca1203043b --- /dev/null +++ b/version_8hpp_source.html @@ -0,0 +1,196 @@ + + + + + + + +Topaz: src/tz/core/data/version.hpp Source File + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    Topaz 4.2.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..e5e2c73d65 --- /dev/null +++ b/vertex__array_8hpp_source.html @@ -0,0 +1,188 @@ + + + + + + + +Topaz: src/tz/gl/impl/opengl/detail/vertex_array.hpp Source File + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    Topaz 4.2.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 enum class primitive_topology : GLenum
    +
    9 {
    +
    10 triangles = GL_TRIANGLES,
    +
    11 points = GL_POINTS,
    +
    12 triangle_strips = GL_TRIANGLE_STRIP
    +
    13 };
    +
    14
    +
    15 constexpr std::size_t primitive_vertex_count(primitive_topology t)
    +
    16 {
    +
    17 switch(t)
    +
    18 {
    +
    19 case primitive_topology::triangles:
    +
    20 [[fallthrough]];
    +
    21 case primitive_topology::triangle_strips:
    +
    22 return 3;
    +
    23 break;
    +
    24 case primitive_topology::points:
    +
    25 return 1;
    +
    26 break;
    +
    27 }
    +
    28 tz::error("Unrecognised ogl2::primitive_topology.");
    +
    29 return {};
    +
    30 }
    +
    31
    +
    32 class buffer;
    +
    + +
    38 {
    +
    39 public:
    + +
    44 vertex_array(const vertex_array& copy) = delete;
    + + +
    47 vertex_array& operator=(const vertex_array& rhs) = delete;
    +
    48 vertex_array& operator=(vertex_array&& rhs);
    +
    49
    +
    53 void bind();
    +
    58 void draw(unsigned int primitive_count, primitive_topology topology = primitive_topology::triangles, bool tessellation = false);
    +
    63 void draw_indexed(unsigned int primitive_count, const buffer& index_buffer, primitive_topology topology = primitive_topology::triangles, bool tessellation = false);
    +
    64
    +
    65 void draw_indirect(unsigned int draw_count, const buffer& draw_indirect_buffer, primitive_topology topology = primitive_topology::triangles, bool tessellation = false);
    +
    66 void draw_indirect_count(unsigned int max_draw_count, const buffer& draw_indirect_buffer, std::uintptr_t draw_commands_offset, primitive_topology topology = primitive_topology::triangles, bool tessellation = false);
    +
    67 void draw_indexed_indirect(unsigned int draw_count, const buffer& index_buffer, const buffer& draw_indirect_buffer, primitive_topology topology = primitive_topology::triangles, bool tessellation = false);
    +
    68 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, primitive_topology topology = primitive_topology::triangles, bool tessellation = false);
    +
    72 static vertex_array null();
    +
    76 bool is_null() const;
    +
    77 private:
    +
    78 vertex_array(std::nullptr_t);
    +
    79
    +
    80 GLuint vao;
    +
    81 };
    +
    +
    82}
    +
    83
    +
    84#endif // TZ_OGL
    +
    85#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:38
    +
    static vertex_array null()
    Retrieve the Null vertex_array.
    Definition vertex_array.cpp:98
    +
    void draw_indexed(unsigned int primitive_count, const buffer &index_buffer, primitive_topology topology=primitive_topology::triangles, bool tessellation=false)
    Emit a single draw call, drawing a set number of primitives, assuming an index buffer has already bee...
    Definition vertex_array.cpp:47
    +
    void draw(unsigned int primitive_count, primitive_topology topology=primitive_topology::triangles, bool tessellation=false)
    Emit a single draw call, drawing a set number of primitives.
    Definition vertex_array.cpp:40
    +
    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 error(detail::format_string fmt="<No message>", Args &&... args)
    Breakpoint if a debugger is present.
    Definition debug.inl:47
    +
    @ points
    Points. Each vertex constitutes a single point. 1n length.
    +
    @ triangle_strips
    Triangle Strips. Each group of 3 adjacent vertices constitutes a triangle. n-2 length.
    +
    @ triangles
    Triangles. Each set of 3 vertices constitutes a triangle. 3n length.
    + + + +
    + + + + diff --git a/vulkan_2convert_8hpp_source.html b/vulkan_2convert_8hpp_source.html new file mode 100644 index 0000000000..ce562406e5 --- /dev/null +++ b/vulkan_2convert_8hpp_source.html @@ -0,0 +1,128 @@ + + + + + + + +Topaz: src/tz/gl/impl/vulkan/convert.hpp Source File + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    Topaz 4.2.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..ff0b8c3fb4 --- /dev/null +++ b/vulkan_2convert_8inl_source.html @@ -0,0 +1,214 @@ + + + + + + + +Topaz: src/tz/gl/impl/vulkan/convert.inl Source File + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    Topaz 4.2.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..a898b0826e --- /dev/null +++ b/vulkan_2detail_2buffer_8hpp_source.html @@ -0,0 +1,218 @@ + + + + + + + +Topaz: src/tz/gl/impl/vulkan/detail/buffer.hpp Source File + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    Topaz 4.2.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_2sampler_8hpp_source.html b/vulkan_2detail_2sampler_8hpp_source.html new file mode 100644 index 0000000000..ff906c1ad4 --- /dev/null +++ b/vulkan_2detail_2sampler_8hpp_source.html @@ -0,0 +1,204 @@ + + + + + + + +Topaz: src/tz/gl/impl/vulkan/detail/sampler.hpp Source File + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    Topaz 4.2.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..7e8ce14937 --- /dev/null +++ b/wgl__ext_8hpp_source.html @@ -0,0 +1,143 @@ + + + + + + + +Topaz: src/tz/wsi/impl/windows/detail/wgl_ext.hpp Source File + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    Topaz 4.2.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 int (WINAPI * PFNWGLGETSWAPINTERVALEXTPROC)(void);
    +
    9typedef const char* (WINAPI * PFNWGLGETEXTENSIONSSTRINGARBPROC)(HDC);
    +
    10
    +
    11#define WGL_DRAW_TO_WINDOW_ARB 0x2001
    +
    12#define WGL_ACCELERATION_ARB 0x2003
    +
    13#define WGL_TRANSPARENT_ARB 0x200A
    +
    14#define WGL_SUPPORT_OPENGL_ARB 0x2010
    +
    15#define WGL_DOUBLE_BUFFER_ARB 0x2011
    +
    16#define WGL_PIXEL_TYPE_ARB 0x2013
    +
    17#define WGL_COLOR_BITS_ARB 0x2014
    +
    18#define WGL_ALPHA_BITS_ARB 0x201B
    +
    19#define WGL_DEPTH_BITS_ARB 0x2022
    +
    20#define WGL_STENCIL_BITS_ARB 0x2023
    +
    21
    +
    22#define WGL_FULL_ACCELERATION_EXT 0x2027
    +
    23#define WGL_TYPE_RGBA_ARB 0x202b
    +
    24#define WGL_CONTEXT_MAJOR_VERSION_ARB 0x2091
    +
    25#define WGL_CONTEXT_MINOR_VERSION_ARB 0x2092
    +
    26#define WGL_CONTEXT_FLAGS_ARB 0x2094
    +
    27#define WGL_FRAMEBUFFER_SRGB_CAPABLE_ARB 0x20a9
    +
    28#define WGL_CONTEXT_PROFILE_MASK_ARB 0x9126
    +
    29#define WGL_CONTEXT_CORE_PROFILE_BIT_ARB 0x00000001
    +
    30#define WGL_CONTEXT_DEBUG_BIT_ARB 0x00000001
    +
    31
    +
    32#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..18834cd23c --- /dev/null +++ b/winapi_8hpp_source.html @@ -0,0 +1,118 @@ + + + + + + + +Topaz: src/tz/wsi/impl/windows/detail/winapi.hpp Source File + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    Topaz 4.2.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..072f4a53dd --- /dev/null +++ b/window_8hpp_source.html @@ -0,0 +1,180 @@ + + + + + + + +Topaz: src/tz/wsi/window.hpp Source File + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    Topaz 4.2.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:47
    +
    tz::wsi::window & window()
    Retrieve the application window.
    Definition tz.cpp:129
    +
    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..e77d0fae32 --- /dev/null +++ b/wsi_8hpp_source.html @@ -0,0 +1,128 @@ + + + + + + + +Topaz: src/tz/wsi/wsi.hpp Source File + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    Topaz 4.2.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#include "tz/lua/api.hpp"
    +
    5
    +
    6namespace tz::wsi
    +
    7{
    +
    8 void initialise();
    +
    9 void terminate();
    +
    10 void update();
    +
    11
    +
    12 void lua_initialise(tz::lua::state& state);
    +
    13
    +
    43}
    +
    44
    +
    45#endif // TZ_WSI_TGE_HPP
    +
    Represents a lua state.
    Definition state.hpp:35
    +
    + + + + diff --git a/wsi__linux_8hpp_source.html b/wsi__linux_8hpp_source.html new file mode 100644 index 0000000000..a7158361f9 --- /dev/null +++ b/wsi__linux_8hpp_source.html @@ -0,0 +1,136 @@ + + + + + + + +Topaz: src/tz/wsi/impl/linux/wsi_linux.hpp Source File + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    Topaz 4.2.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..eb577b6108 --- /dev/null +++ b/wsi__windows_8hpp_source.html @@ -0,0 +1,143 @@ + + + + + + + +Topaz: src/tz/wsi/impl/windows/wsi_windows.hpp Source File + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    Topaz 4.2.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 PFNWGLGETSWAPINTERVALEXTPROC wgl_get_swap_interval_ext = nullptr;
    +
    23 bool operator==(const wgl_function_data& rhs) const = default;
    +
    24 };
    +
    +
    25 wgl_function_data get_wgl_functions();
    +
    26}
    +
    27
    +
    28#endif // _WIN32
    +
    29#endif // TZ_WSI_IMPL_WINDOWS_TGE_HPP
    +
    Definition wsi_windows.hpp:18
    +
    + + + +