From 86c53ce20466ea9e70dc368df8fd72a7dea899c3 Mon Sep 17 00:00:00 2001 From: harrand Date: Sat, 20 May 2023 01:03:22 +0000 Subject: [PATCH] deploy: ca01da4a2f8b5104286336f52c379c5d640c4053 --- .nojekyll | 0 adapter_8hpp_source.html | 166 ++ android-chrome-192x192.png | Bin 0 -> 7346 bytes android-chrome-256x256.png | Bin 0 -> 9742 bytes api_2component_8hpp_source.html | 165 ++ api_2device_8hpp_source.html | 207 ++ api_2job_8hpp_source.html | 156 ++ api_2keyboard_8hpp_source.html | 154 ++ api_2monitor_8hpp_source.html | 142 ++ api_2mouse_8hpp_source.html | 167 ++ api_2output_8hpp_source.html | 182 ++ api_2renderer_8hpp_source.html | 415 ++++ api_2resource_8hpp_source.html | 229 ++ api_2shader_8hpp_source.html | 167 ++ api_2window_8hpp_source.html | 197 ++ apple-touch-icon.png | Bin 0 -> 6930 bytes basic__list_8hpp_source.html | 311 +++ bc_s.png | Bin 0 -> 676 bytes bc_sd.png | Bin 0 -> 635 bytes bdwn.png | Bin 0 -> 147 bytes browserconfig.xml | 9 + callback_8hpp_source.html | 182 ++ classtz_1_1_interface_iterator.html | 123 + classtz_1_1_polymorphic_list.html | 279 +++ classtz_1_1allocator__adapter.html | 139 ++ classtz_1_1allocator__adapter.png | Bin 0 -> 596 bytes classtz_1_1basic__list.html | 760 ++++++ classtz_1_1callback.html | 263 ++ classtz_1_1delay.html | 217 ++ classtz_1_1duration.html | 375 +++ classtz_1_1enum__field.html | 447 ++++ classtz_1_1fallback__allocator.html | 145 ++ classtz_1_1fallback__allocator.png | Bin 0 -> 806 bytes classtz_1_1gl_1_1_asset_storage_common.html | 123 + classtz_1_1gl_1_1_output_manager.html | 144 ++ classtz_1_1gl_1_1_renderer_edit_builder.html | 237 ++ classtz_1_1gl_1_1_resource_storage.html | 314 +++ classtz_1_1gl_1_1_resource_storage.png | Bin 0 -> 871 bytes classtz_1_1gl_1_1_shader_manager.html | 168 ++ classtz_1_1gl_1_1buffer__component__ogl.html | 132 + classtz_1_1gl_1_1buffer__component__ogl.png | Bin 0 -> 670 bytes ...tz_1_1gl_1_1buffer__component__vulkan.html | 132 + ...stz_1_1gl_1_1buffer__component__vulkan.png | Bin 0 -> 711 bytes classtz_1_1gl_1_1buffer__resource.html | 357 +++ classtz_1_1gl_1_1buffer__resource.png | Bin 0 -> 1313 bytes classtz_1_1gl_1_1device.html | 307 +++ classtz_1_1gl_1_1device__command__pool.html | 187 ++ classtz_1_1gl_1_1device__command__pool.png | Bin 0 -> 2071 bytes classtz_1_1gl_1_1device__common.html | 123 + ...stz_1_1gl_1_1device__descriptor__pool.html | 144 ++ classtz_1_1gl_1_1device__descriptor__pool.png | Bin 0 -> 2076 bytes classtz_1_1gl_1_1device__ogl.html | 133 + classtz_1_1gl_1_1device__ogl.png | Bin 0 -> 1161 bytes ...1gl_1_1device__render__scheduler__ogl.html | 132 + ..._1gl_1_1device__render__scheduler__ogl.png | Bin 0 -> 766 bytes classtz_1_1gl_1_1device__render__sync.html | 144 ++ classtz_1_1gl_1_1device__render__sync.png | Bin 0 -> 2077 bytes classtz_1_1gl_1_1device__vulkan2.html | 149 ++ classtz_1_1gl_1_1device__vulkan2.png | Bin 0 -> 3258 bytes classtz_1_1gl_1_1device__vulkan__base.html | 136 ++ classtz_1_1gl_1_1device__vulkan__base.png | Bin 0 -> 2088 bytes classtz_1_1gl_1_1device__window.html | 169 ++ classtz_1_1gl_1_1device__window.png | Bin 0 -> 2085 bytes classtz_1_1gl_1_1icomponent.html | 135 ++ classtz_1_1gl_1_1icomponent.png | Bin 0 -> 1468 bytes classtz_1_1gl_1_1image__component__ogl.html | 132 + classtz_1_1gl_1_1image__component__ogl.png | Bin 0 -> 672 bytes ...stz_1_1gl_1_1image__component__vulkan.html | 132 + classtz_1_1gl_1_1image__component__vulkan.png | Bin 0 -> 703 bytes classtz_1_1gl_1_1image__output.html | 133 + classtz_1_1gl_1_1image__output.png | Bin 0 -> 976 bytes classtz_1_1gl_1_1image__resource.html | 319 +++ classtz_1_1gl_1_1image__resource.png | Bin 0 -> 1309 bytes classtz_1_1gl_1_1ioutput.html | 134 ++ classtz_1_1gl_1_1ioutput.png | Bin 0 -> 1403 bytes classtz_1_1gl_1_1iresource.html | 343 +++ classtz_1_1gl_1_1iresource.png | Bin 0 -> 1879 bytes classtz_1_1gl_1_1ogl2_1_1buffer.html | 436 ++++ classtz_1_1gl_1_1ogl2_1_1framebuffer.html | 302 +++ classtz_1_1gl_1_1ogl2_1_1image.html | 376 +++ classtz_1_1gl_1_1ogl2_1_1render__buffer.html | 123 + classtz_1_1gl_1_1ogl2_1_1shader.html | 259 ++ classtz_1_1gl_1_1ogl2_1_1shader__module.html | 192 ++ classtz_1_1gl_1_1ogl2_1_1vertex__array.html | 268 +++ classtz_1_1gl_1_1renderer.html | 360 +++ ...1_1gl_1_1renderer__command__processor.html | 138 ++ ..._1_1gl_1_1renderer__command__processor.png | Bin 0 -> 3827 bytes ..._1gl_1_1renderer__descriptor__manager.html | 138 ++ ...1_1gl_1_1renderer__descriptor__manager.png | Bin 0 -> 3862 bytes classtz_1_1gl_1_1renderer__info.html | 412 ++++ classtz_1_1gl_1_1renderer__ogl.html | 360 +++ classtz_1_1gl_1_1renderer__ogl.png | Bin 0 -> 655 bytes ...tz_1_1gl_1_1renderer__output__manager.html | 146 ++ ...stz_1_1gl_1_1renderer__output__manager.png | Bin 0 -> 3854 bytes classtz_1_1gl_1_1renderer__pipeline.html | 140 ++ classtz_1_1gl_1_1renderer__pipeline.png | Bin 0 -> 3841 bytes ..._1_1gl_1_1renderer__resource__manager.html | 138 ++ ...z_1_1gl_1_1renderer__resource__manager.png | Bin 0 -> 3866 bytes classtz_1_1gl_1_1renderer__vulkan2.html | 138 ++ classtz_1_1gl_1_1renderer__vulkan2.png | Bin 0 -> 3832 bytes classtz_1_1gl_1_1resource.html | 283 +++ classtz_1_1gl_1_1resource.png | Bin 0 -> 1874 bytes classtz_1_1gl_1_1shader__info.html | 123 + ...stz_1_1gl_1_1vk2_1_1_binary_semaphore.html | 144 ++ classtz_1_1gl_1_1vk2_1_1_binary_semaphore.png | Bin 0 -> 1724 bytes classtz_1_1gl_1_1vk2_1_1_buffer.html | 249 ++ classtz_1_1gl_1_1vk2_1_1_buffer.png | Bin 0 -> 1092 bytes classtz_1_1gl_1_1vk2_1_1_command_buffer.html | 215 ++ ...l_1_1vk2_1_1_command_buffer_recording.html | 433 ++++ ...r_recording_1_1_dynamic_rendering_run.html | 123 + ..._buffer_recording_1_1_render_pass_run.html | 185 ++ classtz_1_1gl_1_1vk2_1_1_command_pool.html | 171 ++ ...stz_1_1gl_1_1vk2_1_1_compute_pipeline.html | 123 + classtz_1_1gl_1_1vk2_1_1_debug_nameable.html | 123 + ...tz_1_1gl_1_1vk2_1_1_descriptor_layout.html | 240 ++ ..._1_1vk2_1_1_descriptor_layout_builder.html | 271 +++ classtz_1_1gl_1_1vk2_1_1_descriptor_pool.html | 301 +++ ..._1_descriptor_pool_1_1_update_request.html | 148 ++ classtz_1_1gl_1_1vk2_1_1_descriptor_set.html | 193 ++ ...2_1_1_descriptor_set_1_1_edit_request.html | 246 ++ classtz_1_1gl_1_1vk2_1_1_fence.html | 196 ++ classtz_1_1gl_1_1vk2_1_1_fence.png | Bin 0 -> 1087 bytes classtz_1_1gl_1_1vk2_1_1_framebuffer.html | 252 ++ ...tz_1_1gl_1_1vk2_1_1_graphics_pipeline.html | 130 + classtz_1_1gl_1_1vk2_1_1_image.html | 231 ++ classtz_1_1gl_1_1vk2_1_1_image.png | Bin 0 -> 1099 bytes classtz_1_1gl_1_1vk2_1_1_image_view.html | 132 + classtz_1_1gl_1_1vk2_1_1_image_view.png | Bin 0 -> 1190 bytes classtz_1_1gl_1_1vk2_1_1_logical_device.html | 255 ++ classtz_1_1gl_1_1vk2_1_1_physical_device.html | 365 +++ classtz_1_1gl_1_1vk2_1_1_pipeline.html | 123 + classtz_1_1gl_1_1vk2_1_1_pipeline_cache.html | 123 + classtz_1_1gl_1_1vk2_1_1_pipeline_layout.html | 130 + classtz_1_1gl_1_1vk2_1_1_queue_storage.html | 125 + classtz_1_1gl_1_1vk2_1_1_render_pass.html | 140 ++ ..._1_1gl_1_1vk2_1_1_render_pass_builder.html | 270 +++ classtz_1_1gl_1_1vk2_1_1_sampler.html | 140 ++ classtz_1_1gl_1_1vk2_1_1_shader.html | 131 + classtz_1_1gl_1_1vk2_1_1_shader_module.html | 145 ++ classtz_1_1gl_1_1vk2_1_1_subpass_builder.html | 299 +++ classtz_1_1gl_1_1vk2_1_1_swapchain.html | 393 +++ ...z_1_1gl_1_1vk2_1_1_timeline_semaphore.html | 233 ++ ...tz_1_1gl_1_1vk2_1_1_timeline_semaphore.png | Bin 0 -> 1720 bytes ...1gl_1_1vk2_1_1_vulkan_debug_messenger.html | 123 + classtz_1_1gl_1_1vk2_1_1_vulkan_instance.html | 131 + classtz_1_1gl_1_1vk2_1_1_window_surface.html | 141 ++ ...tz_1_1gl_1_1vk2_1_1hardware_1_1_queue.html | 266 ++ classtz_1_1gl_1_1window__output.html | 133 + classtz_1_1gl_1_1window__output.png | Bin 0 -> 973 bytes classtz_1_1grid__view.html | 321 +++ classtz_1_1handle.html | 123 + classtz_1_1impl_1_1job__system__stdasync.html | 123 + ...1impl_1_1job__system__threadpool__lfq.html | 125 + classtz_1_1linear__allocator.html | 140 ++ classtz_1_1linear__allocator.png | Bin 0 -> 638 bytes classtz_1_1mallocator.html | 131 + classtz_1_1matrix.html | 927 +++++++ classtz_1_1maybe__owned__ptr.html | 123 + classtz_1_1null__allocator.html | 130 + classtz_1_1stack__allocator.html | 147 ++ classtz_1_1stack__allocator.png | Bin 0 -> 634 bytes classtz_1_1unique__cloneable.html | 123 + classtz_1_1vector.html | 801 +++++++ classtz_1_1wsi_1_1impl_1_1window__winapi.html | 123 + classtz_1_1wsi_1_1impl_1_1window__x11.html | 123 + clone_8hpp_source.html | 150 ++ closed.png | Bin 0 -> 132 bytes command_8hpp_source.html | 594 +++++ component_8hpp_source.html | 145 ++ concepttz_1_1action.html | 136 ++ concepttz_1_1allocator.html | 133 + concepttz_1_1arithmetic.html | 134 ++ concepttz_1_1const__type.html | 127 + concepttz_1_1enum__class.html | 127 + concepttz_1_1function.html | 138 ++ ...pttz_1_1gl_1_1buffer__component__type.html | 132 + concepttz_1_1gl_1_1device__type.html | 150 ++ ...epttz_1_1gl_1_1image__component__type.html | 135 ++ concepttz_1_1gl_1_1renderer__type.html | 158 ++ concepttz_1_1job__system__type.html | 151 ++ concepttz_1_1native__available.html | 131 + concepttz_1_1nullable.html | 131 + concepttz_1_1number.html | 140 ++ concepttz_1_1trivially__copyable.html | 127 + concepttz_1_1wsi_1_1window__api.html | 159 ++ dbgui_8hpp_source.html | 173 ++ debug_8hpp_source.html | 189 ++ debugname_8hpp_source.html | 157 ++ declare_2image__format_8hpp_source.html | 320 +++ descriptors_8hpp_source.html | 504 ++++ device2_8hpp_source.html | 309 +++ device_8hpp_source.html | 145 ++ dir_02f2e0a3d14e12ea8c919b5199048d38.html | 129 + dir_03d1be8c56fea626d5074aa0bf9e39b5.html | 123 + dir_077aa3e7ad07f4935cea84796bc75f1e.html | 129 + dir_08a9ab9f761476898a1bf8c3b193f50f.html | 162 ++ dir_16fd950ee6de1160473212027e88d072.html | 129 + dir_173d7eb180c4d4693124e94b33941768.html | 140 ++ dir_1a542401272435b03e55911aefd67b06.html | 147 ++ dir_1c4f7d2715376c7e8e07b2905ea8081c.html | 129 + dir_2839e2afe9c7157331d4564f06d50ecc.html | 131 + dir_4be1570a6330a47622cf617327fcd334.html | 178 ++ dir_4eeb864c4eec08c7d6b9d3b0352cfdde.html | 123 + dir_599c755ba65617583b8f9ca84c06536f.html | 142 ++ dir_5a334d1c7ed1f0f36d1b8b8a8c5647cd.html | 129 + dir_6205a33bb4c90b51df32b3d1351a5b41.html | 129 + dir_63b8e252d8f253b21bb5993a46e3331f.html | 123 + dir_68267d1309a1af8e8297ef4c3efbcdba.html | 136 ++ dir_690e214e6e61530c3684abd455794879.html | 134 ++ dir_6c60afaf75e74ab2767b74a19a30396f.html | 129 + dir_7122b68cae0d86e82e150514ab755870.html | 139 ++ dir_8c219efcfe695884c877ddb6dae03642.html | 129 + dir_8e01169d6f6292bd7f3d8f71a715d1a5.html | 135 ++ dir_90fb58752be9fb1ae64073e2b3427807.html | 140 ++ dir_9eaca02b9c6ac3e186d627c155dd0218.html | 140 ++ dir_ad3614566e14216ad794a62267d6851c.html | 140 ++ dir_b6c2a257bfab6380ca9b3cb94b12cb25.html | 129 + dir_b6f1048c6f0057577e2c84efc97e28f6.html | 133 + dir_b8a37355f4ff41c3494f436b52e9d1e4.html | 131 + dir_c45f7307fd1a89701e5a7df4b0292432.html | 152 ++ dir_c5afd7f4a3427178c30763104b31116d.html | 131 + dir_c99b309211028f9b549bc11f5ba411a6.html | 141 ++ dir_d2650608e6952a9513fd80a851d6a394.html | 138 ++ dir_ec6445c9b7ffdfd0780b9f9686149b19.html | 135 ++ dir_ee9290bbb94f4eedc360bcd5845482c0.html | 141 ++ dir_f25169e3c3abac666585ffc445559871.html | 131 + doc.png | Bin 0 -> 746 bytes docd.png | Bin 0 -> 756 bytes doxygen-awesome.css | 2135 +++++++++++++++++ doxygen.css | 1989 +++++++++++++++ doxygen.svg | 26 + draw_8hpp_source.html | 143 ++ dynsections.js | 123 + engine__info_8hpp_source.html | 161 ++ enum__field_8hpp_source.html | 175 ++ extensions_8hpp_source.html | 203 ++ fallback_8hpp_source.html | 166 ++ favicon-16x16.png | Bin 0 -> 1702 bytes favicon-32x32.png | Bin 0 -> 2076 bytes favicon.ico | Bin 0 -> 15086 bytes features_8hpp_source.html | 207 ++ fence_8hpp_source.html | 177 ++ fixed__function_8hpp_source.html | 332 +++ folderclosed.png | Bin 0 -> 616 bytes folderopen.png | Bin 0 -> 597 bytes game__info_8hpp_source.html | 159 ++ gpu__mem_8hpp_source.html | 139 ++ graphics.html | 164 ++ graphics__documentation_8hpp_source.html | 124 + graphics__pipeline_8hpp_source.html | 307 +++ grid__view_8hpp_source.html | 156 ++ group__tz__core.html | 914 +++++++ group__tz__core__algorithms.html | 183 ++ group__tz__core__data.html | 145 ++ group__tz__core__job.html | 193 ++ group__tz__core__memory.html | 136 ++ group__tz__core__memory__allocator.html | 151 ++ group__tz__cpp.html | 141 ++ group__tz__dbgui.html | 253 ++ group__tz__gl2.html | 379 +++ group__tz__gl2__graphicsapi.html | 140 ++ group__tz__gl2__graphicsapi__ogl.html | 139 ++ ...__tz__gl2__graphicsapi__ogl__frontend.html | 136 ++ ..._graphicsapi__ogl__frontend__renderer.html | 145 ++ group__tz__gl2__graphicsapi__vk.html | 139 ++ ...p__tz__gl2__graphicsapi__vk__frontend.html | 126 + group__tz__gl2__io.html | 126 + group__tz__gl2__renderer.html | 270 +++ group__tz__gl2__res.html | 334 +++ group__tz__gl__ogl2.html | 169 ++ group__tz__gl__ogl2__buffers.html | 319 +++ group__tz__gl__ogl2__framebuffer.html | 164 ++ group__tz__gl__ogl2__image.html | 240 ++ group__tz__gl__ogl2__shader.html | 210 ++ group__tz__gl__vk.html | 267 +++ group__tz__gl__vk__buffer.html | 216 ++ group__tz__gl__vk__commands.html | 148 ++ group__tz__gl__vk__descriptors.html | 213 ++ group__tz__gl__vk__extension.html | 276 +++ group__tz__gl__vk__graphics__pipeline.html | 285 +++ ...tz__gl__vk__graphics__pipeline__fixed.html | 402 ++++ ..._vk__graphics__pipeline__render__pass.html | 387 +++ ...z__gl__vk__graphics__pipeline__shader.html | 152 ++ group__tz__gl__vk__image.html | 522 ++++ group__tz__gl__vk__presentation.html | 208 ++ group__tz__gl__vk__sync.html | 153 ++ group__tz__wsi.html | 145 ++ group__tz__wsi__keyboard.html | 233 ++ group__tz__wsi__monitor.html | 164 ++ group__tz__wsi__mouse.html | 273 +++ group__tz__wsi__window.html | 284 +++ group__tzsl.html | 151 ++ group__tzsl__atomic.html | 173 ++ group__tzsl__debug.html | 203 ++ group__tzsl__math.html | 643 +++++ group__tzsl__matrix.html | 178 ++ group__tzsl__mesh.html | 153 ++ group__tzsl__noise.html | 190 ++ handle_8hpp_source.html | 176 ++ image__view_8hpp_source.html | 174 ++ impl_2common_2renderer_8hpp_source.html | 351 +++ impl_2linux_2keyboard_8hpp_source.html | 137 ++ impl_2linux_2monitor_8hpp_source.html | 136 ++ impl_2linux_2window_8hpp_source.html | 188 ++ impl_2opengl_2component_8hpp_source.html | 189 ++ impl_2opengl_2detail_2draw_8hpp_source.html | 151 ++ ...gl_2detail_2image__format_8hpp_source.html | 266 ++ impl_2opengl_2detail_2shader_8hpp_source.html | 246 ++ impl_2opengl_2device_8hpp_source.html | 176 ++ impl_2opengl_2renderer_8hpp_source.html | 278 +++ impl_2stdasync_2job_8hpp_source.html | 156 ++ impl_2threadpool__lfq_2job_8hpp_source.html | 183 ++ impl_2vulkan_2component_8hpp_source.html | 190 ++ impl_2vulkan_2detail_2draw_8hpp_source.html | 149 ++ ...an_2detail_2image__format_8hpp_source.html | 278 +++ impl_2vulkan_2detail_2shader_8hpp_source.html | 229 ++ impl_2windows_2keyboard_8hpp_source.html | 142 ++ impl_2windows_2monitor_8hpp_source.html | 135 ++ impl_2windows_2window_8hpp_source.html | 194 ++ imported__shaders_8hpp_source.html | 143 ++ imported__text_8hpp_source.html | 137 ++ index.html | 125 + job_8hpp_source.html | 146 ++ jquery.js | 34 + keyboard_8hpp_source.html | 141 ++ linear_8hpp_source.html | 155 ++ logical__device_8hpp_source.html | 247 ++ macros_8hpp_source.html | 124 + malloc_8hpp_source.html | 146 ++ matrix_8hpp_source.html | 210 ++ matrix__transform_8hpp_source.html | 153 ++ maybe__owned__ptr_8hpp_source.html | 181 ++ memblk_8hpp_source.html | 143 ++ menudata.js | 31 + monitor_8hpp_source.html | 135 ++ mouse_8hpp_source.html | 136 ++ mstile-150x150.png | Bin 0 -> 5054 bytes namespacetz_1_1atomic.html | 166 ++ namespacetz_1_1debug.html | 140 ++ ...pacetz_1_1gl_1_1vk2_1_1format__traits.html | 228 ++ ...acetz_1_1gl_1_1vk2_1_1present__traits.html | 166 ++ namespacetz_1_1math.html | 276 +++ namespacetz_1_1matrix.html | 149 ++ namespacetz_1_1mesh.html | 146 ++ namespacetz_1_1noise.html | 140 ++ namespacetz_1_1wsi_1_1window__flag.html | 129 + 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 navtree.css | 150 ++ navtree.js | 549 +++++ navtreedata.js | 44 + navtreeindex0.js | 11 + null_8hpp_source.html | 146 ++ open.png | Bin 0 -> 123 bytes opengl_2convert_8hpp_source.html | 139 ++ opengl_2detail_2buffer_8hpp_source.html | 235 ++ opengl_2detail_2framebuffer_8hpp_source.html | 191 ++ opengl_2detail_2image_8hpp_source.html | 203 ++ opengl_2detail_2sampler_8hpp_source.html | 170 ++ output_8hpp_source.html | 195 ++ physical__device_8hpp_source.html | 263 ++ pipeline__layout_8hpp_source.html | 169 ++ polymorphic__list_8hpp_source.html | 188 ++ profile_8hpp_source.html | 151 ++ queue_8hpp_source.html | 283 +++ render__pass_8hpp_source.html | 360 +++ renderbuffer_8hpp_source.html | 171 ++ renderer2_8hpp_source.html | 394 +++ renderer_8hpp_source.html | 142 ++ resize.js | 155 ++ resource_8hpp_source.html | 281 +++ safari-pinned-tab.svg | 41 + schedule_8hpp_source.html | 175 ++ search/all_0.js | 57 + search/all_1.js | 84 + search/all_10.js | 9 + search/all_11.js | 66 + search/all_12.js | 107 + search/all_13.js | 63 + search/all_14.js | 19 + search/all_15.js | 57 + search/all_16.js | 37 + search/all_17.js | 5 + search/all_18.js | 4 + search/all_2.js | 60 + search/all_3.js | 104 + search/all_4.js | 42 + search/all_5.js | 49 + search/all_6.js | 69 + search/all_7.js | 15 + search/all_8.js | 83 + search/all_9.js | 11 + search/all_a.js | 8 + search/all_b.js | 26 + search/all_c.js | 51 + search/all_d.js | 20 + search/all_e.js | 28 + search/all_f.js | 40 + search/classes_0.js | 11 + search/classes_1.js | 51 + search/classes_10.js | 8 + search/classes_11.js | 31 + search/classes_12.js | 33 + search/classes_13.js | 9 + search/classes_14.js | 7 + search/classes_15.js | 17 + search/classes_16.js | 14 + search/classes_17.js | 4 + search/classes_2.js | 16 + search/classes_3.js | 49 + search/classes_4.js | 24 + search/classes_5.js | 14 + search/classes_6.js | 8 + search/classes_7.js | 7 + search/classes_8.js | 30 + search/classes_9.js | 6 + search/classes_a.js | 4 + search/classes_b.js | 7 + search/classes_c.js | 12 + search/classes_d.js | 5 + search/classes_e.js | 5 + search/classes_f.js | 15 + search/close.svg | 31 + search/concepts_0.js | 19 + search/enums_0.js | 6 + search/enums_1.js | 6 + search/enums_2.js | 4 + search/enums_3.js | 7 + search/enums_4.js | 9 + search/enums_5.js | 4 + search/enums_6.js | 6 + search/enums_7.js | 6 + search/enums_8.js | 8 + search/enums_9.js | 7 + search/enums_a.js | 9 + search/enums_b.js | 4 + search/enumvalues_0.js | 11 + search/enumvalues_1.js | 8 + search/enumvalues_10.js | 15 + search/enumvalues_11.js | 10 + search/enumvalues_12.js | 18 + 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 | 18 + search/enumvalues_9.js | 11 + search/enumvalues_a.js | 8 + search/enumvalues_b.js | 12 + search/enumvalues_c.js | 4 + search/enumvalues_d.js | 8 + search/enumvalues_e.js | 8 + search/enumvalues_f.js | 15 + search/functions_0.js | 22 + search/functions_1.js | 21 + search/functions_10.js | 37 + search/functions_11.js | 14 + search/functions_12.js | 7 + search/functions_13.js | 9 + search/functions_14.js | 16 + search/functions_15.js | 4 + search/functions_16.js | 4 + search/functions_2.js | 23 + search/functions_3.js | 27 + search/functions_4.js | 15 + search/functions_5.js | 12 + search/functions_6.js | 57 + search/functions_7.js | 8 + search/functions_8.js | 21 + search/functions_9.js | 4 + search/functions_a.js | 9 + search/functions_b.js | 17 + search/functions_c.js | 7 + search/functions_d.js | 22 + search/functions_e.js | 11 + search/functions_f.js | 24 + search/groups_0.js | 6 + search/groups_1.js | 4 + search/groups_10.js | 4 + search/groups_11.js | 6 + search/groups_12.js | 5 + search/groups_2.js | 6 + search/groups_3.js | 7 + search/groups_4.js | 4 + search/groups_5.js | 5 + search/groups_6.js | 5 + search/groups_7.js | 5 + search/groups_8.js | 4 + search/groups_9.js | 4 + search/groups_a.js | 9 + search/groups_b.js | 4 + search/groups_c.js | 6 + search/groups_d.js | 5 + search/groups_e.js | 7 + search/groups_f.js | 6 + search/mag.svg | 37 + search/mag_d.svg | 37 + search/mag_sel.svg | 74 + search/mag_seld.svg | 74 + search/namespaces_0.js | 12 + search/pages_0.js | 4 + search/pages_1.js | 4 + search/pages_2.js | 4 + search/search.css | 292 +++ search/search.js | 816 +++++++ 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 | 7 + search/typedefs_6.js | 4 + search/typedefs_7.js | 19 + search/typedefs_8.js | 4 + search/variables_0.js | 16 + search/variables_1.js | 14 + search/variables_10.js | 29 + search/variables_11.js | 9 + search/variables_12.js | 4 + search/variables_13.js | 5 + search/variables_14.js | 12 + search/variables_2.js | 14 + search/variables_3.js | 18 + search/variables_4.js | 7 + search/variables_5.js | 16 + search/variables_6.js | 5 + search/variables_7.js | 16 + search/variables_8.js | 5 + search/variables_9.js | 6 + search/variables_a.js | 12 + search/variables_b.js | 4 + search/variables_c.js | 4 + search/variables_d.js | 10 + search/variables_e.js | 4 + search/variables_f.js | 5 + semaphore_8hpp_source.html | 196 ++ shader_8hpp_source.html | 123 + shaders.html | 360 +++ shaders__documentation_8hpp_source.html | 124 + site.webmanifest | 19 + splitbar.png | Bin 0 -> 314 bytes splitbard.png | Bin 0 -> 282 bytes stack_8hpp_source.html | 146 ++ static_8hpp_source.html | 176 ++ struct_im_gui_vertex.html | 123 + ...tz_1_1vector_3_01_t_00_01_s_01_4_01_4.html | 123 + ...cttz_1_1core_1_1detail_1_1init__state.html | 123 + structtz_1_1dbgui_1_1_im_gui_tab_t_z.html | 123 + structtz_1_1dbgui_1_1_input_delta.html | 123 + ...cttz_1_1dbgui_1_1_topaz_platform_data.html | 123 + structtz_1_1dbgui_1_1_topaz_render_data.html | 123 + ...1_1dbgui_1_1_topaz_shader_render_data.html | 123 + structtz_1_1dbgui_1_1init__info.html | 133 + structtz_1_1detail_1_1callback__type.html | 123 + structtz_1_1detail_1_1format__string.html | 130 + structtz_1_1detail_1_1job__handle__tag.html | 123 + structtz_1_1detail_1_1source__loc.html | 123 + ...raw_1_1_draw_indexed_indirect_command.html | 123 + ...ttz_1_1draw_1_1_draw_indirect_command.html | 123 + structtz_1_1engine__info.html | 174 ++ structtz_1_1game__info.html | 172 ++ structtz_1_1gl_1_1buffer__info.html | 123 + ...cttz_1_1gl_1_1detail_1_1renderer__tag.html | 123 + ...command__pool_1_1fingerprint__info__t.html | 123 + structtz_1_1gl_1_1edit__side__effects.html | 123 + structtz_1_1gl_1_1event.html | 123 + structtz_1_1gl_1_1image__info.html | 152 ++ structtz_1_1gl_1_1image__output__info.html | 123 + structtz_1_1gl_1_1ogl2_1_1_format_data.html | 131 + structtz_1_1gl_1_1ogl2_1_1buffer__info.html | 148 ++ ...2_1_1draw__indexed__indirect__command.html | 123 + ...gl_1_1ogl2_1_1draw__indirect__command.html | 123 + ...tz_1_1gl_1_1ogl2_1_1framebuffer__info.html | 148 ++ structtz_1_1gl_1_1ogl2_1_1image__info.html | 148 ++ ...1_1gl_1_1ogl2_1_1render__buffer__info.html | 137 ++ structtz_1_1gl_1_1ogl2_1_1sampler.html | 156 ++ ...1gl_1_1ogl2_1_1shader_1_1link__result.html | 144 ++ structtz_1_1gl_1_1ogl2_1_1shader__info.html | 140 ++ ..._1_1shader__module_1_1compile__result.html | 144 ++ ...1_1gl_1_1ogl2_1_1shader__module__info.html | 144 ++ structtz_1_1gl_1_1overloaded.html | 129 + structtz_1_1gl_1_1overloaded.png | Bin 0 -> 569 bytes structtz_1_1gl_1_1render__state.html | 152 ++ ...tz_1_1gl_1_1render__state_1_1_compute.html | 133 + ...z_1_1gl_1_1render__state_1_1_graphics.html | 149 ++ structtz_1_1gl_1_1renderer__edit.html | 147 ++ ...l_1_1renderer__edit_1_1buffer__resize.html | 144 ++ ..._1_1renderer__edit_1_1compute__config.html | 140 ++ ...gl_1_1renderer__edit_1_1image__resize.html | 144 ++ ...l_1_1renderer__edit_1_1render__config.html | 140 ++ ...renderer__edit_1_1resource__reference.html | 123 + ..._1_1renderer__edit_1_1resource__write.html | 123 + ...tz_1_1gl_1_1renderer__edit_1_1scissor.html | 123 + structtz_1_1gl_1_1renderer__ogl__base.html | 132 + structtz_1_1gl_1_1renderer__ogl__base.png | Bin 0 -> 660 bytes ..._output__manager_1_1render__target__t.html | 123 + structtz_1_1gl_1_1renderer__vulkan__base.html | 137 ++ structtz_1_1gl_1_1renderer__vulkan__base.png | Bin 0 -> 2658 bytes structtz_1_1gl_1_1schedule.html | 123 + structtz_1_1gl_1_1scissor__region.html | 123 + structtz_1_1gl_1_1shader__meta.html | 123 + structtz_1_1gl_1_1timeline__t.html | 129 + structtz_1_1gl_1_1timeline__t.png | Bin 0 -> 572 bytes structtz_1_1gl_1_1viewport__region.html | 123 + structtz_1_1gl_1_1vk2_1_1_attachment.html | 168 ++ ...z_1_1gl_1_1vk2_1_1_colour_blend_state.html | 130 + ..._1_1gl_1_1vk2_1_1_command_buffer_data.html | 123 + ..._1vk2_1_1_command_pool_1_1_allocation.html | 140 ++ ..._1_command_pool_1_1_allocation_result.html | 160 ++ ...tz_1_1gl_1_1vk2_1_1_command_pool_info.html | 144 ++ ..._1gl_1_1vk2_1_1_compute_pipeline_info.html | 123 + ..._1_1gl_1_1vk2_1_1_depth_stencil_state.html | 172 ++ ...cttz_1_1gl_1_1vk2_1_1_descriptor_data.html | 123 + ...1gl_1_1vk2_1_1_descriptor_layout_info.html | 167 ++ ...scriptor_layout_info_1_1_binding_info.html | 141 ++ ...k2_1_1_descriptor_pool_1_1_allocation.html | 140 ++ ...descriptor_pool_1_1_allocation_result.html | 211 ++ ...1_1gl_1_1vk2_1_1_descriptor_pool_info.html | 231 ++ ..._descriptor_pool_info_1_1_pool_limits.html | 148 ++ ...l_1_1vk2_1_1_descriptor_set_1_1_write.html | 162 ++ ...r_set_1_1_write_1_1_buffer_write_info.html | 148 ++ ...or_set_1_1_write_1_1_image_write_info.html | 144 ++ ...1_1vk2_1_1_dynamic_rendering_run_info.html | 123 + structtz_1_1gl_1_1vk2_1_1_dynamic_state.html | 130 + structtz_1_1gl_1_1vk2_1_1_fence_info.html | 144 ++ ...ttz_1_1gl_1_1vk2_1_1_framebuffer_data.html | 123 + ...ttz_1_1gl_1_1vk2_1_1_framebuffer_info.html | 156 ++ ...1gl_1_1vk2_1_1_graphics_pipeline_info.html | 150 ++ ...line_info_1_1_dynamic_rendering_state.html | 123 + ...cttz_1_1gl_1_1vk2_1_1_image_view_info.html | 123 + ...1_1gl_1_1vk2_1_1_internal_device_info.html | 123 + ..._1_1gl_1_1vk2_1_1_logical_device_info.html | 181 ++ ...tz_1_1gl_1_1vk2_1_1_multisample_state.html | 130 + ...1_1gl_1_1vk2_1_1_physical_device_info.html | 123 + ...ysical_device_surface_capability_info.html | 131 + ..._capability_info_1_1_swapchain_extent.html | 123 + structtz_1_1gl_1_1vk2_1_1_pipeline_data.html | 123 + ...1_1gl_1_1vk2_1_1_pipeline_layout_info.html | 144 ++ structtz_1_1gl_1_1vk2_1_1_pipeline_state.html | 123 + ...tz_1_1gl_1_1vk2_1_1_queue_family_info.html | 123 + structtz_1_1gl_1_1vk2_1_1_queue_request.html | 137 ++ ...ttz_1_1gl_1_1vk2_1_1_rasteriser_state.html | 165 ++ ...ttz_1_1gl_1_1vk2_1_1_render_pass_info.html | 182 ++ ...er_pass_info_1_1_attachment_reference.html | 144 ++ ...s_info_1_1_input_attachment_reference.html | 130 + ...1vk2_1_1_render_pass_info_1_1_subpass.html | 153 ++ structtz_1_1gl_1_1vk2_1_1_sampler_info.html | 160 ++ structtz_1_1gl_1_1vk2_1_1_shader_info.html | 144 ++ ...z_1_1gl_1_1vk2_1_1_shader_module_info.html | 148 ++ ...1_1gl_1_1vk2_1_1_shader_pipeline_data.html | 123 + ...2_1_1_swapchain_1_1_image_acquisition.html | 149 ++ ...wapchain_1_1_image_acquisition_result.html | 123 + ...1_1gl_1_1vk2_1_1_swapchain_image_info.html | 144 ++ structtz_1_1gl_1_1vk2_1_1_swapchain_info.html | 156 ++ ...z_1_1gl_1_1vk2_1_1_vertex_input_state.html | 143 ++ ..._1_1_vertex_input_state_1_1_attribute.html | 152 ++ ...k2_1_1_vertex_input_state_1_1_binding.html | 148 ++ structtz_1_1gl_1_1vk2_1_1_viewport_state.html | 131 + structtz_1_1gl_1_1vk2_1_1_vulkan_command.html | 202 ++ ...n_command_1_1_begin_dynamic_rendering.html | 123 + ..._vulkan_command_1_1_begin_render_pass.html | 141 ++ ...k2_1_1_vulkan_command_1_1_bind_buffer.html | 140 ++ ...lkan_command_1_1_bind_descriptor_sets.html | 152 ++ ..._vulkan_command_1_1_bind_index_buffer.html | 131 + ..._1_1_vulkan_command_1_1_bind_pipeline.html | 141 ++ ...vulkan_command_1_1_buffer_copy_buffer.html | 153 ++ ..._vulkan_command_1_1_buffer_copy_image.html | 149 ++ ..._vulkan_command_1_1_debug_begin_label.html | 123 + ..._1_vulkan_command_1_1_debug_end_label.html | 123 + ..._1vk2_1_1_vulkan_command_1_1_dispatch.html | 123 + ...gl_1_1vk2_1_1_vulkan_command_1_1_draw.html | 153 ++ ...2_1_1_vulkan_command_1_1_draw_indexed.html | 131 + ...kan_command_1_1_draw_indexed_indirect.html | 131 + ...mmand_1_1_draw_indexed_indirect_count.html | 123 + ..._1_1_vulkan_command_1_1_draw_indirect.html | 131 + ...ulkan_command_1_1_draw_indirect_count.html | 123 + ...kan_command_1_1_end_dynamic_rendering.html | 123 + ..._1_vulkan_command_1_1_end_render_pass.html | 141 ++ ...1_vulkan_command_1_1_image_copy_image.html | 149 ++ ...ulkan_command_1_1_set_scissor_dynamic.html | 123 + ...n_command_1_1_transition_image_layout.html | 173 ++ ...1_1gl_1_1vk2_1_1_vulkan_instance_info.html | 152 ++ structtz_1_1gl_1_1vk2_1_1buffer__info.html | 152 ++ ...vk2_1_1detail_1_1_device_feature_info.html | 123 + ...2_1_1draw__indexed__indirect__command.html | 123 + ...1gl_1_1vk2_1_1draw__indirect__command.html | 123 + ..._1hardware_1_1_queue_1_1_present_info.html | 148 ++ ...1_1hardware_1_1_queue_1_1_submit_info.html | 160 ++ ...queue_1_1_submit_info_1_1_signal_info.html | 123 + ...1_queue_1_1_submit_info_1_1_wait_info.html | 137 ++ ...1gl_1_1vk2_1_1hardware_1_1_queue_info.html | 123 + structtz_1_1gl_1_1vk2_1_1image__info.html | 172 ++ structtz_1_1initialise__info.html | 213 ++ structtz_1_1memblk.html | 144 ++ structtz_1_1nullhand__t.html | 123 + structtz_1_1space_1_1_m_v_p.html | 128 + structtz_1_1static__for__t.html | 123 + ...1_1static__for__t_3_01_n_00_01_n_01_4.html | 137 ++ structtz_1_1version.html | 123 + ...1wsi_1_1detail_1_1window__handle__tag.html | 123 + ...1_1wsi_1_1impl_1_1wgl__function__data.html | 123 + ..._1_1wsi_1_1impl_1_1x11__display__data.html | 123 + structtz_1_1wsi_1_1keyboard__state.html | 181 ++ structtz_1_1wsi_1_1monitor.html | 144 ++ structtz_1_1wsi_1_1mouse__state.html | 149 ++ structtz_1_1wsi_1_1window.html | 131 + structtz_1_1wsi_1_1window__info.html | 148 ++ structtz_1_1wsi_1_1window__manager.html | 123 + swapchain_8hpp_source.html | 224 ++ 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 | 62 + time_8hpp_source.html | 266 ++ types_8hpp_source.html | 201 ++ tz.png | Bin 0 -> 3262 bytes tz_8hpp_source.html | 176 ++ tz__core_8hpp_source.html | 140 ++ tz__gl_8hpp_source.html | 135 ++ tz__opengl_8hpp_source.html | 151 ++ tz__vulkan_8hpp_source.html | 287 +++ usergroup0.html | 132 + vector_8hpp_source.html | 256 ++ version_8hpp_source.html | 191 ++ vertex__array_8hpp_source.html | 173 ++ vulkan_2convert_8hpp_source.html | 140 ++ vulkan_2detail_2buffer_8hpp_source.html | 223 ++ vulkan_2detail_2framebuffer_8hpp_source.html | 205 ++ vulkan_2detail_2image_8hpp_source.html | 320 +++ vulkan_2detail_2sampler_8hpp_source.html | 206 ++ wgl__ext_8hpp_source.html | 154 ++ winapi_8hpp_source.html | 130 + window_8hpp_source.html | 192 ++ wsi_8hpp_source.html | 136 ++ wsi__linux_8hpp_source.html | 146 ++ wsi__windows_8hpp_source.html | 152 ++ 749 files changed, 97923 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 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 bdwn.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_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_1gl_1_1_asset_storage_common.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__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_buffer_recording_1_1_render_pass_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_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_framebuffer.html 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_render_pass.html create mode 100644 classtz_1_1gl_1_1vk2_1_1_render_pass_builder.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_subpass_builder.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_1impl_1_1job__system__stdasync.html create mode 100644 classtz_1_1impl_1_1job__system__threadpool__lfq.html create mode 100644 classtz_1_1linear__allocator.html create mode 100644 classtz_1_1linear__allocator.png create mode 100644 classtz_1_1mallocator.html create mode 100644 classtz_1_1matrix.html create mode 100644 classtz_1_1maybe__owned__ptr.html create mode 100644 classtz_1_1null__allocator.html create mode 100644 classtz_1_1stack__allocator.html create mode 100644 classtz_1_1stack__allocator.png create mode 100644 classtz_1_1unique__cloneable.html 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 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_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_1job__system__type.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_1trivially__copyable.html create mode 100644 concepttz_1_1wsi_1_1window__api.html create mode 100644 dbgui_8hpp_source.html create mode 100644 debug_8hpp_source.html create mode 100644 debugname_8hpp_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_8hpp_source.html create mode 100644 dir_02f2e0a3d14e12ea8c919b5199048d38.html create mode 100644 dir_03d1be8c56fea626d5074aa0bf9e39b5.html create mode 100644 dir_077aa3e7ad07f4935cea84796bc75f1e.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_4be1570a6330a47622cf617327fcd334.html create mode 100644 dir_4eeb864c4eec08c7d6b9d3b0352cfdde.html create mode 100644 dir_599c755ba65617583b8f9ca84c06536f.html create mode 100644 dir_5a334d1c7ed1f0f36d1b8b8a8c5647cd.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_c5afd7f4a3427178c30763104b31116d.html create mode 100644 dir_c99b309211028f9b549bc11f5ba411a6.html create mode 100644 dir_d2650608e6952a9513fd80a851d6a394.html create mode 100644 dir_ec6445c9b7ffdfd0780b9f9686149b19.html create mode 100644 dir_ee9290bbb94f4eedc360bcd5845482c0.html create mode 100644 dir_f25169e3c3abac666585ffc445559871.html create mode 100644 doc.png create mode 100644 docd.png create mode 100644 doxygen-awesome.css create mode 100644 doxygen.css create mode 100644 doxygen.svg create mode 100644 draw_8hpp_source.html create mode 100644 dynsections.js create mode 100644 engine__info_8hpp_source.html create mode 100644 enum__field_8hpp_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.png create mode 100644 folderopen.png create mode 100644 game__info_8hpp_source.html create mode 100644 gpu__mem_8hpp_source.html create mode 100644 graphics.html create mode 100644 graphics__documentation_8hpp_source.html create mode 100644 graphics__pipeline_8hpp_source.html create mode 100644 grid__view_8hpp_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__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__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_2common_2renderer_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_2stdasync_2job_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 job_8hpp_source.html create mode 100644 jquery.js create mode 100644 keyboard_8hpp_source.html create mode 100644 linear_8hpp_source.html create mode 100644 logical__device_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__transform_8hpp_source.html create mode 100644 maybe__owned__ptr_8hpp_source.html create mode 100644 memblk_8hpp_source.html create mode 100644 menudata.js 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 navtree.css create mode 100644 navtree.js create mode 100644 navtreedata.js create mode 100644 navtreeindex0.js create mode 100644 null_8hpp_source.html create mode 100644 open.png create mode 100644 opengl_2convert_8hpp_source.html create mode 100644 opengl_2detail_2buffer_8hpp_source.html create mode 100644 opengl_2detail_2framebuffer_8hpp_source.html create mode 100644 opengl_2detail_2image_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 polymorphic__list_8hpp_source.html create mode 100644 profile_8hpp_source.html create mode 100644 queue_8hpp_source.html create mode 100644 render__pass_8hpp_source.html create mode 100644 renderbuffer_8hpp_source.html create mode 100644 renderer2_8hpp_source.html create mode 100644 renderer_8hpp_source.html create mode 100644 resize.js create mode 100644 resource_8hpp_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/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_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_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/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/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 shaders.html create mode 100644 shaders__documentation_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 static_8hpp_source.html create mode 100644 struct_im_gui_vertex.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 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_1format__string.html create mode 100644 structtz_1_1detail_1_1job__handle__tag.html create mode 100644 structtz_1_1detail_1_1source__loc.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_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_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_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_attachment.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_framebuffer_data.html create mode 100644 structtz_1_1gl_1_1vk2_1_1_framebuffer_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_render_pass_info.html create mode 100644 structtz_1_1gl_1_1vk2_1_1_render_pass_info_1_1_attachment_reference.html create mode 100644 structtz_1_1gl_1_1vk2_1_1_render_pass_info_1_1_input_attachment_reference.html create mode 100644 structtz_1_1gl_1_1vk2_1_1_render_pass_info_1_1_subpass.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_begin_render_pass.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_end_render_pass.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_1initialise__info.html create mode 100644 structtz_1_1memblk.html create mode 100644 structtz_1_1nullhand__t.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_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_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 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 time_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__core_8hpp_source.html create mode 100644 tz__gl_8hpp_source.html create mode 100644 tz__opengl_8hpp_source.html create mode 100644 tz__vulkan_8hpp_source.html create mode 100644 usergroup0.html create mode 100644 vector_8hpp_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_2detail_2buffer_8hpp_source.html create mode 100644 vulkan_2detail_2framebuffer_8hpp_source.html create mode 100644 vulkan_2detail_2image_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..44c6596cf5 --- /dev/null +++ b/adapter_8hpp_source.html @@ -0,0 +1,166 @@ + + + + + + + +Topaz: src/tz/core/memory/allocators/adapter.hpp Source File + + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.0.0.2 +
+
C++20 Graphics Engine
+
+
+ + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
adapter.hpp
+
+
+
1#ifndef TOPAZ_CORE_ALLOCATORS_ADAPTER_HPP
+
2#define TOPAZ_CORE_ALLOCATORS_ADAPTER_HPP
+
3#include "tz/core/memory/memblk.hpp"
+
4#include "tz/core/types.hpp"
+
5#include "tz/core/debug.hpp"
+
6
+
7namespace tz
+
8{
+
16 template<typename T, tz::allocator A>
+
17 class allocator_adapter : private A
+
18 {
+
19 public:
+
20 using value_type = T;
+
21 using size_type = std::size_t;
+
22 using difference_type = std::ptrdiff_t;
+
23 using propagate_on_container_move_assignment = std::true_type;
+
24
+
25 allocator_adapter() = default;
+
26 allocator_adapter(const A& a):
+
27 A(a){}
+
28
+
29 template<class U>
+ +
31
+
32 T* allocate(std::size_t n)
+
33 {
+
34 tz::memblk blk = A::allocate(n * sizeof(T));
+
35 tz::assert(blk != nullblk, "allocator_adapter -- The underlying tz allocator returned a null-block. Memory allocation failed. The standard library allocator is going to crash.");
+
36 return reinterpret_cast<T*>(blk.ptr);
+
37 }
+
38
+
39 void deallocate(T* p, std::size_t n)
+
40 {
+
41 A::deallocate({.ptr = p, .size = n});
+
42 }
+
43 };
+
44}
+
45
+
46#endif // TOPAZ_CORE_ALLOCATORS_ADAPTER_HPP
+
A meta-allocator which allows a tz allocator to be used as if it were a std::allocator.
Definition: adapter.hpp:18
+
void assert(bool condition, detail::format_string fmt="<No message>", Args &&... args)
Assert on a condition.
Definition: debug.inl:33
+
A non-owning, contiguous block of memory.
Definition: memblk.hpp:12
+
void * ptr
Start address of the block.
Definition: memblk.hpp:14
+
+
+ + + + diff --git a/android-chrome-192x192.png b/android-chrome-192x192.png new file mode 100644 index 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/gl/api/component.hpp Source File + + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.0.0.2 +
+
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:82
+ +
Definition: component.hpp:19
+
Definition: component.hpp:27
+
+
+ + + + diff --git a/api_2device_8hpp_source.html b/api_2device_8hpp_source.html new file mode 100644 index 0000000000..8287a1a482 --- /dev/null +++ b/api_2device_8hpp_source.html @@ -0,0 +1,207 @@ + + + + + + + +Topaz: src/tz/gl/api/device.hpp Source File + + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.0.0.2 +
+
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 };
+
33
+
34 template<renderer_type R>
+ +
36 {
+
37 public:
+
38 device_common() = default;
+
39 const R& get_renderer(tz::gl::renderer_handle handle) const;
+
40 R& get_renderer(tz::gl::renderer_handle handle);
+
41 void destroy_renderer(tz::gl::renderer_handle handle);
+
42 std::size_t renderer_count() const;
+
43 const tz::gl::schedule& render_graph() const;
+
44 tz::gl::schedule& render_graph();
+
45 void render();
+
46 // Derived needs to define create_renderer still. They can use emplace_renderer as a helper function.
+
47 protected:
+
48 tz::gl::renderer_handle emplace_renderer(const tz::gl::renderer_info& rinfo);
+
49 void internal_clear();
+
50 void post_add_renderer(std::size_t rid, const tz::gl::renderer_info& rinfo);
+
51 private:
+
52 std::vector<R> renderers;
+
53 std::vector<std::size_t> free_list = {};
+
54 tz::gl::schedule render_schedule = {};
+
55 };
+
56
+
57 template<tz::gl::device_type<tz::gl::renderer_info> T>
+
58 void common_device_dbgui(T& device);
+
59
+
60 #if TZ_VULKAN && TZ_OGL
+
61 // Documentation only.
+
66 class device
+
67 {
+
68 public:
+ + +
87 std::size_t renderer_count();
+ + +
102
+ +
108 };
+
109 #endif
+
110}
+
111
+
112#include "tz/gl/api/device.inl"
+
113#endif // TOPAZ_GL_2_API_DEVICE_HPP
+
Definition: device.hpp:36
+
Implements tz::gl::device_type.
Definition: device.hpp:67
+
const tz::gl::renderer & get_renderer(tz::gl::renderer_handle rh) const
Retrieve a reference to the renderer associated with the given handle.
+
void destroy_renderer(tz::gl::renderer_handle rh)
Destroy an existing renderer.
+
tz::gl::renderer_handle create_renderer(tz::gl::renderer_info &rinfo)
Create a new tz::gl::renderer.
+
std::size_t renderer_count()
Retrieve the number of existing renderers.
+
tz::gl::renderer & get_renderer(tz::gl::renderer_handle rh)
Retrieve a reference to the renderer associated with the given handle.
+
tz::gl::image_format get_window_format() const
Retrieve the image format that is being used by the window surface.
+
Helper struct which the user can use to specify which inputs, resources they want and where they want...
Definition: renderer.hpp:112
+
Implements tz::gl::renderer_type.
Definition: renderer.hpp:390
+ +
Named Requirement: device Implemented by tz_gl2_device.
Definition: device.hpp:21
+
Named requirement for a renderer.
Definition: renderer.hpp:333
+
tz::handle< detail::renderer_tag > renderer_handle
Represents a handle for a renderer owned by an existing device.
Definition: renderer.hpp:27
+
image_format
Various image formats are supported in Topaz.
Definition: image_format.hpp:33
+
Definition: schedule.hpp:30
+
+
+ + + + diff --git a/api_2job_8hpp_source.html b/api_2job_8hpp_source.html new file mode 100644 index 0000000000..1392065a82 --- /dev/null +++ b/api_2job_8hpp_source.html @@ -0,0 +1,156 @@ + + + + + + + +Topaz: src/tz/core/job/api/job.hpp Source File + + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.0.0.2 +
+
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 "tz/core/data/handle.hpp"
+
5
+
6namespace tz
+
7{
+
8 namespace detail
+
9 {
+ +
11 }
+ +
17
+
22 using job_t = std::function<void()>;
+
23
+
28 template<typename T>
+
29 concept job_system_type = requires(T t, job_t job, job_handle jh)
+
30 {
+
35 {t.execute(job)} -> std::same_as<job_handle>;
+
39 {t.block(jh)} -> std::same_as<void>;
+
44 {t.complete(jh)} -> std::same_as<bool>;
+
49 {t.any_work_remaining()} -> std::same_as<bool>;
+
53 {t.block_all()} -> std::same_as<void>;
+
57 {t.size()} -> std::same_as<unsigned int>;
+
58 };
+
59}
+
60
+
61#endif // TZ_JOB_API_JOB_HPP
+
Definition: handle.hpp:16
+
API for job system.
Definition: job.hpp:29
+
std::function< void()> job_t
Represents a job.
Definition: job.hpp:22
+
tz::handle< detail::job_handle_tag > job_handle
Represents a job that has begun execution within a job_system_type.
Definition: job.hpp:16
+
Definition: job.hpp:10
+
+
+ + + + diff --git a/api_2keyboard_8hpp_source.html b/api_2keyboard_8hpp_source.html new file mode 100644 index 0000000000..9bb65d7fa9 --- /dev/null +++ b/api_2keyboard_8hpp_source.html @@ -0,0 +1,154 @@ + + + + + + + +Topaz: src/tz/wsi/api/keyboard.hpp Source File + + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.0.0.2 +
+
C++20 Graphics Engine
+
+
+ + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
keyboard.hpp
+
+
+
1#ifndef TZ_WSI_API_KEYBOARD_HPP
+
2#define TZ_WSI_API_KEYBOARD_HPP
+
3#include <array>
+
4
+
5namespace tz::wsi
+
6{
+
7 constexpr unsigned int max_simultaneous_key_presses = 64u;
+
12 enum class key
+
13 {
+
14 esc,
+
15 f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12, del,
+
16 page_up, page_down, print_screen, scroll_lock, pause, insert,
+
17 one, two, three, four, five, six, seven, eight, nine, zero, minus, equals, backspace, tab, q, w, e, r, t, y, u, i, o, p, left_bracket, right_bracket, enter, caps_lock, a, s, d, f, g, h, j, k, l, semi_colon, apostrophe, hash, left_shift, backslash, z, x, c, v, b, n, m, comma, period, forward_slash, right_shift, left_ctrl, win_key, alt, space, alt_gr, right_ctrl,
+
18 unknown
+
19 };
+
20
+ +
26 {
+
28 std::array<key, max_simultaneous_key_presses> keys_down;
+
30 mutable key last_key = key::unknown;
+
31
+
35 key pop_last_key() const{key k = this->last_key; this->last_key = key::unknown; return k;}
+
36 };
+
37}
+
38
+
39#endif // TZ_WSI_API_KEYBOARD_HPP
+
key
Contains all possible keyboard inputs that Topaz supports.
Definition: keyboard.hpp:13
+
Represents the total state of the keyboard and key-presses for a single window.
Definition: keyboard.hpp:26
+
key last_key
The last key pressed, or tz::wsi::key::unknown if none.
Definition: keyboard.hpp:30
+
std::array< key, max_simultaneous_key_presses > keys_down
List of keys currently pressed. There is an implementation-defined maximum number of keys that can be...
Definition: keyboard.hpp:28
+
key pop_last_key() const
Retrieve the last pressed key, and reset that state to key::unknown.
Definition: keyboard.hpp:35
+
+
+ + + + diff --git a/api_2monitor_8hpp_source.html b/api_2monitor_8hpp_source.html new file mode 100644 index 0000000000..8174cbe37e --- /dev/null +++ b/api_2monitor_8hpp_source.html @@ -0,0 +1,142 @@ + + + + + + + +Topaz: src/tz/wsi/api/monitor.hpp Source File + + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.0.0.2 +
+
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
+ +
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..be60996698 --- /dev/null +++ b/api_2mouse_8hpp_source.html @@ -0,0 +1,167 @@ + + + + + + + +Topaz: src/tz/wsi/api/mouse.hpp Source File + + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.0.0.2 +
+
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
+ +
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..1a24ca32da --- /dev/null +++ b/api_2output_8hpp_source.html @@ -0,0 +1,182 @@ + + + + + + + +Topaz: src/tz/gl/api/output.hpp Source File + + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.0.0.2 +
+
C++20 Graphics Engine
+
+
+ + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
output.hpp
+
+
+
1#ifndef TOPAZ_GL2_API_OUTPUT_HPP
+
2#define TOPAZ_GL2_API_OUTPUT_HPP
+
3#include "tz/core/memory/clone.hpp"
+
4#include "tz/core/data/vector.hpp"
+
5#include <concepts>
+
6#include <limits>
+
7
+
8namespace tz::gl
+
9{
+
10 enum class output_target
+
11 {
+
12 window,
+
13 offscreen_image
+
14 };
+
15
+ +
17 {
+
18 tz::vec2ui offset;
+
19 tz::vec2ui extent;
+
20
+
21 static viewport_region null()
+
22 {
+
23 return {.offset = {0u, 0u}, .extent = {std::numeric_limits<unsigned int>::max(), std::numeric_limits<unsigned int>::max()}};
+
24 }
+
25
+
26 bool operator==(const viewport_region& rhs) const = default;
+
27 };
+
28
+ +
30 {
+
31 tz::vec2ui offset;
+
32 tz::vec2ui extent;
+
33
+
34 static scissor_region null()
+
35 {
+
36 return {.offset = {0u, 0u}, .extent = {std::numeric_limits<unsigned int>::max(), std::numeric_limits<unsigned int>::max()}};
+
37 }
+
38
+
39 bool operator==(const scissor_region& rhs) const = default;
+
40 };
+
41
+
42 class ioutput : public tz::unique_cloneable<ioutput>
+
43 {
+
44 public:
+
45 constexpr virtual output_target get_target() const = 0;
+
46 virtual ~ioutput() = default;
+
47
+
48 viewport_region viewport = viewport_region::null();
+
49 scissor_region scissor = scissor_region::null();
+
50 };
+
51}
+
52
+
53#endif // TOPAZ_GL2_API_OUTPUT_HPP
+
Definition: output.hpp:43
+
Definition: clone.hpp:11
+ +
tz::wsi::window & window()
Retrieve the application window.
Definition: tz.cpp:108
+
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..50b1f30759 --- /dev/null +++ b/api_2renderer_8hpp_source.html @@ -0,0 +1,415 @@ + + + + + + + +Topaz: src/tz/gl/api/renderer.hpp Source File + + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.0.0.2 +
+
C++20 Graphics Engine
+
+
+ + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
renderer.hpp
+
+
+
1#ifndef TOPAZ_GL2_API_RENDERER_HPP
+
2#define TOPAZ_GL2_API_RENDERER_HPP
+
3
+
4#include "tz/core/data/handle.hpp"
+
5#include "tz/gl/api/output.hpp"
+
6#include "tz/gl/api/resource.hpp"
+
7#include "tz/gl/api/component.hpp"
+
8#include "tz/gl/api/shader.hpp"
+
9#include "tz/core/data/basic_list.hpp"
+
10#include "tz/core/data/enum_field.hpp"
+
11#include "tz/core/data/vector.hpp"
+
12#include <concepts>
+
13#include <variant>
+
14#include <optional>
+
15
+
16namespace tz::gl
+
17{
+
18 namespace detail
+
19 {
+
20 struct renderer_tag{};
+
21 }
+
22
+ +
28
+
33 enum class renderer_option
+
34 {
+ + + + + + +
47 // Final debug ui renderer. Do not use.
+
48 _internal_final_dbgui_renderer,
+
49 // Internal renderer. Has no effect aside from hiding it from the dbgui.
+
50 _internal,
+
51 Count
+
52 };
+
53 namespace detail
+
54 {
+
55 constexpr std::array<const char*, static_cast<int>(tz::gl::renderer_option::Count)> renderer_option_strings =
+
56 {
+
57 "No Depth Testing",
+
58 "Alpha Blending",
+
59 "Render Wait",
+
60 "No Clear Output",
+
61 "No Present",
+
62 "Final Debug UI renderer (Internal)",
+
63 "Internal",
+
64 };
+
65 }
+
66
+ +
72 {
+
73 struct Graphics
+
74 {
+ + + +
82 std::size_t tri_count = 0;
+
84 bool wireframe_mode = false;
+
85 bool operator==(const Graphics& rhs) const = default;
+
86 };
+
87 struct Compute
+
88 {
+
90 tz::vec3ui kernel = {1u, 1u, 1u};
+
91 bool operator==(const Compute& rhs) const = default;
+
92 };
+ + +
97
+
98 bool operator==(const render_state& rhs) const = default;
+
99 };
+
100
+ +
106
+ +
112 {
+
113 public:
+ +
115 // Satisfies renderer_info_type.
+
119 unsigned int resource_count() const;
+ +
129 std::vector<const iresource*> get_resources() const;
+
130 std::span<const renderer_handle> get_dependencies() const;
+
131 std::span<const icomponent* const> get_components() const;
+ + + +
152 void set_output(const ioutput& output);
+
156 const ioutput* get_output() const;
+
160 const renderer_options& get_options() const;
+
164 void set_options(renderer_options options);
+
170 void add_dependency(renderer_handle dependency);
+ +
178 const render_state& state() const;
+ +
186 const shader_info& shader() const;
+
191 void debug_name(std::string debug_name);
+
195 std::string debug_get_name() const;
+
196 private:
+
197 std::size_t real_resource_count() const;
+
199 std::vector<std::unique_ptr<iresource>> resources = {};
+
201 std::vector<icomponent*> components = {};
+
203 std::unique_ptr<ioutput> output = nullptr;
+
205 renderer_options options = {};
+
207 render_state renderer_state = {};
+
209 std::vector<renderer_handle> dependencies = {};
+
211 shader_info sinfo;
+
213 tz::vec4 clear_colour = {0.0f, 0.0f, 0.0f, 1.0f};
+
215 tz::vec3ui compute_kernel = {1u, 1u, 1u};
+
216 std::string dbg_name = "";
+
217 };
+
218
+ +
220 {
+ +
225 {
+ +
229 std::size_t size;
+
230 };
+
231
+ +
236 {
+ + +
241 };
+
242
+ +
244 {
+ +
246 std::span<const std::byte> data = {};
+
247 std::size_t offset = 0;
+
248 };
+
249
+ +
251 {
+ +
253 icomponent* component;
+
254 };
+
255
+ +
260 {
+ +
263 };
+
264
+ +
269 {
+
271 std::optional<bool> wireframe_mode = std::nullopt;
+
272 std::optional<tz::vec4> clear_colour = std::nullopt;
+
273 std::optional<std::size_t> tri_count = std::nullopt;
+
274 };
+
275
+
276 struct scissor
+
277 {
+
278 tz::vec2ui offset = tz::vec2ui::zero();
+
279 tz::vec2ui extent;
+
280 };
+
281
+
282 using variant = std::variant<buffer_resize, image_resize, resource_write, resource_reference, compute_config, render_config, scissor>;
+
283 };
+
284
+
291 using renderer_edit_request = std::vector<renderer_edit::variant>;
+
292
+ +
298 {
+
299 public:
+
300 RendererEditBuilder() = default;
+ + + + + + + + +
324 private:
+
325 renderer_edit_request request = {};
+
326 };
+
327
+
332 template<typename T>
+
333 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)
+
334 {
+
335 requires tz::nullable<T>;
+
340 {t.resource_count()} -> std::convertible_to<unsigned int>;
+
346 {t.get_resource(r)} -> std::convertible_to<const iresource*>;
+
352 {t.get_component(r)} -> std::convertible_to<const icomponent*>;
+
358 {t.get_output()} -> std::convertible_to<const ioutput*>;
+
363 {t.get_options()} -> std::convertible_to<renderer_options>;
+
364 {t.get_state()} -> std::convertible_to<render_state>;
+
368 {t.render()} -> std::same_as<void>;
+
375 {t.edit(edit_request)} -> std::same_as<void>;
+
379 {t.dbgui()} -> std::same_as<void>;
+
380 {t.debug_get_name()} -> std::convertible_to<std::string_view>;
+
381 };
+
382
+
383 #if TZ_VULKAN && TZ_OGL
+
384 // Documentation only.
+ +
390 {
+
391 public:
+
395 unsigned int resource_count() const;
+ + +
410
+
415 const ioutput* get_output() const;
+ +
421
+ + +
441 void render();
+
455 void render(std::size_t tri_count);
+
456 };
+
457 #endif
+
458}
+
459
+
460#endif // TOPAZ_GL2_API_RENDERER_HPP
+ +
Helper class which can be used to generate a renderer_edit_request.
Definition: renderer.hpp:298
+
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:50
+
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:82
+
Helper struct which the user can use to specify which inputs, resources they want and where they want...
Definition: renderer.hpp:112
+
const renderer_options & get_options() const
Retrieve the currently specified options which will be used by the renderer.
Definition: renderer.cpp:128
+
unsigned int resource_count() const
Retrieve the number of resources.
Definition: renderer.cpp:63
+
void add_dependency(renderer_handle dependency)
Set the pending renderer to be dependent on the specified renderer.
Definition: renderer.cpp:144
+
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:93
+
void debug_name(std::string debug_name)
Set the debug name of the spawned renderer.
Definition: renderer.cpp:169
+
const ioutput * get_output() const
Retrieve the current render output (read-only).
Definition: renderer.cpp:123
+
std::string debug_get_name() const
Retrieve the debug name which will be used for the spawned renderer.
Definition: renderer.cpp:174
+
std::vector< const iresource * > get_resources() const
Retrieve a span containing all of the specified resources.
Definition: renderer.cpp:73
+
void set_output(const ioutput &output)
Renderers always render into something.
Definition: renderer.cpp:118
+
resource_handle ref_resource(icomponent *component)
Deprecated.
Definition: renderer.cpp:106
+
void set_options(renderer_options options)
Set the currently specified options which will be used by the renderer.
Definition: renderer.cpp:133
+
const iresource * get_resource(resource_handle handle)
Retrieve the resource corresponding to the given handle.
Definition: renderer.cpp:68
+
render_state & state()
Read/write information about the state of the renderer when it is created.
Definition: renderer.cpp:149
+
shader_info & shader()
Read/write information about the shader that will be built for the renderer.
Definition: renderer.cpp:159
+
Implements tz::gl::renderer_type.
Definition: renderer.hpp:390
+
const iresource * get_resource(tz::gl::resource_handle rh) const
Retrieves a pointer to the resource via its associated handle.
+
void render()
Submit the renderer's work to the GPU.
+
void render(std::size_t tri_count)
Submit the renderer's work to the GPU.
+
tz::gl::renderer_options get_options() const
Retrieve the set of enabled tz::gl::renderer_option flags used by this renderer.
+
const tz::gl::render_state & get_state() const
Retrieve the current render state.
+
unsigned int resource_count() const
Retrieves the number of resources used by the renderer.
+
const ioutput * get_output() const
Retrieve the output that this renderer draws to.
+
ioutput * get_output()
Retrieve the output that this renderer draws to.
+
iresource * get_resource(tz::gl::resource_handle rh)
Retrieves a pointer to the resource via its associated handle.
+
Definition: resource.hpp:13
+
Definition: shader.hpp:26
+ + +
static constexpr vector< T, S > zero()
Create a vector filled entirely with zeros.
Definition: vector.hpp:23
+
Named requirement for a renderer.
Definition: renderer.hpp:333
+
Definition: types.hpp:59
+
renderer_option
Specifies options to enable extra functionality within Renderers.
Definition: renderer.hpp:34
+
std::vector< renderer_edit::variant > renderer_edit_request
Represents an edit to an existing renderer.
Definition: renderer.hpp:291
+ + + + + + +
Definition: renderer.hpp:20
+
Definition: renderer.hpp:88
+
tz::vec3ui kernel
Represents the compute kernel, which contains the number of workgroups to be launched in the X,...
Definition: renderer.hpp:90
+
Definition: renderer.hpp:74
+
std::size_t tri_count
number of triangles to be rendered in the next draw call.
Definition: renderer.hpp:82
+
resource_handle draw_buffer
If a draw-indirect buffer is used, this refers to the buffer resource. It must have resource_flag::dr...
Definition: renderer.hpp:78
+
bool wireframe_mode
whether wireframe mode is enabled or not.
Definition: renderer.hpp:84
+
resource_handle index_buffer
If an index buffer is used, this refers to the buffer resource. It must have resource_flag::index_buf...
Definition: renderer.hpp:76
+
tz::vec4 clear_colour
Normalised RGBA floating point colour.
Definition: renderer.hpp:80
+
Stores renderer-specific state, which drives the behaviour of the rendering.
Definition: renderer.hpp:72
+
Compute compute
Compute state.
Definition: renderer.hpp:96
+
Graphics graphics
Graphics state.
Definition: renderer.hpp:94
+
Represents a resize operation for an existing buffer component.
Definition: renderer.hpp:225
+
std::size_t size
New size of the buffer, in bytes.
Definition: renderer.hpp:229
+
resource_handle buffer_handle
Handle corresponding to the buffer to edit.
Definition: renderer.hpp:227
+
Represents an edit, setting a new value for the compute kernel for a renderer.
Definition: renderer.hpp:260
+
tz::vec3ui kernel
New compute kernel workgroup dimensions.
Definition: renderer.hpp:262
+
Represents a resize operation for an existing image component.
Definition: renderer.hpp:236
+
tz::vec2ui dimensions
New dimensions of the image, in pixels.
Definition: renderer.hpp:240
+
resource_handle image_handle
Handle corresponding to the image to edit.
Definition: renderer.hpp:238
+
Represents an edit to the fixed-function renderer state.
Definition: renderer.hpp:269
+
std::optional< bool > wireframe_mode
Whether triangles should only have their outlines drawn, instead of filled.
Definition: renderer.hpp:271
+
Definition: renderer.hpp:251
+
Definition: renderer.hpp:244
+
Definition: renderer.hpp:277
+
Definition: renderer.hpp:220
+
+
+ + + + diff --git a/api_2resource_8hpp_source.html b/api_2resource_8hpp_source.html new file mode 100644 index 0000000000..e2d9e0533d --- /dev/null +++ b/api_2resource_8hpp_source.html @@ -0,0 +1,229 @@ + + + + + + + +Topaz: src/tz/gl/api/resource.hpp Source File + + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.0.0.2 +
+
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
+
28 enum class resource_flag
+
29 {
+ + + + + + + + + + +
50
+
51 Count
+
52 };
+
53
+
54 using resource_flags = tz::enum_field<resource_flag>;
+
55
+
60 enum class resource_access
+
61 {
+ + + +
68 Count
+
69 };
+
70
+
81 class iresource : public tz::unique_cloneable<iresource>
+
82 {
+
83 public:
+
84 iresource() = default;
+
85 virtual ~iresource() = default;
+
89 virtual resource_type get_type() const = 0;
+
94 virtual resource_access get_access() const = 0;
+
98 virtual std::span<const std::byte> data() const = 0;
+
103 virtual std::span<std::byte> data() = 0;
+
104
+
109 template<typename T> std::span<const T> data_as() const
+
110 {
+
111 const std::byte* byte_data = this->data().data();
+
112 return {reinterpret_cast<const T*>(byte_data), this->data().size_bytes() / sizeof(T)};
+
113 }
+
114
+
119 template<typename T> std::span<T> data_as()
+
120 {
+
121 std::byte* byte_data = this->data().data();
+
122 return {reinterpret_cast<T*>(byte_data), this->data().size_bytes() / sizeof(T)};
+
123 }
+
124
+
125 virtual void set_mapped_data(std::span<std::byte> resource_data) = 0;
+
126
+
130 virtual const resource_flags& get_flags() const = 0;
+
131
+
135 virtual void dbgui() = 0;
+
136 };
+
137
+ +
140}
+
141
+
142#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:82
+
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:109
+
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:119
+ +
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..1c777219d6 --- /dev/null +++ b/api_2shader_8hpp_source.html @@ -0,0 +1,167 @@ + + + + + + + +Topaz: src/tz/gl/api/shader.hpp Source File + + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.0.0.2 +
+
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..3328b9b017 --- /dev/null +++ b/api_2window_8hpp_source.html @@ -0,0 +1,197 @@ + + + + + + + +Topaz: src/tz/wsi/api/window.hpp Source File + + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.0.0.2 +
+
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.is_close_requested()} -> std::same_as<bool>;
+
75 {t.get_dimensions()} -> std::same_as<tz::vec2ui>;
+
76 {t.set_dimensions(dims)} -> std::same_as<void>;
+
77 {t.get_title()} -> std::convertible_to<std::string>;
+
78 {t.set_title(str)} -> std::same_as<void>;
+
79 {t.get_flags()} -> std::convertible_to<window_flag::flag_bit>;
+
80 {t.update()} -> std::same_as<void>;
+
81 {t.make_opengl_context_current()} -> std::same_as<bool>;
+
82 #if TZ_VULKAN
+
83 {t.make_vulkan_surface(vkinst)} -> std::convertible_to<VkSurfaceKHR>;
+
84 #endif // TZ_VULKAN
+
85 {t.get_keyboard_state()} -> std::convertible_to<keyboard_state>;
+
86 {t.get_mouse_state()} -> std::convertible_to<mouse_state>;
+
87 {t.get_user_data()} -> std::convertible_to<void*>;
+
88 {t.set_user_data(addr)} -> std::same_as<void>;
+
89 };
+
90}
+
91
+
92#endif // TZ_WSI_API_WINDOW_HPP
+ +
Represents an API for a window.
Definition: window.hpp:66
+
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..6e6c76dd4c --- /dev/null +++ b/basic__list_8hpp_source.html @@ -0,0 +1,311 @@ + + + + + + + +Topaz: src/tz/core/data/basic_list.hpp Source File + + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.0.0.2 +
+
C++20 Graphics Engine
+
+
+ + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
basic_list.hpp
+
+
+
1#ifndef TOPAZ_GL_VK_COMMON_BASIC_LIST_HPP
+
2#define TOPAZ_GL_VK_COMMON_BASIC_LIST_HPP
+
3#include "tz/core/debug.hpp"
+
4#include <initializer_list>
+
5#include <vector>
+
6#include <algorithm>
+
7#include <span>
+
8
+
9namespace tz
+
10{
+
19 template<typename T, typename Allocator = std::allocator<T>>
+ +
21 {
+
22 private:
+
23 using UnderlyingList = std::vector<T, Allocator>;
+
24 UnderlyingList elements;
+
25 public:
+
26 using Iterator = typename UnderlyingList::iterator;
+
27 using ConstIterator = typename UnderlyingList::const_iterator;
+
28
+
32 basic_list(std::initializer_list<T> elements):
+
33 elements(elements){}
+
37 basic_list() = default;
+
38
+
43 operator std::span<const T>() const
+
44 {
+
45 return static_cast<std::span<const T>>(this->elements);
+
46 }
+
47
+
52 T& front()
+
53 {
+
54 return this->elements.front();
+
55 }
+
56
+
61 const T& front() const
+
62 {
+
63 return this->elements.front();
+
64 }
+
65
+
66
+
71 T& back()
+
72 {
+
73 return this->elements.back();
+
74 }
+
75
+
80 const T& back() const
+
81 {
+
82 return this->elements.back();
+
83 }
+
84
+
88 void add(const T& element)
+
89 {
+
90 this->elements.push_back(element);
+
91 }
+
92
+
96 void add(T&& element)
+
97 {
+
98 this->elements.push_back(std::forward<T>(element));
+
99 }
+
100
+
106 template<typename... Args>
+
107 T& emplace(Args&&... args)
+
108 {
+
109 return this->elements.emplace_back(std::forward<Args>(args)...);
+
110 }
+
111
+
116 void append(const basic_list<T>& other)
+
117 {
+
118 this->elements.insert(this->elements.end(), other.elements.begin(), other.elements.end());
+
119 }
+
120
+
125 template<typename InputIt>
+
126 Iterator append_range(InputIt first, InputIt last)
+
127 {
+
128 return this->elements.insert(this->elements.end(), first, last);
+
129 }
+
130
+
135 bool contains(T element) const
+
136 {
+
137 return std::find(this->elements.begin(), this->elements.end(), element) != this->elements.end();
+
138 }
+
139
+
143 Iterator begin()
+
144 {
+
145 return this->elements.begin();
+
146 }
+
147
+
151 Iterator end()
+
152 {
+
153 return this->elements.end();
+
154 }
+
155
+
159 ConstIterator begin() const
+
160 {
+
161 return this->elements.begin();
+
162 }
+
163
+
167 ConstIterator end() const
+
168 {
+
169 return this->elements.end();
+
170 }
+
171
+
175 auto length() const
+
176 {
+
177 return this->elements.size();
+
178 }
+
179
+
184 bool empty() const
+
185 {
+
186 return this->elements.empty();
+
187 }
+
188
+
192 const T* data() const
+
193 {
+
194 return this->elements.data();
+
195 }
+
196
+
200 T* data()
+
201 {
+
202 return this->elements.data();
+
203 }
+
204
+
211 const T& operator[](std::size_t index) const
+
212 {
+
213 tz::assert(this->length() > index, "tz::basic_list<T>::operator[%zu]: Out of range (length = %zu)", index, this->length());
+
214 return this->elements[index];
+
215 }
+
216
+
223 T& operator[](std::size_t index)
+
224 {
+
225 tz::assert(this->length() > index, "tz::basic_list<T>::operator[%zu]: Out of range (length = %zu)", index, this->length());
+
226 return this->elements[index];
+
227 }
+
228
+
229 auto operator<=>(const tz::basic_list<T, Allocator>& rhs) const = default;
+
230
+
236 Iterator erase(Iterator position)
+
237 {
+
238 return this->elements.erase(position);
+
239 }
+
240
+
247 Iterator erase(Iterator first, Iterator last)
+
248 {
+
249 return this->elements.erase(first, last);
+
250 }
+
251
+
255 void clear()
+
256 {
+
257 this->elements.clear();
+
258 }
+
259
+
263 void resize(std::size_t num_elements)
+
264 {
+
265 this->elements.resize(num_elements);
+
266 }
+
267 };
+
268
+
272}
+
273
+
274#endif // TOPAZ_GL_VK_COMMON_BASIC_LIST_HPP
+
Custom list, feature subset of std::vector.
Definition: basic_list.hpp:21
+
void resize(std::size_t num_elements)
Resize the list, matches the behaviour of std::vector<T>::erase(num_elements).
Definition: basic_list.hpp:263
+
const T & operator[](std::size_t index) const
Retrieve the element at a given index.
Definition: basic_list.hpp:211
+
bool contains(T element) const
Query as to whether the list contains a given element.
Definition: basic_list.hpp:135
+
void append(const basic_list< T > &other)
Copy the elements of another list to the end of this list.
Definition: basic_list.hpp:116
+
Iterator end()
Retrieve an iterator to the end of the list.
Definition: basic_list.hpp:151
+
const T * data() const
Retrieve a pointer to the first element of the list.
Definition: basic_list.hpp:192
+
void add(T &&element)
Add the provided value to the back of the list.
Definition: basic_list.hpp:96
+
void add(const T &element)
Add a copy of the provided value to the back of the list.
Definition: basic_list.hpp:88
+
void clear()
Erase the entire list, making it empty again and destroying everything inside.
Definition: basic_list.hpp:255
+
ConstIterator end() const
Retrieve an iterator to the end of the list.
Definition: basic_list.hpp:167
+
Iterator erase(Iterator first, Iterator last)
Erase the range of elements bounded within the provided iterator range.
Definition: basic_list.hpp:247
+
const T & back() const
Retrieve the last element of the list.
Definition: basic_list.hpp:80
+
bool empty() const
Query as to whether the list is empty or not.
Definition: basic_list.hpp:184
+
basic_list(std::initializer_list< T > elements)
Construct a basic_list using existing elements via copy.
Definition: basic_list.hpp:32
+
const T & front() const
Retrieve the first elements of the list.
Definition: basic_list.hpp:61
+
basic_list()=default
Construct an empty basic_list.
+
ConstIterator begin() const
Retrieve an iterator to the beginning of the list.
Definition: basic_list.hpp:159
+
T & front()
Retrieve the first elements of the list.
Definition: basic_list.hpp:52
+
Iterator begin()
Retrieve an iterator to the beginning of the list.
Definition: basic_list.hpp:143
+
auto length() const
Retrive the number of elements in the list.
Definition: basic_list.hpp:175
+
T & back()
Retrieve the last element of the list.
Definition: basic_list.hpp:71
+
T & operator[](std::size_t index)
Retrieve the element at a given index.
Definition: basic_list.hpp:223
+
Iterator append_range(InputIt first, InputIt last)
Copy the range of elements to the end of this list.
Definition: basic_list.hpp:126
+
T & emplace(Args &&... args)
Create a new value in-place at the end of the list.
Definition: basic_list.hpp:107
+
Iterator erase(Iterator position)
Erase the element at the given position.
Definition: basic_list.hpp:236
+
T * data()
Retrieve a pointer to the first element of the list.
Definition: basic_list.hpp:200
+
void assert(bool condition, detail::format_string fmt="<No message>", Args &&... args)
Assert on a condition.
Definition: debug.inl:33
+
+
+ + + + diff --git a/bc_s.png b/bc_s.png new file mode 100644 index 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/bdwn.png b/bdwn.png new file mode 100644 index 0000000000000000000000000000000000000000..940a0b950443a0bb1b216ac03c45b8a16c955452 GIT binary patch literal 147 zcmeAS@N?(olHy`uVBq!ia0vp^>_E)H!3HEvS)PKZC{Gv1kP61Pb5HX&C2wk~_T + + + + + #da532c + + + diff --git a/callback_8hpp_source.html b/callback_8hpp_source.html new file mode 100644 index 0000000000..8bad01c8e8 --- /dev/null +++ b/callback_8hpp_source.html @@ -0,0 +1,182 @@ + + + + + + + +Topaz: src/tz/core/callback.hpp Source File + + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.0.0.2 +
+
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:16
+
Just like a tz::function, except will never return anything.
Definition: types.hpp:47
+
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..5729fe5e57 --- /dev/null +++ b/classtz_1_1_interface_iterator.html @@ -0,0 +1,123 @@ + + + + + + + +Topaz: tz::InterfaceIterator< T > Class Template Reference + + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.0.0.2 +
+
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..e4a6b665e7 --- /dev/null +++ b/classtz_1_1_polymorphic_list.html @@ -0,0 +1,279 @@ + + + + + + + +Topaz: tz::PolymorphicList< T, Allocator > Class Template Reference + + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.0.0.2 +
+
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
+
+ +

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..ae96781d95 --- /dev/null +++ b/classtz_1_1allocator__adapter.html @@ -0,0 +1,139 @@ + + + + + + + +Topaz: tz::allocator_adapter< T, A > Class Template Reference + + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.0.0.2 +
+
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..fce2d9b50968a7c42d99ea6b9922f51b9b793688 GIT binary patch literal 596 zcmeAS@N?(olHy`uVBq!ia0vp^>w!3cgBeIhbX@HQQqloFA+G=b{|7Q(y!l$%e`vXd zfo6fk^fNCG95?_J51w>+1yGK&B*-tA0mugfbEer>7#JAud%8G=R4~4sdwbn#10I*- zK}%=;|NqF@oUv%BZS+U6i8>pryyxh#3CAU-Z4)q<6w~%W)zkjabd|p|Uf*74YR#J- zKU>%4YWZ!s`zhLXx6M!HuK!)=G^x1YgYKi+efj(Dofn>>vi#wz>TT?v=Ms123%-9` z+yD3BuBUQuy(jH!(f9l%xKHJ!`;SRWxkB+VTDDGO>NGf9rl$ z?fZFQ$GaEpm(0J$aQ!{Dec%5+ZKDseU!84D)=8ILC^bF)bKc#`>G`q$YX6tL&ilPR z*T?gE;IFdZ-*3oo(tY?`?(KX2o4WVEI0u~xzd3tB{6$ll+=lv3HNXGq+vUHSTvP48 z;{W%*HXjpzdR@}3f28d>nIqowlX8vf$^Ns~&*aGdW88Y~M*2VJnb&~v&*16m=d#Wz Gp$Py;5h-l| literal 0 HcmV?d00001 diff --git a/classtz_1_1basic__list.html b/classtz_1_1basic__list.html new file mode 100644 index 0000000000..1df12d81ae --- /dev/null +++ b/classtz_1_1basic__list.html @@ -0,0 +1,760 @@ + + + + + + + +Topaz: tz::basic_list< T, Allocator > Class Template Reference + + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.0.0.2 +
+
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 (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..874fd891c3 --- /dev/null +++ b/classtz_1_1callback.html @@ -0,0 +1,263 @@ + + + + + + + +Topaz: tz::callback< Args > Class Template Reference + + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.0.0.2 +
+
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_1delay.html b/classtz_1_1delay.html new file mode 100644 index 0000000000..2156ae986f --- /dev/null +++ b/classtz_1_1delay.html @@ -0,0 +1,217 @@ + + + + + + + +Topaz: tz::delay Class Reference + + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.0.0.2 +
+
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..e97af7e2f6 --- /dev/null +++ b/classtz_1_1duration.html @@ -0,0 +1,375 @@ + + + + + + + +Topaz: tz::duration Class Reference + + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.0.0.2 +
+
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..e2dee9c43e --- /dev/null +++ b/classtz_1_1enum__field.html @@ -0,0 +1,447 @@ + + + + + + + +Topaz: tz::enum_field< E > Class Template Reference + + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.0.0.2 +
+
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
+
+ +

Retrieve the last value within the field.

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

◆ contains() [1/2]

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

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

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

◆ contains() [2/2]

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

Query as to whether the field contains the given value.

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

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

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

◆ count()

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

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

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

Retrieve the first value within the field.

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

◆ operator==()

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

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

+

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

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

◆ operator|()

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

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

+

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

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

◆ operator|=() [1/2]

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

Add a field to another field.

+

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

+ +
+
+ +

◆ operator|=() [2/2]

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

Add the element to the field.

+

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

Parameters
+ + +
typeElement to add to the field.
+
+
+
Returns
This.
+ +
+
+
+
+ + + + diff --git a/classtz_1_1fallback__allocator.html b/classtz_1_1fallback__allocator.html new file mode 100644 index 0000000000..aeadb9df57 --- /dev/null +++ b/classtz_1_1fallback__allocator.html @@ -0,0 +1,145 @@ + + + + + + + +Topaz: tz::fallback_allocator< P, S > Class Template Reference + + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.0.0.2 +
+
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..5a86d8ff9ee271ba78d0c93b33f9018ed066d1a3 GIT binary patch literal 806 zcmeAS@N?(olHy`uVBq!ia0y~yV9Wxt12~w0B>RN(>wuJWfKQ0)|NsAi%olIImi8Z7 zZegHVATj;SivtG^0L6nRU0wl{<17jC3uXZF!N8np_7w&Orj4F1jv*C{Z|7d@n{6QA zdfsE=yTAYS^EPcr;K{tj6`ftKG@s$vC%+za`7wSU5r`sI^fsZG7V^S(A`s?4##+Q^+M zcikt4*zezN7`E#BruTXBxgqbZ`>w6#x8}RBx|?^lP21a$`Ek9IN~Bl*GN1atYfdBMs(E5X-l>($?|;Vv})QCJ?xA_!KE%o z97I+rE3q*x;N)*mlw9{Ig!e-8@#K)}hePMBVyybGraS<`6l$0$VJxSS}^Yf zhBMB~q!buuwELJkFd6XA%xbW+ku%U@@Z1*Mz>;8Obd`bgfKAFOMxlnv6Cunh44)^g zWbBRrPZk_vP zw=VQ{*-?{~_k{L%X{+&lzWs1UUHkXK${XMQ{^Q@zTX@s1>vLp?`2H2|c)Sis9(>JLH#=4fg)hLy@zH{@d?x(KKR`$B{e;-Xe`b&m^=T!Aoc`K*8 zh4*#W=f^I;^)2y=|IL_{>w>?j@7?vvvi{!c?B;F!j~7&Jiu>!6ag`xX*t=l5d4l2h z(iQTpML%~fu+g!u@xP&Wyln6MIkUg3tjhhZ{$b^u|50DH>#lQddAt9~W3!oAx8FIf q+V&P0f9MRJwN^?=3JkM8a;Ls`>3g&C%>-bIX7F_Nb6Mw<&;$TIAcWxn literal 0 HcmV?d00001 diff --git a/classtz_1_1gl_1_1_asset_storage_common.html b/classtz_1_1gl_1_1_asset_storage_common.html new file mode 100644 index 0000000000..a2d49023eb --- /dev/null +++ b/classtz_1_1gl_1_1_asset_storage_common.html @@ -0,0 +1,123 @@ + + + + + + + +Topaz: tz::gl::AssetStorageCommon< Asset > Class Template Reference + + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.0.0.2 +
+
C++20 Graphics Engine
+
+
+ + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
tz::gl::AssetStorageCommon< Asset > Class Template Reference
+
+
+
+
+ + + + 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..9089d49376 --- /dev/null +++ b/classtz_1_1gl_1_1_output_manager.html @@ -0,0 +1,144 @@ + + + + + + + +Topaz: tz::gl::OutputManager Class Reference + + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.0.0.2 +
+
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..9298a84609 --- /dev/null +++ b/classtz_1_1gl_1_1_renderer_edit_builder.html @@ -0,0 +1,237 @@ + + + + + + + +Topaz: tz::gl::RendererEditBuilder Class Reference + + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.0.0.2 +
+
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..f0ea1be5d4 --- /dev/null +++ b/classtz_1_1gl_1_1_resource_storage.html @@ -0,0 +1,314 @@ + + + + + + + +Topaz: tz::gl::ResourceStorage Class Reference + + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.0.0.2 +
+
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::gl::AssetStorageCommon< iresource > + +
+ + + + + + + + + + + + + + + + + + + + +

+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..2e2667d8b739a9cde08b940bc54dd53983ef9625 GIT binary patch literal 871 zcmV-t1DO1YP)vTJr#LVva2S`&=)l0h|Ns9}lGCUF000SeQchC<|NsC0|NsC0Hv*f~0008= zNkl{t$Y#Y1gOCYU=vUzTK}DF&kRHZq#?&CZcP)+3q#!T$~>{H$=LSz1fac z9A9~C(A$Vv;LQ!er$_3G8dsY&+tY^+_OG#<-?lUO9@+#UrmF?FSN~$cL*5TZ&}7-Q zNHKVezVm+LmU$tuM$j&qBXmoCbFE_@&+Xd{)|9j6UxaoE+Wk;dI(Q&Lhmu)4UxkhV zwzIyF6_P>zVRuFPAdzCEcgP+(xO5j4vh13UD>Ru+i!c3=q1Y3(tc9L+@Tx~(tA|Bw_V)OY4s+_pj$ts@BA*4bnOUw z;AN70O}9RbBrobP(&NM+$rp6%!$|U)&eEGC|CgH3B$+`Inj|ym0lh5Cl1u>bCVc=v zHf4nV_(({d5&FTLk2)pvtlj{SLlYVRGH5~rKn6`{0LY*T4FDN5p#dO+CNuzK(1Zqn z44TjYkUdqr zvTgf!gZ-~9h(l*arYA|S=rXhkbjZtgrrmfXG_mb&92o5!_)ciEdI#OJd&LMIh|uP! zxU8toT@$`ezE&fD3EG#WK`#49`&C6!P~1b3zOReWcCk5cJLtig4h7BeoI$_)Ot + + + + + + +Topaz: tz::gl::ShaderManager Class Reference + + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.0.0.2 +
+
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..2d39de7ba0 --- /dev/null +++ b/classtz_1_1gl_1_1buffer__component__ogl.html @@ -0,0 +1,132 @@ + + + + + + + +Topaz: tz::gl::buffer_component_ogl Class Reference + + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.0.0.2 +
+
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..78a2890388cca9584064831ccfa2d8a66f23506e GIT binary patch literal 670 zcmeAS@N?(olHy`uVBq!ia0vp^D}gwGgBeJMPFs2gNJ$6ygt-3y{~ySF@#br3|Doj; z2ATyD)6cv(aNqz?Jb2RO6+k)8k|4ie1|S~{%$a6iVPIg=^mK6ysbG9N_wBmX3IeX* zb0(+l|1TWBHohU@s_{$9Cw_;xSW_aHlK&@3v@PT|n2^HWqUrfdXqn2()1kr2Cz+%3 zYiFqF7vyf5tm$cY?CO;>YTsrA@4j(4wPM}2hnaELYBQE5dTu(n*VeR1-%U()?LD!Z z$;)*o**u??xoPR{uuoh+J-)I=iF(c}K5o+aBlz-9wXX?L{Z5m7^JXk#{O&!CH$Aj+ z?*7tW+3(hKuQ@rlEH!iQ)J4{nW}Z4gGuZzJUf*`;`Q+bsw(QuZa`VA<-}QCt{x@iP z)=f81^^89>MWt5Kw>?p!ihnVxT7cOqumEh|zNmL{~bYEHSzl~YCVY9@z;|yZ;&IDhs z{1xugf3l$5Upu?j%y+W>e&w4>|JMAvsipq?&*zun?_bXP{rZaO`)fhVk|*u?Y5gp- zcE + + + + + + +Topaz: tz::gl::buffer_component_vulkan Class Reference + + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.0.0.2 +
+
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..1039715a7f6f632560ea2a0f1715dbef52513993 GIT binary patch literal 711 zcmeAS@N?(olHy`uVBq!ia0vp^dx1EBgBeIxUv7y5QqloFA+G=b{|7Q(y!l$%e`vXd zfo6fk^fNCG95?_J51w>+1yGK&B*-tA0mugfbEer>7#Ns>JY5_^Dj46+eY>t%LBOTm zF!R~p`9H38eNxZ&yEgx#q52i^1eaXTD~=P5%Dr#;)guuAkRU^Y@;lZ@K$hqmSx@(3A4~ zn;&gmZaT^4l;`i9my@%;MW*_HUR=cw6tMiQb87jw(|R&j_t|oL$~~A;E2olsYtinC zD=!mw7GE12rAw)K}9RIL9j`ukD) znfhDLOI+L4J*Dr=Q_0<|(-*#NzkTAD^X>aj*{{jpzIR@RVZ))f zj0f1ZvolEFkz>dysAkx3kdVL&K_`yGO$wgPkG@SxX};|}iFbDGZ{=;*R$1S9Z9J(& zbnnY&0h6vgnDaMg_n-N-3HA2Y>6fyL_im{FqI+ce;|)tSrFWPd{r*^`uqNx?)lCl! zgR0g{P5Myxwt0%zgrJkpCNyao{WSWde5I~t{k5&<7ahI+{o7g2Tf$l%tWW>1zrNP8 z?*EIM&*dTy9NIU@B0=8#cI5BWALsT(y*|6I;xE(h+CzJHf9s9l{k`hmrt`+T@5H+b z?YU>!+mrpwH~;yP+L&kegnxfMbMsTQV`Zd&XHwJKGbh(KJ+ipjtG{{gsbin`pYatg zPu>6UXl(V<&VO^I_on~ hcIT}#M`Fl7hJSzOB)SX!eFjW&44$rjF6*2UngHFCZWsUn 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..6aa4f10948 --- /dev/null +++ b/classtz_1_1gl_1_1buffer__resource.html @@ -0,0 +1,357 @@ + + + + + + + +Topaz: tz::gl::buffer_resource Class Reference + + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.0.0.2 +
+
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< iresource > + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+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_flagsget_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
+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_flagsget_flags () const =0
 Retrieve a field containing all flags applied to this resource.
 
+virtual void dbgui ()=0
 Display debug information about the resource.
 
+ + + + + + + + + + + + +

+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..9ed6f89e2cf032a4aad795edf734ee26d2878a19 GIT binary patch literal 1313 zcmeAS@N?(olHy`uVBq!ia0vp^XMp$s2Q!eYx2xF=q@)9ULR|m<{|{uoc=NTi|Il&^ z1I+@7>1SRXIB)O!A>+kaeI;(h6myJq*)Y)$5r++}5l;)~Ah6hATP3cI4RryQrG=cf}&lT}{I@mtTA zF)4lDU-gP{(w7O(Q&e91pF81ksWNTmluHLbt$28R>cYZxvGwQAZhv^xuG{hP`i<36 zp{9B1>-(kUEc`RC-Tm@@?-Vto?SK7K=R|MQHTwLk_ea^ay-S}RKiln-zdCMJWyIb6 zHv2EEO8sUQv9>0Bne4ruTal}7xyd$uJsWoTb&Rgsd3)`dN+tCtrbt%Cr%9RCiF)6a zdgT%;TrlfX#ImY?i#{*vS+dop>&)Jzvsg0Cc1u4{Gm@SfwX8Dqw#>Y~2lvy{?EUKJ z&MaGLH0`!YO-0(X+c|R9@Ak~FS#481J9PUs-Ieopo;{^mntJ>H2eZjb_WyWN-=Z@2 zY0sIr67TjYdH!PjpP!;~(ik2rp=!_PSTjE0j$x=;s6O-bQsvq6Qr7AHy-}hnyj`-v z--+#jvLf??i4zzhAu^1k=XO`C~Jg!kB*v;Iw1tnK!Z>`09dJ$&oNsWq2tPl#CG zm_AczX)l(X;bHRk*8s=u4f zW;6S1zwfNd%7^atM(?Lv&exjsMeBXvnU^6GmxTXxnB{pXp97dbJV4G|XJq;O4kttW z1EveywkKosWN&^^DK33^e3|yl9cLM8aK}8BKzJabx%3LRit%PU4oPF<{+6DZGu`=4 zyy1_Dn*FY1E&q&}wcY+FdA6=U{-<*0Yg4-oeDbfRo>`lpB4y(%J)7%d^p#`ZUKY>2 z^-aD)wOx7gnQN2IT-)?VYhPH`aUW&fn^CJQZ>t$^-fyWDyzlG->us+eeR$tgk!oz3?|fZl81CNt5VVlXu&2x_&Os z43l4wcJ4VS#GbXE*?u!-+V7Qjjuy?{+MZuM+c$Xjzw>v}($aY2|En7s?>_(9sQtfK ze*4c8-DbwtM> + + + + + + +Topaz: tz::gl::device Class Reference + + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.0.0.2 +
+
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_inforinfo)
+
+ +

Create a new tz::gl::renderer.

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

◆ destroy_renderer()

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

Destroy an existing renderer.

+

The renderer will no longer exist.

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

◆ get_renderer() [1/2]

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

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

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

◆ get_renderer() [2/2]

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

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

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

◆ get_window_format()

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

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

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

◆ renderer_count()

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

Retrieve the number of existing renderers.

+
Note
This includes internal renderers. Because of this, this may return a value greater than the number of renderers you have created, however it will never be lower.
+
Returns
Number of existing renderers.
+ +
+
+
+
+ + + + diff --git a/classtz_1_1gl_1_1device__command__pool.html b/classtz_1_1gl_1_1device__command__pool.html new file mode 100644 index 0000000000..e1aa856a32 --- /dev/null +++ b/classtz_1_1gl_1_1device__command__pool.html @@ -0,0 +1,187 @@ + + + + + + + +Topaz: tz::gl::device_command_pool Class Reference + + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.0.0.2 +
+
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..df2f60aece6af633db2aef3b979e273715d05cc4 GIT binary patch literal 2071 zcmb`Ic{JPU8pnUB7AeKGG+bMq37Kf^JJAlKqmeWmb=zr4QA))YB|$~$G;NQmWhP8) zu?!8WW9jHb>>8~Msjar6mW;IsK`SvqZp=NMJM+gqGk@IokLP{f=l$n>zUTXS-V_gv z>#?K%JPH87G2}THPsv^j03cIYDM@ysT22xHO%Jr!S+Q6wNtaeX5HeWhwx)2rdiJZO z_V#v3{Q_mMLUIR=@x)vJBfQJU2JTofsJlmOxFpsP+-goWjvjv;#0;4T)C@hY{=>F)2N;L)%Zs|<$na&ec%!Q- zX8Siko9JY9IIfLWRAIo~Hs!!p*58LdRfMY5gHSb z4RVXLEthi?IU8hN${0DazAH6YrB&2>9Z`UPt4x_g$)YGQy;I0SaxFAonMIjH{zYNM zz1OafY~GF_np}ImlTPKkeg7lepjXv z73%&Mg{w*b+kNVr{zdg{fdD<|nJ0x-EZtRae^);m;^E0Xu51(=PaZjU`!tdu9{9*Up^`ZNO(f%FQ`1B<8=0v*tFf z`*aS1*+zQE*1v1Oj}~p-pQCM|Kb3m*xvW&2G7BgS`yJ|?z*VejKSTe$1nP9=@!b}@ z+dHSN$@Rp{hr$2l8p|&ojVToC=w|fsX02))#^4i$qCe@50-Uj!BjKELvWCT=HO>%uVsGZfTs3Lj3Tz^`O~smB zM&%ZtT466*g>@>DO@{fmP+{doF5#2UYetHul{pmepDd+{-YNsyx|2;nSjPFKQg6_-T9od|jtPgzA4czG^h^rEi12n_*eY z+9RI#?O0TnryJXM=cMrVU;wxJ5ehy}J7C_Jo)!8-ber1RR1}=Pdxm7>;|3S&=t*KB z84ssRRK>vQ|6f&U(c3fB=w5|CIF%*~OV*ai8i^?-qu=e3Wc-t(709}MQ`N$& z!VSXukebdO@#Uo?B*!_?Z*W+_COp6S<^CPMxs6je7;T|Yz)vtd4e=ho8z+k_y;a>8vIE?=}lAKU#&=K?$!(7pw(kcSiqjIj) z?fq(>fn#c5`We1Q50EcG4h2P~bl!?Vg*~Xe900Fan0#Y+sFt*!y~as^%s@y6q + + + + + + +Topaz: tz::gl::device_common< R > Class Template Reference + + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.0.0.2 +
+
C++20 Graphics Engine
+
+
+ + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
tz::gl::device_common< R > Class Template Reference
+
+
+
+
+ + + + 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..e36133d494 --- /dev/null +++ b/classtz_1_1gl_1_1device__descriptor__pool.html @@ -0,0 +1,144 @@ + + + + + + + +Topaz: tz::gl::device_descriptor_pool Class Reference + + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.0.0.2 +
+
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..1a5059e6266a1941b95a7976717deac935e81a8d GIT binary patch literal 2076 zcmcJQc~sNc6~}*(vJ;@mv<49@Ga;19CI}=Dv@j@yK)_^dMV7!QTSy2R2w^da667$4 zWsC?jY>qM!W=27lB<#r~779wDvM8GnKtR?gi^!G++cT&AYuZ2h{&@Gkd(Zph-t)bm zn-hfd0qY&o0{{Sw@%6^5?Lzo-lFqpvTXfW!bIKcf$U)bLnh7rRa^8pk5 z!zUqH$SxlwZ|yrAYi%T{cF$>fonaC-(@5w|>=Sgm48ma-(_5vwBy2>o!4wZURHK|zFEm=@@7y|uT!owpBBv6`AY!Hx|H&GknfL5c5l%YUF(#@Pp+#( zkmbA*GnZ~RMGb4yC0{=0+myEu-#eJN3-dcJ)g5**-fOx3BIHZ=XK+%3(EEZ%i>08K zblFC8fV{C+^zy6O9$V1Ux3AmvmFY5$4^?x*RxYg{Kg>3}{V04`5y%BGXgoNuXW|7D z-!#@zPTQ5yWKau?-6%W`5e@AaLpW6gY%aSOzfF={!uoRUEo?9qoQLpKh=ehx-`gc-2@|Xg`Zr)<1>&np2#_e&RJeE&XjeqPmwSRs2?L99 zDWf>MJc44q=q2uC&hVn`vvWoXIX4nrRoW83jMbh3>X`jpp&tT7q?&s)3;@J;ZwyuB zNH%rzuDWHc{c6+#=?+8AmRWgmLz^(q{huH*S_7idrOL4syQw#vsiLppM6YvPv~DEk z9h_s?ebcxI9{4MPaMop6DxwfHW5EHbKLUaDUs?u&y^BOXZM?0cks%JuBKR4RWIm#> zsR34JySaVk<1+gEg^6P=oEi{fG&;dC|9Sh6;x~Lt2g+G8Ye@Tn)XlL(6gy-|Nm8BY zlpykk6yn6oWGK&u=D`syDFM-8uyG`=o8$)6^Y+|L%j{bjEqBZY0)Q?x_Xk-!U zXI;TbwB|ADbqm^i)q~x-l15p~96Rr!`c$3s3Dw^V-(>#m5!oBpWtveIg0?sdPWuvrzaI3MK_V9gUS>&rj5N7Be76T_Z* zW=6O)dgsrZcyO)o5q%5$Cw{WF=sb&wwXqhG;U2|j7q9Rgf!QHdn?Q(!S2&5$DaLA-we2GGB$YW@1{VRj&@ zyAiB91DkNouq(r-1zDZgqTKzf%H(}oTdo~#_=hp6?U~*tuuVI?eCbXOdibB(4H15b zI&!?Zq^>ISgWTom_cf*s^7KEVLuu0yoP~#1G7&#glH+lr#dO8Y19M&bsD^%@uvbNW z-ztx8o&0Uht>~<)!!k}bo~ToLferh^!zEh&hhI&~amW{kNzODo5tGuDeK!PQ2KbiOoT1VOE1 z8Hdjxs%@{vb>3N@6UG}4FncMV?S(_6&RvFi%H`eV%3*ZKA|@xy*j#kBkEjM{{n?j= z1Yu>V@@Tcm0pzr+r2R~T6cKDSx^6_xmvcrwxi?4_b;v3YC0tj-w^*`ZTUQCdyEOk5s@yl_^XQoZq&;?=h!v-Zfqk*Zu(~3+Si- 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..4a1365cb03 --- /dev/null +++ b/classtz_1_1gl_1_1device__ogl.html @@ -0,0 +1,133 @@ + + + + + + + +Topaz: tz::gl::device_ogl Class Reference + + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.0.0.2 +
+
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< renderer_ogl > + +
+
+
+ + + + diff --git a/classtz_1_1gl_1_1device__ogl.png b/classtz_1_1gl_1_1device__ogl.png new file mode 100644 index 0000000000000000000000000000000000000000..8c5978c51f03869643c7640eee77bcb934741275 GIT binary patch literal 1161 zcmeAS@N?(olHy`uVBq!ia0y~yV7vun2XHV0$<8#F=|D<4z$e7@|Ns9$=8HF9OZyKk zw=mEwkeGhv#eo9{fa1ZEF0TN}ah3%61v3EoU|`NP`w9aCi-@O-V@L(#+qoBu7F!9h zMz?ES|M_2k-^ONMp+m=5((~JH230ek;pmm}T+egZU=E|)|F%Sla}3QYN7L7ZO?osr zOI1^4W!NOANifEykZ6@m$I^1aOXnvp(UU$jUGef<-TdeyI#>TWEu6HazdZg*r@h-+ zmAwb=hiZH7Kcs$TTF|;PYM);3nswv$SKW8Nzx^mVGjn;Ie9Zj5h2I;r_PndSR(SQU zNyoF?&?;fA%q;G$?Bch0{>>|Vzj58FX`52J?yW1Yy(*TO<+>`$`1INM&)3g5SO5GR z^t$d=-0SJzF3%3|433W8>N+cG;;L;sFQ~nGw&K^~RjZ_aEYrLd^Ij*xHMji2UZquC z%a8k(m@gK;{q6Ic+`r*lAJ;DYw!lezv0l*Suze?TgTJ`#?ceu1>$h#l^~Z5$d9uNU zSLMp@hg;46ue?9*(OZ?$;@vNIUy%!a5uNqgxAL;c-q80q{^xD|JbBU28NcU#Z4WxG zFLpF4PyKIjmbqxvfmO9uuK8Df*IW&o?@(N3%6{;1`qMRUt0M0P&d)vgws6O~wBM1{ z5exU`ulM*IrhfL^E#2TPJMTSDe_MKd#`y?{H~iXZdT+(I#~)vAS+DbHy0oXX z?Y%X}FZs`J%?qr~Sa|k9w@JQlXgBNsB47}0Umi9|%BphGm;Fo4?=6k;%=(etYA5^6 zd+T0)-%0a|tiP^aA2lhgLOWto)~qjEKkf_p{nJVH<@201<)>HueLB(mQh$Wx``4kr zuXEL!zVVgbr1H1aEce7Dk+u+RPesqIlSC%L8Twlf8}O(nEGv^}d&t7@$4a~*xNufi zu&#rP-t^5oZGDff6jM-&FP(ShZKjsrRt87Q+jTXIK=K|z1hC%p(@#?vR2bxy(j^pB zfX0x4A3UBCbV`!JLh|Ug$CI;ityNZD+vYq8iBZk}H*VGL?g_d1b}ue_Z{4=H-8L)t zx9Li;1o3vCSk0%Wu3Z0GweIQfUt-^Dt81*Doe54ie{GjjZ4NZ(`-i*U8<&T@S#>w{ z-2c`2XMU|J&iUQGBy5LH!Rfb6-AiijJP2BwEALSJ<<__Cb*JmL)s%ltyd4V?bKHCQ*0 y7u{EFeR~7wCO%IfV*;EpCn#5Q=^TcJ`a|{dc|Yam=dS=2C=8yielF{r5}E*W&O|T( 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..410a71bf43 --- /dev/null +++ b/classtz_1_1gl_1_1device__render__scheduler__ogl.html @@ -0,0 +1,132 @@ + + + + + + + +Topaz: tz::gl::device_render_scheduler_ogl Class Reference + + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.0.0.2 +
+
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..36811a160803880a0d92ba311cc036bf0800f905 GIT binary patch literal 766 zcmeAS@N?(olHy`uVBq!ia0vp^SAjTygBeKfe0<;*kdhAY332`Z|38rV;?396{zJFMGaQo;Ck?#p$r6?j_O z9ala3JO4+CCsW$XX&Sa}9zO3`a}JB=%-_$U*z&MN!LvCt$a50Eua@Vhg}tkI)5EkU z^V^@0ezw&!s`B|3(KP<4DzytfuUu#QZ<)@q(!8X5&&zio|FmiMk0!%#4{fPit*}&3#kh;P>;KdHM&`Lc^~<-rN4q zVk69Lqqe2aNngITf75rN_}*XkTQQ{ap-6tH zNbdL7*S}qz{k=x|o&L(4z0WJ7t{(k%dFAS7Q+H{8(RqGK>V5scwAi(_1+UGxycWMm zB>d- zW0O)scijG6c0cQQ%D-99JL1*PS7~)J;G8|}E6J_{uVF?q1{Hzd$2hNkZ7=W4?8-T&f@L{1RD}x<| zq7Ckb$13{tK!kv2k%6z)q%R9ST_@RXnXEM-MRjx3%q_JZvp&uf^)&m!tTm}-t$a|c zK%STRj(p(# zkE#5e%D3Rux%Yv(k-L^8FWPkTb#K;eu@IHZKf*(n-RqvUp>%59ziMzG=JNO){&s-p zZT)wLNjh6zTd^Otn6^s880diN^B(=*LU|_rwD_?$$7|w~=T-{GK1zB_+J9|{k|)sH jDleVGS4kwx_|{kc+OYK0h2nf*N@ehL^>bP0l+XkK*7R + + + + + + +Topaz: tz::gl::device_render_sync Class Reference + + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.0.0.2 +
+
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..cdd8569c0b551b7ebe58209e9a2a016d2d9a79d8 GIT binary patch literal 2077 zcmcJQYd9NN8po5W5>o9@*AAwS5Yb^3aj9Txv}r^!scvapT1uxXq;7Sq&`EeQWulQX zBT>3DhUzp}B`Q=l+FA_>l@?81vZ>n=2}+biHtn;|)7||t`(@6DbKdhm-+u4={~vN_ zFmkV+g&qI^*o!(DfYF@I007WgS4&fU!PM96fPph)ec(clZ zc@Br8(N9xH8Z>X9bWHGRfad;jdF-MK0RWu_RKT&YETFV{kt%Tj@A0c@JRnm)ftrfG zD3N#`ltwhVp)Z-()Y|CJHl^~j?P$Q+Lqs3~bO8{O$pxJ+&hFGV7XX9U$Zn7_sni;z z#gN!AFgc<1ep}MirXAPi^(^zK*@veG@gwd1?ytUd4wvGJjD!^&H_1>=QqK=0QPVgy zRykA9UP>y?{lT)TZBc#~&*nS767u`F5?10CdOQh+Rk+Luewa9jF&U19o}rQwa#VeBzpuWPvEDD1*fKhf_63P^%E4ZGZXx3P{NB2+@T9 zVaX>NaSYbdO4Ea=J>K(guX3mj*0Cd+D}- zXL%Lk-EFqc50cLi#&vAOe^X9@WPcT+!K7;<4T9k(3fomOzLk4Rj&a9U{P_YlxU6cU zM=xa}*sMW%q|>TUOKc06F4#vDX;)P(ZntF_B#to}?dm74dOvatCXHfay;YFJR#rfq zPlxRZ?u61>S1Vn)(5)}`F(vt(1QyI>zYA&vK7N~6L})+4@yPqe5TLf!;6mwYWu=<( zz2?Ye5YuF;n^7xhD!JTTV3((;=4Blfci2MuEB_Bl|HW~%hK8vE)nNjED&Fr@cOb;S zgN8wjgD9%Ok*L2vl_`<1EixWf7dc(eRoq-Yc71c6mD{x?=opp6r~fn(d>xE9Q8@(X z5Jk7?#z_+U8JYPAQkcX_HRrsSBh6+CBh7yhNzVr%|7nf z!FAO+L?0aC0*7~rvY>hAdKVpAs&}Y?xCvO(D;-t<;qFp0nF)Dq?8mkZgw;u8JC2BP zX;79N69}8}5!kfxPQmKH^EU(u)d`!DQZ#Hv;5D&SPPMP25sE$mc%)xXdl7Jws_%iS zB99YOSp6lJj2>_E;}O;PH-^-=Xk9cFdgx2k9bz*i+mK6ri~1d5F@*1xi|2V=()kak zyNh=>_aY`pC3BJHxu)6=aUhk=g#sI2{hesfx_7njmlcoupSG$?a($vtRC-B;PMgD5 zjtU4AO5fbZipAKQB^pj}{iEw2o@r6VTMI9aP20srWq5}6$nvFkn;n_%z1#g6!$ivp@>F18Xp{om%+8rEG+tgkw(6v8-rWtcE*L!=+ zT)^k%2sUrJ;|gk4*T7oJ@;}n-=z5%p^*-L(?Fu|DL}#rAR~yl3 zm(a6(SB@9l`tCDk@5bJ$hW3|2M*g^hJBal$)J*O@N@urYy{q`_yO__Iw?B~N6N@o1 zy7aiySK4Kx|9GD@vO8+=S6B7;*u37@s&g zOReDGpaoT)&V_dSVkGwSSz|p&&?i9*hJdWW& zL9PZ5kTuL>VcT$4fHE5eR($U5#$_wml*G~T*pR>_E%6E#uBuCFr#;~Q%IGXf<~G$P z=uVeS=_*c~DjJNf#*g}Sc`-pO^pEFSRa-|Xi5=#_L+vqoO{^!Ge?bWoQpnG8($Pu9 zjS+FMhS`ZRhh5E)YP4cT6Que~5Fyn802cgGtyJyWEV*gEGw}>Ch3|#{c98yNobvs9 hw)K=N0>k?BR_ojsN=x_O#kyY{srP + + + + + + +Topaz: tz::gl::device_vulkan2 Class Reference + + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.0.0.2 +
+
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< renderer_vulkan2 > +tz::gl::device_command_pool +tz::gl::device_descriptor_pool +tz::gl::device_render_sync +tz::gl::device_window +tz::gl::device_vulkan_base + +
+ + + + + + + + + + +

+Additional Inherited Members

- Public Member Functions inherited from tz::gl::device_command_pool
vk2::hardware::Queue::PresentResult present_image (unsigned int fingerprint, const tz::basic_list< const vk2::BinarySemaphore * > &wait_semaphores)
 present the acquired image.
 
- Public Member Functions inherited from tz::gl::device_window
const vk2::BinarySemaphoreacquire_image (const vk2::Fence *signal_fence)
 acquire an image from the underlying presentation engine.
 
+
+
+ + + + diff --git a/classtz_1_1gl_1_1device__vulkan2.png b/classtz_1_1gl_1_1device__vulkan2.png new file mode 100644 index 0000000000000000000000000000000000000000..900cc1e7bb02527cd661bcc60d63650a6c5d2d0c GIT binary patch literal 3258 zcmb_fX;f3!77mCdBH~4h%)|>-T4+IW00jxA47G^1!bN0?fIO5rDwB`|YXVVGz}g^F zLbZZkEEE(HW-18PfS`yV^H59}!XQI{0C^|a)#Ym6pSPCx&(4|lIcI<0{?5+j?~d4Q zP|#4oU@#jFePewLgOPH`OCwR7p1X zCSh&_=IF;BDm9M&Prg#2ulg@{?^HoXlE!I^Dl;gL;Dl7{R+jxrS(lKtjbM#^WX-@{ zWMY-!=Cd5g5owL_YbZS;j*c+Eahr6{Z{s{wHwQ^ zjF{InXIIt4YAVXafE39>=`HJ8XAW#`icdt9#; z8y`hl4}gs=w%3lQjpvg%;ljBT!pz{Xh##Yd68d72*bI7&yyNu z&Qr3rjoskaBI%J9_kwGS)=yPlHC9=6FRNd>f8w3}Y}NR9)B0Qu>ONg(gBW+03F`b}Z#<`WdXAoXph zqmCdFo&OnJlcwpV0jt=mA55{3t{m<6c#fJ3Ot7+IN8r5WXjmDUPj0V~8e1^}d?>^kwM7V`_a?>x2|}aZ85_B@HRsD-WZQR&4;$(rvKD6oUJP zwe)ItJLq?$Wp*rUP>S)3WKYZ91NdDQ7l!UM-TivBXT$f%?B~E`yffoI>WgZ;WEL)~ z8;`9kn2w>v`jLKt(mg6Y|MYQ$W_lnN5mjJU53_3>y>zg2&C0PYpxh9zC`2Zo@RgBz!A-% z)1)~Y>?17%*7>3Xu>5Qv4?wMCVS=J72mb}SR4#p4{DmhMG1Rpo&{k_K_R_|Xow5X4 zY^>#kWi1w~EGw&MEiW|*VDKZG6~fyn7Eud(9DwMV1}-8M?7u-@&FB&YWS)ObXjqG{ zB-L$v`TlWaw&dpkTC55l24OfJlYb7RR=+KreP;g)VYg`Rw-kH_ZrRe9J;7oR<2=GF zi%RS2B{|e15>LrOImtsjl{{*mi&g^3;E`3lQU6pl&izw?Btf;q#fP6)@B6A-voS~5 zt}HvwH-hVGDu{I9z$2RgPSse~IOVQWRUfh9!Cye=)vlx|3IPi&H>E*?q=zG2iP~_V zYUB+_coRpzhcX*CDIK-N&XdNW+w6DY4Iv%E&^KRp1oMTZ95E5Qv+FW6xx*A__b}dI z$#H2!EYqmT4r_MH&al>0wHO`IIR^LX@9X>H9=aHR`JWoO`c6i% z_^R@(%kQxhmAZ&5TQTlF?N zauG8V{k zWcSZazOAg`^SyrUWcQDTh3t1>^k#6To7*mr$_GwJpMB&nwWy(qeyr??&h^CghRugo zkfMUz+8c#ajpn14e*=mWZ zIcU)08-eN53%DTj{P|;ym0Y5EV&~Kjm~y(OjyP?XdR^I@`a}F&iG`=AcPQYx@AMY9 z&S%iwAtJnWwsDZ(|KN?nPQ@Zt);V@Oeg1xwCbh8_uD!5W*87{$os9^io6TKeQ9m8H z>OGyHFl9bH7X#NV2$gyYy084nsp@hndN$wuU9X5IaYCX4{Y8sdi8p2cdYsBY%G)3_ z)iO5uCX_SKowx{313vE3$>gsm54m|{pw4GZ_Y$LGg87Zhoy7!2qS!sRENI`Sf=jgd z;i%DXd-?SNLiOzboXd7b$d{xKv*EZJ5H0o~41jQ6dRDGI`!b)#<>e=8b2;+4D62*} z-{Kep$L8=Jg6aq10g(#X_lU6cy8M6#14UK)1$uYD`u7C*7cYi97=XEL*_*wAgcV)v z9oj(Hu6GV&XrkWJW3nzap+P3_>8XtDtv@C`{X?rd?r>fGmsWqAI;C{d226`(9=3gp z`ARy=)kHmY&7)H$Ci17Bg5l;HV0zZJACvc4*>4{tEA@cy@d6$@$vd^}|K@++gjZVj z@RN(7D&8lULx9`=s8Lq)&xh8I^95zfy9(1PQHRjX!S22^tD^~D@(PzsiC9u;c#^WT z3~3lSQ&!nhx4%fNA`WD8W>dqxy2h7WfLEys^VDnR@ZMQ!XD*K4A^IGrD_5$eUrTAlb?|+LN{5UIiuH}Ct~-5x z>{Yib(|2DikYt?72UY3DuZ?+y7Pde-y$CaFHux>K2M + + + + + + +Topaz: tz::gl::device_vulkan_base Class Reference + + + + + + + + + + + + + + + + +
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
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..27a95aa52948deebeb9a71122812eb6d6d5317cc GIT binary patch literal 2088 zcmb7`e>~Is9>>3HVq>nNb3-CE)@}|Wve1xd^YhX@>JBB$gSPBige`MxbVWJYuCQ6r zkzc2&{1{fYR&*6p`IX>=jZi$JU$uz zzMk5ehME8XXycB#2dK{b006OuK~>Q%zLshScKCZAKdMwJRpI2v#rSMVse?6|qJOh( zQY;p$@_{*>WvUwde1LBtpt}FO4sPOf0f0s|&fWERB4oO7;NjShzf;E+RBW47K6BI< z*p(HI+PAvwUxFw^c(@R9PYUqpl6?O^l(3UvU;us&$@D@uvkDb&M}mjaf`u|#7e`!~ z^f`lqF5!;tp<^eFyE3y=goBmJELupY$4$)iaofQf^22L(T8Qsx9Pl`vT)wR{>xlfp znvs@3(1$uhrn<7ihOuLaJlmqvgj<*)+mMms%up ziCoDr8{A=MV4oQ;2~jGdjYN0$fJ^vOXY11Cz5c}pz9lu}U0>q0t4g0OdE7i6Q(fvF z?tI9sF2e4t#pZ4#je#dMQ^(nROW4;LQ?X#aVzQha@PfdzdU+UA!hSf$dh2Dd9`Qgm z>I5FAs$h@6ZU$UMnFiz0yuq|UeDrQ)YZ?dH{){9M3`De4!$&U4YU8Plwl zwIvtn=XN5;2_A-cEE zHL_#DN|QSuc5t5&+$yp;PD#rUo0KWJS0P3OkmLSUls>9ukduztbPE*^YlgU3P{uY zPK1&ao*KJSj0DyhOzTvXDPpuW#6iYIx#a}cxrrL;|{_}w5Tp%H@QuzHG*RN&xD1=OKQz8+RXSJiV8?r2* ziI#mVd23OF@_C!aw&>D?C)uH$N$WJabCaN|S3E&1CDCSV|I65)6?U2PxA<<*B*U9KBsy!(46rbL16^n5Q=b#@ojKrn{2;$a`gWq!t~fRktD;Pm0B6^fzu7{h5)1x9~dG{RTmg!vp8(=Vvz2#RIh? z+Q#q;I`C1hj6e*~wvN!Rkt#jvX)OSDTxOuYg4*D@VL%~8it%G28z`(F^7DLF5;$#% z_MmV!xTO>R9Bqng`VAO=0s2vj%Hfv@QjFtmgtd;!5I7h#@eS;&Tt@?azw1v|?nNke z9NxYmS3Q%pgrXp&!E)oHEK6#C`A{>tsPUcs{ZIWD>oU#f_dbQkc%AOAi(Lq}I&ju5 z+)rcS7WwwcMsuQQrbt2QxN&(a|LGFEpscRDi#z<022PY4Zy3MJb7(lXGheZ96}y%H zcVgOK`=!h)0jFRpls%-8s%C0Zr&@@-MN|$hvfuIyGx|TGU!ORIF*}yGbcj_a{4&D^ zCMixAAT5tZKAouF7oAGwRq=3kV!NJ(5zPx7`lBN7Y*;EI``?Ca(2{W%+>hmG9mEx6 z^f6-vtyxieO`oNaPK6Y%Zq9qJ|3j8P^OU1xT<7|6ZZ-4;u&_k}@HXU$lE6=2X=v0k z=zw?&J++~M$=DHB{ZTFyd|oTq*R(xlaHg!3L4Db&6@2Wq<(w_o8`?Ot_X?BbVfhWl8lwcta|m4(1bJ}OuWGm z^OS4*7O|;l>&&$R1gH5B$Y&(R(ai@f!(!T(cIz%KVv4DZ^#-M~v3<3p2*WXh8$Nzkw+@YFUM#Sj7fxv+GGV88evJyaJ^dTwY@ h#qzx+mnzkp!{SIrR&716H~s + + + + + + +Topaz: tz::gl::device_window Class Reference + + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.0.0.2 +
+
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::Fencesignal_fence)
+
+ +

acquire an image from the underlying presentation engine.

+

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

+

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

+
Returns
swapchain index image that will be retrieved.
+ +
+
+
+
+ + + + diff --git a/classtz_1_1gl_1_1device__window.png b/classtz_1_1gl_1_1device__window.png new file mode 100644 index 0000000000000000000000000000000000000000..1145adc414770e994ed80940f796041d10653f29 GIT binary patch literal 2085 zcmchYX;hO}8pmIZEMXZC6c-8=fkd={$R-Q{EMjQ@0|r~QX;>vn3KWo%U=*+>dKg4Y zNPzi`LMTf6HtjpYI~?yBgPe zmnNwb!=u!%G8=Pfw<&imiyD-wpAuVokV6AKLV>)AxE?5uv&XGEy&8x~F-zCZp$*f9 zHJSkKaiUY4xsuwlC6l;&m)pqP*mbVBww36^{f6+%k`rsn17Y80&HLq5iN;NHR$k|i z&cC&{Ftg(A$!tOycYAvPp6vE?hU{pz7I_(s2Gq_} zWG39&aIzEcu3*A_>0fivFM^)KuC<&dpo&#vBnSBnRi6KYZMg4wIw%Qx$(Cx@nP-x3 z8~i7UuncTKEQ}FgA7kaqWnfWI88%>XDu|3Cmb~%BghoKvG0#te1qW5AY=gI2)`41| zxB6Yp!fK1&Lf5ie#{(JIuEJg?W?X<`=S`CC~yak#dLaKY4--J&RNYc23?cO@5&0<8QS$XBn zVgugOYxi%7J6Mb*qi}|wJxlHNhx<7&u>oe*Xa}inER10GbPVQPa(eBJXTf5MASv*3 zx})_c=o0D!+cZ-FeG07?NQeJPqRz)dG4~9iU|NRg6y7$`QQ3lIilOjK%jp@1izwZQ zfBlkJ7VEQ1hszJ9g$5YU7Trs45!Pz%P`tuEEAW^f5b~o_pm<0S7ytM|QoXd;5MG72 z5nCIz(d~WNawxZ7eX2VlwtQptn7Lbbq2WSMan5YwUN7dczgg0>;w|(Snxs(2m`6`0 zj>L7vUVnd+^ib4PSH9uovpXTXzFS4+B+bS>K|j-uq{KCTkoE32>u0Zt5n6qVl^~i5=3FWaMYabP(yXfS34l(@vrCUK&g#Vu zAfso7P|DcJ_c^HtA)5+-5-IIUPud~dPFk_8s69^5B)Qn}2s&|H;Z%ZgPk^GA?EXtI ze?wQc0#`7-xUZOxAYH(+33$S`6^avgj6{Njc3ffK;brd_ZKQ7HBKf;YwKE(+&-Yzh zrA$n{6lZkstQ^a`nW@CR>esIK6|F*{{K^K|C@vwjt5MYO_~|k z=JF*C6Gm20k|T7Isjzph*4gJ|_?05VM#_uMEL~bQgsAiWccxG75#Pl1czBi>B8|be zf(9S&h2HPDP9A|Djc?01Y^bte8&oo^2C_h0`~HCI8(CurKFQ+z)p>8pNwYMDY-fWV zGG5a3KIUVWZ(O5;b(c%y%Pus-2(52^QYH50-rU7*duLQs)i^l7Oc$>TL^v)0zM@9OOhWk)s)>9KVVZ~6~MBOjTixtr3p`47+HYI|?b2V)cMCpyDCP8Qe#xZ>0gZ9E0Ypvtzv`HL zhzX(mTw{l3UL^JKb>)WUVYTlRMXyhb(6g-IPEiK2H(C8|b7aQ{@2Zods=7VJzh z&+dS-AHlJ#A>^>iib&D5di>-~$Fc2S$dL8e d|3k-@KGkO|%Le<~v$sEf^eK!V+c)C-e**(o_?!R$ 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..a2dd2eee94 --- /dev/null +++ b/classtz_1_1gl_1_1icomponent.html @@ -0,0 +1,135 @@ + + + + + + + +Topaz: tz::gl::icomponent Class Reference + + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.0.0.2 +
+
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..9c05ed6897f81dd62f167a5368c1cb9de8911bd5 GIT binary patch literal 1468 zcmbVLYdF+d7(YX15z=_98Hq+SGHxlvwr#^0%Zzqn*ugx>T}iijurB4YwlM9`_%l1n zhQ(Ob5Yf6VCR&kPR!EU4Bhx%ck(f5@f9ONce%$lnob$ft_rCA%{GRt^d(d1p)%Dc@ z0GbpxG93VA6nytkRfhM*;2OoT&Et@_%i7u+e0?>u7<0MpcL!_2Sv3FQE0IV9`@Nt? zLrK1kfo_sszD1fv*}+K5NWSf<5MlK)~SvYk=%*rvfyHa%0P- zVxP6pk^2p>seD#zmw7gwnqG|p$RcASt9I?SoS?yl^R@2p>H^Z2W~KEL^OF{Z`vkfB z6p-iStXULRfF)5&I=2wJo8wL{S_pFA2jhW;h;2YO9>t|C7BAfUvf6u7OtS~!N1H8iX*rDX(T0F zv?y2#IGiO!`}Y>CB)(}6-3U6&b0Y}0{!`}g!i69(-tZAC2gPU3QwbFzFdN6wk1>L@ zswkwQraE^wWuqC}t~#Clz!9a|KThwf}`(lP^Rq#%}&`(eO_YE$>!+$ki2P=Lq0`Z?0dtO*P-PjxL|2VI5x-kkYGgo(s5AqTH z>I|i#y;jOay24G4VMmaT=Dunv59&2i7*#01V_`rA%-c+|7clQqfpX8a!xlm zu40bx!2F*CZ9`%A(2|(wJsok|t#)>xVFI!a#%S3=#xa#a-7G zUci0d5#~mRc~Nd~y1At=F~}Rk$5JY+OUT?(wYi%mqc2#iWT-bdqOof+Lgy+iNjChH z`9ZjYvOn)x&vKMKP8O6Qw69b>76g|qz4(SgOsYTdm3hFpxS%3<;6fQRC$=?6I(+HwH1(vOEzW1v_piP< zSDUP8Ny}uceMmfCbwJxm-#DM9uAe;=VDffhShg&vd26s@N%6BtXIEH@`H*;9BJAv8T)vX7LnexDUn% zUv1xKlh0z>SJI9`j1flhSUWD_Cu!_&xkm=Ho2K-8s&m`Jb(n5Pp<%frd%KG6<*^Zt zS0gKC9;&^YZkMf Qs|WzRC@wT|B`GlVUv~wBWdHyG 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..19659c9bbd --- /dev/null +++ b/classtz_1_1gl_1_1image__component__ogl.html @@ -0,0 +1,132 @@ + + + + + + + +Topaz: tz::gl::image_component_ogl Class Reference + + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.0.0.2 +
+
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..e2f3cee16e14cf6abce571ecaa06182e878bd6d1 GIT binary patch literal 672 zcmeAS@N?(olHy`uVBq!ia0vp^D}XqFgBeKf3OV-)NJ$6ygt-3y{~ySF@#br3|Doj; z2ATyD)6cv(aNqz?Jb2P&kRHyGAirP+ARi3OnPy*MU|`brba4!+V0=6GcHe3P9@p*W zL0kX-@AlVp_HasIdOXw2YT71|r)gnxz2gmiFPkvU@c8tZGjP%u6&KG-ll=mfPs*;` zZtF8i_KWT}LDiGDE4pUgJR??=7cTi%DsGjD&3f%!J*MI-cTmCxq>bjTYnzB6VG|OW|i5he;3!P{$BMnS$fe;v3Xs3=_;yAZfw*@dpLR*OW~t^b_1@AIICtgZo_RH24^5Fz-O^FN u?dzm3hAk^pDuotJdU7)O%9$L7e~jf!U9;z}Ii&$iOAMZ_elF{r5}E+AheZzn literal 0 HcmV?d00001 diff --git a/classtz_1_1gl_1_1image__component__vulkan.html b/classtz_1_1gl_1_1image__component__vulkan.html new file mode 100644 index 0000000000..34745c3bb4 --- /dev/null +++ b/classtz_1_1gl_1_1image__component__vulkan.html @@ -0,0 +1,132 @@ + + + + + + + +Topaz: tz::gl::image_component_vulkan Class Reference + + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.0.0.2 +
+
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..916eb1b8e5e8fad155a3880c8a476aa41d73a85e GIT binary patch literal 703 zcmV;w0zmzVP)0000RP)t-s|Ns90 z008Lh^>vTJr#LVva2S`&=)l0h|Ns9}lGCUF000SeQchC<|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^002ovPDHLkV1hpUS0DfY 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..b56e855c7d --- /dev/null +++ b/classtz_1_1gl_1_1image__output.html @@ -0,0 +1,133 @@ + + + + + + + +Topaz: tz::gl::image_output Class Reference + + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.0.0.2 +
+
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< ioutput > + +
+
+
+ + + + diff --git a/classtz_1_1gl_1_1image__output.png b/classtz_1_1gl_1_1image__output.png new file mode 100644 index 0000000000000000000000000000000000000000..1579d68d0b35d8690c3db3c4b8bd1d2b588b2817 GIT binary patch literal 976 zcmeAS@N?(olHy`uVBq!ia0vp^yMefagBe6F$chG1(g8jpuK)l42Qpv0`C8h4Xt{-f zW`V@?GcOJtH~!=C$S;@y$Oi*+rrB2*7?`6yT^vIy7~jtQ-`A`lz-E7J z$<6QekFvLF{8$}TeS1>Qp*hbt9S{ls6CQiLw09BT0?$LT2j&;Be@HL!XNZ1NCg)RC zwmw~V(Ryb0yNq!~M`ag0>Z$g6d2q(ZAJ5Mz&v^gt|MPnX>J- zt80%=)>(EVqVQcD&+0qf$3Gp~tFu1$d-}BkP4ki!7j~ub?e71Uzl%Be_U-R$SElv< z|FrMCd6M1bfcLHyo9|tpf9PV>`I%1-{r)=d{7jp(3Q=cfpY5Mxe6{kEjY;2J)s{fx``-c4h`;YMQhWaO)-!a&`>|p*O{Ep$@ox8i&y}so# z>0keB6;rRn@3u$p{=~cc{?*x2^KaUoll1(>_E69BU(0TlpTh4ZJ@Mb+J;|Psz$GoT zfPFrznkmA-P5kb9W(N14Kqqv`7x`=2&R~)IzPVO@7yGY2?m?0a75)Bis+(4-&e;0P zNHxS>_<@dmf&R8ywJopqbujNaTKYZdX92s#k<{-+Usuivzf-*Md^~T%_Z=^QL69@^ z{7fU0JtEHME6({aHhll_qx|dCGfU^Pb$tu`9{H15=SS#w<@>Ydm$H9QzQg#3vz(#+ z-8-NobCo>*ANQRkwKVbj?X|H#+wQ)9b@tTuH*(K=RBD?GrmNH+ik$>h?fFUlj_S$z zgak6DP6^5qQ8nJI##wG`Tz}~9nKSc^-@Trh{AI6iM32?O&z9xJn?L{9ai9MRd+@)< z`|f?${BTA(=u@oW#R=E^Z~R}&l$OSBvH$(aoUD^;vi2Ukyx&W6Tk)&tGeK`#XWrCX zem7iJ%sy+EzTWJ2-6_VKug@vf-&B6L{n07S(v^RA{GNAi`<>O{d0Nk8zwfO&-)dK1 zf94Ed!71DM#>ue}o4$UtvHx~%rcI4a`m% + + + + + + +Topaz: tz::gl::image_resource Class Reference + + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.0.0.2 +
+
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< iresource > + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+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_flagsget_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
+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_flagsget_flags () const =0
 Retrieve a field containing all flags applied to this resource.
 
+virtual void dbgui ()=0
 Display debug information about the resource.
 
+ + + + + + + + + + +

+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..51f86922ba22b3bca1668fe653f7d620464acd01 GIT binary patch literal 1309 zcmaKs4NOy46o4OA%T%03oQf!*Ji$tBwXKRk?fB3!p4^*rzI)EO z5XA~zvS`gB005RiVL>sNM6s#;42P}a-33jUaE@ZKgKah&roMVJDY*Pl<-L_~bhQ+H zrPXS&^H|tWgV`45#js)lZ2w{GoG0r7fcZ60kUu-$Zbb3=((qOXyk|1_a$5X5t|x-D zg=pe`&nI#V!7N#=Vq7ZEby;u=yy&kBgF^#CV82@(AauX&r*_Y?X3K1i%Eb*@DrAMg zrv{6PKt-AaBAE8N3jWL)+;MNBK_l(296zjx`(+}dyrQbSWyCm`(`ZkU=1rT>u?M9j zD&uu!PhKYdZU=FCthF)0)MR{jZ_wk9p2OKj`ge-t%H;Gr6w%@%qXh}drDNBRWf_T8 zonH!nh|Eu{Gd|Kk2~mcd$P__vuN0|L-W-l+;4-gWnI|U;i3UHh(OOk>E{j)+;(FFpH1>^&c#J)o5o9i2Kx*X99DPDmy;$yBufCrjEi}_ISoM|H zPncp2wy&OY|Fxq}vB8t2sA{!uUZ26^1Z!+1DS;FpqO33xe)%l}!p4A`w* zkg_5K{xJ!E%Ly_MQ!aHzQF6-dW4#{| zJH?}P^#&@mc?%>+#Fw)7PZ~Qb^}~xf-?o+p8)uKHrG(>0-D2r;4QSFgf|Dcdw2fYn zy|swB?yWZ!o=9WqySz4u%m zZ*YWsS~94)cUhoiKAB8~-mm<}**K3OxxHNEa%_ism_ zm~=s!g;0BYxK74Eo=J6G7xq3kI+V5?P$rEAD)+ZEqe47C9R-?Eli|qcZ_Jv4aww)vI>$Lc&TVFcmYZrHswyHFp6hV# zV8YFTAB%)v*1l`VAD97F6-KXy%zP&u4@Bzp-a7)@ThsA zsm6ij&)7pg8cx52DXK82=1RH>k3P*ZtRYwfweom9t9!3 z9VoxNzM9iM)sr`2qIZ@LWQnG>2WIBy_vJNKu=D^rqdoT)2Ob(r##*{?-Il_ zeyaD8Y@dO31wjzkfX686zCM*_meeuB2}>R_3T(518w?wAuto+z!K|Q$fRr + + + + + + +Topaz: tz::gl::ioutput Class Reference + + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.0.0.2 +
+
C++20 Graphics Engine
+
+
+ + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
tz::gl::ioutput Class Referenceabstract
+
+
+
+Inheritance diagram for tz::gl::ioutput:
+
+
+ + +tz::unique_cloneable< ioutput > +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..aa0fc52342ca2661908c76e062a55ac6992b368b GIT binary patch literal 1403 zcmeAS@N?(olHy`uVBq!ia0y~yU~B-gJ2;quQsr+wFL(r+#-v;{j=VG*e zum1dg-!G|qK7PVi{=S-(AGr9`&%57`^S+I>I?Kzwz2-UBj&ncP#_aDhnXqR!0tXv!!ExN&|vpe_ftgKxTm5)Lkif@1C%n17_%=k8M ztKI{#tF>F#mu-L8yM4h~rgvQbHZgcQS8idtwrkcKwK&Gj)8Fi4_dnmTtm-RIL>zzg z`3Ad9wIAdynDu5mRlh6UeAma%{_pnK)Gew!w}1V;E>L>6K=1$LUniAzx!<2}ymEqx z)_qlnN%IWnGkgBhoM-p;JogT{W!(A8RB9Q3;UO5u$S^;xox$^$Yea*JY7*n5DIKgH zK}uo@o}D$_4ZuKDV_-{|D%`+$;vf^lCyTi`3<|v53@0Aj{5NBm(8|iN?yq``wOX@lCh7Iy$azXt*6Ry<_2& z4o}H?UPk3`LBZ;c4SD}&u^P<0>dLtJS4YS64Gnctx(p9Of!>*D&bnngfApWGhPu!5 z<-`RA*C#Sgx72yQKXKLh>w-%)r+>5i^v!Z*M@I!OcSpyJPiuDb+nr-lN(xbPcXBzx z!_DCKbh7q?ZTDSV)+90>SW#2K-PQ5KAKeE)PXPlv$jg!{fgNT!*Khe_=7NBIkN$2U zBUUEL%ek!G`cGncRQ6xPeaQl$llVNf9VYR0!V(57rJRrh=A*Pb+0$pMz7*WNdt3SD z@B@?oglBDg_W6;6orc4tZ=bnYJ+e-{7Yy*)Y4D|br`-C6g^$Fpw|)utb&tKV_3-QG zE1V{oZ3qVHnk}-+X4y}E#`!WQ{)q-GStybjvQCrdB%fmLt?%0+^_3S+`ZD2qn8U=j zOEEpHKF)3+g?WtK!j{rE3+~peeP+u&ZOQXJDhbj5K2KS;`1ciuZ(JEwwHgbeU)P?f zc$&_2W5)l7tTtXxzjM9#C(p5iRfS7p?$X0-KOGJ%HePVwI9+<3itTe&#{N(F=0BhQ z3FqBsI3bp4oqP4}vnw)o#xVU3{#kbQ+vT^%oR2I4IXU{k<3HjoKA+}u{5aw8jbp+R zPU(3cZBl+)>#x+TX7#w#5-zXnSseHBEidEc?~aqydYsm|f4r1EQ6<6o-z1agi-?iE|FC12tIk)QbYJbQcXcx!t<8 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..a9af2f25b5 --- /dev/null +++ b/classtz_1_1gl_1_1iresource.html @@ -0,0 +1,343 @@ + + + + + + + +Topaz: tz::gl::iresource Class Reference + + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.0.0.2 +
+
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< iresource > +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_flagsget_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..84f4058dcb6db7871b89bc32b540c939983d3fc6 GIT binary patch literal 1879 zcmb_d2~ZPP7+%ogNi>vzMg@$q8UreZh=_s*TUZ7VB7{RiB2j2Ti6wx72COL6M4&8D z5U&yw2y#>93PSp5$Ii4fo#}MCv$OlZ_r3G~zVE$r?rx6y z^YQZ`2+~KK9B2@vBLcB(?kw>A=33fa@LT5Y;t6ZDS`c>kjYK9_-`cW~bYw}|&)qVa z4Ak#MpJf4TUIfi;F9gcJKi0aJ`JH$;AkZOqT=tyq?Tkt;>Rn0%vIO@0)98 zIm1luN?YBZ1UMaH?WzBtfWNcLq&bsnxg?43kb5EYY^xebJ?|ZT16gKU`KK�X97LgeRt&S8aWeRxNPot;`+3YKi zDC6Jk1YA6hg^PI%Z!2MS^qGBoJ-u8IB_G(n-jUyxuka-z?ZEqT+C=(wIQL9}T{_-% zeFPNR=P7SnATOy^M6p!?)d}~!*fvs13K-pv755Moa|(eo9!&?XM%n{m^g~ixjWa3* zEB?a+cL<1c;-`~^>jz7O;Ret`nXx~#a0eYoo02A2p+f|k-^8UJaD<|P>fib-{uioe z*{0QZhVOzJt8JKv|C@DU4ZTQ`G* z14`*iq^g4qzo|=BaGsq!KE!@ zi?p{S{o@G@nlGCs3lr3rw!7L(qRVF8P^QCItr*}<<`gHNYo+K@n!m2dq1LZQVxA_M z_lV#1hf;(;h_zpJej-!bfQm{xK^ ze3YL+C~~(NwN5F0=t*@#1BOdQiv0~}$F!A7sAA zrLaeFlZs5eUE`V=%j`CyN-dVw1~=6gio>EFY!M_0dbn`;Uao=VicD4W8ct-M+cU|+@HQgKI{PQ0Mb(Vx9U8O66m8 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..c4c13200b6 --- /dev/null +++ b/classtz_1_1gl_1_1ogl2_1_1buffer.html @@ -0,0 +1,436 @@ + + + + + + + +Topaz: tz::gl::ogl2::buffer Class Reference + + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.0.0.2 +
+
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..535a97d5dd --- /dev/null +++ b/classtz_1_1gl_1_1ogl2_1_1framebuffer.html @@ -0,0 +1,302 @@ + + + + + + + +Topaz: tz::gl::ogl2::framebuffer Class Reference + + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.0.0.2 +
+
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..71543f3188 --- /dev/null +++ b/classtz_1_1gl_1_1ogl2_1_1image.html @@ -0,0 +1,376 @@ + + + + + + + +Topaz: tz::gl::ogl2::image Class Reference + + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.0.0.2 +
+
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..a3a2ed9e7a --- /dev/null +++ b/classtz_1_1gl_1_1ogl2_1_1render__buffer.html @@ -0,0 +1,123 @@ + + + + + + + +Topaz: tz::gl::ogl2::render_buffer Class Reference + + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.0.0.2 +
+
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..5ccbfb2535 --- /dev/null +++ b/classtz_1_1gl_1_1ogl2_1_1shader.html @@ -0,0 +1,259 @@ + + + + + + + +Topaz: tz::gl::ogl2::shader Class Reference + + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.0.0.2 +
+
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..8c24579801 --- /dev/null +++ b/classtz_1_1gl_1_1ogl2_1_1shader__module.html @@ -0,0 +1,192 @@ + + + + + + + +Topaz: tz::gl::ogl2::shader_module Class Reference + + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.0.0.2 +
+
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..2fb5b5b0ca --- /dev/null +++ b/classtz_1_1gl_1_1ogl2_1_1vertex__array.html @@ -0,0 +1,268 @@ + + + + + + + +Topaz: tz::gl::ogl2::vertex_array Class Reference + + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.0.0.2 +
+
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 triangle_count, bool tessellation=false)
 Emit a single draw call, drawing a set number of triangles.
 
void draw_indexed (unsigned int triangle_count, const buffer &index_buffer, bool tessellation=false)
 Emit a single draw call, drawing a set number of triangles, assuming an index buffer has already been bound.
 
+bool is_null () const
 Query as to whether this is a null vertex array, which is equivalent to vertex_array::null().
 
+ + + + +

+Static Public Member Functions

static vertex_array null ()
 Retrieve the Null vertex_array.
 
+

Detailed Description

+

Wrapper for an OpenGL VAO.

+

Member Function Documentation

+ +

◆ draw()

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

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

+

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

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

◆ draw_indexed()

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

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

+

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

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

◆ null()

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

Retrieve the Null vertex_array.

+

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

+ +
+
+
+
+ + + + diff --git a/classtz_1_1gl_1_1renderer.html b/classtz_1_1gl_1_1renderer.html new file mode 100644 index 0000000000..0e82e50581 --- /dev/null +++ b/classtz_1_1gl_1_1renderer.html @@ -0,0 +1,360 @@ + + + + + + + +Topaz: tz::gl::renderer Class Reference + + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.0.0.2 +
+
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..51841a30f2 --- /dev/null +++ b/classtz_1_1gl_1_1renderer__command__processor.html @@ -0,0 +1,138 @@ + + + + + + + +Topaz: tz::gl::renderer_command_processor Class Reference + + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.0.0.2 +
+
C++20 Graphics Engine
+
+
+ + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
tz::gl::renderer_command_processor Class Reference
+
+
+
+Inheritance diagram for tz::gl::renderer_command_processor:
+
+
+ + +tz::gl::renderer_pipeline +tz::gl::renderer_output_manager +tz::gl::renderer_descriptor_manager +tz::gl::renderer_resource_manager +tz::gl::AssetStorageCommon< iresource > +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..85d68fef316524640959e1d959de1c5edcd95b35 GIT binary patch literal 3827 zcmdT{cTkhr77sQSm$GZ&StxcPC?JRdAp}q?bW=bf2%>_3f`FkDq9~RXP-&}?Akrj} zL_~yyD%A}oDnt|vq4)tCAV3g93FO`EIB#}+@2@wrGw)^QH{bd0JvaB>^PS)C+ z;jq%m4J%ohBsJ<{Rs4UtE{o zGF($r1KKh7+Mj?vg-d7$3=F*g@k1;jcferE#G?l-vEg!K86WS_%2vUW&(vl~rTrtz zZ*NO$Y&MDUq3(aZZ&mK{?eI#2#DR56l-L2|#J8T<1nWY)k!k_nXw9GD2*n9*u|iF~ zBK7goM6V9$!4;gx=T>jOn96*~&|36Z1fj8WCT<5mTsp${%F4DwlDgUOIRd>3Mw)!414J>?nU?Lp~Q zLr84?wdwgVRjgx>b3`?BB%iZ7e4HF$I{#jme{{=&u7`p&n;o`KNR2xHZS*g_|MT4X zCyRE472OUr^@2J9Rj8bb82VtteZ=Ed97CTYtfZpf7c-T|O3a4&x#oN3e9aE~QeUbL z*h5V^*d#Y7UrC05ea_i)!V|kwo@FfG>+gYq;7gNjvNt{9pm7pq9 z1lnIysvqpehRyo{v8b#&J)kZa9;D393R3t4K5LO(THt!dA?R8f#xlP65FN(#FQE%_+{tNhc=*u|Tpl3;~lv(%*r z`~A$GP0=R9+b|LJ?P{BLZN7HcoE-<3zhNs3COLi9mH)x|KO0xEL?&MMvfL5a;s)j* zEb9pLU!l6jIPvse*b+l(|D0~SbTs%Tjar#Dl}8DB0q&e!EGkUyOm4M#X74a zlu8}0EWE`bj)2AQC6cp6n~D(Rajchz5r25*sfc)qt0WuNIUVKQqAf4>Cpu=AYS7m-~GU-#(8C46=&1vAP7Uo#}9G&L!Xvmm;#RE&MsUMGxxT4JC)Lp zZ=PCh2T^y1JEjXf`o91NKP~iksMXPI3Q}BQv1B5h3EKuc2EN+eGW$g!>|PHdtpC1b>P`YhNDCr~@q z$mS2TNna5`MTYGzjhb+-kpHwL{Z7Gi?eUzz4Kun*m?Xpy`hXhTQ8{exV z=gFE3%7s#o!DH7(+bm0VrqaHSlBsZwf@(vf40&9Q^WmxFxk-OE`BnG3#xg;0E|>_z z79#?>U#X~9=1R00&fli#y1-q=d|&Ln{@Kzi@Fg$6i;rraADC5#7Sym&vV9RC3Nx5p zqqDm7M%R1f8S2xeT}k-~f;u4&6|%^RN&XO+Wh={q5T`K^rkx+$EVzN9KI5Ga@`JgW z#x}`RRIu&(_8tt<%WxP!pWF^I0TqN!7vx79ykYw01#_K10RDojF6JQmilk+|dLe+u zkMFSMwgfSALP!>XXGib}`5`1@V0q?TB!O{%J3KsrUTuI~UXMF{myJ8{9g@~zUCwt> zV(I%j;fq{lEC=)_f$WuTCSuJM>k=Aj3h^5w){M)QzTPeio`x95NlFxMZ7EE@tODa2GMI8rRMui0ygmfeFtIe-+3T;HPi+PM!bN55C{6 zqMgJ+fXKGF5d^kIs>3 zrJq-P#IlCFARnJt92_+}GTIs-(Jta#pX&c=1TA<{a@-7tb?INHP(cwsv?*6Z}%aAMxJ}xc}qB77Dfd6T0!m zcCJ7`3th^EB4f;f+gjqwM{_FzL+3@&-?Lx#{(q$af#38$8a3e>#3~ZV_NTP?ESMXw zH|qce>S)IIHE!v5rZ2oWRwrgHu3Tp8J zja{j*O8CL2-O4;#R&St4r&(eUqwz4v4CZtg^Q5=W#9>jcf zB2&nkFOV`C9U#=WC@Te`{uoja^$bfF(um}|_R=pE9|a+^qt2(rsIhI`MVMI*8)0v> zmfU|fyHc7?LKUL7>l@u?>hSH&ITu!kd=qn!hAIb}G0_FFCOVNxD$PREJg1abvhnP4^LPO}-?2uoG`v8KhSVu$V ziegJeZoKX`pmigkUVcnH%L|0M>axRC%B*!aPbn8J(GVxJLO!~C-E)IU;+c!-DlB}) z;|4d)ck;V55UHr_v_qQf93kqs{#ct5=7R9T7aU5t>lv-W0mkVSCjjz=eL&!FX6RU- zAla$zkY_n9lTD_Z@1X#e_oaw363PX=PO}cRPBB2;=T`7)5ksQ^UgHSCU|z;*@ft}5 z+N5Tvf+1ne58~%vzg5=l+!k=Ok0U#Vd~oXdg2<3>j?YwC#!UyuHhy1rW&T_kDBYRG zHXJJBBEM`r(4CtM>VV!v*rfuZ&A&%Q$vPYYm&jMJ8S6#)-` + + + + + + +Topaz: tz::gl::renderer_descriptor_manager Class Reference + + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.0.0.2 +
+
C++20 Graphics Engine
+
+
+ + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
tz::gl::renderer_descriptor_manager Class Reference
+
+
+
+Inheritance diagram for tz::gl::renderer_descriptor_manager:
+
+
+ + +tz::gl::renderer_resource_manager +tz::gl::AssetStorageCommon< iresource > +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..82f1b2d721ea61249843b823664487047252365d GIT binary patch literal 3862 zcmcIndsI^S7RD&ersy$NW0V@f^(%$j^AEW}N)mT1qM4cqH zMo|I9QA0!xG#j0ZnHiDgJB>^%@ewMDa1S?vpL`1``f=% zHy4LZ8`L&{K%h;IC+ra*kirar!1Z9@46!D)9awg|okSg%$z*`}{(~qw^HG`EVcl@m zyeIFQo1202$RD}oz%^ww!UYKej#qxrHN+Pn5ahn2{ZUk$!pDNwKT_+rfwC_?x-XNB zOsw1OxE|{LbleijJ6e~eW1w?tJO@)a7C5y)9K&QN)&}bb^C{IQ_>}vr5vNmxg1(@S z{=jcROXGJG(|Wd5Eba?4MNUju^I=uDgS)6kHtn#Wne=%WEumLKXwxxP`_W=K!;07A z$nR(ifew+ZP}o~c8T)a+9dX85ipAY}Z`AUzY2$;8g}7(z5w*HIZ8H@(o9{~)1X;Zu zuYUdxR5;*r>2m#(_+{o!#aq9`G+`2X$Iy)l&qcx7&rZ_F?9M9bcR~~QWYZ>0&qTa2 zG*hWFz;v?Srxsi8z>W5@dCkwJd6bnGVU`AoONo4uAEU@!);0jANbRW!W|^gaiPJXk zS=`>{r0kY4>!4T>M5*?S!yqJ~%fbsG_7qodSCg6rwbEv;Tx;+M9ITYT-yE-uI-B^3v`%ba+@Im+|uiYK#Q-kRaGQ zM_}h0pkl?r0Tiv7?R+iviv#~uAGlZbm|}AwHV+qq7si$@?izZ{mjxJ-uKW;?>Lr5x zt7luIfSrM&soh+S+8H1ZeNmh-OkuLZ6kGz{lKZu-F~Zz-zf`PUGt1SzH;aO7Nv)l3 ze%jSGYVOM4>KcXrB}GM3th1S-zUL6LL%}YqQGJif|2DQF#N%j-b&7iw7DC?UgH!h9 z{4Ge<%vyDIgVsN(P`kA{`p>q7FJj;@&06XyVmR_CV1#)yF3XzFHTF8Q-J3&yer{SV zJk|49F2`axhJAShXhyB!XMX48lqI&t{=Va3)M<9-KI*1p5`` z?WAkXCP{eZ2q(-P`H=>Y59M?H%>Kz1_^N~$LVt>@k>FCil$a`2(S36h#)~cU@7w@? zauWe@C6tcT{ZC%_EL9R|%azUzNey!z?Zqvza!2bG$6PPO&PK06R4A5%a%!zBcEHWI z69Y!)Cafs82h0fwCs%pog^5V_UkyaDrMa{BHmF9UaR?aJ8DkW8PA%=6)7h$(sBaL2 zVf}Tti{7$a`i|ZTM(O9*l!L7_d4-pG4Ta5Plcj ziNxrVB+a$PXPtCmk&e4M2K7jUfQ`u+beLJEJStd(n};qbfujx9Ao~9`2W}}IHqKm? zjrg_0hEZ!yfPTKsQP>w@L5jlLt|U=zuWcZ2%?R zaleqoaXUo0?Wrh5P zIIGk@Ni7W1@N%eUcGP`3YfuW|zhem)!QV3`S!C*H zw~l2p*=8@`a^bZV80maGfLiygnwr2}+*+SY#l|Wj6YUOqB(|~0l#$#;%b*U7+q#7E zrd=e1O^R+B@^~Unh%|IOVj%94Cx_RFa6wz~m?y(Ny@5(!pN2tE!NN-rA4A@3L^e%D*0=!maP|j*04zR3>{<{mS-JJTY zBDX=3f4YE_ZB^td;!=i&Z294{gaFnJz)DkrY`F=nUl>zgJppKklmYtYqp;^NFk>N@ z!8(70VE0MN?lyXRkx;2n4+1?cr;*j7b(+>Ybzq1rxx6AG$2~dppH_>AEHE|%X%de@ zM^mb@IqpNlb#GVkj$KBZE~mG};rhxVdC)U40dmDaGQ|av>;B_=3!G0X}?k=o@PCqN88fQ(?hlsYJi) zF=T41P_KwK9&HkSDAtdrT)!iJMG|82hWhklL$pQnGgxm|KE-FG7~S~st=<4R26%Rt zSci8gUYu_NXk^jbkVZ*1irA<=95&tgn6_vLDBSgZtI@PF9Dw$NaCg48U9;sHKw2tS zw*b5rka7EwOI8Ko$9r?YYrnbnw?zH_9R^m00CsB-P|_ZMH460ptB(nlm&z@QuEY(C5$c~>_vSte!gvdob+b!dB4HG~^RZ+^+? zOyq@e(c)Z9Xt7OCSEx~pjO$XP0XS781X9SVhZ?g(1G%4Gbua!hammOZdcX96RM_Ui zhaD82yqq(Hz_BBQWadK{CE>+b7e@%LOtsDdf0(YDIZx9>PhFjf;F#5PFq9Anl~ikr zo4hLo_pm>{BF@Ics)d@Y)>ce-F3cQN7r+!;2mVW>_n^Z~FT^{46T_|aq?Km$KI zJQ>sw!xdpaB;|USE|^IA*R2Qf~HnxAr#39-!KO1no2iN;<&@Wtr`E z9Ro!GR?CSuAYj|_#ldd2>Y5dX=Z|5e+d*rLsBM2p)z4|mYAI3o>Z60|$+j>+j!9^NWpO#@#SvQ$dBc}^hI zKQwl9`?K|zVnxR=T%PvIO~9~M8v)g@a%W{9MhyWWvyL*RI?Wr2ua?p+`X9_cez+D! zLqVp@g?ca{E1vd{AE@0EvXxOfK;TcTgq$sbx8ov zqdv5MoQ4U_p+@UF>OgzE}SZ DR2F>W literal 0 HcmV?d00001 diff --git a/classtz_1_1gl_1_1renderer__info.html b/classtz_1_1gl_1_1renderer__info.html new file mode 100644 index 0000000000..3e04055ccf --- /dev/null +++ b/classtz_1_1gl_1_1renderer__info.html @@ -0,0 +1,412 @@ + + + + + + + +Topaz: tz::gl::renderer_info Class Reference + + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.0.0.2 +
+
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 iresourceresource)
+
+ +

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

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

◆ debug_name()

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

Set the debug name of the spawned renderer.

+

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

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

◆ get_output()

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

Retrieve the current render output (read-only).

+

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

+ +
+
+ +

◆ get_resource()

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

Retrieve the resource corresponding to the given handle.

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

◆ get_resources()

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

Retrieve a span containing all of the specified resources.

+

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

+ +
+
+ +

◆ ref_resource() [1/2]

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

◆ ref_resource() [2/2]

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

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

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

◆ set_output()

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

Renderers always render into something.

+

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

+ +
+
+
+
+ + + + diff --git a/classtz_1_1gl_1_1renderer__ogl.html b/classtz_1_1gl_1_1renderer__ogl.html new file mode 100644 index 0000000000..dc1ad9ffe2 --- /dev/null +++ b/classtz_1_1gl_1_1renderer__ogl.html @@ -0,0 +1,360 @@ + + + + + + + +Topaz: tz::gl::renderer_ogl Class Reference + + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.0.0.2 +
+
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_infoinfo)
+
+ +

Create a new renderer.

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

Member Function Documentation

+ +

◆ edit()

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

Confirm changes to a renderer.

+

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

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

◆ get_component() [1/2]

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

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

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

◆ get_component() [2/2]

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

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

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

◆ get_resource() [1/2]

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

Retrieve the resource corresponding to the given handle.

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

◆ get_resource() [2/2]

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

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

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

◆ render()

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

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

+

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

+ +
+
+
+
+ + + + diff --git a/classtz_1_1gl_1_1renderer__ogl.png b/classtz_1_1gl_1_1renderer__ogl.png new file mode 100644 index 0000000000000000000000000000000000000000..3391f3c0eb2d392b615200e1473ab8a80d1f21b2 GIT binary patch literal 655 zcmV;A0&x9_P)vTJr#LVva2S`&=)l0h|Ns9}lGCUF000SeQchC<|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.0.0.2 +
+
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::gl::AssetStorageCommon< iresource > +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..7915887b32270bf54cdf16aea0318dae83cec3be GIT binary patch literal 3854 zcmd5kte3`{!G$wZ3<)-`cUMF<3OH zya`sC=-VoIa1rhEsp(WeOeJN0U=3n4GPJIJCTi`RI|{ zGz)prOmUvrv2k9iKDj)Q9Woy+y*jx4IW}{d=iX?WL7(6iUM|Pax7qSNbD1g9QU`A7 zWMkTNkY34-^#02E#>)wN4(~crStW#)dD{%)8LLijX>Yad#}IQuT)5fFxbCUN^-WEa z_LKJm!#@;y*tQlAJvGW25!;KCns>C-iU-V*=%37ayff=jqu3BNM`>O+U>1AKeK*& zA>;K4>KVaKW5!Zzyys+7CbIiPzQEw#yYBNDX(#Rv^ z;3&%Fskv}PsO_q(U+u=y2j@^SG6Vs{^e3A}fcawH}0L4qZU&-I~`bJ#X0$pZR4L z!x4Ka=0{Z!&$v`iWu{3vX6U^8sU}PP zdIMCFmw+OyOuLq!V!q%qV9)rNwc?>yJ1-T*`$WYu`nWeAmNj6kkPETXDfF;;+sYIn z^pBM42U}6$vjKiI9q}50PIc?nlj*$d!dlw;qVk4nvzloje{*a^EG_>Etomlmy6zfFTA4%Vta3Yk}vLM{p9e@sBB{CJJHcx_}Jzhcmuv}AX0 zfc0;a^ofXOWMplNmagH3%Z@heIGDoK10sB^`zIrX<$L~_TtX38SfdMa`yh+!SpATP z`vm_Js%tC~kMDrUZ>QCLz4||SkjdkMjsmz8JH^~DplRmfW2GCT*jJ8~7U@@z&XALO z;XUfCOU|Uwnmz(={JrRHgY!a#B>wJ-&o4y@1!Y@E^q}#>MZju}8p)#P2v%8PRfgY7 zGP5Zxge!gvXPCbf-7F}xhhca}I}JjMx&)Q?k9gO+zT}0`^KN|PDip!Xgv+Sd(6}I8 z3CR{gq(tvhrNuJDEW*Oa9b39`$ZV6*_#o5f^Sc>U2$paeC8aPEy&+V=t9<@6@sPH; zGSl_q!dtZYKCt*5gtQ#7ZjpJ~7|Pejj6XQ@L`*oxRhA8FpNcxw2vwLqLvYJs@}oCP$!2)9(BPw!_S5TK9v1}_YB>VuV**~yQmvLKrv2f?Y`F2%mHw9`dc+HESR zYq7M`0?Y(qVW$t;?~EE_6IrN?t+`1n0xAMF^f$mkj2!KpMiP1m52}K+VCuAY1Xl6`=D1*ys`z;1j2Zw<>Rni zJU6r6Q@IQqddw(P^)8#c@D9g2H-z(lr`*b@w(4FN?WaP61IP61+$=K%7lE+eUb9Ub zK9{Cbm>J0Q=|6aRq}iUKN232Rl178Ar&ez_%TPeq9CDmYmQ0*sr#;lfjRW z>}m6$uIH-SmE?K-S7&e1jW96GsQaUrL}0|y4Fv4_V;Vt*!AyMMr-NUa0|supt1QWcc?9-A zPN+Vq9~DPJux-AKi`cD1HpF<}JHU%0<3oL>yv*{w!uhSdi8g&JnUvfYse3y)@zlIW z#b~d=4s=z(f)bXEt}g#ie}_35ZH*x61WCB6F&$BLJed33 zk)4EpT?ZkjJlz8`Ca3)TK!9s*j;rk+smoHEi?%Qh@N zp^tSNdk+=7vc5hY>-9;^6x}A5H0M|Dm_~bF{D_W>$v_oImL+Z0ImZ&dzzWwJlIU}S z7LO^WS>0Th4T)a${F&9TFS8+y%}t8i`DB-;nb-6~iK*-_VJ_S?Nv(WVT5}w%=kRQC za;Of?IGK&+_oRrq#jspa55>C*Ns;W5371_iR1pFbNatH!TbMEA)T)fH95c`n4TWy| zb!)h@)(Ft37}L)bJkI{ zdO#`Qy||y&V*Fh6wEUQkfo4LNJTpyN^UpKO)HRZ09*Fl|k6l72t zVn^YaxhVZX*IY51DVg_}wSIG_18G^a9%sOBZ(W zw#~kgrrFA@j&N0e)62*{Lt6_}n;%Pf9c%{g-R*Zh1JNH~hFi(F@Fn#>)8V8?Pw(KB z4@uH(QxpE$10fg7I36{DlB)Tn+rcpK6SjM3nLT$+^I|9xwU929%J`b*5pj4Zm2gAG zUAKgBrHWtQIb{4JDXGt5*%Dp3nFcH{0{t(M-e^cm_eZLht{SEfFcrWwpjx`CLHnK2 z^OHt>@VvGWxG7c3+a2A@J^XEs0`KM;f1dx&b~8fpYmG)y5PNi}>nyMYV!teDymQ_~xaoZTMa|M|iMaC4Ow z(FYT5fA?OWsefNgmX0eC_z^Hn%#|1<`qj@<;p&vhY{k<{OUfnGiXq{uKH$09u2BB_ zQo4!?X>5}cmkF{l?#@AKL|NNL7kStZqGReq$SbKbL_%$Tr(p{YqSUN(tCIH zqLR#?l?5)umdM}E&dl1m$J__2(6;G}q7knEW=a42M4~vIFt^x-hVO@A7UYSJAcg;f hR^0!}-aem*&Id;?+}kF^ftxF2{~p)f1rA3q{tGqdg0lbs 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..d268993fe6 --- /dev/null +++ b/classtz_1_1gl_1_1renderer__pipeline.html @@ -0,0 +1,140 @@ + + + + + + + +Topaz: tz::gl::renderer_pipeline Class Reference + + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.0.0.2 +
+
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::gl::AssetStorageCommon< iresource > +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..d0c2e9b9da1d5ca5b1390b407dee36c306d9efe0 GIT binary patch literal 3841 zcmdT{X;hNi8pfe)5AG+G|VkVj-P89+Zy&c$RtE4JEW6uISY z$H$hI7NFnjHoF8ETOEyX^8x|CzdR5{!W$3>obG)1ATnNIDzEo;X`Kcr>*r?=WwMcp z6*AllpXo_KdO0DVwDXI}X>G z&u9;Y43X@Rxa;*Y+H;;GL3Cglhrj-DU+dGRbyXRk9VAGx{JEf7qPMJlz?HImxHQQsvnUAr$^K(A zyRRiBt99(axwtv7O676bAUKI->N%nCIZSFlyCzMs=R=D={Q!$k$@Lf2Q4^ldj>e0B3AdWB?jOLNLq`DOL zv-u_4wUjGXl%^rx9Q)$fqLy0 z*09gQ1XcBv#$q}F6IKw?JuUDr3#iVkY#RI%KVpKfaU4ZA;e`i-DmMMxEzvZT2~Oag zAI4;I(dFZ{gBY<)oNLVHsU;`2O!?i}fFzZ{FnN8U*e;qYHt0`we0n$X#->p?pM@&X zt);tj5+UpR4bc)GW@<M2dX$s?uz`WH^;$|6XP3q<68v4})D!6e zotr3)N!9x}Y75synE`^^dov=sP(j|r$Bhh{MT;1)PZv&#@V%~N-H{VPs3mt%^>eBO z4>Lxo9{CC{PAu55Fnf&ovv#aj(C3}Y3ac2a^)<=b`Wmvu^}P$@8@dvVRjxkojSn0P z9{u!NvFK{CwZn18HJM4-D&AoAyF5PV;VVC|`nCT|R*@H@ZSoYAZh{sqqB<2EZ_)oJ z;8Nt-0#ZKv(~Yma|BLJFAxCWC>f))A{=z7Z0$F>Q_9|a=F4wGVjXD41czL{P-C^pF zu4i;28;2~Dsv75_igEtfLler9Q(`C7z-_v>3h$?|?m5a@F+vu zQMyP4AHG;Jb%lK|Ec1?WTa{MBA6ET8a3n5(8Q5sZuGCQgc4}PgT`seU(9CfAb?LRY zirn`bLmx_#ZoegT#u+|F=c?J*Q=0VrVjPT7I+6Y~Si5gjB<%xt|4G+|%O*K7Elvvs z&AX#@hVU!XmKJ?>&L4?~HVEz@sTa}>7$p*^HX+a$wRB(aHc5anGb-q<0+OId^jX=f zUZ60@CQ0sE*|j36n%BO?41FviKUD$Pvomg>)eajF)($(|ilf2mSCL@#w8~Eay8^KE z4ZyYo?RUn^+KyQ}n3Db;KqV3NA%@?8RoHOKH*s-+-JM0*YU&HA7T58Axg$#;4So zTWZF09Z0Q?!qDb@AbwIGLbOuMR7D0XRoHQ`+90QN-lVZm9tmXLBA`_@1u(q$B_Vip ze!`A&bHKV}9@xu#te5u-)48~!JF^egY>A1+BcM2V!oGMP&Gb?#3h>gpFbO|eqqErc z+J{ag-D|BATp$6{oLn(S?VTq(Yx?1n(%=NV9j%~=m>S|PpHacvjxyUCe|kj2v;Rv7 zI7mNLd1BvIOJU5R8nlLVXEc2B`V0c5XVbGhydQ`JckMSMi4k#KbXYFg*J8uBc$dSPwNp{jSNP2M4WyB5SQwRj^f$M0 zZGCmQMg)%n3=FU>M%wxtfc86Mc=J7Zy>tjX%Q+4#vBx(EK1R`MuYO4^?W|72S1WN& z1LMJf$1-)OF|la;S;#PgdV}|M98ku5VB8<3%emLiCO5pmWLvllAo#lJeZ1@0I^3hDDLE6*a z8_=Ee(sxY_Sa<^To?yLvjJZ~F^kHq1;Qa;D;HBJWdU7G_!r8fU%4rN4H7NV7xo2n) zzDgVXz(zl(wE0y^j5qd{I1yWZ#u$Z7N$vHD>DYP3#0ODMZ4QBW_*HPnvgqCc?}FD- z&@*Ri%~?P+U*7gDnnZx$27-2g@b}j{D5_rq(maiAl&7S;El26_NSIxo((@m4l$5t$ zQo0EAd~Yl&viHMZgI0AQU5tQJ5-D5b8q(jz2skYLjfz%|UWUfR#n-`y>qlIP!N%sK zY{=&}x~mcCUE;W5&Rqn3;ut&nR5;Fv8x-*(v}I?M>IvhC0CfpR!!((^SZ2QVoV zAzTttecH&`|E>rXL}n4~^%fyoDt|Hh(Im6s?Ubk}YSya=p=qfTo*OPTBxT=q1{@Nt zY%CI7^AQMnreg;;&iF1AWQFSi-FwMR*@(g6o1)H2T$bBQudQ$x6MHZnz+(ZB1_RM7=360vr=ugEx)!B$;lKksdACWJO$5-?s z${x<%ur677*c_vH6!iN|y27^eHY7~4!UhKfq8yVzuv4|MA@V7J%&ovwB9zFYJOwt?PK8^2lu8|w% zsKG5Zww;OVRt?Y9wLPg9n-|_bx$8}Kk8I#Ac@f6XBbSSS{f0~*u&5Qoaxx{0Cl;^| zEFKp}B_A04$-aY=3ikJ~ciRe!U6^-p;e!svW^=E5>%4K-NW|cT2J-`Laq(7aOp(DA z`n(Bh0MHK~CPRAku`8Wd_F?DmmXTkgbbhqnVCVpx8_{4dBr+aMOcyWHw%X=Ey{LWv z@VDd8o^LjgE6)?+HgB~^=dFxpFKk+3KN38%F=J8`7emHfmviv0SdMJX|AERc>$m}D zQkvp_(|X7~BqTjF6N(~CXhXyH!Yk&p=`vbQfM75-AJDh4C!Nf)2_VsR|4Q_FVVCi6 z?9f|Z{Pd-wQeY``^`=EYq4%n~FmXtd%o+7q*d7x8XUZp_RDv1P+V?^*=zbp z{20Y}Wg6NJP}jC*GG*kB#P&KP!DGdK#eTmfkHP4cDyP*38{GN=Zy9oz*DJ4@Fz|{V{j)dAZTz5As8a5+9CdBs_}v zEKPYJ*$b3!+oUQnQU(SX#&Z0`+(xRFc&WVf!cD-z70VfB9Cx5l{q4RezdNp~NXj3x f-U6b%l7YHhW;IID#DHL#x 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..561584bad9 --- /dev/null +++ b/classtz_1_1gl_1_1renderer__resource__manager.html @@ -0,0 +1,138 @@ + + + + + + + +Topaz: tz::gl::renderer_resource_manager Class Reference + + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.0.0.2 +
+
C++20 Graphics Engine
+
+
+ + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
tz::gl::renderer_resource_manager Class Reference
+
+
+
+Inheritance diagram for tz::gl::renderer_resource_manager:
+
+
+ + +tz::gl::AssetStorageCommon< iresource > +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..55dd8f412ea779e78bfc04e992a57712e074259d GIT binary patch literal 3866 zcmdT{X;f258V!U2u?1|=Mg>7dfv^NbY?jEPV6(|$2t?UkT11wxgiQj$L9pFGl!yjG znvsABCZGZ#>!(BZ`N$D?Djk^PJLZ%SZA=+7@sACQs&xY<3c`hXzf#^?)?sxt zaVWNJ0)NZa5)Yl_zk(9c4B2B7uUD7+Sv)O739 zG!pUjV}hH7@5AO>r}Q;T#*a-)M^2AY6O)*>=yv+l$Cn{V z#-})!7%XQ4DSBRi(zCYgxKkl38z;-@{!`(ns*j6KzFxvv`xPV~^Ww4GYG>me3YIMU ziqZtDN4s|>BoY<-ik{xB3D zI2APUF|U~aOR>4l$)g)HG1+pSikovr*r0-!eu|r~|97&1EJ9llq`|jAqMeLM5HR(h z0=Ch_#lr+7eURxLq7P4?R;2I64S0v>d_%*_*2aqsKa4H>jl}m3VeQ6&MJhwlCN8~c z?2n`o-MVe1QaLa8pQD9>!N<8}mDo}pIMt*;_H z!eNDTO1USttfGU+?Jk<2z3X=@v%Unh+-?t{#-w(k;t*DjbF4{N_8_v;)WV8_Q3GDt z)PY^mU)_|jroJP(t7!rs(0f5|W~VW-Qc91VDJ(ETV3!T;S1J}E` zudhkr*thfw(#oZG>!uW$@f>rheV`M7$XRBD9&?-BaC4h|U9G+5HfjJff}7ds0Oend zMh$l-2)3D=4HwI#G;U>{ER15he}gQ?m>03!k5kt62HhC~lF*p!8}p$wyJ6?=G!S3( zU1vTlXVo$u;tz&qIluHBk{y|^$xwHjlw_98?#_8%5zb0}&}z0ks)mq*GdM59s9Jus z$_PURrF-qnwI0+kdIlA2yvd}z!D4hLCP)}2@3IuuSo>QJ zhc~=_C_h9<APQ4m1N{0=d<*tHq{zO zUb_(HXFJ*c%MIoq&M6dCyXhj6TEpbE|A>U7UQ};+m?g#o+2-?bZc~x)3W6rQneZv} zK1Wy9hnjZTk6qHA*+?4sTm!q$Q3jMexae|d8{ilYxqxGg+p<|YNx^49OoR0%K>H_E zoN-Ndchsv^5XA?G>L7H-7=hrnC6TU*b(&jhPKaE^^COLz+Usq3Dxb5CqE`A|vGLu) z{b|-mf7gDJ;)BhR*uL;O(_m+CZS8GTG>EAHjDJJzB$BC;&@eFIT@=MsF}rW+NoN$^ zOmL=j9`fSKQaS`e4Dd5OQRoqY!sy&0d*z$7`jTc>kp51PCXfRt`GK;H^yV~#;^u3; z5CT|c?|Kx39wvZWfOwG6Oaos5YW`}7q)6F((>x~#+YPkg_=#J`bdi98{Tq@}|K$d& zm#3~b-|}2?WK&QJN_t4{@*N&RT*(i{L-qGU*Yy!Q?o*h;IVu#Y&kfG*GH~*1tKf;^t;?t zq2n1|7mv^)7U_4lC@y@@(<9PmVh%(=mCn%QtF|R7JkT3XNzNG?ejVqm&0XRr`@69z z0q-B8Yvw=bvB-+R*xf5S%&x>0{2{n`qxGwS*cEN^k8$RWsE?g3G@;>cTnVtbeuY{- z+(};6MtY$m4@hX8!l)F7Jl7eu-J8j3ySD^Q089~J+aYSZw*uu~jBzC$Qg*{T1mN(} zHi6gw^VAHSpt}pJ&(tg~M>CNt+QQ>(3Ye@mZrzdoMaGUK2)zTV_m!#V=4)7Iy5@|U zu3~O7<}WP=OG;Z^+19+T)g1dge2CCMYU}hOb_CIPCW>aXhcXH6Sg-nEO39#athV3V z;+Zh}j^=`A%=^t(s(bj@?J%6=5yq&(E7^H%qP4DgQY?PNr&?jXk~JX9; zp}3%~F%O6z;$9xFYTKIfVxov|-`6t@o*?@Qc1^Mvrzzcag!)Nf2amjt2hypDy)jB>(^b 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..b68f40027a --- /dev/null +++ b/classtz_1_1gl_1_1renderer__vulkan2.html @@ -0,0 +1,138 @@ + + + + + + + +Topaz: tz::gl::renderer_vulkan2 Class Reference + + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.0.0.2 +
+
C++20 Graphics Engine
+
+
+ + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
tz::gl::renderer_vulkan2 Class Reference
+
+
+
+Inheritance diagram for tz::gl::renderer_vulkan2:
+
+
+ + +tz::gl::renderer_command_processor +tz::gl::renderer_pipeline +tz::gl::renderer_output_manager +tz::gl::renderer_descriptor_manager +tz::gl::renderer_resource_manager +tz::gl::AssetStorageCommon< iresource > +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..3be1054cef5529c1690165eebc68bcf4b400be17 GIT binary patch literal 3832 zcmcInc~sKr8ip*bZfZH%qL}97xKwJ5x!{7@;zDllGfG9hHszL@DJrR8V>Kg^CJ^mZSGVN~4iWZe`?_q8K7BaDOy+&gnGwuX|3M^YFcV-}gK32k-Md-^*1` zcPHib8tWkth_Z|GAru4x6@my^s{qcBpI&VP2TjkTz+st828LswM7WISrIx0KXSe0N z9BXQ70_V}Ux*maR>ta#vXbAZE%gbUF`85QhlIn8E0Z4#O<@MewuTz8E{^j`tne6@K z8cmnA7XBUM)@YtXZKlCq1FvxsK7TZ1W`R74zoAGA+Y`p8JaOhz9(;`ig95vrLD zTEi`difsVG^?DhrrQeY(w3QNw*T;Tte#YETePbcv73;l5?cG*k1<}r@h@K^@bL7>D z?^*~3+|NYRy-ZxG->P{1aU2t$%sUv%Na_@Y>AyNkEn~G;NskB)c&C~(@!gY&W)>Mr z?ZM{LbpbTOBd0DL)~=U-n~EuYRDfR^BrhfNMM3leZ&~XAk|I4+o@AL(5|lh^H`dtI z*L2}_^QdiTyhuffcHC)DC5a2iq9lHjC+Zqf%g`58;rUAqn2^Crd44l?+g!qj8uPmq zxXS*I#cxu4-NPGuPqN7sHH0Y~hxZ><^M)r{t+)@Yu-NKm98(7Oe- zU8kKUs_Q9?QZ_l}Okr5(^n`y!KusQvIry3Qeh;zMaU_aK6gUJ`ZTY2hQNutsaf0CT z0GH7nRXI){j1kMkxkg?6sws(0Q`qdyKyigrOkQ7j@+%fHIp}j&LRu$~zGcLX&&532 zL1%mL5-omsYY?^Q+mRaf0-@$er!q{+;2$3N)r|1c9yD+;*65WKaaMWUGU8d*#LoFF zR_=PR8dD!&3zDC5zjKdikxh*Hf0IW{%HxZhcSsCWDKH)5dJfbvlL6D&{J(=uD9Ly%e2tvZvSvrm0}Rb!shiyHbr z8Hv2bKWwWlUQDM^;X2^9a~x(X~HPL?mz<4AqD~cImZNTAYNoastP)$S$P^~8cK@C+I<(~eC7@Q8+q6o3jJW)d>e>OTw<+N(mVvtyM{7)_?6 z3!RcNWAH}V2DK##-SyM;8A2>?Z<(KHn@6^nNNi=^3{V$;M(jfJM*UDnXrbP!(G~pJ zbtUI`3d~ZZ$Rs-9*D}8Yo4>_75_irG zfYCNXud15fjg7oFpIeuI1$+>5&Tg}H*lH^FU-sN}lo4Zj2O=;kcYNQC6sHv6N00AM;+8nC&r{jgyme}>6u!yZ5V77c*+=OiL^Ds zdf`DKJqv-{mm19zxq^?SXMenzbgPFPK_~Z!xk70I!3mF0;^oVq@UM5G`t6@-ZP9yJ zi~B->`H|4V#mC{|jC-tzp%=})mXDAkwB7cx9y4@(m;ve=Jl|a~idRvzUp13s1>FVla^^!a zE%Q39>~-WG(b3vvWe)=*Q0XTkVG?|!k=U~byO)vj`TY~c8-T^Gq!ZQ#Ua`+Fj zFeOTxd=5OZY$pM*1Bt+ED)!T?SO1C!-dy?(>W}@tRqE{!-1Q}c#MH9s+idTGXy4~9 z-Q~vp$bry_3X2FLG=g*6}X`GwGpcTODG@~v5c%vS!1r##X(!WAoU)qm40mltqoSamlh zV&Rqmkk$%AbB!x>jrl$=D-)FK4pDa^PidWH5UUwAWx2LS4RCq0M2R}MxdkAZ=QWr`)R%M31 za5@OHvK6G}!OX9)$zNi_jWGp%ob_^@4)ltnyny3b9ne*oY^ZLud431<{Y^IX*UabO zMb7^2AY735y^z(XkEQ>ObVitnyZ;q%G70fVFle)K@t#m*mxeYxHWnBAnaI8_VbyuU zvJD)Ys68*)7V{P-M$3lM^4P>dc?0^Fe>YChLmQHi8Dy`5$zb|+hAdRS_XfD>n4K99 z*pM^eVo@D>{!>VD53Y7QjqHi`k;R`Z6>5{>OKRCsWvrn(@$3FUZEw4YxnREd!kd2sf>a}+38P!^k{upTf!_L zQwz8!*EE}O4X|y}JGE!YU8FZ1fwpSGSU%+p@roDsg3S)b@=lMpZ1*?!qUS}79q5%C zQdSR}#H@0LJOqoZ8x1dxNwNQOpQo3`q*#JcVA0tW@J{{i2nftAG1P!uxa(@Dx224k zg#y`zG}PPtO*k0XKT|sGuQd%roZ0UtAePJ52Zu4FfQi8ZEBnAfY#qnknr6<*3Rk7S zKQOFTf4M(CMExuy>I@YjcI@&tQcB2Bjh6uI^SEorqLQ7pAD@RA5f4?S+nMHr3He&t z16HQIkAp`7MCcNfMjWYo-SDR6##zAM)ll#_ibAO?mUg^9w*!EtH^pHPSr*vjARAH+ zifs)_nig%LW#ip=+tk&NzZZo!EM|hDZnt8PdzRAS{ng@@XR8rZKxM{Cup1$0Or$>J zkL@Rkd|E0Emp45H-ar-jZbT0Lapc0%1y5H)&_ciiStrq|P_B}LMMCiXp4)lj;w(&E zWWSgmX;=)~CC|Kd!MXuVh?XY=JLnvgtHIwwCg^e{fskcgnZmgfGd}x~Q|H0|s1TRK L?uV$3fxrF-`He$k 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..fe68de4969 --- /dev/null +++ b/classtz_1_1gl_1_1resource.html @@ -0,0 +1,283 @@ + + + + + + + +Topaz: tz::gl::resource Class Reference + + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.0.0.2 +
+
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< iresource > +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_flagsget_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
+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_flagsget_flags () const =0
 Retrieve a field containing all flags applied to this resource.
 
+virtual void dbgui ()=0
 Display debug information about the resource.
 
+

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..8f618db389f16f8685ebccbb801b55416c4a8e5f GIT binary patch literal 1874 zcmb_d2~ZPP7~X)2g`!5lBcQSAQqVvVBp%?1)hrSbGL8 zyf>H{V~imPG9`Hs{U8V>1h{FsA-L{2&A$Y0mOh&T5WQXxpnCW{lY8yl%B72U&*QhM zo0^)ydwsQ4#*uSafSXv+LRX!n;rHxo^WPa zW;D|RpU1x+XUMUq@|`uIN2FyFX0!yk)0XQw$5Lh@cPj}le97q^y0&icyM9+6RryER zzVWx84p%guiH_}-==PP13!k(G)dkknF>702dlKp^^KbSI4q<%)%(*Mrw*_M%%9Sx= zwsFkYV$WwG2F=z|i@-+x(H#hL&OJs^gz`c#!MfbHN^rz$j{OwfRHQAYezm2-@RN>q z@wETzcHswd#1ngyUhHa4T*3qU(C|}( zaHx740u|JS3{PL=NS<=EK=O^N!7Yvj3T{q^K(!$-H?50`UQ4f-zK8$@VDJVW*%l~~ zg8c=;u7jT%+)N-F5nsdz2c5;>d7>_AE?lAj%n5)wp%AuD8m*k^*_jArP@a6&gO{2G zw17Ndu86dj@6AKjcPx$4x{XS+u@_9Xqz^Q&G83a#oi-D;93^FIs|;Y^C+yHxESodCRwf*&}7bc*T$%Pt*fQ+&i{LF)*}_ zg588ae1|sW&TbFiM5*`4w6JbJN=W}6f_c@TzKfcJ^@IUyxm6{ZchL+WzEx!aF98DR zfz|on(O+_!>_*#8i}yg{Qy{~tgC=RHTWkx|j)8dDw`n&(ts^TlKsy{jwXICPV733H zmBXT;%dhO9Q%AqY^;uDUi9~vZEe=N@o1=3vcy=b}HbT5uA)P3?7z~0y8mxl#-M=t< zvOg}A?=6dto?%w1mval^$Ik?T;nDNSiRh8Q<)!2V$FQ3lmZdJ$f#rk|Njgbn9^w@x ziQW>2KrvR7fX7=yl~m&vV|l5#`~(^uEE8sC=5x)DpMO9zN6WCE*D7Nji&D~yB{NIi z^Gp^rVT=+>uFMrDbEPj8iuyy@42dFsJRC>!CEhR^AF*^NvJL^RS9_CW?97Lp&#-^@ z9}ox@hXaB}qsu;jsB1D&Z;2S>4nye!4c zF`qJE9Xpg=d)S)fHW18?J72UxV+veB|E^B>N?=AAh-$3CBO2L(J?}2Aj3|FYxn%&{Qx@~Dma;<}VjU&fpX9GAFs@U9uz5+$T3+J$Vf(Slb|9tHn zW+#j3$LvuxXp8wBA8v|k7cXJ-zGcMzutCM>6UkOVtt7ksN8pm`=QWanPDh zS7bYyW-HL1y!9x&90QZ256`QaRK)LbQKZ1nt$XfSZME=tzq~;?(%Q|U?+;cw-B1y0 z5Z?>RyZFHSeWgB)4hbBLD*wpqC}m5PsPfX5Q;3T5f`Q2W8FL)5#dittkId>PdHd`+ z3w2)GWpV3~hh^$eDzn&9&Z6t!@{WVKB0=nYJSi-Kk0a5?7FA%~8^V;ey9#IgY%k@) zv3+5-+C>%g+YZ7<*jBLHdA090SE~%VSIqzb literal 0 HcmV?d00001 diff --git a/classtz_1_1gl_1_1shader__info.html b/classtz_1_1gl_1_1shader__info.html new file mode 100644 index 0000000000..80e33d302c --- /dev/null +++ b/classtz_1_1gl_1_1shader__info.html @@ -0,0 +1,123 @@ + + + + + + + +Topaz: tz::gl::shader_info Class Reference + + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.0.0.2 +
+
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..e702f254b7 --- /dev/null +++ b/classtz_1_1gl_1_1vk2_1_1_binary_semaphore.html @@ -0,0 +1,144 @@ + + + + + + + +Topaz: tz::gl::vk2::BinarySemaphore Class Reference + + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.0.0.2 +
+
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< VK_OBJECT_TYPE_SEMAPHORE > +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..80eade9ee7cc8dec0f072b8dce39db4afd2bf782 GIT binary patch literal 1724 zcmcJQX;f236vtm4ghnJF5EKy%hM*!Cz{nz+5EM#6Q^bH9AOx*OqzQ{4n?j(if+))a z3m6f!p=uS73Q_h{5sIcFN)bs|1W_PDsvyCvefIQtdQLy~bUw`dX70K3;eY>kCOg32 z7p-rh4*&p~M)hU@0D=p17D@-6pOZvE@UkL+9^|9dYGIss^FAT(?iF_@yBPCg(S%Sa zgwF$^r&rsP$+$6h13e!0IwMKDCQR&sT1nm@ zb%yrQuXUPiV_+<-wT!4LT2*}q>r!cs9Bn0B^@&hRa{OsC(adn`Pt8q^atG?uATd{)uQUIWUC>vt8B-X)~mc!R9;(yeEJkO zgfN#)I&p7)i(Xete0L^sxuAm`kUF%vo*wC$_T~bCGvL#Ou5=!s+RDb(_<|~#J^0Fn zWcv8*U=8lWb!6PC_JrknZ_tFekPu?Cg;YOXw1E5ETJiaWidQhb&AMbRk30qeKMtQR$%Ise#32a z)L8~h?=;$Cxp?xyjj9?)9y_q8w|dtfGD)UlHoj%=+^zb7X~W?rGpCioVZS6IMTP6b z6cpheW4RuB^UPYNaqlI`@M@;Vx8mY6<(jiZ=3d0M;HsZ)=lQoK{-#WlKjoZ$SySB2 zB`|W%4Vpg27DX?4+{UzJw*1)164sBX5mOuG*qaF#Tni3FlU;M!U}B#DEnz(-FB~S@ zr}UqEO-XVxBo~3wNHeT)X$ru=GS_U7W z>A%EP^aU3NN1+iTyJwO4Kzlw2j4mkrbbtsxz;!3Q-L3=dfGJ>u3V;*16b3-Cwgas5 zF~Ab4K7hg_0bK|LKpNt|hE*wu$|9(U;b(v$-f9;)WMY_ymQwYdh>P*al2X{tA`zIq z%c5w`=HBFl5# zh)T-{Fcfj7RE%@^dg+WoOpnJm{gTGc+V2%_?~6VciO9Z10JhIdSj(&P4&!+FP8s%a z3WhW<8?oJT-RAfdUTI4q)`98YwU<)dz-cd;ljE>Fbq08{nant9HQ~7|K%{bs*8F`} z7FXIZp%ZHf&0HXj_C(`nm&dT(Nmgrwg2IK?D(N(Rrn5ZSpg&`)Zb>P+nPprfdS^qH zvlb_A z@JPV=3|z=gTMbO7Ve&hP{U1vEPv3+)!iGyHhS&EgaxVEXa5UqOHpC;T3~M_I1p5fW z{CWzBp`AAmk-ug<@(ktFXm^b{etA?{bqh}#O*Wz_9;%p#XWGH=neU>0Pm4;m7}j3m zhL|W{N}xttMQM+(vB-;UBgoFxh;OiXj+c|Ow42tkrSG?nQ=f=Y*SNU)>r{=$0mIX7NPF}!e6Q#&IXwLKTq}DYfl}|&Uq5IvKn-AI#BI8*dG4T$K4mQ|gwKJ%4 z6P!)5dgVEo+04a#h#FGm@QrB-gYu;@Btx|v%Nk4S4ZB_;-L&}5F>`xnv^f0diMZ4k z)AWm-bqHu~71@CT>5;?V8`l)^ZEL~(f + + + + + + +Topaz: tz::gl::vk2::Buffer Class Reference + + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.0.0.2 +
+
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< VK_OBJECT_TYPE_BUFFER > + +
+ + + + + + + + + + + + + + + + + + + + + + + + +

+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..4652f625c8463471cb8f52c366c5ddfb9bd7fc2e GIT binary patch literal 1092 zcmeAS@N?(olHy`uVBq!ia0y~yU`zzE12~w03f*F8(FfeDDeT9L6`Mjr#V@L(#+qt(VJyzgx znY}D))&Kw9=9~#fj&3gQG&?tKS8v(ah9ncQ|+7RJN@R4 zm$%#VK7ahSFS643&yBN%ucx_A`<8RiV|{gPPUTCT$yK}gva+o<<;>cx*21~l(j>Sj zKjsbZ?G5wV+SjfLS9*KZH@9cD;^mfGiC3oV+t<2#r>+0)m+O*#D2AKlTuL^{392Z* zu&U|pqVUMixgP&}Po|bwGiCGjzsz0s{`H4=p6#-~{bcX)%zyRaqm4vdeQ#)9-G?fV z-{Cb%yL2-wG-~H2KbpSFbyK|W(c;xd{>c4vg>()|v)qJgOtGgCHlXa{zi4OQJR=H zz~I-C$WZX)v9btrgM6X{gUn7&zM~8e+$7i-;t%OFR0y>(9++&v!!Qr1?1KsqbAvii zkqzfzh6kQNCBRfeEhV4o+Je0_Jv3F-C#YynP!T`0L8VftP4(nt107GG<({9O2(^9p zo>86s`&-$&*zfk%Pp(N=sk}V8XYRw_{~u32-Yi%rs3d zZSD4x1!wPNRa9)A`(%TlzNh}vxjgGDe|k=}sBiYVWdB5~ZTXosr4`Aa&J@fR40W26 zmRELaXWlfqmsb1E%-S5qIO|#v->)94E#JH@t=1{4Vd2 + + + + + + +Topaz: tz::gl::vk2::CommandBuffer Class Reference + + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.0.0.2 +
+
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..15986fcdaf --- /dev/null +++ b/classtz_1_1gl_1_1vk2_1_1_command_buffer_recording.html @@ -0,0 +1,433 @@ + + + + + + + +Topaz: tz::gl::vk2::CommandBufferRecording Class Reference + + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.0.0.2 +
+
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
 
class  RenderPassRun
 Represents the full duration of an invocation of a RenderPass during a CommandBufferRecording. More...
 
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Public Member Functions

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

Detailed Description

+

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

+

Member Function Documentation

+ +

◆ bind_buffer()

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

Bind a Buffer.

+

See VulkanCommand::BindBuffer for details.

+ +
+
+ +

◆ bind_descriptor_sets()

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

Bind a list of DescriptorSet.

+

See VulkanCommand::BindDescriptorSets for details.

+ +
+
+ +

◆ bind_pipeline()

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

Bind an existing GraphicsPipeline to some context.

+

See VulkanCommand::BindPipeline for details.

+ +
+
+ +

◆ buffer_copy_buffer()

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

Copy data from one Buffer to another.

+

See VulkanCommand::BufferCopyBuffer for details.

+ +
+
+ +

◆ buffer_copy_image()

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

Copy data from one Buffer to an Image.

+

See VulkanCommand::BufferCopyImage for details.

+ +
+
+ +

◆ dispatch()

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

Dispatch some compute work.

+

See VulkanCommand::Dispatch for details.

+ +
+
+ +

◆ draw()

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

Perform a non-instanced draw.

+

See VulkanCommand::Draw for details.

+ +
+
+ +

◆ draw_indexed()

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

Perform an indexed draw.

+

See VulkanCommand::Draw for details.

+ +
+
+ +

◆ draw_indexed_indirect()

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

Perform some indirect, indexed draws.

+

See VulkanCommand::DrawIndexedIndirect for details.

+ +
+
+ +

◆ draw_indirect()

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

Perform some indirect, non-indexed draws.

+

See VulkanCommand::DrawIndirect for details.

+ +
+
+ +

◆ get_command_buffer()

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

Retrieve the CommandBuffer that is currently being recorded.

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

◆ image_copy_image()

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

Copy data from one Image to another.

+

See VulkanCommand::ImageCopyImage for details.

+ +
+
+
+
+ + + + diff --git a/classtz_1_1gl_1_1vk2_1_1_command_buffer_recording_1_1_dynamic_rendering_run.html b/classtz_1_1gl_1_1vk2_1_1_command_buffer_recording_1_1_dynamic_rendering_run.html new file mode 100644 index 0000000000..154f17f6ab --- /dev/null +++ b/classtz_1_1gl_1_1vk2_1_1_command_buffer_recording_1_1_dynamic_rendering_run.html @@ -0,0 +1,123 @@ + + + + + + + +Topaz: tz::gl::vk2::CommandBufferRecording::DynamicRenderingRun Class Reference + + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.0.0.2 +
+
C++20 Graphics Engine
+
+
+ + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
tz::gl::vk2::CommandBufferRecording::DynamicRenderingRun Class Reference
+
+
+
+
+ + + + diff --git a/classtz_1_1gl_1_1vk2_1_1_command_buffer_recording_1_1_render_pass_run.html b/classtz_1_1gl_1_1vk2_1_1_command_buffer_recording_1_1_render_pass_run.html new file mode 100644 index 0000000000..47a94d817b --- /dev/null +++ b/classtz_1_1gl_1_1vk2_1_1_command_buffer_recording_1_1_render_pass_run.html @@ -0,0 +1,185 @@ + + + + + + + +Topaz: tz::gl::vk2::CommandBufferRecording::RenderPassRun Class Reference + + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.0.0.2 +
+
C++20 Graphics Engine
+
+
+ + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+ +
tz::gl::vk2::CommandBufferRecording::RenderPassRun Class Reference
+
+
+ +

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

+ +

#include <command.hpp>

+ + + + + +

+Public Member Functions

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

Detailed Description

+

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

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

Constructor & Destructor Documentation

+ +

◆ RenderPassRun()

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

Record the beginning of the RenderPass sourcing the provided Framebuffer.

+
Parameters
+ + + +
framebufferFramebuffer whose RenderPass should begin within the CommandBuffer.
recordingExisting recording of a CommandBuffer which shall record the beginning/ending of the render pass.
+
+
+
Note
The construction of this object begins the render pass, and the destruction ends the render pass. This means all commands recorded during the lifetime of this object will apply to the render pass.
+ +
+
+
+
+ + + + diff --git a/classtz_1_1gl_1_1vk2_1_1_command_pool.html b/classtz_1_1gl_1_1vk2_1_1_command_pool.html new file mode 100644 index 0000000000..625b5d9df0 --- /dev/null +++ b/classtz_1_1gl_1_1vk2_1_1_command_pool.html @@ -0,0 +1,171 @@ + + + + + + + +Topaz: tz::gl::vk2::CommandPool Class Reference + + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.0.0.2 +
+
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 Allocationalloc)
+
+ +

Allocate some CommandBuffers.

+

See Allocation for more info.

Returns
Structure with the resultant information, including newly-allocated CommandBuffers.
+ +
+
+
+
+ + + + diff --git a/classtz_1_1gl_1_1vk2_1_1_compute_pipeline.html b/classtz_1_1gl_1_1vk2_1_1_compute_pipeline.html new file mode 100644 index 0000000000..5643aae8ab --- /dev/null +++ b/classtz_1_1gl_1_1vk2_1_1_compute_pipeline.html @@ -0,0 +1,123 @@ + + + + + + + +Topaz: tz::gl::vk2::ComputePipeline Class Reference + + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.0.0.2 +
+
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..f0afe5ba23 --- /dev/null +++ b/classtz_1_1gl_1_1vk2_1_1_debug_nameable.html @@ -0,0 +1,123 @@ + + + + + + + +Topaz: tz::gl::vk2::DebugNameable< T > Class Template Reference + + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.0.0.2 +
+
C++20 Graphics Engine
+
+
+ + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
tz::gl::vk2::DebugNameable< T > Class Template Reference
+
+
+
+
+ + + + 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..d0b35e5233 --- /dev/null +++ b/classtz_1_1gl_1_1vk2_1_1_descriptor_layout.html @@ -0,0 +1,240 @@ + + + + + + + +Topaz: tz::gl::vk2::DescriptorLayout Class Reference + + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.0.0.2 +
+
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..8c80ccff28 --- /dev/null +++ b/classtz_1_1gl_1_1vk2_1_1_descriptor_layout_builder.html @@ -0,0 +1,271 @@ + + + + + + + +Topaz: tz::gl::vk2::DescriptorLayoutBuilder Class Reference + + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.0.0.2 +
+
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 LogicalDevicedevice)
+
+ +

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

+

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

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

◆ with_binding()

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

Add a new binding.

+

See DescriptorLayoutInfo::BindingInfo for more information.

+ +
+
+
+
+ + + + diff --git a/classtz_1_1gl_1_1vk2_1_1_descriptor_pool.html b/classtz_1_1gl_1_1vk2_1_1_descriptor_pool.html new file mode 100644 index 0000000000..ea61e69910 --- /dev/null +++ b/classtz_1_1gl_1_1vk2_1_1_descriptor_pool.html @@ -0,0 +1,301 @@ + + + + + + + +Topaz: tz::gl::vk2::DescriptorPool Class Reference + + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.0.0.2 +
+
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 Allocationalloc)
+
+ +

Allocate some DescriptorSets.

+

See Allocation for more info.

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

◆ clear()

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

Purge all DescriptorSets.

+

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

+ +
+
+ +

◆ contains()

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

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

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

◆ make_update_request()

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

Retrieve an empty update request for this pool.

+

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

+ +
+
+ +

◆ update_sets() [1/2]

+ +
+
+ + + + + + + + +
void tz::gl::vk2::DescriptorPool::update_sets (const DescriptorSet::WriteListwrites)
+
+ +

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..c2ded9f2c2 --- /dev/null +++ b/classtz_1_1gl_1_1vk2_1_1_descriptor_pool_1_1_update_request.html @@ -0,0 +1,148 @@ + + + + + + + +Topaz: tz::gl::vk2::DescriptorPool::UpdateRequest Class Reference + + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.0.0.2 +
+
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.

+ +
+
+ + + + 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..5255435564 --- /dev/null +++ b/classtz_1_1gl_1_1vk2_1_1_descriptor_set.html @@ -0,0 +1,193 @@ + + + + + + + +Topaz: tz::gl::vk2::DescriptorSet Class Reference + + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.0.0.2 +
+
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..33eea8272b --- /dev/null +++ b/classtz_1_1gl_1_1vk2_1_1_descriptor_set_1_1_edit_request.html @@ -0,0 +1,246 @@ + + + + + + + +Topaz: tz::gl::vk2::DescriptorSet::EditRequest Class Reference + + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.0.0.2 +
+
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..f487c094ff --- /dev/null +++ b/classtz_1_1gl_1_1vk2_1_1_fence.html @@ -0,0 +1,196 @@ + + + + + + + +Topaz: tz::gl::vk2::Fence Class Reference + + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.0.0.2 +
+
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< VK_OBJECT_TYPE_FENCE > + +
+ + + + + + + + + + + +

+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..282e17e69a35c8a60ec1730aa3843ff77a1f54ec GIT binary patch literal 1087 zcmeAS@N?(olHy`uVBq!ia0y~yV2lQ`12~w0WWz$W6+lWlz$e7@|Ns9$=8HF9OZyKk zw=mEwkeGhv#eo9{fa1ZEE`yYDmIV0)GXVKuV9qrA3IhZ4DNh&2kP61PbKmB@RuFJ$ zcU<-C@BAOf49!lv-&*oj>q(aOe5-^5KQ`#pPb@y?c+N7O&&ZQarPA=>G?iM8?J6&w zcc^;GAJX;wRj|uf#qz@SX+>UN55C>5X)BSje$M`6BO6b?ImvhGP1freZwS75Ywpv( z`=*~~TN=`?%Rf78YsJ0SDbHm8J^N;t5S)7J>|H)PkD>>a+Ye{Wn_Aj)QsnkT->H$C z-n~uRxXZutLSjL6{K2xFZ7<(G{r9`~U9IT%?enJ;X6-atl^vhI?Y#tN+KrQLFPUzc zRPFeXyTs;o*^I;fd9$Bthbz4emGzC8trpuJl&H4l`qiVezpmXFDI3mt_WGKq*IHa& zUu${0r2glRmnH7Lf7f#U>^!{itKhffJKGdo2|gxAxqwJ-g)anYTY= z!?yjrQs{k6|F_#m!=q`%S7vTMxG!CE(pM{$nAyU=CVxA=W2yIz_z__Yv#9Gg)?sV)~d~Zwnm?MhVp7PZ{sf$ZTepoUy2QqRgKtL zI>Bnz+2+zNmDgVnrW z8;75MJvjf(_uCKWcii63Tm9EUozgTVXqSwNCzs00q(f^}ehTEN zo@_7B_5|AH`RU=`yyx%VXM6uF`*Cg6@A)dar_y)c{Wsr#+Wmt3^4+a*!u8QRjdx7% zzaV?(-QMkqJ{kG~msTIio%Cv|O7&aw#oG#Nua&&LFMp$ZhiPK;-7n8}xfCq9eJyP_ z%cL)6*9x+GOY^*sh;1+1lz!)3pY?X`ImPmi%X(a93%B)Y%anNUc)RFh$05DU65jS2 z>)oE0Zbuw=TXx`f^9#8}$DaPo&%a@(^ZWjh`jf2h{W-aJOkL8)x?II`{iZp$Ma?#= z#2%q{w@XnoOQ-UT0d4+%GPmb2PYAK;z3C!vYp00i_ I>zopr05fkDGXMYp literal 0 HcmV?d00001 diff --git a/classtz_1_1gl_1_1vk2_1_1_framebuffer.html b/classtz_1_1gl_1_1vk2_1_1_framebuffer.html new file mode 100644 index 0000000000..f7e47caedd --- /dev/null +++ b/classtz_1_1gl_1_1vk2_1_1_framebuffer.html @@ -0,0 +1,252 @@ + + + + + + + +Topaz: tz::gl::vk2::Framebuffer Class Reference + + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.0.0.2 +
+
C++20 Graphics Engine
+
+
+ + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+ +

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

+ +

#include <framebuffer.hpp>

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

+Public Member Functions

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

Detailed Description

+

Represents a render target for a RenderPass.

+

Member Function Documentation

+ +

◆ get_attachment_views() [1/2]

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

Retrieve a list of imageviews corresponding to each attachment.

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

◆ get_attachment_views() [2/2]

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

Retrieve a list of imageviews corresponding to each attachment.

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

◆ get_device()

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

Retrieve the LogicalDevice that spawned this Framebuffer.

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

◆ get_dimensions()

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

Retrieve the width and height of the framebuffer.

+

All attachments must have the same dimensions.

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

◆ get_pass()

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

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

+
Returns
Reference to parent RenderPass.
+ +
+
+
+
+ + + + diff --git a/classtz_1_1gl_1_1vk2_1_1_graphics_pipeline.html b/classtz_1_1gl_1_1vk2_1_1_graphics_pipeline.html new file mode 100644 index 0000000000..7ae66ed494 --- /dev/null +++ b/classtz_1_1gl_1_1vk2_1_1_graphics_pipeline.html @@ -0,0 +1,130 @@ + + + + + + + +Topaz: tz::gl::vk2::GraphicsPipeline Class Reference + + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.0.0.2 +
+
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..8dbe14fc92 --- /dev/null +++ b/classtz_1_1gl_1_1vk2_1_1_image.html @@ -0,0 +1,231 @@ + + + + + + + +Topaz: tz::gl::vk2::Image Class Reference + + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.0.0.2 +
+
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< VK_OBJECT_TYPE_IMAGE > + +
+ + + + + + + + + + + + + + + + + +

+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..861b64400f97a774411c14f6e119c849e3d3abb5 GIT binary patch literal 1099 zcmeAS@N?(olHy`uVBq!ia0y~yV2lK^12~w0WJ}1msX$6Pz$e7@|Ns9$=8HF9OZyKk zw=mEwkeGhv#eo9{fa1ZEF0TN}ah3%61v3EoU|`NP`w9aC^EFQw$B+ufw{ze2y;k6H zX?Kh|``i9w?ri>?1#k1D?=PFAdM?eglUe=PAJ?^8)wW)%GFYK9bHbB_OCl%rD4d;? z!jd^nMcHGsisZq(Z4;h2)R(`VeyMK9pZuzFCSCLA?`O2ApKP=}_E!G;sZzEwt?Px= z^*i&Q*~QyAlq+QHX6&uCo!@o%$+WutRm#;r+fMV8U9(ubpYPVQZRw%k-^^fFdy_J` zHwD~#vX5L?wmoJO9O;{^>XZ6Q~j2&FWSwF!yVc*m7{;GGpCf7U=J~stc;*?+tFEfe zW_W%0_S@R!rAJFb60UAj(4DomA-78dj5Z>pU3h3H%Y(GDJ9shvcJpyYJ-aKq?%R}?@59valK>4 z+O5}?T#M>wW!Tpy&)~uEAmNe@1Ivfcld~8fRDhTTg0q3l0wD9qgg8cpCKGN3pb-om z3TK%dSTe;Jlsq;w2sqASZQuYZahZ@tH6`zjqP;XdHJ8fpbg8ILD$&Rcn*_9Ll8EE1 zsY^I6tx<9PP`UZ@_wVJ`|2;iX`)Ps7+@|+N)qi*YpOmKh((by>o`j%}m)`%;{i~aM zRzLTJRAS|grQ1|$n>IhmnHZ%#DR=kbgJ0gR-Vu2F@ci>HCeQeKwRqa*+GAcvw_Gz9 z_xvUE+~9Ss<>u^d>(bt))JEOsI`B`@FMw~~u{Se1TsN)V?QzN7vh}8&@ZYs-W4@f~ zN{PM}>ACK%-@>wtt;(79-=ekF-`?X9yZhfJ+01PJNp>fnpY;kl9vy6Ty2>y8+uFG` zT}B1B=G11Z&tJ$hXQ!0MrR$T^R5hDSv^{}g>)E9MRLvs3dFhl%Q-V%y{KGtxRqLGW Tp<;7jwrB8k^>bP0l+XkK6Ok2j 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..60c8590234 --- /dev/null +++ b/classtz_1_1gl_1_1vk2_1_1_image_view.html @@ -0,0 +1,132 @@ + + + + + + + +Topaz: tz::gl::vk2::ImageView Class Reference + + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.0.0.2 +
+
C++20 Graphics Engine
+
+
+ + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+Inheritance diagram for tz::gl::vk2::ImageView:
+
+
+ + +tz::gl::vk2::DebugNameable< VK_OBJECT_TYPE_IMAGE_VIEW > + +
+
+
+ + + + 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..d58b363f76786922cde30bcdf45a0276b85216da GIT binary patch literal 1190 zcmb_c{ZkWX5I)dWWg23wQ^{5u%+&YlP#?cNo+0{}q4$*H-MMfYy{ZT9?jg{XH@ zE|(MaJ*e_$qPOHk1ZNLKA-1&HDFP;`E_N0G!5X^-TNn zRPV+O{blL?3PHA<*T9-&BM(3 z>mhe7ZKJQJwJ(!AOd3ZC%I5c5-OOM}h zPWDq~d3m00fb`h87gg1#%WHp0ZZuGy_&)s{&qiizb9+9(oArn52Q6mq(GNk~`4u*o zGmTX~Guut0HT?}f$d=w$nK`SRX}0$Y1s!~kk)^Tm8m|L2g4y`?2!0UZxtir-W4{}~0?nzRqD@c^9aje{Tn~*-F zc$5K@Hl*F~W`xUmT7ww;;)_3}Pe;d9$XgN*K9v0`BaMpnBSzHb@gPAN0E_z)we`ei zl($#MK>0eb=Jm@e5~?R--l^#lqOW89kF7))$Pf;+<#>v?x;P z9H32d)PRbLlKB3cTB?H4U26*_lz}7vDMELZrU?bKm0f*6>a|nq)w9eFvL&`bYwQF| z2N=-VnYr&5K~Q)l0xj0uV2~jwClo+S;U|j(enk6z32wJWXd**|#GrgvY{6#~oeT8* zZ%T;uf1~hQK?ECSd%7)L4zp>V0uvo3=E2{&Vml)!x>)piLq4#qwW_LP*r#6^UJg6n z?dNs=K{p{l683OjRH;uT0ds!aSNE)Yr@dcsr{!JmX$_AHXNls;7`uz + + + + + + +Topaz: tz::gl::vk2::LogicalDevice Class Reference + + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.0.0.2 +
+
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 DeviceExtensionListget_extensions () const
 Retrieve a list of all enabled extensions.
 
+const DeviceFeatureFieldget_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..e19f4b2a3d --- /dev/null +++ b/classtz_1_1gl_1_1vk2_1_1_physical_device.html @@ -0,0 +1,365 @@ + + + + + + + +Topaz: tz::gl::vk2::PhysicalDevice Class Reference + + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.0.0.2 +
+
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 VulkanInstanceinstance 
)
+
+ +

You're not meant to construct these directly.

+

See get_all_devices()

+ +
+
+

Member Function Documentation

+ +

◆ get_info()

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

Retrieve the vendor.

+

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

+ +
+
+ +

◆ get_supported_extensions()

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

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

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

◆ get_supported_features()

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

PhysicalDevices do not necessarily support all available DeviceFeatures.

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

◆ get_supported_surface_formats()

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

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

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

◆ get_supported_surface_present_modes()

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

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

+

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

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

◆ supports_image_colour_format()

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

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

+

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

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

◆ supports_image_depth_format()

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

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

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

◆ supports_image_sampled_format()

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

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

+
Returns
true if sampled_format can be sampled in a shader, otherwise false.
+ +
+
+
+
+ + + + diff --git a/classtz_1_1gl_1_1vk2_1_1_pipeline.html b/classtz_1_1gl_1_1vk2_1_1_pipeline.html new file mode 100644 index 0000000000..9dc73f638e --- /dev/null +++ b/classtz_1_1gl_1_1vk2_1_1_pipeline.html @@ -0,0 +1,123 @@ + + + + + + + +Topaz: tz::gl::vk2::Pipeline Class Reference + + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.0.0.2 +
+
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..b7956ab68d --- /dev/null +++ b/classtz_1_1gl_1_1vk2_1_1_pipeline_cache.html @@ -0,0 +1,123 @@ + + + + + + + +Topaz: tz::gl::vk2::PipelineCache Class Reference + + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.0.0.2 +
+
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..24f9c0bd95 --- /dev/null +++ b/classtz_1_1gl_1_1vk2_1_1_pipeline_layout.html @@ -0,0 +1,130 @@ + + + + + + + +Topaz: tz::gl::vk2::PipelineLayout Class Reference + + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.0.0.2 +
+
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..42925515c6 --- /dev/null +++ b/classtz_1_1gl_1_1vk2_1_1_queue_storage.html @@ -0,0 +1,125 @@ + + + + + + + +Topaz: tz::gl::vk2::QueueStorage Class Reference + + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.0.0.2 +
+
C++20 Graphics Engine
+
+
+ + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+ +
tz::gl::vk2::QueueStorage Class Reference
+
+
+
+
+ + + + diff --git a/classtz_1_1gl_1_1vk2_1_1_render_pass.html b/classtz_1_1gl_1_1vk2_1_1_render_pass.html new file mode 100644 index 0000000000..1516c2ede1 --- /dev/null +++ b/classtz_1_1gl_1_1vk2_1_1_render_pass.html @@ -0,0 +1,140 @@ + + + + + + + +Topaz: tz::gl::vk2::RenderPass Class Reference + + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.0.0.2 +
+
C++20 Graphics Engine
+
+
+ + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+ +

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

+ +

#include <render_pass.hpp>

+ + + + + +

+Public Member Functions

RenderPass (RenderPassInfo info)
 Create the RenderPass.
 
+

Detailed Description

+

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

+
+
+ + + + diff --git a/classtz_1_1gl_1_1vk2_1_1_render_pass_builder.html b/classtz_1_1gl_1_1vk2_1_1_render_pass_builder.html new file mode 100644 index 0000000000..0fb15d813a --- /dev/null +++ b/classtz_1_1gl_1_1vk2_1_1_render_pass_builder.html @@ -0,0 +1,270 @@ + + + + + + + +Topaz: tz::gl::vk2::RenderPassBuilder Class Reference + + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.0.0.2 +
+
C++20 Graphics Engine
+
+
+ + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+ +

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

+ +

#include <render_pass.hpp>

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

+Public Member Functions

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

Detailed Description

+

Helper class to create a RenderPass.

+

Member Function Documentation

+ +

◆ build()

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

Create a new RenderPass based upon this builder.

+
Returns
New RenderPass.
+ +
+
+ +

◆ get_device()

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

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

+

By default this is nullptr.

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

◆ set_device()

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

Set which LogicalDevice will be used to construct the RenderPass.

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

◆ with_attachment()

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

Add a new attachment to the pass.

+

This can be referenced by the subpasses.

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

◆ with_subpass()

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

Add a new subpass to the render pass.

+

This can reference any existing attachments.

Parameters
+ + +
subpassInformation about the subpass and how it references existing attachments.
+
+
+ +
+
+
+
+ + + + diff --git a/classtz_1_1gl_1_1vk2_1_1_sampler.html b/classtz_1_1gl_1_1vk2_1_1_sampler.html new file mode 100644 index 0000000000..d0495bfa5d --- /dev/null +++ b/classtz_1_1gl_1_1vk2_1_1_sampler.html @@ -0,0 +1,140 @@ + + + + + + + +Topaz: tz::gl::vk2::Sampler Class Reference + + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.0.0.2 +
+
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..03df816ac4 --- /dev/null +++ b/classtz_1_1gl_1_1vk2_1_1_shader.html @@ -0,0 +1,131 @@ + + + + + + + +Topaz: tz::gl::vk2::Shader Class Reference + + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.0.0.2 +
+
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..b1a4396af6 --- /dev/null +++ b/classtz_1_1gl_1_1vk2_1_1_shader_module.html @@ -0,0 +1,145 @@ + + + + + + + +Topaz: tz::gl::vk2::ShaderModule Class Reference + + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.0.0.2 +
+
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_subpass_builder.html b/classtz_1_1gl_1_1vk2_1_1_subpass_builder.html new file mode 100644 index 0000000000..c98728731f --- /dev/null +++ b/classtz_1_1gl_1_1vk2_1_1_subpass_builder.html @@ -0,0 +1,299 @@ + + + + + + + +Topaz: tz::gl::vk2::SubpassBuilder Class Reference + + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.0.0.2 +
+
C++20 Graphics Engine
+
+
+ + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+ +

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

+ +

#include <render_pass.hpp>

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

+Public Member Functions

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

Detailed Description

+

Helper class to create a RenderPassInfo::Subpass.

+

Member Function Documentation

+ +

◆ build()

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

Return a subpass info structure based upon this builder.

+
Returns
New Subpass info.
+ +
+
+ +

◆ get_pipeline_context()

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

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

+

By default, this will be PipelineContext::graphics.

+ +
+
+ +

◆ set_pipeline_context()

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

Specify how the subpass binds to the graphics pipeline.

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

◆ with_colour_attachment()

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

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

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

◆ with_depth_stencil_attachment()

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

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

+

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

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

◆ with_input_attachment()

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

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

+
Parameters
+ + +
input_attachmentInformation about which attachment will be referenced as an input attachment.
+
+
+ +
+
+
+
+ + + + diff --git a/classtz_1_1gl_1_1vk2_1_1_swapchain.html b/classtz_1_1gl_1_1vk2_1_1_swapchain.html new file mode 100644 index 0000000000..e2315e609d --- /dev/null +++ b/classtz_1_1gl_1_1vk2_1_1_swapchain.html @@ -0,0 +1,393 @@ + + + + + + + +Topaz: tz::gl::vk2::Swapchain Class Reference + + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.0.0.2 +
+
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 ImageAcquisitionacquire)
+
+ +

Retrieve a presentable image index.

+

See ImageAcquisition for details.

+ +
+
+ +

◆ get_dimensions()

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

Retrieve the dimensions of the swapchain images.

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

◆ get_image_format()

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

Retrieve the image_format of the swapchain images.

+
Returns
Swapchain format.
+ +
+
+ +

◆ get_image_views() [1/2]

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

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

+

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

+ +
+
+ +

◆ get_image_views() [2/2]

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

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

+

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

+ +
+
+ +

◆ get_images() [1/2]

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

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

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

◆ get_images() [2/2]

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

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

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

◆ get_present_mode()

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

Retrieve the present mode used by the swapchain.

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

◆ is_null()

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

Query as to whether the Swapchain is null.

+

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

+ +
+
+ +

◆ null()

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

Create a Swapchain which doesn't do anything.

+
Note
It is an error to use null Swapchains for most operations. Retrieving the native handle and querying for null-ness are the only valid operations on a null Swapchain.
+ +
+
+
+
+ + + + diff --git a/classtz_1_1gl_1_1vk2_1_1_timeline_semaphore.html b/classtz_1_1gl_1_1vk2_1_1_timeline_semaphore.html new file mode 100644 index 0000000000..aa9094ca98 --- /dev/null +++ b/classtz_1_1gl_1_1vk2_1_1_timeline_semaphore.html @@ -0,0 +1,233 @@ + + + + + + + +Topaz: tz::gl::vk2::TimelineSemaphore Class Reference + + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.0.0.2 +
+
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< VK_OBJECT_TYPE_SEMAPHORE > + +
+ + + + + + + + + + + + + + +

+Public Member Functions

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

+Static Public Member Functions

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

Detailed Description

+

Synchronisation primitive similar to BinarySemaphore.

+

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

+

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

+

Constructor & Destructor Documentation

+ +

◆ TimelineSemaphore()

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

Create a TimelineSemaphore with the initial value.

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

Member Function Documentation

+ +

◆ supported()

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

Timeline Semaphores are optional features and must be enabled.

+

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

+

See DeviceFeature::TimelineSemaphores for context.

+ +
+
+
+
+ + + + diff --git a/classtz_1_1gl_1_1vk2_1_1_timeline_semaphore.png b/classtz_1_1gl_1_1vk2_1_1_timeline_semaphore.png new file mode 100644 index 0000000000000000000000000000000000000000..42cdb13a8accdc1e5fb3412623da0b74359f20a1 GIT binary patch literal 1720 zcmcJQdpML?9LL|8W;BLMvWP8W2wf<5g$a`x_nq2$%4H^Hy4V>+mR07Ro^nayc~kCG zE0>kq#xyEsS~fN#qGlK~Xht+KWF=)V`)>WS`}aP3{`j5WIp1@Bf1K~Q$ZW&Kv+WMdhvpUZ#C%t=$N(5RZ6pxPQXQrpCUiNuXZ|%qI zykk7~%2=Il=VdKngnqpvr;|?aet+hk@7tISjk%xFKwIg=t&eLbZ}*@%-LEvF)$2Q@ zt{z=c1;?FNuGZPB{q*hvuD1wr;VkF%r0r-r7;89EBWT-LuhqLo!HsjBOdL|ra~BxK z%;s&w2ft&b$_NkbB4>mZ-G_9{nySr~_V@-dOKLL+?!jG>>Gv-)p7-<&_p+dCNk zVm0#VRgUASO3u$9At*JDSqRFt7?j<~i;mC12sO>2GdEf;#4U>Kg|pKY5}iLN)}@Hh zGTo^7Ks+<3bswI~^WiNPZ!Sd$FD=!e6f*30kZ@L?{!-2IYG8nP2=akWTyV8xW zIj^0`!}!9o?(r^05`m<6Xi9Zjm143|0DcT;W8tbE1t1{1daD%ZL+G%57H)Zhvz402 zAoe*X3irZ-qG~2^Mapq64ue{sNHi0KBBM`gq{XJaR{LN;`Y1Rwk!<`gN_HZ@5~Kwr z+fx8_yrv~!oLN_A2Waib0%U0LH9sofZ-9acBSqApsaOfK>*7crt)DhPPzv z0RK_$tkVmMtRdAjJ;mQB^MXu>|Ku1#;w-Z<2m)mORIuEf^D(t+S#jExHDg9vmpJSR zx$y$^dVg2O&ux#hKDS8G;4pd_xnZTLHc>s^+E*J|LWfYwy~2$mr_w$2>AAt>PqU%F zlKQ;Ux^RdqE%mMvrNqumoq%p9=w{HToVN{zcZr(xmY=}MyW(YR6j|*Hg zn_p&GL;G>^STFVW$2Ot9eN{#ui%@rAPirZ3<%+;s$W3S>xNoN`WX(njk67+iY|7Y&s zi~vXzR-W+xzeektwW{hcBZ25=@|wuOpu?uhcN0? zhh*0Nv6D6T^9N0n+Xc!e$XeASt~jaZdu5G6p1QmaEp})aDHlkJJ( z{6UJj2j~mlPI(0Q+uw=covLO!;YwqQum3U=!vCS2KV^%;=s)xMF^!Qlq8RZ;vcm-$ z(P+ltn}pV_qj&p<_*0=veu(N~4j-K6>t|*XawEoM@yx3LH*8z`q>bvd`k%-v`P^|S z;3e>dq|sO*s2s8n*~fCr(kiJNG + + + + + + +Topaz: tz::gl::vk2::VulkanDebugMessenger Class Reference + + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.0.0.2 +
+
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..f6bee54b65 --- /dev/null +++ b/classtz_1_1gl_1_1vk2_1_1_vulkan_instance.html @@ -0,0 +1,131 @@ + + + + + + + +Topaz: tz::gl::vk2::VulkanInstance Class Reference + + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.0.0.2 +
+
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..017ea9f156 --- /dev/null +++ b/classtz_1_1gl_1_1vk2_1_1_window_surface.html @@ -0,0 +1,141 @@ + + + + + + + +Topaz: tz::gl::vk2::WindowSurface Class Reference + + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.0.0.2 +
+
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..2c0745e31f --- /dev/null +++ b/classtz_1_1gl_1_1vk2_1_1hardware_1_1_queue.html @@ -0,0 +1,266 @@ + + + + + + + +Topaz: tz::gl::vk2::hardware::Queue Class Reference + + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.0.0.2 +
+
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..2994e2eb05 --- /dev/null +++ b/classtz_1_1gl_1_1window__output.html @@ -0,0 +1,133 @@ + + + + + + + +Topaz: tz::gl::window_output Class Reference + + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.0.0.2 +
+
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< ioutput > + +
+
+
+ + + + diff --git a/classtz_1_1gl_1_1window__output.png b/classtz_1_1gl_1_1window__output.png new file mode 100644 index 0000000000000000000000000000000000000000..65b9144db117cb42db691cf9e118ce13c0bee7d5 GIT binary patch literal 973 zcmeAS@N?(olHy`uVBq!ia0vp^yMefagBe6F$chG1(g8jpuK)l42Qpv0`C8h4Xt{-f zW`V@?GcOJtH~!=C$S;@y$Oi*+rrB2*7?>kGT^vIy7~jslxM{TlkE{9Y znSTHNcdz%l*l;6gtL0O_XB*t4nbrsk#tSC*G&gxna(?tqC9{9`_xu{A9rAni zwtrQZHC>@ zezCjiue8IYy?bKccK!Zz&h(YzB=ZlU<&*v>ecv_t3I9WwpC?!M81`{8)bz76@SHmE zuK)OsPt3dhUmZTx|K{Cu9)>@x@Aw$L?XYIJ@%SA>LjP{&23tY`4wEI4Wkg&i$q1FJ zdsg3>tMYc|GdYi<<5G7^_w!Fk(T^`xKiMQ-#IJZJhw1bCRqs|>Z+vpz)5>Ae^Bs%d zHQtF*SREF(t>w{um6QHE55`X2E0neC{UepiuGjCfD$CVR>gnx%eRccWI|b*Z_tu$u ze3B8r``L1`?q|!z&M%jG*uJ*h%nB6TULSt{WXviP&#QT*>$ll^zWWjSeO~_A^SdT5 zk$vYk3FsrwTgE$&OFW*zaNv6d!+`}nZ~j&EXxnf2y~J+KpA+xu&M_Q_e?Y94;elep zso3J^C?F^)R4y*K@%UX=mp3m<^3~riPF=EHXZN0cjpn<%JF@H_+Ra^R9R2D~b#&4` zwP^{byfse;OkI#3!>+qB)WPKmul!ZpjvU{=8h2k$QCj#XfBR`OFL76wCo}x-gkD{x z+SHME)_dWVSAUo7_WHB`&gJ{u-_sA>-|^aJ>&(~NOZT@+=Vv7^et%C$aN_kZyPg-T zyWN(p1v%3ZKL@X^-}CHc?(=)UzX}Mx xJbWS6<;nTNazVlBJFzZD=AE={5jgfl{^Qp}S36E5O8_$-gQu&X%Q~loCIDa|@Y4VQ literal 0 HcmV?d00001 diff --git a/classtz_1_1grid__view.html b/classtz_1_1grid__view.html new file mode 100644 index 0000000000..bba9ff8a8c --- /dev/null +++ b/classtz_1_1grid__view.html @@ -0,0 +1,321 @@ + + + + + + + +Topaz: tz::grid_view< T, N > Class Template Reference + + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.0.0.2 +
+
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
+
+ +

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

Retrieve the underlying span.

+

Read-only.

+ +
+
+
+
+ + + + diff --git a/classtz_1_1handle.html b/classtz_1_1handle.html new file mode 100644 index 0000000000..24f4c9d146 --- /dev/null +++ b/classtz_1_1handle.html @@ -0,0 +1,123 @@ + + + + + + + +Topaz: tz::handle< T > Class Template Reference + + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.0.0.2 +
+
C++20 Graphics Engine
+
+
+ + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
tz::handle< T > Class Template Reference
+
+
+
+
+ + + + diff --git a/classtz_1_1impl_1_1job__system__stdasync.html b/classtz_1_1impl_1_1job__system__stdasync.html new file mode 100644 index 0000000000..613994f9d5 --- /dev/null +++ b/classtz_1_1impl_1_1job__system__stdasync.html @@ -0,0 +1,123 @@ + + + + + + + +Topaz: tz::impl::job_system_stdasync Class Reference + + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.0.0.2 +
+
C++20 Graphics Engine
+
+
+ + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
tz::impl::job_system_stdasync Class Reference
+
+
+
+
+ + + + diff --git a/classtz_1_1impl_1_1job__system__threadpool__lfq.html b/classtz_1_1impl_1_1job__system__threadpool__lfq.html new file mode 100644 index 0000000000..ab2b51569e --- /dev/null +++ b/classtz_1_1impl_1_1job__system__threadpool__lfq.html @@ -0,0 +1,125 @@ + + + + + + + +Topaz: tz::impl::job_system_threadpool_lfq Class Reference + + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.0.0.2 +
+
C++20 Graphics Engine
+
+
+ + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+ +
tz::impl::job_system_threadpool_lfq Class Reference
+
+
+
+
+ + + + diff --git a/classtz_1_1linear__allocator.html b/classtz_1_1linear__allocator.html new file mode 100644 index 0000000000..9b2ef89022 --- /dev/null +++ b/classtz_1_1linear__allocator.html @@ -0,0 +1,140 @@ + + + + + + + +Topaz: tz::linear_allocator Class Reference + + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.0.0.2 +
+
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..cf01e583a2d8ab00e2a73e33b192341320f1f55b GIT binary patch literal 638 zcmeAS@N?(olHy`uVBq!ia0vp^6M#5?gBeI3Ea0&NQqloFA+G=b{|7Q(y!l$%e`vXd zfo6fk^fNCG95?_J51w>+1yGK&B*-tA0mugfbEer>7#Ns1JzX3_Dj46+y_xq!LBLgC zd}ZnX|J}#6eK&^8@$6@F75&L#ezb^Z%HOUjK~bD4o>A=rlT`XaxHBMl=ifhV+b{om z9Vo}`dCB=-2Ar%JEtOY0-YLnqld zc|fq)LZGub7=Cc*GemS=ZHZfdv?omXR?Rh|C_jx&JPb8X91J$Z;=1(#=Pc`+!hr-s z%A}Zf0VU6V5LTMvv1#dQnXR{8wara$zPIshzl!v~*%t(*j^r9V-`|{D%Mrw0ClrUvMTw0oVgofKZ8Wis!@#c5j?KIGbJZ4{;W*xFXQ?9B7@6*F&e z@SX<-j%wzr5bcvm*FW<3ZqAY4c* + + + + + + +Topaz: tz::mallocator Class Reference + + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.0.0.2 +
+
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..f09af278d7 --- /dev/null +++ b/classtz_1_1matrix.html @@ -0,0 +1,927 @@ + + + + + + + +Topaz: tz::matrix< T, R, C > Class Template Reference + + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.0.0.2 +
+
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
+
+ +

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

+

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

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

◆ operator()() [1/2]

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

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

+

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

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

◆ operator()() [2/2]

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

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

+

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

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

◆ operator*() [1/3]

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

Multiply the given matrix with the current matrix.

+

This is done naively and is unsuitable for very large values of R or C.

Parameters
+ + +
matrixmatrix to multiply with the current matrix.
+
+
+
Returns
A modified copy of the original matrix. The original matrix is unchanged.
+ +
+
+ +

◆ operator*() [2/3]

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

Multiply the given vector (column-matrix) with the current matrix and return the resultant vector (row-matrix).

+
Parameters
+ + +
vecColumn matrix to multiply with the current matrix.
+
+
+
Returns
A row-matrix representing the resultant multiplication.
+ +
+
+ +

◆ operator*() [3/3]

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

Multiply the scalar value with each element of the current matrix.

+
Parameters
+ + +
scalarValue to multiply with each element.
+
+
+
Returns
A modified copy of the original matrix. The original matrix is unchanged.
+ +
+
+ +

◆ operator*=() [1/2]

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

Multiply the given matrix with the current matrix.

+

This is done naively and is unsuitable for very large values of R or C.

Parameters
+ + +
matrixmatrix to multiply with the current matrix.
+
+
+
Returns
Reference to the current matrix.
+ +
+
+ +

◆ operator*=() [2/2]

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

Multiply the scalar value with each element of the current matrix.

+
Parameters
+ + +
scalarValue to multiply with each element.
+
+
+
Returns
Reference to the current matrix.
+ +
+
+ +

◆ operator+() [1/2]

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

Add the given matrix to the current matrix.

+

This is done by adding the current value in the same row and column.

Parameters
+ + +
matrixmatrix to add to the current matrix.
+
+
+
Returns
A modified copy of the original matrix. The original matrix is unchanged.
+ +
+
+ +

◆ operator+() [2/2]

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

Add the scalar value to each element of the current matrix.

+
Parameters
+ + +
scalarValue to add to each element.
+
+
+
Returns
A modified copy of the original matrix. The original matrix is unchanged.
+ +
+
+ +

◆ operator+=() [1/2]

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

Add the given matrix to the current matrix.

+

This is done by adding the current value in the same row and column.

Parameters
+ + +
matrixmatrix to add to the current matrix.
+
+
+
Returns
Reference to the current matrix.
+ +
+
+ +

◆ operator+=() [2/2]

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

Add the scalar value to each element of the current matrix.

+
Parameters
+ + +
scalarValue to add to each element.
+
+
+
Returns
Reference to the current matrix.
+ +
+
+ +

◆ operator-() [1/2]

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

Subtract the given matrix from the current matrix.

+

This is done by subtracting the current value in the same row and column.

Parameters
+ + +
matrixmatrix to subtract from the current matrix.
+
+
+
Returns
A modified copy of the original matrix. The original matrix is unchanged.
+ +
+
+ +

◆ operator-() [2/2]

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

Subtract the scalar value from each element of the current matrix.

+
Parameters
+ + +
scalarValue to subtract from each element.
+
+
+
Returns
A modified copy of the original matrix. The original matrix is unchanged.
+ +
+
+ +

◆ operator-=() [1/2]

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

Subtract the given matrix from the current matrix.

+

This is done by subtracting the current value in the same row and column.

Parameters
+ + +
matrixmatrix to subtract from the current matrix.
+
+
+
Returns
Reference to the current matrix.
+ +
+
+ +

◆ operator-=() [2/2]

+ +
+
+
+template<tz::number T, std::size_t R, std::size_t C>
+ + + + + + + + +
matrix< T, R, C > & tz::matrix< T, R, C >::operator-= (scalar)
+
+ +

Subtract the scalar value from each element of the current matrix.

+
Parameters
+ + +
scalarValue to subtract from each element.
+
+
+
Returns
Reference to the current matrix.
+ +
+
+ +

◆ operator==() [1/2]

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

Equate the given matrix with the current.

+

Matrices are equal if-and-only-if each element at a given row and column of the current matrix is equal to the corresponding value of the given matrix.

Parameters
+ + +
matrixmatrix to equate with the current matrix.
+
+
+
Returns
True if each value in the given matrix are equal to that of the current matrix. Otherwise, false.
+ +
+
+ +

◆ operator==() [2/2]

+ +
+
+
+template<tz::number T, std::size_t R, std::size_t C>
+ + + + + + + + +
bool tz::matrix< T, R, C >::operator== (scalar) const
+
+ +

Equate the given scalar with each value of the matrix.

+

mymatrix == T{5} shall return if-and-only-if each element of mymatrix is equal to 'T{5}'. If no such comparison exists, then the program is ill-formed.

Parameters
+ + +
scalarValue to equate with each value of the current matrix.
+
+
+
Returns
True if each value of the current matrix is equal to scalar. Otherwise, false.
+ +
+
+ +

◆ operator[]() [1/2]

+ +
+
+
+template<tz::number T, std::size_t R, std::size_t C>
+ + + + + + + + +
matrix< T, R, C >::Row & tz::matrix< T, R, C >::operator[] (std::size_t row_idx)
+
+ +

Retrieve the i'th row of the matrix.

+

Precondition: row_idx < R. Otherwise, this will assert and invoke UB.

Parameters
+ + +
row_idxThe index of the row to retrieve. For example, row_idx 0 will retrieve the top row.
+
+
+
Returns
Array of values representing the given row.
+ +
+
+ +

◆ operator[]() [2/2]

+ +
+
+
+template<tz::number T, std::size_t R, std::size_t C>
+ + + + + + + + +
const matrix< T, R, C >::Row & tz::matrix< T, R, C >::operator[] (std::size_t row_idx) const
+
+ +

Retrieve the i'th row of the matrix.

+

Precondition: row_idx < R. Otherwise, this will assert and invoke UB.

Parameters
+ + +
row_idxThe index of the row to retrieve. For example, row_idx 0 will retrieve the top row.
+
+
+
Returns
Array of values representing the given row.
+ +
+
+ +

◆ transpose()

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

Create a copy of the current matrix, and transpose the copy.

+

Transposing the matrix is to flip the matrix values over its diagonal. Note: If mymatrix is orthogonal, then mymatrix.transpose() == mymatrix.inverse().

Returns
Transpose of the original matrix. The original matrix is unchanged.
+ +
+
+
+
+ + + + diff --git a/classtz_1_1maybe__owned__ptr.html b/classtz_1_1maybe__owned__ptr.html new file mode 100644 index 0000000000..a71132395d --- /dev/null +++ b/classtz_1_1maybe__owned__ptr.html @@ -0,0 +1,123 @@ + + + + + + + +Topaz: tz::maybe_owned_ptr< T > Class Template Reference + + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.0.0.2 +
+
C++20 Graphics Engine
+
+
+ + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
tz::maybe_owned_ptr< T > Class Template Reference
+
+
+
+
+ + + + diff --git a/classtz_1_1null__allocator.html b/classtz_1_1null__allocator.html new file mode 100644 index 0000000000..6e8a9f9e93 --- /dev/null +++ b/classtz_1_1null__allocator.html @@ -0,0 +1,130 @@ + + + + + + + +Topaz: tz::null_allocator Class Reference + + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.0.0.2 +
+
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_1stack__allocator.html b/classtz_1_1stack__allocator.html new file mode 100644 index 0000000000..40ea753c00 --- /dev/null +++ b/classtz_1_1stack__allocator.html @@ -0,0 +1,147 @@ + + + + + + + +Topaz: tz::stack_allocator< S > Class Template Reference + + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.0.0.2 +
+
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..3e81e9fe9d8940a6a6a15c93e4ccb8091c489182 GIT binary patch literal 634 zcmeAS@N?(olHy`uVBq!ia0vp^6M#5?gBeI3Ea0&NQqloFA+G=b{|7Q(y!l$%e`vXd zfo6fk^fNCG95?_J51w>+1yGK&B*-tA0mugfbEer>7#NsXJzX3_Dj46+y_xsKfQKbI zH{rtn|3|GqDRx^)q)$G|#muzsgmdiD=8xLja&Lz*Nqeqy=9sv|9f*&+XiQu)@B4W* zr%A?huEqC%is(?0|HR)C=P=w$L?%dnkbXgewaOpEdbY5+VTYt1COt|Xzn$#_G0#YOyezXWMR1k}6)&+QJ zu4S2|veucybCNp<3rba$9t>Pvp0iCOf1~AMm6Z?obG{92{^hOlTI%_qUH|Qx-4oT# z4KJ^IRmD2%=JMD@JGjx4>xkN(j`R#oNb{phByUP{&u}bp$zLMj1LRqW1e7`T8 zB)DpJ{PIG%Cjl!$zB-kLt}I^vWNWMO!jCTfeQVZAy$h&TS}bd{@AB@%<27~dw>q;I zK9t?HX^o2S)GXD=H+FKNmvv4nhefKbtlRg?Ud2=UgSk^>?&GJPm-svTSF2REOn~4$ ftwCOyivJjdj4HT#A1}WNOeGASu6{1-oD!M + + + + + + +Topaz: tz::unique_cloneable< T > Class Template Reference + + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.0.0.2 +
+
C++20 Graphics Engine
+
+
+ + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
tz::unique_cloneable< T > Class Template Referenceabstract
+
+
+
+
+ + + + diff --git a/classtz_1_1vector.html b/classtz_1_1vector.html new file mode 100644 index 0000000000..7b4791a86e --- /dev/null +++ b/classtz_1_1vector.html @@ -0,0 +1,801 @@ + + + + + + + +Topaz: tz::vector< T, S > Class Template Reference + + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.0.0.2 +
+
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/= (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
+
+ +

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

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

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

Perform a conversion to a vector of different numeric type.

+

Numeric conversion is performed via explicit conversion.

+ +
+
+ +

◆ operator*()

+ +
+
+
+template<tz::number T, std::size_t S>
+ + + + + + + + +
vector< T, S > tz::vector< T, S >::operator* (scalar) const
+
+ +

Create a copy of the current vector, 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*=()

+ +
+
+
+template<tz::number T, std::size_t S>
+ + + + + + + + +
vector< T, S > & tz::vector< T, S >::operator*= (scalar)
+
+ +

Multiply each element of the current vector by the given value.

+
Parameters
+ + +
scalarValue to multiply by each element of the current vector.
+
+
+
Returns
The modified original vector.
+ +
+
+ +

◆ operator+()

+ +
+
+
+template<tz::number T, std::size_t S>
+ + + + + + + + +
vector< T, S > tz::vector< T, S >::operator+ (const vector< T, S > & rhs) const
+
+ +

Create a copy of the current vector, add each element of the given vector to the corresponding element of the copied vector and return the result.

+
Parameters
+ + +
rhsvector whose elemens need be added to the current vector.
+
+
+
Returns
A modified copy of the current vector. The initial vector is unchanged.
+ +
+
+ +

◆ operator+=()

+ +
+
+
+template<tz::number T, std::size_t S>
+ + + + + + + + +
vector< T, S > & tz::vector< T, S >::operator+= (const vector< T, S > & rhs)
+
+ +

Add each element of the given vector to the corresponding element of the current vector.

+
Parameters
+ + +
rhsvector whose elements need be added to the current vector.
+
+
+
Returns
The modified original vector.
+ +
+
+ +

◆ operator-()

+ +
+
+
+template<tz::number T, std::size_t S>
+ + + + + + + + +
vector< T, S > tz::vector< T, S >::operator- (const vector< T, S > & rhs) const
+
+ +

Create a copy of the current vector, subtract each element of the given vector from the corresponding element of the copied vector and return the result.

+
Parameters
+ + +
rhsvector whose elemens need be subtracted from the current vector.
+
+
+
Returns
A modified copy of the current vector. The initial vector is unchanged.
+ +
+
+ +

◆ operator-=()

+ +
+
+
+template<tz::number T, std::size_t S>
+ + + + + + + + +
vector< T, S > & tz::vector< T, S >::operator-= (const vector< T, S > & rhs)
+
+ +

Subtract each element of the given vector from the corresponding element of the current vector.

+
Parameters
+ + +
rhsvector whose elements need be subtracted from the current vector.
+
+
+
Returns
The modified original vector.
+ +
+
+ +

◆ operator/()

+ +
+
+
+template<tz::number T, std::size_t S>
+ + + + + + + + +
vector< T, S > tz::vector< T, S >::operator/ (scalar) const
+
+ +

Create a copy of the current vector, divide each element of the copied vector by the given value, and return the result.

+
Parameters
+ + +
scalarValue to divide by each element of the current vector.
+
+
+
Returns
A modified copy of the current vector. The initial vector is unchanged.
+ +
+
+ +

◆ operator/=()

+ +
+
+
+template<tz::number T, std::size_t S>
+ + + + + + + + +
vector< T, S > & tz::vector< T, S >::operator/= (scalar)
+
+ +

Divide each element of the current vector by the given value.

+
Parameters
+ + +
scalarValue to divide by each element of the current vector.
+
+
+
Returns
The modified original vector.
+ +
+
+ +

◆ operator==()

+ +
+
+
+template<tz::number T, std::size_t S>
+ + + + + + + + +
bool tz::vector< T, S >::operator== (const vector< T, S > & rhs) const
+
+ +

Equate the current vector with the given vector.

+
Parameters
+ + +
rhsGiven vector to compare with the current vector.
+
+
+
Returns
True if each element of the given vector are equal to the corresponding element of the current vector.
+ +
+
+ +

◆ operator[]() [1/2]

+ +
+
+
+template<tz::number T, std::size_t S>
+ + + + + + + + +
T & tz::vector< T, S >::operator[] (std::size_t idx)
+
+ +

Retrieve the element value at the given index.

+

Precondition: idx < S. Otherwise, this will assert and invoke UB.

Returns
The value at the given index.
+ +
+
+ +

◆ operator[]() [2/2]

+ +
+
+
+template<tz::number T, std::size_t S>
+ + + + + + + + +
const T & tz::vector< T, S >::operator[] (std::size_t idx) const
+
+ +

Retrieve the element value at the given index.

+

Precondition: idx < S. Otherwise, this will assert and invoke UB.

Returns
The value at the given index.
+ +
+
+ +

◆ swizzle()

+ +
+
+
+template<tz::number T, std::size_t S>
+
+template<int... indices>
+ + + + +
vector< T, sizeof...(indices)> tz::vector< T, S >::swizzle
+
+ +

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..dc5d19e19e --- /dev/null +++ b/classtz_1_1wsi_1_1impl_1_1window__winapi.html @@ -0,0 +1,123 @@ + + + + + + + +Topaz: tz::wsi::impl::window_winapi Class Reference + + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.0.0.2 +
+
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..e7990aa8d7 --- /dev/null +++ b/classtz_1_1wsi_1_1impl_1_1window__x11.html @@ -0,0 +1,123 @@ + + + + + + + +Topaz: tz::wsi::impl::window_x11 Class Reference + + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.0.0.2 +
+
C++20 Graphics Engine
+
+
+ + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
tz::wsi::impl::window_x11 Class Reference
+
+
+
+
+ + + + diff --git a/clone_8hpp_source.html b/clone_8hpp_source.html new file mode 100644 index 0000000000..7d18dd5fd7 --- /dev/null +++ b/clone_8hpp_source.html @@ -0,0 +1,150 @@ + + + + + + + +Topaz: src/tz/core/memory/clone.hpp Source File + + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.0.0.2 +
+
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..5078844bef --- /dev/null +++ b/command_8hpp_source.html @@ -0,0 +1,594 @@ + + + + + + + +Topaz: src/tz/gl/impl/vulkan/detail/command.hpp Source File + + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.0.0.2 +
+
C++20 Graphics Engine
+
+
+ + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
command.hpp
+
+
+
1#ifndef TOPAZ_GL_IMPL_BACKEND_VK2_COMMAND_HPP
+
2#define TOPAZ_GL_IMPL_BACKEND_VK2_COMMAND_HPP
+
3#if TZ_VULKAN
+
4#include "tz/gl/impl/vulkan/detail/render_pass.hpp"
+
5#include "tz/gl/impl/vulkan/detail/hardware/queue.hpp"
+
6#include "tz/gl/impl/vulkan/detail/logical_device.hpp"
+
7#include "tz/gl/impl/vulkan/detail/framebuffer.hpp"
+
8#include "tz/gl/impl/vulkan/detail/graphics_pipeline.hpp"
+
9#include "tz/gl/impl/vulkan/detail/buffer.hpp"
+
10
+
11namespace tz::gl::vk2
+
12{
+ +
18 {
+
19 struct Dispatch
+
20 {
+
21 tz::vec3ui groups;
+
22 };
+
27 struct Draw
+
28 {
+
30 std::uint32_t vertex_count;
+
32 std::uint32_t instance_count = 1;
+
34 std::uint32_t first_vertex = 0;
+
36 std::uint32_t first_instance = 0;
+
37 };
+
38
+ +
44 {
+
45 std::uint32_t index_count;
+
46 std::uint32_t instance_count = 1;
+
47 std::uint32_t first_index = 0;
+
48 std::int32_t vertex_offset = 0;
+
49 std::uint32_t first_instance = 0;
+
50 };
+
51
+ +
57 {
+
58 const Buffer* draw_indirect_buffer;
+
59 std::uint32_t draw_count;
+
60 std::uint32_t stride;
+
61 VkDeviceSize offset = 0;
+
62 };
+
63
+ +
65 {
+
66 const Buffer* draw_indirect_buffer;
+
67 std::uint32_t max_draw_count;
+
68 std::uint32_t stride;
+
69 VkDeviceSize offset = sizeof(std::uint32_t);
+
70 };
+
71
+ +
77 {
+
78 const Buffer* draw_indirect_buffer;
+
79 std::uint32_t draw_count;
+
80 std::uint32_t stride;
+
81 VkDeviceSize offset = 0;
+
82 };
+
83
+ +
85 {
+
86 const Buffer* draw_indirect_buffer;
+
87 std::uint32_t max_draw_count;
+
88 std::uint32_t stride;
+
89 VkDeviceSize offset = sizeof(std::uint32_t);
+
90 };
+
91
+ +
97 {
+
98 const vk2::Buffer* index_buffer;
+
99 std::uint64_t buffer_offset = 0;
+
100 };
+
101
+ +
107 {
+ +
110 };
+
111
+ +
117 {
+ + + +
125 std::uint32_t first_set_id;
+
126 };
+
127
+ +
133 {
+ +
136 };
+
137
+ +
139
+ +
141
+ +
147 {
+ +
150 };
+
151
+ +
158 {
+
160 const Buffer* src;
+ +
164 std::size_t src_offset = 0;
+
166 std::size_t dst_offset = 0;
+
167 };
+
168
+ +
175 {
+
177 const Buffer* src;
+ + +
182 };
+
183
+ +
190 {
+
192 const Image* src;
+ + +
197 };
+
198
+ +
203 {
+ +
206 };
+
207
+ +
215 {
+ + +
220 std::optional<ImageLayout> old_layout = std::nullopt;
+
221
+ + + + + +
232
+ + +
237 };
+
238
+ +
240 {
+
241 tz::vec2ui offset;
+
242 tz::vec2ui extent;
+
243 };
+
244
+ +
246 {
+
247 std::string name;
+
248 tz::vec4 colour{0.0f, 0.0f, 0.0f, 0.0f};
+
249 };
+
250
+ +
252
+
254 using variant = std::variant<Dispatch, Draw, DrawIndexed, DrawIndirect, DrawIndirectCount, DrawIndexedIndirect, DrawIndexedIndirectCount, BindIndexBuffer, BindPipeline, BindDescriptorSets, BeginRenderPass, EndRenderPass, BeginDynamicRendering, EndDynamicRendering, BufferCopyBuffer, BufferCopyImage, ImageCopyImage, BindBuffer, TransitionImageLayout, SetScissorDynamic, DebugBeginLabel, DebugEndLabel>;
+
255 };
+
256
+
257 enum class CommandPoolFlag
+
258 {
+
259 Reusable = VK_COMMAND_POOL_CREATE_RESET_COMMAND_BUFFER_BIT
+
260 };
+
261 using CommandPoolFlags = tz::enum_field<CommandPoolFlag>;
+ +
267 {
+ + +
272 };
+
273
+
274 class CommandBuffer;
+
275
+
276
+ +
278 {
+
279 tz::vec4 clear_colour = {0.0f, 0.0f, 0.0f, 1.0f};
+
280 vk2::LoadOp colour_load = vk2::LoadOp::Clear;
+
281 vk2::StoreOp colour_store = vk2::StoreOp::Store;
+
282
+
283 vk2::LoadOp depth_load = vk2::LoadOp::Clear;
+
284 vk2::StoreOp depth_store = vk2::StoreOp::Store;
+
285 };
+
286
+ +
292 {
+
293 public:
+ +
299 {
+
300 public:
+
307 RenderPassRun(Framebuffer& framebuffer, CommandBufferRecording& recording, tz::vec4 clear_colour = {0.0f, 0.0f, 0.0f, 1.0f});
+
308 RenderPassRun(const RenderPassRun& copy) = delete;
+
309 RenderPassRun(RenderPassRun&& move) = delete;
+ +
311
+
312 RenderPassRun& operator=(const RenderPassRun& rhs) = delete;
+
313 RenderPassRun& operator=(RenderPassRun&& rhs) = delete;
+
314 private:
+
315 Framebuffer* framebuffer;
+
316 CommandBufferRecording* recording;
+
317 };
+
318
+ +
320 {
+
321 public:
+
322 DynamicRenderingRun(CommandBufferRecording& record, std::span<const vk2::ImageView> colour_attachments, const vk2::ImageView* depth_attachment, DynamicRenderingRunInfo rinfo = {});
+ +
324
+
325 DynamicRenderingRun& operator=(const DynamicRenderingRun& rhs) = delete;
+
326 DynamicRenderingRun& operator=(DynamicRenderingRun&& rhs) = delete;
+
327 private:
+
328 CommandBufferRecording* recording;
+
329 };
+
330
+
331 CommandBufferRecording(CommandBuffer& command_buffer);
+ + + +
335
+
336 CommandBufferRecording& operator=(const CommandBufferRecording& rhs) = delete;
+ +
338
+ + +
353 void draw(VulkanCommand::Draw draw);
+ + + + +
370 void draw_indexed_indirect_count(VulkanCommand::DrawIndexedIndirectCount draw);
+
371 void bind_index_buffer(VulkanCommand::BindIndexBuffer bind);
+ + + + + +
397
+
398 void transition_image_layout(VulkanCommand::TransitionImageLayout command);
+
399
+
400 void set_scissor_dynamic(VulkanCommand::SetScissorDynamic command);
+
401
+
402 void debug_begin_label(VulkanCommand::DebugBeginLabel command);
+
403 void debug_end_label(VulkanCommand::DebugEndLabel command);
+
404
+
409 const CommandBuffer& get_command_buffer() const;
+
410
+
411 friend class RenderPassRun;
+
412 private:
+ +
414 void register_command(VulkanCommand::variant command);
+
415 ImageLayout get_layout_so_far(const Image& image) const;
+
416
+
417 CommandBuffer* command_buffer;
+
418 };
+
419
+
420 class CommandPool;
+
421
+ +
427 {
+
428 public:
+
429 friend class CommandPool;
+
433 const LogicalDevice& get_device() const;
+ +
443 bool is_recording() const;
+
447 bool has_ever_recorded() const;
+
452 std::size_t command_count() const;
+
453 std::span<const VulkanCommand::variant> get_recorded_commands() const;
+
454 void set_owner(const CommandPool& owner);
+
455
+
456 using NativeType = VkCommandBuffer;
+
457 NativeType native() const;
+
458
+
459 friend class CommandBufferRecording;
+
460 private:
+
461 void set_recording(bool recording);
+
462 void add_command(VulkanCommand::variant command);
+
463
+
464 CommandBuffer(const CommandPool& owner_pool, CommandBuffer::NativeType native);
+
465
+
466 VkCommandBuffer command_buffer;
+
467 const CommandPool* owner_pool;
+
468 bool recording;
+
469 bool ever_recorded;
+
470 std::vector<VulkanCommand::variant> recorded_commands;
+
471 };
+
472
+ +
478 {
+
479 public:
+ +
484 {
+
486 std::uint32_t buffer_count;
+
487 };
+
488
+ +
493 {
+
495 bool success() const;
+
496
+ +
499 {
+
500 AllocationSuccess,
+
501 FatalError
+
502 };
+
503
+ + +
508 };
+
509
+ +
511 CommandPool(const CommandPool& copy) = delete;
+
512 CommandPool(CommandPool&& move);
+
513 ~CommandPool();
+
514
+
515 CommandPool& operator=(const CommandPool& rhs) = delete;
+
516 CommandPool& operator=(CommandPool&& rhs);
+
517
+
518 const LogicalDevice& get_device() const;
+
519
+ +
525 void free_buffers(const AllocationResult& alloc_result);
+
526
+
527 using NativeType = VkCommandPool;
+
528 NativeType native() const;
+
529
+
530 static CommandPool null();
+
531 bool is_null() const;
+
532 private:
+
533 CommandPool();
+
534
+
535 VkCommandPool pool;
+
536 CommandPoolInfo info;
+
537 };
+
538
+ +
540 {
+
541 CommandBufferData() = default;
+ +
543 {
+
544 *this = std::move(move);
+
545 }
+
546 CommandBufferData& operator=(CommandBufferData&& rhs)
+
547 {
+
548 std::swap(this->pool, rhs.pool);
+
549 std::swap(this->data, rhs.data);
+
550 for(auto& buf : this->data.buffers)
+
551 {
+
552 buf.set_owner(this->pool);
+
553 }
+
554 for(auto& buf : rhs.data.buffers)
+
555 {
+
556 buf.set_owner(rhs.pool);
+
557 }
+
558 return *this;
+
559 }
+
560 vk2::CommandPool pool = vk2::CommandPool::null();
+ +
562 };
+
563}
+
564
+
565#endif // TZ_VULKAN
+
566#endif // TOPAZ_GL_IMPL_BACKEND_VK2_COMMAND_HPP
+
Custom list, feature subset of std::vector.
Definition: basic_list.hpp:21
+ +
Represents a linear array of data which can be used for various purposes.
Definition: buffer.hpp:56
+
Represents storage for vulkan commands, such as draw calls, binds, transfers etc.....
Definition: command.hpp:427
+
const LogicalDevice & get_device() const
CommandBuffers are allocated from a CommandPool.
Definition: command.cpp:523
+
std::size_t command_count() const
Retrieve the number of commands recorded into the buffer.
Definition: command.cpp:545
+
bool is_recording() const
Query as to whether this CommandBuffer is currently recording.
Definition: command.cpp:535
+
CommandBufferRecording record()
Begin recording the CommandBuffer.
Definition: command.cpp:528
+
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:540
+ +
Represents the full duration of an invocation of a RenderPass during a CommandBufferRecording.
Definition: command.hpp:299
+
Represents the full duration of the recording process of an existing CommandBuffer.
Definition: command.hpp:292
+
void buffer_copy_image(VulkanCommand::BufferCopyImage command)
Copy data from one Buffer to an Image.
Definition: command.cpp:284
+
void image_copy_image(VulkanCommand::ImageCopyImage command)
Copy data from one Image to another.
Definition: command.cpp:314
+
void dispatch(VulkanCommand::Dispatch dispatch)
Dispatch some compute work.
Definition: command.cpp:210
+
void draw_indirect(VulkanCommand::DrawIndirect draw)
Perform some indirect, non-indexed draws.
Definition: command.cpp:228
+
void buffer_copy_buffer(VulkanCommand::BufferCopyBuffer command)
Copy data from one Buffer to another.
Definition: command.cpp:267
+
const CommandBuffer & get_command_buffer() const
Retrieve the CommandBuffer that is currently being recorded.
Definition: command.cpp:461
+
void draw_indexed_indirect(VulkanCommand::DrawIndexedIndirect draw)
Perform some indirect, indexed draws.
Definition: command.cpp:240
+
void bind_pipeline(VulkanCommand::BindPipeline command)
Bind an existing GraphicsPipeline to some context.
Definition: command.cpp:202
+
void bind_buffer(VulkanCommand::BindBuffer command)
Bind a Buffer.
Definition: command.cpp:350
+
void bind_descriptor_sets(VulkanCommand::BindDescriptorSets command)
Bind a list of DescriptorSet.
Definition: command.cpp:258
+
void draw(VulkanCommand::Draw draw)
Perform a non-instanced draw.
Definition: command.cpp:216
+
void draw_indexed(VulkanCommand::DrawIndexed draw)
Perform an indexed draw.
Definition: command.cpp:222
+
Represents storage for CommandBuffers.
Definition: command.hpp:478
+
AllocationResult allocate_buffers(const Allocation &alloc)
Allocate some CommandBuffers.
Definition: command.cpp:648
+
Represents a render target for a RenderPass.
Definition: framebuffer.hpp:32
+
Represents an Image owned by the Vulkan API.
Definition: image.hpp:155
+
Definition: image_view.hpp:18
+
Logical interface to an existing PhysicalDevice.
Definition: logical_device.hpp:95
+
Definition: graphics_pipeline.hpp:125
+
Represents an interface between shader stages and shader resources in terms of the layout of a group ...
Definition: pipeline_layout.hpp:25
+
Represents a single hardware Queue.
Definition: queue.hpp:70
+ + + +
PipelineContext
Specifies which pipeline type a RenderPass subpass is expected to bind to.
Definition: render_pass.hpp:40
+
LoadOp
Represents how some resource is loaded.
Definition: render_pass.hpp:14
+
StoreOp
Represents how some resource is stored.
Definition: render_pass.hpp:28
+ + +
PipelineStage
Specifies a certain stage (point of execution) during the invocation of a graphics pipeline.
Definition: queue.hpp:21
+
ImageLayout
Images are always in a layout.
Definition: image.hpp:20
+
Definition: command.hpp:540
+
Specifies information about an allocation of a CommandBuffer or many.
Definition: command.hpp:484
+
std::uint32_t buffer_count
number of CommandBuffers to create.
Definition: command.hpp:486
+
Contains information about the result of a pool allocation.
Definition: command.hpp:493
+
AllocationResultType type
Result description for this specific allocation.
Definition: command.hpp:507
+
tz::basic_list< CommandBuffer > buffers
List of newly-allocated buffers.
Definition: command.hpp:505
+
bool success() const
Query as to whether the allocation was successful or not.
Definition: command.cpp:585
+
AllocationResultType
Describes how well an allocation went.
Definition: command.hpp:499
+
Specifies creation flags for a CommandPool.
Definition: command.hpp:267
+
CommandPoolFlags flags
Specifies extra flags which affect the created command pool.
Definition: command.hpp:271
+
const hardware::Queue * queue
Specifies which hardware queue is expected to act as the executor for the CommandPool's buffers.
Definition: command.hpp:269
+
Definition: command.hpp:278
+ +
Record a beginning of some RenderPass.
Definition: command.hpp:133
+
Framebuffer * framebuffer
Framebuffer containing the RenderPass.
Definition: command.hpp:135
+
Bind a vertex or index Buffer.
Definition: command.hpp:203
+
const Buffer * buffer
Buffer to bind, usage must contain one of BufferUsage::VertexBuffer or BufferUsage::index_buffer.
Definition: command.hpp:205
+
Record a bind of one of more DescriptorSet See CommandBufferRecording::bind_descriptor_sets for usage...
Definition: command.hpp:117
+
std::uint32_t first_set_id
The operation causes the sets [first_set_id, first_set_id + descriptor_sets.length() + 1] to refer to...
Definition: command.hpp:125
+
PipelineContext context
Pipeline bind point.
Definition: command.hpp:121
+
const PipelineLayout * pipeline_layout
PipelineLayout representing the list of layouts matching each provided set.
Definition: command.hpp:119
+
const tz::basic_list< const DescriptorSet * > descriptor_sets
List of DescriptorSet to bind.
Definition: command.hpp:123
+
Bind an index buffer.
Definition: command.hpp:97
+
Record a bind of a GraphicsPipeline.
Definition: command.hpp:107
+
const Pipeline * pipeline
Pipeline to be bound. Must not be null.
Definition: command.hpp:109
+
Record a copy from one Buffer to another.
Definition: command.hpp:158
+
std::size_t src_offset
Offset, in bytes, from the beginning of the source buffer to copy from.
Definition: command.hpp:164
+
std::size_t dst_offset
Offset, in bytes, from the beginning of the destination buffer to copy to.
Definition: command.hpp:166
+
const Buffer * src
Buffer to copy data from. Must not be null.
Definition: command.hpp:160
+
Buffer * dst
Buffer to copy to. Must not be null.
Definition: command.hpp:162
+
Record a copy from one Buffer to an Image.
Definition: command.hpp:175
+
ImageAspectFlags image_aspects
Aspect of image in this context.
Definition: command.hpp:181
+
const Buffer * src
Buffer to copy data from. Must not be null.
Definition: command.hpp:177
+
Image * dst
Buffer to copy to. Must not be null.
Definition: command.hpp:179
+ + +
Definition: command.hpp:20
+
Record a non-indexed draw.
Definition: command.hpp:28
+
std::uint32_t first_instance
Instance ID of the first instance to draw (Default 0).
Definition: command.hpp:36
+
std::uint32_t instance_count
number of instances to draw (Default 1).
Definition: command.hpp:32
+
std::uint32_t first_vertex
Index of the first vertex to draw (Default 0).
Definition: command.hpp:34
+
std::uint32_t vertex_count
number of vertices to draw.
Definition: command.hpp:30
+
Record an indexed draw.
Definition: command.hpp:44
+ +
Record an indexed indirect draw.
Definition: command.hpp:77
+ +
Record an unindexed indirect draw.
Definition: command.hpp:57
+ +
Record the ending of some RenderPass.
Definition: command.hpp:147
+
Framebuffer * framebuffer
Framebuffer containing the RenderPass.
Definition: command.hpp:149
+
Copy data from one image to another.
Definition: command.hpp:190
+
ImageAspectFlags image_aspects
Aspect of both images.
Definition: command.hpp:196
+
const Image * src
Image to copy from.
Definition: command.hpp:192
+
Image * dst
Image to copy to.
Definition: command.hpp:194
+ +
Transition an image layout via recording a pipeline barrier into the CommandBuffer.
Definition: command.hpp:215
+
AccessFlagField source_access
All preceeding operations within the recorded CommandBuffer that satisfy an access method specified h...
Definition: command.hpp:223
+
Image * image
Image to transition.
Definition: command.hpp:217
+
ImageAspectFlags image_aspects
Aspect of image in this context.
Definition: command.hpp:231
+
PipelineStage source_stage
Stage that the barrier blocks after.
Definition: command.hpp:227
+
AccessFlagField destination_access
All succeding operations within the recorded CommandBuffer that satisfy an access method specified he...
Definition: command.hpp:225
+
ImageLayout target_layout
Desired ImageLayout of image after the command has finished execution.
Definition: command.hpp:219
+
tz::basic_list< std::uint32_t > affected_mip_levels
List of affected mip levels. Must be in ascending-order and with no gaps. E.g {0, 1,...
Definition: command.hpp:234
+
PipelineStage destination_stage
Stage that the barrier blocks before.
Definition: command.hpp:229
+
tz::basic_list< std::uint32_t > affected_layers
List of affected array layers. Must be in ascending-order and with no gaps. E.g {0,...
Definition: command.hpp:236
+
Contains all the possible commands which can be recorded within a CommandBuffer.
Definition: command.hpp:18
+
std::variant< Dispatch, Draw, DrawIndexed, DrawIndirect, DrawIndirectCount, DrawIndexedIndirect, DrawIndexedIndirectCount, BindIndexBuffer, BindPipeline, BindDescriptorSets, BeginRenderPass, EndRenderPass, BeginDynamicRendering, EndDynamicRendering, BufferCopyBuffer, BufferCopyImage, ImageCopyImage, BindBuffer, TransitionImageLayout, SetScissorDynamic, DebugBeginLabel, DebugEndLabel > variant
variant type which has alternatives for every single possible recordable command type.
Definition: command.hpp:254
+
+
+ + + + diff --git a/component_8hpp_source.html b/component_8hpp_source.html new file mode 100644 index 0000000000..6a23ac51f7 --- /dev/null +++ b/component_8hpp_source.html @@ -0,0 +1,145 @@ + + + + + + + +Topaz: src/tz/gl/component.hpp Source File + + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.0.0.2 +
+
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..e6484eaf13 --- /dev/null +++ b/concepttz_1_1action.html @@ -0,0 +1,136 @@ + + + + + + + +Topaz: tz::action Concept Reference + + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.0.0.2 +
+
C++20 Graphics Engine
+
+
+ + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
tz::action Concept Reference
+
+
+ +

Just like a tz::function, except will never return anything. +More...

+ +

#include <types.hpp>

+

Concept definition

+
template<typename F, typename... Args>
+
concept tz::action = function<F, void, Args...>
+
Just like a tz::function, except will never return anything.
Definition: types.hpp:47
+
function concept which constrains F to any type that can be called with Args... to produce a Result.
Definition: types.hpp:38
+

Detailed Description

+

Just like a tz::function, except will never return anything.

+

This makes for cleaner syntax.

+
+
+ + + + diff --git a/concepttz_1_1allocator.html b/concepttz_1_1allocator.html new file mode 100644 index 0000000000..a2bb99eda5 --- /dev/null +++ b/concepttz_1_1allocator.html @@ -0,0 +1,133 @@ + + + + + + + +Topaz: tz::allocator Concept Reference + + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.0.0.2 +
+
C++20 Graphics Engine
+
+
+ + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
tz::allocator Concept Reference
+
+
+

Concept definition

+
template<typename T>
+
concept tz::allocator = requires(T t, tz::memblk blk, std::size_t sz)
+
{
+
{t.allocate(sz)} -> std::same_as<tz::memblk>;
+
{t.deallocate(blk)} -> std::same_as<void>;
+
{t.owns(blk)} -> std::same_as<bool>;
+
}
+
Definition: types.hpp:73
+
A non-owning, contiguous block of memory.
Definition: memblk.hpp:12
+
+
+ + + + diff --git a/concepttz_1_1arithmetic.html b/concepttz_1_1arithmetic.html new file mode 100644 index 0000000000..74780e8559 --- /dev/null +++ b/concepttz_1_1arithmetic.html @@ -0,0 +1,134 @@ + + + + + + + +Topaz: tz::arithmetic Concept Reference + + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.0.0.2 +
+
C++20 Graphics Engine
+
+
+ + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
tz::arithmetic Concept Reference
+
+
+ +

An integral type or a floating-point type (including char and bool). +More...

+ +

#include <types.hpp>

+

Concept definition

+
template<typename T>
+
concept tz::arithmetic = std::is_arithmetic_v<std::decay_t<T>>
+
An integral type or a floating-point type (including char and bool).
Definition: types.hpp:13
+

Detailed Description

+

An integral type or a floating-point type (including char and bool).

+
+
+ + + + diff --git a/concepttz_1_1const__type.html b/concepttz_1_1const__type.html new file mode 100644 index 0000000000..d3401e6c59 --- /dev/null +++ b/concepttz_1_1const__type.html @@ -0,0 +1,127 @@ + + + + + + + +Topaz: tz::const_type Concept Reference + + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.0.0.2 +
+
C++20 Graphics Engine
+
+
+ + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
tz::const_type Concept Reference
+
+
+

Concept definition

+
template<typename T>
+
concept tz::const_type = std::is_const_v<T>
+
Definition: types.hpp:16
+
+
+ + + + diff --git a/concepttz_1_1enum__class.html b/concepttz_1_1enum__class.html new file mode 100644 index 0000000000..3092c590be --- /dev/null +++ b/concepttz_1_1enum__class.html @@ -0,0 +1,127 @@ + + + + + + + +Topaz: tz::enum_class Concept Reference + + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.0.0.2 +
+
C++20 Graphics Engine
+
+
+ + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
tz::enum_class Concept Reference
+
+
+

Concept definition

+
template<typename T>
+
concept tz::enum_class = std::is_enum_v<T> && !std::is_convertible_v<T, int>
+
Definition: types.hpp:19
+
+
+ + + + diff --git a/concepttz_1_1function.html b/concepttz_1_1function.html new file mode 100644 index 0000000000..75a59abab9 --- /dev/null +++ b/concepttz_1_1function.html @@ -0,0 +1,138 @@ + + + + + + + +Topaz: tz::function Concept Reference + + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.0.0.2 +
+
C++20 Graphics Engine
+
+
+ + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
tz::function Concept Reference
+
+
+ +

function concept which constrains F to any type that can be called with Args... to produce a Result. +More...

+ +

#include <types.hpp>

+

Concept definition

+
template<typename F, typename Result, typename... Args>
+
concept tz::function = requires(F f, Args... args)
+
{
+
{f(args...)} -> std::convertible_to<Result>;
+
}
+
function concept which constrains F to any type that can be called with Args... to produce a Result.
Definition: types.hpp:38
+

Detailed Description

+

function concept which constrains F to any type that can be called with Args... to produce a Result.

+

This is backend-agnostic, meaning that any invocable backend (func ptr, lambda, functor, you name it...) can be used so long as it matches the signature Result(Args...).

+
+
+ + + + diff --git a/concepttz_1_1gl_1_1buffer__component__type.html b/concepttz_1_1gl_1_1buffer__component__type.html new file mode 100644 index 0000000000..7a5c93106e --- /dev/null +++ b/concepttz_1_1gl_1_1buffer__component__type.html @@ -0,0 +1,132 @@ + + + + + + + +Topaz: tz::gl::buffer_component_type Concept Reference + + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.0.0.2 +
+
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..dd9c8ae371 --- /dev/null +++ b/concepttz_1_1gl_1_1device__type.html @@ -0,0 +1,150 @@ + + + + + + + +Topaz: tz::gl::device_type Concept Reference + + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.0.0.2 +
+
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>;
+
}
+
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..b3ac658589 --- /dev/null +++ b/concepttz_1_1gl_1_1image__component__type.html @@ -0,0 +1,135 @@ + + + + + + + +Topaz: tz::gl::image_component_type Concept Reference + + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.0.0.2 +
+
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
+
+
+ + + + diff --git a/concepttz_1_1gl_1_1renderer__type.html b/concepttz_1_1gl_1_1renderer__type.html new file mode 100644 index 0000000000..60cc95e22b --- /dev/null +++ b/concepttz_1_1gl_1_1renderer__type.html @@ -0,0 +1,158 @@ + + + + + + + +Topaz: tz::gl::renderer_type Concept Reference + + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.0.0.2 +
+
C++20 Graphics Engine
+
+
+ + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
tz::gl::renderer_type Concept Reference
+
+
+ +

Named requirement for a renderer. +More...

+ +

#include <renderer.hpp>

+

Concept definition

+
template<typename T>
+
concept tz::gl::renderer_type = requires(T t, resource_handle r, std::size_t tri_count, const renderer_edit_request& edit_request, const tz::gl::renderer_info& rinfo)
+
{
+
requires tz::nullable<T>;
+
+
{t.resource_count()} -> std::convertible_to<unsigned int>;
+
+
{t.get_resource(r)} -> std::convertible_to<const iresource*>;
+
+
{t.get_component(r)} -> std::convertible_to<const icomponent*>;
+
+
{t.get_output()} -> std::convertible_to<const ioutput*>;
+
+
{t.get_options()} -> std::convertible_to<renderer_options>;
+
{t.get_state()} -> std::convertible_to<render_state>;
+
+
{t.render()} -> std::same_as<void>;
+
+
{t.edit(edit_request)} -> std::same_as<void>;
+
+
{t.dbgui()} -> std::same_as<void>;
+
{t.debug_get_name()} -> std::convertible_to<std::string_view>;
+
}
+
Helper struct which the user can use to specify which inputs, resources they want and where they want...
Definition: renderer.hpp:112
+
Named requirement for a renderer.
Definition: renderer.hpp:333
+
Definition: types.hpp:59
+
std::vector< renderer_edit::variant > renderer_edit_request
Represents an edit to an existing renderer.
Definition: renderer.hpp:291
+

Detailed Description

+

Named requirement for a renderer.

+
+
+ + + + diff --git a/concepttz_1_1job__system__type.html b/concepttz_1_1job__system__type.html new file mode 100644 index 0000000000..5d141421f5 --- /dev/null +++ b/concepttz_1_1job__system__type.html @@ -0,0 +1,151 @@ + + + + + + + +Topaz: tz::job_system_type Concept Reference + + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.0.0.2 +
+
C++20 Graphics Engine
+
+
+ + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
tz::job_system_type Concept Reference
+
+
+ +

API for job system. +More...

+ +

#include <job.hpp>

+

Concept definition

+
template<typename T>
+
concept tz::job_system_type = requires(T t, job_t job, job_handle jh)
+
{
+
+
{t.execute(job)} -> std::same_as<job_handle>;
+
+
{t.block(jh)} -> std::same_as<void>;
+
+
{t.complete(jh)} -> std::same_as<bool>;
+
+
{t.any_work_remaining()} -> std::same_as<bool>;
+
+
{t.block_all()} -> std::same_as<void>;
+
+
{t.size()} -> std::same_as<unsigned int>;
+
}
+
API for job system.
Definition: job.hpp:29
+
std::function< void()> job_t
Represents a job.
Definition: job.hpp:22
+
tz::handle< detail::job_handle_tag > job_handle
Represents a job that has begun execution within a job_system_type.
Definition: job.hpp:16
+

Detailed Description

+

API for job system.

+

See tz::job_system() for usage.

+
+
+ + + + diff --git a/concepttz_1_1native__available.html b/concepttz_1_1native__available.html new file mode 100644 index 0000000000..7bf94ade5c --- /dev/null +++ b/concepttz_1_1native__available.html @@ -0,0 +1,131 @@ + + + + + + + +Topaz: tz::native_available Concept Reference + + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.0.0.2 +
+
C++20 Graphics Engine
+
+
+ + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
tz::native_available Concept Reference
+
+
+

Concept definition

+
template<typename T>
+
concept tz::native_available = requires(T t)
+
{
+
T::NativeType;
+
{t.native()} -> std::same_as<typename T::NativeType>;
+
}
+
Definition: types.hpp:66
+
+
+ + + + diff --git a/concepttz_1_1nullable.html b/concepttz_1_1nullable.html new file mode 100644 index 0000000000..55a5a96bfa --- /dev/null +++ b/concepttz_1_1nullable.html @@ -0,0 +1,131 @@ + + + + + + + +Topaz: tz::nullable Concept Reference + + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.0.0.2 +
+
C++20 Graphics Engine
+
+
+ + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
tz::nullable Concept Reference
+
+
+

Concept definition

+
template<typename T>
+
concept tz::nullable = requires(const T t)
+
{
+
+
{t.is_null()} -> std::same_as<bool>;
+
}
+
Definition: types.hpp:59
+
+
+ + + + diff --git a/concepttz_1_1number.html b/concepttz_1_1number.html new file mode 100644 index 0000000000..64fdf2280b --- /dev/null +++ b/concepttz_1_1number.html @@ -0,0 +1,140 @@ + + + + + + + +Topaz: tz::number Concept Reference + + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.0.0.2 +
+
C++20 Graphics Engine
+
+
+ + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
tz::number Concept Reference
+
+
+ +

A number is any arithmetic type excluding char and bool. +More...

+ +

#include <types.hpp>

+

Concept definition

+
template<typename T>
+
concept tz::number = requires
+
{
+
requires arithmetic<T>;
+
requires !std::is_same_v<std::remove_cvref_t<T>, bool>;
+
requires !std::is_same_v<std::remove_cvref_t<T>, char>;
+
}
+
An integral type or a floating-point type (including char and bool).
Definition: types.hpp:13
+
A number is any arithmetic type excluding char and bool.
Definition: types.hpp:25
+

Detailed Description

+

A number is any arithmetic type excluding char and bool.

+
+
+ + + + diff --git a/concepttz_1_1trivially__copyable.html b/concepttz_1_1trivially__copyable.html new file mode 100644 index 0000000000..2bc4ab3570 --- /dev/null +++ b/concepttz_1_1trivially__copyable.html @@ -0,0 +1,127 @@ + + + + + + + +Topaz: tz::trivially_copyable Concept Reference + + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.0.0.2 +
+
C++20 Graphics Engine
+
+
+ + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
tz::trivially_copyable Concept Reference
+
+
+

Concept definition

+
template<typename T>
+
concept tz::trivially_copyable = std::is_trivially_copyable_v<T>
+
Definition: types.hpp:56
+
+
+ + + + diff --git a/concepttz_1_1wsi_1_1window__api.html b/concepttz_1_1wsi_1_1window__api.html new file mode 100644 index 0000000000..6cb8cf5068 --- /dev/null +++ b/concepttz_1_1wsi_1_1window__api.html @@ -0,0 +1,159 @@ + + + + + + + +Topaz: tz::wsi::window_api Concept Reference + + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.0.0.2 +
+
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.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
+

Detailed Description

+

Represents an API for a window.

+

wsi::window is implemented separately per platform, but all implementations are guaranteed to satisfy this api.

+
+
+ + + + diff --git a/dbgui_8hpp_source.html b/dbgui_8hpp_source.html new file mode 100644 index 0000000000..a7641776fe --- /dev/null +++ b/dbgui_8hpp_source.html @@ -0,0 +1,173 @@ + + + + + + + +Topaz: src/tz/dbgui/dbgui.hpp Source File + + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.0.0.2 +
+
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 "imgui.h"
+
8
+
9#undef assert
+
10
+
11namespace tz::dbgui
+
12{
+
23 struct init_info
+
24 {
+ +
27 };
+
28
+
36 void initialise(init_info info);
+
44 void terminate();
+
45
+
49 void begin_frame();
+
53 void end_frame();
+
54
+
67 inline void run([[maybe_unused]] tz::action auto action)
+
68 {
+
69 #if TZ_DEBUG
+
70 action();
+
71 #endif
+
72 }
+
73
+
75 using game_menu_callback_type = tz::callback<>;
+
76 using game_bar_callback_type = game_menu_callback_type;
+
93 game_menu_callback_type& game_menu();
+
94 game_bar_callback_type& game_bar();
+
95
+
102 bool claims_keyboard();
+
103
+
110 bool claims_mouse();
+
111}
+
112
+
113#endif // TOPAZ_DBGUI_DBGUI_HPP
+
Represents a centralised storage/management of callback functions of a common signature void(Args....
Definition: callback.hpp:31
+
Just like a tz::function, except will never return anything.
Definition: types.hpp:47
+
bool claims_mouse()
Query as to whether the debug-ui is currently using the mouse input.
Definition: dbgui.cpp:139
+
game_menu_callback_type & game_menu()
Retrieve the game menu callback.
Definition: dbgui.cpp:121
+
bool claims_keyboard()
Query as to whether the debug-ui is currently using the keyboard input.
Definition: dbgui.cpp:131
+
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:67
+
Definition: dbgui.hpp:24
+
tz::game_info game_info
Information about the running application.
Definition: dbgui.hpp:26
+
Contains basic information about the target game/application.
Definition: game_info.hpp:18
+
+
+ + + + diff --git a/debug_8hpp_source.html b/debug_8hpp_source.html new file mode 100644 index 0000000000..e7735ba541 --- /dev/null +++ b/debug_8hpp_source.html @@ -0,0 +1,189 @@ + + + + + + + +Topaz: src/tz/core/debug.hpp Source File + + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.0.0.2 +
+
C++20 Graphics Engine
+
+
+ + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
debug.hpp
+
+
+
1#ifndef TZ_DEBUG_HPP
+
2#define TZ_DEBUG_HPP
+
3#include <concepts>
+
4#include <string>
+
5#include <functional>
+
6
+
7#include <version>
+
8#ifdef __cpp_lib_source_location
+
9#include <source_location>
+
10namespace tz::detail
+
11{
+
12 using source_loc = std::source_location;
+
13}
+
14#else
+
15#pragma message("std::source_location support not detected, using a stub instead. Source information in report/assert/error will be wrong.")
+
16#include <cstdint>
+
17namespace tz::detail
+
18{
+ +
20 {
+
21 static source_loc current(){return {};}
+
22 constexpr std::uint_least32_t line() const{return 0;}
+
23 constexpr std::uint_least32_t column() const{return 0;}
+
24 constexpr const char* file_name() const{return "<Unknown>";}
+
25 constexpr const char* function_name() const{return "<Unknown>";}
+
26 };
+
27}
+
28#endif
+
29
+
30#undef assert
+
31
+
32namespace tz
+
33{
+
34 namespace detail
+
35 {
+ +
38 {
+
39 const char* str;
+
40 source_loc loc;
+
41
+
42 constexpr format_string(const char* str, source_loc loc = source_loc::current()):
+
43 str(str), loc(loc){}
+
44 };
+
45 }
+
46
+
51 template<typename... Args>
+
52 void assert(bool condition, detail::format_string fmt = "<No message>", Args&&... args);
+
53
+
58 template<typename... Args>
+
59 void error(detail::format_string fmt = "<No message>", Args&&... args);
+
60
+
65 template<typename... Args>
+
66 void report(detail::format_string fmt, Args&&... args);
+
67
+
68 void debug_break();
+
69}
+
70
+
76#define tz_legacy_assert(cond) tz::assert(cond, "Legacy Assert Detected")
+
77
+
78#include "tz/core/debug.inl"
+
79#endif // TZ_DEBUG_HPP
+
void assert(bool condition, detail::format_string fmt="<No message>", Args &&... args)
Assert on a condition.
Definition: debug.inl:33
+
void error(detail::format_string fmt="<No message>", Args &&... args)
Breakpoint if a debugger is present.
Definition: debug.inl:45
+
void report(detail::format_string fmt, Args &&... args)
Print out the formatted message to standard output, including source location information.
Definition: debug.inl:53
+
C-String wrapper with source-location information secretly present. From a user perspective,...
Definition: debug.hpp:38
+
Definition: debug.hpp:20
+
+
+ + + + diff --git a/debugname_8hpp_source.html b/debugname_8hpp_source.html new file mode 100644 index 0000000000..9e59c5d96b --- /dev/null +++ b/debugname_8hpp_source.html @@ -0,0 +1,157 @@ + + + + + + + +Topaz: src/tz/gl/impl/vulkan/detail/debugname.hpp Source File + + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.0.0.2 +
+
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:67
+
Definition: debugname.hpp:10
+
Logical interface to an existing PhysicalDevice.
Definition: logical_device.hpp:95
+
Definition: handle.hpp:16
+
+
+ + + + diff --git a/declare_2image__format_8hpp_source.html b/declare_2image__format_8hpp_source.html new file mode 100644 index 0000000000..a2452a2d43 --- /dev/null +++ b/declare_2image__format_8hpp_source.html @@ -0,0 +1,320 @@ + + + + + + + +Topaz: src/tz/gl/declare/image_format.hpp Source File + + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.0.0.2 +
+
C++20 Graphics Engine
+
+
+ + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
image_format.hpp
+
+
+
1#ifndef TOPAZ_GL2_DECLARE_IMAGE_FORMAT_HPP
+
2#define TOPAZ_GL2_DECLARE_IMAGE_FORMAT_HPP
+
3#include "tz/core/debug.hpp"
+
4#include <climits>
+
5#include <array>
+
6
+
7namespace tz::gl
+
8{
+
32 enum class image_format
+
33 {
+ +
36 R8,
+
37 R8_UNorm = R8,
+
38 R8_SNorm,
+
39 R8_UInt,
+
40 R8_SInt,
+
41 R8_sRGB,
+
42 R16,
+
43 R16_UNorm = R16,
+
44 R16_SNorm,
+
45 R16_UInt,
+
46 R16_SInt,
+
47 RG16,
+
48 RG16_UNorm = RG16,
+
49 RG16_SNorm,
+
50 RG16_UInt,
+
51 RG16_SInt,
+
52 RG16_sRGB,
+
53 RG32,
+
54 RG32_UNorm = RG32,
+
55 RG32_SNorm,
+
56 RG32_UInt,
+
57 RG32_SInt,
+
58 RGB24,
+
59 RGB24_UNorm = RGB24,
+
60 RGB24_SNorm,
+
61 RGB24_UInt,
+
62 RGB24_SInt,
+
63 RGB24_sRGB,
+
64 BGR24,
+
65 BGR24_UNorm = BGR24,
+
66 BGR24_SNorm,
+
67 BGR24_UInt,
+
68 BGR24_SInt,
+
69 BGR24_sRGB,
+
70 RGBA32,
+
71 RGBA32_UNorm = RGBA32,
+
72 RGBA32_SNorm,
+
73 RGBA32_UInt,
+
74 RGBA32_SInt,
+
75 RGBA32_sRGB,
+
76 BGRA32,
+
77 BGRA32_UNorm = BGRA32,
+
78 BGRA32_SNorm,
+
79 BGRA32_UInt,
+
80 BGRA32_SInt,
+
81 BGRA32_sRGB,
+
82 RGBA64_SFloat,
+
83 RGBA128_SFloat,
+
84 Depth16,
+
85 Depth16_UNorm = Depth16,
+
86 Count
+
87 };
+
88
+
89 constexpr bool is_depth_format(image_format fmt)
+
90 {
+
91 switch(fmt)
+
92 {
+
93 case image_format::Depth16:
+
94 return true;
+
95 break;
+
96 default:
+
97 return false;
+
98 break;
+
99 }
+
100 }
+
101
+
102 constexpr std::size_t pixel_size_bytes(image_format fmt)
+
103 {
+
104 static_assert(CHAR_BIT == 8, "Detected architecture where 1 byte != 8 bits. Topaz does not support this hardware.");
+
105 switch(fmt)
+
106 {
+
107 case image_format::R8_UNorm:
+
108 case image_format::R8_SNorm:
+
109 case image_format::R8_UInt:
+
110 case image_format::R8_SInt:
+
111 case image_format::R8_sRGB:
+
112 return 1;
+
113 break;
+
114 case image_format::R16_UNorm:
+
115 case image_format::R16_SNorm:
+
116 case image_format::R16_UInt:
+
117 case image_format::R16_SInt:
+
118 case image_format::RG16_UNorm:
+
119 case image_format::RG16_SNorm:
+
120 case image_format::RG16_UInt:
+
121 case image_format::RG16_SInt:
+
122 case image_format::RG16_sRGB:
+
123 case image_format::Depth16_UNorm:
+
124 return 2;
+
125 break;
+
126 case image_format::RGB24_UNorm:
+
127 case image_format::RGB24_SNorm:
+
128 case image_format::RGB24_UInt:
+
129 case image_format::RGB24_SInt:
+
130 case image_format::RGB24_sRGB:
+
131 case image_format::BGR24_UNorm:
+
132 case image_format::BGR24_SNorm:
+
133 case image_format::BGR24_UInt:
+
134 case image_format::BGR24_SInt:
+
135 case image_format::BGR24_sRGB:
+
136 return 3;
+
137 break;
+
138 case image_format::RG32_UNorm:
+
139 case image_format::RG32_SNorm:
+
140 case image_format::RG32_UInt:
+
141 case image_format::RG32_SInt:
+
142 case image_format::RGBA32_UNorm:
+
143 case image_format::RGBA32_SNorm:
+
144 case image_format::RGBA32_UInt:
+
145 case image_format::RGBA32_SInt:
+
146 case image_format::RGBA32_sRGB:
+
147 case image_format::BGRA32_UNorm:
+
148 case image_format::BGRA32_SNorm:
+
149 case image_format::BGRA32_UInt:
+
150 case image_format::BGRA32_SInt:
+
151 case image_format::BGRA32_sRGB:
+
152 return 4;
+
153 break;
+
154 case image_format::RGBA64_SFloat:
+
155 return 8;
+
156 break;
+
157 case image_format::RGBA128_SFloat:
+
158 return 16;
+
159 break;
+
160 default:
+
161 tz::error("Unrecognised TZ image_format");
+
162 return 0;
+
163 break;
+
164 }
+
165 return 0;
+
166 }
+
167
+
168 namespace detail
+
169 {
+
170 constexpr std::array<const char*, static_cast<int>(image_format::Count)> image_format_strings =
+
171 {
+
172 "Undefined",
+
173 "R8",
+
174 "R8_SNorm",
+
175 "R8_UInt",
+
176 "R8_SInt",
+
177 "R8_sRGB",
+
178 "R16",
+
179 "R16_SNorm",
+
180 "R16_UInt",
+
181 "R16_SInt",
+
182 "RG16",
+
183 "RG16_SNorm",
+
184 "RG16_UInt",
+
185 "RG16_SInt",
+
186 "RG16_sRGB",
+
187 "RG32_UNorm",
+
188 "RG32_SNorm",
+
189 "RG32_UInt",
+
190 "RG32_SInt",
+
191 "RGB24",
+
192 "RGB24_SNorm",
+
193 "RGB24_UInt",
+
194 "RGB24_SInt",
+
195 "RGB24_sRGB",
+
196 "BGR24",
+
197 "BGR24_SNorm",
+
198 "BGR24_UInt",
+
199 "BGR24_SInt",
+
200 "BGR24_sRGB",
+
201 "RGBA32",
+
202 "RGBA32_SNorm",
+
203 "RGBA32_UInt",
+
204 "RGBA32_SInt",
+
205 "RGBA32_sRGB",
+
206 "BGRA32",
+
207 "BGRA32_SNorm",
+
208 "BGRA32_UInt",
+
209 "BGRA32_SInt",
+
210 "BGRA32_sRGB",
+
211 "RGBA64_SFloat",
+
212 "RGBA128_SFloat",
+
213 "Depth16",
+
214 };
+
215 }
+
216}
+
217
+
218#endif // TOPAZ_GL2_DECLARE_IMAGE_FORMAT_HPP
+
void error(detail::format_string fmt="<No message>", Args &&... args)
Breakpoint if a debugger is present.
Definition: debug.inl:45
+
image_format
Various image formats are supported in Topaz.
Definition: image_format.hpp:33
+ +
+
+ + + + diff --git a/descriptors_8hpp_source.html b/descriptors_8hpp_source.html new file mode 100644 index 0000000000..d0931a85df --- /dev/null +++ b/descriptors_8hpp_source.html @@ -0,0 +1,504 @@ + + + + + + + +Topaz: src/tz/gl/impl/vulkan/detail/descriptors.hpp Source File + + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.0.0.2 +
+
C++20 Graphics Engine
+
+
+ + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
descriptors.hpp
+
+
+
1#ifndef TOPAZ_GL_IMPL_BACKEND_VK2_DESCRIPTORS2_HPP
+
2#define TOPAZ_GL_IMPL_BACKEND_VK2_DESCRIPTORS2_HPP
+
3#include "tz/core/data/basic_list.hpp"
+
4#include "tz/gl/impl/vulkan/detail/buffer.hpp"
+
5#include "tz/gl/impl/vulkan/detail/sampler.hpp"
+
6#include "tz/gl/impl/vulkan/detail/image_view.hpp"
+
7#include <unordered_map>
+
8#include <variant>
+
9
+
10namespace tz::gl::vk2
+
11{
+
15 enum class DescriptorType
+
16 {
+
17 Sampler,
+
18 ImageWithSampler,
+
19 Image,
+
20 StorageImage,
+ + +
23
+
24 Count
+
25 };
+
26
+
27 namespace detail
+
28 {
+
29 constexpr std::array<VkDescriptorType, static_cast<int>(DescriptorType::Count)> vk_desc_types{VK_DESCRIPTOR_TYPE_SAMPLER, VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER, VK_DESCRIPTOR_TYPE_SAMPLED_IMAGE, VK_DESCRIPTOR_TYPE_STORAGE_IMAGE, VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER, VK_DESCRIPTOR_TYPE_STORAGE_BUFFER};
+
30 VkDescriptorType to_desc_type(DescriptorType type);
+
31 }
+
32
+
37 enum class DescriptorFlag
+
38 {
+
40 UpdateAfterBind = VK_DESCRIPTOR_BINDING_UPDATE_AFTER_BIND_BIT,
+
42 UpdateUnusedWhilePending = VK_DESCRIPTOR_BINDING_UPDATE_UNUSED_WHILE_PENDING_BIT,
+
44 PartiallyBound = VK_DESCRIPTOR_BINDING_PARTIALLY_BOUND_BIT,
+
46 VariableCount = VK_DESCRIPTOR_BINDING_VARIABLE_DESCRIPTOR_COUNT_BIT
+
47 };
+
48
+
49 using DescriptorFlags = tz::enum_field<DescriptorFlag>;
+
50
+ +
58 {
+
60 std::size_t binding_count() const;
+
62 bool has_valid_device() const;
+
64 bool device_supports_flags() const;
+
65
+ +
67 {
+
69 DescriptorType type;
+
71 std::uint32_t count;
+ +
74 };
+ + +
79 };
+
80
+ +
86 {
+
87 public:
+ +
92 DescriptorLayout(const DescriptorLayout& copy) = delete;
+ + +
95
+
96 DescriptorLayout& operator=(const DescriptorLayout& rhs) = delete;
+
97 DescriptorLayout& operator=(DescriptorLayout&& rhs);
+
98
+
103 std::size_t binding_count() const;
+
108 std::size_t descriptor_count() const;
+
114 std::size_t descriptor_count_of(DescriptorType type) const;
+
119 std::span<const DescriptorLayoutInfo::BindingInfo> get_bindings() const;
+
120
+
121 const LogicalDevice& get_device() const;
+
122
+
123 using NativeType = VkDescriptorSetLayout;
+
124 NativeType native() const;
+
125
+
126 static DescriptorLayout null();
+
127 bool is_null() const;
+
128 private:
+ +
130 const DescriptorLayoutInfo& get_info() const;
+
131
+
132 VkDescriptorSetLayout descriptor_layout;
+ +
134 };
+
135
+ +
141 {
+
142 public:
+ + + +
159 const LogicalDevice* get_device() const;
+
164 void set_device(const LogicalDevice& device);
+
169 const DescriptorLayoutInfo& get_info() const;
+
174 DescriptorLayout build() const;
+
178 void clear();
+
179 private:
+ +
181 };
+
182
+ +
188 {
+
194 static DescriptorPoolInfo to_fit_layout(const DescriptorLayout& descriptor_layout, std::size_t quantity);
+
198 bool has_valid_device() const;
+
199
+ +
204 {
+
206 std::unordered_map<DescriptorType, std::uint32_t> limits;
+
208 std::uint32_t max_sets = 0;
+ +
211 };
+
212
+ + +
217 };
+
218
+
219
+ +
225 {
+
226 public:
+
230 struct Write
+
231 {
+ +
236 {
+ +
240 std::size_t buffer_offset;
+
242 std::size_t buffer_write_size;
+
243 };
+
244
+ +
249 {
+ + +
254 };
+
255 using WriteInfo = std::variant<BufferWriteInfo, ImageWriteInfo>;
+
256
+ +
260 std::uint32_t binding_id;
+
262 std::uint32_t array_element;
+
264 std::vector<WriteInfo> write_infos;
+
265 };
+ +
267
+ +
274 {
+
275 public:
+
284 void set_buffer(std::uint32_t binding_id, Write::BufferWriteInfo buffer_write, std::uint32_t array_index = 0);
+
293 void set_image(std::uint32_t binding_id, Write::ImageWriteInfo image_write, std::uint32_t array_index = 0);
+ +
301 const DescriptorSet& get_set() const;
+
302 friend class DescriptorSet;
+
303 private:
+ +
305
+
306 DescriptorSet* set;
+
307 DescriptorSet::WriteList write_info;
+
308 };
+
309
+
310 friend class DescriptorPool;
+
311 using NativeType = VkDescriptorSet;
+
312 NativeType native() const;
+
313
+
314 std::size_t get_set_id() const;
+
319 const DescriptorLayout& get_layout() const;
+
320 void set_layout(const DescriptorLayout& layout);
+ +
326 private:
+
328 DescriptorSet(std::size_t set_id, const DescriptorLayout& layout, NativeType native);
+
329 VkDescriptorSet set;
+
330 std::uint32_t set_id;
+
331 const DescriptorLayout* layout;
+
332 };
+
333
+ +
339 {
+
340 public:
+ +
343 {
+ +
346 };
+
347
+ +
350 {
+
351 AllocationResult() = default;
+
352 AllocationResult(AllocationResult&& move) = default;
+
353 AllocationResult& operator=(AllocationResult&& rhs)
+
354 {
+
355 const DescriptorLayout* lhs_layout = nullptr;
+
356 const DescriptorLayout* rhs_layout = nullptr;
+
357 if(this->sets.length())
+
358 {
+
359 lhs_layout = &this->sets.front().get_layout();
+
360 }
+
361 if(rhs.sets.length())
+
362 {
+
363 rhs_layout = &rhs.sets.front().get_layout();
+
364 }
+
365 if(lhs_layout != nullptr)
+
366 {
+
367 for(auto& set : rhs.sets)
+
368 {
+
369 set.set_layout(*lhs_layout);
+
370 }
+
371 }
+
372 if(rhs_layout != nullptr)
+
373 {
+
374 for(auto& set : this->sets)
+
375 {
+
376 set.set_layout(*rhs_layout);
+
377 }
+
378 }
+
379 std::swap(this->sets, rhs.sets);
+
380 std::swap(this->type, rhs.type);
+
381 return *this;
+
382 }
+
384 bool success() const;
+
385
+ +
388 {
+ + + + +
397 };
+
398
+ + +
403 };
+
404
+ +
411 {
+
412 public:
+ +
420 std::span<const DescriptorSet::EditRequest> get_set_edits() const;
+
421 friend class DescriptorPool;
+
422 private:
+ +
424
+
425 DescriptorPool* pool;
+
426 std::vector<DescriptorSet::EditRequest> set_edits;
+
427 };
+
428
+ +
430 DescriptorPool(const DescriptorPool& copy) = delete;
+ + +
433
+
434 DescriptorPool& operator=(const DescriptorPool& rhs) = delete;
+
435 DescriptorPool& operator=(DescriptorPool&& rhs);
+
436
+
441 bool contains(const DescriptorSet& set) const;
+
442
+
446 const LogicalDevice& get_device() const;
+ + +
460 void update_sets(UpdateRequest update_request);
+
466 void update_sets(const DescriptorSet::WriteList& writes);
+
470 void clear();
+
471
+
472 static DescriptorPool null();
+
473 bool is_null() const;
+
474 private:
+ +
476
+
477 VkDescriptorPool pool;
+ +
479 std::vector<DescriptorSet::NativeType> allocated_set_natives;
+
480 };
+
481
+ +
483 {
+
484 DescriptorData() = default;
+ +
486 {
+
487 *this = std::move(move);
+
488 }
+
489 DescriptorData& operator=(DescriptorData&& rhs)
+
490 {
+
491 std::swap(this->layout, rhs.layout);
+
492 std::swap(this->data, rhs.data);
+
493 for(auto& set : this->data.sets)
+
494 {
+
495 set.set_layout(this->layout);
+
496 }
+
497 return *this;
+
498 }
+
499 vk2::DescriptorLayout layout = vk2::DescriptorLayout::null();
+ +
501 };
+
502}
+
503
+
504#endif // TOPAZ_GL_IMPL_BACKEND_VK2_DESCRIPTORS2_HPP
+
Custom list, feature subset of std::vector.
Definition: basic_list.hpp:21
+
Container for enum values, useful for vintage bitfield types.
Definition: enum_field.hpp:16
+
Implements tz::gl::device_type.
Definition: device.hpp:67
+
Represents a linear array of data which can be used for various purposes.
Definition: buffer.hpp:56
+
Helper class to populate a DescriptorLayoutInfo.
Definition: descriptors.hpp:141
+
DescriptorLayout build() const
Create a new DescriptorLayout based upon this builder.
Definition: descriptors.cpp:86
+
DescriptorLayoutBuilder & with_binding(DescriptorLayoutInfo::BindingInfo binding)
Add a new binding.
Definition: descriptors.cpp:65
+
const DescriptorLayoutInfo & get_info() const
Retrieve the info structure corresponding to this builder.
Definition: descriptors.cpp:81
+
DescriptorLayoutBuilder()=default
Create a builder starting with no bindings.
+
void set_device(const LogicalDevice &device)
Set which LogicalDevice will be used to construct the resultant layout.
Definition: descriptors.cpp:76
+
void clear()
Undo all information, including bindings and device info back to default settings.
Definition: descriptors.cpp:91
+
const LogicalDevice * get_device() const
Retrieve the LogicalDevice which will be used to construct the resultant layout.
Definition: descriptors.cpp:71
+
Specifies the types of resources that will be accessed by a graphics or compute pipeline via a Shader...
Definition: descriptors.hpp:86
+
std::size_t descriptor_count_of(DescriptorType type) const
Retrieve the total number of descriptors of the given type in all of the bindings.
Definition: descriptors.cpp:209
+
std::span< const DescriptorLayoutInfo::BindingInfo > get_bindings() const
Retrieve a read-only view into the bindings data for the layout.
Definition: descriptors.cpp:223
+
std::size_t binding_count() const
Retrieve the number of bindings within the layout.
Definition: descriptors.cpp:194
+
std::size_t descriptor_count() const
Retrieve the total number of descriptors in all of the bindings.
Definition: descriptors.cpp:199
+
Specifies a requests to update zero or more DescriptorSets owned by an existing DescriptorPool.
Definition: descriptors.hpp:411
+
void add_set_edit(DescriptorSet::EditRequest set_edit)
Add an edit for a DescriptorSet.
Definition: descriptors.cpp:376
+
std::span< const DescriptorSet::EditRequest > get_set_edits() const
Retrieve all DescriptorSet edit requests added so far.
Definition: descriptors.cpp:382
+
Represents storage for DescriptorSets.
Definition: descriptors.hpp:339
+
AllocationResult allocate_sets(const Allocation &alloc)
Allocate some DescriptorSets.
Definition: descriptors.cpp:485
+
void update_sets(UpdateRequest update_request)
Issue an update request to any DescriptorSets owned by this pool.
Definition: descriptors.cpp:573
+
UpdateRequest make_update_request()
Retrieve an empty update request for this pool.
Definition: descriptors.cpp:568
+
bool contains(const DescriptorSet &set) const
Query as to whether an existing DescriptorSet was allocated from this pool.
Definition: descriptors.cpp:474
+
const LogicalDevice & get_device() const
Retrieve the LogicalDevice which was used to create the pool.
Definition: descriptors.cpp:479
+
void clear()
Purge all DescriptorSets.
Definition: descriptors.cpp:689
+
Request structure representing zero or more descriptor changes for this set.
Definition: descriptors.hpp:274
+
const DescriptorSet & get_set() const
Retrieve the DescriptorSet which this request is intending to edit.
Definition: descriptors.cpp:331
+
void set_image(std::uint32_t binding_id, Write::ImageWriteInfo image_write, std::uint32_t array_index=0)
Request that the image at the given binding at the provided array index refers to an existing Image.
Definition: descriptors.cpp:305
+
DescriptorSet::WriteList to_write_list() const
Retrieve a basic list of writes corresponding to all requested edits so far.
Definition: descriptors.cpp:326
+
void set_buffer(std::uint32_t binding_id, Write::BufferWriteInfo buffer_write, std::uint32_t array_index=0)
Request that the buffer at the given binding at the provided array index refers to an existing Buffer...
Definition: descriptors.cpp:283
+
Represents a set of one or more descriptors.
Definition: descriptors.hpp:225
+
const DescriptorLayout & get_layout() const
Retrieve the DescriptorLayout which this set matches.
Definition: descriptors.cpp:350
+
EditRequest make_edit_request()
Retrieve an empty request for this set.
Definition: descriptors.cpp:360
+
Definition: image_view.hpp:18
+
Logical interface to an existing PhysicalDevice.
Definition: logical_device.hpp:95
+
Represents the state of an Image sampler which is used to read image data and apply filtering and oth...
Definition: sampler.hpp:71
+ + +
DescriptorFlag
Information about a specific descriptor (or array of descriptors) via a descriptor layout binding.
Definition: descriptors.hpp:38
+ + + + +
Definition: descriptors.hpp:483
+ +
DescriptorFlags flags
Do we have any extra flags?
Definition: descriptors.hpp:73
+
DescriptorType type
What is the type of the descriptor?
Definition: descriptors.hpp:69
+
std::uint32_t count
How many are at this binding? If more than 1, we are an array.
Definition: descriptors.hpp:71
+
Specifies creation flags for a descriptor set layout.
Definition: descriptors.hpp:58
+
bool device_supports_flags() const
BindingInfos might contain flags that are only optionally supported. This method returns a bool as to...
Definition: descriptors.cpp:27
+
std::size_t binding_count() const
Retrieve the number of bindings.
Definition: descriptors.cpp:17
+
tz::basic_list< BindingInfo > bindings
List of all descriptor bindings in the layout.
Definition: descriptors.hpp:76
+
bool has_valid_device() const
Query as to whether the LogicalDevice logical_device is a valid device. That is, the device is not nu...
Definition: descriptors.cpp:22
+
const LogicalDevice * logical_device
LogicalDevice which will be creating the resultant DescriptorLayout. This must not be null or a null ...
Definition: descriptors.hpp:78
+
Specifies information about a DescriptorPool allocation.
Definition: descriptors.hpp:343
+
tz::basic_list< const DescriptorLayout * > set_layouts
List of layouts for each set. When an allocation is performed, a list of DescriptorSets is returned....
Definition: descriptors.hpp:345
+
Specifies information about the resultant of an invocation to DescriptorPool::allocate_sets.
Definition: descriptors.hpp:350
+
bool success() const
Returns true if the allocation was successful.
Definition: descriptors.cpp:371
+
tz::basic_list< DescriptorSet > sets
List of allocated sets. If type == AllocationResultType::Success, this contains a list of valid Descr...
Definition: descriptors.hpp:400
+
AllocationResultType
Allocations can succeed, or fail in various ways.
Definition: descriptors.hpp:388
+ + + + +
AllocationResultType type
Describes how the allocation went. Allocations can fail.
Definition: descriptors.hpp:402
+
Structure specifying limits for a DescriptorPool.
Definition: descriptors.hpp:204
+
std::uint32_t max_sets
Maximum number of sets that can be allocated from the pool, regardless of layout.
Definition: descriptors.hpp:208
+
bool supports_update_after_bind
True if any of the descriptors should be able to be updated after bind. This is true if bindless desc...
Definition: descriptors.hpp:210
+
std::unordered_map< DescriptorType, std::uint32_t > limits
Map of the maximum number of descriptors for each type. If a type does not exist within the map,...
Definition: descriptors.hpp:206
+
Specifies creation flags for a descriptor pool.
Definition: descriptors.hpp:188
+
bool has_valid_device() const
Query as to whether the provided LogicalDevice is valid.
Definition: descriptors.cpp:278
+
PoolLimits limits
Specifies the limits for the created pool.
Definition: descriptors.hpp:214
+
static DescriptorPoolInfo to_fit_layout(const DescriptorLayout &descriptor_layout, std::size_t quantity)
Create a PoolInfo large enough such that quantity descriptor sets each matching layout can be allocat...
Definition: descriptors.cpp:259
+
const LogicalDevice * logical_device
LogicalDevice which will be used to create the pool.
Definition: descriptors.hpp:216
+
Specifies information about having a descriptor refer to an existing Buffer.
Definition: descriptors.hpp:236
+
std::size_t buffer_write_size
number of bytes from the buffer to associate with the descriptor.
Definition: descriptors.hpp:242
+
std::size_t buffer_offset
Offset, in bytes, from the start of the buffer data.
Definition: descriptors.hpp:240
+
const Buffer * buffer
Buffer to refer to. Must not be nullptr.
Definition: descriptors.hpp:238
+
Specifies information about having a descriptor refer to an existing Image.
Definition: descriptors.hpp:249
+
const ImageView * image_view
ImageView to use. Must not be nullptr and must refer to a valid Image.
Definition: descriptors.hpp:253
+
const Sampler * sampler
Sampler to use. Must not be nullptr.
Definition: descriptors.hpp:251
+
Specifies information about writing to a specific element of the descriptor set via binding id.
Definition: descriptors.hpp:231
+
const DescriptorSet * set
Specifies which set we are working on. Must not be null.
Definition: descriptors.hpp:258
+
std::uint32_t array_element
Zero or the element of the descriptor array we would like to start writes to.
Definition: descriptors.hpp:262
+
std::uint32_t binding_id
Specifies the binding-id at which the descriptor/descriptor array will be written to.
Definition: descriptors.hpp:260
+
std::vector< WriteInfo > write_infos
List of writes to the descriptor array.
Definition: descriptors.hpp:264
+
+
+ + + + diff --git a/device2_8hpp_source.html b/device2_8hpp_source.html new file mode 100644 index 0000000000..90aeda52a6 --- /dev/null +++ b/device2_8hpp_source.html @@ -0,0 +1,309 @@ + + + + + + + +Topaz: src/tz/gl/impl/vulkan/device2.hpp Source File + + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.0.0.2 +
+
C++20 Graphics Engine
+
+
+ + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
device2.hpp
+
+
+
1#ifndef TZ_GL_IMPL_VULKAN_DEVICE_HPP
+
2#define TZ_GL_IMPL_VULKAN_DEVICE_HPP
+
3#if TZ_VULKAN
+
4#include "tz/core/data/vector.hpp"
+
5#include "tz/gl/api/device.hpp"
+
6#include "tz/gl/impl/vulkan/renderer2.hpp"
+
7#include "tz/gl/impl/vulkan/detail/swapchain.hpp"
+
8#include "tz/gl/impl/vulkan/detail/image.hpp"
+
9#include "tz/gl/impl/vulkan/detail/semaphore.hpp"
+
10#include "tz/gl/impl/vulkan/detail/descriptors.hpp"
+
11#include "tz/gl/impl/vulkan/detail/command.hpp"
+
12#include <unordered_map>
+
13#include <deque>
+
14
+
15namespace tz::gl
+
16{
+ +
18 {
+
19 public:
+ +
21 const vk2::LogicalDevice& vk_get_logical_device() const;
+
22 vk2::LogicalDevice& vk_get_logical_device();
+
23 std::size_t vk_get_frame_id() const{return this->frame_id;}
+
24 protected:
+
25 void touch_renderer_id(unsigned int fingerprint, std::size_t renderer_id);
+
26 std::size_t get_rid(unsigned int fingerprint) const;
+
27
+
28 std::size_t frame_id = 0;
+
29 std::size_t frame_counter = 0;
+
30 std::size_t global_timeline = 0;
+
31 std::unordered_map<unsigned int, std::size_t> fingerprint_to_renderer_id = {};
+ +
33 };
+
34
+ +
36 {
+
37 public:
+ +
39 tz::gl::image_format get_window_format() const;
+
40 const vk2::Swapchain& get_swapchain() const;
+
41 vk2::Swapchain& get_swapchain();
+
42 const vk2::Image& get_depth_image() const;
+
43 vk2::Image& get_depth_image();
+
52 const vk2::BinarySemaphore& acquire_image(const vk2::Fence* signal_fence);
+
53 std::size_t get_image_index() const;
+
54 std::span<vk2::BinarySemaphore> get_image_semaphores();
+
55 const vk2::Swapchain::ImageAcquisitionResult* get_recent_acquire() const;
+
56 void vk_acquire_done();
+
57 void vk_notify_resize();
+
58 private:
+
59 void make_depth_image();
+
60 void initialise_image_semaphores();
+
61 void debug_annotate_resources();
+ +
63 vk2::Image device_depth = vk2::Image::null();
+
64 tz::vec2ui dimensions_cache = tz::vec2ui::zero();
+
65 std::optional<vk2::Swapchain::ImageAcquisitionResult> recent_acquire = std::nullopt;
+
66 std::vector<vk2::BinarySemaphore> image_semaphores = {};
+
67 };
+
68
+ +
70 {
+
71 public:
+ +
73 void vk_frame_wait(unsigned int fingerprint);
+
74 const tz::gl::schedule& get_schedule() const;
+
75 const tz::gl::timeline_t& get_timeline() const;
+
76 std::vector<const vk2::Semaphore*> vk_get_dependency_waits(unsigned int fingerprint);
+
77 std::vector<const vk2::Semaphore*> vk_get_dependency_signals(unsigned int fingerprint);
+
78 protected:
+
79 std::span<vk2::TimelineSemaphore> get_frame_sync_objects();
+
80 std::span<vk2::TimelineSemaphore> get_dependency_sync_objects();
+
81 std::uint64_t get_sync_id(std::size_t renderer_id) const;
+
82 std::uint64_t get_renderer_sync_id(unsigned int fingerprint) const;
+
83 private:
+
84 const tz::gl::schedule& sched;
+
85 std::vector<vk2::TimelineSemaphore> dependency_syncs = {};
+
86 std::vector<vk2::TimelineSemaphore> frame_syncs = {};
+
87 };
+
88
+ +
90 {
+
91 public:
+ +
93 vk2::DescriptorPool::UpdateRequest vk_make_update_request(unsigned int fingerprint);
+
94 vk2::DescriptorPool::AllocationResult vk_allocate_sets(const vk2::DescriptorPool::Allocation& alloc, unsigned int fingerprint);
+
95 void vk_update_sets(vk2::DescriptorPool::UpdateRequest update, unsigned int fingerprint);
+
96 private:
+
97 vk2::DescriptorPool& get_pool(unsigned int fingerprint);
+
98 vk2::DescriptorPool::AllocationResult impl_allocate_sets(const vk2::DescriptorPool::Allocation& alloc, unsigned int fingerprint, unsigned int attempt);
+
99 void another_pool();
+
100 void another_pool(std::size_t set_count, std::size_t buf_count, std::size_t img_count);
+
101 std::deque<vk2::DescriptorPool> pools = {};
+
102 std::unordered_map<unsigned int, std::size_t> fingerprint_to_pool_id = {};
+
103 };
+
104
+ +
106 {
+
107 public:
+ +
109 {
+
110 bool compute = false;
+
111 bool requires_present = true;
+
112 };
+ +
114 vk2::CommandPool::AllocationResult vk_allocate_commands(const vk2::CommandPool::Allocation& alloc, unsigned int fingerprint);
+
115 void vk_free_commands(unsigned int fingerprint, std::size_t allocation_id, std::span<vk2::CommandBuffer> command_buffers);
+
116 void vk_command_pool_touch(unsigned int fingerprint, fingerprint_info_t finfo);
+
117 void vk_submit_and_run_commands_blocking(unsigned int fingerprint, std::size_t allocation_id, std::size_t buffer_id, const vk2::CommandBuffer& buffer);
+
118 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);
+ +
126 private:
+
127 struct allocation_history
+
128 {
+ + +
131 };
+
132 vk2::CommandPool::AllocationResult impl_allocate_commands(const vk2::CommandPool::Allocation& alloc, unsigned int fingerprint, unsigned int attempt);
+
133 vk2::CommandPool& get_fitting_pool(const fingerprint_info_t& finfo);
+
134 vk2::hardware::Queue* get_original_queue(const fingerprint_info_t& finfo);
+
135 vk2::hardware::Queue* graphics_queue = nullptr;
+
136 vk2::hardware::Queue* graphics_present_queue = nullptr;
+
137 vk2::hardware::Queue* compute_queue = nullptr;
+
138 vk2::CommandPool graphics_commands = vk2::CommandPool::null();
+
139 vk2::CommandPool graphics_present_commands = vk2::CommandPool::null();
+
140 vk2::CommandPool compute_commands = vk2::CommandPool::null();
+
141 std::unordered_map<unsigned int, fingerprint_info_t> fingerprint_alloc_types = {};
+
142 std::unordered_map<unsigned int, std::vector<vk2::CommandPool::Allocation>> fingerprint_allocation_history = {};
+
143 };
+
144
+ +
146 public device_common<renderer_vulkan2>,
+ +
148 {
+
149 public:
+ + +
152 tz::gl::renderer_handle create_renderer(const tz::gl::renderer_info& rinfo);
+
153 using device_common<renderer_vulkan2>::get_renderer;
+
154 void dbgui();
+
155 void begin_frame(){}
+
156 void end_frame();
+
157 };
+ +
159}
+
160
+
161#endif // TZ_VULKAN
+
162#endif // TZ_GL_IMPL_VULKAN_DEVICE_HPP
+
Custom list, feature subset of std::vector.
Definition: basic_list.hpp:21
+
Definition: device2.hpp:106
+
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:653
+
Definition: device.hpp:36
+
Definition: device2.hpp:90
+
Definition: device2.hpp:70
+
Definition: device2.hpp:148
+
Definition: device2.hpp:18
+
Definition: device2.hpp:36
+
const vk2::BinarySemaphore & acquire_image(const vk2::Fence *signal_fence)
acquire an image from the underlying presentation engine.
Definition: device2.cpp:224
+
Helper struct which the user can use to specify which inputs, resources they want and where they want...
Definition: renderer.hpp:112
+
Definition: renderer2.hpp:199
+
Synchronisation primitive which is not interactable on the host and which has two states:
Definition: semaphore.hpp:22
+
Represents storage for vulkan commands, such as draw calls, binds, transfers etc.....
Definition: command.hpp:427
+
Represents storage for CommandBuffers.
Definition: command.hpp:478
+
Specifies a requests to update zero or more DescriptorSets owned by an existing DescriptorPool.
Definition: descriptors.hpp:411
+
Represents storage for DescriptorSets.
Definition: descriptors.hpp:339
+
Synchronisation primitive which is useful to detect completion of a GPU operation,...
Definition: fence.hpp:26
+
Represents an Image owned by the Vulkan API.
Definition: image.hpp:155
+
Logical interface to an existing PhysicalDevice.
Definition: logical_device.hpp:95
+
Swapchains are infrastructures which represent GPU images we will render to before they can be presen...
Definition: swapchain.hpp:32
+
static Swapchain null()
Create a Swapchain which doesn't do anything.
Definition: swapchain.cpp:184
+
Represents a single hardware Queue.
Definition: queue.hpp:70
+
PresentResult
Describes the result of a presentation request. See Queue::present.
Definition: queue.hpp:104
+ + +
static constexpr vector< T, S > zero()
Create a vector filled entirely with zeros.
Definition: vector.hpp:23
+
Named Requirement: device Implemented by tz_gl2_device.
Definition: device.hpp:21
+ +
image_format
Various image formats are supported in Topaz.
Definition: image_format.hpp:33
+ +
Definition: schedule.hpp:30
+
Definition: schedule.hpp:20
+
Specifies information about an allocation of a CommandBuffer or many.
Definition: command.hpp:484
+
Contains information about the result of a pool allocation.
Definition: command.hpp:493
+
Specifies information about a DescriptorPool allocation.
Definition: descriptors.hpp:343
+
Specifies information about the resultant of an invocation to DescriptorPool::allocate_sets.
Definition: descriptors.hpp:350
+ +
+
+ + + + diff --git a/device_8hpp_source.html b/device_8hpp_source.html new file mode 100644 index 0000000000..91e5ed8fd7 --- /dev/null +++ b/device_8hpp_source.html @@ -0,0 +1,145 @@ + + + + + + + +Topaz: src/tz/gl/device.hpp Source File + + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.0.0.2 +
+
C++20 Graphics Engine
+
+
+ + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
device.hpp
+
+
+
1#ifndef TOPAZ_GL2_DEVICE_HPP
+
2#define TOPAZ_GL2_DEVICE_HPP
+
3
+
4#if TZ_VULKAN
+
5#include "tz/gl/impl/vulkan/device2.hpp"
+
6#elif TZ_OGL
+
7#include "tz/gl/impl/opengl/device.hpp"
+
8#endif
+
9namespace tz::gl
+
10{
+
11 #if TZ_VULKAN
+
12 using device = device_vulkan2;
+
13 #elif TZ_OGL
+
14 using device = device_ogl;
+
15 #endif
+
16
+
23 device& get_device();
+
24 void destroy_device();
+
25}
+
26
+
27#endif // TOPAZ_GL2_DEVICE_HPP
+
device & get_device()
Retrieve the global device.
Definition: device.cpp:9
+
+
+ + + + diff --git a/dir_02f2e0a3d14e12ea8c919b5199048d38.html b/dir_02f2e0a3d14e12ea8c919b5199048d38.html new file mode 100644 index 0000000000..61ec662e01 --- /dev/null +++ b/dir_02f2e0a3d14e12ea8c919b5199048d38.html @@ -0,0 +1,129 @@ + + + + + + + +Topaz: src/tz/core/job/impl/threadpool_lfq Directory Reference + + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.0.0.2 +
+
C++20 Graphics Engine
+
+
+ + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
threadpool_lfq Directory Reference
+
+
+ + + + +

+Files

file  job.hpp [code]
 
+
+
+ + + + diff --git a/dir_03d1be8c56fea626d5074aa0bf9e39b5.html b/dir_03d1be8c56fea626d5074aa0bf9e39b5.html new file mode 100644 index 0000000000..4acf9d4c81 --- /dev/null +++ b/dir_03d1be8c56fea626d5074aa0bf9e39b5.html @@ -0,0 +1,123 @@ + + + + + + + +Topaz: tools/tzslc/shaders Directory Reference + + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.0.0.2 +
+
C++20 Graphics Engine
+
+
+ + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
shaders Directory Reference
+
+
+
+
+ + + + diff --git a/dir_077aa3e7ad07f4935cea84796bc75f1e.html b/dir_077aa3e7ad07f4935cea84796bc75f1e.html new file mode 100644 index 0000000000..b623425ca1 --- /dev/null +++ b/dir_077aa3e7ad07f4935cea84796bc75f1e.html @@ -0,0 +1,129 @@ + + + + + + + +Topaz: src/tz/core/job/impl/stdasync Directory Reference + + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.0.0.2 +
+
C++20 Graphics Engine
+
+
+ + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
stdasync Directory Reference
+
+
+ + + + +

+Files

file  job.hpp [code]
 
+
+
+ + + + diff --git a/dir_08a9ab9f761476898a1bf8c3b193f50f.html b/dir_08a9ab9f761476898a1bf8c3b193f50f.html new file mode 100644 index 0000000000..a0562f4cbe --- /dev/null +++ b/dir_08a9ab9f761476898a1bf8c3b193f50f.html @@ -0,0 +1,162 @@ + + + + + + + +Topaz: src/tz/core Directory Reference + + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.0.0.2 +
+
C++20 Graphics Engine
+
+
+ + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
core Directory Reference
+
+
+ + + + + + + + + + +

+Directories

directory  algorithms
 
directory  data
 
directory  job
 
directory  memory
 
+ + + + + + + + + + + + + + + + + + + + + + + + + +

+Files

file  callback.hpp [code]
 
file  debug.hpp [code]
 
file  engine_info.hpp [code]
 
file  game_info.hpp [code]
 
file  imported_text.hpp [code]
 
file  macros.hpp [code]
 
file  matrix.hpp [code]
 
file  matrix_transform.hpp [code]
 
file  profile.hpp [code]
 
file  time.hpp [code]
 
file  types.hpp [code]
 
file  tz_core.hpp [code]
 
+
+
+ + + + diff --git a/dir_16fd950ee6de1160473212027e88d072.html b/dir_16fd950ee6de1160473212027e88d072.html new file mode 100644 index 0000000000..4f14125d3d --- /dev/null +++ b/dir_16fd950ee6de1160473212027e88d072.html @@ -0,0 +1,129 @@ + + + + + + + +Topaz: src/tz/core/job/api Directory Reference + + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.0.0.2 +
+
C++20 Graphics Engine
+
+
+ + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
api Directory Reference
+
+
+ + + + +

+Files

file  job.hpp [code]
 
+
+
+ + + + diff --git a/dir_173d7eb180c4d4693124e94b33941768.html b/dir_173d7eb180c4d4693124e94b33941768.html new file mode 100644 index 0000000000..cc186b5ae9 --- /dev/null +++ b/dir_173d7eb180c4d4693124e94b33941768.html @@ -0,0 +1,140 @@ + + + + + + + +Topaz: src/tz Directory Reference + + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.0.0.2 +
+
C++20 Graphics Engine
+
+
+ + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
tz Directory Reference
+
+
+ + + + + + + + + + +

+Directories

directory  core
 
directory  dbgui
 
directory  gl
 
directory  wsi
 
+ + + +

+Files

file  tz.hpp [code]
 
+
+
+ + + + diff --git a/dir_1a542401272435b03e55911aefd67b06.html b/dir_1a542401272435b03e55911aefd67b06.html new file mode 100644 index 0000000000..bf9161d1dc --- /dev/null +++ b/dir_1a542401272435b03e55911aefd67b06.html @@ -0,0 +1,147 @@ + + + + + + + +Topaz: src/tz/gl/impl/opengl/detail Directory Reference + + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.0.0.2 +
+
C++20 Graphics Engine
+
+
+ + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
detail Directory Reference
+
+
+ + + + + + + + + + + + + + + + + + + + + + +

+Files

file  buffer.hpp [code]
 
file  draw.hpp [code]
 
file  framebuffer.hpp [code]
 
file  image.hpp [code]
 
file  image_format.hpp [code]
 
file  renderbuffer.hpp [code]
 
file  sampler.hpp [code]
 
file  shader.hpp [code]
 
file  tz_opengl.hpp [code]
 
file  vertex_array.hpp [code]
 
+
+
+ + + + diff --git a/dir_1c4f7d2715376c7e8e07b2905ea8081c.html b/dir_1c4f7d2715376c7e8e07b2905ea8081c.html new file mode 100644 index 0000000000..6295c9b110 --- /dev/null +++ b/dir_1c4f7d2715376c7e8e07b2905ea8081c.html @@ -0,0 +1,129 @@ + + + + + + + +Topaz: tools/tzslc Directory Reference + + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.0.0.2 +
+
C++20 Graphics Engine
+
+
+ + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
tzslc Directory Reference
+
+
+ + + + +

+Directories

directory  shaders
 
+
+
+ + + + diff --git a/dir_2839e2afe9c7157331d4564f06d50ecc.html b/dir_2839e2afe9c7157331d4564f06d50ecc.html new file mode 100644 index 0000000000..922763dcd1 --- /dev/null +++ b/dir_2839e2afe9c7157331d4564f06d50ecc.html @@ -0,0 +1,131 @@ + + + + + + + +Topaz: src/tz/gl/impl/vulkan/detail/hardware Directory Reference + + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.0.0.2 +
+
C++20 Graphics Engine
+
+
+ + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
hardware Directory Reference
+
+
+ + + + + + +

+Files

file  physical_device.hpp [code]
 
file  queue.hpp [code]
 
+
+
+ + + + diff --git a/dir_4be1570a6330a47622cf617327fcd334.html b/dir_4be1570a6330a47622cf617327fcd334.html new file mode 100644 index 0000000000..caa99f347c --- /dev/null +++ b/dir_4be1570a6330a47622cf617327fcd334.html @@ -0,0 +1,178 @@ + + + + + + + +Topaz: src/tz/gl/impl/vulkan/detail Directory Reference + + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.0.0.2 +
+
C++20 Graphics Engine
+
+
+ + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
detail Directory Reference
+
+
+ + + + +

+Directories

directory  hardware
 
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Files

file  buffer.hpp [code]
 
file  command.hpp [code]
 
file  debugname.hpp [code]
 
file  descriptors.hpp [code]
 
file  draw.hpp [code]
 
file  extensions.hpp [code]
 
file  features.hpp [code]
 
file  fence.hpp [code]
 
file  fixed_function.hpp [code]
 
file  framebuffer.hpp [code]
 
file  gpu_mem.hpp [code]
 
file  graphics_pipeline.hpp [code]
 
file  image.hpp [code]
 
file  image_format.hpp [code]
 
file  image_view.hpp [code]
 
file  logical_device.hpp [code]
 
file  pipeline_layout.hpp [code]
 
file  render_pass.hpp [code]
 
file  sampler.hpp [code]
 
file  semaphore.hpp [code]
 
file  shader.hpp [code]
 
file  swapchain.hpp [code]
 
file  tz_vulkan.hpp [code]
 
+
+
+ + + + diff --git a/dir_4eeb864c4eec08c7d6b9d3b0352cfdde.html b/dir_4eeb864c4eec08c7d6b9d3b0352cfdde.html new file mode 100644 index 0000000000..d26b78e2e6 --- /dev/null +++ b/dir_4eeb864c4eec08c7d6b9d3b0352cfdde.html @@ -0,0 +1,123 @@ + + + + + + + +Topaz: tools Directory Reference + + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.0.0.2 +
+
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..d3b7d65c6a --- /dev/null +++ b/dir_599c755ba65617583b8f9ca84c06536f.html @@ -0,0 +1,142 @@ + + + + + + + +Topaz: src/tz/wsi Directory Reference + + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.0.0.2 +
+
C++20 Graphics Engine
+
+
+ + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
wsi Directory Reference
+
+
+ + + + +

+Directories

directory  api
 
+ + + + + + + + + + + +

+Files

file  keyboard.hpp [code]
 
file  monitor.hpp [code]
 
file  mouse.hpp [code]
 
file  window.hpp [code]
 
file  wsi.hpp [code]
 
+
+
+ + + + diff --git a/dir_5a334d1c7ed1f0f36d1b8b8a8c5647cd.html b/dir_5a334d1c7ed1f0f36d1b8b8a8c5647cd.html new file mode 100644 index 0000000000..64c07505b4 --- /dev/null +++ b/dir_5a334d1c7ed1f0f36d1b8b8a8c5647cd.html @@ -0,0 +1,129 @@ + + + + + + + +Topaz: src/tz/dbgui Directory Reference + + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.0.0.2 +
+
C++20 Graphics Engine
+
+
+ + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
dbgui Directory Reference
+
+
+ + + + +

+Files

file  dbgui.hpp [code]
 
+
+
+ + + + diff --git a/dir_6205a33bb4c90b51df32b3d1351a5b41.html b/dir_6205a33bb4c90b51df32b3d1351a5b41.html new file mode 100644 index 0000000000..4b1d956f56 --- /dev/null +++ b/dir_6205a33bb4c90b51df32b3d1351a5b41.html @@ -0,0 +1,129 @@ + + + + + + + +Topaz: src/tz/gl/declare Directory Reference + + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.0.0.2 +
+
C++20 Graphics Engine
+
+
+ + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
declare Directory Reference
+
+
+ + + + +

+Files

file  image_format.hpp [code]
 
+
+
+ + + + diff --git a/dir_63b8e252d8f253b21bb5993a46e3331f.html b/dir_63b8e252d8f253b21bb5993a46e3331f.html new file mode 100644 index 0000000000..01b3a9e7df --- /dev/null +++ b/dir_63b8e252d8f253b21bb5993a46e3331f.html @@ -0,0 +1,123 @@ + + + + + + + +Topaz: demo/gl Directory Reference + + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.0.0.2 +
+
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..dd9dfe2ba8 --- /dev/null +++ b/dir_68267d1309a1af8e8297ef4c3efbcdba.html @@ -0,0 +1,136 @@ + + + + + + + +Topaz: src Directory Reference + + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.0.0.2 +
+
C++20 Graphics Engine
+
+
+ + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
src Directory Reference
+
+
+ + + + +

+Directories

directory  tz
 
+ + + + + +

+Files

file  graphics_documentation.hpp [code]
 
file  shaders_documentation.hpp [code]
 
+
+
+ + + + diff --git a/dir_690e214e6e61530c3684abd455794879.html b/dir_690e214e6e61530c3684abd455794879.html new file mode 100644 index 0000000000..21dfa98dee --- /dev/null +++ b/dir_690e214e6e61530c3684abd455794879.html @@ -0,0 +1,134 @@ + + + + + + + +Topaz: src/tz/core/job Directory Reference + + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.0.0.2 +
+
C++20 Graphics Engine
+
+
+ + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
job Directory Reference
+
+
+ + + + +

+Directories

directory  api
 
+ + + +

+Files

file  job.hpp [code]
 
+
+
+ + + + diff --git a/dir_6c60afaf75e74ab2767b74a19a30396f.html b/dir_6c60afaf75e74ab2767b74a19a30396f.html new file mode 100644 index 0000000000..434dccfeee --- /dev/null +++ b/dir_6c60afaf75e74ab2767b74a19a30396f.html @@ -0,0 +1,129 @@ + + + + + + + +Topaz: src/tz/gl/impl/common Directory Reference + + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.0.0.2 +
+
C++20 Graphics Engine
+
+
+ + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
common Directory Reference
+
+
+ + + + +

+Files

file  renderer.hpp [code]
 
+
+
+ + + + diff --git a/dir_7122b68cae0d86e82e150514ab755870.html b/dir_7122b68cae0d86e82e150514ab755870.html new file mode 100644 index 0000000000..e4a217765d --- /dev/null +++ b/dir_7122b68cae0d86e82e150514ab755870.html @@ -0,0 +1,139 @@ + + + + + + + +Topaz: src/tz/core/memory/allocators Directory Reference + + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.0.0.2 +
+
C++20 Graphics Engine
+
+
+ + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
allocators Directory Reference
+
+
+ + + + + + + + + + + + + + +

+Files

file  adapter.hpp [code]
 
file  fallback.hpp [code]
 
file  linear.hpp [code]
 
file  malloc.hpp [code]
 
file  null.hpp [code]
 
file  stack.hpp [code]
 
+
+
+ + + + diff --git a/dir_8c219efcfe695884c877ddb6dae03642.html b/dir_8c219efcfe695884c877ddb6dae03642.html new file mode 100644 index 0000000000..dc1e61a7cd --- /dev/null +++ b/dir_8c219efcfe695884c877ddb6dae03642.html @@ -0,0 +1,129 @@ + + + + + + + +Topaz: src/tz/core/algorithms Directory Reference + + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.0.0.2 +
+
C++20 Graphics Engine
+
+
+ + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
algorithms Directory Reference
+
+
+ + + + +

+Files

file  static.hpp [code]
 
+
+
+ + + + diff --git a/dir_8e01169d6f6292bd7f3d8f71a715d1a5.html b/dir_8e01169d6f6292bd7f3d8f71a715d1a5.html new file mode 100644 index 0000000000..1ac830fc7a --- /dev/null +++ b/dir_8e01169d6f6292bd7f3d8f71a715d1a5.html @@ -0,0 +1,135 @@ + + + + + + + +Topaz: src/tz/wsi/impl/linux Directory Reference + + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.0.0.2 +
+
C++20 Graphics Engine
+
+
+ + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
linux Directory Reference
+
+
+ + + + + + + + + + +

+Files

file  keyboard.hpp [code]
 
file  monitor.hpp [code]
 
file  window.hpp [code]
 
file  wsi_linux.hpp [code]
 
+
+
+ + + + diff --git a/dir_90fb58752be9fb1ae64073e2b3427807.html b/dir_90fb58752be9fb1ae64073e2b3427807.html new file mode 100644 index 0000000000..793b2181cd --- /dev/null +++ b/dir_90fb58752be9fb1ae64073e2b3427807.html @@ -0,0 +1,140 @@ + + + + + + + +Topaz: src/tz/gl/impl/vulkan Directory Reference + + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.0.0.2 +
+
C++20 Graphics Engine
+
+
+ + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
vulkan Directory Reference
+
+
+ + + + +

+Directories

directory  detail
 
+ + + + + + + + + +

+Files

file  component.hpp [code]
 
file  convert.hpp [code]
 
file  device2.hpp [code]
 
file  renderer2.hpp [code]
 
+
+
+ + + + diff --git a/dir_9eaca02b9c6ac3e186d627c155dd0218.html b/dir_9eaca02b9c6ac3e186d627c155dd0218.html new file mode 100644 index 0000000000..e4026bac57 --- /dev/null +++ b/dir_9eaca02b9c6ac3e186d627c155dd0218.html @@ -0,0 +1,140 @@ + + + + + + + +Topaz: src/tz/gl/impl/opengl Directory Reference + + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.0.0.2 +
+
C++20 Graphics Engine
+
+
+ + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
opengl Directory Reference
+
+
+ + + + +

+Directories

directory  detail
 
+ + + + + + + + + +

+Files

file  component.hpp [code]
 
file  convert.hpp [code]
 
file  device.hpp [code]
 
file  renderer.hpp [code]
 
+
+
+ + + + diff --git a/dir_ad3614566e14216ad794a62267d6851c.html b/dir_ad3614566e14216ad794a62267d6851c.html new file mode 100644 index 0000000000..62a55ac7da --- /dev/null +++ b/dir_ad3614566e14216ad794a62267d6851c.html @@ -0,0 +1,140 @@ + + + + + + + +Topaz: src/tz/wsi/impl/windows Directory Reference + + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.0.0.2 +
+
C++20 Graphics Engine
+
+
+ + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
windows Directory Reference
+
+
+ + + + +

+Directories

directory  detail
 
+ + + + + + + + + +

+Files

file  keyboard.hpp [code]
 
file  monitor.hpp [code]
 
file  window.hpp [code]
 
file  wsi_windows.hpp [code]
 
+
+
+ + + + diff --git a/dir_b6c2a257bfab6380ca9b3cb94b12cb25.html b/dir_b6c2a257bfab6380ca9b3cb94b12cb25.html new file mode 100644 index 0000000000..29e539e1fa --- /dev/null +++ b/dir_b6c2a257bfab6380ca9b3cb94b12cb25.html @@ -0,0 +1,129 @@ + + + + + + + +Topaz: demo Directory Reference + + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.0.0.2 +
+
C++20 Graphics Engine
+
+
+ + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
demo Directory Reference
+
+
+ + + + +

+Directories

directory  gl
 
+
+
+ + + + diff --git a/dir_b6f1048c6f0057577e2c84efc97e28f6.html b/dir_b6f1048c6f0057577e2c84efc97e28f6.html new file mode 100644 index 0000000000..04791cf5b2 --- /dev/null +++ b/dir_b6f1048c6f0057577e2c84efc97e28f6.html @@ -0,0 +1,133 @@ + + + + + + + +Topaz: src/tz/gl/impl Directory Reference + + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.0.0.2 +
+
C++20 Graphics Engine
+
+
+ + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
impl Directory Reference
+
+
+ + + + + + + + +

+Directories

directory  common
 
directory  opengl
 
directory  vulkan
 
+
+
+ + + + diff --git a/dir_b8a37355f4ff41c3494f436b52e9d1e4.html b/dir_b8a37355f4ff41c3494f436b52e9d1e4.html new file mode 100644 index 0000000000..e8196aa321 --- /dev/null +++ b/dir_b8a37355f4ff41c3494f436b52e9d1e4.html @@ -0,0 +1,131 @@ + + + + + + + +Topaz: src/tz/core/job/impl Directory Reference + + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.0.0.2 +
+
C++20 Graphics Engine
+
+
+ + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
impl Directory Reference
+
+
+ + + + + + +

+Directories

directory  stdasync
 
directory  threadpool_lfq
 
+
+
+ + + + diff --git a/dir_c45f7307fd1a89701e5a7df4b0292432.html b/dir_c45f7307fd1a89701e5a7df4b0292432.html new file mode 100644 index 0000000000..368a677f61 --- /dev/null +++ b/dir_c45f7307fd1a89701e5a7df4b0292432.html @@ -0,0 +1,152 @@ + + + + + + + +Topaz: src/tz/gl Directory Reference + + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.0.0.2 +
+
C++20 Graphics Engine
+
+
+ + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
gl Directory Reference
+
+
+ + + + + + +

+Directories

directory  api
 
directory  declare
 
+ + + + + + + + + + + + + + + + + + + +

+Files

file  component.hpp [code]
 
file  device.hpp [code]
 
file  draw.hpp [code]
 
file  imported_shaders.hpp [code]
 
file  output.hpp [code]
 
file  renderer.hpp [code]
 
file  resource.hpp [code]
 
file  shader.hpp [code]
 
file  tz_gl.hpp [code]
 
+
+
+ + + + diff --git a/dir_c5afd7f4a3427178c30763104b31116d.html b/dir_c5afd7f4a3427178c30763104b31116d.html new file mode 100644 index 0000000000..b4984b442d --- /dev/null +++ b/dir_c5afd7f4a3427178c30763104b31116d.html @@ -0,0 +1,131 @@ + + + + + + + +Topaz: src/tz/wsi/impl/windows/detail Directory Reference + + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.0.0.2 +
+
C++20 Graphics Engine
+
+
+ + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
detail Directory Reference
+
+
+ + + + + + +

+Files

file  wgl_ext.hpp [code]
 
file  winapi.hpp [code]
 
+
+
+ + + + diff --git a/dir_c99b309211028f9b549bc11f5ba411a6.html b/dir_c99b309211028f9b549bc11f5ba411a6.html new file mode 100644 index 0000000000..9862560389 --- /dev/null +++ b/dir_c99b309211028f9b549bc11f5ba411a6.html @@ -0,0 +1,141 @@ + + + + + + + +Topaz: src/tz/core/data Directory Reference + + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.0.0.2 +
+
C++20 Graphics Engine
+
+
+ + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
data Directory Reference
+
+
+ + + + + + + + + + + + + + + + +

+Files

file  basic_list.hpp [code]
 
file  enum_field.hpp [code]
 
file  grid_view.hpp [code]
 
file  handle.hpp [code]
 
file  polymorphic_list.hpp [code]
 
file  vector.hpp [code]
 
file  version.hpp [code]
 
+
+
+ + + + diff --git a/dir_d2650608e6952a9513fd80a851d6a394.html b/dir_d2650608e6952a9513fd80a851d6a394.html new file mode 100644 index 0000000000..eb19c8e395 --- /dev/null +++ b/dir_d2650608e6952a9513fd80a851d6a394.html @@ -0,0 +1,138 @@ + + + + + + + +Topaz: src/tz/core/memory Directory Reference + + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.0.0.2 +
+
C++20 Graphics Engine
+
+
+ + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
memory Directory Reference
+
+
+ + + + +

+Directories

directory  allocators
 
+ + + + + + + +

+Files

file  clone.hpp [code]
 
file  maybe_owned_ptr.hpp [code]
 
file  memblk.hpp [code]
 
+
+
+ + + + diff --git a/dir_ec6445c9b7ffdfd0780b9f9686149b19.html b/dir_ec6445c9b7ffdfd0780b9f9686149b19.html new file mode 100644 index 0000000000..eac7f3ed3f --- /dev/null +++ b/dir_ec6445c9b7ffdfd0780b9f9686149b19.html @@ -0,0 +1,135 @@ + + + + + + + +Topaz: src/tz/wsi/api Directory Reference + + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.0.0.2 +
+
C++20 Graphics Engine
+
+
+ + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
api Directory Reference
+
+
+ + + + + + + + + + +

+Files

file  keyboard.hpp [code]
 
file  monitor.hpp [code]
 
file  mouse.hpp [code]
 
file  window.hpp [code]
 
+
+
+ + + + diff --git a/dir_ee9290bbb94f4eedc360bcd5845482c0.html b/dir_ee9290bbb94f4eedc360bcd5845482c0.html new file mode 100644 index 0000000000..cd487ec864 --- /dev/null +++ b/dir_ee9290bbb94f4eedc360bcd5845482c0.html @@ -0,0 +1,141 @@ + + + + + + + +Topaz: src/tz/gl/api Directory Reference + + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.0.0.2 +
+
C++20 Graphics Engine
+
+
+ + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
api Directory Reference
+
+
+ + + + + + + + + + + + + + + + +

+Files

file  component.hpp [code]
 
file  device.hpp [code]
 
file  output.hpp [code]
 
file  renderer.hpp [code]
 
file  resource.hpp [code]
 
file  schedule.hpp [code]
 
file  shader.hpp [code]
 
+
+
+ + + + diff --git a/dir_f25169e3c3abac666585ffc445559871.html b/dir_f25169e3c3abac666585ffc445559871.html new file mode 100644 index 0000000000..d400ff5cd5 --- /dev/null +++ b/dir_f25169e3c3abac666585ffc445559871.html @@ -0,0 +1,131 @@ + + + + + + + +Topaz: src/tz/wsi/impl Directory Reference + + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.0.0.2 +
+
C++20 Graphics Engine
+
+
+ + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
impl Directory Reference
+
+
+ + + + + + +

+Directories

directory  linux
 
directory  windows
 
+
+
+ + + + diff --git a/doc.png b/doc.png new file mode 100644 index 0000000000000000000000000000000000000000..17edabff95f7b8da13c9516a04efe05493c29501 GIT binary patch literal 746 zcmV7=@pnbNXRFEm&G8P!&WHG=d)>K?YZ1bzou)2{$)) zumDct!>4SyxL;zgaG>wy`^Hv*+}0kUfCrz~BCOViSb$_*&;{TGGn2^x9K*!Sf0=lV zpP=7O;GA0*Jm*tTYj$IoXvimpnV4S1Z5f$p*f$Db2iq2zrVGQUz~yq`ahn7ck(|CE z7Gz;%OP~J6)tEZWDzjhL9h2hdfoU2)Nd%T<5Kt;Y0XLt&<@6pQx!nw*5`@bq#?l*?3z{Hlzoc=Pr>oB5(9i6~_&-}A(4{Q$>c>%rV&E|a(r&;?i5cQB=} zYSDU5nXG)NS4HEs0it2AHe2>shCyr7`6@4*6{r@8fXRbTA?=IFVWAQJL&H5H{)DpM#{W(GL+Idzf^)uRV@oB8u$ z8v{MfJbTiiRg4bza<41NAzrl{=3fl_D+$t+^!xlQ8S}{UtY`e z;;&9UhyZqQRN%2pot{*Ei0*4~hSF_3AH2@fKU!$NSflS>{@tZpDT4`M2WRTTVH+D? z)GFlEGGHe?koB}i|1w45!BF}N_q&^HJ&-tyR{(afC6H7|aml|tBBbv}55C5DNP8p3 z)~jLEO4Z&2hZmP^i-e%(@d!(E|KRafiU8Q5u(wU((j8un3OR*Hvj+t literal 0 HcmV?d00001 diff --git a/docd.png b/docd.png new file mode 100644 index 0000000000000000000000000000000000000000..d7c94fda9bf08ecc02c7190d968452b7a2dbf04b GIT binary patch literal 756 zcmV1wr-rhpn+wxm%q2)IkAYsr{iGq<}_z5JCD4J;FN?6Qh;@TCubdp(_XdD-^ zG_#)IP7_z6hKNdx5^+FGArwLWTWCG!j+oKji?U!hxA#d-ljgkN`+e^@-P+RWG{Bx= z2iQyYTtEf*o~ySWrIVW}HWHi0_hd4~$E6Jx1U`>Owo}EYJ1O>iZvS?!z8}B}QwLMA zC3Keqf1c}K@?C`X>68b(EUzYUYAS&OH^VPteZLPr{S&|nQvp@6W4GH-1U8!u&7l~A zx~RUSNH+>7@q38W6!BzirtjLFCzc|XGx)EF#G%^pWION*k@?vP<2O>|XkCD3ujl%1 z{55JSVkw{~HbX>iEZ2%yJ2eHj5Yh8OTpzs0A2;tZ^x!#5D+y-es{k1&0|Ns9-|+Xt ziGiTsZ8(^nUo#wdTpIDkb-Zp(3|A*FzW}GZ5SQD-r^R`&X@`26E3W|GyrwDIZjtQ& z$g5f8Sv=VgVtDien@J(!^BK+#l;s-LgP--p7C;7;E!ysXcXK6?+9D>_-B(?Wm(U zQbNm-5TyYxIU=rs0+)!ixqzhuxw(AqKc3?KKX32{D~Qibp*r0x&Wux5-9WCMMRi3U zTd6dOCQlj>a;gr;gLwRKulT&(m@^L{&HkSC(qH05HSSf$YEhynGvH zWNez``Z8FJXE+BSg=%ak{OR z+Nylcb{?evLYLuE1_HngYw0g%LC#=$a@?4~Tx>F9295Q>9UJ|_6v-KMw;!YZSgGj@ zR8fRov=hJ#QvsO@xw*{0%zH@OKVEUr= 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; +} + +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; +} + +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; +} \ No newline at end of file diff --git a/doxygen.css b/doxygen.css new file mode 100644 index 0000000000..8fee6182e1 --- /dev/null +++ b/doxygen.css @@ -0,0 +1,1989 @@ +/* The standard CSS for doxygen 1.9.6*/ + +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.png'); + +/* 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; + +/** 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-vhdl-digit-color: #FF00FF; +--code-vhdl-char-color: #000000; +--code-vhdl-keyword-color: #700070; +--code-vhdl-logic-color: #FF0000; +--code-link-color: #4665A2; +--code-external-link-color: #4665A2; +--fragment-foreground-color: black; +--fragment-background-color: #FBFCFD; +--fragment-border-color: #C4CFE5; +--fragment-lineno-border-color: #00FF00; +--fragment-lineno-background-color: #E8E8E8; +--fragment-lineno-foreground-color: black; +--fragment-lineno-link-fg-color: #4665A2; +--fragment-lineno-link-bg-color: #D8D8D8; +--fragment-lineno-link-hover-fg-color: #4665A2; +--fragment-lineno-link-hover-bg-color: #C8C8C8; +--tooltip-foreground-color: black; +--tooltip-background-color: white; +--tooltip-border-color: gray; +--tooltip-doc-color: grey; +--tooltip-declaration-color: #006318; +--tooltip-link-color: #4665A2; +--tooltip-shadow: 1px 1px 7px gray; + +/** font-family */ +--font-family-normal: Roboto,sans-serif; +--font-family-monospace: monospace,fixed; +--font-family-nav: 'Lucida Grande',Geneva,Helvetica,Arial,sans-serif; +--font-family-title: Tahoma,Arial,sans-serif; +--font-family-toc: Verdana,'DejaVu Sans',Geneva,sans-serif; +--font-family-search: Arial,Verdana,sans-serif; +--font-family-icon: Arial,Helvetica; +--font-family-tooltip: Roboto,sans-serif; + +} + +@media (prefers-color-scheme: dark) { + html:not(.dark-mode) { + color-scheme: dark; + +/* page base colors */ +--page-background-color: black; +--page-foreground-color: #C9D1D9; +--page-link-color: #90A5CE; +--page-visited-link-color: #A3B4D7; + +/* index */ +--index-odd-item-bg-color: #0B101A; +--index-even-item-bg-color: black; +--index-header-color: #C4CFE5; +--index-separator-color: #334975; + +/* header */ +--header-background-color: #070B11; +--header-separator-color: #141C2E; +--header-gradient-image: url('nav_hd.png'); +--group-header-separator-color: #283A5D; +--group-header-color: #90A5CE; +--inherit-header-color: #A0A0A0; + +--footer-foreground-color: #5B7AB7; +--footer-logo-width: 60px; +--citation-label-color: #90A5CE; +--glow-color: cyan; + +--title-background-color: #090D16; +--title-separator-color: #354C79; +--directory-separator-color: #283A5D; +--separator-color: #283A5D; + +--blockquote-background-color: #101826; +--blockquote-border-color: #283A5D; + +--scrollbar-thumb-color: #283A5D; +--scrollbar-background-color: #070B11; + +--icon-background-color: #334975; +--icon-foreground-color: #C4CFE5; +--icon-doc-image: url('docd.png'); + +/* 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; + +/** 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-vhdl-digit-color: #FF00FF; +--code-vhdl-char-color: #000000; +--code-vhdl-keyword-color: #700070; +--code-vhdl-logic-color: #FF0000; +--code-link-color: #79C0FF; +--code-external-link-color: #79C0FF; +--fragment-foreground-color: #C9D1D9; +--fragment-background-color: black; +--fragment-border-color: #30363D; +--fragment-lineno-border-color: #30363D; +--fragment-lineno-background-color: black; +--fragment-lineno-foreground-color: #6E7681; +--fragment-lineno-link-fg-color: #6E7681; +--fragment-lineno-link-bg-color: #303030; +--fragment-lineno-link-hover-fg-color: #8E96A1; +--fragment-lineno-link-hover-bg-color: #505050; +--tooltip-foreground-color: #C9D1D9; +--tooltip-background-color: #202020; +--tooltip-border-color: #C9D1D9; +--tooltip-doc-color: #D9E1E9; +--tooltip-declaration-color: #20C348; +--tooltip-link-color: #79C0FF; +--tooltip-shadow: none; + +/** font-family */ +--font-family-normal: Roboto,sans-serif; +--font-family-monospace: monospace,fixed; +--font-family-nav: 'Lucida Grande',Geneva,Helvetica,Arial,sans-serif; +--font-family-title: Tahoma,Arial,sans-serif; +--font-family-toc: Verdana,'DejaVu Sans',Geneva,sans-serif; +--font-family-search: Arial,Verdana,sans-serif; +--font-family-icon: Arial,Helvetica; +--font-family-tooltip: Roboto,sans-serif; + +}} +body { + background-color: var(--page-background-color); + color: var(--page-foreground-color); +} + +body, table, div, p, dl { + font-weight: 400; + font-size: 14px; + font-family: var(--font-family-normal); + line-height: 22px; +} + +/* @group Heading Levels */ + +.title { + font-weight: 400; + font-size: 14px; + font-family: var(--font-family-normal); + line-height: 28px; + font-size: 150%; + font-weight: bold; + margin: 10px 2px; +} + +h1.groupheader { + font-size: 150%; +} + +h2.groupheader { + border-bottom: 1px solid var(--group-header-separator-color); + color: var(--group-header-color); + font-size: 150%; + font-weight: normal; + margin-top: 1.75em; + padding-top: 8px; + padding-bottom: 4px; + width: 100%; +} + +h3.groupheader { + font-size: 100%; +} + +h1, h2, h3, h4, h5, h6 { + -webkit-transition: text-shadow 0.5s linear; + -moz-transition: text-shadow 0.5s linear; + -ms-transition: text-shadow 0.5s linear; + -o-transition: text-shadow 0.5s linear; + transition: text-shadow 0.5s linear; + margin-right: 15px; +} + +h1.glow, h2.glow, h3.glow, h4.glow, h5.glow, h6.glow { + text-shadow: 0 0 15px var(--glow-color); +} + +dt { + font-weight: bold; +} + +p.startli, p.startdd { + margin-top: 2px; +} + +th p.starttd, th p.intertd, th p.endtd { + font-size: 100%; + font-weight: 700; +} + +p.starttd { + margin-top: 0px; +} + +p.endli { + margin-bottom: 0px; +} + +p.enddd { + margin-bottom: 4px; +} + +p.endtd { + margin-bottom: 2px; +} + +p.interli { +} + +p.interdd { +} + +p.intertd { +} + +/* @end */ + +caption { + font-weight: bold; +} + +span.legend { + font-size: 70%; + text-align: center; +} + +h3.version { + font-size: 90%; + text-align: center; +} + +div.navtab { + padding-right: 15px; + text-align: right; + line-height: 110%; +} + +div.navtab table { + border-spacing: 0; +} + +td.navtab { + padding-right: 6px; + padding-left: 6px; +} + +td.navtabHL { + background-image: var(--nav-gradient-active-image); + background-repeat:repeat-x; + padding-right: 6px; + padding-left: 6px; +} + +td.navtabHL a, td.navtabHL a:visited { + color: var(--nav-text-hover-color); + text-shadow: var(--nav-text-hover-shadow); +} + +a.navtab { + font-weight: bold; +} + +div.qindex{ + text-align: center; + width: 100%; + line-height: 140%; + font-size: 130%; + color: var(--index-separator-color); +} + +dt.alphachar{ + font-size: 180%; + font-weight: bold; +} + +.alphachar a{ + color: var(--index-header-color); +} + +.alphachar a:hover, .alphachar a:visited{ + text-decoration: none; +} + +.classindex dl { + padding: 25px; + column-count:1 +} + +.classindex dd { + display:inline-block; + margin-left: 50px; + width: 90%; + line-height: 1.15em; +} + +.classindex dl.even { + background-color: var(--index-even-item-bg-color); +} + +.classindex dl.odd { + background-color: var(--index-odd-item-bg-color); +} + +@media(min-width: 1120px) { + .classindex dl { + column-count:2 + } +} + +@media(min-width: 1320px) { + .classindex dl { + column-count:3 + } +} + + +/* @group Link Styling */ + +a { + color: var(--page-link-color); + font-weight: normal; + text-decoration: none; +} + +.contents a:visited { + color: var(--page-visited-link-color); +} + +a:hover { + text-decoration: underline; +} + +a.el { + font-weight: bold; +} + +a.elRef { +} + +a.code, a.code:visited, a.line, a.line:visited { + color: var(--code-link-color); +} + +a.codeRef, a.codeRef:visited, a.lineRef, a.lineRef:visited { + color: var(--code-external-link-color); +} + +a.code.hl_class { /* style for links to class names in code snippets */ } +a.code.hl_struct { /* style for links to struct names in code snippets */ } +a.code.hl_union { /* style for links to union names in code snippets */ } +a.code.hl_interface { /* style for links to interface names in code snippets */ } +a.code.hl_protocol { /* style for links to protocol names in code snippets */ } +a.code.hl_category { /* style for links to category names in code snippets */ } +a.code.hl_exception { /* style for links to exception names in code snippets */ } +a.code.hl_service { /* style for links to service names in code snippets */ } +a.code.hl_singleton { /* style for links to singleton names in code snippets */ } +a.code.hl_concept { /* style for links to concept names in code snippets */ } +a.code.hl_namespace { /* style for links to namespace names in code snippets */ } +a.code.hl_package { /* style for links to package names in code snippets */ } +a.code.hl_define { /* style for links to macro names in code snippets */ } +a.code.hl_function { /* style for links to function names in code snippets */ } +a.code.hl_variable { /* style for links to variable names in code snippets */ } +a.code.hl_typedef { /* style for links to typedef names in code snippets */ } +a.code.hl_enumvalue { /* style for links to enum value names in code snippets */ } +a.code.hl_enumeration { /* style for links to enumeration names in code snippets */ } +a.code.hl_signal { /* style for links to Qt signal names in code snippets */ } +a.code.hl_slot { /* style for links to Qt slot names in code snippets */ } +a.code.hl_friend { /* style for links to friend names in code snippets */ } +a.code.hl_dcop { /* style for links to KDE3 DCOP names in code snippets */ } +a.code.hl_property { /* style for links to property names in code snippets */ } +a.code.hl_event { /* style for links to event names in code snippets */ } +a.code.hl_sequence { /* style for links to sequence names in code snippets */ } +a.code.hl_dictionary { /* style for links to dictionary names in code snippets */ } + +/* @end */ + +dl.el { + margin-left: -1cm; +} + +ul { + overflow: visible; +} + +ul.multicol { + -moz-column-gap: 1em; + -webkit-column-gap: 1em; + column-gap: 1em; + -moz-column-count: 3; + -webkit-column-count: 3; + column-count: 3; + list-style-type: none; +} + +#side-nav ul { + overflow: visible; /* reset ul rule for scroll bar in GENERATE_TREEVIEW window */ +} + +#main-nav ul { + overflow: visible; /* reset ul rule for the navigation bar drop down lists */ +} + +.fragment { + text-align: left; + direction: ltr; + overflow-x: auto; /*Fixed: fragment lines overlap floating elements*/ + overflow-y: hidden; +} + +pre.fragment { + border: 1px solid var(--fragment-border-color); + background-color: var(--fragment-background-color); + color: var(--fragment-foreground-color); + padding: 4px 6px; + margin: 4px 8px 4px 2px; + overflow: auto; + word-wrap: break-word; + font-size: 9pt; + line-height: 125%; + font-family: var(--font-family-monospace); + font-size: 105%; +} + +div.fragment { + padding: 0 0 1px 0; /*Fixed: last line underline overlap border*/ + margin: 4px 8px 4px 2px; + color: var(--fragment-foreground-color); + background-color: var(--fragment-background-color); + border: 1px solid var(--fragment-border-color); +} + +div.line { + font-family: var(--font-family-monospace); + font-size: 13px; + min-height: 13px; + line-height: 1.0; + 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.lineno { + padding-right: 4px; + margin-right: 9px; + text-align: right; + border-right: 2px solid var(--fragment-lineno-border-color); + color: var(--fragment-lineno-foreground-color); + background-color: var(--fragment-lineno-background-color); + white-space: pre; +} +span.lineno a, span.lineno a:visited { + color: var(--fragment-lineno-link-fg-color); + background-color: var(--fragment-lineno-link-bg-color); +} + +span.lineno a:hover { + color: var(--fragment-lineno-link-hover-fg-color); + background-color: var(--fragment-lineno-link-hover-bg-color); +} + +.lineno { + -webkit-touch-callout: none; + -webkit-user-select: none; + -khtml-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + user-select: none; +} + +div.classindex ul { + list-style: none; + padding-left: 0; +} + +div.classindex span.ai { + display: inline-block; +} + +div.groupHeader { + margin-left: 16px; + margin-top: 12px; + font-weight: bold; +} + +div.groupText { + margin-left: 16px; + font-style: italic; +} + +body { + color: var(--page-foreground-color); + margin: 0; +} + +div.contents { + margin-top: 10px; + margin-left: 12px; + margin-right: 8px; +} + +p.formulaDsp { + text-align: center; +} + +img.dark-mode-visible { + display: none; +} +img.light-mode-visible { + display: none; +} + +img.formulaDsp { + +} + +img.formulaInl, img.inline { + vertical-align: middle; +} + +div.center { + text-align: center; + margin-top: 0px; + margin-bottom: 0px; + padding: 0px; +} + +div.center img { + border: 0px; +} + +address.footer { + text-align: right; + padding-right: 12px; +} + +img.footer { + border: 0px; + vertical-align: middle; + width: var(--footer-logo-width); +} + +.compoundTemplParams { + color: var(--memdecl-template-color); + font-size: 80%; + line-height: 120%; +} + +/* @group Code Colorization */ + +span.keyword { + color: var(--code-keyword-color); +} + +span.keywordtype { + color: var(--code-type-keyword-color); +} + +span.keywordflow { + color: var(--code-flow-keyword-color); +} + +span.comment { + color: var(--code-comment-color); +} + +span.preprocessor { + color: var(--code-preprocessor-color); +} + +span.stringliteral { + color: var(--code-string-literal-color); +} + +span.charliteral { + color: var(--code-char-literal-color); +} + +span.vhdldigit { + color: var(--code-vhdl-digit-color); +} + +span.vhdlchar { + color: var(--code-vhdl-char-color); +} + +span.vhdlkeyword { + color: var(--code-vhdl-keyword-color); +} + +span.vhdllogic { + color: var(--code-vhdl-logic-color); +} + +blockquote { + background-color: var(--blockquote-background-color); + border-left: 2px solid var(--blockquote-border-color); + margin: 0 24px 0 4px; + padding: 0 12px 0 16px; +} + +/* @end */ + +td.tiny { + font-size: 75%; +} + +.dirtab { + padding: 4px; + border-collapse: collapse; + border: 1px solid var(--table-cell-border-color); +} + +th.dirtab { + background-color: var(--table-header-background-color); + color: var(--table-header-foreground-color); + font-weight: bold; +} + +hr { + height: 0px; + border: none; + border-top: 1px solid var(--separator-color); +} + +hr.footer { + height: 1px; +} + +/* @group Member Descriptions */ + +table.memberdecls { + border-spacing: 0px; + padding: 0px; +} + +.memberdecls td, .fieldtable tr { + -webkit-transition-property: background-color, box-shadow; + -webkit-transition-duration: 0.5s; + -moz-transition-property: background-color, box-shadow; + -moz-transition-duration: 0.5s; + -ms-transition-property: background-color, box-shadow; + -ms-transition-duration: 0.5s; + -o-transition-property: background-color, box-shadow; + -o-transition-duration: 0.5s; + transition-property: background-color, box-shadow; + transition-duration: 0.5s; +} + +.memberdecls td.glow, .fieldtable tr.glow { + background-color: var(--glow-color); + box-shadow: 0 0 15px var(--glow-color); +} + +.mdescLeft, .mdescRight, +.memItemLeft, .memItemRight, +.memTemplItemLeft, .memTemplItemRight, .memTemplParams { + background-color: var(--memdecl-background-color); + border: none; + margin: 4px; + padding: 1px 0 0 8px; +} + +.mdescLeft, .mdescRight { + padding: 0px 8px 4px 8px; + color: var(--memdecl-foreground-color); +} + +.memSeparator { + border-bottom: 1px solid var(--memdecl-separator-color); + line-height: 1px; + margin: 0px; + padding: 0px; +} + +.memItemLeft, .memTemplItemLeft { + white-space: nowrap; +} + +.memItemRight, .memTemplItemRight { + width: 100%; +} + +.memTemplParams { + color: var(--memdecl-template-color); + white-space: nowrap; + font-size: 80%; +} + +/* @end */ + +/* @group Member Details */ + +/* Styles for detailed member documentation */ + +.memtitle { + padding: 8px; + border-top: 1px solid var(--memdef-border-color); + border-left: 1px solid var(--memdef-border-color); + border-right: 1px solid var(--memdef-border-color); + border-top-right-radius: 4px; + border-top-left-radius: 4px; + margin-bottom: -1px; + background-image: var(--memdef-title-gradient-image); + background-repeat: repeat-x; + background-color: var(--memdef-title-background-color); + line-height: 1.25; + font-weight: 300; + float:left; +} + +.permalink +{ + font-size: 65%; + display: inline-block; + vertical-align: middle; +} + +.memtemplate { + font-size: 80%; + color: var(--memdef-template-color); + font-weight: normal; + margin-left: 9px; +} + +.mempage { + width: 100%; +} + +.memitem { + padding: 0; + margin-bottom: 10px; + margin-right: 5px; + -webkit-transition: box-shadow 0.5s linear; + -moz-transition: box-shadow 0.5s linear; + -ms-transition: box-shadow 0.5s linear; + -o-transition: box-shadow 0.5s linear; + transition: box-shadow 0.5s linear; + display: table !important; + width: 100%; +} + +.memitem.glow { + box-shadow: 0 0 15px var(--glow-color); +} + +.memname { + font-weight: 400; + margin-left: 6px; +} + +.memname td { + vertical-align: bottom; +} + +.memproto, dl.reflist dt { + border-top: 1px solid var(--memdef-border-color); + border-left: 1px solid var(--memdef-border-color); + border-right: 1px solid var(--memdef-border-color); + padding: 6px 0px 6px 0px; + color: var(--memdef-proto-text-color); + font-weight: bold; + text-shadow: var(--memdef-proto-text-shadow); + background-color: var(--memdef-proto-background-color); + box-shadow: 5px 5px 5px rgba(0, 0, 0, 0.15); + border-top-right-radius: 4px; +} + +.overload { + font-family: var(--font-family-monospace); + font-size: 65%; +} + +.memdoc, dl.reflist dd { + border-bottom: 1px solid var(--memdef-border-color); + border-left: 1px solid var(--memdef-border-color); + border-right: 1px solid var(--memdef-border-color); + padding: 6px 10px 2px 10px; + border-top-width: 0; + background-image:url('nav_g.png'); + background-repeat:repeat-x; + background-color: var(--memdef-doc-background-color); + /* opera specific markup */ + border-bottom-left-radius: 4px; + border-bottom-right-radius: 4px; + box-shadow: 5px 5px 5px rgba(0, 0, 0, 0.15); + /* firefox specific markup */ + -moz-border-radius-bottomleft: 4px; + -moz-border-radius-bottomright: 4px; + -moz-box-shadow: rgba(0, 0, 0, 0.15) 5px 5px 5px; + /* webkit specific markup */ + -webkit-border-bottom-left-radius: 4px; + -webkit-border-bottom-right-radius: 4px; + -webkit-box-shadow: 5px 5px 5px rgba(0, 0, 0, 0.15); +} + +dl.reflist dt { + padding: 5px; +} + +dl.reflist dd { + margin: 0px 0px 10px 0px; + padding: 5px; +} + +.paramkey { + text-align: right; +} + +.paramtype { + white-space: nowrap; +} + +.paramname { + color: var(--memdef-param-name-color); + white-space: nowrap; +} +.paramname em { + font-style: normal; +} +.paramname code { + line-height: 14px; +} + +.params, .retval, .exception, .tparams { + margin-left: 0px; + padding-left: 0px; +} + +.params .paramname, .retval .paramname, .tparams .paramname, .exception .paramname { + font-weight: bold; + vertical-align: top; +} + +.params .paramtype, .tparams .paramtype { + font-style: italic; + vertical-align: top; +} + +.params .paramdir, .tparams .paramdir { + font-family: var(--font-family-monospace); + vertical-align: top; +} + +table.mlabels { + border-spacing: 0px; +} + +td.mlabels-left { + width: 100%; + padding: 0px; +} + +td.mlabels-right { + vertical-align: bottom; + padding: 0px; + white-space: nowrap; +} + +span.mlabels { + margin-left: 8px; +} + +span.mlabel { + background-color: var(--label-background-color); + border-top:1px solid var(--label-left-top-border-color); + border-left:1px solid var(--label-left-top-border-color); + border-right:1px solid var(--label-right-bottom-border-color); + border-bottom:1px solid var(--label-right-bottom-border-color); + text-shadow: none; + color: var(--label-foreground-color); + margin-right: 4px; + padding: 2px 3px; + border-radius: 3px; + font-size: 7pt; + white-space: nowrap; + vertical-align: middle; +} + + + +/* @end */ + +/* these are for tree view inside a (index) page */ + +div.directory { + margin: 10px 0px; + border-top: 1px solid var(--directory-separator-color); + border-bottom: 1px solid var(--directory-separator-color); + width: 100%; +} + +.directory table { + border-collapse:collapse; +} + +.directory td { + margin: 0px; + padding: 0px; + vertical-align: top; +} + +.directory td.entry { + white-space: nowrap; + padding-right: 6px; + padding-top: 3px; +} + +.directory td.entry a { + outline:none; +} + +.directory td.entry a img { + border: none; +} + +.directory td.desc { + width: 100%; + padding-left: 6px; + padding-right: 6px; + padding-top: 3px; + border-left: 1px solid rgba(0,0,0,0.05); +} + +.directory tr.odd { + padding-left: 6px; + background-color: var(--index-odd-item-bg-color); +} + +.directory tr.even { + padding-left: 6px; + background-color: var(--index-even-item-bg-color); +} + +.directory img { + vertical-align: -30%; +} + +.directory .levels { + white-space: nowrap; + width: 100%; + text-align: right; + font-size: 9pt; +} + +.directory .levels span { + cursor: pointer; + padding-left: 2px; + padding-right: 2px; + color: var(--page-link-color); +} + +.arrow { + color: var(--nav-arrow-color); + -webkit-user-select: none; + -khtml-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + user-select: none; + cursor: pointer; + font-size: 80%; + display: inline-block; + width: 16px; + height: 22px; +} + +.icon { + font-family: var(--font-family-icon); + line-height: normal; + font-weight: bold; + font-size: 12px; + height: 14px; + width: 16px; + display: inline-block; + background-color: var(--icon-background-color); + color: var(--icon-foreground-color); + text-align: center; + border-radius: 4px; + margin-left: 2px; + margin-right: 2px; +} + +.icona { + width: 24px; + height: 22px; + display: inline-block; +} + +.iconfopen { + width: 24px; + height: 18px; + margin-bottom: 4px; + background-image:url('folderopen.png'); + background-position: 0px -4px; + background-repeat: repeat-y; + vertical-align:top; + display: inline-block; +} + +.iconfclosed { + width: 24px; + height: 18px; + margin-bottom: 4px; + background-image:url('folderclosed.png'); + background-position: 0px -4px; + background-repeat: repeat-y; + vertical-align:top; + display: inline-block; +} + +.icondoc { + width: 24px; + height: 18px; + margin-bottom: 4px; + background-image:var(--icon-doc-image); + background-position: 0px -4px; + background-repeat: repeat-y; + vertical-align:top; + display: inline-block; +} + +/* @end */ + +div.dynheader { + margin-top: 8px; + -webkit-touch-callout: none; + -webkit-user-select: none; + -khtml-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + user-select: none; +} + +address { + font-style: normal; + color: var(--footer-foreground-color); +} + +table.doxtable caption { + caption-side: top; +} + +table.doxtable { + border-collapse:collapse; + margin-top: 4px; + margin-bottom: 4px; +} + +table.doxtable td, table.doxtable th { + border: 1px solid var(--table-cell-border-color); + padding: 3px 7px 2px; +} + +table.doxtable th { + background-color: var(--table-header-background-color); + color: var(--table-header-foreground-color); + font-size: 110%; + padding-bottom: 4px; + padding-top: 5px; +} + +table.fieldtable { + margin-bottom: 10px; + border: 1px solid var(--memdef-border-color); + border-spacing: 0px; + border-radius: 4px; + box-shadow: 2px 2px 2px rgba(0, 0, 0, 0.15); +} + +.fieldtable td, .fieldtable th { + padding: 3px 7px 2px; +} + +.fieldtable td.fieldtype, .fieldtable td.fieldname { + white-space: nowrap; + border-right: 1px solid var(--memdef-border-color); + border-bottom: 1px solid var(--memdef-border-color); + vertical-align: top; +} + +.fieldtable td.fieldname { + padding-top: 3px; +} + +.fieldtable td.fielddoc { + border-bottom: 1px solid var(--memdef-border-color); +} + +.fieldtable td.fielddoc p:first-child { + margin-top: 0px; +} + +.fieldtable td.fielddoc p:last-child { + margin-bottom: 2px; +} + +.fieldtable tr:last-child td { + border-bottom: none; +} + +.fieldtable th { + background-image: var(--memdef-title-gradient-image); + background-repeat:repeat-x; + background-color: var(--memdef-title-background-color); + font-size: 90%; + color: var(--memdef-proto-text-color); + padding-bottom: 4px; + padding-top: 5px; + text-align:left; + font-weight: 400; + border-top-left-radius: 4px; + border-top-right-radius: 4px; + border-bottom: 1px solid var(--memdef-border-color); +} + + +.tabsearch { + top: 0px; + left: 10px; + height: 36px; + background-image: var(--nav-gradient-image); + z-index: 101; + overflow: hidden; + font-size: 13px; +} + +.navpath ul +{ + font-size: 11px; + background-image: var(--nav-gradient-image); + background-repeat:repeat-x; + background-position: 0 -5px; + height:30px; + line-height:30px; + color:var(--nav-text-normal-color); + border:solid 1px var(--nav-breadcrumb-border-color); + overflow:hidden; + margin:0px; + padding:0px; +} + +.navpath li +{ + list-style-type:none; + float:left; + padding-left:10px; + padding-right:15px; + background-image:var(--nav-breadcrumb-image); + background-repeat:no-repeat; + background-position:right; + color: var(--nav-foreground-color); +} + +.navpath li.navelem a +{ + height:32px; + display:block; + text-decoration: none; + outline: none; + color: var(--nav-text-normal-color); + font-family: var(--font-family-nav); + text-shadow: var(--nav-text-normal-shadow); + text-decoration: none; +} + +.navpath li.navelem a:hover +{ + color: var(--nav-text-hover-color); + text-shadow: var(--nav-text-hover-shadow); +} + +.navpath li.footer +{ + list-style-type:none; + float:right; + padding-left:10px; + padding-right:15px; + background-image:none; + background-repeat:no-repeat; + background-position:right; + color: var(--footer-foreground-color); + font-size: 8pt; +} + + +div.summary +{ + float: right; + font-size: 8pt; + padding-right: 5px; + width: 50%; + text-align: right; +} + +div.summary a +{ + white-space: nowrap; +} + +table.classindex +{ + margin: 10px; + white-space: nowrap; + margin-left: 3%; + margin-right: 3%; + width: 94%; + border: 0; + border-spacing: 0; + padding: 0; +} + +div.ingroups +{ + font-size: 8pt; + width: 50%; + text-align: left; +} + +div.ingroups a +{ + white-space: nowrap; +} + +div.header +{ + background-image: var(--header-gradient-image); + background-repeat:repeat-x; + background-color: var(--header-background-color); + margin: 0px; + border-bottom: 1px solid var(--header-separator-color); +} + +div.headertitle +{ + padding: 5px 5px 5px 10px; +} + +.PageDocRTL-title div.headertitle { + text-align: right; + direction: rtl; +} + +dl { + padding: 0 0 0 0; +} + +/* dl.note, dl.warning, dl.attention, dl.pre, dl.post, dl.invariant, dl.deprecated, dl.todo, dl.test, dl.bug, dl.examples */ +dl.section { + margin-left: 0px; + padding-left: 0px; +} + +dl.note { + margin-left: -7px; + padding-left: 3px; + border-left: 4px solid; + border-color: #D0C000; +} + +dl.warning, dl.attention { + margin-left: -7px; + padding-left: 3px; + border-left: 4px solid; + border-color: #FF0000; +} + +dl.pre, dl.post, dl.invariant { + margin-left: -7px; + padding-left: 3px; + border-left: 4px solid; + border-color: #00D000; +} + +dl.deprecated { + margin-left: -7px; + padding-left: 3px; + border-left: 4px solid; + border-color: #505050; +} + +dl.todo { + margin-left: -7px; + padding-left: 3px; + border-left: 4px solid; + border-color: #00C0E0; +} + +dl.test { + margin-left: -7px; + padding-left: 3px; + border-left: 4px solid; + border-color: #3030E0; +} + +dl.bug { + margin-left: -7px; + padding-left: 3px; + border-left: 4px solid; + border-color: #C08050; +} + +dl.section dd { + margin-bottom: 6px; +} + + +#projectrow +{ + height: 56px; +} + +#projectlogo +{ + text-align: center; + vertical-align: bottom; + border-collapse: separate; +} + +#projectlogo img +{ + border: 0px none; +} + +#projectalign +{ + vertical-align: middle; + padding-left: 0.5em; +} + +#projectname +{ + font-size: 200%; + font-family: var(--font-family-title); + margin: 0px; + padding: 2px 0px; +} + +#projectbrief +{ + font-size: 90%; + font-family: var(--font-family-title); + margin: 0px; + padding: 0px; +} + +#projectnumber +{ + font-size: 50%; + font-family: 50% var(--font-family-title); + margin: 0px; + padding: 0px; +} + +#titlearea +{ + padding: 0px; + margin: 0px; + width: 100%; + border-bottom: 1px solid var(--title-separator-color); + background-color: var(--title-background-color); +} + +.image +{ + text-align: center; +} + +.dotgraph +{ + text-align: center; +} + +.mscgraph +{ + text-align: center; +} + +.plantumlgraph +{ + text-align: center; +} + +.diagraph +{ + text-align: center; +} + +.caption +{ + font-weight: bold; +} + +dl.citelist { + margin-bottom:50px; +} + +dl.citelist dt { + color:var(--citation-label-color); + float:left; + font-weight:bold; + margin-right:10px; + padding:5px; + text-align:right; + width:52px; +} + +dl.citelist dd { + margin:2px 0 2px 72px; + padding:5px 0; +} + +div.toc { + padding: 14px 25px; + background-color: var(--toc-background-color); + border: 1px solid var(--toc-border-color); + border-radius: 7px 7px 7px 7px; + float: right; + height: auto; + margin: 0 8px 10px 10px; + width: 200px; +} + +div.toc li { + background: url("bdwn.png") 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: 30px; +} + +div.toc li.level4 { + margin-left: 45px; +} + +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..d42dad52d5 --- /dev/null +++ b/doxygen.svg @@ -0,0 +1,26 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/draw_8hpp_source.html b/draw_8hpp_source.html new file mode 100644 index 0000000000..ee66c6aa30 --- /dev/null +++ b/draw_8hpp_source.html @@ -0,0 +1,143 @@ + + + + + + + +Topaz: src/tz/gl/draw.hpp Source File + + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.0.0.2 +
+
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..f579fbf3e2 --- /dev/null +++ b/dynsections.js @@ -0,0 +1,123 @@ +/* + @licstart The following is the entire license notice for the JavaScript code in this file. + + The MIT License (MIT) + + Copyright (C) 1997-2020 by Dimitri van Heesch + + Permission is hereby granted, free of charge, to any person obtaining a copy of this software + and associated documentation files (the "Software"), to deal in the Software without restriction, + including without limitation the rights to use, copy, modify, merge, publish, distribute, + sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is + furnished to do so, subject to the following conditions: + + The above copyright notice and this permission notice shall be included in all copies or + substantial portions of the Software. + + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING + BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND + NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, + DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + + @licend The above is the entire license notice for the JavaScript code in this file + */ +function toggleVisibility(linkObj) +{ + var base = $(linkObj).attr('id'); + var summary = $('#'+base+'-summary'); + var content = $('#'+base+'-content'); + var trigger = $('#'+base+'-trigger'); + var src=$(trigger).attr('src'); + if (content.is(':visible')===true) { + content.hide(); + summary.show(); + $(linkObj).addClass('closed').removeClass('opened'); + $(trigger).attr('src',src.substring(0,src.length-8)+'closed.png'); + } else { + content.show(); + summary.hide(); + $(linkObj).removeClass('closed').addClass('opened'); + $(trigger).attr('src',src.substring(0,src.length-10)+'open.png'); + } + return false; +} + +function updateStripes() +{ + $('table.directory tr'). + removeClass('even').filter(':visible:even').addClass('even'); + $('table.directory tr'). + removeClass('odd').filter(':visible:odd').addClass('odd'); +} + +function toggleLevel(level) +{ + $('table.directory tr').each(function() { + var l = this.id.split('_').length-1; + var i = $('#img'+this.id.substring(3)); + var a = $('#arr'+this.id.substring(3)); + if (l + + + + + + +Topaz: src/tz/core/engine_info.hpp Source File + + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.0.0.2 +
+
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{
+ +
18 {
+
19 enum class render_api
+
20 {
+
21 vulkan,
+
22 opengl
+
23 };
+
24
+
25 enum class build_config
+
26 {
+
27 debug,
+
28 release,
+
29 profile
+
30 };
+
31
+
38 std::string to_string() const;
+
39 constexpr bool operator==(const engine_info& rhs) const = default;
+
40
+
41 render_api renderer;
+
42 build_config build;
+ +
44 };
+
45
+
52 inline engine_info info();
+
53
+
57}
+
58#include "tz/core/engine_info.inl"
+
59#endif // TOPAZ_CORE_ENGINE_INFO_HPP
+
Represents information about the current engine used.
Definition: engine_info.hpp:18
+
std::string to_string() const
Retrieve a string describing the engine.
Definition: engine_info.cpp:5
+
Definition: version.hpp:17
+
+
+ + + + diff --git a/enum__field_8hpp_source.html b/enum__field_8hpp_source.html new file mode 100644 index 0000000000..163b9bc2a4 --- /dev/null +++ b/enum__field_8hpp_source.html @@ -0,0 +1,175 @@ + + + + + + + +Topaz: src/tz/core/data/enum_field.hpp Source File + + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.0.0.2 +
+
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/extensions_8hpp_source.html b/extensions_8hpp_source.html new file mode 100644 index 0000000000..5387be8289 --- /dev/null +++ b/extensions_8hpp_source.html @@ -0,0 +1,203 @@ + + + + + + + +Topaz: src/tz/gl/impl/vulkan/detail/extensions.hpp Source File + + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.0.0.2 +
+
C++20 Graphics Engine
+
+
+ + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
extensions.hpp
+
+
+
1#ifndef TOPAZ_GL_IMPL_BACKEND_VK2_EXTENSIONS_HPP
+
2#define TOPAZ_GL_IMPL_BACKEND_VK2_EXTENSIONS_HPP
+
3#include "tz/core/data/basic_list.hpp"
+
4#include "tz/core/data/enum_field.hpp"
+
5#include "vulkan/vulkan.h"
+
6#include <array>
+
7#include <cstring>
+
8
+
9namespace tz::gl::vk2
+
10{
+ +
20 {
+ +
23
+
24 Count
+
25 };
+
26
+
30 enum class DeviceExtension
+
31 {
+ +
34 ShaderDebugPrint,
+
35
+
36 Count
+
37 };
+
38
+
39 using InstanceExtensionList = tz::enum_field<InstanceExtension>;
+
40 using DeviceExtensionList = tz::enum_field<DeviceExtension>;
+
41
+
46 namespace util
+
47 {
+
48 constexpr std::array<const char*, static_cast<int>(InstanceExtension::Count)> instance_extension_tz_names{"Debug Messenger"};
+
49 constexpr std::array<const char*, static_cast<int>(DeviceExtension::Count)> device_extension_tz_names{"Swapchain", "Shader Debug Print"};
+
50
+
51 using VkExtension = const char*;
+
52 constexpr std::array<VkExtension, static_cast<int>(InstanceExtension::Count)> instance_extension_names{VK_EXT_DEBUG_UTILS_EXTENSION_NAME};
+
53 constexpr std::array<VkExtension, static_cast<int>(DeviceExtension::Count)> device_extension_names{VK_KHR_SWAPCHAIN_EXTENSION_NAME, VK_KHR_SHADER_NON_SEMANTIC_INFO_EXTENSION_NAME};
+
54
+
55 constexpr VkExtension to_vk_extension(InstanceExtension extension)
+
56 {
+
57 using SizeType = decltype(instance_extension_names)::size_type;
+
58 return instance_extension_names[static_cast<SizeType>(static_cast<int>(extension))];
+
59 }
+
60
+
61 constexpr VkExtension to_vk_extension(DeviceExtension extension)
+
62 {
+
63 using SizeType = decltype(device_extension_names)::size_type;
+
64 return device_extension_names[static_cast<SizeType>(static_cast<int>(extension))];
+
65 }
+
66
+
67 constexpr InstanceExtension to_instance_extension(VkExtension extension)
+
68 {
+
69 auto iter = std::find_if(instance_extension_names.begin(), instance_extension_names.end(), [extension](VkExtension cur_ext)->bool{return std::strcmp(cur_ext, extension) == 0;});
+
70 if(iter != instance_extension_names.end())
+
71 {
+
72 return static_cast<InstanceExtension>(static_cast<int>(std::distance(instance_extension_names.begin(), iter)));
+
73 }
+
74 return InstanceExtension::Count;
+
75 }
+
76
+
77 constexpr DeviceExtension to_device_extension(VkExtension extension)
+
78 {
+
79 auto iter = std::find_if(device_extension_names.begin(), device_extension_names.end(), [extension](VkExtension cur_ext)->bool{return std::strcmp(cur_ext, extension) == 0;});
+
80 if(iter != device_extension_names.end())
+
81 {
+
82 return static_cast<DeviceExtension>(static_cast<int>(std::distance(device_extension_names.begin(), iter)));
+
83 }
+
84 return DeviceExtension::Count;
+
85 }
+
86
+
87 using VkExtensionList = tz::basic_list<VkExtension>;
+
88 }
+
89}
+
90
+
91#endif // TOPAZ_GL_IMPL_BACKEND_VK2_EXTENSIONS_HPP
+
Custom list, feature subset of std::vector.
Definition: basic_list.hpp:21
+
Container for enum values, useful for vintage bitfield types.
Definition: enum_field.hpp:16
+
Swapchains are infrastructures which represent GPU images we will render to before they can be presen...
Definition: swapchain.hpp:32
+
DeviceExtension
Supported Vulkan extension for a LogicalDevice.
Definition: extensions.hpp:31
+
InstanceExtension
Supported Vulkan extension for a VulkanInstance.
Definition: extensions.hpp:20
+ +
+
+ + + + diff --git a/fallback_8hpp_source.html b/fallback_8hpp_source.html new file mode 100644 index 0000000000..04fdeeaa62 --- /dev/null +++ b/fallback_8hpp_source.html @@ -0,0 +1,166 @@ + + + + + + + +Topaz: src/tz/core/memory/allocators/fallback.hpp Source File + + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.0.0.2 +
+
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..3a364030c2 --- /dev/null +++ b/features_8hpp_source.html @@ -0,0 +1,207 @@ + + + + + + + +Topaz: src/tz/gl/impl/vulkan/detail/features.hpp Source File + + + + + + + + + + + + + + + + +
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
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{
+
16 enum class DeviceFeature
+
17 {
+ + + + + + + + + + + +
40 };
+
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..522cc20a11 --- /dev/null +++ b/fence_8hpp_source.html @@ -0,0 +1,177 @@ + + + + + + + +Topaz: src/tz/gl/impl/vulkan/detail/fence.hpp Source File + + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.0.0.2 +
+
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..6fee1ad957 --- /dev/null +++ b/fixed__function_8hpp_source.html @@ -0,0 +1,332 @@ + + + + + + + +Topaz: src/tz/gl/impl/vulkan/detail/fixed_function.hpp Source File + + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.0.0.2 +
+
C++20 Graphics Engine
+
+
+ + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
fixed_function.hpp
+
+
+
1#ifndef TOPAZ_GL_IMPL_BACKEND_VK2_FIXED_FUNCTION_HPP
+
2#define TOPAZ_GL_IMPL_BACKEND_VK2_FIXED_FUNCTION_HPP
+
3#include "tz/core/data/basic_list.hpp"
+
4#include "tz/core/data/enum_field.hpp"
+
5#include "tz/core/data/vector.hpp"
+
6#include "vulkan/vulkan.h"
+
7#include <optional>
+
8
+
9namespace tz::gl::vk2
+
10{
+ +
17 {
+
19 Vec1Float16 = VK_FORMAT_R16_SFLOAT,
+
21 Vec1Float32 = VK_FORMAT_R32_SFLOAT,
+
22
+
24 Vec2Float32 = VK_FORMAT_R16G16_SFLOAT,
+
26 Vec2Float64 = VK_FORMAT_R32G32_SFLOAT,
+
27
+
29 Vec3Float48 = VK_FORMAT_R16G16B16_SFLOAT,
+
31 Vec3Float96 = VK_FORMAT_R32G32B32_SFLOAT,
+
32
+
34 Vec4Float64 = VK_FORMAT_R16G16B16A16_SFLOAT,
+
36 Vec4Float128 = VK_FORMAT_R32G32B32A32_SFLOAT
+
37 };
+
38
+
39 enum class VertexInputRate
+
40 {
+
41 PerVertexBasis = VK_VERTEX_INPUT_RATE_VERTEX,
+
42 PerInstanceBasis = VK_VERTEX_INPUT_RATE_INSTANCE
+
43 };
+
44
+ +
52 {
+
54 struct Binding
+
55 {
+
57 std::uint32_t binding;
+
59 std::uint32_t stride;
+
61 VertexInputRate input_rate;
+
62 };
+
63
+
65 struct Attribute
+
66 {
+
68 std::uint32_t shader_location;
+
70 std::uint32_t binding_id;
+ +
74 std::uint32_t element_offset;
+
75 };
+
76
+
77 tz::basic_list<Binding> bindings = {};
+
78 tz::basic_list<Attribute> attributes = {};
+
79 };
+
80
+ +
88 {
+ + +
91
+
92 using NativeType = VkPipelineViewportStateCreateInfo;
+
93 NativeType native() const;
+
94 };
+
95
+
96 ViewportState create_basic_viewport(tz::vec2 dimensions);
+
97
+
102 enum class PolygonMode
+
103 {
+
105 Fill = VK_POLYGON_MODE_FILL,
+
107 Line = VK_POLYGON_MODE_LINE,
+
109 Point = VK_POLYGON_MODE_POINT
+
110 };
+
111
+
116 enum class CullMode
+
117 {
+
119 NoCulling,
+ + + +
126 };
+
127
+ +
133 {
+
135 bool depth_clamp = false;
+ + +
140
+
141 using NativeType = VkPipelineRasterizationStateCreateInfo;
+
142 NativeType native() const;
+
143 };
+
144
+ +
150 {
+
151 using NativeType = VkPipelineMultisampleStateCreateInfo;
+
152 NativeType native() const;
+
153 };
+
154
+ +
160 {
+
162 AlwaysFalse = VK_COMPARE_OP_NEVER,
+
164 LessThan = VK_COMPARE_OP_LESS,
+
166 EqualTo = VK_COMPARE_OP_EQUAL,
+
168 LessThanOrEqual = VK_COMPARE_OP_LESS_OR_EQUAL,
+
170 GreaterThan = VK_COMPARE_OP_GREATER,
+
172 NotEqualTo = VK_COMPARE_OP_NOT_EQUAL,
+
174 GreaterThanOrEqual = VK_COMPARE_OP_GREATER_OR_EQUAL,
+
176 AlwaysTrue = VK_COMPARE_OP_ALWAYS
+
177 };
+ +
183 {
+
185 bool depth_testing = false;
+
187 bool depth_writes = false;
+ + +
192
+
194 bool stencil_testing = false;
+
196 VkStencilOpState front = {};
+
198 VkStencilOpState back = {};
+
200 float min_depth_bounds = 0.0f;
+
202 float max_depth_bounds = 1.0f;
+
203
+
204 using NativeType = VkPipelineDepthStencilStateCreateInfo;
+
205 NativeType native() const;
+
206 };
+
207
+ +
213 {
+
214 using AttachmentState = VkPipelineColorBlendAttachmentState;
+
215 static AttachmentState no_blending();
+
216 static AttachmentState alpha_blending();
+
217
+
218 tz::basic_list<AttachmentState> attachment_states = {no_blending()};
+
219 std::optional<VkLogicOp> logical_operator = std::nullopt;
+
220 tz::vec4 blend_constants = tz::vec4{0.0f, 0.0f, 0.0f, 0.0f};
+
221
+
222 using NativeType = VkPipelineColorBlendStateCreateInfo;
+
223 NativeType native() const;
+
224 };
+
225
+
226 enum class DynamicStateType
+
227 {
+
228 Viewport = VK_DYNAMIC_STATE_VIEWPORT,
+
229 Scissor = VK_DYNAMIC_STATE_SCISSOR
+
230 };
+
231
+
232 using DynamicStateTypes = tz::enum_field<DynamicStateType>;
+
233
+ +
239 {
+
240 DynamicStateTypes states = {};
+
241 };
+
242}
+
243
+
244#endif // TOPAZ_GL_IMPL_BACKEND_VK2_FIXED_FUNCTION_HPP
+
Custom list, feature subset of std::vector.
Definition: basic_list.hpp:21
+
Container for enum values, useful for vintage bitfield types.
Definition: enum_field.hpp:16
+
Definition: vector.hpp:18
+
VertexInputFormat
Specifies the format of a vertex input attribute.
Definition: fixed_function.hpp:17
+
DepthComparator
When two fragments depth values are compared aka comp(lhs, rhs), what should the return expression be...
Definition: fixed_function.hpp:160
+
PolygonMode
Describes how fragments are generated for geometry.
Definition: fixed_function.hpp:103
+
CullMode
Describes which faces should be culled.
Definition: fixed_function.hpp:117
+
@ Vec3Float48
Three 16-bit floats.
+
@ Vec4Float64
Four 16-bit floats.
+
@ Vec1Float16
A single 16-bit float.
+
@ Vec1Float32
A single 32-bit float.
+
@ Vec2Float32
Two 16-bit floats.
+
@ Vec3Float96
Three 32-bit floats.
+
@ Vec2Float64
Two 32-bit floats.
+
@ Vec4Float128
Four 32-bit floats.
+ + + + + + + + + + + + + + + +
Specifies how a new fragment colour is combined with the previous colour within the output.
Definition: fixed_function.hpp:213
+
Specifies the state of the depth/stencil buffer, if any.
Definition: fixed_function.hpp:183
+
DepthComparator depth_compare_operation
Describes how two fragment depth values are compared. See DepthComparator for more information.
Definition: fixed_function.hpp:189
+
VkStencilOpState front
Parameter of stencil testing.
Definition: fixed_function.hpp:196
+
float max_depth_bounds
If depth bounds testing is enabled, this specifies the maximum depth boundary.
Definition: fixed_function.hpp:202
+
float min_depth_bounds
If depth bounds testing is enabled, this specifies the minimum depth boundary.
Definition: fixed_function.hpp:200
+
bool depth_testing
Whether depth testing is enabled.
Definition: fixed_function.hpp:185
+
bool depth_bounds_testing
Whether depth bounds testing should be enabled. If enabled, fragments with depth values < min_depth_b...
Definition: fixed_function.hpp:191
+
bool depth_writes
If a fragment's value passes the depth test (that is, the depth compare operation returns true),...
Definition: fixed_function.hpp:187
+
VkStencilOpState back
Parameter of stencil testing.
Definition: fixed_function.hpp:198
+
bool stencil_testing
Whether stencil testing is enabled.
Definition: fixed_function.hpp:194
+
At present, dynamic state is not supported, so this struct is not configurable.
Definition: fixed_function.hpp:239
+
At present, multisampling is not supported, so this struct is not configurable.
Definition: fixed_function.hpp:150
+
Configures how the geometry shaped by input data is transformed into fragments.
Definition: fixed_function.hpp:133
+
PolygonMode polygon_mode
Describe how fragments are generated from geometry. See PolygonMode for more information.
Definition: fixed_function.hpp:137
+
CullMode cull_mode
Describe the culling behaviour. See CullMode for more information.
Definition: fixed_function.hpp:139
+
bool depth_clamp
Fragments that are beyond the near and far planes are clipped to them instead of being discarded....
Definition: fixed_function.hpp:135
+
Attributes describe data members of a vertex input element.
Definition: fixed_function.hpp:66
+
VertexInputFormat format
Describes the data components of the attribute are laid out.
Definition: fixed_function.hpp:72
+
std::uint32_t binding_id
Binding id corresponding to this attribute. VertexInputState::bindings must contain an element Vertex...
Definition: fixed_function.hpp:70
+
std::uint32_t shader_location
Shader Input Location number corresponding to this attribute.
Definition: fixed_function.hpp:68
+
std::uint32_t element_offset
Distance (in bytes) from the beginning of the vertex input element to this attribute....
Definition: fixed_function.hpp:74
+
Each binding has an index. Attributes refer to an existing binding via its index.
Definition: fixed_function.hpp:55
+
VertexInputRate input_rate
Describes how often the binding appears throughout the vertex input.
Definition: fixed_function.hpp:61
+
std::uint32_t binding
Index of the binding.
Definition: fixed_function.hpp:57
+
std::uint32_t stride
Distance (in bytes) between the same binding in the next vertex input element.
Definition: fixed_function.hpp:59
+
Specifies how the input vertex data is organised.
Definition: fixed_function.hpp:52
+
Specifies the region of the output that will be rendered to.
Definition: fixed_function.hpp:88
+
+
+ + + + diff --git a/folderclosed.png b/folderclosed.png new file mode 100644 index 0000000000000000000000000000000000000000..bb8ab35edce8e97554e360005ee9fc5bffb36e66 GIT binary patch literal 616 zcmV-u0+;=XP)a9#ETzayK)T~Jw&MMH>OIr#&;dC}is*2Mqdf&akCc=O@`qC+4i z5Iu3w#1M@KqXCz8TIZd1wli&kkl2HVcAiZ8PUn5z_kG@-y;?yK06=cA0U%H0PH+kU zl6dp}OR(|r8-RG+YLu`zbI}5TlOU6ToR41{9=uz^?dGTNL;wIMf|V3`d1Wj3y!#6` zBLZ?xpKR~^2x}?~zA(_NUu3IaDB$tKma*XUdOZN~c=dLt_h_k!dbxm_*ibDM zlFX`g{k$X}yIe%$N)cn1LNu=q9_CS)*>A zsX_mM4L@`(cSNQKMFc$RtYbx{79#j-J7hk*>*+ZZhM4Hw?I?rsXCi#mRWJ=-0LGV5a-WR0Qgt<|Nqf)C-@80`5gIz45^_20000IqP)X=#(TiCT&PiIIVc55T}TU}EUh*{q$|`3@{d>{Tc9Bo>e= zfmF3!f>fbI9#GoEHh0f`i5)wkLpva0ztf%HpZneK?w-7AK@b4Itw{y|Zd3k!fH?q2 zlhckHd_V2M_X7+)U&_Xcfvtw60l;--DgZmLSw-Y?S>)zIqMyJ1#FwLU*%bl38ok+! zh78H87n`ZTS;uhzAR$M`zZ`bVhq=+%u9^$5jDplgxd44}9;IRqUH1YHH|@6oFe%z( zo4)_>E$F&^P-f(#)>(TrnbE>Pefs9~@iN=|)Rz|V`sGfHNrJ)0gJb8xx+SBmRf@1l zvuzt=vGfI)<-F9!o&3l?>9~0QbUDT(wFdnQPv%xdD)m*g%!20>Bc9iYmGAp<9YAa( z0QgYgTWqf1qN++Gqp z8@AYPTB3E|6s=WLG?xw0tm|U!o=&zd+H0oRYE;Dbx+Na9s^STqX|Gnq%H8s(nGDGJ j8vwW|`Ts`)fSK|Kx=IK@RG@g200000NkvXXu0mjfauFEA literal 0 HcmV?d00001 diff --git a/game__info_8hpp_source.html b/game__info_8hpp_source.html new file mode 100644 index 0000000000..710b27f4ad --- /dev/null +++ b/game__info_8hpp_source.html @@ -0,0 +1,159 @@ + + + + + + + +Topaz: src/tz/core/game_info.hpp Source File + + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.0.0.2 +
+
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
+
Definition: version.hpp:17
+
+
+ + + + diff --git a/gpu__mem_8hpp_source.html b/gpu__mem_8hpp_source.html new file mode 100644 index 0000000000..eba036e700 --- /dev/null +++ b/gpu__mem_8hpp_source.html @@ -0,0 +1,139 @@ + + + + + + + +Topaz: src/tz/gl/impl/vulkan/detail/gpu_mem.hpp Source File + + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.0.0.2 +
+
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.html b/graphics.html new file mode 100644 index 0000000000..b4b435d0fe --- /dev/null +++ b/graphics.html @@ -0,0 +1,164 @@ + + + + + + + +Topaz: Graphics + + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.0.0.2 +
+
C++20 Graphics Engine
+
+
+ + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
Graphics
+
+
+

Topaz has its own high-level graphics API.

+

The documentation for this API can be found within the Graphics Library section of the C++ API.

+

The API is comprised of multiple layers.

+ +
+

+tz::gl

+

The uppermost layer of the graphics API is what you will be interacting with as an application/game developer. This is all housed directly within the tz::gl namespace. There are various high-level concepts within tz::gl which you will need to understand to use the graphics library effectively.

+

+Device

+

There is a global tz::gl::device object which is provided by the graphics library. You can retrieve a reference to this device at any time via tz::gl::get_device(). Whenever the usage of a tz::gl::device is mentioned, it is always this global device object.

+

+Shaders

+

To draw anything, you must have written a shader. Shaders are programs that run on the GPU. This means that they are unlike a normal program you would run via a CPU.

+

Shaders are written in a variety of specialised programming languages. In Topaz, all shaders are written in the Topaz Shader Language, or TZSL for short. For more information on TZSL, read through the the Shaders section.

+

+Renderers

+

Renderers represent a single render-pass. A render-pass is a single execution of the rendering pipeline. In other words, it represents a single 'instance' of GPU work.

+

To create a renderer, you need to specify the following (within a tz::gl::renderer_info):

    +
  • Shaders, exactly one of the following:
      +
    • A single compute shader.
    • +
    • At least a vertex shader and a fragment shader.
        +
      • Optionally, tessellation control and evaluation shaders.
      • +
      +
    • +
    +
  • +
  • Optionally, one or more Resources.
  • +
  • Optionally, Outputs. If no output is specified, the renderer will draw directly to the window.
  • +
+

Once you have filled your tz::gl::renderer_info, you can invoke tz::gl::device::create_renderer() to create a new tz::gl::renderer.

+

+Resources

+

Resources are optional blocks of data that are usually passed to shaders. Resources are either buffers or images.

+

Once you've created a resource, you can attach it to a renderer via tz::gl::renderer_info::add_resource(). A resource is always owned by exactly one renderer, although you can also use tz::gl::renderer_info::ref_resource() to have a renderer use a resource that is owned by another.

Note
If a renderer is using a resource owned by another renderer via ref_resource, it is essential that the lifetime of the owning renderer does not end before or during the user's render() invocation.
+

+Outputs

+

just output stuff.

+
+
+
+ + + + diff --git a/graphics__documentation_8hpp_source.html b/graphics__documentation_8hpp_source.html new file mode 100644 index 0000000000..11e835ff1d --- /dev/null +++ b/graphics__documentation_8hpp_source.html @@ -0,0 +1,124 @@ + + + + + + + +Topaz: src/graphics_documentation.hpp Source File + + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.0.0.2 +
+
C++20 Graphics Engine
+
+
+ + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
graphics_documentation.hpp
+
+
+
1
+
+
+ + + + diff --git a/graphics__pipeline_8hpp_source.html b/graphics__pipeline_8hpp_source.html new file mode 100644 index 0000000000..09dfa45752 --- /dev/null +++ b/graphics__pipeline_8hpp_source.html @@ -0,0 +1,307 @@ + + + + + + + +Topaz: src/tz/gl/impl/vulkan/detail/graphics_pipeline.hpp Source File + + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.0.0.2 +
+
C++20 Graphics Engine
+
+
+ + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
graphics_pipeline.hpp
+
+
+
1#ifndef TOPAZ_GL_IMPL_BACKEND_VK2_GRAPHICS_PIPELINE_HPP
+
2#define TOPAZ_GL_IMPL_BACKEND_VK2_GRAPHICS_PIPELINE_HPP
+
3#if TZ_VULKAN
+
4
+
5#include "tz/gl/impl/vulkan/detail/shader.hpp"
+
6#include "tz/gl/impl/vulkan/detail/fixed_function.hpp"
+
7#include "tz/gl/impl/vulkan/detail/pipeline_layout.hpp"
+
8#include "tz/gl/impl/vulkan/detail/render_pass.hpp"
+
9
+
10namespace tz::gl::vk2
+
11{
+ +
13 {
+
14 public:
+
15 PipelineCache(const LogicalDevice& ldev);
+
16 PipelineCache(const PipelineCache& copy) = delete;
+ + +
19 PipelineCache& operator=(const PipelineCache& rhs) = delete;
+
20 PipelineCache& operator=(PipelineCache&& rhs);
+
21
+
22
+
23 bool is_null() const;
+
24 static PipelineCache null();
+
25 using NativeType = VkPipelineCache;
+
26 NativeType native() const;
+
27 private:
+
28 PipelineCache(std::nullptr_t);
+
29
+
30 VkPipelineCache cache = VK_NULL_HANDLE;
+
31 const LogicalDevice* ldev = nullptr;
+
32 };
+ +
34 {
+
35 ViewportState viewport;
+
36 VertexInputState vertex_input = {};
+
37 RasteriserState rasteriser = {};
+
38 MultisampleState multisample = {};
+
39 DepthStencilState depth_stencil = {};
+
40 ColourBlendState colour_blend = {};
+
41 DynamicState dynamic = {};
+
42 };
+ +
48 {
+
50 bool valid() const;
+
52 bool valid_device() const;
+
53
+
54 ShaderPipelineData shaders;
+
55 PipelineState state;
+
56 const PipelineLayout* pipeline_layout;
+
57 const RenderPass* render_pass;
+ +
59 {
+
60 std::vector<VkFormat> colour_attachment_formats = {};
+
61 VkFormat depth_format = VK_FORMAT_UNDEFINED;
+
62 bool operator==(const DynamicRenderingState& rhs) const = default;
+
63 };
+
64 DynamicRenderingState dynamic_rendering_state = {};
+
65 const LogicalDevice* device;
+
66 };
+
67
+ +
69 {
+
70 ShaderPipelineData shader;
+
71 const PipelineLayout* pipeline_layout;
+
72
+
73 const LogicalDevice* device;
+
74 };
+
75
+ +
81 {
+
82 public:
+
83 GraphicsPipeline(const GraphicsPipelineInfo& info, const PipelineCache& existing_cache = PipelineCache::null());
+
84 GraphicsPipeline(const GraphicsPipeline& copy) = delete;
+ + +
87
+
88 GraphicsPipeline& operator=(const GraphicsPipeline& rhs) = delete;
+
89 GraphicsPipeline& operator=(GraphicsPipeline&& rhs);
+
90
+
91 const LogicalDevice& get_device() const;
+
92 const GraphicsPipelineInfo& get_info() const;
+
93 void set_layout(PipelineLayout& layout);
+
94
+
95 using NativeType = VkPipeline;
+
96 NativeType native() const;
+
97 private:
+
98 VkPipeline pipeline;
+ +
100 };
+
101
+ +
103 {
+
104 public:
+
105 ComputePipeline(const ComputePipelineInfo& info, const PipelineCache& existing_cache = PipelineCache::null());
+
106 ComputePipeline(const ComputePipeline& copy) = delete;
+ + +
109
+
110 ComputePipeline& operator=(const ComputePipeline& rhs) = delete;
+
111 ComputePipeline& operator=(ComputePipeline&& rhs);
+
112
+
113 const LogicalDevice& get_device() const;
+
114 const ComputePipelineInfo& get_info() const;
+
115 void set_layout(PipelineLayout& layout);
+
116
+
117 using NativeType = VkPipeline;
+
118 NativeType native() const;
+
119 private:
+
120 VkPipeline pipeline;
+ +
122 };
+
123
+ +
125 {
+
126 public:
+
127 Pipeline(const GraphicsPipelineInfo& graphics_info, const PipelineCache& cache = PipelineCache::null());
+
128 Pipeline(const ComputePipelineInfo& compute_info, const PipelineCache& cache = PipelineCache::null());
+
129
+
130 PipelineContext get_context() const;
+
131 const LogicalDevice& get_device() const;
+
132 const PipelineLayout& get_layout() const;
+
133 void set_layout(PipelineLayout& layout);
+
134
+
135 using NativeType = VkPipeline;
+
136 NativeType native() const;
+
137
+
138 static Pipeline null();
+
139 bool is_null() const;
+
140 private:
+
141 Pipeline();
+
142
+
143 std::variant<GraphicsPipeline, ComputePipeline, std::monostate> pipeline_variant;
+
144 };
+
145
+ +
147 {
+
148 PipelineData() = default;
+ +
150 {
+
151 *this = std::move(move);
+
152 }
+
153 PipelineData& operator=(PipelineData&& rhs)
+
154 {
+
155 std::swap(this->layout, rhs.layout);
+
156 std::swap(this->data, rhs.data);
+
157 if(!this->layout.is_null())
+
158 {
+
159 this->data.set_layout(this->layout);
+
160 }
+
161 return *this;
+
162 }
+
163 PipelineLayout layout = PipelineLayout::null();
+
164 Pipeline data = Pipeline::null();
+
165 };
+
166}
+
167
+
168
+
169#endif // TZ_VULKAN
+
170#endif // TOPAZ_GL_IMPL_BACKEND_VK2_GRAPHICS_PIPELINE_HPP
+
Implements tz::gl::device_type.
Definition: device.hpp:67
+
Definition: graphics_pipeline.hpp:103
+
Represents the Graphics Pipeline.
Definition: graphics_pipeline.hpp:81
+
Logical interface to an existing PhysicalDevice.
Definition: logical_device.hpp:95
+
Definition: graphics_pipeline.hpp:13
+
Definition: graphics_pipeline.hpp:125
+
Represents an interface between shader stages and shader resources in terms of the layout of a group ...
Definition: pipeline_layout.hpp:25
+
Represents a collection of attachments and subpasses and describes how the attachments are used throu...
Definition: render_pass.hpp:188
+
PipelineContext
Specifies which pipeline type a RenderPass subpass is expected to bind to.
Definition: render_pass.hpp:40
+
Specifies how a new fragment colour is combined with the previous colour within the output.
Definition: fixed_function.hpp:213
+
Definition: graphics_pipeline.hpp:69
+
Specifies the state of the depth/stencil buffer, if any.
Definition: fixed_function.hpp:183
+
At present, dynamic state is not supported, so this struct is not configurable.
Definition: fixed_function.hpp:239
+ +
Specifies creation flags for a GraphicsPipeline.
Definition: graphics_pipeline.hpp:48
+
bool valid_device() const
Query as to whether the LogicalDevice logical_device is a valid device. That is, the device is not nu...
Definition: graphics_pipeline.cpp:70
+
bool valid() const
Query as to whether the various state objects are valid and not-nullptr.
Definition: graphics_pipeline.cpp:62
+
At present, multisampling is not supported, so this struct is not configurable.
Definition: fixed_function.hpp:150
+
Definition: graphics_pipeline.hpp:147
+
Definition: graphics_pipeline.hpp:34
+
Configures how the geometry shaped by input data is transformed into fragments.
Definition: fixed_function.hpp:133
+
Definition: shader.hpp:85
+
Specifies how the input vertex data is organised.
Definition: fixed_function.hpp:52
+
Specifies the region of the output that will be rendered to.
Definition: fixed_function.hpp:88
+
+
+ + + + diff --git a/grid__view_8hpp_source.html b/grid__view_8hpp_source.html new file mode 100644 index 0000000000..d3c7674434 --- /dev/null +++ b/grid__view_8hpp_source.html @@ -0,0 +1,156 @@ + + + + + + + +Topaz: src/tz/core/data/grid_view.hpp Source File + + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.0.0.2 +
+
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
+ +
+
+ + + + diff --git a/group__tz__core.html b/group__tz__core.html new file mode 100644 index 0000000000..6abd1b75ff --- /dev/null +++ b/group__tz__core.html @@ -0,0 +1,914 @@ + + + + + + + +Topaz: Core Functionality + + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.0.0.2 +
+
C++20 Graphics Engine
+
+
+ + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+ +
Core Functionality
+
+
+ +

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

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

+Modules

 Algorithms
 Documentation for custom Topaz algorithms.
 
 Data
 Documentation for some niché data structures.
 
 Job System
 Documentation for job-system.
 
 Memory Utility
 Documentation for a grab-bag of memory helper structs, classes and functions.
 
+ + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Data Structures

class  tz::callback< Args >
 Represents a centralised storage/management of callback functions of a common signature void(Args...). More...
 
class  tz::vector< T, S >
 
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...
 
+ + + + + + + +

+Macros

#define ImportedTextHeader(text_name, text_ext)
 Retrieves a file path which is intended to be #included in a application's main source file.
 
#define ImportedTextData(text_name, text_ext)
 Retrieves a token representing a std::string_view which contains an imported text file's contents.
 
+ + + + +

+Typedefs

+using tz::callback_handle = tz::handle< detail::callback_type >
 Opaque handle representing a reference to an existing tz::callback function.
 
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Functions

template<typename... Args>
void tz::assert (bool condition, detail::format_string fmt="<No message>", Args &&... args)
 Assert on a condition.
 
template<typename... Args>
void tz::error (detail::format_string fmt="<No message>", Args &&... args)
 Breakpoint if a debugger is present.
 
template<typename... Args>
void tz::report (detail::format_string fmt, Args &&... args)
 Print out the formatted message to standard output, including source location information.
 
mat4 tz::translate (tz::vec3 position)
 Generate a matrix which performs the following transformations at once:
 
mat4 tz::rotate (tz::vec3 rotation)
 Generates a matrix which performs the following three transformations, in chronological order:
 
mat4 tz::scale (tz::vec3 scale)
 Generates a matrix which performs the following transformations at once:
 
mat4 tz::model (tz::vec3 position, tz::vec3 rotation, tz::vec3 scale)
 Generates a model matrix using the given position, euler-rotation and scale vectors.
 
mat4 tz::view (tz::vec3 position, tz::vec3 rotation)
 Generates a view matrix using the given view position and rotation.
 
mat4 tz::perspective (float fov, float aspect_ratio, float near, float far)
 Generates a perspective projection matrix using the given camera properties.
 
mat4 tz::orthographic (float left, float right, float top, float bottom, float near, float far)
 Generates an orthographic projection matrix using the given camera properties.
 
+duration tz::system_time ()
 Retrieve a duration corresponding to the time passed since epoch.
 
void tz::initialise (initialise_info init={})
 Initialise Topaz, creating a main application window.
 
void tz::terminate ()
 Terminate Topaz.
 
void tz::begin_frame ()
 Begin a new frame.
 
void tz::end_frame ()
 End the current frame.
 
tz::wsi::windowtz::window ()
 Retrieve the application window.
 
bool tz::is_initialised ()
 Query as to whether Topaz is initialised.
 
engine_info info ()
 Retrieves the engine_info for this specific build of Topaz.
 
+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::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.

+

Notable features:

+

Macro Definition Documentation

+ +

◆ ImportedTextData

+ +
+
+ + + + + + + + + + + + + + + + + + +
ImportedTextData( text_name,
 text_ext 
)
+
+ +

Retrieves a token representing a std::string_view which contains an imported text file's contents.

+

You can only retrieve an imported text's contents if the imported text has been included via ImportedTextHeader

+ +
+
+ +

◆ ImportedTextHeader

+ +
+
+ + + + + + + + + + + + + + + + + + +
ImportedTextHeader( text_name,
 text_ext 
)
+
+ +

Retrieves a file path which is intended to be #included in a application's main source file.

+

Once included, the imported text's contents can be retrieved as a constexpr string_view via ImportedTextData.

+ +
+
+

Typedef Documentation

+ +

◆ mat4

+ +
+
+ + + + +
using tz::mat4 = typedef matrix<float, 4, 4>
+
+

A 4x4 row-major matrix of floats.

+ +
+
+

Function Documentation

+ +

◆ assert()

+ +
+
+
+template<typename... Args>
+ + + + + + + + + + + + + + + + + + + + + + + + +
void tz::assert (bool condition,
detail::format_string fmt = "<No message>",
Args &&... args 
)
+
+ +

Assert on a condition.

+

If the condition is false, tz::error is invoked. Only works on debug builds (aka if TZ_DEBUG).

+ +
+
+ +

◆ begin_frame()

+ +
+
+ + + + + + + +
void tz::begin_frame ()
+
+ +

Begin a new frame.

+
Precondition
If tz::initialise() has not been invoked before this, then the behaviour is undefined.
+ +
+
+ +

◆ end_frame()

+ +
+
+ + + + + + + +
void tz::end_frame ()
+
+ +

End the current frame.

+
Precondition
tz::begin_frame() must have been invoked prior to this, otherwise the behaviour is undefined.
+ +
+
+ +

◆ error()

+ +
+
+
+template<typename... Args>
+ + + + + + + + + + + + + + + + + + +
void tz::error (detail::format_string fmt = "<No message>",
Args &&... args 
)
+
+ +

Breakpoint if a debugger is present.

+

If no debugger is present, terminate the application with the given message. Only works on debug builds (aka if TZ_DEBUG).

+ +
+
+ +

◆ info()

+ +
+
+ + + + + +
+ + + + + + + +
engine_info info ()
+
+related
+
+ +

Retrieves the engine_info for this specific build of Topaz.

+
Returns
Information about this Topaz build.
+ +
+
+ +

◆ initialise()

+ +
+
+ + + + + + + + +
void tz::initialise (initialise_info init = {})
+
+ +

Initialise Topaz, creating a main application window.

+

The main application window is available via tz::window() from now until tz::terminate() is invoked.

Parameters
+ + +
initInformation about how the application should be initialised.
+
+
+ +
+
+ +

◆ is_initialised()

+ +
+
+ + + + + + + +
bool tz::is_initialised ()
+
+ +

Query as to whether Topaz is initialised.

+
Note
This function is within the Initial Group.
+
Returns
true If tz::initialise has been invoked and tz::terminate() has not yet been invoked. Otherwise, returns false.
+ +
+
+ +

◆ model()

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
mat4 tz::model (tz::vec3 position,
tz::vec3 rotation,
tz::vec3 scale 
)
+
+ +

Generates a model matrix using the given position, euler-rotation and scale vectors.

+

Note: This can be used to transform positions within model-space to world-space.

+ +
+
+ +

◆ orthographic()

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
mat4 tz::orthographic (float left,
float right,
float top,
float bottom,
float near,
float far 
)
+
+ +

Generates an orthographic projection matrix using the given camera properties.

+

The properties generate a cube-shaped projection.

+ +
+
+ +

◆ perspective()

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
mat4 tz::perspective (float fov,
float aspect_ratio,
float near,
float far 
)
+
+ +

Generates a perspective projection matrix using the given camera properties.

+

The properties generate a regular pyramidal-frustum-shaped projection. Note: This can be used to transform positions within camera-space to clip-space.

+ +
+
+ +

◆ report()

+ +
+
+
+template<typename... Args>
+ + + + + + + + + + + + + + + + + + +
void tz::report (detail::format_string fmt,
Args &&... args 
)
+
+ +

Print out the formatted message to standard output, including source location information.

+

Only works on debug builds.

+ +
+
+ +

◆ rotate()

+ +
+
+ + + + + + + + +
mat4 tz::rotate (tz::vec3 rotation)
+
+ +

Generates a matrix which performs the following three transformations, in chronological order:

+
    +
  • Rotates the result rotation[0] radians about the x-axis.
  • +
  • Rotates the result rotation[1] radians about the y-axis.
  • +
  • Rotates the result rotation[2] radians about the z-axis.
  • +
+ +
+
+ +

◆ scale()

+ +
+
+ + + + + + + + +
mat4 tz::scale (tz::vec3 scale)
+
+ +

Generates a matrix which performs the following transformations at once:

+
    +
  • Multiplies each value by scale[0] in the x-direction.
  • +
  • Multiplies each value by scale[1] in the y-direction.
  • +
  • Multiplies each value by scale[2] in the z-direction.
  • +
+ +
+
+ +

◆ terminate()

+ +
+
+ + + + + + + +
void tz::terminate ()
+
+ +

Terminate Topaz.

+
Precondition
If tz::initialise() has not been invoked before this, then the behaviour is undefined.
+

Just how tz::initialise() automatically spawns the main window, terminate also automatically destroys the window.

+ +
+
+ +

◆ translate()

+ +
+
+ + + + + + + + +
mat4 tz::translate (tz::vec3 position)
+
+ +

Generate a matrix which performs the following transformations at once:

+
    +
  • Translates the result position[0] units in the positive x-direction.
  • +
  • Translates the result position[1] units in the positive y-direction.
  • +
  • Translates the result position[2] units in the positive z-direction.
  • +
+ +
+
+ +

◆ view()

+ +
+
+ + + + + + + + + + + + + + + + + + +
mat4 tz::view (tz::vec3 position,
tz::vec3 rotation 
)
+
+ +

Generates a view matrix using the given view position and rotation.

+

Note: This can be used to transform positions within world-space to camera-space.

+ +
+
+ +

◆ window()

+ +
+
+ + + + + + + +
tz::wsi::window & tz::window ()
+
+ +

Retrieve the application window.

+
Postcondition
tz::initialise() has been invoked prior, but tz::terminate() has not yet been invoked.
+
Returns
Reference to the main application window.
+ +
+
+
+
+ + + + diff --git a/group__tz__core__algorithms.html b/group__tz__core__algorithms.html new file mode 100644 index 0000000000..d1f564dffc --- /dev/null +++ b/group__tz__core__algorithms.html @@ -0,0 +1,183 @@ + + + + + + + +Topaz: Algorithms + + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.0.0.2 +
+
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..ce4de08469 --- /dev/null +++ b/group__tz__core__data.html @@ -0,0 +1,145 @@ + + + + + + + +Topaz: Data + + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.0.0.2 +
+
C++20 Graphics Engine
+
+
+ + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+ +

Documentation for some niché data structures. +More...

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

+Data Structures

class  tz::basic_list< T, Allocator >
 Custom list, feature subset of std::vector. More...
 
class  tz::enum_field< E >
 Container for enum values, useful for vintage bitfield types. More...
 
class  tz::grid_view< T, N >
 A view into an array representing a flattened grid of data. More...
 
class  tz::PolymorphicList< T, Allocator >
 
+

Detailed Description

+

Documentation for some niché data structures.

+

These do not attempt to replace standard library containers - you should continue using those for the most part, although often one of these containers may be preferable.

+
+
+ + + + diff --git a/group__tz__core__job.html b/group__tz__core__job.html new file mode 100644 index 0000000000..0562fbc23f --- /dev/null +++ b/group__tz__core__job.html @@ -0,0 +1,193 @@ + + + + + + + +Topaz: Job System + + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.0.0.2 +
+
C++20 Graphics Engine
+
+
+ + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+ +

Documentation for job-system. +More...

+ + + + + +

+Concepts

concept  tz::job_system_type
 API for job system.
 
+ + + + + + + + + + +

+Typedefs

+using tz::job_handle = tz::handle< detail::job_handle_tag >
 Represents a job that has begun execution within a job_system_type.
 
using tz::job_t = std::function< void()>
 Represents a job.
 
using tz::job_system_t = tz::impl::job_system_threadpool_lfq
 Underlying job system.
 
+ + + + +

+Functions

+job_system_ttz::job_system ()
 Retrieve the global job system.
 
+

Detailed Description

+

Documentation for job-system.

+

Typedef Documentation

+ +

◆ job_system_t

+ +
+
+ +

Underlying job system.

+

See tz::job_system_type for API.

+ +
+
+ +

◆ job_t

+ +
+
+ + + + +
using tz::job_t = typedef std::function<void()>
+
+ +

Represents a job.

+

Jobs have no arguments and no return value.

+ +
+
+
+
+ + + + diff --git a/group__tz__core__memory.html b/group__tz__core__memory.html new file mode 100644 index 0000000000..0071b6a486 --- /dev/null +++ b/group__tz__core__memory.html @@ -0,0 +1,136 @@ + + + + + + + +Topaz: Memory Utility + + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.0.0.2 +
+
C++20 Graphics Engine
+
+
+ + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+ +

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

+ + + + + +

+Modules

 Allocators
 Documentation for bespoke memory allocators.
 
+

Detailed Description

+

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

+
+
+ + + + diff --git a/group__tz__core__memory__allocator.html b/group__tz__core__memory__allocator.html new file mode 100644 index 0000000000..01d26231ab --- /dev/null +++ b/group__tz__core__memory__allocator.html @@ -0,0 +1,151 @@ + + + + + + + +Topaz: Allocators + + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.0.0.2 +
+
C++20 Graphics Engine
+
+
+ + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+ +

Documentation for bespoke memory allocators. +More...

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

+Data Structures

class  tz::allocator_adapter< T, A >
 A meta-allocator which allows a tz allocator to be used as if it were a std::allocator. More...
 
class  tz::fallback_allocator< P, S >
 Implements tz::allocator. More...
 
class  tz::linear_allocator
 An allocator which operates on a pre-allocated buffer of variable size. More...
 
class  tz::mallocator
 Implements tz:allocator. More...
 
class  tz::null_allocator
 An allocator which always returns nullptr. More...
 
class  tz::stack_allocator< S >
 An allocator which has its own fixed-size buffer on the stack from which memory is sub-allocated. More...
 
+

Detailed Description

+

Documentation for bespoke memory allocators.

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

+Modules

 Core Functionality
 A grab-bag of common helpers used frequently in other engine modules.
 
 Debug UI
 On debug builds, debug-ui is always displayed on the main window above anything being rendered.
 
 Graphics Library
 Hardware-accelerated 3D graphics library.
 
 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..eb21d26740 --- /dev/null +++ b/group__tz__dbgui.html @@ -0,0 +1,253 @@ + + + + + + + +Topaz: Debug UI + + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.0.0.2 +
+
C++20 Graphics Engine
+
+
+ + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+ +

On debug builds, debug-ui is always displayed on the main window above anything being rendered. +More...

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

+Functions

void tz::dbgui::run (tz::action auto action)
 As dbgui is only available on TZ_DEBUG, calling ImGui functions directly in game-code will yield runtime errors on non-debug builds.
 
game_menu_callback_typetz::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){...}
+
callback_handle add_callback(tz::action< Args... > auto &&callback_function)
Register a new callable with this callback object.
Definition: callback.hpp:42
+
game_menu_callback_type & game_menu()
Retrieve the game menu callback.
Definition: dbgui.cpp:121
+
+
+
+ +

◆ 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:67
+
+
+
+
+
+ + + + diff --git a/group__tz__gl2.html b/group__tz__gl2.html new file mode 100644 index 0000000000..276f69b043 --- /dev/null +++ b/group__tz__gl2.html @@ -0,0 +1,379 @@ + + + + + + + +Topaz: Graphics Library + + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.0.0.2 +
+
C++20 Graphics Engine
+
+
+ + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+ +

Hardware-accelerated 3D graphics library. +More...

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

+Modules

 Inputs and Outputs
 Documentation for inputs and outputs for both Renderers and Processors.
 
 Maintainer Guide
 For Topaz maintainers only.
 
 Renderers
 Documentation for Renderers.
 
 Resources
 Documentation for renderer and Processor resources.
 
+ + + + +

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

+Macros

#define ImportedShaderHeader(shader_name, shader_type)
 Retrieves a file path which is intended to be #included in a application's main source file.
 
#define ImportedShaderSource(shader_name, shader_type)
 Retrieves a token representing a std::string_view which contains the shader's compiled results.
 
+ + + + +

+Enumerations

enum class  tz::gl::image_format { image_format::undefined +, R8 +, R8_UNorm = R8 +, R8_SNorm +, R8_UInt +, R8_SInt +, R8_sRGB +, R16 +, R16_UNorm = R16 +, R16_SNorm +, R16_UInt +, R16_SInt +, RG16 +, RG16_UNorm = RG16 +, RG16_SNorm +, RG16_UInt +, RG16_SInt +, RG16_sRGB +, RG32 +, RG32_UNorm = RG32 +, RG32_SNorm +, RG32_UInt +, RG32_SInt +, RGB24 +, RGB24_UNorm = RGB24 +, RGB24_SNorm +, RGB24_UInt +, RGB24_SInt +, RGB24_sRGB +, BGR24 +, BGR24_UNorm = BGR24 +, BGR24_SNorm +, BGR24_UInt +, BGR24_SInt +, BGR24_sRGB +, RGBA32 +, RGBA32_UNorm = RGBA32 +, RGBA32_SNorm +, RGBA32_UInt +, RGBA32_SInt +, RGBA32_sRGB +, BGRA32 +, BGRA32_UNorm = BGRA32 +, BGRA32_SNorm +, BGRA32_UInt +, BGRA32_SInt +, BGRA32_sRGB +, RGBA64_SFloat +, RGBA128_SFloat +, Depth16 +, Depth16_UNorm = Depth16 +, Count + }
 Various image formats are supported in Topaz. More...
 
+ + + + +

+Functions

devicetz::gl::get_device ()
 Retrieve the global device.
 
+

Detailed Description

+

Hardware-accelerated 3D graphics library.

+

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

+

Macro Definition Documentation

+ +

◆ ImportedShaderHeader

+ +
+
+ + + + + + + + + + + + + + + + + + +
ImportedShaderHeader( shader_name,
 shader_type 
)
+
+ +

Retrieves a file path which is intended to be #included in a application's main source file.

+

Once included, the imported shader's source code can be retrieved as a constexpr string_view via ImportedShaderSource

+ +
+
+ +

◆ ImportedShaderSource

+ +
+
+ + + + + + + + + + + + + + + + + + +
ImportedShaderSource( shader_name,
 shader_type 
)
+
+ +

Retrieves a token representing a std::string_view which contains the shader's compiled results.

+

On Vulkan, this will be SPIRV, and GLSL source code for OpenGL. You can only retrieve an imported shader's source if the imported header has been included via ImportedShaderHeader

+ +
+
+

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

For Topaz maintainers only. +More...

+ + + + + + + + +

+Modules

 OpenGL
 Documentation for all things OpenGL.
 
 Vulkan
 Documentation for all things Vulkan.
 
+

Detailed Description

+

For Topaz maintainers only.

+

Here you will find implementation details for both of the graphics API backends (OpenGL and Vulkan)

+
+
+ + + + diff --git a/group__tz__gl2__graphicsapi__ogl.html b/group__tz__gl2__graphicsapi__ogl.html new file mode 100644 index 0000000000..e94f34b71e --- /dev/null +++ b/group__tz__gl2__graphicsapi__ogl.html @@ -0,0 +1,139 @@ + + + + + + + +Topaz: OpenGL + + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.0.0.2 +
+
C++20 Graphics Engine
+
+
+ + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+ +

Documentation for all things OpenGL. +More...

+ + + + + + + + +

+Modules

 OpenGL Backend
 Documentation for the OpenGL backend, which acts as a large abstraction around OpenGL.
 
 OpenGL Frontend
 Documentation for the OpenGL Frontend, which connects the OpenGL Backend to the tz::gl API.
 
+

Detailed Description

+

Documentation for all things OpenGL.

+
+
+ + + + diff --git a/group__tz__gl2__graphicsapi__ogl__frontend.html b/group__tz__gl2__graphicsapi__ogl__frontend.html new file mode 100644 index 0000000000..f13fa52f76 --- /dev/null +++ b/group__tz__gl2__graphicsapi__ogl__frontend.html @@ -0,0 +1,136 @@ + + + + + + + +Topaz: OpenGL Frontend + + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.0.0.2 +
+
C++20 Graphics Engine
+
+
+ + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+ +

Documentation for the OpenGL Frontend, which connects the OpenGL Backend to the tz::gl API. +More...

+ + + + + +

+Modules

 renderer Implementation
 Documentation for the OpenGL Frontend implementation of renderer_type.
 
+

Detailed Description

+

Documentation for the OpenGL Frontend, which connects the OpenGL Backend to the tz::gl API.

+
+
+ + + + diff --git a/group__tz__gl2__graphicsapi__ogl__frontend__renderer.html b/group__tz__gl2__graphicsapi__ogl__frontend__renderer.html new file mode 100644 index 0000000000..96c0628c7a --- /dev/null +++ b/group__tz__gl2__graphicsapi__ogl__frontend__renderer.html @@ -0,0 +1,145 @@ + + + + + + + +Topaz: renderer Implementation + + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.0.0.2 +
+
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..aa481d88f7 --- /dev/null +++ b/group__tz__gl2__graphicsapi__vk.html @@ -0,0 +1,139 @@ + + + + + + + +Topaz: Vulkan + + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.0.0.2 +
+
C++20 Graphics Engine
+
+
+ + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+ +

Documentation for all things Vulkan. +More...

+ + + + + + + + +

+Modules

 Vulkan Backend
 Documentation for the Vulkan backend, which acts as a large abstraction around Vulkan.
 
 Vulkan Frontend
 Documentation for the Vulkan Frontend, which connects the Vulkan Backend to the tz::gl API.
 
+

Detailed Description

+

Documentation for all things Vulkan.

+
+
+ + + + diff --git a/group__tz__gl2__graphicsapi__vk__frontend.html b/group__tz__gl2__graphicsapi__vk__frontend.html new file mode 100644 index 0000000000..9885122449 --- /dev/null +++ b/group__tz__gl2__graphicsapi__vk__frontend.html @@ -0,0 +1,126 @@ + + + + + + + +Topaz: Vulkan Frontend + + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.0.0.2 +
+
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..05e5f6d8c7 --- /dev/null +++ b/group__tz__gl2__io.html @@ -0,0 +1,126 @@ + + + + + + + +Topaz: Inputs and Outputs + + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.0.0.2 +
+
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..7db8ee4e8e --- /dev/null +++ b/group__tz__gl2__renderer.html @@ -0,0 +1,270 @@ + + + + + + + +Topaz: Renderers + + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.0.0.2 +
+
C++20 Graphics Engine
+
+
+ + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+ +

Documentation for Renderers. +More...

+ + + + + +

+Concepts

concept  tz::gl::renderer_type
 Named requirement for a renderer.
 
+ + + + + + + + + + + + + +

+Data Structures

struct  tz::gl::render_state
 Stores renderer-specific state, which drives the behaviour of the rendering. More...
 
class  tz::gl::renderer_info
 Helper struct which the user can use to specify which inputs, resources they want and where they want a renderer to render to. More...
 
class  tz::gl::RendererEditBuilder
 Helper class which can be used to generate a renderer_edit_request. More...
 
class  tz::gl::renderer
 Implements tz::gl::renderer_type. More...
 
+ + + + + + + + + + +

+Typedefs

+using tz::gl::renderer_handle = tz::handle< detail::renderer_tag >
 Represents a handle for a renderer owned by an existing device.
 
+using tz::gl::renderer_options = tz::enum_field< renderer_option >
 Represents a collection of renderer options.
 
using tz::gl::renderer_edit_request = std::vector< renderer_edit::variant >
 Represents an edit to an existing renderer.
 
+ + + + +

+Enumerations

enum class  tz::gl::renderer_option {
+  renderer_option::no_depth_testing +,
+  renderer_option::alpha_blending +,
+  renderer_option::render_wait +,
+  renderer_option::no_clear_output +,
+  renderer_option::no_present +,
+  renderer_option::draw_indirect_count +,
+  _internal_final_dbgui_renderer +,
+  _internal +,
+  Count +
+ }
 Specifies options to enable extra functionality within Renderers. More...
 
+ + + + +

+Functions

+void tz::gl::common_renderer_dbgui (renderer_type auto &renderer)
 Helper function which displays render-api-agnostic information about renderers.
 
+

Detailed Description

+

Documentation for Renderers.

+

Typedef Documentation

+ +

◆ renderer_edit_request

+ +
+
+ + + + +
using tz::gl::renderer_edit_request = typedef std::vector<renderer_edit::variant>
+
+ +

Represents an edit to an existing renderer.

+
Note
This is a large structure. You should use the helper class RendererEditBuilder to create one of these instead of attempting to fill it directly.
+ +
+
+

Enumeration Type Documentation

+ +

◆ renderer_option

+ +
+
+ + + + + +
+ + + + +
enum class tz::gl::renderer_option
+
+strong
+
+ +

Specifies options to enable extra functionality within Renderers.

+ + + + + + + +
Enumerator
no_depth_testing 
    +
  • Disables depth-testing and depth-writing.
  • +
+
alpha_blending 
    +
  • Enables alpha-blending. Causes pixels with alpha value <1.0 to blend with the previous colour in the framebuffer, at a small cost to performance.
  • +
+
render_wait 
    +
  • When a compute renderer's render() is invoked, the thread will block until the compute-shader has finished processing.
  • +
+
no_clear_output 
    +
  • When a renderer is invoked, the output image is not cleared before being rendered to. If nothing has been rendered into the output this frame, then the behaviour is undefined.
  • +
+
no_present 
    +
  • When a renderer is invoked, the output image is not presented to the screen. If the output is an image_output, 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..64760b33d8 --- /dev/null +++ b/group__tz__gl2__res.html @@ -0,0 +1,334 @@ + + + + + + + +Topaz: Resources + + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.0.0.2 +
+
C++20 Graphics Engine
+
+
+ + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+ +

Documentation for renderer and Processor resources. +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_fixed +,
+  resource_access::dynamic_fixed +,
+  resource_access::dynamic_variable +,
+  Count +
+ }
 Describes the manner in which a resource can be read or written to, when owned by a renderer or Processor. More...
 
+

Detailed Description

+

Documentation for renderer and Processor resources.

+

Namely, buffers and images.

+

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_fixed 
    +
  • resource data is written once initially, and cannot be resized.
  • +
+
dynamic_fixed 
    +
  • resource data is always writable, but cannot be resized.
  • +
+
dynamic_variable 
    +
  • resource data is always writeable and resizeable.
  • +
+
+ +
+
+ +

◆ 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..882623d19d --- /dev/null +++ b/group__tz__gl__ogl2.html @@ -0,0 +1,169 @@ + + + + + + + +Topaz: OpenGL Backend + + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.0.0.2 +
+
C++20 Graphics Engine
+
+
+ + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+ +

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

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

+Modules

 Buffers
 Documentation for OpenGL Buffers.
 
 Framebuffers
 Documentation for everything relating to framebuffers.
 
 Images, Samplers and Formats
 Documentation for everything relating to Images, Samplers and image_formats.
 
 Shaders
 Documentation for everything relating to shaders.
 
+ + + + +

+Data Structures

class  tz::gl::ogl2::vertex_array
 Wrapper for an OpenGL VAO. More...
 
+ + + + + + + + + + +

+Functions

+void tz::gl::ogl2::initialise ()
 Initialise the OpenGL backend.
 
+void tz::gl::ogl2::terminate ()
 Terminate the OpenGL backend.
 
+bool tz::gl::ogl2::is_initialised ()
 Query as to whether the OpenGL backend has been initialised or not.
 
+

Detailed Description

+

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

+

This is a low-level module free of all context relevant to Topaz.

+
+
+ + + + diff --git a/group__tz__gl__ogl2__buffers.html b/group__tz__gl__ogl2__buffers.html new file mode 100644 index 0000000000..dce238d30e --- /dev/null +++ b/group__tz__gl__ogl2__buffers.html @@ -0,0 +1,319 @@ + + + + + + + +Topaz: Buffers + + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.0.0.2 +
+
C++20 Graphics Engine
+
+
+ + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+ +

Documentation for OpenGL Buffers. +More...

+ + + + + + + + +

+Data Structures

struct  tz::gl::ogl2::buffer_info
 Specifies creation flags for a buffer. More...
 
class  tz::gl::ogl2::buffer
 Documentation for OpenGL buffers. More...
 
+ + + + + + + +

+Enumerations

enum class  tz::gl::ogl2::buffer_target : GLenum {
+  buffer_target::index = GL_ELEMENT_ARRAY_BUFFER +,
+  buffer_target::draw_indirect = GL_DRAW_INDIRECT_BUFFER +,
+  buffer_target::uniform = GL_UNIFORM_BUFFER +,
+  buffer_target::shader_storage = GL_SHADER_STORAGE_BUFFER +,
+  buffer_target::parameter = GL_PARAMETER_BUFFER_ARB +
+ }
 Specifies the target to which the buffer is bound for its data store. More...
 
enum class  tz::gl::ogl2::buffer_residency {
+  buffer_residency::static_fixed +,
+  buffer_residency::dynamic +
+ }
 Specifies the expected behaviour of the data store contents. More...
 
+ + + + + + + +

+Functions

void tz::gl::ogl2::buffer_helper::copy (const buffer &source, buffer &destination)
 Copy the entire data store of a buffer to another.
 
buffer tz::gl::ogl2::buffer_helper::clone_resized (const buffer &buf, std::size_t new_size)
 buffers are not resizeable.
 
+

Detailed Description

+

Documentation for OpenGL Buffers.

+

Enumeration Type Documentation

+ +

◆ buffer_residency

+ +
+
+ + + + + +
+ + + + +
enum class tz::gl::ogl2::buffer_residency
+
+strong
+
+ +

Specifies the expected behaviour of the data store contents.

+ + + +
Enumerator
static_fixed 
    +
  • The data store contents can never be modified except from by transfer commands. This means that it cannot be mapped at all.
  • +
+
dynamic 
    +
  • The data store contents could be modified repeatedly. The buffer is read+write mappable.
  • +
+
+ +
+
+ +

◆ buffer_target

+ +
+
+ + + + + +
+ + + + +
enum class tz::gl::ogl2::buffer_target : GLenum
+
+strong
+
+ +

Specifies the target to which the buffer is bound for its data store.

+ + + + + + +
Enumerator
index 
    +
  • Index buffers (IBOs).
  • +
+
draw_indirect 
    +
  • Draw Indirect buffers.
  • +
+
uniform 
    +
  • Uniform buffers (UBOs).
  • +
+
shader_storage 
    +
  • Shader Storage buffers (SSBOs).
  • +
+
parameter 
    +
  • Draw Indirect Parameter buffer
  • +
+
+ +
+
+

Function Documentation

+ +

◆ clone_resized()

+ +
+
+ + + + + + + + + + + + + + + + + + +
buffer tz::gl::ogl2::buffer_helper::clone_resized (const bufferbuf,
std::size_t new_size 
)
+
+ +

buffers are not resizeable.

+

However, this function creates an exact copy of the buffer, but with a new size. You can assume that the target, residency and data store contents are completely unchanged. If the resize increases the size of the buffer however, then the new bytes have undefined values.

+ +
+
+ +

◆ copy()

+ +
+
+ + + + + + + + + + + + + + + + + + +
void tz::gl::ogl2::buffer_helper::copy (const buffersource,
bufferdestination 
)
+
+ +

Copy the entire data store of a buffer to another.

+

If the destination buffer is larger than the source buffer, the bytes following the copy region are untouched.

Precondition
The destination buffer must have size greater than or equal to the source buffer, otherwise the behaviour is undefined.
+ +
+
+
+
+ + + + diff --git a/group__tz__gl__ogl2__framebuffer.html b/group__tz__gl__ogl2__framebuffer.html new file mode 100644 index 0000000000..1375397e13 --- /dev/null +++ b/group__tz__gl__ogl2__framebuffer.html @@ -0,0 +1,164 @@ + + + + + + + +Topaz: Framebuffers + + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.0.0.2 +
+
C++20 Graphics Engine
+
+
+ + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+ +

Documentation for everything relating to framebuffers. +More...

+ + + + + + + + +

+Data Structures

struct  tz::gl::ogl2::framebuffer_info
 Specifies creation flags for a framebuffer. More...
 
class  tz::gl::ogl2::framebuffer
 Represents an OpenGL framebuffer object. More...
 
+ + + + +

+Typedefs

using tz::gl::ogl2::framebuffer_texture = std::variant< const image *, const render_buffer * >
 Describes a reference to either an image or renderbuffer.
 
+

Detailed Description

+

Documentation for everything relating to framebuffers.

+

Typedef Documentation

+ +

◆ framebuffer_texture

+ +
+
+ + + + +
using tz::gl::ogl2::framebuffer_texture = typedef std::variant<const image*, const render_buffer*>
+
+ +

Describes a reference to either an image or renderbuffer.

+

Is used as a framebuffer attachment.

+ +
+
+
+
+ + + + diff --git a/group__tz__gl__ogl2__image.html b/group__tz__gl__ogl2__image.html new file mode 100644 index 0000000000..15264cc7b5 --- /dev/null +++ b/group__tz__gl__ogl2__image.html @@ -0,0 +1,240 @@ + + + + + + + +Topaz: Images, Samplers and Formats + + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.0.0.2 +
+
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..628583cb97 --- /dev/null +++ b/group__tz__gl__ogl2__shader.html @@ -0,0 +1,210 @@ + + + + + + + +Topaz: Shaders + + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.0.0.2 +
+
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..aa9d1a6629 --- /dev/null +++ b/group__tz__gl__vk.html @@ -0,0 +1,267 @@ + + + + + + + +Topaz: Vulkan Backend + + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.0.0.2 +
+
C++20 Graphics Engine
+
+
+ + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+ +

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

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

+Modules

 Buffers
 Documentation for Vulkan Buffers.
 
 Command Buffers and Pools
 Documentation for everything related to Command Buffers, Command Pools and Vulkan Commands.
 
 Descriptor Layouts and Sets
 Documentation for everything related to Descriptors.
 
 Extensions and Features
 Documentation for functionality related to instance/device extensions, and optional features.
 
 Graphics Pipeline
 Documentation for the graphics pipeline.
 
 Images, Samplers and Formats
 Documentation for everything relating to Images, Samplers and image_formats.
 
 Presentation and Window Surface Interation (WSI)
 Documentation for functionality related to presenting images to existing windows.
 
 Synchronisation Primitives
 Documentation for functionality related to CPU/GPU Vulkan synchronisation primitives.
 
+ + + + + + + + + + + + + + + + + + + +

+Data Structures

class  tz::gl::vk2::PhysicalDevice
 Represents something resembling a graphics card that can perform general graphical operations. More...
 
class  tz::gl::vk2::hardware::Queue
 Represents a single hardware Queue. More...
 
struct  tz::gl::vk2::LogicalDeviceInfo
 Specifies parameters for a newly created LogicalDevice. More...
 
class  tz::gl::vk2::LogicalDevice
 Logical interface to an existing PhysicalDevice. More...
 
struct  tz::gl::vk2::VulkanInstanceInfo
 Specifies creation flags for a VulkanInstance. More...
 
class  tz::gl::vk2::VulkanInstance
 Represents a vulkan instance, which acts as a reference to all per-application state. More...
 
+ + + + +

+Enumerations

enum class  tz::gl::vk2::PhysicalDeviceVendor
 Represents a PhysicalDevice manufacturer.
 
+ + + + + + + + + + + + + +

+Functions

PhysicalDeviceList tz::gl::vk2::get_all_devices (const VulkanInstance &instance)
 Retrieve a list of all physical devices available on the machine for the given VulkanInstance.
 
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 VulkanInstanceinstance)
+
+ +

Retrieve a list of all physical devices available on the machine for the given VulkanInstance.

+

If no VulkanInstance is provided, the global instance vk2::get() will be used.

Returns
basic_list of all PhysicalDevices. These have not been filtered in any way.
+ +
+
+ +

◆ initialise()

+ +
+
+ + + + + + + + +
void tz::gl::vk2::initialise (tz::game_info game_info)
+
+ +

Initialise the vulkan backend.

+
Note
This is intended to be invoked automatically by tz::initialise however this is not yet implemented - You should invoke this yourself at the start of your program directly after tz::initialise
+ +
+
+
+
+ + + + diff --git a/group__tz__gl__vk__buffer.html b/group__tz__gl__vk__buffer.html new file mode 100644 index 0000000000..a946d3b19a --- /dev/null +++ b/group__tz__gl__vk__buffer.html @@ -0,0 +1,216 @@ + + + + + + + +Topaz: Buffers + + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.0.0.2 +
+
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..cf9b90d213 --- /dev/null +++ b/group__tz__gl__vk__commands.html @@ -0,0 +1,148 @@ + + + + + + + +Topaz: Command Buffers and Pools + + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.0.0.2 +
+
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..a4509b8dc7 --- /dev/null +++ b/group__tz__gl__vk__descriptors.html @@ -0,0 +1,213 @@ + + + + + + + +Topaz: Descriptor Layouts and Sets + + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.0.0.2 +
+
C++20 Graphics Engine
+
+
+ + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+ +

Documentation for everything related to Descriptors. +More...

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

+Data Structures

struct  tz::gl::vk2::DescriptorLayoutInfo
 Specifies creation flags for a descriptor set layout. More...
 
class  tz::gl::vk2::DescriptorLayout
 Specifies the types of resources that will be accessed by a graphics or compute pipeline via a Shader. More...
 
class  tz::gl::vk2::DescriptorLayoutBuilder
 Helper class to populate a DescriptorLayoutInfo. More...
 
struct  tz::gl::vk2::DescriptorPoolInfo
 Specifies creation flags for a descriptor pool. More...
 
class  tz::gl::vk2::DescriptorSet
 Represents a set of one or more descriptors. More...
 
class  tz::gl::vk2::DescriptorPool
 Represents storage for DescriptorSets. More...
 
struct  tz::gl::vk2::RenderPassInfo
 Specifies creation flags for a RenderPass. More...
 
+ + + + +

+Enumerations

enum class  tz::gl::vk2::DescriptorFlag {
+  DescriptorFlag::UpdateAfterBind = VK_DESCRIPTOR_BINDING_UPDATE_AFTER_BIND_BIT +,
+  DescriptorFlag::UpdateUnusedWhilePending = VK_DESCRIPTOR_BINDING_UPDATE_UNUSED_WHILE_PENDING_BIT +,
+  DescriptorFlag::PartiallyBound = VK_DESCRIPTOR_BINDING_PARTIALLY_BOUND_BIT +,
+  DescriptorFlag::VariableCount = VK_DESCRIPTOR_BINDING_VARIABLE_DESCRIPTOR_COUNT_BIT +
+ }
 Information about a specific descriptor (or array of descriptors) via a descriptor layout binding. More...
 
+

Detailed Description

+

Documentation for everything related to Descriptors.

+

Enumeration Type Documentation

+ +

◆ DescriptorFlag

+ +
+
+ + + + + +
+ + + + +
enum class tz::gl::vk2::DescriptorFlag
+
+strong
+
+ +

Information about a specific descriptor (or array of descriptors) via a descriptor layout binding.

+ + + + + +
Enumerator
UpdateAfterBind 
    +
  • Indicates that the parent set can be updated even after its bound within a command buffer.
  • +
+
UpdateUnusedWhilePending 
    +
  • Indicates that the parent set can be updated even if its bound and being used by a command buffer, so long as the execution of that command buffer isn't actually using this descriptor.
  • +
+
PartiallyBound 
    +
  • Indicates that the descriptor is partially bound. This means that if it's not used during rendering (even if its set is), it doesn't have to be set properly, or even in a valid state.
  • +
+
VariableCount 
    +
  • Indicates that this descriptor array is of variable size. Note that only the final binding of a descriptor layout can be an array of variable size.
  • +
+
+ +
+
+
+
+ + + + diff --git a/group__tz__gl__vk__extension.html b/group__tz__gl__vk__extension.html new file mode 100644 index 0000000000..19d440ed3d --- /dev/null +++ b/group__tz__gl__vk__extension.html @@ -0,0 +1,276 @@ + + + + + + + +Topaz: Extensions and Features + + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.0.0.2 +
+
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.

+ + + + + + + + + + + + + +
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..65b297d077 --- /dev/null +++ b/group__tz__gl__vk__graphics__pipeline.html @@ -0,0 +1,285 @@ + + + + + + + +Topaz: Graphics Pipeline + + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.0.0.2 +
+
C++20 Graphics Engine
+
+
+ + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+ +

Documentation for the graphics pipeline. +More...

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

+Modules

 Fixed Pipeline State Values
 Documentation for the fixed-pipeline settings, such as rasteriser state and input assembly.
 
 Render Passes
 Documentation for render passes and how they interact with the rendering pipeline.
 
 Shader Programs and Modules
 Documentation for shaders.
 
+ + + + + + + + + + + + + +

+Data Structures

struct  tz::gl::vk2::GraphicsPipelineInfo
 Specifies creation flags for a GraphicsPipeline. More...
 
class  tz::gl::vk2::GraphicsPipeline
 Represents the Graphics Pipeline. More...
 
struct  tz::gl::vk2::PipelineLayoutInfo
 Specifies creation flags for a PipelineLayout. More...
 
class  tz::gl::vk2::PipelineLayout
 Represents an interface between shader stages and shader resources in terms of the layout of a group of DescriptorSet. More...
 
+ + + + +

+Enumerations

enum class  tz::gl::vk2::PipelineStage {
+  PipelineStage::Top = VK_PIPELINE_STAGE_TOP_OF_PIPE_BIT +,
+  PipelineStage::Bottom = VK_PIPELINE_STAGE_BOTTOM_OF_PIPE_BIT +,
+  PipelineStage::AllCommands = VK_PIPELINE_STAGE_ALL_COMMANDS_BIT +,
+  PipelineStage::AllGraphics = VK_PIPELINE_STAGE_ALL_GRAPHICS_BIT +,
+  PipelineStage::DrawIndirect = VK_PIPELINE_STAGE_DRAW_INDIRECT_BIT +,
+  PipelineStage::VertexIndexInput = VK_PIPELINE_STAGE_VERTEX_INPUT_BIT +,
+  PipelineStage::VertexShader = VK_PIPELINE_STAGE_VERTEX_SHADER_BIT +,
+  PipelineStage::TessellationControlShader = VK_PIPELINE_STAGE_TESSELLATION_CONTROL_SHADER_BIT +,
+  PipelineStage::TessellationEvaluationShader = VK_PIPELINE_STAGE_TESSELLATION_EVALUATION_SHADER_BIT +,
+  PipelineStage::GeometryShader = VK_PIPELINE_STAGE_GEOMETRY_SHADER_BIT +,
+  PipelineStage::FragmentShader = VK_PIPELINE_STAGE_FRAGMENT_SHADER_BIT +,
+  PipelineStage::EarlyFragmentTests = VK_PIPELINE_STAGE_EARLY_FRAGMENT_TESTS_BIT +,
+  PipelineStage::LateFragmentTests = VK_PIPELINE_STAGE_LATE_FRAGMENT_TESTS_BIT +,
+  PipelineStage::ColourAttachmentOutput = VK_PIPELINE_STAGE_COLOR_ATTACHMENT_OUTPUT_BIT +,
+  ComputeShader = VK_PIPELINE_STAGE_COMPUTE_SHADER_BIT +,
+  PipelineStage::TransferCommands = VK_PIPELINE_STAGE_TRANSFER_BIT +
+ }
 Specifies a certain stage (point of execution) during the invocation of a graphics pipeline. More...
 
+

Detailed Description

+

Documentation for the graphics pipeline.

+

Enumeration Type Documentation

+ +

◆ PipelineStage

+ +
+
+ + + + + +
+ + + + +
enum class tz::gl::vk2::PipelineStage
+
+strong
+
+ +

Specifies a certain stage (point of execution) during the invocation of a graphics pipeline.

+ + + + + + + + + + + + + + + + +
Enumerator
Top 
    +
  • Very first stage when acting as a 'source' stage of a transition.
  • +
+
Bottom 
    +
  • Very first stage when acting as a 'destination' stage of a transition.
  • +
+
AllCommands 
    +
  • Very first stage. Early enough to cover every single stage.
  • +
+
AllGraphics 
    +
  • Pseudo-stage which takes place before any graphical stages (Just before DrawIndirect)
  • +
+
DrawIndirect 
    +
  • Stage of the pipeline where indirect draw commands are consumed.
  • +
+
VertexIndexInput 
    +
  • Stage of the pipeline where vertex and index buffers are consumed.
  • +
+
VertexShader 
    +
  • Stage of the pipeline where vertex shader is invoked.
  • +
+
TessellationControlShader 
    +
  • Stage of the pipeline where the tessellation control shader is invoked.
  • +
+
TessellationEvaluationShader 
    +
  • Stage of the pipeline where the tessellation evaluation shader is invoked.
  • +
+
GeometryShader 
    +
  • Stage of the pipeline where the geometry shader is invoked.
  • +
+
FragmentShader 
    +
  • Stage of the pipeline where the fragment shader is invoked.
  • +
+
EarlyFragmentTests 
    +
  • Stage of the pipeline directly before the fragment shader is invoked.
  • +
+
LateFragmentTests 
    +
  • Stage of the pipeline directly after the fragment shader is invoked.
  • +
+
ColourAttachmentOutput 
    +
  • Stage of the pipeline where the final colour values are output from the pipeline.
  • +
+
TransferCommands 
    +
  • Stage of the pipeline where transfer commands are invoked. Example: Buffer copy, blit image, clears etc
  • +
+
+ +
+
+
+
+ + + + diff --git a/group__tz__gl__vk__graphics__pipeline__fixed.html b/group__tz__gl__vk__graphics__pipeline__fixed.html new file mode 100644 index 0000000000..7763777172 --- /dev/null +++ b/group__tz__gl__vk__graphics__pipeline__fixed.html @@ -0,0 +1,402 @@ + + + + + + + +Topaz: Fixed Pipeline State Values + + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.0.0.2 +
+
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..465843a3db --- /dev/null +++ b/group__tz__gl__vk__graphics__pipeline__render__pass.html @@ -0,0 +1,387 @@ + + + + + + + +Topaz: Render Passes + + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.0.0.2 +
+
C++20 Graphics Engine
+
+
+ + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+ +

Documentation for render passes and how they interact with the rendering pipeline. +More...

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

+Data Structures

struct  tz::gl::vk2::FramebufferInfo
 Specifies creation flags for a Framebuffer. More...
 
class  tz::gl::vk2::Framebuffer
 Represents a render target for a RenderPass. More...
 
struct  tz::gl::vk2::Attachment
 Specifies some data about an attachment. More...
 
class  tz::gl::vk2::RenderPass
 Represents a collection of attachments and subpasses and describes how the attachments are used throughout the subpases. More...
 
class  tz::gl::vk2::SubpassBuilder
 Helper class to create a RenderPassInfo::Subpass. More...
 
class  tz::gl::vk2::RenderPassBuilder
 Helper class to create a RenderPass. More...
 
+ + + + + + + + + + + + + +

+Enumerations

enum class  tz::gl::vk2::LoadOp {
+  LoadOp::Load = VK_ATTACHMENT_LOAD_OP_LOAD +,
+  LoadOp::Clear = VK_ATTACHMENT_LOAD_OP_CLEAR +,
+  LoadOp::DontCare = VK_ATTACHMENT_LOAD_OP_DONT_CARE +
+ }
 Represents how some resource is loaded. More...
 
enum class  tz::gl::vk2::StoreOp {
+  StoreOp::Store = VK_ATTACHMENT_STORE_OP_STORE +,
+  StoreOp::DontCare = VK_ATTACHMENT_STORE_OP_DONT_CARE +
+ }
 Represents how some resource is stored. More...
 
enum class  tz::gl::vk2::PipelineContext
 Specifies which pipeline type a RenderPass subpass is expected to bind to.
 
enum class  tz::gl::vk2::AccessFlag {
+  AccessFlag::NoneNeeded = VK_ACCESS_NONE_KHR +,
+  AccessFlag::AllReads = VK_ACCESS_MEMORY_READ_BIT +,
+  AccessFlag::AllWrites = VK_ACCESS_MEMORY_WRITE_BIT +,
+  AccessFlag::IndirectBufferRead = VK_ACCESS_INDIRECT_COMMAND_READ_BIT +,
+  AccessFlag::IndexBufferRead = VK_ACCESS_INDEX_READ_BIT +,
+  AccessFlag::VertexBufferRead = VK_ACCESS_VERTEX_ATTRIBUTE_READ_BIT +,
+  AccessFlag::UniformBufferRead = VK_ACCESS_UNIFORM_READ_BIT +,
+  AccessFlag::InputAttachmentRead = VK_ACCESS_INPUT_ATTACHMENT_READ_BIT +,
+  AccessFlag::ShaderResourceRead = VK_ACCESS_SHADER_READ_BIT +,
+  AccessFlag::ShaderResourceWrite = VK_ACCESS_SHADER_WRITE_BIT +,
+  AccessFlag::ColourAttachmentRead = VK_ACCESS_COLOR_ATTACHMENT_READ_BIT +,
+  AccessFlag::ColourAttachmentWrite = VK_ACCESS_COLOR_ATTACHMENT_WRITE_BIT +,
+  AccessFlag::DepthStencilAttachmentRead = VK_ACCESS_DEPTH_STENCIL_ATTACHMENT_READ_BIT +,
+  AccessFlag::DepthStencilAttachmentWrite = VK_ACCESS_DEPTH_STENCIL_ATTACHMENT_WRITE_BIT +,
+  AccessFlag::TransferOperationRead = VK_ACCESS_TRANSFER_READ_BIT +,
+  AccessFlag::TransferOperationWrite = VK_ACCESS_TRANSFER_WRITE_BIT +,
+  AccessFlag::HostRead = VK_ACCESS_HOST_READ_BIT +,
+  AccessFlag::HostWrite = VK_ACCESS_HOST_WRITE_BIT +
+ }
 Specifies specific events during which a memory dependency takes place. More...
 
+

Detailed Description

+

Documentation for render passes and how they interact with the rendering pipeline.

+

Enumeration Type Documentation

+ +

◆ AccessFlag

+ +
+
+ + + + + +
+ + + + +
enum class tz::gl::vk2::AccessFlag
+
+strong
+
+ +

Specifies specific events during which a memory dependency takes place.

+ + + + + + + + + + + + + + + + + + + +
Enumerator
NoneNeeded 
    +
  • Doesn't need to happen.
  • +
+
AllReads 
    +
  • Anytime any read is done.
  • +
+
AllWrites 
    +
  • Anytime any write is done.
  • +
+
IndirectBufferRead 
    +
  • Anytime an Indirect Buffer is read from during an indirect draw/dispatch.
  • +
+
IndexBufferRead 
    +
  • Anytime an Index Buffer is read from during an indexed draw.
  • +
+
VertexBufferRead 
    +
  • Anytime a Vertex Buffer is read from during a draw.
  • +
+
UniformBufferRead 
    +
  • Anytime a Uniform Buffer is read from during any shader pipeline stage.
  • +
+
InputAttachmentRead 
    +
  • Anytime an input attachment to a RenderPass is read from during fragment shading.
  • +
+
ShaderResourceRead 
    +
  • Anytime any read/write Shader resource is read from during shader invocations (Uniform Buffers, Storage Buffers, Images, Storage Images etc...).
  • +
+
ShaderResourceWrite 
    +
  • Anytime any writeable Shader resource is written to during shader invocations (Storage Buffers, Storage Images etc...).
  • +
+
ColourAttachmentRead 
    +
  • Anytime a colour attachment is read from (e.g blending, logic operations, subpass load operations...)
  • +
+
ColourAttachmentWrite 
    +
  • Anytime a colour attachment is written to (e.g during a RenderPass or subpass load operations...)
  • +
+
DepthStencilAttachmentRead 
    +
  • Anytime a depth/stencil attachment is read from.
  • +
+
DepthStencilAttachmentWrite 
    +
  • Anytime a depth/stencil attachment is written to.
  • +
+
TransferOperationRead 
    +
  • Anytime a Image or Buffer is read from during a clear/copy transfer operation.
  • +
+
TransferOperationWrite 
    +
  • Anytime a Image or Buffer is written to during a clear/copy transfer operation.
  • +
+
HostRead 
    +
  • Anytime a read occurs on directly-host-visible memory.
  • +
+
HostWrite 
    +
  • Anytime a write occurs on directly-host-visible memory.
  • +
+
+ +
+
+ +

◆ LoadOp

+ +
+
+ + + + + +
+ + + + +
enum class tz::gl::vk2::LoadOp
+
+strong
+
+ +

Represents how some resource is loaded.

+ + + + +
Enumerator
Load 
    +
  • Just load the data.
  • +
+
Clear 
    +
  • Clear the data to a known value.
  • +
+
DontCare 
    +
  • Data is undefined.
  • +
+
+ +
+
+ +

◆ StoreOp

+ +
+
+ + + + + +
+ + + + +
enum class tz::gl::vk2::StoreOp
+
+strong
+
+ +

Represents how some resource is stored.

+ + + +
Enumerator
Store 
    +
  • Just store the data.
  • +
+
DontCare 
    +
  • The resultant data is undefined.
  • +
+
+ +
+
+
+
+ + + + diff --git a/group__tz__gl__vk__graphics__pipeline__shader.html b/group__tz__gl__vk__graphics__pipeline__shader.html new file mode 100644 index 0000000000..5c64556207 --- /dev/null +++ b/group__tz__gl__vk__graphics__pipeline__shader.html @@ -0,0 +1,152 @@ + + + + + + + +Topaz: Shader Programs and Modules + + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.0.0.2 +
+
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..878d2d9bf7 --- /dev/null +++ b/group__tz__gl__vk__image.html @@ -0,0 +1,522 @@ + + + + + + + +Topaz: Images, Samplers and Formats + + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.0.0.2 +
+
C++20 Graphics Engine
+
+
+ + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+ +

Documentation for everything relating to Images, Samplers and image_formats. +More...

+ + + + + +

+Namespaces

namespace  tz::gl::vk2::format_traits
 Meta information about image_formats.
 
+ + + + + + + + + + + + + + + + + + +

+Data Structures

struct  tz::gl::vk2::SwapchainImageInfo
 Specifies parameters of an Image referring to an existing Swapchain image. More...
 
struct  tz::gl::vk2::image_info
 Specifies creation flags for an Image. More...
 
class  tz::gl::vk2::Image
 Represents an Image owned by the Vulkan API. More...
 
class  tz::gl::vk2::ImageView
 
struct  tz::gl::vk2::SamplerInfo
 Specifies creation flags for a Sampler. More...
 
class  tz::gl::vk2::Sampler
 Represents the state of an Image sampler which is used to read image data and apply filtering and other transformations to a Shader. More...
 
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Enumerations

enum class  tz::gl::vk2::ImageLayout {
+  ImageLayout::Undefined = VK_IMAGE_LAYOUT_UNDEFINED +,
+  ImageLayout::General = VK_IMAGE_LAYOUT_GENERAL +,
+  ImageLayout::ColourAttachment = VK_IMAGE_LAYOUT_COLOR_ATTACHMENT_OPTIMAL +,
+  ImageLayout::DepthStencilAttachment = VK_IMAGE_LAYOUT_DEPTH_STENCIL_ATTACHMENT_OPTIMAL +,
+  ImageLayout::ShaderResource = VK_IMAGE_LAYOUT_SHADER_READ_ONLY_OPTIMAL +,
+  ImageLayout::TransferSource = VK_IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL +,
+  ImageLayout::TransferDestination = VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL +,
+  ImageLayout::Present = VK_IMAGE_LAYOUT_PRESENT_SRC_KHR +
+ }
 Images are always in a layout. More...
 
enum class  tz::gl::vk2::SampleCount
 Specifies the number of samples stored per image pixel.
 
enum class  tz::gl::vk2::ImageTiling {
+  ImageTiling::Optimal = VK_IMAGE_TILING_OPTIMAL +,
+  ImageTiling::Linear = VK_IMAGE_TILING_LINEAR +
+ }
 Specifies how the image is laid out in memory. More...
 
enum class  tz::gl::vk2::ImageUsage {
+  ImageUsage::TransferSource = VK_IMAGE_USAGE_TRANSFER_SRC_BIT +,
+  ImageUsage::TransferDestination = VK_IMAGE_USAGE_TRANSFER_DST_BIT +,
+  ImageUsage::SampledImage = VK_IMAGE_USAGE_SAMPLED_BIT +,
+  ImageUsage::StorageImage = VK_IMAGE_USAGE_STORAGE_BIT +,
+  ImageUsage::ColourAttachment = VK_IMAGE_USAGE_COLOR_ATTACHMENT_BIT +,
+  ImageUsage::DepthStencilAttachment = VK_IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT +,
+  ImageUsage::InputAttachment = VK_IMAGE_USAGE_INPUT_ATTACHMENT_BIT +
+ }
 Specifies intended usage of an Image. More...
 
enum class  tz::gl::vk2::ImageAspectFlag
 Specifies which aspects of the image are included within a view.
 
enum class  tz::gl::vk2::image_format { image_format::undefined = VK_FORMAT_UNDEFINED +, R8 = VK_FORMAT_R8_UNORM +, R8_UNorm = R8 +, R8_SNorm = VK_FORMAT_R8_SNORM +, R8_UInt = VK_FORMAT_R8_UINT +, R8_SInt = VK_FORMAT_R8_SINT +, R8_sRGB = VK_FORMAT_R8_SRGB +, R16 = VK_FORMAT_R16_UNORM +, R16_UNorm = R16 +, R16_SNorm = VK_FORMAT_R16_SNORM +, R16_UInt = VK_FORMAT_R16_UINT +, R16_SInt = VK_FORMAT_R16_SINT +, RG16 = VK_FORMAT_R8G8_UNORM +, RG16_UNorm = RG16 +, RG16_SNorm = VK_FORMAT_R8G8_SNORM +, RG16_UInt = VK_FORMAT_R8G8_UINT +, RG16_SInt = VK_FORMAT_R8G8_SINT +, RG16_sRGB = VK_FORMAT_R8G8_SRGB +, RG32 = VK_FORMAT_R16G16_UNORM +, RG32_UNorm = RG32 +, RG32_SNorm = VK_FORMAT_R16G16_SNORM +, RG32_UInt = VK_FORMAT_R16G16_UINT +, RG32_SInt = VK_FORMAT_R16G16_SINT +, RGB24 = VK_FORMAT_R8G8B8_UNORM +, RGB24_UNorm = RGB24 +, RGB24_SNorm = VK_FORMAT_R8G8B8_SNORM +, RGB24_UInt = VK_FORMAT_R8G8B8_UINT +, RGB24_SInt = VK_FORMAT_R8G8B8_SINT +, RGB24_sRGB = VK_FORMAT_R8G8B8_SRGB +, BGR24 = VK_FORMAT_B8G8R8_UNORM +, BGR24_UNorm = BGR24 +, BGR24_SNorm = VK_FORMAT_B8G8R8_SNORM +, BGR24_UInt = VK_FORMAT_B8G8R8_UINT +, BGR24_SInt = VK_FORMAT_B8G8R8_SINT +, BGR24_sRGB = VK_FORMAT_B8G8R8_SRGB +, RGBA32 = VK_FORMAT_R8G8B8A8_UNORM +, RGBA32_UNorm = RGBA32 +, RGBA32_SNorm = VK_FORMAT_R8G8B8A8_SNORM +, RGBA32_UInt = VK_FORMAT_R8G8B8A8_UINT +, RGBA32_SInt = VK_FORMAT_R8G8B8A8_SINT +, RGBA32_sRGB = VK_FORMAT_R8G8B8A8_SRGB +, BGRA32 = VK_FORMAT_B8G8R8A8_UNORM +, BGRA32_UNorm = BGRA32 +, BGRA32_SNorm = VK_FORMAT_B8G8R8A8_SNORM +, BGRA32_UInt = VK_FORMAT_B8G8R8A8_UINT +, BGRA32_SInt = VK_FORMAT_B8G8R8A8_SINT +, BGRA32_sRGB = VK_FORMAT_B8G8R8A8_SRGB +, RGBA64_SFloat = VK_FORMAT_R16G16B16A16_SFLOAT +, RGBA128_SFloat = VK_FORMAT_R32G32B32A32_SFLOAT +, Depth16_UNorm = VK_FORMAT_D16_UNORM +, Depth32_SFloat = VK_FORMAT_D32_SFLOAT + }
 Various image formats are supported. More...
 
enum class  tz::gl::vk2::LookupFilter
 Represents a filter to a texture lookup.
 
enum class  tz::gl::vk2::MipLookupFilter
 Specify mipmap mode for texture lookups.
 
enum class  tz::gl::vk2::SamplerAddressMode {
+  SamplerAddressMode::Repeat = VK_SAMPLER_ADDRESS_MODE_REPEAT +,
+  SamplerAddressMode::MirroredRepeat = VK_SAMPLER_ADDRESS_MODE_MIRRORED_REPEAT +,
+  SamplerAddressMode::ClampToEdge = VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_EDGE +,
+  SamplerAddressMode::ClampToBorder = VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_BORDER +
+ }
 Specifies behaviour with sampling with texture coordinates that lie outside of the image. More...
 
+

Detailed Description

+

Documentation for everything relating to Images, Samplers and image_formats.

+

Enumeration Type Documentation

+ +

◆ image_format

+ +
+
+ + + + + +
+ + + + +
enum class tz::gl::vk2::image_format
+
+strong
+
+ +

Various image formats are supported.

+

Note that PhysicalDevices may not support all formats listed here.

+

image_formats are comprised of three properties.

+

The enum values are named as ComponentsSizeInternal where:

    +
  • Components (R, RG, RGB, BGR, RGBA): number of components and order.
  • +
  • Size (8, 16, 24, 32): Total size of the whole element, not just one component. Assume all components are equally-sized.
  • +
  • Internal (UNORM, SNORM, UINT, SINT): Value type of the element. This can be ommitted, in which case the default is UNORM.
      +
    • UNORM = float [0 -> -1]
    • +
    • SNORM = float [-1 -> 1]
    • +
    • UINT = unsigned int
    • +
    • SINT = signed int
    • +
    • SFLOAT = signed float
    • +
    • SRGB = sRGB nonlinear encoding
    • +
    +
  • +
+

Examples:

    +
  • RGBA32 = (RGBA, 32 bit, UNORM)
  • +
  • RGBA32_UNorm = (RGBA, 32 bit, UNORM) == RGBA32
  • +
  • R8_SNorm = (R, 8 bit, SNORM)
  • +
  • BGRA16_UInt = (BGRA, 16 bit, UINT)
  • +
+ + +
Enumerator
undefined 
    +
  • Undefined Format. It is mostly an error to use this.
  • +
+
+ +
+
+ +

◆ ImageLayout

+ +
+
+ + + + + +
+ + + + +
enum class tz::gl::vk2::ImageLayout
+
+strong
+
+ +

Images are always in a layout.

+

Images can only perform certain operations in a given layout.

+ + + + + + + + + +
Enumerator
Undefined 
    +
  • Cannot be used for most operations. If used instead of the image's true layout in a layout transition, the contents of the image's memory will become undefined.
  • +
+
General 
    +
  • Supports all operations, however is unlikely to perform optimally for any such operations.
  • +
+
ColourAttachment 
    +
  • Only useable as a colour/resolve attachment within a Framebuffer.
  • +
+
DepthStencilAttachment 
    +
  • Only useable as a depth/stencil attachment.
  • +
+
ShaderResource 
    +
  • Read-only access in a Shader as a sampled image.
  • +
+
TransferSource 
    +
  • Only useable as a source image of some transfer command.
  • +
+
TransferDestination 
    +
  • Only useable as a destination image of some transfer command.
  • +
+
Present 
    +
  • Useable as a presentable image.
  • +
+
+ +
+
+ +

◆ ImageTiling

+ +
+
+ + + + + +
+ + + + +
enum class tz::gl::vk2::ImageTiling
+
+strong
+
+ +

Specifies how the image is laid out in memory.

+ + + +
Enumerator
Optimal 

Image texels are laid out in an implementation-defined manner.

+
Linear 

Image texels are laid out in memory in row-major order, possibly with some padding on each row.

+
+ +
+
+ +

◆ ImageUsage

+ +
+
+ + + + + +
+ + + + +
enum class tz::gl::vk2::ImageUsage
+
+strong
+
+ +

Specifies intended usage of an Image.

+ + + + + + + + +
Enumerator
TransferSource 
    +
  • Image can be used as a source in a transfer command.
  • +
+
TransferDestination 
    +
  • Image can be used as a destination in a transfer command.
  • +
+
SampledImage 
    +
  • Image can be used as a read-only shader resource.
  • +
+
StorageImage 
    +
  • Image can be used as a read/write shader resource.
  • +
+
ColourAttachment  +
DepthStencilAttachment  +
InputAttachment  +
+ +
+
+ +

◆ SamplerAddressMode

+ +
+
+ + + + + +
+ + + + +
enum class tz::gl::vk2::SamplerAddressMode
+
+strong
+
+ +

Specifies behaviour with sampling with texture coordinates that lie outside of the image.

+ + + + + +
Enumerator
Repeat 
    +
  • The texture will repeat endlessly.
  • +
+
MirroredRepeat 
    +
  • The texture will repeat endlessly, but mirrored each time.
  • +
+
ClampToEdge 
    +
  • The texture will have the same colour as the edge.
  • +
+
ClampToBorder 
    +
  • The texture will have the same colour as the border.
  • +
+
+ +
+
+
+
+ + + + diff --git a/group__tz__gl__vk__presentation.html b/group__tz__gl__vk__presentation.html new file mode 100644 index 0000000000..393d1d4239 --- /dev/null +++ b/group__tz__gl__vk__presentation.html @@ -0,0 +1,208 @@ + + + + + + + +Topaz: Presentation and Window Surface Interation (WSI) + + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.0.0.2 +
+
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..6c9e65336a --- /dev/null +++ b/group__tz__gl__vk__sync.html @@ -0,0 +1,153 @@ + + + + + + + +Topaz: Synchronisation Primitives + + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.0.0.2 +
+
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__wsi.html b/group__tz__wsi.html new file mode 100644 index 0000000000..67a78d97c9 --- /dev/null +++ b/group__tz__wsi.html @@ -0,0 +1,145 @@ + + + + + + + +Topaz: Window System Integration + + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.0.0.2 +
+
C++20 Graphics Engine
+
+
+ + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+ +
Window System Integration
+
+
+ +

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

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

+Modules

 Keyboard Input
 Utilities, structures and helpers for keyboard input.
 
 Monitors
 Retrieve information about hardware monitors currently connected to the machine.
 
 Mouse Input
 Utilities, structures and helpers for mouse input.
 
 Window
 Create, destroy or customise an application window.
 
+

Detailed Description

+

Documentation for functionality related to windowing, peripherals and input.

+
+
+ + + + diff --git a/group__tz__wsi__keyboard.html b/group__tz__wsi__keyboard.html new file mode 100644 index 0000000000..2d9958bebb --- /dev/null +++ b/group__tz__wsi__keyboard.html @@ -0,0 +1,233 @@ + + + + + + + +Topaz: Keyboard Input + + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.0.0.2 +
+
C++20 Graphics Engine
+
+
+ + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+ +

Utilities, structures and helpers for keyboard input. +More...

+ + + + + +

+Data Structures

struct  tz::wsi::keyboard_state
 Represents the total state of the keyboard and key-presses for a single window. More...
 
+ + + + +

+Enumerations

enum class  tz::wsi::key
 Contains all possible keyboard inputs that Topaz supports.
 
+ + + + + + + + + + +

+Functions

+std::string tz::wsi::get_key_name (tz::wsi::key key)
 Retrieve a human-readable name for a key.
 
std::string tz::wsi::get_chars_typed (tz::wsi::key key, const keyboard_state &state)
 Retrieve a string representing the characters typed, after modifiers.
 
bool tz::wsi::is_key_down (const keyboard_state &kb, tz::wsi::key key)
 Query as to whether a specific key is currently pressed for a keyboard state.
 
+

Detailed Description

+

Utilities, structures and helpers for keyboard input.

+

Function Documentation

+ +

◆ get_chars_typed()

+ +
+
+ + + + + + + + + + + + + + + + + + +
std::string tz::wsi::get_chars_typed (tz::wsi::key key,
const keyboard_statestate 
)
+
+ +

Retrieve a string representing the characters typed, after modifiers.

+
Parameters
+ + + +
keyKey that has just been pressed.
stateState of the keyboard when the key was pressed.
+
+
+ +
+
+ +

◆ is_key_down()

+ +
+
+ + + + + + + + + + + + + + + + + + +
bool tz::wsi::is_key_down (const keyboard_statekb,
tz::wsi::key key 
)
+
+ +

Query as to whether a specific key is currently pressed for a keyboard state.

+
Parameters
+ + + +
kbKeyboard state to query.
keyWhich key are you asking to see is pressed?
+
+
+
Returns
True if key is pressed according to the passed keyboard state, false if not.
+ +
+
+
+
+ + + + diff --git a/group__tz__wsi__monitor.html b/group__tz__wsi__monitor.html new file mode 100644 index 0000000000..b7b667d375 --- /dev/null +++ b/group__tz__wsi__monitor.html @@ -0,0 +1,164 @@ + + + + + + + +Topaz: Monitors + + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.0.0.2 +
+
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..f370b57ab3 --- /dev/null +++ b/group__tz__wsi__mouse.html @@ -0,0 +1,273 @@ + + + + + + + +Topaz: Mouse Input + + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.0.0.2 +
+
C++20 Graphics Engine
+
+
+ + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+ +

Utilities, structures and helpers for mouse input. +More...

+ + + + + +

+Data Structures

struct  tz::wsi::mouse_state
 Represents the total state of the mouse for a single window. More...
 
+ + + + + + + +

+Enumerations

enum class  tz::wsi::mouse_button {
+  mouse_button::left +,
+  mouse_button::right +,
+  mouse_button::middle +,
+  _count +
+ }
 Represents all supported mouse buttons. More...
 
enum class  tz::wsi::mouse_button_state {
+  mouse_button_state::clicked +,
+  mouse_button_state::double_clicked +,
+  mouse_button_state::noclicked +
+ }
 Represents the current state of a mouse_button. More...
 
+ + + + +

+Functions

bool tz::wsi::is_mouse_button_down (const tz::wsi::mouse_state &ms, tz::wsi::mouse_button b)
 Query as to whether a specific mouse button is currently pressed for a mouse state (clicked or double-clicked).
 
+

Detailed Description

+

Utilities, structures and helpers for mouse input.

+

Enumeration Type Documentation

+ +

◆ mouse_button

+ +
+
+ + + + + +
+ + + + +
enum class tz::wsi::mouse_button
+
+strong
+
+ +

Represents all supported mouse buttons.

+ + + + +
Enumerator
left 

Left mouse button.

+
right 

Right mouse button.

+
middle 

Middle mouse button.

+
+ +
+
+ +

◆ mouse_button_state

+ +
+
+ + + + + +
+ + + + +
enum class tz::wsi::mouse_button_state
+
+strong
+
+ +

Represents the current state of a mouse_button.

+ + + + +
Enumerator
clicked 

Mouse button has been clicked.

+
double_clicked 

Mouse button has been double-clicked.

+
noclicked 

Mouse button is not pressed.

+
+ +
+
+

Function Documentation

+ +

◆ is_mouse_button_down()

+ +
+
+ + + + + + + + + + + + + + + + + + +
bool tz::wsi::is_mouse_button_down (const tz::wsi::mouse_statems,
tz::wsi::mouse_button b 
)
+
+ +

Query as to whether a specific mouse button is currently pressed for a mouse state (clicked or double-clicked).

+
Parameters
+ + + +
msMouse state to query.
bWhich mouse button are you asking to see is pressed?
+
+
+
Returns
True if b is pressed according to the passed mouse state, false if not.
+ +
+
+
+
+ + + + diff --git a/group__tz__wsi__window.html b/group__tz__wsi__window.html new file mode 100644 index 0000000000..50303480a9 --- /dev/null +++ b/group__tz__wsi__window.html @@ -0,0 +1,284 @@ + + + + + + + +Topaz: Window + + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.0.0.2 +
+
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..102e010b40 --- /dev/null +++ b/group__tzsl.html @@ -0,0 +1,151 @@ + + + + + + + +Topaz: TZSL API Reference + + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.0.0.2 +
+
C++20 Graphics Engine
+
+
+ + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+ +
TZSL API Reference
+
+
+ +

Topaz Shader Language (Shaders) +More...

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

+Modules

 Atomic Operations
 Perform atomic operations on variables.
 
 Debugging
 Perform basic debugging operations within a shader.
 
 Mathematical Operations
 Access the most basic mathematical functions.
 
 Matrix Operations
 Access matrix operations.
 
 Noise Functions
 Access common noise functions which are already provided for you.
 
 Precomputed Meshes
 Retrieve basic pre-computed mesh expressed as an array of unindexed positions (triangles).
 
+

Detailed Description

+

Topaz Shader Language (Shaders)

+
+
+ + + + diff --git a/group__tzsl__atomic.html b/group__tzsl__atomic.html new file mode 100644 index 0000000000..50699acb38 --- /dev/null +++ b/group__tzsl__atomic.html @@ -0,0 +1,173 @@ + + + + + + + +Topaz: Atomic Operations + + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.0.0.2 +
+
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..e0ba3869bf --- /dev/null +++ b/group__tzsl__debug.html @@ -0,0 +1,203 @@ + + + + + + + +Topaz: Debugging + + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.0.0.2 +
+
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..9b1bef967a --- /dev/null +++ b/group__tzsl__math.html @@ -0,0 +1,643 @@ + + + + + + + +Topaz: Mathematical Operations + + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.0.0.2 +
+
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..e561e80856 --- /dev/null +++ b/group__tzsl__matrix.html @@ -0,0 +1,178 @@ + + + + + + + +Topaz: Matrix Operations + + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.0.0.2 +
+
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..9698884aa6 --- /dev/null +++ b/group__tzsl__mesh.html @@ -0,0 +1,153 @@ + + + + + + + +Topaz: Precomputed Meshes + + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.0.0.2 +
+
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..97c6524174 --- /dev/null +++ b/group__tzsl__noise.html @@ -0,0 +1,190 @@ + + + + + + + +Topaz: Noise Functions + + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.0.0.2 +
+
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..525a3fe5a9 --- /dev/null +++ b/handle_8hpp_source.html @@ -0,0 +1,176 @@ + + + + + + + +Topaz: src/tz/core/data/handle.hpp Source File + + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.0.0.2 +
+
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 <limits>
+
5#include <type_traits>
+
6
+
7namespace tz
+
8{
+
9 enum class hanval : std::size_t{};
+
10
+
11 struct nullhand_t{};
+
12 constexpr nullhand_t nullhand;
+
13
+
14 template<typename T>
+
15 class handle
+
16 {
+
17 public:
+
18 handle(hanval v):
+
19 value(v){}
+
20
+
21 handle([[maybe_unused]] nullhand_t nh = {}):
+
22 value(static_cast<hanval>(std::numeric_limits<std::underlying_type_t<hanval>>::max())){}
+
23
+
24 explicit operator hanval() const
+
25 {
+
26 return this->value;
+
27 }
+
28
+
29 handle& operator=(hanval value)
+
30 {
+
31 this->value = value;
+
32 return *this;
+
33 }
+
34
+
35 bool operator==(nullhand_t) const
+
36 {
+
37 return handle<T>{nullhand}.value == this->value;
+
38 }
+
39 bool operator!=(nullhand_t) const
+
40 {
+
41 return handle<T>{nullhand}.value != this->value;
+
42 }
+
43
+
44 bool operator==(const handle<T>& rhs) const = default;
+
45 bool operator!=(const handle<T>& rhs) const = default;
+
46 private:
+
47 hanval value;
+
48 };
+
49}
+
50
+
51#endif // TZ_DATA_HANDLE_HPP
+
Definition: handle.hpp:16
+
Definition: handle.hpp:11
+
+
+ + + + diff --git a/image__view_8hpp_source.html b/image__view_8hpp_source.html new file mode 100644 index 0000000000..6d7edc1123 --- /dev/null +++ b/image__view_8hpp_source.html @@ -0,0 +1,174 @@ + + + + + + + +Topaz: src/tz/gl/impl/vulkan/detail/image_view.hpp Source File + + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.0.0.2 +
+
C++20 Graphics Engine
+
+
+ + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
image_view.hpp
+
+
+
1#ifndef TOPAZ_GL_IMPL_BACKEND_VK2_IMAGE_VIEW_HPP
+
2#define TOPAZ_GL_IMPL_BACKEND_VK2_IMAGE_VIEW_HPP
+
3#if TZ_VULKAN
+
4#include "tz/gl/impl/vulkan/detail/image.hpp"
+
5
+
6namespace tz::gl::vk2
+
7{
+ +
9 {
+
10 Image* image;
+
11 ImageAspectFlag aspect;
+
12 };
+
13
+
17 class ImageView : public DebugNameable<VK_OBJECT_TYPE_IMAGE_VIEW>
+
18 {
+
19 public:
+ +
21 ImageView(const ImageView& copy) = delete;
+
22 ImageView(ImageView&& move);
+
23 ~ImageView();
+
24
+
25 ImageView& operator=(const ImageView& rhs) = delete;
+
26 ImageView& operator=(ImageView&& rhs);
+
27
+
28 const Image& get_image() const;
+
29 Image& get_image();
+
30
+
31 ImageAspectFlag get_aspect() const;
+
32
+
33 using NativeType = VkImageView;
+
34 NativeType native() const;
+
35
+
36 static ImageView null();
+
37 bool is_null() const;
+
38 private:
+
39 ImageView();
+
40
+
41 VkImageView image_view;
+
42 ImageViewInfo info;
+
43 const LogicalDevice* ldev;
+
44 };
+
45}
+
46
+
47#endif // TZ_VULKAN
+
48#endif // TOPAZ_GL_IMPL_BACKEND_VK2_IMAGE_VIEW_HPP
+
Definition: debugname.hpp:10
+
Represents an Image owned by the Vulkan API.
Definition: image.hpp:155
+
Definition: image_view.hpp:18
+
Logical interface to an existing PhysicalDevice.
Definition: logical_device.hpp:95
+
ImageAspectFlag
Specifies which aspects of the image are included within a view.
Definition: image.hpp:95
+
Definition: image_view.hpp:9
+
+
+ + + + diff --git a/impl_2common_2renderer_8hpp_source.html b/impl_2common_2renderer_8hpp_source.html new file mode 100644 index 0000000000..b695103bb1 --- /dev/null +++ b/impl_2common_2renderer_8hpp_source.html @@ -0,0 +1,351 @@ + + + + + + + +Topaz: src/tz/gl/impl/common/renderer.hpp Source File + + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.0.0.2 +
+
C++20 Graphics Engine
+
+
+ + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
renderer.hpp
+
+
+
1#ifndef TOPAZ_GL2_IMPL_FRONTEND_COMMON_RENDERER_HPP
+
2#define TOPAZ_GL2_IMPL_FRONTEND_COMMON_RENDERER_HPP
+
3#include "tz/gl/api/renderer.hpp"
+
4#include "tz/gl/api/shader.hpp"
+
5#include "tz/core/memory/maybe_owned_ptr.hpp"
+
6#include "imgui.h"
+
7#undef assert
+
8
+
9namespace tz::gl
+
10{
+
11 template<class Asset>
+ +
13 {
+
14 public:
+ +
16 AssetStorageCommon(std::span<const Asset* const> assets = {}):
+
17 asset_storage()
+
18 {
+
19 for(const Asset* asset : assets)
+
20 {
+
21 if(asset == nullptr)
+
22 {
+
23 this->asset_storage.push_back(nullptr);
+
24 }
+
25 else
+
26 {
+
27 this->asset_storage.push_back(asset->unique_clone());
+
28 }
+
29 }
+
30 }
+
31
+
32 unsigned int count() const
+
33 {
+
34 return this->asset_storage.size();
+
35 }
+
36
+
37 const Asset* get(AssetHandle handle) const
+
38 {
+
39 if(handle == tz::nullhand) return nullptr;
+
40 std::size_t handle_val = static_cast<std::size_t>(static_cast<tz::hanval>(handle));
+
41 return this->asset_storage[handle_val].get();
+
42 }
+
43
+
44 Asset* get(AssetHandle handle)
+
45 {
+
46 if(handle == tz::nullhand) return nullptr;
+
47 std::size_t handle_val = static_cast<std::size_t>(static_cast<tz::hanval>(handle));
+
48 return this->asset_storage[handle_val].get();
+
49 }
+
50
+
51 void set(AssetHandle handle, Asset* value)
+
52 {
+
53 std::size_t handle_val = static_cast<std::size_t>(static_cast<tz::hanval>(handle));
+
54 tz::assert(!this->asset_storage[handle_val].owning(), "AssetStorageCommon: Try to set specific asset value, but the asset at that handle is not a reference (it is owned by us)");
+
55 this->asset_storage[handle_val] = value;
+
56 }
+
57 private:
+
58 std::vector<maybe_owned_ptr<Asset>> asset_storage;
+
59 };
+
60
+ +
66 {
+
67 if(renderer.is_null())
+
68 {
+
69 ImGui::Text("Null renderer");
+
70 return;
+
71 }
+
72 ImGui::PushID(&renderer);
+
73 ImGui::Text("Renderer Name:");
+
74 ImGui::SameLine();
+
75 ImGui::TextColored(ImVec4{1.0f, 0.6f, 0.6f, 1.0f}, "%s", renderer.debug_get_name().data());
+
76 if(renderer.resource_count() > 0)
+
77 {
+
78 if(ImGui::CollapsingHeader("Resources"))
+
79 {
+
80 unsigned int rcount = renderer.resource_count() - 1;
+
81 ImGui::Text("resource Count: %u", renderer.resource_count());
+
82 static int res_id = 0;
+
83 res_id = std::clamp(res_id, 0, static_cast<int>(rcount));
+
84 ImGui::SliderInt("resource ID:", &res_id, 0, rcount);
+
85
+
86 // Display information about current resource.
+
87 ImGui::Indent();
+
88 renderer.get_resource(static_cast<tz::hanval>(res_id))->dbgui();
+
89 ImGui::Unindent();
+
90 }
+
91 }
+
92 else
+
93 {
+
94 ImGui::Text("renderer has no resources.");
+
95 }
+
96 if(ImGui::CollapsingHeader("Renderer State"))
+
97 {
+
98 ImGui::TextColored(ImVec4{1.0f, 0.6f, 0.6f, 1.0f}, "Graphics");
+
99 ImGui::Indent();
+
100 // Graphics - Index Buffer
+
101 {
+ +
103 auto* comp = renderer.get_component(han);
+
104 if(comp != nullptr && ImGui::CollapsingHeader("Index Buffer"))
+
105 {
+
106 ImGui::Text("[resource %zu]", static_cast<std::size_t>(static_cast<tz::hanval>(han)));
+
107 ImGui::Indent();
+
108 comp->get_resource()->dbgui();
+
109 ImGui::Unindent();
+
110 }
+
111 }
+
112 // Graphics - Draw Buffer
+
113 {
+ +
115 auto* comp = renderer.get_component(han);
+
116 if(comp != nullptr && ImGui::CollapsingHeader("Draw Indirect Buffer"))
+
117 {
+
118 ImGui::Text("[resource %zu]", static_cast<std::size_t>(static_cast<tz::hanval>(han)));
+
119 ImGui::Indent();
+
120 comp->get_resource()->dbgui();
+
121 ImGui::Unindent();
+
122 }
+
123 }
+
124 ImGui::Spacing();
+
125 // Graphics - Clear Colour
+
126 {
+ +
128 if(ImGui::DragFloat4("Clear Colour", col.data().data(), 0.02f, 0.0f, 1.0f))
+
129 {
+
130 renderer.edit
+
131 (
+ + +
134 ({
+
135 .clear_colour = col
+
136 })
+
137 .build()
+
138 );
+
139 }
+
140 }
+
141 // Graphics - Tri Count
+
142 {
+
143 if(renderer.get_state().graphics.draw_buffer != tz::nullhand)
+
144 {
+
145 ImGui::Text("Triangle Count: Indirect Buffer");
+
146 }
+
147 else
+
148 {
+
149 ImGui::Text("Triangle Count: %zu", renderer.get_state().graphics.tri_count);
+
150 }
+
151 }
+
152 // Graphics - Wireframe Mode
+
153 {
+ +
155 if(ImGui::Checkbox("Wireframe Mode", &wfm))
+
156 {
+
157 renderer.edit
+
158 (
+ + +
161 ({
+
162 .wireframe_mode = wfm
+
163 })
+
164 .build()
+
165 );
+
166 }
+
167 }
+
168 ImGui::Unindent();
+
169 ImGui::TextColored(ImVec4{1.0f, 0.6f, 0.6f, 1.0f}, "Compute");
+
170 ImGui::Indent();
+
171 // Compute - Kernel
+
172 {
+
173 auto kern = static_cast<tz::vec3i>(renderer.get_state().compute.kernel);
+
174 if(ImGui::DragInt3("Kernel", kern.data().data(), 0.25f, 0, 64))
+
175 {
+
176 renderer.edit
+
177 (
+ +
179 .compute
+
180 ({
+
181 .kernel = kern
+
182 })
+
183 .build()
+
184 );
+
185 }
+
186 }
+
187 ImGui::Unindent();
+
188 }
+
189 if(!renderer.get_options().empty() && ImGui::CollapsingHeader("Renderer Options"))
+
190 {
+
191 for(renderer_option option : renderer.get_options())
+
192 {
+
193 ImGui::Text("%s", detail::renderer_option_strings[static_cast<int>(option)]);
+
194 }
+
195 #if TZ_DEBUG
+
196 ImGui::PushTextWrapPos();
+
197 ImGui::TextDisabled("Note: In debug builds, extra options might be present that you did not ask for. These are added to allow the debug-ui to display ontop of your rendered output.");
+
198 ImGui::PopTextWrapPos();
+
199 #endif //TZ_DEBUG
+
200 }
+
201 ImGui::Separator();
+
202 ImGui::PopID();
+
203 }
+
204
+
205}
+
206
+
207#endif // TOPAZ_GL2_IMPL_FRONTEND_COMMON_RENDERER_HPP
+
bool empty() const
Query as to whether the field is empty or not.
Definition: enum_field.inl:41
+
Definition: renderer.hpp:13
+
Helper class which can be used to generate a renderer_edit_request.
Definition: renderer.hpp:298
+
RendererEditBuilder & compute(renderer_edit::compute_config req)
Make amendments to the compute configuration of the renderer.
Definition: renderer.cpp:8
+
RendererEditBuilder & render_state(renderer_edit::render_config req)
Make amendments to the current render state.
Definition: renderer.cpp:14
+
virtual void dbgui()=0
Display debug information about the resource.
+
Implements tz::gl::renderer_type.
Definition: renderer.hpp:390
+
const iresource * get_resource(tz::gl::resource_handle rh) const
Retrieves a pointer to the resource via its associated handle.
+
tz::gl::renderer_options get_options() const
Retrieve the set of enabled tz::gl::renderer_option flags used by this renderer.
+
const tz::gl::render_state & get_state() const
Retrieve the current render state.
+
unsigned int resource_count() const
Retrieves the number of resources used by the renderer.
+
Definition: handle.hpp:16
+
Definition: vector.hpp:18
+
Named requirement for a renderer.
Definition: renderer.hpp:333
+
void assert(bool condition, detail::format_string fmt="<No message>", Args &&... args)
Assert on a condition.
Definition: debug.inl:33
+
void common_renderer_dbgui(renderer_type auto &renderer)
Helper function which displays render-api-agnostic information about renderers.
Definition: renderer.hpp:65
+
renderer_option
Specifies options to enable extra functionality within Renderers.
Definition: renderer.hpp:34
+
tz::vec3ui kernel
Represents the compute kernel, which contains the number of workgroups to be launched in the X,...
Definition: renderer.hpp:90
+
std::size_t tri_count
number of triangles to be rendered in the next draw call.
Definition: renderer.hpp:82
+
resource_handle draw_buffer
If a draw-indirect buffer is used, this refers to the buffer resource. It must have resource_flag::dr...
Definition: renderer.hpp:78
+
bool wireframe_mode
whether wireframe mode is enabled or not.
Definition: renderer.hpp:84
+
resource_handle index_buffer
If an index buffer is used, this refers to the buffer resource. It must have resource_flag::index_buf...
Definition: renderer.hpp:76
+
tz::vec4 clear_colour
Normalised RGBA floating point colour.
Definition: renderer.hpp:80
+
Compute compute
Compute state.
Definition: renderer.hpp:96
+
Graphics graphics
Graphics state.
Definition: renderer.hpp:94
+
+
+ + + + diff --git a/impl_2linux_2keyboard_8hpp_source.html b/impl_2linux_2keyboard_8hpp_source.html new file mode 100644 index 0000000000..8eb0fdc3ce --- /dev/null +++ b/impl_2linux_2keyboard_8hpp_source.html @@ -0,0 +1,137 @@ + + + + + + + +Topaz: src/tz/wsi/impl/linux/keyboard.hpp Source File + + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.0.0.2 +
+
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
+
key
Contains all possible keyboard inputs that Topaz supports.
Definition: keyboard.hpp:13
+
+
+ + + + diff --git a/impl_2linux_2monitor_8hpp_source.html b/impl_2linux_2monitor_8hpp_source.html new file mode 100644 index 0000000000..3338cbc162 --- /dev/null +++ b/impl_2linux_2monitor_8hpp_source.html @@ -0,0 +1,136 @@ + + + + + + + +Topaz: src/tz/wsi/impl/linux/monitor.hpp Source File + + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.0.0.2 +
+
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..b1edeccbce --- /dev/null +++ b/impl_2linux_2window_8hpp_source.html @@ -0,0 +1,188 @@ + + + + + + + +Topaz: src/tz/wsi/impl/linux/window.hpp Source File + + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.0.0.2 +
+
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 bool is_close_requested() const;
+
27 tz::vec2ui get_dimensions() const;
+
28 void set_dimensions(tz::vec2ui dimensions);
+
29 std::string get_title() const;
+
30 void set_title(std::string title);
+
31 window_flag::flag_bit get_flags() const;
+
32 void update();
+
33 bool make_opengl_context_current();
+
34 #if TZ_VULKAN
+
35 VkSurfaceKHR make_vulkan_surface(VkInstance vkinst) const;
+
36 #endif // TZ_VULKAN
+
37 const keyboard_state& get_keyboard_state() const;
+
38 const mouse_state& get_mouse_state() const;
+
39 void* get_user_data() const;
+
40 void set_user_data(void* udata);
+
41 // tz::wsi::window_api<> end
+
42 private:
+
43 void impl_request_close();
+
44 void impl_init_opengl();
+
45
+
46 Window wnd;
+
47 window_flag::flag_bit flags;
+
48 void* userdata = nullptr;
+
49 keyboard_state kb_state = {};
+
50 mouse_state m_state = {};
+
51 GLXContext ctx = nullptr;
+
52 bool close_requested = false;
+
53 };
+ +
55 void* get_opengl_proc_address_linux(const char* name);
+
56}
+
57
+
58#endif // __linux__
+
59#endif // TZ_WSI_IMPL_LINUX_WINDOW_HPP
+ +
Definition: window.hpp:14
+
Represents an API for a window.
Definition: window.hpp:66
+
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..bf7a982faf --- /dev/null +++ b/impl_2opengl_2component_8hpp_source.html @@ -0,0 +1,189 @@ + + + + + + + +Topaz: src/tz/gl/impl/opengl/component.hpp Source File + + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.0.0.2 +
+
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:82
+
Documentation for OpenGL buffers.
Definition: buffer.hpp:57
+
Documentation for OpenGL images.
Definition: image.hpp:31
+
Definition: resource.hpp:13
+ +
Definition: component.hpp:19
+
Definition: component.hpp:27
+
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..514213ca0f --- /dev/null +++ b/impl_2opengl_2detail_2draw_8hpp_source.html @@ -0,0 +1,151 @@ + + + + + + + +Topaz: src/tz/gl/impl/opengl/detail/draw.hpp Source File + + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.0.0.2 +
+
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
+
5namespace tz::gl::ogl2
+
6{
+ +
8 {
+
9 unsigned int count;
+
10 unsigned int instance_count = 1;
+
11 unsigned int first;
+
12 unsigned int base_instance = 0;
+
13 };
+
14
+ +
16 {
+
17 unsigned int count;
+
18 unsigned int instance_count = 1;
+
19 unsigned int first_index;
+
20 int base_vertex = 0;
+
21 unsigned int base_instance = 0;
+
22 };
+
23}
+
24
+
25#endif // TZ_OGL
+
26#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..87623fcb7e --- /dev/null +++ b/impl_2opengl_2detail_2image__format_8hpp_source.html @@ -0,0 +1,266 @@ + + + + + + + +Topaz: src/tz/gl/impl/opengl/detail/image_format.hpp Source File + + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.0.0.2 +
+
C++20 Graphics Engine
+
+
+ + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
image_format.hpp
+
+
+
1#ifndef TOPAZ_GL_IMPL_BACKEND_OGL2_IMAGE_FORMAT_HPP
+
2#define TOPAZ_GL_IMPL_BACKEND_OGL2_IMAGE_FORMAT_HPP
+
3#include "tz/gl/impl/opengl/detail/tz_opengl.hpp"
+
4#include <array>
+
5
+
6namespace tz::gl::ogl2
+
7{
+ +
13 {
+
14 GLenum format;
+
15 GLenum internal_format;
+
16 GLenum type;
+
17 };
+
18
+
19 enum class image_format
+
20 {
+ +
22 R8,
+
23 R8_UNorm = R8,
+
24 R8_SNorm,
+
25 R8_UInt,
+
26 R8_SInt,
+
27 R8_sRGB,
+
28
+
29 R16,
+
30 R16_UNorm = R16,
+
31 R16_SNorm,
+
32 R16_UInt,
+
33 R16_SInt,
+
34
+
35 RG16,
+
36 RG16_UNorm = RG16,
+
37 RG16_SNorm,
+
38 RG16_UInt,
+
39 RG16_SInt,
+
40 RG16_sRGB,
+
41
+
42 RG32,
+
43 RG32_UNorm = RG32,
+
44 RG32_SNorm,
+
45 RG32_UInt,
+
46 RG32_SInt,
+
47
+
48 RGB24,
+
49 RGB24_UNorm = RGB24,
+
50 RGB24_SNorm,
+
51 RGB24_UInt,
+
52 RGB24_SInt,
+
53 RGB24_sRGB,
+
54
+
55 BGR24,
+
56 BGR24_UNorm = BGR24,
+
57 BGR24_SNorm,
+
58 BGR24_UInt,
+
59 BGR24_SInt,
+
60 BGR24_sRGB,
+
61
+
62 RGBA32,
+
63 RGBA32_UNorm = RGBA32,
+
64 RGBA32_SNorm,
+
65 RGBA32_UInt,
+
66 RGBA32_SInt,
+
67 RGBA32_sRGB,
+
68
+
69 BGRA32,
+
70 BGRA32_UNorm = BGRA32,
+
71 BGRA32_SNorm,
+
72 BGRA32_UInt,
+
73 BGRA32_SInt,
+
74 BGRA32_sRGB,
+
75
+
76 RGBA64_SFloat,
+
77 RGBA128_SFloat,
+
78
+
79 Depth16_UNorm,
+
80 Depth32_UNorm,
+
81 Count
+
82 };
+
83
+
84 constexpr std::array<FormatData, static_cast<int>(image_format::Count)> internal_fmts
+
85 {{
+
86 /* Undefined */ {.format = GL_INVALID_VALUE, .internal_format = GL_INVALID_VALUE, .type = GL_INVALID_VALUE},
+
87 /* R8, R8_UNorm */ {.format = GL_RED, .internal_format = GL_R8, .type = GL_UNSIGNED_BYTE},
+
88 /* R8_SNorm */ {.format = GL_RED, .internal_format = GL_R8_SNORM, .type = GL_BYTE},
+
89 /* R8_UInt */ {.format = GL_RED, .internal_format = GL_R8UI, .type = GL_UNSIGNED_INT},
+
90 /* R8_SInt */ {.format = GL_RED, .internal_format = GL_R8I, .type = GL_INT},
+
91 /* R8_sRGB */ {.format = GL_RED, .internal_format = GL_SRGB8, .type = GL_INT},
+
92
+
93 /* R16, R16_UNorm */ {.format = GL_RED, .internal_format = GL_R16, .type = GL_UNSIGNED_BYTE},
+
94 /* R16_SNorm */ {.format = GL_RED, .internal_format = GL_R16_SNORM, .type = GL_BYTE},
+
95 /* R16_UInt */ {.format = GL_RED, .internal_format = GL_R16UI, .type = GL_UNSIGNED_INT},
+
96 /* R16_SInt */ {.format = GL_RED, .internal_format = GL_R16I, .type = GL_INT},
+
97
+
98 /* RG16, RG16_UNorm */ {.format = GL_RG, .internal_format = GL_RG8, .type = GL_UNSIGNED_BYTE},
+
99 /* RG16_SNorm */ {.format = GL_RG, .internal_format = GL_RG8_SNORM, .type = GL_BYTE},
+
100 /* RG16_UInt */ {.format = GL_RG, .internal_format = GL_RG8UI, .type = GL_UNSIGNED_INT},
+
101 /* RG16_SInt */ {.format = GL_RG, .internal_format = GL_RG8I, .type = GL_INT},
+
102 /* RG16_sRGB */ {.format = GL_RG, .internal_format = GL_SRGB8, .type = GL_INT},
+
103
+
104 /* RG32, RG32_UNorm */ {.format = GL_RG, .internal_format = GL_RG16, .type = GL_UNSIGNED_BYTE},
+
105 /* RG32_SNorm */ {.format = GL_RG, .internal_format = GL_RG16_SNORM, .type = GL_BYTE},
+
106 /* RG32_UInt */ {.format = GL_RG, .internal_format = GL_RG16UI, .type = GL_UNSIGNED_INT},
+
107 /* RG32_SInt */ {.format = GL_RG, .internal_format = GL_RG16I, .type = GL_INT},
+
108
+
109 /* RGB24, RGB24_UNorm */ {.format = GL_RGB, .internal_format = GL_RGB8, .type = GL_UNSIGNED_BYTE},
+
110 /* RGB24_SNorm */ {.format = GL_RGB, .internal_format = GL_RGB8_SNORM, .type = GL_BYTE},
+
111 /* RGB24_UInt */ {.format = GL_RGB, .internal_format = GL_RGB8UI, .type = GL_UNSIGNED_INT},
+
112 /* RGB24_SInt */ {.format = GL_RGB, .internal_format = GL_RGB8I, .type = GL_UNSIGNED_INT},
+
113 /* RGB24_sRGB */ {.format = GL_RGB, .internal_format = GL_SRGB8, .type = GL_INT},
+
114
+
115 /* BGR24, BGR24_UNorm */ {.format = GL_BGR, .internal_format = GL_RGB8, .type = GL_UNSIGNED_BYTE},
+
116 /* BGR24_SNorm */ {.format = GL_BGR, .internal_format = GL_RGB8_SNORM, .type = GL_BYTE},
+
117 /* BGR24_UInt */ {.format = GL_BGR, .internal_format = GL_RGB8UI, .type = GL_UNSIGNED_INT},
+
118 /* BGR24_SInt */ {.format = GL_BGR, .internal_format = GL_RGB8I, .type = GL_INT},
+
119 /* BGR24_sRGB */ {.format = GL_BGR, .internal_format = GL_SRGB8, .type = GL_INT},
+
120
+
121 /* RGBA32, RGBA32_UNorm */ {.format = GL_RGBA, .internal_format = GL_RGBA8, .type = GL_UNSIGNED_BYTE},
+
122 /* RGBA32_SNorm */ {.format = GL_RGBA, .internal_format = GL_RGBA8_SNORM, .type = GL_BYTE},
+
123 /* RGBA32_UInt */ {.format = GL_RGBA, .internal_format = GL_RGBA8UI, .type = GL_UNSIGNED_INT},
+
124 /* RGBA32_SInt */ {.format = GL_RGBA, .internal_format = GL_RGBA8I, .type = GL_INT},
+
125 /* RGBA32_sRGB */ {.format = GL_RGBA, .internal_format = GL_SRGB8_ALPHA8, .type = GL_INT},
+
126
+
127 /* BGRA32, BGRA32_UNorm */ {.format = GL_BGRA, .internal_format = GL_RGBA8, .type = GL_UNSIGNED_BYTE},
+
128 /* BGRA32_SNorm */ {.format = GL_BGRA, .internal_format = GL_RGBA8_SNORM, .type = GL_BYTE},
+
129 /* BGRA32_UInt */ {.format = GL_BGRA, .internal_format = GL_RGBA8UI, .type = GL_UNSIGNED_INT},
+
130 /* BGRA32_SInt */ {.format = GL_BGRA, .internal_format = GL_RGBA8I, .type = GL_INT},
+
131 /* BGRA32_sRGB */ {.format = GL_BGRA, .internal_format = GL_SRGB8_ALPHA8, .type = GL_INT},
+
132 /* RGBA64_SFloat */{.format = GL_RGBA, .internal_format = GL_RGBA16F, .type = GL_FLOAT},
+
133 /* RGBA128_SFloat */{.format = GL_RGBA, .internal_format = GL_RGBA32F, .type = GL_FLOAT},
+
134
+
135 /* Depth16_UNorm */ {.format = GL_DEPTH_COMPONENT, .internal_format = GL_DEPTH_COMPONENT16, .type = GL_UNSIGNED_BYTE},
+
136 /* Depth32_UNorm */ {.format = GL_DEPTH_COMPONENT, .internal_format = GL_DEPTH_COMPONENT32, .type = GL_UNSIGNED_BYTE}
+
137 }};
+
138
+
139 constexpr FormatData get_format_data(image_format format)
+
140 {
+
141 return internal_fmts[static_cast<int>(format)];
+
142 }
+
143}
+
144
+
145#endif // TOPAZ_GL_IMPL_BACKEND_OGL2_IMAGE_FORMAT_HPP
+ +
OpenGL formats are pretty finnicky, especially when using them to initialise texture data-stores.
Definition: image_format.hpp:13
+
+
+ + + + diff --git a/impl_2opengl_2detail_2shader_8hpp_source.html b/impl_2opengl_2detail_2shader_8hpp_source.html new file mode 100644 index 0000000000..fde09292b5 --- /dev/null +++ b/impl_2opengl_2detail_2shader_8hpp_source.html @@ -0,0 +1,246 @@ + + + + + + + +Topaz: src/tz/gl/impl/opengl/detail/shader.hpp Source File + + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.0.0.2 +
+
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
+ +
44 {
+ +
47 };
+
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
+
compile_result compile()
Attempt to compile the shader source.
Definition: shader.cpp:47
+
Represents an OpenGL shader program.
Definition: shader.hpp:99
+
static shader null()
Create the null shader.
Definition: shader.cpp:144
+
bool is_null() const
Query as to whether this is a null shader.
Definition: shader.cpp:149
+
void use() const
Set the program as in-use, causing subsequent gl commands to use it as the shader program.
Definition: shader.cpp:138
+
link_result link()
Attempt to link and validate the shader program.
Definition: shader.cpp:118
+
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..52e41f5db3 --- /dev/null +++ b/impl_2opengl_2device_8hpp_source.html @@ -0,0 +1,176 @@ + + + + + + + +Topaz: src/tz/gl/impl/opengl/device.hpp Source File + + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.0.0.2 +
+
C++20 Graphics Engine
+
+
+ + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
device.hpp
+
+
+
1#ifndef TOPAZ_GL2_IMPL_FRONTEND_OGL2_DEVICE_HPP
+
2#define TOPAZ_GL2_IMPL_FRONTEND_OGL2_DEVICE_HPP
+
3#if TZ_OGL
+
4#include "tz/gl/api/device.hpp"
+
5#include "tz/gl/declare/image_format.hpp"
+
6#include "tz/gl/impl/opengl/renderer.hpp"
+
7#include <unordered_map>
+
8
+
9namespace tz::gl
+
10{
+ +
12 {
+
13 public:
+ +
15 void ogl_fingerprint(unsigned int fingerprint, std::size_t renderer_id);
+
16 void ogl_gpu_do_waits(unsigned int fingerprint);
+
17 void ogl_gpu_wait_on(tz::gl::renderer_handle dep);
+
18 void ogl_register_sync(unsigned int fingerprint);
+
19 void ogl_new_sync();
+
20 private:
+
21 std::vector<GLsync> renderer_syncs = {};
+
22 std::unordered_map<unsigned int, std::size_t> fingerprint_to_renderer_id = {};
+
23 const tz::gl::schedule& sched;
+
24 };
+
25
+
26 class device_ogl : public device_render_scheduler_ogl, public device_common<renderer_ogl>
+
27 {
+
28 public:
+
29 device_ogl();
+
30
+
31 // Satisfies device_type.
+
32 tz::gl::renderer_handle create_renderer(const renderer_info& info);
+
33 using device_common<renderer_ogl>::get_renderer;
+
34 using device_common<renderer_ogl>::destroy_renderer;
+
35 image_format get_window_format() const;
+
36 void dbgui();
+
37 void begin_frame();
+
38 void end_frame();
+
39 };
+ +
41}
+
42
+
43#endif // TZ_OGL
+
44#endif // TOPAZ_GL2_IMPL_FRONTEND_OGL2_DEVICE_HPP
+
Definition: device.hpp:36
+
Definition: device.hpp:27
+
Definition: device.hpp:12
+
Helper struct which the user can use to specify which inputs, resources they want and where they want...
Definition: renderer.hpp:112
+
renderer implementation which heavily calls into the backend at OpenGL Backend.
Definition: renderer.hpp:144
+ +
Named Requirement: device Implemented by tz_gl2_device.
Definition: device.hpp:21
+
image_format
Various image formats are supported in Topaz.
Definition: image_format.hpp:33
+
Definition: schedule.hpp:30
+
+
+ + + + diff --git a/impl_2opengl_2renderer_8hpp_source.html b/impl_2opengl_2renderer_8hpp_source.html new file mode 100644 index 0000000000..d86436a4bb --- /dev/null +++ b/impl_2opengl_2renderer_8hpp_source.html @@ -0,0 +1,278 @@ + + + + + + + +Topaz: src/tz/gl/impl/opengl/renderer.hpp Source File + + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.0.0.2 +
+
C++20 Graphics Engine
+
+
+ + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
renderer.hpp
+
+
+
1#ifndef TOPAZ_GL2_IMPL_FRONTEND_OGL2_RENDERER_HPP
+
2#define TOPAZ_GL2_IMPL_FRONTEND_OGL2_RENDERER_HPP
+
3#if TZ_OGL
+
4#include "tz/gl/api/renderer.hpp"
+
5#include "tz/gl/api/component.hpp"
+
6#include "tz/gl/impl/common/renderer.hpp"
+
7#include "tz/gl/impl/opengl/detail/vertex_array.hpp"
+
8#include "tz/gl/impl/opengl/detail/shader.hpp"
+
9#include "tz/gl/impl/opengl/detail/framebuffer.hpp"
+
10#include "tz/gl/impl/opengl/detail/buffer.hpp"
+
11
+
12namespace tz::gl
+
13{
+
14 using namespace tz::gl;
+
15
+
26 class ResourceStorage : public AssetStorageCommon<iresource>
+
27 {
+
28 public:
+
36 ResourceStorage(std::span<const iresource* const> resources, std::span<const icomponent* const> components);
+ + +
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 private:
+
64 void fill_bindless_image_buffer();
+
65
+
67 std::vector<tz::maybe_owned_ptr<icomponent>> components;
+
69 std::vector<ogl2::image::bindless_handle> image_handles;
+
70 // 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.
+
71 ogl2::buffer bindless_image_storage_buffer;
+
72 };
+
73
+ +
79 {
+
80 public:
+
84 ShaderManager(const shader_info& sinfo);
+ +
92 void use();
+
93 bool is_compute() const;
+
94 bool has_tessellation() const;
+
95
+
96 ogl2::shader& get_program();
+
97
+
98 private:
+
99 ogl2::shader make_shader(const shader_info& sinfo) const;
+
100
+
101 ogl2::shader shader;
+
102 };
+
103
+ +
109 {
+
110 public:
+
114 OutputManager(const ioutput* output, tz::gl::renderer_options options);
+
118 void set_render_target() const;
+
119 ioutput* get_output();
+
120 const ioutput* get_output() const;
+
121 private:
+
122 std::unique_ptr<ioutput> output;
+
123 ogl2::render_buffer default_depth_renderbuffer;
+
124 ogl2::framebuffer framebuffer;
+ +
126 };
+
127
+ +
129 {
+
130 protected:
+
131 // 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.)
+
132 // 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.
+
133 static unsigned int uid_counter;
+
134 unsigned int uid = uid_counter++;
+
135 public:
+
136 unsigned int ogl_get_uid() const{return this->uid;}
+
137 };
+
138
+ +
144 {
+
145 public:
+
150 renderer_ogl(const renderer_info& info);
+
151 // Satisfies renderer_type.
+
155 unsigned int resource_count() const;
+ + + + +
180 ioutput* get_output();
+
181 const ioutput* get_output() const;
+
185 const renderer_options& get_options() const;
+
189 const render_state& get_state() const;
+
193 void render();
+
200 void edit(const renderer_edit_request& edit_request);
+
201
+
202 void dbgui();
+
203 std::string_view debug_get_name() const;
+
204
+
205 // Satisfies nullable.
+
206 static renderer_ogl null();
+
207 bool is_null() const;
+
208 private:
+
209 renderer_ogl();
+
210
+ +
212 ResourceStorage resources;
+
213 ShaderManager shader;
+
214 OutputManager output;
+
215 renderer_options options;
+
216 render_state state;
+
217 std::string debug_name;
+
218 bool wireframe_mode = false;
+
219 bool is_null_value = false;
+
220 };
+
221 static_assert(renderer_type<renderer_ogl>);
+
222}
+
223
+
224#endif // TZ_OGL
+
225#endif // TOPAZ_GL2_IMPL_FRONTEND_OGL2_RENDERER_HPP
+ +
Definition: renderer.hpp:13
+
Stores information about the output target, and a framebuffer which either points to an offscreen ima...
Definition: renderer.hpp:109
+
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:413
+
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:223
+
unsigned int resource_count_of(resource_type type) const
Retrieve the number of resources stored of the given type.
Definition: renderer.cpp:157
+
void bind_buffers(const render_state &state)
Bind all buffer resources to their expected resource ids.
Definition: renderer.cpp:193
+
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:139
+
Stores the shader program and allows the renderer to use it before emitting a draw call.
Definition: renderer.hpp:79
+
void use()
Use the shader program, meaning it will be used in the next draw call.
Definition: renderer.cpp:293
+
ShaderManager()
Construct a null shader manager.
Definition: renderer.cpp:287
+
Definition: component.hpp:10
+
Definition: output.hpp:43
+
Interface for a renderer or Processor resource.
Definition: resource.hpp:82
+
Documentation for OpenGL buffers.
Definition: buffer.hpp:57
+
Represents an OpenGL framebuffer object.
Definition: framebuffer.hpp:37
+
GLuint64 bindless_handle
Opaque handle for a bindless texture.
Definition: image.hpp:34
+
Definition: renderbuffer.hpp:19
+
Represents an OpenGL shader program.
Definition: shader.hpp:99
+
Wrapper for an OpenGL VAO.
Definition: vertex_array.hpp:14
+
Helper struct which the user can use to specify which inputs, resources they want and where they want...
Definition: renderer.hpp:112
+
renderer implementation which heavily calls into the backend at OpenGL Backend.
Definition: renderer.hpp:144
+
void edit(const renderer_edit_request &edit_request)
Confirm changes to a renderer.
Definition: renderer.cpp:666
+
void render()
Invoke the renderer, emitting a single draw call of a set number of triangles.
Definition: renderer.cpp:540
+
const icomponent * get_component(resource_handle handle) const
Retrieve the component sourcing the resource (read-only) corresponding to the given handle.
Definition: renderer.cpp:510
+
unsigned int resource_count() const
Retrieve the number of resources.
Definition: renderer.cpp:495
+
const renderer_options & get_options() const
Retrieve options denoting extra features used by the renderer.
Definition: renderer.cpp:530
+
const iresource * get_resource(resource_handle handle) const
Retrieve the resource (read-only) corresponding to the given handle.
Definition: renderer.cpp:500
+
const render_state & get_state() const
Retrieve current state of the renderer.
Definition: renderer.cpp:535
+
Definition: shader.hpp:26
+ +
Named requirement for a renderer.
Definition: renderer.hpp:333
+
std::vector< renderer_edit::variant > renderer_edit_request
Represents an edit to an existing renderer.
Definition: renderer.hpp:291
+
resource_type
Specifies the type of the resource; which is how a renderer or Processor will interpret the usage of ...
Definition: resource.hpp:17
+
Stores renderer-specific state, which drives the behaviour of the rendering.
Definition: renderer.hpp:72
+
Definition: renderer.hpp:129
+
+
+ + + + diff --git a/impl_2stdasync_2job_8hpp_source.html b/impl_2stdasync_2job_8hpp_source.html new file mode 100644 index 0000000000..6efed3b750 --- /dev/null +++ b/impl_2stdasync_2job_8hpp_source.html @@ -0,0 +1,156 @@ + + + + + + + +Topaz: src/tz/core/job/impl/stdasync/job.hpp Source File + + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.0.0.2 +
+
C++20 Graphics Engine
+
+
+ + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
job.hpp
+
+
+
1#ifndef TZ_JOB_IMPL_STDASYNC_JOB_HPP
+
2#define TZ_JOB_IMPL_STDASYNC_JOB_HPP
+
3#include "tz/core/job/api/job.hpp"
+
4#include <vector>
+
5#include <future>
+
6#include <optional>
+
7
+
8namespace tz::impl
+
9{
+ +
11 {
+
12 public:
+ +
14
+
15 job_handle execute(job_t job);
+
16 void block(job_handle j) const;
+
17 bool complete(job_handle j) const;
+
18 bool any_work_remaining() const;
+
19 void block_all() const;
+
20 unsigned int size() const;
+
21 private:
+
22 std::optional<std::size_t> get_unused_future();
+
23
+
24 std::vector<std::future<void>> jobs;
+
25 };
+ +
27}
+
28
+
29#endif // TZ_JOB_IMPL_STDASYNC_JOB_HP
+
Definition: handle.hpp:16
+
Definition: job.hpp:11
+
API for job system.
Definition: job.hpp:29
+
std::function< void()> job_t
Represents a job.
Definition: job.hpp:22
+
+
+ + + + diff --git a/impl_2threadpool__lfq_2job_8hpp_source.html b/impl_2threadpool__lfq_2job_8hpp_source.html new file mode 100644 index 0000000000..ac4dea27ea --- /dev/null +++ b/impl_2threadpool__lfq_2job_8hpp_source.html @@ -0,0 +1,183 @@ + + + + + + + +Topaz: src/tz/core/job/impl/threadpool_lfq/job.hpp Source File + + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.0.0.2 +
+
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
+
19 job_handle execute(job_t job);
+
20 void block(job_handle j) const;
+
21 bool complete(job_handle j) const;
+
22 bool any_work_remaining() const;
+
23 void block_all() const;
+
24 void new_frame();
+
25 unsigned int size() const;
+
26 unsigned int jobs_started_this_frame() const;
+
27 private:
+
28 struct worker_t
+
29 {
+
30 std::thread thread;
+
31 std::size_t local_tid;
+
32 std::atomic<std::size_t> current_job;
+
33 };
+
34 struct job_info_t
+
35 {
+
36 job_t func;
+
37 std::size_t id;
+
38 };
+
39 void tmain(std::size_t local_tid);
+
40 static void wait_a_bit();
+
41
+
42 std::deque<worker_t> thread_pool;
+
43 moodycamel::ConcurrentQueue<job_info_t> jobs;
+
44 std::atomic<bool> requires_exit = false;
+
45 std::atomic<std::size_t> lifetime_count = 0;
+
46 std::atomic<std::size_t> count_this_frame = 0;
+
47 std::vector<std::size_t> waiting_job_ids = {};
+
48 mutable std::mutex waiting_job_id_mutex;
+
49 mutable std::mutex wake_mutex;
+
50 mutable std::condition_variable wake_condition;
+
51 };
+
52
+ +
54}
+
55
+
56#endif // TZ_JOB_IMPL_THREADPOOL_LFQ_JOB_HPP
+
Definition: handle.hpp:16
+ +
API for job system.
Definition: job.hpp:29
+
std::function< void()> job_t
Represents a job.
Definition: job.hpp:22
+
+
+ + + + diff --git a/impl_2vulkan_2component_8hpp_source.html b/impl_2vulkan_2component_8hpp_source.html new file mode 100644 index 0000000000..ce24d368e7 --- /dev/null +++ b/impl_2vulkan_2component_8hpp_source.html @@ -0,0 +1,190 @@ + + + + + + + +Topaz: src/tz/gl/impl/vulkan/component.hpp Source File + + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.0.0.2 +
+
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:82
+
Definition: resource.hpp:13
+
Represents a linear array of data which can be used for various purposes.
Definition: buffer.hpp:56
+
Represents an Image owned by the Vulkan API.
Definition: image.hpp:155
+ +
Definition: component.hpp:19
+
Definition: component.hpp:27
+
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..bb33b971b1 --- /dev/null +++ b/impl_2vulkan_2detail_2draw_8hpp_source.html @@ -0,0 +1,149 @@ + + + + + + + +Topaz: src/tz/gl/impl/vulkan/detail/draw.hpp Source File + + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.0.0.2 +
+
C++20 Graphics Engine
+
+
+ + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
draw.hpp
+
+
+
1#ifndef TOPAZ_GL_IMPL_VULKAN_BACKEND_DRAW_HPP
+
2#define TOPAZ_GL_IMPL_VULKAN_BACKEND_DRAW_HPP
+
3#include "tz/gl/impl/vulkan/detail/tz_vulkan.hpp"
+
4
+
5namespace tz::gl::vk2
+
6{
+ +
8 {
+
9 std::uint32_t count;
+
10 std::uint32_t instance_count = 1;
+
11 std::uint32_t first;
+
12 std::uint32_t base_instance = 0;
+
13 };
+ +
15 {
+
16 std::uint32_t count;
+
17 std::uint32_t instance_count = 1;
+
18 std::uint32_t first_index;
+
19 std::int32_t base_vertex = 0;
+
20 std::uint32_t base_instance = 0;
+
21 };
+
22}
+
23
+
24#endif // TOPAZ_GL_IMPL_VULKAN_BACKEND_DRAW_HPP
+ + +
+
+ + + + diff --git a/impl_2vulkan_2detail_2image__format_8hpp_source.html b/impl_2vulkan_2detail_2image__format_8hpp_source.html new file mode 100644 index 0000000000..191ad8c654 --- /dev/null +++ b/impl_2vulkan_2detail_2image__format_8hpp_source.html @@ -0,0 +1,278 @@ + + + + + + + +Topaz: src/tz/gl/impl/vulkan/detail/image_format.hpp Source File + + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.0.0.2 +
+
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..108eb534df --- /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.0.0.2 +
+
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
+ +
77 {
+ + +
82 };
+
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:67
+
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..fb6dae70e2 --- /dev/null +++ b/impl_2windows_2keyboard_8hpp_source.html @@ -0,0 +1,142 @@ + + + + + + + +Topaz: src/tz/wsi/impl/windows/keyboard.hpp Source File + + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.0.0.2 +
+
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..62274d4d23 --- /dev/null +++ b/impl_2windows_2monitor_8hpp_source.html @@ -0,0 +1,135 @@ + + + + + + + +Topaz: src/tz/wsi/impl/windows/monitor.hpp Source File + + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.0.0.2 +
+
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..374afa0b33 --- /dev/null +++ b/impl_2windows_2window_8hpp_source.html @@ -0,0 +1,194 @@ + + + + + + + +Topaz: src/tz/wsi/impl/windows/window.hpp Source File + + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.0.0.2 +
+
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 bool is_close_requested() const;
+
23 tz::vec2ui get_dimensions() const;
+
24 void set_dimensions(tz::vec2ui dimensions);
+
25 std::string get_title() const;
+
26 void set_title(std::string title);
+
27 window_flag::flag_bit get_flags() const;
+
28 void update();
+
29 bool make_opengl_context_current();
+
30 #if TZ_VULKAN
+
31 VkSurfaceKHR make_vulkan_surface(VkInstance vkinst) const;
+
32 #endif // TZ_VULKAN
+
33 const keyboard_state& get_keyboard_state() const;
+
34 const mouse_state& get_mouse_state() const;
+
35 void* get_user_data() const;
+
36 void set_user_data(void* udata);
+
37 // tz::wsi::window_api<> end
+
38 friend LRESULT wndproc(HWND, UINT, WPARAM, LPARAM);
+
39 private:
+
40 void impl_init_opengl();
+
41 bool impl_is_opengl() const;
+
42 void impl_request_close();
+
43 void impl_register_mouseleave();
+
44 void impl_notify_mouse_enter_window();
+
45 void impl_notify_mouse_leave_window();
+
46 keyboard_state& impl_mutable_keyboard_state();
+
47 mouse_state& impl_mutable_mouse_state();
+
48
+
49 HWND hwnd = nullptr;
+
50 HDC hdc = nullptr;
+
51 HGLRC opengl_rc = nullptr;
+
52 window_flag::flag_bit flags = {};
+
53 bool close_requested = false;
+
54 keyboard_state key_state = {};
+ +
56 bool mouse_in_window = false;
+
57 void* userdata = nullptr;
+
58 };
+ +
60
+
61 void* get_opengl_proc_address_windows(const char* name);
+
62}
+
63
+
64#endif // _WIN32
+
65#endif // TZ_WSI_IMPL_WINDOWS_WINDOW_HPP
+ +
Definition: window.hpp:10
+
Represents an API for a window.
Definition: window.hpp:66
+
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..d5deca0a98 --- /dev/null +++ b/imported__shaders_8hpp_source.html @@ -0,0 +1,143 @@ + + + + + + + +Topaz: src/tz/gl/imported_shaders.hpp Source File + + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.0.0.2 +
+
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..d2f051c751 --- /dev/null +++ b/imported__text_8hpp_source.html @@ -0,0 +1,137 @@ + + + + + + + +Topaz: src/tz/core/imported_text.hpp Source File + + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.0.0.2 +
+
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..642b8b4b53 --- /dev/null +++ b/index.html @@ -0,0 +1,125 @@ + + + + + + + +Topaz: Home + + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.0.0.2 +
+
C++20 Graphics Engine
+
+
+ + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
Home
+
+
+

Introduction

+

Welcome to the home page of the tz documentation. Here you can find detailed information about the vast majority of modules, classes and functions within tz.

+
+
+
+ + + + diff --git a/job_8hpp_source.html b/job_8hpp_source.html new file mode 100644 index 0000000000..5eca365429 --- /dev/null +++ b/job_8hpp_source.html @@ -0,0 +1,146 @@ + + + + + + + +Topaz: src/tz/core/job/job.hpp Source File + + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.0.0.2 +
+
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/stdasync/job.hpp"
+
6#include "tz/core/job/impl/threadpool_lfq/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
+ +
+
+ + + + 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..c176d46b31 --- /dev/null +++ b/keyboard_8hpp_source.html @@ -0,0 +1,141 @@ + + + + + + + +Topaz: src/tz/wsi/keyboard.hpp Source File + + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.0.0.2 +
+
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
+
key
Contains all possible keyboard inputs that Topaz supports.
Definition: keyboard.hpp:13
+
std::string get_key_name(tz::wsi::key key)
Retrieve a human-readable name for a key.
Definition: keyboard.cpp:8
+
+
+ + + + diff --git a/linear_8hpp_source.html b/linear_8hpp_source.html new file mode 100644 index 0000000000..e53061e6c8 --- /dev/null +++ b/linear_8hpp_source.html @@ -0,0 +1,155 @@ + + + + + + + +Topaz: src/tz/core/memory/allocators/linear.hpp Source File + + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.0.0.2 +
+
C++20 Graphics Engine
+
+
+ + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
linear.hpp
+
+
+
1#ifndef TOPAZ_CORE_ALLOCATORS_LINEAR_HPP
+
2#define TOPAZ_CORE_ALLOCATORS_LINEAR_HPP
+
3#include "tz/core/memory/memblk.hpp"
+
4#include "tz/core/types.hpp"
+
5#include <span>
+
6#include <cstddef>
+
7
+
8namespace tz
+
9{
+ +
17 {
+
18 public:
+
19 linear_allocator(std::span<std::byte> arena);
+
20 linear_allocator(tz::memblk arena = tz::nullblk);
+
21
+
22 tz::memblk allocate(std::size_t count);
+
23 void deallocate(tz::memblk blk);
+
24 bool owns(tz::memblk blk) const;
+
25 private:
+
26 std::byte* head();
+
27
+
28 std::span<std::byte> arena;
+
29 std::size_t cursor = 0;
+
30 };
+
31
+ +
33}
+
34
+
35#endif // TOPAZ_CORE_ALLOCATORS_LINEAR_HPP
+
An allocator which operates on a pre-allocated buffer of variable size.
Definition: linear.hpp:17
+
Definition: types.hpp:73
+
A non-owning, contiguous block of memory.
Definition: memblk.hpp:12
+
+
+ + + + diff --git a/logical__device_8hpp_source.html b/logical__device_8hpp_source.html new file mode 100644 index 0000000000..40de562811 --- /dev/null +++ b/logical__device_8hpp_source.html @@ -0,0 +1,247 @@ + + + + + + + +Topaz: src/tz/gl/impl/vulkan/detail/logical_device.hpp Source File + + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.0.0.2 +
+
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;
+ +
33 };
+
34
+ +
40 {
+
42 PhysicalDevice physical_device = PhysicalDevice::null();
+ + +
53 };
+
54
+ +
56 {
+ + +
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 };
+ +
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:67
+
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/macros_8hpp_source.html b/macros_8hpp_source.html new file mode 100644 index 0000000000..0e1b002e33 --- /dev/null +++ b/macros_8hpp_source.html @@ -0,0 +1,124 @@ + + + + + + + +Topaz: src/tz/core/macros.hpp Source File + + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.0.0.2 +
+
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..fd236c224a --- /dev/null +++ b/malloc_8hpp_source.html @@ -0,0 +1,146 @@ + + + + + + + +Topaz: src/tz/core/memory/allocators/malloc.hpp Source File + + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.0.0.2 +
+
C++20 Graphics Engine
+
+
+ + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
malloc.hpp
+
+
+
1#ifndef TOPAZ_CORE_ALLOCATORS_MALLOC_HPP
+
2#define TOPAZ_CORE_ALLOCATORS_MALLOC_HPP
+
3#include "tz/core/memory/memblk.hpp"
+
4#include "tz/core/types.hpp"
+
5
+
6namespace tz
+
7{
+ +
15 {
+
16 public:
+
17 constexpr mallocator() = default;
+
18 tz::memblk allocate(std::size_t count) const;
+
19 void deallocate(tz::memblk blk) const;
+
20 bool owns(tz::memblk blk) const;
+
21 };
+
22
+
23 static_assert(tz::allocator<mallocator>);
+
24}
+
25
+
26#endif // TOPAZ_CORE_ALLOCATORS_MALLOC_HPP
+
Implements tz:allocator.
Definition: malloc.hpp:15
+
Definition: types.hpp:73
+
A non-owning, contiguous block of memory.
Definition: memblk.hpp:12
+
+
+ + + + diff --git a/matrix_8hpp_source.html b/matrix_8hpp_source.html new file mode 100644 index 0000000000..5ede37bf44 --- /dev/null +++ b/matrix_8hpp_source.html @@ -0,0 +1,210 @@ + + + + + + + +Topaz: src/tz/core/matrix.hpp Source File + + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.0.0.2 +
+
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 private:
+
196 const T& internal_get(std::size_t row, std::size_t column) const;
+
197 T& internal_get(std::size_t row, std::size_t column);
+
198 std::array<Row, C> mat;
+
199 };
+
200
+ + + +
212
+
216}
+
217
+
218#include "tz/core/matrix.inl"
+
219#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:185
+
const Row & operator[](std::size_t row_idx) const
Retrieve the i'th row of the matrix.
Definition: matrix.inl:12
+
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:26
+
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:110
+
matrix< T, R, C > operator*(T scalar) const
Multiply the scalar value with each element of the current matrix.
Definition: matrix.inl:158
+
matrix< T, R, C > & operator-=(T scalar)
Subtract the scalar value from each element of the current matrix.
Definition: matrix.inl:84
+
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:68
+
matrix< T, R, C > & operator+=(T scalar)
Add the scalar value to each element of the current matrix.
Definition: matrix.inl:42
+
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:126
+
Definition: vector.hpp:18
+
matn inverse(matn m)
Calculate the inverse of a matrix.
+
matnm transpose(matmn m)
Calculate the transpose of a matrix.
+
+
+ + + + diff --git a/matrix__transform_8hpp_source.html b/matrix__transform_8hpp_source.html new file mode 100644 index 0000000000..6231ec7230 --- /dev/null +++ b/matrix__transform_8hpp_source.html @@ -0,0 +1,153 @@ + + + + + + + +Topaz: src/tz/core/matrix_transform.hpp Source File + + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.0.0.2 +
+
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
+
61#endif // TOPAZ_CORE_MATRIX_TRANSFORM_HPP
+
Definition: vector.hpp:18
+
matrix< float, 4, 4 > mat4
Definition: matrix.hpp:207
+
mat4 orthographic(float left, float right, float top, float bottom, float near, float far)
Generates an orthographic projection matrix using the given camera properties.
Definition: matrix_transform.cpp:131
+
mat4 view(tz::vec3 position, tz::vec3 rotation)
Generates a view matrix using the given view position and rotation.
Definition: matrix_transform.cpp:109
+
mat4 model(tz::vec3 position, tz::vec3 rotation, tz::vec3 scale)
Generates a model matrix using the given position, euler-rotation and scale vectors.
Definition: matrix_transform.cpp:103
+
mat4 perspective(float fov, float aspect_ratio, float near, float far)
Generates a perspective projection matrix using the given camera properties.
Definition: matrix_transform.cpp:115
+
mat4 rotate(tz::vec3 rotation)
Generates a matrix which performs the following three transformations, in chronological order:
Definition: matrix_transform.cpp:82
+
mat4 scale(tz::vec3 scale)
Generates a matrix which performs the following transformations at once:
Definition: matrix_transform.cpp:92
+
mat4 translate(tz::vec3 position)
Generate a matrix which performs the following transformations at once:
Definition: matrix_transform.cpp:7
+
+
+ + + + diff --git a/maybe__owned__ptr_8hpp_source.html b/maybe__owned__ptr_8hpp_source.html new file mode 100644 index 0000000000..3488dd41ae --- /dev/null +++ b/maybe__owned__ptr_8hpp_source.html @@ -0,0 +1,181 @@ + + + + + + + +Topaz: src/tz/core/memory/maybe_owned_ptr.hpp Source File + + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.0.0.2 +
+
C++20 Graphics Engine
+
+
+ + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
maybe_owned_ptr.hpp
+
+
+
1#ifndef TOPAZ_CORE_MEMORY_MAYBE_OWNED_PTR_HPP
+
2#define TOPAZ_CORE_MEMORY_MAYBE_OWNED_PTR_HPP
+
3#include "tz/core/memory/memblk.hpp"
+
4
+
5namespace tz
+
6{
+
7 template<typename T>
+ +
9 {
+
10 public:
+
11 maybe_owned_ptr(std::nullptr_t);
+
12 maybe_owned_ptr(T* ptr);
+
13 maybe_owned_ptr(std::unique_ptr<T> owned);
+
14 template<typename P>
+
15 maybe_owned_ptr(maybe_owned_ptr<P>&& move) requires std::derived_from<P, T>;
+
16
+
17 maybe_owned_ptr(const maybe_owned_ptr<T>& copy) = default;
+
18 maybe_owned_ptr(maybe_owned_ptr<T>&& move) = default;
+
19 maybe_owned_ptr& operator=(const maybe_owned_ptr<T>& rhs) = default;
+
20 maybe_owned_ptr& operator=(maybe_owned_ptr<T>&& rhs) = default;
+
21 maybe_owned_ptr& operator=(std::nullptr_t);
+
22 maybe_owned_ptr& operator=(T* ptr);
+
23 maybe_owned_ptr& operator=(std::unique_ptr<T> ptr);
+
24
+
25 T* get();
+
26 const T* get() const;
+
27 bool owning() const;
+
28 void reset();
+
29 T* release();
+
30 void set_owning(bool should_own);
+
31
+
32 template<typename P>
+
33 P* as() requires std::derived_from<P, T>
+
34 {
+
35 return static_cast<P*>(this->get());
+
36 }
+
37
+
38 template<typename P>
+
39 const P* as() const requires std::derived_from<P, T>
+
40 {
+
41 return static_cast<const P*>(this->get());
+
42 }
+
43
+
44 T* operator->();
+
45 const T* operator->() const;
+
46 bool operator==(const T* t) const;
+
47 private:
+
48 using variant = std::variant<T*, std::unique_ptr<T>>;
+
49 variant ptr;
+
50 };
+
51
+
52 template<typename T, typename... Args>
+
53 maybe_owned_ptr<T> make_owned(Args&&... args);
+
54}
+
55
+
56#include "tz/core/memory/maybe_owned_ptr.inl"
+
57#endif // TOPAZ_CORE_MEMORY_MAYBE_OWNED_PTR_HPP
+
Definition: maybe_owned_ptr.hpp:9
+
+
+ + + + diff --git a/memblk_8hpp_source.html b/memblk_8hpp_source.html new file mode 100644 index 0000000000..1c5824ba47 --- /dev/null +++ b/memblk_8hpp_source.html @@ -0,0 +1,143 @@ + + + + + + + +Topaz: src/tz/core/memory/memblk.hpp Source File + + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.0.0.2 +
+
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..ef9a25afee --- /dev/null +++ b/menudata.js @@ -0,0 +1,31 @@ +/* + @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:"API",url:"usergroup0.html",children:[ +{text:"C++",url:"group__tz__cpp.html"}, +{text:"TZSL",url:"group__tzsl.html"}]}, +{text:"Shaders",url:"shaders.html"}, +{text:"Graphics",url:"graphics.html"}]} diff --git a/monitor_8hpp_source.html b/monitor_8hpp_source.html new file mode 100644 index 0000000000..38f0711de8 --- /dev/null +++ b/monitor_8hpp_source.html @@ -0,0 +1,135 @@ + + + + + + + +Topaz: src/tz/wsi/monitor.hpp Source File + + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.0.0.2 +
+
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..ca2ec6cd5b --- /dev/null +++ b/mouse_8hpp_source.html @@ -0,0 +1,136 @@ + + + + + + + +Topaz: src/tz/wsi/mouse.hpp Source File + + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.0.0.2 +
+
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{
+ +
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
+
mouse_button
Represents all supported mouse buttons.
Definition: mouse.hpp:13
+
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..bd095c983f --- /dev/null +++ b/namespacetz_1_1atomic.html @@ -0,0 +1,166 @@ + + + + + + + +Topaz: tz::atomic Namespace Reference + + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.0.0.2 +
+
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..dbd7f2ad1e --- /dev/null +++ b/namespacetz_1_1debug.html @@ -0,0 +1,140 @@ + + + + + + + +Topaz: tz::debug Namespace Reference + + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.0.0.2 +
+
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..b91b1128ca --- /dev/null +++ b/namespacetz_1_1gl_1_1vk2_1_1format__traits.html @@ -0,0 +1,228 @@ + + + + + + + +Topaz: tz::gl::vk2::format_traits Namespace Reference + + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.0.0.2 +
+
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..8bc07d2372 --- /dev/null +++ b/namespacetz_1_1gl_1_1vk2_1_1present__traits.html @@ -0,0 +1,166 @@ + + + + + + + +Topaz: tz::gl::vk2::present_traits Namespace Reference + + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.0.0.2 +
+
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..211bc09d96 --- /dev/null +++ b/namespacetz_1_1math.html @@ -0,0 +1,276 @@ + + + + + + + +Topaz: tz::math Namespace Reference + + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.0.0.2 +
+
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..cb52e97c83 --- /dev/null +++ b/namespacetz_1_1matrix.html @@ -0,0 +1,149 @@ + + + + + + + +Topaz: tz::matrix Namespace Reference + + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.0.0.2 +
+
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..7d0d44f181 --- /dev/null +++ b/namespacetz_1_1mesh.html @@ -0,0 +1,146 @@ + + + + + + + +Topaz: tz::mesh Namespace Reference + + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.0.0.2 +
+
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..4985a32612 --- /dev/null +++ b/namespacetz_1_1noise.html @@ -0,0 +1,140 @@ + + + + + + + +Topaz: tz::noise Namespace Reference + + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.0.0.2 +
+
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..e5f78b865f --- /dev/null +++ b/namespacetz_1_1wsi_1_1window__flag.html @@ -0,0 +1,129 @@ + + + + + + + +Topaz: tz::wsi::window_flag Namespace Reference + + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.0.0.2 +
+
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/navtree.css b/navtree.css new file mode 100644 index 0000000000..c8a7766a72 --- /dev/null +++ b/navtree.css @@ -0,0 +1,150 @@ +#nav-tree .children_ul { + margin:0; + padding:4px; +} + +#nav-tree ul { + list-style:none outside none; + margin:0px; + padding:0px; +} + +#nav-tree li { + white-space:nowrap; + margin:0px; + padding:0px; +} + +#nav-tree .plus { + margin:0px; +} + +#nav-tree .selected { + background-image: url('tab_a.png'); + background-repeat:repeat-x; + color: var(--nav-text-active-color); + text-shadow: var(--nav-text-active-shadow); +} + +#nav-tree .selected .arrow { + color: var(--nav-arrow-selected-color); + text-shadow: none; +} + +#nav-tree img { + margin:0px; + padding:0px; + border:0px; + vertical-align: middle; +} + +#nav-tree a { + text-decoration:none; + padding:0px; + margin:0px; + outline:none; +} + +#nav-tree .label { + margin:0px; + padding:0px; + font: 12px var(--font-family-nav); +} + +#nav-tree .label a { + padding:2px; +} + +#nav-tree .selected a { + text-decoration:none; + color:var(--nav-text-active-color); +} + +#nav-tree .children_ul { + margin:0px; + padding:0px; +} + +#nav-tree .item { + margin:0px; + padding:0px; +} + +#nav-tree { + padding: 0px 0px; + font-size:14px; + overflow:auto; +} + +#doc-content { + overflow:auto; + display:block; + padding:0px; + margin:0px; + -webkit-overflow-scrolling : touch; /* iOS 5+ */ +} + +#side-nav { + padding:0 6px 0 0; + margin: 0px; + display:block; + position: absolute; + left: 0px; + width: $width; + overflow : hidden; +} + +.ui-resizable .ui-resizable-handle { + display:block; +} + +.ui-resizable-e { + background-image:var(--nav-splitbar-image); + background-size:100%; + background-repeat:repeat-y; + background-attachment: scroll; + cursor:ew-resize; + height:100%; + right:0; + top:0; + width:6px; +} + +.ui-resizable-handle { + display:none; + font-size:0.1px; + position:absolute; + z-index:1; +} + +#nav-tree-contents { + margin: 6px 0px 0px 0px; +} + +#nav-tree { + background-repeat:repeat-x; + background-color: var(--nav-background-color); + -webkit-overflow-scrolling : touch; /* iOS 5+ */ +} + +#nav-sync { + position:absolute; + top:5px; + right:24px; + z-index:0; +} + +#nav-sync img { + opacity:0.3; +} + +#nav-sync img:hover { + opacity:0.9; +} + +@media print +{ + #nav-tree { display: none; } + div.ui-resizable-handle { display: none; position: relative; } +} + diff --git a/navtree.js b/navtree.js new file mode 100644 index 0000000000..27983687a9 --- /dev/null +++ b/navtree.js @@ -0,0 +1,549 @@ +/* + @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 navTreeSubIndices = new Array(); +var arrowDown = '▼'; +var arrowRight = '►'; + +function getData(varName) +{ + var i = varName.lastIndexOf('/'); + var n = i>=0 ? varName.substring(i+1) : varName; + return eval(n.replace(/\-/g,'_')); +} + +function stripPath(uri) +{ + return uri.substring(uri.lastIndexOf('/')+1); +} + +function stripPath2(uri) +{ + var i = uri.lastIndexOf('/'); + var s = uri.substring(i+1); + var m = uri.substring(0,i+1).match(/\/d\w\/d\w\w\/$/); + return m ? uri.substring(i-6) : s; +} + +function hashValue() +{ + return $(location).attr('hash').substring(1).replace(/[^\w\-]/g,''); +} + +function hashUrl() +{ + return '#'+hashValue(); +} + +function pathName() +{ + return $(location).attr('pathname').replace(/[^-A-Za-z0-9+&@#/%?=~_|!:,.;\(\)]/g, ''); +} + +function localStorageSupported() +{ + try { + return 'localStorage' in window && window['localStorage'] !== null && window.localStorage.getItem; + } + catch(e) { + return false; + } +} + +function storeLink(link) +{ + if (!$("#nav-sync").hasClass('sync') && localStorageSupported()) { + window.localStorage.setItem('navpath',link); + } +} + +function deleteLink() +{ + if (localStorageSupported()) { + window.localStorage.setItem('navpath',''); + } +} + +function cachedLink() +{ + if (localStorageSupported()) { + return window.localStorage.getItem('navpath'); + } else { + return ''; + } +} + +function getScript(scriptName,func,show) +{ + var head = document.getElementsByTagName("head")[0]; + var script = document.createElement('script'); + script.id = scriptName; + script.type = 'text/javascript'; + script.onload = func; + script.src = scriptName+'.js'; + head.appendChild(script); +} + +function createIndent(o,domNode,node,level) +{ + var level=-1; + var n = node; + while (n.parentNode) { level++; n=n.parentNode; } + if (node.childrenData) { + var imgNode = document.createElement("span"); + imgNode.className = 'arrow'; + imgNode.style.paddingLeft=(16*level).toString()+'px'; + imgNode.innerHTML=arrowRight; + node.plus_img = imgNode; + node.expandToggle = document.createElement("a"); + node.expandToggle.href = "javascript:void(0)"; + node.expandToggle.onclick = function() { + if (node.expanded) { + $(node.getChildrenUL()).slideUp("fast"); + node.plus_img.innerHTML=arrowRight; + node.expanded = false; + } else { + expandNode(o, node, false, false); + } + } + node.expandToggle.appendChild(imgNode); + domNode.appendChild(node.expandToggle); + } else { + var span = document.createElement("span"); + span.className = 'arrow'; + span.style.width = 16*(level+1)+'px'; + span.innerHTML = ' '; + domNode.appendChild(span); + } +} + +var animationInProgress = false; + +function gotoAnchor(anchor,aname,updateLocation) +{ + var pos, docContent = $('#doc-content'); + var ancParent = $(anchor.parent()); + if (ancParent.hasClass('memItemLeft') || + ancParent.hasClass('memtitle') || + ancParent.hasClass('fieldname') || + ancParent.hasClass('fieldtype') || + ancParent.is(':header')) + { + pos = ancParent.position().top; + } else if (anchor.position()) { + pos = anchor.position().top; + } + if (pos) { + var dist = Math.abs(Math.min( + pos-docContent.offset().top, + docContent[0].scrollHeight- + docContent.height()-docContent.scrollTop())); + animationInProgress=true; + docContent.animate({ + scrollTop: pos + docContent.scrollTop() - docContent.offset().top + },Math.max(50,Math.min(500,dist)),function(){ + if (updateLocation) window.location.href=aname; + animationInProgress=false; + }); + } +} + +function newNode(o, po, text, link, childrenData, lastNode) +{ + var node = new Object(); + node.children = Array(); + node.childrenData = childrenData; + node.depth = po.depth + 1; + node.relpath = po.relpath; + node.isLast = lastNode; + + node.li = document.createElement("li"); + po.getChildrenUL().appendChild(node.li); + node.parentNode = po; + + node.itemDiv = document.createElement("div"); + node.itemDiv.className = "item"; + + node.labelSpan = document.createElement("span"); + node.labelSpan.className = "label"; + + createIndent(o,node.itemDiv,node,0); + node.itemDiv.appendChild(node.labelSpan); + node.li.appendChild(node.itemDiv); + + var a = document.createElement("a"); + node.labelSpan.appendChild(a); + node.label = document.createTextNode(text); + node.expanded = false; + a.appendChild(node.label); + if (link) { + var url; + if (link.substring(0,1)=='^') { + url = link.substring(1); + link = url; + } else { + url = node.relpath+link; + } + a.className = stripPath(link.replace('#',':')); + if (link.indexOf('#')!=-1) { + var aname = '#'+link.split('#')[1]; + var srcPage = stripPath(pathName()); + var targetPage = stripPath(link.split('#')[0]); + a.href = srcPage!=targetPage ? url : "javascript:void(0)"; + a.onclick = function(){ + storeLink(link); + if (!$(a).parent().parent().hasClass('selected')) + { + $('.item').removeClass('selected'); + $('.item').removeAttr('id'); + $(a).parent().parent().addClass('selected'); + $(a).parent().parent().attr('id','selected'); + } + var anchor = $(aname); + gotoAnchor(anchor,aname,true); + }; + } else { + a.href = url; + a.onclick = function() { storeLink(link); } + } + } else { + if (childrenData != null) + { + a.className = "nolink"; + a.href = "javascript:void(0)"; + a.onclick = node.expandToggle.onclick; + } + } + + node.childrenUL = null; + node.getChildrenUL = function() { + if (!node.childrenUL) { + node.childrenUL = document.createElement("ul"); + node.childrenUL.className = "children_ul"; + node.childrenUL.style.display = "none"; + node.li.appendChild(node.childrenUL); + } + return node.childrenUL; + }; + + return node; +} + +function showRoot() +{ + var headerHeight = $("#top").height(); + var footerHeight = $("#nav-path").height(); + var windowHeight = $(window).height() - headerHeight - footerHeight; + (function (){ // retry until we can scroll to the selected item + try { + var navtree=$('#nav-tree'); + navtree.scrollTo('#selected',100,{offset:-windowHeight/2}); + } catch (err) { + setTimeout(arguments.callee, 0); + } + })(); +} + +function expandNode(o, node, imm, showRoot) +{ + if (node.childrenData && !node.expanded) { + if (typeof(node.childrenData)==='string') { + var varName = node.childrenData; + getScript(node.relpath+varName,function(){ + node.childrenData = getData(varName); + expandNode(o, node, imm, showRoot); + }, showRoot); + } else { + if (!node.childrenVisited) { + getNode(o, node); + } + $(node.getChildrenUL()).slideDown("fast"); + node.plus_img.innerHTML = arrowDown; + node.expanded = true; + } + } +} + +function glowEffect(n,duration) +{ + n.addClass('glow').delay(duration).queue(function(next){ + $(this).removeClass('glow');next(); + }); +} + +function highlightAnchor() +{ + var aname = hashUrl(); + var anchor = $(aname); + if (anchor.parent().attr('class')=='memItemLeft'){ + var rows = $('.memberdecls tr[class$="'+hashValue()+'"]'); + glowEffect(rows.children(),300); // member without details + } else if (anchor.parent().attr('class')=='fieldname'){ + glowEffect(anchor.parent().parent(),1000); // enum value + } else if (anchor.parent().attr('class')=='fieldtype'){ + glowEffect(anchor.parent().parent(),1000); // struct field + } else if (anchor.parent().is(":header")) { + glowEffect(anchor.parent(),1000); // section header + } else { + glowEffect(anchor.next(),1000); // normal member + } +} + +function selectAndHighlight(hash,n) +{ + var a; + if (hash) { + var link=stripPath(pathName())+':'+hash.substring(1); + a=$('.item a[class$="'+link+'"]'); + } + if (a && a.length) { + a.parent().parent().addClass('selected'); + a.parent().parent().attr('id','selected'); + highlightAnchor(); + } else if (n) { + $(n.itemDiv).addClass('selected'); + $(n.itemDiv).attr('id','selected'); + } + var topOffset=5; + if (typeof page_layout!=='undefined' && page_layout==1) { + topOffset+=$('#top').outerHeight(); + } + if ($('#nav-tree-contents .item:first').hasClass('selected')) { + topOffset+=25; + } + $('#nav-sync').css('top',topOffset+'px'); + showRoot(); +} + +function showNode(o, node, index, hash) +{ + if (node && node.childrenData) { + if (typeof(node.childrenData)==='string') { + var varName = node.childrenData; + getScript(node.relpath+varName,function(){ + node.childrenData = getData(varName); + showNode(o,node,index,hash); + },true); + } else { + if (!node.childrenVisited) { + getNode(o, node); + } + $(node.getChildrenUL()).css({'display':'block'}); + node.plus_img.innerHTML = arrowDown; + node.expanded = true; + var n = node.children[o.breadcrumbs[index]]; + if (index+11) hash = '#'+parts[1].replace(/[^\w\-]/g,''); + else hash=''; + } + if (hash.match(/^#l\d+$/)) { + var anchor=$('a[name='+hash.substring(1)+']'); + glowEffect(anchor.parent(),1000); // line number + hash=''; // strip line number anchors + } + var url=root+hash; + var i=-1; + while (NAVTREEINDEX[i+1]<=url) i++; + if (i==-1) { i=0; root=NAVTREE[0][1]; } // fallback: show index + if (navTreeSubIndices[i]) { + gotoNode(o,i,root,hash,relpath) + } else { + getScript(relpath+'navtreeindex'+i,function(){ + navTreeSubIndices[i] = eval('NAVTREEINDEX'+i); + if (navTreeSubIndices[i]) { + gotoNode(o,i,root,hash,relpath); + } + },true); + } +} + +function showSyncOff(n,relpath) +{ + n.html(''); +} + +function showSyncOn(n,relpath) +{ + n.html(''); +} + +function toggleSyncButton(relpath) +{ + var navSync = $('#nav-sync'); + if (navSync.hasClass('sync')) { + navSync.removeClass('sync'); + showSyncOff(navSync,relpath); + storeLink(stripPath2(pathName())+hashUrl()); + } else { + navSync.addClass('sync'); + showSyncOn(navSync,relpath); + deleteLink(); + } +} + +var loadTriggered = false; +var readyTriggered = false; +var loadObject,loadToRoot,loadUrl,loadRelPath; + +$(window).on('load',function(){ + if (readyTriggered) { // ready first + navTo(loadObject,loadToRoot,loadUrl,loadRelPath); + showRoot(); + } + loadTriggered=true; +}); + +function initNavTree(toroot,relpath) +{ + var o = new Object(); + o.toroot = toroot; + o.node = new Object(); + o.node.li = document.getElementById("nav-tree-contents"); + o.node.childrenData = NAVTREE; + o.node.children = new Array(); + o.node.childrenUL = document.createElement("ul"); + o.node.getChildrenUL = function() { return o.node.childrenUL; }; + o.node.li.appendChild(o.node.childrenUL); + o.node.depth = 0; + o.node.relpath = relpath; + o.node.expanded = false; + o.node.isLast = true; + o.node.plus_img = document.createElement("span"); + o.node.plus_img.className = 'arrow'; + o.node.plus_img.innerHTML = arrowRight; + + if (localStorageSupported()) { + var navSync = $('#nav-sync'); + if (cachedLink()) { + showSyncOff(navSync,relpath); + navSync.removeClass('sync'); + } else { + showSyncOn(navSync,relpath); + } + navSync.click(function(){ toggleSyncButton(relpath); }); + } + + if (loadTriggered) { // load before ready + navTo(o,toroot,hashUrl(),relpath); + showRoot(); + } else { // ready before load + loadObject = o; + loadToRoot = toroot; + loadUrl = hashUrl(); + loadRelPath = relpath; + readyTriggered=true; + } + + $(window).bind('hashchange', function(){ + if (window.location.hash && window.location.hash.length>1){ + var a; + if ($(location).attr('hash')){ + var clslink=stripPath(pathName())+':'+hashValue(); + a=$('.item a[class$="'+clslink.replace(/ + + + + + + +Topaz: src/tz/core/memory/allocators/null.hpp Source File + + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.0.0.2 +
+
C++20 Graphics Engine
+
+
+ + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
null.hpp
+
+
+
1#ifndef TOPAZ_CORE_ALLOCATORS_NULL_HPP
+
2#define TOPAZ_CORE_ALLOCATORS_NULL_HPP
+
3#include "tz/core/memory/memblk.hpp"
+
4#include "tz/core/types.hpp"
+
5
+
6namespace tz
+
7{
+ +
13 {
+
14 public:
+
15 constexpr null_allocator() = default;
+
16 constexpr tz::memblk allocate(std::size_t count) const{return tz::nullblk;}
+
17 constexpr void deallocate(tz::memblk blk) const{}
+
18 constexpr bool owns(tz::memblk blk) const{return blk == tz::nullblk;}
+
19 };
+
20
+
21 static_assert(tz::allocator<null_allocator>);
+
22}
+
23
+
24#endif // TOPAZ_CORE_ALLOCATORS_NULL_HPP
+
An allocator which always returns nullptr.
Definition: null.hpp:13
+
Definition: types.hpp:73
+
A non-owning, contiguous block of memory.
Definition: memblk.hpp:12
+
+
+ + + + diff --git a/open.png b/open.png new file mode 100644 index 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.0.0.2 +
+
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_2detail_2buffer_8hpp_source.html b/opengl_2detail_2buffer_8hpp_source.html new file mode 100644 index 0000000000..fd98c19ff1 --- /dev/null +++ b/opengl_2detail_2buffer_8hpp_source.html @@ -0,0 +1,235 @@ + + + + + + + +Topaz: src/tz/gl/impl/opengl/detail/buffer.hpp Source File + + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.0.0.2 +
+
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
+
static buffer null()
Create a buffer which acts as a null buffer, that is, no operations are valid on it.
Definition: buffer.cpp:115
+
void bind_to_resource_id(unsigned int shader_resource_id) const
Bind the buffer to a shader resource id.
Definition: buffer.cpp:108
+
void unmap()
Unmap the buffer.
Definition: buffer.cpp:89
+
void * map()
Map the buffer, receiving a CPU-visible pointer.
Definition: buffer.cpp:61
+
bool is_null() const
Query as to whether the buffer is a null buffer.
Definition: buffer.cpp:120
+
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
+
void basic_bind() const
Bind without a resource id (i.e you are an Index buffer).
Definition: buffer.cpp:96
+ +
void copy(const buffer &source, buffer &destination)
Copy the entire data store of a buffer to another.
Definition: buffer.cpp:149
+
buffer_target
Specifies the target to which the buffer is bound for its data store.
Definition: buffer.hpp:13
+
buffer clone_resized(const buffer &buf, std::size_t new_size)
buffers are not resizeable.
Definition: buffer.cpp:157
+
buffer_residency
Specifies the expected behaviour of the data store contents.
Definition: buffer.hpp:31
+ + + + + + + +
Specifies creation flags for a buffer.
Definition: buffer.hpp:43
+
buffer_target target
Specifies the target to which the buffer is bound. Only one buffer can be bound to a target at a time...
Definition: buffer.hpp:45
+
buffer_residency residency
Describes the usage and behaviour of the buffer's data store.
Definition: buffer.hpp:47
+
std::size_t size_bytes
Specifies the size of the buffer, in bytes. buffers cannot be resized.
Definition: buffer.hpp:49
+
+
+ + + + diff --git a/opengl_2detail_2framebuffer_8hpp_source.html b/opengl_2detail_2framebuffer_8hpp_source.html new file mode 100644 index 0000000000..c8d9758132 --- /dev/null +++ b/opengl_2detail_2framebuffer_8hpp_source.html @@ -0,0 +1,191 @@ + + + + + + + +Topaz: src/tz/gl/impl/opengl/detail/framebuffer.hpp Source File + + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.0.0.2 +
+
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
+ +
std::variant< const image *, const render_buffer * > framebuffer_texture
Describes a reference to either an image or renderbuffer.
Definition: framebuffer.hpp:17
+
Specifies creation flags for a framebuffer.
Definition: framebuffer.hpp:23
+
tz::basic_list< framebuffer_texture > colour_attachments
List of colour attachments in-order. Default empty.
Definition: framebuffer.hpp:29
+
std::optional< framebuffer_texture > maybe_depth_attachment
Depth attachment, if one exists. Default nullopt.
Definition: framebuffer.hpp:27
+
tz::vec2ui dimensions
{width, height}, in pixels.
Definition: framebuffer.hpp:25
+
+
+ + + + diff --git a/opengl_2detail_2image_8hpp_source.html b/opengl_2detail_2image_8hpp_source.html new file mode 100644 index 0000000000..cddbc0bd3a --- /dev/null +++ b/opengl_2detail_2image_8hpp_source.html @@ -0,0 +1,203 @@ + + + + + + + +Topaz: src/tz/gl/impl/opengl/detail/image.hpp Source File + + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.0.0.2 +
+
C++20 Graphics Engine
+
+
+ + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
image.hpp
+
+
+
1#ifndef TOPAZ_GL_IMPL_BACKEND_OGL2_IMAGE_HPP
+
2#define TOPAZ_GL_IMPL_BACKEND_OGL2_IMAGE_HPP
+
3#if TZ_OGL
+
4#include "tz/core/data/vector.hpp"
+
5#include "tz/gl/impl/opengl/detail/tz_opengl.hpp"
+
6#include "tz/gl/impl/opengl/detail/sampler.hpp"
+
7#include "tz/gl/impl/opengl/detail/image_format.hpp"
+
8#include <optional>
+
9
+
10namespace tz::gl::ogl2
+
11{
+ +
17 {
+
19 image_format format;
+ + +
24 };
+
25
+
30 class image
+
31 {
+
32 public:
+
34 using bindless_handle = GLuint64;
+
39 image(image_info info);
+
40 image(const image& copy) = delete;
+
41 image(image&& move);
+
42 ~image();
+
43 image& operator=(const image& rhs) = delete;
+
44 image& operator=(image&& rhs);
+
45
+
49 image_format get_format() const;
+ +
57 const sampler& get_sampler() const;
+
62 void set_data(std::span<const std::byte> texture_data);
+
67 void make_bindless();
+
72 bool is_bindless() const;
+ +
79
+
80 using NativeType = GLuint;
+
81 NativeType native() const;
+
82
+
83 std::string debug_get_name() const;
+
84 void debug_set_name(std::string name);
+
85
+
90 static image null();
+
94 bool is_null() const;
+
95 private:
+
96 image();
+
97
+
98 GLuint img;
+
99 image_info info;
+
100 std::optional<bindless_handle> maybe_bindless_handle;
+
101 std::string debug_name = "";
+
102 };
+
103
+
104 namespace image_helper
+
105 {
+
106 void copy(const image& source, image& destination);
+
107 image clone_resized(const image& image, tz::vec2ui new_size);
+
108 }
+
109}
+
110
+
111#endif // TZ_OGL
+
112#endif // TOPAZ_GL_IMPL_BACKEND_OGL2_IMAGE_HPP
+
Documentation for OpenGL images.
Definition: image.hpp:31
+
void make_bindless()
Make the image bindless, allowing for an alternate way to reference the image as a shader resource,...
Definition: image.cpp:73
+
image_format get_format() const
Definition: image.cpp:51
+
tz::vec2ui get_dimensions() const
Definition: image.cpp:56
+
static image null()
Create an image which acts as a null image, that is, no operations are valid on it.
Definition: image.cpp:111
+
void set_data(std::span< const std::byte > texture_data)
Set the image data.
Definition: image.cpp:66
+
bindless_handle get_bindless_handle() const
Retrieves the bindless texture handle for this bindless image.
Definition: image.cpp:87
+
GLuint64 bindless_handle
Opaque handle for a bindless texture.
Definition: image.hpp:34
+
const sampler & get_sampler() const
Retrieves the state specifying how the image is sampled in a shader.
Definition: image.cpp:61
+
bool is_bindless() const
Query as to whether this image is bindless.
Definition: image.cpp:82
+
bool is_null() const
Query as to whether the image is a null image.
Definition: image.cpp:116
+ +
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/opengl_2detail_2sampler_8hpp_source.html b/opengl_2detail_2sampler_8hpp_source.html new file mode 100644 index 0000000000..69106e00bd --- /dev/null +++ b/opengl_2detail_2sampler_8hpp_source.html @@ -0,0 +1,170 @@ + + + + + + + +Topaz: src/tz/gl/impl/opengl/detail/sampler.hpp Source File + + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.0.0.2 +
+
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
+
39 struct sampler
+
40 {
+ + +
45
+ + + +
52 };
+
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..7d321ec6e6 --- /dev/null +++ b/output_8hpp_source.html @@ -0,0 +1,195 @@ + + + + + + + +Topaz: src/tz/gl/output.hpp Source File + + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.0.0.2 +
+
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:108
+
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..741ec2e134 --- /dev/null +++ b/physical__device_8hpp_source.html @@ -0,0 +1,263 @@ + + + + + + + +Topaz: src/tz/gl/impl/vulkan/detail/hardware/physical_device.hpp Source File + + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.0.0.2 +
+
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);
+ + + + + +
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
+ +
158
+
159 /*
+
160 * @ingroup tz_gl_vk
+
161 */
+ + +
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..af966c145d --- /dev/null +++ b/pipeline__layout_8hpp_source.html @@ -0,0 +1,169 @@ + + + + + + + +Topaz: src/tz/gl/impl/vulkan/detail/pipeline_layout.hpp Source File + + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.0.0.2 +
+
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/polymorphic__list_8hpp_source.html b/polymorphic__list_8hpp_source.html new file mode 100644 index 0000000000..92d4faf911 --- /dev/null +++ b/polymorphic__list_8hpp_source.html @@ -0,0 +1,188 @@ + + + + + + + +Topaz: src/tz/core/data/polymorphic_list.hpp Source File + + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.0.0.2 +
+
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/profile_8hpp_source.html b/profile_8hpp_source.html new file mode 100644 index 0000000000..09af76de2f --- /dev/null +++ b/profile_8hpp_source.html @@ -0,0 +1,151 @@ + + + + + + + +Topaz: src/tz/core/profile.hpp Source File + + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.0.0.2 +
+
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/queue_8hpp_source.html b/queue_8hpp_source.html new file mode 100644 index 0000000000..7b065631d4 --- /dev/null +++ b/queue_8hpp_source.html @@ -0,0 +1,283 @@ + + + + + + + +Topaz: src/tz/gl/impl/vulkan/detail/hardware/queue.hpp Source File + + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.0.0.2 +
+
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 {
+ + + + + + +
117 };
+
118
+ +
123 {
+ + + +
130 };
+
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:67
+
Synchronisation primitive which is not interactable on the host and which has two states:
Definition: semaphore.hpp:22
+
Represents storage for vulkan commands, such as draw calls, binds, transfers etc.....
Definition: command.hpp:427
+
Synchronisation primitive which is useful to detect completion of a GPU operation,...
Definition: fence.hpp:26
+
Logical interface to an existing PhysicalDevice.
Definition: logical_device.hpp:95
+
Swapchains are infrastructures which represent GPU images we will render to before they can be presen...
Definition: swapchain.hpp:32
+
Represents a single hardware Queue.
Definition: queue.hpp:70
+
PresentResult
Describes the result of a presentation request. See Queue::present.
Definition: queue.hpp:104
+ + + + + + +
void submit(SubmitInfo submit_info)
Submit the queue, including any associated command buffers and perform necessary synchronisation.
Definition: queue.cpp:35
+
PresentResult present(PresentInfo present_info)
Queue an image for presentation.
Definition: queue.cpp:130
+
PipelineStage
Specifies a certain stage (point of execution) during the invocation of a graphics pipeline.
Definition: queue.hpp:21
+ + + + + + + + + + + + + + + +
Specifies information about a present request issued to a Queue.
Definition: queue.hpp:123
+
const Swapchain * swapchain
Pointer to a swapchain from which an image will be sourced. This must not be nullptr.
Definition: queue.hpp:127
+
tz::basic_list< const BinarySemaphore * > wait_semaphores
List of wait semaphores. The present request will not be issued until all of these semaphores are sig...
Definition: queue.hpp:125
+
std::uint32_t swapchain_image_index
Index to the swapchain's images which will be presented to the surface. The index must have value suc...
Definition: queue.hpp:129
+ + +
const BinarySemaphore * wait_semaphore
Semaphore which will be waited on.
Definition: queue.hpp:80
+
PipelineStage wait_stage
Information about when specifically the semaphore will be waited on.
Definition: queue.hpp:82
+
Specifies information about a submission of GPU work to a Queue.
Definition: queue.hpp:76
+
const Fence * execution_complete_fence
Optional fence which is signalled once all command buffers have finished execution....
Definition: queue.hpp:99
+
tz::basic_list< WaitInfo > waits
List of wait semaphores. Command buffers for this submission batch will not begin execution until the...
Definition: queue.hpp:95
+
tz::basic_list< SignalInfo > signals
List of signal semaphores. Once the command buffers associated with this submission have completed ex...
Definition: queue.hpp:97
+
tz::basic_list< const CommandBuffer * > command_buffers
List of command buffers to submit.
Definition: queue.hpp:93
+
Definition: queue.hpp:59
+
+
+ + + + diff --git a/render__pass_8hpp_source.html b/render__pass_8hpp_source.html new file mode 100644 index 0000000000..55e24e3ea2 --- /dev/null +++ b/render__pass_8hpp_source.html @@ -0,0 +1,360 @@ + + + + + + + +Topaz: src/tz/gl/impl/vulkan/detail/render_pass.hpp Source File + + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.0.0.2 +
+
C++20 Graphics Engine
+
+
+ + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
render_pass.hpp
+
+
+
1#ifndef TOPAZ_GL_IMPL_BACKEND_VK2_RENDER_PASS_HPP
+
2#define TOPAZ_GL_IMPL_BACKEND_VK2_RENDER_PASS_HPP
+
3#if TZ_VULKAN
+
4#include "tz/gl/impl/vulkan/detail/logical_device.hpp"
+
5#include "tz/gl/impl/vulkan/detail/image.hpp"
+
6
+
7namespace tz::gl::vk2
+
8{
+
13 enum class LoadOp
+
14 {
+
16 Load = VK_ATTACHMENT_LOAD_OP_LOAD,
+
18 Clear = VK_ATTACHMENT_LOAD_OP_CLEAR,
+
20 DontCare = VK_ATTACHMENT_LOAD_OP_DONT_CARE
+
21 };
+
22
+
27 enum class StoreOp
+
28 {
+
30 Store = VK_ATTACHMENT_STORE_OP_STORE,
+
32 DontCare = VK_ATTACHMENT_STORE_OP_DONT_CARE
+
33 };
+
34
+
39 enum class PipelineContext
+
40 {
+
41 graphics = VK_PIPELINE_BIND_POINT_GRAPHICS,
+
42 compute = VK_PIPELINE_BIND_POINT_COMPUTE,
+
43 };
+
44
+
45
+
50 enum class AccessFlag
+
51 {
+
53 NoneNeeded = VK_ACCESS_NONE_KHR,
+
55 AllReads = VK_ACCESS_MEMORY_READ_BIT,
+
57 AllWrites = VK_ACCESS_MEMORY_WRITE_BIT,
+
58
+
60 IndirectBufferRead = VK_ACCESS_INDIRECT_COMMAND_READ_BIT,
+
62 IndexBufferRead = VK_ACCESS_INDEX_READ_BIT,
+
64 VertexBufferRead = VK_ACCESS_VERTEX_ATTRIBUTE_READ_BIT,
+
66 UniformBufferRead = VK_ACCESS_UNIFORM_READ_BIT,
+
67
+
69 InputAttachmentRead = VK_ACCESS_INPUT_ATTACHMENT_READ_BIT,
+
71 ShaderResourceRead = VK_ACCESS_SHADER_READ_BIT,
+
73 ShaderResourceWrite = VK_ACCESS_SHADER_WRITE_BIT,
+
75 ColourAttachmentRead = VK_ACCESS_COLOR_ATTACHMENT_READ_BIT,
+
77 ColourAttachmentWrite = VK_ACCESS_COLOR_ATTACHMENT_WRITE_BIT,
+
79 DepthStencilAttachmentRead = VK_ACCESS_DEPTH_STENCIL_ATTACHMENT_READ_BIT,
+
81 DepthStencilAttachmentWrite = VK_ACCESS_DEPTH_STENCIL_ATTACHMENT_WRITE_BIT,
+
83 TransferOperationRead = VK_ACCESS_TRANSFER_READ_BIT,
+
85 TransferOperationWrite = VK_ACCESS_TRANSFER_WRITE_BIT,
+
87 HostRead = VK_ACCESS_HOST_READ_BIT,
+
89 HostWrite = VK_ACCESS_HOST_WRITE_BIT,
+
90
+
91 };
+
92
+
93 using AccessFlagField = tz::enum_field<AccessFlag>;
+
94
+ +
100 {
+ +
104 SampleCount sample_count = SampleCount::One;
+ + + + + + +
117
+
118 bool operator==(const Attachment& rhs) const = default;
+
119 };
+
120
+ +
128 {
+
130 std::size_t total_input_attachment_count() const;
+
132 std::size_t total_colour_attachment_count() const;
+
134 bool has_valid_device() const;
+
136 bool values_make_sense() const;
+
137
+ +
142 {
+
144 std::uint32_t attachment_idx;
+ +
147 };
+
148
+ +
153 {
+
154 AttachmentReference attachment_ref;
+
155 ImageAspectFlags aspect_flags;
+
156 };
+
157
+
163 struct Subpass
+
164 {
+
166 PipelineContext context = PipelineContext::graphics;
+ + +
172 std::optional<AttachmentReference> depth_stencil_attachment = std::nullopt;
+
173 };
+
174
+ + + +
181 };
+
182
+ +
188 {
+
189 public:
+ +
194 RenderPass(const RenderPass& copy) = delete;
+
195 RenderPass(RenderPass&& move);
+
196 ~RenderPass();
+
197
+
198 RenderPass& operator=(const RenderPass& rhs) = delete;
+
199 RenderPass& operator=(RenderPass&& rhs);
+
200
+
201 const LogicalDevice& get_device() const;
+
202 const RenderPassInfo& get_info() const;
+
203
+
204 static RenderPass null();
+
205 bool is_null() const;
+
206
+
207 using NativeType = VkRenderPass;
+
208 NativeType native() const;
+
209 private:
+
210 RenderPass();
+
211
+
212 VkRenderPass pass;
+
213 RenderPassInfo info;
+
214 };
+
215
+ +
221 {
+
222 public:
+
223 SubpassBuilder() = default;
+ + + +
239
+ + +
253 const RenderPassInfo::Subpass& build() const;
+
254 private:
+ +
256 };
+
257
+ +
263 {
+
264 public:
+
265 RenderPassBuilder() = default;
+ + +
276
+
281 const LogicalDevice* get_device() const;
+
286 void set_device(const LogicalDevice& device);
+
287
+
292 RenderPass build() const;
+
293 private:
+
294 RenderPassInfo info;
+
295 };
+
296
+
297}
+
298
+
299#endif // TZ_VULKAN
+
300#endif // TOPAZ_GL_IMPL_BACKEND_VK2_RENDER_PASS_HPP
+
Custom list, feature subset of std::vector.
Definition: basic_list.hpp:21
+
Container for enum values, useful for vintage bitfield types.
Definition: enum_field.hpp:16
+
Implements tz::gl::device_type.
Definition: device.hpp:67
+
Logical interface to an existing PhysicalDevice.
Definition: logical_device.hpp:95
+
Helper class to create a RenderPass.
Definition: render_pass.hpp:263
+
const LogicalDevice * get_device() const
Retrieve the LogicalDevice which will be used to construct the RenderPass.
Definition: render_pass.cpp:321
+
RenderPassBuilder & with_subpass(RenderPassInfo::Subpass subpass)
Add a new subpass to the render pass.
Definition: render_pass.cpp:315
+
RenderPassBuilder & with_attachment(Attachment attachment)
Add a new attachment to the pass.
Definition: render_pass.cpp:309
+
void set_device(const LogicalDevice &device)
Set which LogicalDevice will be used to construct the RenderPass.
Definition: render_pass.cpp:326
+
RenderPass build() const
Create a new RenderPass based upon this builder.
Definition: render_pass.cpp:331
+
Represents a collection of attachments and subpasses and describes how the attachments are used throu...
Definition: render_pass.hpp:188
+
Helper class to create a RenderPassInfo::Subpass.
Definition: render_pass.hpp:221
+
const RenderPassInfo::Subpass & build() const
Return a subpass info structure based upon this builder.
Definition: render_pass.cpp:304
+
SubpassBuilder & with_input_attachment(RenderPassInfo::InputAttachmentReference input_attachment)
Have the subpass reference an existing attachment as an input attachment.
Definition: render_pass.cpp:276
+
SubpassBuilder & with_colour_attachment(RenderPassInfo::AttachmentReference colour_attachment)
Have the subpass reference an existing attachment as a colour attachment.
Definition: render_pass.cpp:282
+
void set_pipeline_context(PipelineContext context)
Specify how the subpass binds to the graphics pipeline.
Definition: render_pass.cpp:294
+
const PipelineContext & get_pipeline_context() const
Query what the current bind point to the graphics pipeline is.
Definition: render_pass.cpp:299
+
SubpassBuilder & with_depth_stencil_attachment(RenderPassInfo::AttachmentReference depth_stencil_attachment)
Have the subpass reference an existing attachment as the depth-stencil attachment.
Definition: render_pass.cpp:288
+
PipelineContext
Specifies which pipeline type a RenderPass subpass is expected to bind to.
Definition: render_pass.hpp:40
+
LoadOp
Represents how some resource is loaded.
Definition: render_pass.hpp:14
+
AccessFlag
Specifies specific events during which a memory dependency takes place.
Definition: render_pass.hpp:51
+
StoreOp
Represents how some resource is stored.
Definition: render_pass.hpp:28
+ + + + + + + + + + + + + + + + + + + + + + + +
ImageLayout
Images are always in a layout.
Definition: image.hpp:20
+
SampleCount
Specifies the number of samples stored per image pixel.
Definition: image.hpp:44
+
image_format
Various image formats are supported.
Definition: image_format.hpp:35
+ + +
Specifies some data about an attachment.
Definition: render_pass.hpp:100
+
SampleCount sample_count
Specifies the number of samples per pixel. See SampleCount.
Definition: render_pass.hpp:104
+
image_format format
Specifies the format of the attachment. When used in a RenderPass, its LogicalDevice must support thi...
Definition: render_pass.hpp:102
+
StoreOp stencil_store
Specifies store operation for stencil when it is last used at the end of the subpass....
Definition: render_pass.hpp:112
+
LoadOp colour_depth_load
Specifies load operation for colour and depth when it is first used at the beginning of the subpass....
Definition: render_pass.hpp:106
+
StoreOp colour_depth_store
Specifies store operation for colour and depth when it is last used at the end of the subpass....
Definition: render_pass.hpp:108
+
LoadOp stencil_load
Specifies load operation for stencil when it is first used at the beginning of the subpass....
Definition: render_pass.hpp:110
+
ImageLayout final_layout
Specifies what the layout the attached image will be in when the render pass ends.
Definition: render_pass.hpp:116
+
ImageLayout initial_layout
Specifies what the layout the attached image will be in when render pass begins.
Definition: render_pass.hpp:114
+
Structure which specifies a reference to an existing RenderPassInfo attachment, and the layout it sho...
Definition: render_pass.hpp:142
+
ImageLayout current_layout
Specifies the layout which the attachment will be in during the subpass.
Definition: render_pass.hpp:146
+
std::uint32_t attachment_idx
Reference to the attachment such that we refer to RenderPassInfo::attachments[attachment_idx]....
Definition: render_pass.hpp:144
+
A specialised AttachmentReference which is suitable to reference input attachments.
Definition: render_pass.hpp:153
+
Specifies information about a RenderPass subpass.
Definition: render_pass.hpp:164
+
tz::basic_list< InputAttachmentReference > input_attachments
List of all attachments which will be input attachments during this subpass.
Definition: render_pass.hpp:168
+
PipelineContext context
Specifies how this subpass binds to the graphics pipeline.
Definition: render_pass.hpp:166
+
tz::basic_list< AttachmentReference > colour_attachments
List of all attachments which will be colour attachments during this subpass.
Definition: render_pass.hpp:170
+
std::optional< AttachmentReference > depth_stencil_attachment
Optional reference to an attachment which will be the depth-stencil attachment during this subpass.
Definition: render_pass.hpp:172
+
Specifies creation flags for a RenderPass.
Definition: render_pass.hpp:128
+
std::size_t total_input_attachment_count() const
Retrieve the total number of times an input attachment is referenced throughout all subpasses.
Definition: render_pass.cpp:8
+
const LogicalDevice * logical_device
LogicalDevice which will be used to create the RenderPass. It must point to a valid device.
Definition: render_pass.hpp:180
+
tz::basic_list< Subpass > subpasses
List of all subpasses, in order.
Definition: render_pass.hpp:178
+
std::size_t total_colour_attachment_count() const
Retrieve the total number of times a colour attachment is refererenced throughout all subpasses.
Definition: render_pass.cpp:17
+
bool values_make_sense() const
Iterate through the subpasses and ensure they reference attachments which exist. If this returns fals...
Definition: render_pass.cpp:31
+
bool has_valid_device() const
Query as to whether this->logical_device is a non-nullptr and non-null LogicalDevice which is suitabl...
Definition: render_pass.cpp:26
+
tz::basic_list< Attachment > attachments
List of all attachments. These attachments are referenced throughout the subpasses.
Definition: render_pass.hpp:176
+
+
+ + + + diff --git a/renderbuffer_8hpp_source.html b/renderbuffer_8hpp_source.html new file mode 100644 index 0000000000..54b4f2442e --- /dev/null +++ b/renderbuffer_8hpp_source.html @@ -0,0 +1,171 @@ + + + + + + + +Topaz: src/tz/gl/impl/opengl/detail/renderbuffer.hpp Source File + + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.0.0.2 +
+
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
+ +
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..5c0777fcd5 --- /dev/null +++ b/renderer2_8hpp_source.html @@ -0,0 +1,394 @@ + + + + + + + +Topaz: src/tz/gl/impl/vulkan/renderer2.hpp Source File + + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.0.0.2 +
+
C++20 Graphics Engine
+
+
+ + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
renderer2.hpp
+
+
+
1#ifndef TZ_GL_IMPL_VULKAN_RENDERER2_HPP
+
2#define TZ_GL_IMPL_VULKAN_RENDERER2_HPP
+
3#if TZ_VULKAN
+
4#include "tz/gl/api/renderer.hpp"
+
5#include "tz/core/memory/maybe_owned_ptr.hpp"
+
6#include "tz/gl/impl/vulkan/component.hpp"
+
7#include "tz/gl/impl/common/renderer.hpp"
+
8#include <functional>
+
9
+
10#include "tz/gl/impl/vulkan/detail/descriptors.hpp"
+
11#include "tz/gl/impl/vulkan/detail/command.hpp"
+
12#include "tz/gl/impl/vulkan/detail/fence.hpp"
+
13#include "tz/gl/impl/vulkan/detail/semaphore.hpp"
+
14
+
15namespace tz::gl
+
16{
+
17 // to encapsulate the whole state of a vulkan renderer leads to *alot* of code.
+
18 // to make this alot more palatable, each "major feature" of a vulkan renderer is its own class, and they form an inheritance branch leading to the fully-featured renderer_vulkan2.
+
19 // i.e renderer_resource_manager -> renderer_descriptor_manager -> ... -> renderer_vulkan2
+
20 // each of these "major feature" classes are unaware of the functionality of the next-level in the chain. this means that the classes get more and more access to things.
+
21 // note: this also means that the implementation of renderer_type is done piecemeal - as we use public inheritance, eventually renderer_vulkan2 will inherit all the api impls from its lower-level components.
+
22
+ +
24 {
+
25 protected:
+
26 // devices have this concept of renderer handles, but they are not guaranteed to be unique (e.g if renderer handle 2 is deleted and a new renderer is created, that will also have handle 2.)
+
27 // this is a uid which will uniquely identify ths current renderer. renderers need to have their own identity because other manager classes (mainly device_vulkan2) does bookkeeping for renderers and needs to know who is who.
+
28 static unsigned int uid_counter;
+
29 unsigned int uid = uid_counter++;
+
30 public:
+
31 unsigned int vk_get_uid() const{return this->uid;}
+
32 };
+
33
+
34 // represents topaz-level resource management.
+
35 // the majority of this code is not specific to vulkan, however setting up dynamic-resource-spans is.
+
36 // possible todo: bring most of this class out into a common impl for opengl?
+ +
38 {
+
39 public:
+ + + +
43 renderer_resource_manager() = default;
+
44 renderer_resource_manager& operator=(const renderer_resource_manager& copy) = delete;
+
45 renderer_resource_manager& operator=(renderer_resource_manager&& move) = default;
+
46
+
47 unsigned int resource_count() const;
+
48 const iresource* get_resource(tz::gl::resource_handle rh) const;
+
49 iresource* get_resource(tz::gl::resource_handle rh);
+
50 const icomponent* get_component(tz::gl::resource_handle rh) const;
+
51 icomponent* get_component(tz::gl::resource_handle rh);
+
52 protected:
+
53 std::span<vk2::ImageView> get_image_resource_views();
+
54 std::span<vk2::Sampler> get_image_resource_samplers();
+
55 void notify_image_dirty(tz::gl::resource_handle rh);
+
56 void reseat_resource(tz::gl::renderer_edit::resource_reference resref);
+
57 private:
+
58 void patch_resource_references(const tz::gl::renderer_info& rinfo);
+
59 void setup_dynamic_resource_spans();
+
60 void populate_image_resource_views();
+
61 void populate_image_resource_samplers();
+
62 static vk2::SamplerInfo make_fitting_sampler(const iresource& res);
+ +
64 std::vector<tz::maybe_owned_ptr<icomponent>> components = {};
+
65 // one entry per component - symmetrical to this->components. if component is a buffer though, the view is vk2::ImageView::null()
+
66 std::vector<vk2::ImageView> image_resource_views = {};
+
67 std::vector<vk2::Sampler> image_resource_samplers = {};
+
68 };
+
69
+
70 // responsible for making sure our topaz-level resources are represented as descriptor sets correctly.
+ +
72 {
+
73 public:
+ + + + +
78 renderer_descriptor_manager& operator=(const renderer_descriptor_manager& copy) = delete;
+ +
80 protected:
+
81 const vk2::DescriptorLayout& get_descriptor_layout() const;
+
82 std::span<const vk2::DescriptorSet> get_descriptor_sets() const;
+
83 // descriptor manager is empty if there are no descriptors to bind.
+
84 bool empty() const;
+
85 void write_descriptors(const tz::gl::render_state& state);
+
86 private:
+
87 void deduce_descriptor_layout(const tz::gl::render_state& state);
+
88 void allocate_descriptors();
+
89 vk2::DescriptorData descriptors = {};
+
90 };
+
91
+ +
93 {
+
94 public:
+ +
96 renderer_output_manager() = default;
+
97
+ +
99 {
+
100 std::vector<vk2::ImageView> colour_attachments = {};
+
101 vk2::ImageView depth_attachment = vk2::ImageView::null();
+
102 };
+
103 const ioutput* get_output() const;
+
104 protected:
+
105 ioutput* get_output_mutable();
+
106 std::span<render_target_t> get_render_targets();
+
107 tz::vec2ui get_render_target_dimensions() const;
+
108 bool targets_window() const;
+
109 void populate_render_targets(const tz::gl::renderer_options& options);
+
110 private:
+
111 std::unique_ptr<tz::gl::ioutput> output = nullptr;
+
112 std::vector<render_target_t> render_targets = {};
+
113 };
+
114
+ +
116 {
+
117 public:
+ +
119 renderer_pipeline(const renderer_pipeline& copy) = delete;
+
120 renderer_pipeline(renderer_pipeline&& move) = default;
+
121 renderer_pipeline() = default;
+
122 renderer_pipeline& operator=(const renderer_pipeline& copy) = delete;
+
123 renderer_pipeline& operator=(renderer_pipeline&& move) = default;
+
124 enum class pipeline_type_t
+
125 {
+
126 graphics,
+
127 compute
+
128 };
+
129 protected:
+
130 pipeline_type_t get_pipeline_type() const;
+
131 const vk2::Pipeline& get_pipeline() const;
+
132 const vk2::PipelineLayout& get_pipeline_layout() const;
+
133 void update_pipeline(const tz::gl::render_state& state);
+
134 private:
+
135 struct pipeline_invariant_config_t
+
136 {
+
137 bool depth_testing = false;
+
138 bool alpha_blending = false;
+
139 pipeline_type_t type = pipeline_type_t::graphics;
+
140 // 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.
+
141 bool valid = true;
+
142 static pipeline_invariant_config_t null(){return {.valid = false};}
+
143 };
+
144 void deduce_pipeline_config(const tz::gl::renderer_info& rinfo);
+
145 void deduce_pipeline_layout();
+
146 void create_shader(const tz::gl::renderer_info& rinfo);
+
147 vk2::Shader shader = vk2::Shader::null();
+
148 vk2::PipelineData pipeline = {};
+
149 vk2::PipelineCache pipeline_cache = vk2::PipelineCache::null();
+
150 // depends purely on renderer options so this should never change.
+
151 pipeline_invariant_config_t pipeline_config = pipeline_invariant_config_t::null();
+
152 };
+
153
+ +
155 {
+
156 public:
+ + + +
160 // potential bug: command buffers retrieved from a move may have pool owner reference that is invalid?
+ +
162 renderer_command_processor& operator=(const renderer_command_processor& copy) = delete;
+
163 renderer_command_processor& operator=(renderer_command_processor&& move) = default;
+
164 renderer_command_processor() = default;
+
165
+
166 enum class command_type
+
167 {
+
168 work,
+
169 scratch,
+
170 both
+
171 };
+
172 protected:
+
173 void do_scratch_work(std::function<void(vk2::CommandBufferRecording&)> record_commands);
+
174 void do_frame();
+
175 void set_work_commands(std::function<void(vk2::CommandBufferRecording&, unsigned int)> work_record_commands);
+
176 void record_commands(const tz::gl::render_state& state, const tz::gl::renderer_options& options, std::string label);
+
177 void scratch_initialise_static_resources();
+
178 void queue_resource_write(tz::gl::renderer_edit::resource_write rwrite);
+
179 void submit_resource_writes();
+
180 void reset_resource_write_buffers();
+
181 private:
+
182 void record_render_commands(const tz::gl::render_state& state, const tz::gl::renderer_options& options, std::string label);
+
183 void record_compute_commands(const tz::gl::render_state& state, const tz::gl::renderer_options& options, std::string label);
+
184 void allocate_commands(command_type t = command_type::both);
+
185 void free_commands(command_type t = command_type::both);
+
186 void do_static_resource_transfers(std::span<vk2::Buffer> resource_staging_buffers);
+
187
+
188 std::span<vk2::CommandBuffer> work_command_buffers();
+
189 vk2::CommandBuffer& scratch_command_buffer();
+
190 bool render_wait_enabled = false;
+
191 bool no_present_enabled = false;
+
192 std::vector<vk2::CommandPool::AllocationResult> command_allocations = {};
+
193 vk2::Fence render_wait_fence = vk2::Fence::null();
+
194 vk2::BinarySemaphore present_sync_semaphore = vk2::BinarySemaphore::null();
+
195 std::vector<vk2::Buffer> pending_resource_write_staging_buffers = {};
+
196 };
+
197
+ +
199 {
+
200 public:
+ +
202 renderer_vulkan2(const renderer_vulkan2& copy) = delete;
+
203 renderer_vulkan2(renderer_vulkan2&& move) = default;
+ +
205 renderer_vulkan2& operator=(const renderer_vulkan2& copy) = delete;
+
206 renderer_vulkan2& operator=(renderer_vulkan2&& move) = default;
+
207 // NYI
+
208 const tz::gl::renderer_options& get_options() const;
+
209 const tz::gl::render_state& get_state() const;
+
210 void render();
+
211 void edit(tz::gl::renderer_edit_request req);
+
212 void dbgui();
+
213 // NYI
+
214 std::string_view debug_get_name() const;
+
215
+
216 // Satisfies tz::nullable
+
217 static renderer_vulkan2 null();
+
218 bool is_null() const;
+
219 private:
+
220 renderer_vulkan2() = default;
+
221 bool check_and_handle_resize();
+
222 void do_resize();
+
223
+
224 tz::gl::renderer_options options = {};
+
225 tz::gl::render_state state = {};
+
226 tz::vec2ui window_cache_dims = {};
+
227 bool null_flag = true;
+
228 std::string debug_name = "Untitled Renderer";
+
229 };
+ +
231}
+
232
+
233#endif // TZ_VULKAN
+
234#endif // TZ_GL_IMPL_VULKAN_RENDERER2_HPP
+ +
Definition: renderer.hpp:13
+
Definition: component.hpp:10
+
Definition: output.hpp:43
+
Interface for a renderer or Processor resource.
Definition: resource.hpp:82
+
Definition: renderer2.hpp:155
+
Definition: renderer2.hpp:72
+
Helper struct which the user can use to specify which inputs, resources they want and where they want...
Definition: renderer.hpp:112
+
Definition: renderer2.hpp:93
+
Definition: renderer2.hpp:116
+
Definition: renderer2.hpp:38
+
Definition: renderer2.hpp:199
+
Definition: resource.hpp:13
+
Synchronisation primitive which is not interactable on the host and which has two states:
Definition: semaphore.hpp:22
+
Represents storage for vulkan commands, such as draw calls, binds, transfers etc.....
Definition: command.hpp:427
+
Represents the full duration of the recording process of an existing CommandBuffer.
Definition: command.hpp:292
+
Specifies the types of resources that will be accessed by a graphics or compute pipeline via a Shader...
Definition: descriptors.hpp:86
+
Synchronisation primitive which is useful to detect completion of a GPU operation,...
Definition: fence.hpp:26
+
Definition: image_view.hpp:18
+
Definition: graphics_pipeline.hpp:13
+
Definition: graphics_pipeline.hpp:125
+
Represents an interface between shader stages and shader resources in terms of the layout of a group ...
Definition: pipeline_layout.hpp:25
+
Represents a Shader program.
Definition: shader.hpp:94
+ +
Definition: maybe_owned_ptr.hpp:9
+ +
Named requirement for a renderer.
Definition: renderer.hpp:333
+
std::vector< renderer_edit::variant > renderer_edit_request
Represents an edit to an existing renderer.
Definition: renderer.hpp:291
+ +
Stores renderer-specific state, which drives the behaviour of the rendering.
Definition: renderer.hpp:72
+
Definition: renderer.hpp:251
+
Definition: renderer.hpp:244
+ +
Definition: renderer2.hpp:24
+
Definition: descriptors.hpp:483
+
Definition: graphics_pipeline.hpp:147
+
Specifies creation flags for a Sampler.
Definition: sampler.hpp:49
+
+
+ + + + diff --git a/renderer_8hpp_source.html b/renderer_8hpp_source.html new file mode 100644 index 0000000000..b3ad788009 --- /dev/null +++ b/renderer_8hpp_source.html @@ -0,0 +1,142 @@ + + + + + + + +Topaz: src/tz/gl/renderer.hpp Source File + + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.0.0.2 +
+
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/resize.js b/resize.js new file mode 100644 index 0000000000..aaeb6fc0a4 --- /dev/null +++ b/resize.js @@ -0,0 +1,155 @@ +/* + @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 once=1; +function initResizable() +{ + var cookie_namespace = 'doxygen'; + var sidenav,navtree,content,header,barWidth=6,desktop_vp=768,titleHeight; + + function readSetting(cookie) + { + if (window.chrome) { + var val = localStorage.getItem(cookie_namespace+'_width'); + if (val) return val; + } else { + var myCookie = cookie_namespace+"_"+cookie+"="; + if (document.cookie) { + var index = document.cookie.indexOf(myCookie); + if (index != -1) { + var valStart = index + myCookie.length; + var valEnd = document.cookie.indexOf(";", valStart); + if (valEnd == -1) { + valEnd = document.cookie.length; + } + var val = document.cookie.substring(valStart, valEnd); + return val; + } + } + } + return 250; + } + + function writeSetting(cookie, val) + { + if (window.chrome) { + localStorage.setItem(cookie_namespace+"_width",val); + } else { + var date = new Date(); + date.setTime(date.getTime()+(10*365*24*60*60*1000)); // default expiration is one week + expiration = date.toGMTString(); + document.cookie = cookie_namespace + "_" + cookie + "=" + val + "; SameSite=Lax; expires=" + expiration+"; path=/"; + } + } + + function resizeWidth() + { + var windowWidth = $(window).width() + "px"; + var sidenavWidth = $(sidenav).outerWidth(); + content.css({marginLeft:parseInt(sidenavWidth)+"px"}); + if (typeof page_layout!=='undefined' && page_layout==1) { + footer.css({marginLeft:parseInt(sidenavWidth)+"px"}); + } + writeSetting('width',sidenavWidth-barWidth); + } + + function restoreWidth(navWidth) + { + var windowWidth = $(window).width() + "px"; + content.css({marginLeft:parseInt(navWidth)+barWidth+"px"}); + if (typeof page_layout!=='undefined' && page_layout==1) { + footer.css({marginLeft:parseInt(navWidth)+barWidth+"px"}); + } + sidenav.css({width:navWidth + "px"}); + } + + function resizeHeight() + { + var headerHeight = header.outerHeight(); + var footerHeight = footer.outerHeight(); + var windowHeight = $(window).height(); + var contentHeight,navtreeHeight,sideNavHeight; + if (typeof page_layout==='undefined' || page_layout==0) { /* DISABLE_INDEX=NO */ + contentHeight = windowHeight - headerHeight - footerHeight; + navtreeHeight = contentHeight; + sideNavHeight = contentHeight; + } else if (page_layout==1) { /* DISABLE_INDEX=YES */ + contentHeight = windowHeight - footerHeight; + navtreeHeight = windowHeight - headerHeight; + sideNavHeight = windowHeight; + } + content.css({height:contentHeight + "px"}); + navtree.css({height:navtreeHeight + "px"}); + sidenav.css({height:sideNavHeight + "px"}); + if (location.hash.slice(1)) { + (document.getElementById(location.hash.slice(1))||document.body).scrollIntoView(); + } + } + + function collapseExpand() + { + var newWidth; + if (sidenav.width()>0) { + newWidth=0; + } + else { + var width = readSetting('width'); + newWidth = (width>250 && width<$(window).width()) ? width : 250; + } + restoreWidth(newWidth); + var sidenavWidth = $(sidenav).outerWidth(); + writeSetting('width',sidenavWidth-barWidth); + } + + header = $("#top"); + sidenav = $("#side-nav"); + content = $("#doc-content"); + navtree = $("#nav-tree"); + footer = $("#nav-path"); + $(".side-nav-resizable").resizable({resize: function(e, ui) { resizeWidth(); } }); + $(sidenav).resizable({ minWidth: 0 }); + $(window).resize(function() { resizeHeight(); }); + var device = navigator.userAgent.toLowerCase(); + var touch_device = device.match(/(iphone|ipod|ipad|android)/); + if (touch_device) { /* wider split bar for touch only devices */ + $(sidenav).css({ paddingRight:'20px' }); + $('.ui-resizable-e').css({ width:'20px' }); + $('#nav-sync').css({ right:'34px' }); + barWidth=20; + } + var width = readSetting('width'); + if (width) { restoreWidth(width); } else { resizeWidth(); } + resizeHeight(); + var url = location.href; + var i=url.indexOf("#"); + if (i>=0) window.location.hash=url.substr(i); + var _preventDefault = function(evt) { evt.preventDefault(); }; + $("#splitbar").bind("dragstart", _preventDefault).bind("selectstart", _preventDefault); + if (once) { + $(".ui-resizable-handle").dblclick(collapseExpand); + once=0 + } + $(window).on('load',resizeHeight); +} +/* @license-end */ diff --git a/resource_8hpp_source.html b/resource_8hpp_source.html new file mode 100644 index 0000000000..4571916ecb --- /dev/null +++ b/resource_8hpp_source.html @@ -0,0 +1,281 @@ + + + + + + + +Topaz: src/tz/gl/resource.hpp Source File + + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.0.0.2 +
+
C++20 Graphics Engine
+
+
+ + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
resource.hpp
+
+
+
1#ifndef TOPAZ_GL2_RESOURCE_HPP
+
2#define TOPAZ_GL2_RESOURCE_HPP
+
3#include "tz/gl/api/resource.hpp"
+
4#include "tz/gl/declare/image_format.hpp"
+
5#include "tz/core/types.hpp"
+
6#include "tz/core/data/vector.hpp"
+
7#include <ranges>
+
8#include <optional>
+
9
+
10namespace tz::gl
+
11{
+
12 class resource : public iresource
+
13 {
+
14 public:
+
15 virtual ~resource() = default;
+
16 // iresource
+
17 virtual resource_type get_type() const final;
+
18 virtual resource_access get_access() const final;
+
19 virtual const resource_flags& get_flags() const final;
+
20 virtual std::span<const std::byte> data() const final;
+
21 virtual std::span<std::byte> data() final;
+
22 virtual void dbgui() override;
+
23
+
24 void resize_data(std::size_t new_size);
+
25 protected:
+
26 resource(resource_access access, std::vector<std::byte> resource_data, std::size_t initial_alignment_offset, resource_type type, resource_flags flags = {});
+
27 virtual void set_mapped_data(std::span<std::byte> mapped_resource_data) override;
+
28 private:
+
29 resource_access access;
+
30 std::vector<std::byte> resource_data;
+
31 std::optional<std::span<std::byte>> mapped_resource_data;
+
32 std::size_t initial_alignment_offset;
+
33 resource_type type;
+
34 resource_flags flags;
+
35 };
+
36
+ +
38 {
+ +
40 resource_flags flags = {};
+
41 };
+
42
+ +
48 {
+
49 public:
+
50 virtual ~buffer_resource() = default;
+
59 template<tz::trivially_copyable T>
+
60 static buffer_resource from_one(const T& data, buffer_info info = {});
+
61
+
62 template<tz::trivially_copyable T>
+
63 static buffer_resource from_many(std::initializer_list<T> ts, buffer_info info = {})
+
64 {
+
65 return from_many(std::span<const T>(ts), info);
+
66 }
+
74 template<std::ranges::contiguous_range R>
+
75 static buffer_resource from_many(R&& data, buffer_info info = {});
+ +
82 {
+
83 return from_one(std::byte{255}, {});
+
84 }
+
85
+
86 bool is_null() const;
+
87 virtual std::unique_ptr<iresource> unique_clone() const final;
+
88 virtual void dbgui() final;
+
89 private:
+
90 buffer_resource(resource_access access, std::vector<std::byte> resource_data, std::size_t initial_alignment_offset, resource_flags flags);
+
91 };
+
92
+
93
+ +
98 {
+ + + +
106 resource_flags flags = {};
+
107 };
+
108
+ +
114 {
+
115 public:
+
116 virtual ~image_resource() = default;
+
121 static image_resource from_uninitialised(image_info info = {});
+
122
+
123 template<tz::trivially_copyable T>
+
124 static image_resource from_memory(std::initializer_list<T> ts, image_info info = {})
+
125 {
+
126 return from_memory(std::span<const T>(ts), info);
+
127 }
+
133 static image_resource from_memory(std::ranges::contiguous_range auto data, image_info info = {});
+ +
140 {
+
141 return from_memory
+
142 (
+
143 {
+
144 // Missingno purple
+
145 (unsigned char)0b1111'1111,
+
146 (unsigned char)0b0000'0000,
+
147 (unsigned char)0b1111'1111,
+
148 (unsigned char)0b1111'1111,
+
149 // Black
+
150 (unsigned char)0b0000'0000,
+
151 (unsigned char)0b0000'0000,
+
152 (unsigned char)0b0000'0000,
+
153 (unsigned char)0b1111'1111,
+
154 // Black
+
155 (unsigned char)0b0000'0000,
+
156 (unsigned char)0b0000'0000,
+
157 (unsigned char)0b0000'0000,
+
158 (unsigned char)0b1111'1111,
+
159 // Missingno purple
+
160 (unsigned char)0b1111'1111,
+
161 (unsigned char)0b0000'0000,
+
162 (unsigned char)0b1111'1111,
+
163 (unsigned char)0b1111'1111
+
164 },
+
165 {.format = image_format::RGBA32, .dimensions = {2u, 2u}}
+
166 );
+
167 }
+
168
+
169 bool is_null() const;
+
170
+
171 virtual std::unique_ptr<iresource> unique_clone() const final;
+
172 virtual void dbgui() final;
+
173 image_format get_format() const;
+
174 tz::vec2ui get_dimensions() const;
+
175 void set_dimensions(tz::vec2ui dims);
+
176 private:
+
177 image_resource(resource_access access, std::vector<std::byte> resource_data, std::size_t initial_alignment_offset, image_format format, tz::vec2ui dimensions, resource_flags flags);
+
178 image_format format;
+
179 tz::vec2ui dimensions;
+
180 };
+
181}
+
182#include "tz/gl/resource.inl"
+
183
+
184#endif // TOPAZ_GL2_RESOURCE_HPP
+ +
Represents a fixed-size, static Buffer to be used by a renderer or Processor.
Definition: resource.hpp:48
+
virtual void dbgui() final
Display debug information about the resource.
Definition: resource.cpp:126
+
static buffer_resource from_one(const T &data, buffer_info info={})
Create a buffer_resource where the underlying data is a single object.
Definition: resource.inl:9
+
static buffer_resource null()
Create a null buffer_resource.
Definition: resource.hpp:81
+
Represents a fixed-size, static Image to be used by a renderer or Processor.
Definition: resource.hpp:114
+
static image_resource null()
Create a null image_resource.
Definition: resource.hpp:139
+
Interface for a renderer or Processor resource.
Definition: resource.hpp:82
+
Definition: resource.hpp:13
+
virtual resource_type get_type() const final
Retrieve the type of the resource.
Definition: resource.cpp:31
+
virtual const resource_flags & get_flags() const final
Retrieve a field containing all flags applied to this resource.
Definition: resource.cpp:41
+
virtual std::span< const std::byte > data() const final
Retrieve a read-only view into the resource data.
Definition: resource.cpp:46
+
virtual void dbgui() override
Display debug information about the resource.
Definition: resource.cpp:66
+
virtual resource_access get_access() const final
Retrieve access information about this resource when used in a renderer or Processor.
Definition: resource.cpp:36
+
Definition: vector.hpp:18
+
resource_type
Specifies the type of the resource; which is how a renderer or Processor will interpret the usage of ...
Definition: resource.hpp:17
+
resource_access
Describes the manner in which a resource can be read or written to, when owned by a renderer or Proce...
Definition: resource.hpp:61
+ +
image_format
Various image formats are supported in Topaz.
Definition: image_format.hpp:33
+
Definition: resource.hpp:38
+
Represents creation flags for an image.
Definition: resource.hpp:98
+
tz::vec2ui dimensions
Image dimensions, in pixels.
Definition: resource.hpp:102
+
image_format format
Image format.
Definition: resource.hpp:100
+
+
+ + + + diff --git a/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..75d6008859 --- /dev/null +++ b/schedule_8hpp_source.html @@ -0,0 +1,175 @@ + + + + + + + +Topaz: src/tz/gl/api/schedule.hpp Source File + + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Topaz 4.0.0.2 +
+
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
+
9namespace tz::gl
+
10{
+
11 using eid_t = unsigned int;
+
12 constexpr eid_t nullevt = std::numeric_limits<eid_t>::max();
+
13 struct event
+
14 {
+
15 eid_t eid = nullevt;
+
16 std::vector<eid_t> dependencies = {};
+
17 };
+
18
+
19 struct timeline_t : public std::vector<eid_t>
+
20 {
+
21 timeline_t() = default;
+
22 template<typename... Is>
+
23 timeline_t(Is&&... is)
+
24 {
+
25 (this->push_back(static_cast<eid_t>(static_cast<tz::hanval>(is))), ...);
+
26 }
+
27 };
+
28
+
29 struct schedule
+
30 {
+
31 std::vector<event> events = {};
+
32 timeline_t timeline = {};
+
33
+
34 std::span<const eid_t> get_dependencies(eid_t evt) const;
+
35
+
36 template<typename T0, typename... T>
+
37 void add_dependencies(T0 evth, T... deps)
+
38 {
+
39 auto evt = static_cast<eid_t>(static_cast<tz::hanval>(evth));
+
40 auto iter = std::find_if(this->events.begin(), this->events.end(), [evt](const auto& event){return event.eid == evt;});
+
41 tz::assert(iter != this->events.end());
+
42 (iter->dependencies.push_back(static_cast<eid_t>(static_cast<tz::hanval>(deps))), ...);
+
43 }
+
44 };
+
45
+
46}
+
47
+
48#endif // TZ_GL_API_SCHEDULE_HPP
+
void assert(bool condition, detail::format_string fmt="<No message>", Args &&... args)
Assert on a condition.
Definition: debug.inl:33
+
Definition: schedule.hpp:14
+
Definition: schedule.hpp:30
+
Definition: schedule.hpp:20
+
+
+ + + + diff --git a/search/all_0.js b/search/all_0.js new file mode 100644 index 0000000000..e2ddfaa79e --- /dev/null +++ b/search/all_0.js @@ -0,0 +1,57 @@ +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#a3879564a08f0874bd34335a172fa8327',1,'tz::basic_list::add(T &&element)'],['../classtz_1_1basic__list.html#a4145934a925e6b0a6166396fe079e912',1,'tz::basic_list::add(const 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_5fdependency_8',['add_dependency',['../classtz_1_1gl_1_1renderer__info.html#a67cee96b537c3155396b7e537648e208',1,'tz::gl::renderer_info']]], + ['add_5fresource_9',['add_resource',['../classtz_1_1gl_1_1renderer__info.html#a754e0e44d92be27ecf399501ba318d53',1,'tz::gl::renderer_info']]], + ['add_5fset_5fedit_10',['add_set_edit',['../classtz_1_1gl_1_1vk2_1_1_descriptor_pool_1_1_update_request.html#a9eadabf90c16c3d2cc228868752da65a',1,'tz::gl::vk2::DescriptorPool::UpdateRequest']]], + ['address_5fmode_11',['address_mode',['../group__tz__gl__ogl2__image.html#ga52bed615aea0b883aeb6702716f95e5b',1,'tz::gl::ogl2']]], + ['address_5fmode_5fr_12',['address_mode_r',['../structtz_1_1gl_1_1ogl2_1_1sampler.html#ad973088359ae025d62a9be56c499913f',1,'tz::gl::ogl2::sampler']]], + ['address_5fmode_5fs_13',['address_mode_s',['../structtz_1_1gl_1_1ogl2_1_1sampler.html#a9e5a13f2abc511e9e41a5c65a0ed543d',1,'tz::gl::ogl2::sampler']]], + ['address_5fmode_5ft_14',['address_mode_t',['../structtz_1_1gl_1_1ogl2_1_1sampler.html#a4eb3aac6c9f3f325b154b52227a589d7',1,'tz::gl::ogl2::sampler']]], + ['address_5fmode_5fu_15',['address_mode_u',['../structtz_1_1gl_1_1vk2_1_1_sampler_info.html#a3cddf0a741522a123deaaa4c6c5d3041',1,'tz::gl::vk2::SamplerInfo']]], + ['address_5fmode_5fv_16',['address_mode_v',['../structtz_1_1gl_1_1vk2_1_1_sampler_info.html#abdb13df130823a0b66af27234b2a414c',1,'tz::gl::vk2::SamplerInfo']]], + ['address_5fmode_5fw_17',['address_mode_w',['../structtz_1_1gl_1_1vk2_1_1_sampler_info.html#ab44f5074772b344c8307c561f98b2149',1,'tz::gl::vk2::SamplerInfo']]], + ['affected_5flayers_18',['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_19',['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_20',['Algorithms',['../group__tz__core__algorithms.html',1,'']]], + ['allcommands_21',['AllCommands',['../group__tz__gl__vk__graphics__pipeline.html#ggaa581c5a329a76e48f41ca02bd263251aacf92f78ac1cdeee1e78e8b2866abe474',1,'tz::gl::vk2']]], + ['allgraphics_22',['AllGraphics',['../group__tz__gl__vk__graphics__pipeline.html#ggaa581c5a329a76e48f41ca02bd263251aa576ad90e86113d352899b3369a9c5b15',1,'tz::gl::vk2']]], + ['allocate_5fbuffers_23',['allocate_buffers',['../classtz_1_1gl_1_1vk2_1_1_command_pool.html#a791dba923c7069be7b684d58c62017fe',1,'tz::gl::vk2::CommandPool']]], + ['allocate_5fsets_24',['allocate_sets',['../classtz_1_1gl_1_1vk2_1_1_descriptor_pool.html#a08339d22389d1d308abbce0ea80a4be8',1,'tz::gl::vk2::DescriptorPool']]], + ['allocation_25',['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_26',['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_27',['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_28',['AllocationSuccess',['../structtz_1_1gl_1_1vk2_1_1_descriptor_pool_1_1_allocation_result.html#abad85d19de3197a840dc5e69ad797c54a6f8ab75df1f61fe1d74b80230950e6a0',1,'tz::gl::vk2::DescriptorPool::AllocationResult']]], + ['allocator_5fadapter_29',['allocator_adapter',['../classtz_1_1allocator__adapter.html',1,'tz']]], + ['allocators_30',['Allocators',['../group__tz__core__memory__allocator.html',1,'']]], + ['allreads_31',['AllReads',['../group__tz__gl__vk__graphics__pipeline__render__pass.html#ggaa5dd0142a36cd59d14dff54eed67c3dfa8ab0a7cae3cbaff41e05a64461e3d3dc',1,'tz::gl::vk2']]], + ['allwrites_32',['AllWrites',['../group__tz__gl__vk__graphics__pipeline__render__pass.html#ggaa5dd0142a36cd59d14dff54eed67c3dfa87c699210d01c41d2f2e4d26a26467b9',1,'tz::gl::vk2']]], + ['alpha_5fblending_33',['alpha_blending',['../group__tz__gl2__renderer.html#ggac6f74feb8cd57f49c051f5d83a12be5da9c2fd878595ad8136ed219ece90dfef9',1,'tz::gl']]], + ['alwaysfalse_34',['AlwaysFalse',['../group__tz__gl__vk__graphics__pipeline__fixed.html#gga93e2cb3a5e44484b0548e28496de69c7a8cec5cec7e1bd101eefe8dde47c99289',1,'tz::gl::vk2']]], + ['alwaystrue_35',['AlwaysTrue',['../group__tz__gl__vk__graphics__pipeline__fixed.html#gga93e2cb3a5e44484b0548e28496de69c7a65db12e33585aff2007aad58b62b7bcd',1,'tz::gl::vk2']]], + ['and_36',['and',['../group__tzsl__atomic.html#gafe35966b39ca9b843aee1df9bf0e8dcc',1,'tz::atomic']]], + ['append_37',['append',['../classtz_1_1basic__list.html#a2da568b03a98882cfd70dbc9ef726f29',1,'tz::basic_list']]], + ['append_5frange_38',['append_range',['../classtz_1_1basic__list.html#ae49735e774b1d312a5fbe8f383a54af5',1,'tz::basic_list']]], + ['array_5felement_39',['array_element',['../structtz_1_1gl_1_1vk2_1_1_descriptor_set_1_1_write.html#a7646cd399f52126271396f9693e69c94',1,'tz::gl::vk2::DescriptorSet::Write']]], + ['array_5flayers_40',['array_layers',['../structtz_1_1gl_1_1vk2_1_1image__info.html#a351c5165fd522daa256f8f9010672256',1,'tz::gl::vk2::image_info']]], + ['asin_41',['asin',['../group__tzsl__math.html#ga303ccf32c2a3bd51916059746e13d4fb',1,'tz::math']]], + ['asinh_42',['asinh',['../group__tzsl__math.html#ga3cea91edf9f9b37f5aaeb8b20eeed9a8',1,'tz::math']]], + ['assert_43',['assert',['../group__tz__core.html#ga35faea66fc04dfa33238c863eb740c34',1,'tz::assert()'],['../group__tzsl__debug.html#ga46aa856e72453e84675e0a867438b8d0',1,'tz::debug::assert()']]], + ['assetstoragecommon_44',['AssetStorageCommon',['../classtz_1_1gl_1_1_asset_storage_common.html',1,'tz::gl']]], + ['assetstoragecommon_3c_20iresource_20_3e_45',['AssetStorageCommon< iresource >',['../classtz_1_1gl_1_1_asset_storage_common.html',1,'tz::gl']]], + ['atan_46',['atan',['../group__tzsl__math.html#gab6513224bd4ea1a83d9e1e78083a5899',1,'tz::math']]], + ['atanh_47',['atanh',['../group__tzsl__math.html#ga6321494f7f16de62c6693d5ec61aafd0',1,'tz::math']]], + ['atomic_20operations_48',['Atomic Operations',['../group__tzsl__atomic.html',1,'']]], + ['attachment_49',['Attachment',['../structtz_1_1gl_1_1vk2_1_1_attachment.html',1,'tz::gl::vk2']]], + ['attachment_5fidx_50',['attachment_idx',['../structtz_1_1gl_1_1vk2_1_1_render_pass_info_1_1_attachment_reference.html#ae5b305155d4912ffe6cae8a8e593a7a5',1,'tz::gl::vk2::RenderPassInfo::AttachmentReference']]], + ['attachmentreference_51',['AttachmentReference',['../structtz_1_1gl_1_1vk2_1_1_render_pass_info_1_1_attachment_reference.html',1,'tz::gl::vk2::RenderPassInfo']]], + ['attachments_52',['attachments',['../structtz_1_1gl_1_1vk2_1_1_render_pass_info.html#ae5e3e35f30d6ffc55b24b9da1bd516d9',1,'tz::gl::vk2::RenderPassInfo::attachments()'],['../structtz_1_1gl_1_1vk2_1_1_framebuffer_info.html#a73cc5483be237ed80cfe6e2545797120',1,'tz::gl::vk2::FramebufferInfo::attachments()']]], + ['attribute_53',['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..c3dbd5ab36 --- /dev/null +++ b/search/all_1.js @@ -0,0 +1,84 @@ +var searchData= +[ + ['back_0',['back',['../classtz_1_1enum__field.html#ac7bf408eb8998817ef105243093e5edc',1,'tz::enum_field::back()'],['../classtz_1_1basic__list.html#a7997b2e322ea17998655cbbb4846ae69',1,'tz::basic_list::back() const'],['../classtz_1_1basic__list.html#ada048725d4c9628619d5fb8ff984c6d3',1,'tz::basic_list::back()'],['../structtz_1_1gl_1_1vk2_1_1_depth_stencil_state.html#ad0deeef78c7f2102fc60a1e12010bb6e',1,'tz::gl::vk2::DepthStencilState::back()']]], + ['backculling_1',['BackCulling',['../group__tz__gl__vk__graphics__pipeline__fixed.html#ggaf55856ce9f281f90908bac12e0061e16ae801bd1e6bd89372f391535221e71cf3',1,'tz::gl::vk2']]], + ['basic_5fbind_2',['basic_bind',['../classtz_1_1gl_1_1ogl2_1_1buffer.html#af4b9c7ba42660acf5cb50dc79117f2ae',1,'tz::gl::ogl2::buffer']]], + ['basic_5flist_3',['basic_list',['../classtz_1_1basic__list.html#aaf16b4ba68943da253217bfaf205eaeb',1,'tz::basic_list::basic_list()=default'],['../classtz_1_1basic__list.html#a9b24154d8d989de8f583fde2be983f8b',1,'tz::basic_list::basic_list(std::initializer_list< T > elements)'],['../classtz_1_1basic__list.html',1,'tz::basic_list< T, Allocator >']]], + ['basic_5flist_3c_20attachmentstate_20_3e_4',['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_5',['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_6',['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_7',['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_8',['basic_list< const tz::gl::vk2::DescriptorSet * >',['../classtz_1_1basic__list.html',1,'tz']]], + ['basic_5flist_3c_20framebuffer_5ftexture_20_3e_9',['basic_list< framebuffer_texture >',['../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_10',['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_11',['basic_list< std::uint32_t >',['../classtz_1_1basic__list.html',1,'tz']]], + ['basic_5flist_3c_20tz_3a_3abasic_5flist_20_3e_12',['basic_list< tz::basic_list >',['../classtz_1_1basic__list.html',1,'tz']]], + ['basic_5flist_3c_20tz_3a_3agl_3a_3aicomponent_20_2a_20_3e_13',['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_14',['basic_list< tz::gl::ogl2::shader_module_info >',['../classtz_1_1basic__list.html',1,'tz']]], + ['basic_5flist_3c_20tz_3a_3agl_3a_3avk2_3a_3aattachment_20_3e_15',['basic_list< tz::gl::vk2::Attachment >',['../classtz_1_1basic__list.html',1,'tz']]], + ['basic_5flist_3c_20tz_3a_3agl_3a_3avk2_3a_3acommandbuffer_20_3e_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_3aimageview_20_2a_20_3e_21',['basic_list< tz::gl::vk2::ImageView * >',['../classtz_1_1basic__list.html',1,'tz']]], + ['basic_5flist_3c_20tz_3a_3agl_3a_3avk2_3a_3arenderpassinfo_3a_3aattachmentreference_20_3e_22',['basic_list< tz::gl::vk2::RenderPassInfo::AttachmentReference >',['../classtz_1_1basic__list.html',1,'tz']]], + ['basic_5flist_3c_20tz_3a_3agl_3a_3avk2_3a_3arenderpassinfo_3a_3ainputattachmentreference_20_3e_23',['basic_list< tz::gl::vk2::RenderPassInfo::InputAttachmentReference >',['../classtz_1_1basic__list.html',1,'tz']]], + ['basic_5flist_3c_20tz_3a_3agl_3a_3avk2_3a_3arenderpassinfo_3a_3asubpass_20_3e_24',['basic_list< tz::gl::vk2::RenderPassInfo::Subpass >',['../classtz_1_1basic__list.html',1,'tz']]], + ['basic_5flist_3c_20tz_3a_3agl_3a_3avk2_3a_3ashadermoduleinfo_20_3e_25',['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_26',['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_27',['basic_list< tz::gl::vk2::VertexInputState::Binding >',['../classtz_1_1basic__list.html',1,'tz']]], + ['basic_5flist_3c_20vkpipelineshaderstagecreateinfo_20_3e_28',['basic_list< VkPipelineShaderStageCreateInfo >',['../classtz_1_1basic__list.html',1,'tz']]], + ['basic_5flist_3c_20vkrect2d_20_3e_29',['basic_list< VkRect2D >',['../classtz_1_1basic__list.html',1,'tz']]], + ['basic_5flist_3c_20vkviewport_20_3e_30',['basic_list< VkViewport >',['../classtz_1_1basic__list.html',1,'tz']]], + ['basic_5flist_3c_20write_20_3e_31',['basic_list< Write >',['../classtz_1_1basic__list.html',1,'tz']]], + ['begin_32',['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_33',['begin_frame',['../group__tz__core.html#gae00451643399562c92b48a05a40896b7',1,'tz']]], + ['begindynamicrendering_34',['BeginDynamicRendering',['../structtz_1_1gl_1_1vk2_1_1_vulkan_command_1_1_begin_dynamic_rendering.html',1,'tz::gl::vk2::VulkanCommand']]], + ['beginrenderpass_35',['BeginRenderPass',['../structtz_1_1gl_1_1vk2_1_1_vulkan_command_1_1_begin_render_pass.html',1,'tz::gl::vk2::VulkanCommand']]], + ['binarysemaphore_36',['BinarySemaphore',['../classtz_1_1gl_1_1vk2_1_1_binary_semaphore.html',1,'tz::gl::vk2']]], + ['bind_37',['bind',['../classtz_1_1gl_1_1ogl2_1_1vertex__array.html#aaf01a3edf3e63668020174f78199b3b8',1,'tz::gl::ogl2::vertex_array::bind()'],['../classtz_1_1gl_1_1ogl2_1_1framebuffer.html#ac35f4fd02a725fa84a6e3fbdeaec4e09',1,'tz::gl::ogl2::framebuffer::bind()']]], + ['bind_5fbuffer_38',['bind_buffer',['../classtz_1_1gl_1_1vk2_1_1_command_buffer_recording.html#aa015012eda3e9de92f3a5adbaff798bd',1,'tz::gl::vk2::CommandBufferRecording']]], + ['bind_5fbuffers_39',['bind_buffers',['../classtz_1_1gl_1_1_resource_storage.html#ad52eafd3a054c5e4489c026c94a6c81a',1,'tz::gl::ResourceStorage']]], + ['bind_5fdescriptor_5fsets_40',['bind_descriptor_sets',['../classtz_1_1gl_1_1vk2_1_1_command_buffer_recording.html#ac9e417b34e2a883b34ab2099a82acd54',1,'tz::gl::vk2::CommandBufferRecording']]], + ['bind_5fimage_5fbuffer_41',['bind_image_buffer',['../classtz_1_1gl_1_1_resource_storage.html#a71e4a2bb72688cea1a4849a8f0705a42',1,'tz::gl::ResourceStorage']]], + ['bind_5fpipeline_42',['bind_pipeline',['../classtz_1_1gl_1_1vk2_1_1_command_buffer_recording.html#a8bbeeef67dcb9b04b17bf5abde907e01',1,'tz::gl::vk2::CommandBufferRecording']]], + ['bind_5fto_5fresource_5fid_43',['bind_to_resource_id',['../classtz_1_1gl_1_1ogl2_1_1buffer.html#a2f38aa4dfb4a6f0504bee1a44e0bbee6',1,'tz::gl::ogl2::buffer']]], + ['bindbuffer_44',['BindBuffer',['../structtz_1_1gl_1_1vk2_1_1_vulkan_command_1_1_bind_buffer.html',1,'tz::gl::vk2::VulkanCommand']]], + ['binddescriptorsets_45',['BindDescriptorSets',['../structtz_1_1gl_1_1vk2_1_1_vulkan_command_1_1_bind_descriptor_sets.html',1,'tz::gl::vk2::VulkanCommand']]], + ['bindindexbuffer_46',['BindIndexBuffer',['../structtz_1_1gl_1_1vk2_1_1_vulkan_command_1_1_bind_index_buffer.html',1,'tz::gl::vk2::VulkanCommand']]], + ['binding_47',['binding',['../structtz_1_1gl_1_1vk2_1_1_vertex_input_state_1_1_binding.html#a7022ed9b009dd3f047f594907b00de30',1,'tz::gl::vk2::VertexInputState::Binding']]], + ['binding_48',['Binding',['../structtz_1_1gl_1_1vk2_1_1_vertex_input_state_1_1_binding.html',1,'tz::gl::vk2::VertexInputState']]], + ['binding_5fcount_49',['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_50',['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_51',['BindingInfo',['../structtz_1_1gl_1_1vk2_1_1_descriptor_layout_info_1_1_binding_info.html',1,'tz::gl::vk2::DescriptorLayoutInfo']]], + ['bindings_52',['bindings',['../structtz_1_1gl_1_1vk2_1_1_descriptor_layout_info.html#a9612491e1802fd7a5d0812e80d25f332',1,'tz::gl::vk2::DescriptorLayoutInfo']]], + ['bindless_5fhandle_53',['bindless_handle',['../classtz_1_1gl_1_1ogl2_1_1image.html#a95cc3a29802146fa924deac10a64fc72',1,'tz::gl::ogl2::image']]], + ['bindlessdescriptors_54',['BindlessDescriptors',['../group__tz__gl__vk__extension.html#gga6744c8f7d1276d6d9ae861b21c489505aa470c5a1e7f7f5154881cbc29acff30c',1,'tz::gl::vk2']]], + ['bindpipeline_55',['BindPipeline',['../structtz_1_1gl_1_1vk2_1_1_vulkan_command_1_1_bind_pipeline.html',1,'tz::gl::vk2::VulkanCommand']]], + ['bothculling_56',['BothCulling',['../group__tz__gl__vk__graphics__pipeline__fixed.html#ggaf55856ce9f281f90908bac12e0061e16a41356deeb07cbbcf9da994b364f45374',1,'tz::gl::vk2']]], + ['bottom_57',['Bottom',['../group__tz__gl__vk__graphics__pipeline.html#ggaa581c5a329a76e48f41ca02bd263251aa2ad9d63b69c4a10a5cc9cad923133bc4',1,'tz::gl::vk2']]], + ['buffer_58',['buffer',['../group__tz__gl2__res.html#gga4a7818551bb2ef3d04edb95ec731d041a7f2db423a49b305459147332fb01cf87',1,'buffer()tz::gl'],['../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()'],['../classtz_1_1gl_1_1ogl2_1_1buffer.html',1,'tz::gl::ogl2::buffer']]], + ['buffer_59',['Buffer',['../classtz_1_1gl_1_1vk2_1_1_buffer.html',1,'tz::gl::vk2']]], + ['buffer_5fcomponent_5fogl_60',['buffer_component_ogl',['../classtz_1_1gl_1_1buffer__component__ogl.html',1,'tz::gl']]], + ['buffer_5fcomponent_5fvulkan_61',['buffer_component_vulkan',['../classtz_1_1gl_1_1buffer__component__vulkan.html',1,'tz::gl']]], + ['buffer_5fcopy_5fbuffer_62',['buffer_copy_buffer',['../classtz_1_1gl_1_1vk2_1_1_command_buffer_recording.html#a42ed45f3524b6bfe1c98de341b8b88de',1,'tz::gl::vk2::CommandBufferRecording']]], + ['buffer_5fcopy_5fimage_63',['buffer_copy_image',['../classtz_1_1gl_1_1vk2_1_1_command_buffer_recording.html#a245b299b9c5cf4248e7ae19c63f63a8d',1,'tz::gl::vk2::CommandBufferRecording']]], + ['buffer_5fcount_64',['buffer_count',['../structtz_1_1gl_1_1vk2_1_1_command_pool_1_1_allocation.html#ab94d776ad949320f02660f68b6e73da9',1,'tz::gl::vk2::CommandPool::Allocation']]], + ['buffer_5fhandle_65',['buffer_handle',['../structtz_1_1gl_1_1renderer__edit_1_1buffer__resize.html#af0f17126f50ca0c604bb25ee0fc8caa8',1,'tz::gl::renderer_edit::buffer_resize']]], + ['buffer_5finfo_66',['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_67',['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_68',['buffer_residency',['../group__tz__gl__ogl2__buffers.html#gae0f51febb963a7dc9fce3cc2208559a6',1,'tz::gl::ogl2']]], + ['buffer_5fresize_69',['buffer_resize',['../classtz_1_1gl_1_1_renderer_edit_builder.html#a1bac636b2eaad5c37e49d7dcf290dc04',1,'tz::gl::RendererEditBuilder::buffer_resize()'],['../structtz_1_1gl_1_1renderer__edit_1_1buffer__resize.html',1,'tz::gl::renderer_edit::buffer_resize']]], + ['buffer_5fresource_70',['buffer_resource',['../classtz_1_1gl_1_1buffer__resource.html',1,'tz::gl']]], + ['buffer_5ftarget_71',['buffer_target',['../group__tz__gl__ogl2__buffers.html#ga2d4cfcc22205d2276ef7347cf6e1c1ed',1,'tz::gl::ogl2']]], + ['buffer_5fwrite_5fsize_72',['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_73',['BufferCopyBuffer',['../structtz_1_1gl_1_1vk2_1_1_vulkan_command_1_1_buffer_copy_buffer.html',1,'tz::gl::vk2::VulkanCommand']]], + ['buffercopyimage_74',['BufferCopyImage',['../structtz_1_1gl_1_1vk2_1_1_vulkan_command_1_1_buffer_copy_image.html',1,'tz::gl::vk2::VulkanCommand']]], + ['buffers_75',['buffers',['../structtz_1_1gl_1_1vk2_1_1_command_pool_1_1_allocation_result.html#a7090fa6999352b4a444cd22121c8ae45',1,'tz::gl::vk2::CommandPool::AllocationResult']]], + ['buffers_76',['Buffers',['../group__tz__gl__ogl2__buffers.html',1,'(Global Namespace)'],['../group__tz__gl__vk__buffer.html',1,'(Global Namespace)']]], + ['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_1vk2_1_1_render_pass_builder.html#ac2c1deaa48c76a66920eb7bd4bce8034',1,'tz::gl::vk2::RenderPassBuilder::build()'],['../classtz_1_1gl_1_1vk2_1_1_subpass_builder.html#a2f4293bd1783d6dd12a94126622d5f36',1,'tz::gl::vk2::SubpassBuilder::build()'],['../classtz_1_1gl_1_1vk2_1_1_descriptor_layout_builder.html#a255b1e89de7ebac50241ccef4f995aba',1,'tz::gl::vk2::DescriptorLayoutBuilder::build()'],['../classtz_1_1gl_1_1_renderer_edit_builder.html#a693855ee726f0d71eab5c0144f4016a8',1,'tz::gl::RendererEditBuilder::build()']]], + ['button_5fstate_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..a5227e9d9f --- /dev/null +++ b/search/all_10.js @@ -0,0 +1,9 @@ +var searchData= +[ + ['queue_0',['queue',['../structtz_1_1gl_1_1vk2_1_1_command_pool_info.html#ad61f2476a6a318a6c77e147c43b84e8c',1,'tz::gl::vk2::CommandPoolInfo']]], + ['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/all_11.js b/search/all_11.js new file mode 100644 index 0000000000..35cb9ef195 --- /dev/null +++ b/search/all_11.js @@ -0,0 +1,66 @@ +var searchData= +[ + ['rasteriserstate_0',['RasteriserState',['../structtz_1_1gl_1_1vk2_1_1_rasteriser_state.html',1,'tz::gl::vk2']]], + ['record_1',['record',['../classtz_1_1gl_1_1vk2_1_1_command_buffer.html#ac914c5d21dc2fc919375b27fc1fc78f0',1,'tz::gl::vk2::CommandBuffer']]], + ['ref_5fresource_2',['ref_resource',['../classtz_1_1gl_1_1renderer__info.html#ac5855e1f47ad7293713337e80cec6d7a',1,'tz::gl::renderer_info::ref_resource(icomponent *component)'],['../classtz_1_1gl_1_1renderer__info.html#a53dd4d75cc0746b72e7f56adae703b53',1,'tz::gl::renderer_info::ref_resource(renderer_handle ren, resource_handle res)']]], + ['reflect_3',['reflect',['../group__tzsl__math.html#gafed4b19ac0c92a8be0c4423075a651cc',1,'tz::math']]], + ['refract_4',['refract',['../group__tzsl__math.html#ga9e6144cd5b477de94de1bca43421724f',1,'tz::math']]], + ['remove_5',['remove',['../classtz_1_1enum__field.html#a22968209e6c89b1c32e223de7f0b9dd2',1,'tz::enum_field']]], + ['remove_5fcallback_6',['remove_callback',['../classtz_1_1callback.html#ac1d0a29c2a313071132aceded7347619',1,'tz::callback']]], + ['render_7',['render',['../classtz_1_1gl_1_1renderer__ogl.html#a28e3f2beda21a1c597681760d3734ae4',1,'tz::gl::renderer_ogl::render()'],['../classtz_1_1gl_1_1renderer.html#a78496d2be55890b00a2b14767ac22bbc',1,'tz::gl::renderer::render(std::size_t tri_count)'],['../classtz_1_1gl_1_1renderer.html#a5e5f72e20e10be732eb3a744e34058f3',1,'tz::gl::renderer::render()']]], + ['render_20passes_8',['Render Passes',['../group__tz__gl__vk__graphics__pipeline__render__pass.html',1,'']]], + ['render_5fbuffer_9',['render_buffer',['../classtz_1_1gl_1_1ogl2_1_1render__buffer.html',1,'tz::gl::ogl2']]], + ['render_5fbuffer_5finfo_10',['render_buffer_info',['../structtz_1_1gl_1_1ogl2_1_1render__buffer__info.html',1,'tz::gl::ogl2']]], + ['render_5fconfig_11',['render_config',['../structtz_1_1gl_1_1renderer__edit_1_1render__config.html',1,'tz::gl::renderer_edit']]], + ['render_5fpass_12',['render_pass',['../structtz_1_1gl_1_1vk2_1_1_framebuffer_info.html#ad7c9e83c24d89ff033a20bb08e07de8c',1,'tz::gl::vk2::FramebufferInfo']]], + ['render_5fstate_13',['render_state',['../classtz_1_1gl_1_1_renderer_edit_builder.html#a93c4ffa0d35525ace09a54ce897f028d',1,'tz::gl::RendererEditBuilder::render_state()'],['../structtz_1_1gl_1_1render__state.html',1,'tz::gl::render_state']]], + ['render_5ftarget_5ft_14',['render_target_t',['../structtz_1_1gl_1_1renderer__output__manager_1_1render__target__t.html',1,'tz::gl::renderer_output_manager']]], + ['render_5fwait_15',['render_wait',['../group__tz__gl2__renderer.html#ggac6f74feb8cd57f49c051f5d83a12be5da53620d781237787604432a229f2d8af7',1,'tz::gl']]], + ['renderer_16',['renderer',['../classtz_1_1gl_1_1renderer.html',1,'tz::gl']]], + ['renderer_20implementation_17',['renderer Implementation',['../group__tz__gl2__graphicsapi__ogl__frontend__renderer.html',1,'']]], + ['renderer_5fcommand_5fprocessor_18',['renderer_command_processor',['../classtz_1_1gl_1_1renderer__command__processor.html',1,'tz::gl']]], + ['renderer_5fcount_19',['renderer_count',['../classtz_1_1gl_1_1device.html#aa2adea5cb25d9712f1fe2b22dba3eec7',1,'tz::gl::device']]], + ['renderer_5fdescriptor_5fmanager_20',['renderer_descriptor_manager',['../classtz_1_1gl_1_1renderer__descriptor__manager.html',1,'tz::gl']]], + ['renderer_5fedit_21',['renderer_edit',['../structtz_1_1gl_1_1renderer__edit.html',1,'tz::gl']]], + ['renderer_5fedit_5frequest_22',['renderer_edit_request',['../group__tz__gl2__renderer.html#gaf8ed980ac9dca61a89e98615c27a8085',1,'tz::gl']]], + ['renderer_5fhandle_23',['renderer_handle',['../group__tz__gl2__renderer.html#gac87fead64cd4f4650e0315adb0841297',1,'tz::gl']]], + ['renderer_5finfo_24',['renderer_info',['../classtz_1_1gl_1_1renderer__info.html',1,'tz::gl']]], + ['renderer_5fogl_25',['renderer_ogl',['../classtz_1_1gl_1_1renderer__ogl.html#ad8f5c88c01550694021d6d15e8b1222b',1,'tz::gl::renderer_ogl::renderer_ogl()'],['../classtz_1_1gl_1_1renderer__ogl.html',1,'tz::gl::renderer_ogl']]], + ['renderer_5fogl_5fbase_26',['renderer_ogl_base',['../structtz_1_1gl_1_1renderer__ogl__base.html',1,'tz::gl']]], + ['renderer_5foption_27',['renderer_option',['../group__tz__gl2__renderer.html#gac6f74feb8cd57f49c051f5d83a12be5d',1,'tz::gl']]], + ['renderer_5foptions_28',['renderer_options',['../group__tz__gl2__renderer.html#ga73b4edabed4b0091a8b1fa6c8f618438',1,'tz::gl']]], + ['renderer_5foutput_29',['renderer_output',['../group__tz__gl2__res.html#ggaacaeec69fc5b83e204af317250a47eb8a8875c7873ad9469ba236f17af49ab331',1,'tz::gl']]], + ['renderer_5foutput_5fmanager_30',['renderer_output_manager',['../classtz_1_1gl_1_1renderer__output__manager.html',1,'tz::gl']]], + ['renderer_5fpipeline_31',['renderer_pipeline',['../classtz_1_1gl_1_1renderer__pipeline.html',1,'tz::gl']]], + ['renderer_5fresource_5fmanager_32',['renderer_resource_manager',['../classtz_1_1gl_1_1renderer__resource__manager.html',1,'tz::gl']]], + ['renderer_5ftag_33',['renderer_tag',['../structtz_1_1gl_1_1detail_1_1renderer__tag.html',1,'tz::gl::detail']]], + ['renderer_5fvulkan2_34',['renderer_vulkan2',['../classtz_1_1gl_1_1renderer__vulkan2.html',1,'tz::gl']]], + ['renderer_5fvulkan_5fbase_35',['renderer_vulkan_base',['../structtz_1_1gl_1_1renderer__vulkan__base.html',1,'tz::gl']]], + ['renderereditbuilder_36',['RendererEditBuilder',['../classtz_1_1gl_1_1_renderer_edit_builder.html',1,'tz::gl']]], + ['renderers_37',['Renderers',['../group__tz__gl2__renderer.html',1,'']]], + ['renderpass_38',['RenderPass',['../classtz_1_1gl_1_1vk2_1_1_render_pass.html#ad43e05dd5535ca6430dbba0cfee87b01',1,'tz::gl::vk2::RenderPass::RenderPass()'],['../classtz_1_1gl_1_1vk2_1_1_render_pass.html',1,'tz::gl::vk2::RenderPass']]], + ['renderpassbuilder_39',['RenderPassBuilder',['../classtz_1_1gl_1_1vk2_1_1_render_pass_builder.html',1,'tz::gl::vk2']]], + ['renderpassinfo_40',['RenderPassInfo',['../structtz_1_1gl_1_1vk2_1_1_render_pass_info.html',1,'tz::gl::vk2']]], + ['renderpassrun_41',['RenderPassRun',['../classtz_1_1gl_1_1vk2_1_1_command_buffer_recording_1_1_render_pass_run.html#a4ad32a0a245c359f4c59f043b3565ff5',1,'tz::gl::vk2::CommandBufferRecording::RenderPassRun::RenderPassRun()'],['../classtz_1_1gl_1_1vk2_1_1_command_buffer_recording_1_1_render_pass_run.html',1,'tz::gl::vk2::CommandBufferRecording::RenderPassRun']]], + ['repeat_42',['Repeat',['../group__tz__gl__vk__image.html#gga8d6daa8ff20537f40f5e1145342c2d4da7020426cfb0a204051be4b3053d2acc8',1,'tz::gl::vk2']]], + ['repeat_43',['repeat',['../group__tz__gl__ogl2__image.html#gga52bed615aea0b883aeb6702716f95e5ba32cf6da134a8b268cf4ab6b79a9a5ad9',1,'tz::gl::ogl2']]], + ['report_44',['report',['../group__tz__core.html#gab9cfea70c99d9d2b1dd82bebee489377',1,'tz']]], + ['reset_45',['reset',['../classtz_1_1delay.html#ab4828a83cde0cd8739937a533dd91b60',1,'tz::delay']]], + ['residency_46',['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_47',['resize',['../classtz_1_1basic__list.html#a0a3896bd6babdbde094588b846fa8f5e',1,'tz::basic_list']]], + ['resource_48',['resource',['../classtz_1_1gl_1_1resource.html',1,'tz::gl']]], + ['resource_5faccess_49',['resource_access',['../group__tz__gl2__res.html#gac9293366fa49e7f476827595ca80fbbb',1,'tz::gl']]], + ['resource_5fcount_50',['resource_count',['../classtz_1_1gl_1_1renderer__ogl.html#a5b49989a7d61aa1ef55727206f1db63a',1,'tz::gl::renderer_ogl::resource_count()'],['../classtz_1_1gl_1_1renderer.html#a9761939bb33ca72dddf9c03d669eac8d',1,'tz::gl::renderer::resource_count()'],['../classtz_1_1gl_1_1renderer__info.html#a65c015b1bd2c1dbf9bddf72f2d2a22ee',1,'tz::gl::renderer_info::resource_count()']]], + ['resource_5fcount_5fof_51',['resource_count_of',['../classtz_1_1gl_1_1_resource_storage.html#a7434d0c28fc3e936ea2da36b6e5cd020',1,'tz::gl::ResourceStorage']]], + ['resource_5fflag_52',['resource_flag',['../group__tz__gl2__res.html#gaacaeec69fc5b83e204af317250a47eb8',1,'tz::gl']]], + ['resource_5freference_53',['resource_reference',['../structtz_1_1gl_1_1renderer__edit_1_1resource__reference.html',1,'tz::gl::renderer_edit']]], + ['resource_5ftype_54',['resource_type',['../group__tz__gl2__res.html#ga4a7818551bb2ef3d04edb95ec731d041',1,'tz::gl']]], + ['resource_5fwrite_55',['resource_write',['../structtz_1_1gl_1_1renderer__edit_1_1resource__write.html',1,'tz::gl::renderer_edit']]], + ['resources_56',['Resources',['../group__tz__gl2__res.html',1,'']]], + ['resourcestorage_57',['ResourceStorage',['../classtz_1_1gl_1_1_resource_storage.html#ab57f9e4401a87f4fa877d0cdd69204ed',1,'tz::gl::ResourceStorage::ResourceStorage()'],['../classtz_1_1gl_1_1_resource_storage.html',1,'tz::gl::ResourceStorage']]], + ['right_58',['right',['../group__tz__wsi__mouse.html#ggaf90a65771c2d2d40e2d8a35f27288e23a7c4f29407893c334a6cb7a87bf045c0d',1,'tz::wsi']]], + ['rotate_59',['rotate',['../group__tz__core.html#gac0457238d0094915eda4df542774a9e8',1,'tz']]], + ['round_60',['round',['../group__tzsl__math.html#ga39cc0a661ddc88ab512b639cb38d4928',1,'tz::math']]], + ['row_61',['Row',['../classtz_1_1matrix.html#a6f7afc1df98e3a9a74430908f0db308a',1,'tz::matrix']]], + ['run_62',['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..ca76929bbc --- /dev/null +++ b/search/all_12.js @@ -0,0 +1,107 @@ +var searchData= +[ + ['sample_5fcount_0',['sample_count',['../structtz_1_1gl_1_1vk2_1_1_attachment.html#a3a45dac8d5587c7161a69f2e4431076e',1,'tz::gl::vk2::Attachment::sample_count()'],['../structtz_1_1gl_1_1vk2_1_1image__info.html#a8d2aa7a0a435dd913d70be9713ca6eae',1,'tz::gl::vk2::image_info::sample_count()']]], + ['samplecount_1',['SampleCount',['../group__tz__gl__vk__image.html#ga88492153134eeee9b8cb8c117b55473d',1,'tz::gl::vk2']]], + ['sampledimage_2',['SampledImage',['../group__tz__gl__vk__image.html#gga6ecb2d248a682aac08d93f4a7078161ea4520c597ce328c250d1ca5192047d71d',1,'tz::gl::vk2']]], + ['sampler_3',['sampler',['../structtz_1_1gl_1_1vk2_1_1_descriptor_set_1_1_write_1_1_image_write_info.html#a40c1f226010688408a26dd6eeef1957e',1,'tz::gl::vk2::DescriptorSet::Write::ImageWriteInfo::sampler()'],['../structtz_1_1gl_1_1ogl2_1_1sampler.html',1,'tz::gl::ogl2::sampler']]], + ['sampler_4',['Sampler',['../classtz_1_1gl_1_1vk2_1_1_sampler.html',1,'tz::gl::vk2']]], + ['sampleraddressmode_5',['SamplerAddressMode',['../group__tz__gl__vk__image.html#ga8d6daa8ff20537f40f5e1145342c2d4d',1,'tz::gl::vk2']]], + ['samplerinfo_6',['SamplerInfo',['../structtz_1_1gl_1_1vk2_1_1_sampler_info.html',1,'tz::gl::vk2']]], + ['scale_7',['scale',['../group__tz__core.html#gac4e79331e3b84c5a36360169f7f6d4c8',1,'tz']]], + ['schedule_8',['schedule',['../structtz_1_1gl_1_1schedule.html',1,'tz::gl']]], + ['scissor_9',['scissor',['../structtz_1_1gl_1_1renderer__edit_1_1scissor.html',1,'tz::gl::renderer_edit']]], + ['scissor_5fregion_10',['scissor_region',['../structtz_1_1gl_1_1scissor__region.html',1,'tz::gl']]], + ['seconds_11',['seconds',['../classtz_1_1duration.html#adec2e357a7d098cbc4356752c3f188f5',1,'tz::duration']]], + ['semaphore_12',['Semaphore',['../group__tz__gl__vk__sync.html#ga608fdecfedaf4d554e90101fff400d4a',1,'tz::gl::vk2']]], + ['set_13',['set',['../structtz_1_1gl_1_1vk2_1_1_descriptor_set_1_1_write.html#a5c2a25ebc211daec9185f1079cb3eeb1',1,'tz::gl::vk2::DescriptorSet::Write']]], + ['set_5fbuffer_14',['set_buffer',['../classtz_1_1gl_1_1vk2_1_1_descriptor_set_1_1_edit_request.html#af6639d543f2c4a73fca182ca2209c5c5',1,'tz::gl::vk2::DescriptorSet::EditRequest']]], + ['set_5fdata_15',['set_data',['../classtz_1_1gl_1_1ogl2_1_1image.html#a7244f6f3bbb421d3f3a7f770ab70c886',1,'tz::gl::ogl2::image']]], + ['set_5fdevice_16',['set_device',['../classtz_1_1gl_1_1vk2_1_1_render_pass_builder.html#ab5db592cbee7e8e81892b8c46eaa1909',1,'tz::gl::vk2::RenderPassBuilder::set_device()'],['../classtz_1_1gl_1_1vk2_1_1_descriptor_layout_builder.html#a8718cf9f569caf8dac4d4a08741925d0',1,'tz::gl::vk2::DescriptorLayoutBuilder::set_device()']]], + ['set_5fimage_17',['set_image',['../classtz_1_1gl_1_1vk2_1_1_descriptor_set_1_1_edit_request.html#a668978b923a9ae87def22035f27e86e8',1,'tz::gl::vk2::DescriptorSet::EditRequest']]], + ['set_5flayouts_18',['set_layouts',['../structtz_1_1gl_1_1vk2_1_1_descriptor_pool_1_1_allocation.html#adfe5a4a22dc012db515ff70ff5e39b7d',1,'tz::gl::vk2::DescriptorPool::Allocation']]], + ['set_5foptions_19',['set_options',['../classtz_1_1gl_1_1renderer__info.html#acd63326412fa7a90e2abe5021f5202fb',1,'tz::gl::renderer_info']]], + ['set_5foutput_20',['set_output',['../classtz_1_1gl_1_1renderer__info.html#abbd793271fd70297cf47034425c09cc6',1,'tz::gl::renderer_info']]], + ['set_5fpipeline_5fcontext_21',['set_pipeline_context',['../classtz_1_1gl_1_1vk2_1_1_subpass_builder.html#aea69c768e6d657c9e4e25102c0031dec',1,'tz::gl::vk2::SubpassBuilder']]], + ['set_5frender_5ftarget_22',['set_render_target',['../classtz_1_1gl_1_1_output_manager.html#aab56ee1c79ecceba987b04b8e28b873b',1,'tz::gl::OutputManager']]], + ['sets_23',['sets',['../structtz_1_1gl_1_1vk2_1_1_descriptor_pool_1_1_allocation_result.html#a6181eaf11bd25e3b3819e2ea5112f3ea',1,'tz::gl::vk2::DescriptorPool::AllocationResult']]], + ['setscissordynamic_24',['SetScissorDynamic',['../structtz_1_1gl_1_1vk2_1_1_vulkan_command_1_1_set_scissor_dynamic.html',1,'tz::gl::vk2::VulkanCommand']]], + ['shader_25',['shader',['../classtz_1_1gl_1_1renderer__info.html#aeb3875b54266b94702791aa71c4a6d85',1,'tz::gl::renderer_info::shader()'],['../classtz_1_1gl_1_1renderer__info.html#a42cf8fe8b97e01596794242ce9ecdaba',1,'tz::gl::renderer_info::shader() const'],['../classtz_1_1gl_1_1ogl2_1_1shader.html#a3bfa7cd0552e027f9cde2e1aee0287d7',1,'tz::gl::ogl2::shader::shader()'],['../classtz_1_1gl_1_1ogl2_1_1shader.html',1,'tz::gl::ogl2::shader']]], + ['shader_26',['Shader',['../classtz_1_1gl_1_1vk2_1_1_shader.html',1,'tz::gl::vk2']]], + ['shader_20programs_20and_20modules_27',['Shader Programs and Modules',['../group__tz__gl__vk__graphics__pipeline__shader.html',1,'']]], + ['shader_5finfo_28',['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_29',['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_30',['shader_meta',['../structtz_1_1gl_1_1shader__meta.html',1,'tz::gl']]], + ['shader_5fmodule_31',['shader_module',['../classtz_1_1gl_1_1ogl2_1_1shader__module.html#a65e736dec375d272b4887010998e0647',1,'tz::gl::ogl2::shader_module::shader_module()'],['../classtz_1_1gl_1_1ogl2_1_1shader__module.html',1,'tz::gl::ogl2::shader_module']]], + ['shader_5fmodule_5finfo_32',['shader_module_info',['../structtz_1_1gl_1_1ogl2_1_1shader__module__info.html',1,'tz::gl::ogl2']]], + ['shader_5fsampler_33',['shader_sampler',['../structtz_1_1gl_1_1ogl2_1_1image__info.html#ade70efe048f382bcea0469c6aa5b71e5',1,'tz::gl::ogl2::image_info']]], + ['shader_5fstorage_34',['shader_storage',['../group__tz__gl__ogl2__buffers.html#gga2d4cfcc22205d2276ef7347cf6e1c1edad76cc0c2dd3511b4bbdddd8f00dd1a0c',1,'tz::gl::ogl2']]], + ['shader_5ftype_35',['shader_type',['../group__tz__gl__ogl2__shader.html#ga6f74da2ab2ba8d9a9e73815fa16ac5f4',1,'tz::gl::ogl2']]], + ['shaderdrawparameters_36',['ShaderDrawParameters',['../group__tz__gl__vk__extension.html#gga6744c8f7d1276d6d9ae861b21c489505a209aad0772152a5828a2dbbf9d63cd10',1,'tz::gl::vk2']]], + ['shaderinfo_37',['ShaderInfo',['../structtz_1_1gl_1_1vk2_1_1_shader_info.html',1,'tz::gl::vk2']]], + ['shadermanager_38',['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()'],['../classtz_1_1gl_1_1_shader_manager.html',1,'tz::gl::ShaderManager']]], + ['shadermodule_39',['ShaderModule',['../classtz_1_1gl_1_1vk2_1_1_shader_module.html#a28f43a6e19604fc3034d5a95d16f6f96',1,'tz::gl::vk2::ShaderModule::ShaderModule()'],['../classtz_1_1gl_1_1vk2_1_1_shader_module.html',1,'tz::gl::vk2::ShaderModule']]], + ['shadermoduleinfo_40',['ShaderModuleInfo',['../structtz_1_1gl_1_1vk2_1_1_shader_module_info.html',1,'tz::gl::vk2']]], + ['shaderpipelinedata_41',['ShaderPipelineData',['../structtz_1_1gl_1_1vk2_1_1_shader_pipeline_data.html',1,'tz::gl::vk2']]], + ['shaderresource_42',['ShaderResource',['../group__tz__gl__vk__image.html#gga4ca55be3d1c101900d800a78deeb595fada4ef1bdf2d2fce1cfc6fd62870a44ef',1,'tz::gl::vk2']]], + ['shaderresourceread_43',['ShaderResourceRead',['../group__tz__gl__vk__graphics__pipeline__render__pass.html#ggaa5dd0142a36cd59d14dff54eed67c3dfa0f723650d92d002ccabaac11c5ffa52a',1,'tz::gl::vk2']]], + ['shaderresourcewrite_44',['ShaderResourceWrite',['../group__tz__gl__vk__graphics__pipeline__render__pass.html#ggaa5dd0142a36cd59d14dff54eed67c3dfaefa1ac5bfa2d8083d613414fe67a03e6',1,'tz::gl::vk2']]], + ['shaders_45',['Shaders',['../shaders.html',1,'(Global Namespace)'],['../group__tz__gl__ogl2__shader.html',1,'(Global Namespace)']]], + ['shadertype_46',['ShaderType',['../group__tz__gl__vk__graphics__pipeline__shader.html#gaa9de8cdcc58245f0d43c98fef1a1ddcb',1,'tz::gl::vk2']]], + ['sign_47',['sign',['../group__tzsl__math.html#ga456f66d300ef1a241332db1b3a4adc3f',1,'tz::math']]], + ['signal_48',['signal',['../classtz_1_1gl_1_1vk2_1_1_timeline_semaphore.html#a07294686a9c9007d9eea477648ddb307',1,'tz::gl::vk2::TimelineSemaphore']]], + ['signal_5ffence_49',['signal_fence',['../structtz_1_1gl_1_1vk2_1_1_swapchain_1_1_image_acquisition.html#a647f591e840a676dbcb5755ec6c0f940',1,'tz::gl::vk2::Swapchain::ImageAcquisition']]], + ['signal_5fsemaphore_50',['signal_semaphore',['../structtz_1_1gl_1_1vk2_1_1_swapchain_1_1_image_acquisition.html#ae57cd3f44536e214c569b1dc0e12a672',1,'tz::gl::vk2::Swapchain::ImageAcquisition']]], + ['signalinfo_51',['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_52',['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_53',['simplex',['../group__tzsl__noise.html#ga3281f996870e4b9f9a9173cd645d5be5',1,'tz::noise']]], + ['sin_54',['sin',['../group__tzsl__math.html#ga8c0f033ba72fe4acebee70271cfb2449',1,'tz::math']]], + ['size_55',['size',['../classtz_1_1gl_1_1vk2_1_1_buffer.html#a64c97088f04d5773f96498281c9332f9',1,'tz::gl::vk2::Buffer::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_1_polymorphic_list.html#a4ff3d2bc56929abcbea5811bff6bdbd7',1,'tz::PolymorphicList::size()'],['../classtz_1_1gl_1_1ogl2_1_1buffer.html#a0d4d708c2123da8a7fe330d9d71c958f',1,'tz::gl::ogl2::buffer::size()']]], + ['size_5fbytes_56',['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()']]], + ['smooth_5fstep_57',['smooth_step',['../group__tzsl__math.html#gae657986f8605cc005b02cbfdf92cd39c',1,'tz::math']]], + ['source_5faccess_58',['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_59',['source_loc',['../structtz_1_1detail_1_1source__loc.html',1,'tz::detail']]], + ['source_5fstage_60',['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_61',['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_62',['sqrt',['../group__tzsl__math.html#gaa2770f89b7066b4c45909e272d9e0b36',1,'tz::math']]], + ['src_63',['src',['../structtz_1_1gl_1_1vk2_1_1_vulkan_command_1_1_image_copy_image.html#a63e806b78fd1b7055dfec0ab254397ab',1,'tz::gl::vk2::VulkanCommand::ImageCopyImage::src()'],['../structtz_1_1gl_1_1vk2_1_1_vulkan_command_1_1_buffer_copy_buffer.html#a8259921b2c071f7edf4d7e2c6e0999cb',1,'tz::gl::vk2::VulkanCommand::BufferCopyBuffer::src()'],['../structtz_1_1gl_1_1vk2_1_1_vulkan_command_1_1_buffer_copy_image.html#adc3f50815eeb1485c20706f14b8db96d',1,'tz::gl::vk2::VulkanCommand::BufferCopyImage::src()']]], + ['src_5foffset_64',['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_65',['stack_allocator',['../classtz_1_1stack__allocator.html',1,'tz']]], + ['state_66',['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_67',['static_find',['../group__tz__core__algorithms.html#gac864efe5932f846519806594da168044',1,'tz']]], + ['static_5ffixed_68',['static_fixed',['../group__tz__gl__ogl2__buffers.html#ggae0f51febb963a7dc9fce3cc2208559a6acef5a454d703f41abcc7b138d3739664',1,'static_fixed()tz::gl::ogl2'],['../group__tz__gl2__res.html#ggac9293366fa49e7f476827595ca80fbbbacef5a454d703f41abcc7b138d3739664',1,'static_fixed()tz::gl']]], + ['static_5ffor_5ft_69',['static_for_t',['../structtz_1_1static__for__t.html',1,'tz']]], + ['static_5ffor_5ft_3c_20n_2c_20n_20_3e_70',['static_for_t< N, N >',['../structtz_1_1static__for__t_3_01_n_00_01_n_01_4.html',1,'tz']]], + ['stencil_5fload_71',['stencil_load',['../structtz_1_1gl_1_1vk2_1_1_attachment.html#ab30984f9945e854206e4bf29e38af63a',1,'tz::gl::vk2::Attachment']]], + ['stencil_5fstore_72',['stencil_store',['../structtz_1_1gl_1_1vk2_1_1_attachment.html#a706230ac490e18b82c21130bc887de78',1,'tz::gl::vk2::Attachment']]], + ['stencil_5ftesting_73',['stencil_testing',['../structtz_1_1gl_1_1vk2_1_1_depth_stencil_state.html#aec62502ba4fdab19d6223e9e87eac2e5',1,'tz::gl::vk2::DepthStencilState']]], + ['step_74',['step',['../group__tzsl__math.html#ga2d878b167178a4a3a07fc30818195451',1,'tz::math']]], + ['storagebuffer_75',['StorageBuffer',['../group__tz__gl__vk__buffer.html#gga0c6ff78fc058c3e209ba59dc1b2c02a6a439f57c2c466c89db942b3de48298b2b',1,'tz::gl::vk2']]], + ['storageimage_76',['StorageImage',['../group__tz__gl__vk__image.html#gga6ecb2d248a682aac08d93f4a7078161eaa078fa7ad769f9e7b53b8c42e3b7bbab',1,'tz::gl::vk2']]], + ['store_77',['Store',['../group__tz__gl__vk__graphics__pipeline__render__pass.html#ggab92f36711ba7bb90caf0e4a39748ed7dafdb0c388de01d545017cdf9ccf00eb72',1,'tz::gl::vk2']]], + ['storeop_78',['StoreOp',['../group__tz__gl__vk__graphics__pipeline__render__pass.html#gab92f36711ba7bb90caf0e4a39748ed7d',1,'tz::gl::vk2']]], + ['stride_79',['stride',['../structtz_1_1gl_1_1vk2_1_1_vertex_input_state_1_1_binding.html#a8e55514231fa7e83201c3c66d91e95ad',1,'tz::gl::vk2::VertexInputState::Binding']]], + ['submit_80',['submit',['../classtz_1_1gl_1_1vk2_1_1hardware_1_1_queue.html#a8a26295a1157308783f3606ddd47922e',1,'tz::gl::vk2::hardware::Queue']]], + ['submitinfo_81',['SubmitInfo',['../structtz_1_1gl_1_1vk2_1_1hardware_1_1_queue_1_1_submit_info.html',1,'tz::gl::vk2::hardware::Queue']]], + ['subpass_82',['Subpass',['../structtz_1_1gl_1_1vk2_1_1_render_pass_info_1_1_subpass.html',1,'tz::gl::vk2::RenderPassInfo']]], + ['subpassbuilder_83',['SubpassBuilder',['../classtz_1_1gl_1_1vk2_1_1_subpass_builder.html',1,'tz::gl::vk2']]], + ['subpasses_84',['subpasses',['../structtz_1_1gl_1_1vk2_1_1_render_pass_info.html#a2846060954915fb968c33e096f599ed8',1,'tz::gl::vk2::RenderPassInfo']]], + ['success_85',['success',['../structtz_1_1gl_1_1vk2_1_1_descriptor_pool_1_1_allocation_result.html#a424868084bfa9a4cb8f3eb6e81bcb1cc',1,'tz::gl::vk2::DescriptorPool::AllocationResult::success()'],['../structtz_1_1gl_1_1ogl2_1_1shader__module_1_1compile__result.html#a3e535f459659f236fc6fb31e7e94fc66',1,'tz::gl::ogl2::shader_module::compile_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_1ogl2_1_1shader_1_1link__result.html#adb1150f9cd51b32eb6cc1447bedc617d',1,'tz::gl::ogl2::shader::link_result::success()']]], + ['success_5fnoissue_86',['Success_NoIssue',['../classtz_1_1gl_1_1vk2_1_1hardware_1_1_queue.html#a85b458bfb664176d140abf3b6b627e67a87f6de9428b91fd7feaecc6df574ad08',1,'tz::gl::vk2::hardware::Queue']]], + ['success_5fsuboptimal_87',['Success_Suboptimal',['../classtz_1_1gl_1_1vk2_1_1hardware_1_1_queue.html#a85b458bfb664176d140abf3b6b627e67a2debf81c3d7e76f030f7d7577971f530',1,'tz::gl::vk2::hardware::Queue']]], + ['supported_88',['supported',['../classtz_1_1gl_1_1vk2_1_1_timeline_semaphore.html#af457dd163f8a75cf2f136cc49cf5d3bd',1,'tz::gl::vk2::TimelineSemaphore']]], + ['supports_5fimage_5fcolour_5fformat_89',['supports_image_colour_format',['../classtz_1_1gl_1_1vk2_1_1_physical_device.html#a988cc3ea73caa2a2e772db01d056afd0',1,'tz::gl::vk2::PhysicalDevice']]], + ['supports_5fimage_5fdepth_5fformat_90',['supports_image_depth_format',['../classtz_1_1gl_1_1vk2_1_1_physical_device.html#a768d8f636ffe994ccbe90dd05534d86c',1,'tz::gl::vk2::PhysicalDevice']]], + ['supports_5fimage_5fsampled_5fformat_91',['supports_image_sampled_format',['../classtz_1_1gl_1_1vk2_1_1_physical_device.html#a7ccfe2ddbd54d7fade6451e6bb037d4b',1,'tz::gl::vk2::PhysicalDevice']]], + ['supports_5fupdate_5fafter_5fbind_92',['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']]], + ['surfacepresentmode_93',['SurfacePresentMode',['../group__tz__gl__vk__presentation.html#ga8e6e925d93013e81273325bc8764577a',1,'tz::gl::vk2']]], + ['swapchain_94',['swapchain',['../structtz_1_1gl_1_1vk2_1_1_swapchain_image_info.html#a52a6891ccfa077153ff0a0a2f1ec4de5',1,'tz::gl::vk2::SwapchainImageInfo::swapchain()'],['../structtz_1_1gl_1_1vk2_1_1hardware_1_1_queue_1_1_present_info.html#a588d339e32335bc14df6785b5a53e285',1,'tz::gl::vk2::hardware::Queue::PresentInfo::swapchain()']]], + ['swapchain_95',['Swapchain',['../classtz_1_1gl_1_1vk2_1_1_swapchain.html#a21e69ef871b919a44c4b7d998170c298',1,'tz::gl::vk2::Swapchain::Swapchain()'],['../classtz_1_1gl_1_1vk2_1_1_swapchain.html',1,'tz::gl::vk2::Swapchain']]], + ['swapchain_5fimage_5fcount_5fminimum_96',['swapchain_image_count_minimum',['../structtz_1_1gl_1_1vk2_1_1_swapchain_info.html#a9526addcd9a0a9a5b1d54ef5905ad91c',1,'tz::gl::vk2::SwapchainInfo']]], + ['swapchain_5fimage_5findex_97',['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_98',['SwapchainExtent',['../structtz_1_1gl_1_1vk2_1_1_physical_device_surface_capability_info_1_1_swapchain_extent.html',1,'tz::gl::vk2::PhysicalDeviceSurfaceCapabilityInfo']]], + ['swapchainimageinfo_99',['SwapchainImageInfo',['../structtz_1_1gl_1_1vk2_1_1_swapchain_image_info.html',1,'tz::gl::vk2']]], + ['swapchaininfo_100',['SwapchainInfo',['../structtz_1_1gl_1_1vk2_1_1_swapchain_info.html',1,'tz::gl::vk2']]], + ['swizzle_101',['swizzle',['../classtz_1_1vector.html#a8eb40003afd7a439c49c08810da3d119',1,'tz::vector']]], + ['synchronisation_20primitives_102',['Synchronisation Primitives',['../group__tz__gl__vk__sync.html',1,'']]], + ['system_5ftime_103',['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..804a7569bd --- /dev/null +++ b/search/all_13.js @@ -0,0 +1,63 @@ +var searchData= +[ + ['action_0',['action',['../concepttz_1_1action.html',1,'tz']]], + ['allocator_1',['allocator',['../concepttz_1_1allocator.html',1,'tz']]], + ['arithmetic_2',['arithmetic',['../concepttz_1_1arithmetic.html',1,'tz']]], + ['atomic_3',['atomic',['../namespacetz_1_1atomic.html',1,'tz']]], + ['buffer_5fcomponent_5ftype_4',['buffer_component_type',['../concepttz_1_1gl_1_1buffer__component__type.html',1,'tz::gl']]], + ['const_5ftype_5',['const_type',['../concepttz_1_1const__type.html',1,'tz']]], + ['debug_6',['debug',['../namespacetz_1_1debug.html',1,'tz']]], + ['device_5ftype_7',['device_type',['../concepttz_1_1gl_1_1device__type.html',1,'tz::gl']]], + ['enum_5fclass_8',['enum_class',['../concepttz_1_1enum__class.html',1,'tz']]], + ['format_5ftraits_9',['format_traits',['../namespacetz_1_1gl_1_1vk2_1_1format__traits.html',1,'tz::gl::vk2']]], + ['function_10',['function',['../concepttz_1_1function.html',1,'tz']]], + ['image_5fcomponent_5ftype_11',['image_component_type',['../concepttz_1_1gl_1_1image__component__type.html',1,'tz::gl']]], + ['job_5fsystem_5ftype_12',['job_system_type',['../concepttz_1_1job__system__type.html',1,'tz']]], + ['math_13',['math',['../namespacetz_1_1math.html',1,'tz']]], + ['matrix_14',['matrix',['../namespacetz_1_1matrix.html',1,'tz']]], + ['mesh_15',['mesh',['../namespacetz_1_1mesh.html',1,'tz']]], + ['native_5favailable_16',['native_available',['../concepttz_1_1native__available.html',1,'tz']]], + ['noise_17',['noise',['../namespacetz_1_1noise.html',1,'tz']]], + ['nullable_18',['nullable',['../concepttz_1_1nullable.html',1,'tz']]], + ['number_19',['number',['../concepttz_1_1number.html',1,'tz']]], + ['present_5ftraits_20',['present_traits',['../namespacetz_1_1gl_1_1vk2_1_1present__traits.html',1,'tz::gl::vk2']]], + ['renderer_5ftype_21',['renderer_type',['../concepttz_1_1gl_1_1renderer__type.html',1,'tz::gl']]], + ['tan_22',['tan',['../group__tzsl__math.html#ga58a5baa37cf0de905b3317b5db676f41',1,'tz::math']]], + ['target_23',['target',['../structtz_1_1gl_1_1ogl2_1_1buffer__info.html#aa5c1b17213c136ff8878733aa22e7fa2',1,'tz::gl::ogl2::buffer_info']]], + ['target_5flayout_24',['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_25',['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_26',['tessellation_control',['../group__tz__gl__ogl2__shader.html#gga6f74da2ab2ba8d9a9e73815fa16ac5f4a020b3c0169faf87abaa8931b92883373',1,'tz::gl::ogl2']]], + ['tessellation_5fevaluation_27',['tessellation_evaluation',['../group__tz__gl__ogl2__shader.html#gga6f74da2ab2ba8d9a9e73815fa16ac5f4a2859aa43f543537a942fcca51e45b974',1,'tz::gl::ogl2']]], + ['tessellationcontrolshader_28',['TessellationControlShader',['../group__tz__gl__vk__graphics__pipeline.html#ggaa581c5a329a76e48f41ca02bd263251aae1bc6b887951aa3ad70f1cdebd02aa7c',1,'tz::gl::vk2']]], + ['tessellationevaluationshader_29',['TessellationEvaluationShader',['../group__tz__gl__vk__graphics__pipeline.html#ggaa581c5a329a76e48f41ca02bd263251aa8dbef1b4099311308f1297f6fb54c1b8',1,'tz::gl::vk2']]], + ['tessellationshaders_30',['TessellationShaders',['../group__tz__gl__vk__extension.html#gga6744c8f7d1276d6d9ae861b21c489505a0fc969c0579e0ecc3324615f8eff626d',1,'tz::gl::vk2']]], + ['timeline_5ft_31',['timeline_t',['../structtz_1_1gl_1_1timeline__t.html',1,'tz::gl']]], + ['timelinesemaphore_32',['TimelineSemaphore',['../classtz_1_1gl_1_1vk2_1_1_timeline_semaphore.html#ae4480f9d0ce9716aadc581aa0769c2ea',1,'tz::gl::vk2::TimelineSemaphore::TimelineSemaphore()'],['../classtz_1_1gl_1_1vk2_1_1_timeline_semaphore.html',1,'tz::gl::vk2::TimelineSemaphore']]], + ['timelinesemaphores_33',['TimelineSemaphores',['../group__tz__gl__vk__extension.html#gga6744c8f7d1276d6d9ae861b21c489505a2ba71b83fa5ce2f8870a1259a92cd76b',1,'tz::gl::vk2']]], + ['timeout_34',['timeout',['../structtz_1_1gl_1_1vk2_1_1_swapchain_1_1_image_acquisition.html#a61c55696db6f8a36d378df188bada03a',1,'tz::gl::vk2::Swapchain::ImageAcquisition']]], + ['title_35',['title',['../structtz_1_1wsi_1_1window__info.html#a0395b7dd58ed3b717fb8be002439c637',1,'tz::wsi::window_info']]], + ['to_5ffit_5flayout_36',['to_fit_layout',['../structtz_1_1gl_1_1vk2_1_1_descriptor_pool_info.html#ac78c3e3e5641dd67c83df522f8b2ed36',1,'tz::gl::vk2::DescriptorPoolInfo']]], + ['to_5fstring_37',['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_38',['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_39',['Top',['../group__tz__gl__vk__graphics__pipeline.html#ggaa581c5a329a76e48f41ca02bd263251aaa4ffdcf0dc1f31b9acaf295d75b51d00',1,'tz::gl::vk2']]], + ['topazplatformdata_40',['TopazPlatformData',['../structtz_1_1dbgui_1_1_topaz_platform_data.html',1,'tz::dbgui']]], + ['topazrenderdata_41',['TopazRenderData',['../structtz_1_1dbgui_1_1_topaz_render_data.html',1,'tz::dbgui']]], + ['topazshaderrenderdata_42',['TopazShaderRenderData',['../structtz_1_1dbgui_1_1_topaz_shader_render_data.html',1,'tz::dbgui']]], + ['total_5fcolour_5fattachment_5fcount_43',['total_colour_attachment_count',['../structtz_1_1gl_1_1vk2_1_1_render_pass_info.html#a6b297fd26ffa2f186988fc661cdc40e4',1,'tz::gl::vk2::RenderPassInfo']]], + ['total_5finput_5fattachment_5fcount_44',['total_input_attachment_count',['../structtz_1_1gl_1_1vk2_1_1_render_pass_info.html#a05532d112562a54c89eb7ad4ce722b01',1,'tz::gl::vk2::RenderPassInfo']]], + ['transfercommands_45',['TransferCommands',['../group__tz__gl__vk__graphics__pipeline.html#ggaa581c5a329a76e48f41ca02bd263251aa6ceeb738294823c48050af12328d0606',1,'tz::gl::vk2']]], + ['transferdestination_46',['TransferDestination',['../group__tz__gl__vk__image.html#gga6ecb2d248a682aac08d93f4a7078161ea9cecc9065ff3b79e09391fcbfb7b9ce9',1,'TransferDestination()tz::gl::vk2'],['../group__tz__gl__vk__image.html#gga4ca55be3d1c101900d800a78deeb595fa9cecc9065ff3b79e09391fcbfb7b9ce9',1,'TransferDestination()tz::gl::vk2'],['../group__tz__gl__vk__buffer.html#gga0c6ff78fc058c3e209ba59dc1b2c02a6a9cecc9065ff3b79e09391fcbfb7b9ce9',1,'TransferDestination()tz::gl::vk2']]], + ['transferoperationread_47',['TransferOperationRead',['../group__tz__gl__vk__graphics__pipeline__render__pass.html#ggaa5dd0142a36cd59d14dff54eed67c3dfa9e73033c1e7e3a919d6bc35d007c5fdd',1,'tz::gl::vk2']]], + ['transferoperationwrite_48',['TransferOperationWrite',['../group__tz__gl__vk__graphics__pipeline__render__pass.html#ggaa5dd0142a36cd59d14dff54eed67c3dfac3de85a886292aa73480d52a5cfeb2df',1,'tz::gl::vk2']]], + ['transfersource_49',['TransferSource',['../group__tz__gl__vk__buffer.html#gga0c6ff78fc058c3e209ba59dc1b2c02a6a8c4df84c9e73cf86122034f85efac361',1,'TransferSource()tz::gl::vk2'],['../group__tz__gl__vk__image.html#gga4ca55be3d1c101900d800a78deeb595fa8c4df84c9e73cf86122034f85efac361',1,'TransferSource()tz::gl::vk2'],['../group__tz__gl__vk__image.html#gga6ecb2d248a682aac08d93f4a7078161ea8c4df84c9e73cf86122034f85efac361',1,'TransferSource()tz::gl::vk2']]], + ['transitionimagelayout_50',['TransitionImageLayout',['../structtz_1_1gl_1_1vk2_1_1_vulkan_command_1_1_transition_image_layout.html',1,'tz::gl::vk2::VulkanCommand']]], + ['translate_51',['translate',['../group__tz__core.html#gacea5d629885bd9192ee6e9325a236707',1,'tz']]], + ['transpose_52',['transpose',['../classtz_1_1matrix.html#a438a39d4cab41797bcab3df105e66d3a',1,'tz::matrix::transpose()'],['../group__tzsl__matrix.html#ga96a675595f89d8f83464db22e7d54b4d',1,'tz::matrix::transpose()']]], + ['tri_5fcount_53',['tri_count',['../structtz_1_1gl_1_1render__state_1_1_graphics.html#a0e082f315122781cecfbc7063397c063',1,'tz::gl::render_state::Graphics']]], + ['trivially_5fcopyable_54',['trivially_copyable',['../concepttz_1_1trivially__copyable.html',1,'tz']]], + ['trunc_55',['trunc',['../group__tzsl__math.html#ga2bff4ac0c236ad62c302464b9eb35c74',1,'tz::math']]], + ['type_56',['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_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_shader_module_info.html#abeabe0b864600f592c31a022538d898e',1,'tz::gl::vk2::ShaderModuleInfo::type()']]], + ['tzsl_20api_20reference_57',['TZSL API Reference',['../group__tzsl.html',1,'']]], + ['window_5fapi_58',['window_api',['../concepttz_1_1wsi_1_1window__api.html',1,'tz::wsi']]], + ['window_5fflag_59',['window_flag',['../namespacetz_1_1wsi_1_1window__flag.html',1,'tz::wsi']]] +]; diff --git a/search/all_14.js b/search/all_14.js new file mode 100644 index 0000000000..2c51b1b9f4 --- /dev/null +++ b/search/all_14.js @@ -0,0 +1,19 @@ +var searchData= +[ + ['undefined_0',['undefined',['../group__tz__gl__vk__image.html#ggaf7d399489dcebca1c95d5852c8d7ec6ea5e543256c480ac577d30f76f9120eb74',1,'undefined()tz::gl::vk2'],['../group__tz__gl2.html#gga79b99b79311ee4f6dd10a6dfada3a235a5e543256c480ac577d30f76f9120eb74',1,'undefined()tz::gl']]], + ['undefined_1',['Undefined',['../group__tz__gl__vk__image.html#gga4ca55be3d1c101900d800a78deeb595faec0fc0100c4fc1ce4eea230c3dc10360',1,'tz::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']]], + ['unique_5fcloneable_5',['unique_cloneable',['../classtz_1_1unique__cloneable.html',1,'tz']]], + ['unique_5fcloneable_3c_20ioutput_20_3e_6',['unique_cloneable< ioutput >',['../classtz_1_1unique__cloneable.html',1,'tz']]], + ['unique_5fcloneable_3c_20iresource_20_3e_7',['unique_cloneable< iresource >',['../classtz_1_1unique__cloneable.html',1,'tz']]], + ['unmap_8',['unmap',['../classtz_1_1gl_1_1vk2_1_1_buffer.html#aaa1d3c3487d41c2ee041f6f2d054edf2',1,'tz::gl::vk2::Buffer::unmap()'],['../classtz_1_1gl_1_1ogl2_1_1buffer.html#a481748197cd593bb075e007b84bfba79',1,'tz::gl::ogl2::buffer::unmap()']]], + ['unsignal_9',['unsignal',['../classtz_1_1gl_1_1vk2_1_1_fence.html#a080cf8b09fac04e088098854772d9951',1,'tz::gl::vk2::Fence']]], + ['update_5fsets_10',['update_sets',['../classtz_1_1gl_1_1vk2_1_1_descriptor_pool.html#ab99505bc197bd835c0a7026f5591138a',1,'tz::gl::vk2::DescriptorPool::update_sets(const DescriptorSet::WriteList &writes)'],['../classtz_1_1gl_1_1vk2_1_1_descriptor_pool.html#a4b369fb5533bf5c1faccde6b2e4065fb',1,'tz::gl::vk2::DescriptorPool::update_sets(UpdateRequest update_request)']]], + ['updateafterbind_11',['UpdateAfterBind',['../group__tz__gl__vk__descriptors.html#ggaf15b5e240b6c64c9dad040171f553123a4b8308424b6fb4b70803778cfc461015',1,'tz::gl::vk2']]], + ['updaterequest_12',['UpdateRequest',['../classtz_1_1gl_1_1vk2_1_1_descriptor_pool_1_1_update_request.html',1,'tz::gl::vk2::DescriptorPool']]], + ['updateunusedwhilepending_13',['UpdateUnusedWhilePending',['../group__tz__gl__vk__descriptors.html#ggaf15b5e240b6c64c9dad040171f553123a74985606c2a8d95e3aa784b1f882ba44',1,'tz::gl::vk2']]], + ['usage_14',['usage',['../structtz_1_1gl_1_1vk2_1_1image__info.html#a3af56255762adba4570abd348f3eca62',1,'tz::gl::vk2::image_info::usage()'],['../structtz_1_1gl_1_1vk2_1_1buffer__info.html#ace18d8d8f8032d2ed6e5b5fc0edf4bcb',1,'tz::gl::vk2::buffer_info::usage()']]], + ['use_15',['use',['../classtz_1_1gl_1_1_shader_manager.html#a5e03637f5d12b0734ec1688442e757a0',1,'tz::gl::ShaderManager::use()'],['../classtz_1_1gl_1_1ogl2_1_1shader.html#aa2fe4a134158ffbd322f513cf3ad5521',1,'tz::gl::ogl2::shader::use()']]] +]; diff --git a/search/all_15.js b/search/all_15.js new file mode 100644 index 0000000000..1c79386bf7 --- /dev/null +++ b/search/all_15.js @@ -0,0 +1,57 @@ +var searchData= +[ + ['valid_0',['valid',['../structtz_1_1gl_1_1vk2_1_1_graphics_pipeline_info.html#ac8f560b25cb670c3cb4a41121c542d5c',1,'tz::gl::vk2::GraphicsPipelineInfo::valid()'],['../structtz_1_1gl_1_1vk2_1_1_framebuffer_info.html#a13d747ebb95030a11b81a5b8ada449a0',1,'tz::gl::vk2::FramebufferInfo::valid()']]], + ['valid_5fdevice_1',['valid_device',['../structtz_1_1gl_1_1vk2_1_1_graphics_pipeline_info.html#a8537647952eb07d190af2c496290435c',1,'tz::gl::vk2::GraphicsPipelineInfo']]], + ['values_5fmake_5fsense_2',['values_make_sense',['../structtz_1_1gl_1_1vk2_1_1_render_pass_info.html#a6e0f6d3e4801750361964ec51d5f3072',1,'tz::gl::vk2::RenderPassInfo']]], + ['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#a41188385317ac161eb0b239259bdb8b0',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#ga4b500b8666e760063edc172cb280f4f2',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#gaeb673c77ceb1e2d5289ac7bc977e66d7',1,'tz']]], + ['vec2i32_11',['vec2i32',['../group__tz__core.html#ga1c967bba7c2027b7738b6a0798c18c15',1,'tz']]], + ['vec2ui_12',['vec2ui',['../group__tz__core.html#gabce09c8b4e26d90dc635bac270409446',1,'tz']]], + ['vec2ui32_13',['vec2ui32',['../group__tz__core.html#ga1763b2b7362903f95550f53ff600ad41',1,'tz']]], + ['vec3_14',['vec3',['../group__tz__core.html#gac1b06779454378269e26ff4ed1c7dae1',1,'tz']]], + ['vec3float48_15',['Vec3Float48',['../group__tz__gl__vk__graphics__pipeline__fixed.html#gga486655233c597343f461a27c5316d087a0ac49216ffcaddb289c055a77cda7470',1,'tz::gl::vk2']]], + ['vec3float96_16',['Vec3Float96',['../group__tz__gl__vk__graphics__pipeline__fixed.html#gga486655233c597343f461a27c5316d087aa83f4627a492b41eb080400fd6af72fa',1,'tz::gl::vk2']]], + ['vec3i_17',['vec3i',['../group__tz__core.html#gaf7a85653724742ec760ce7b235da6129',1,'tz']]], + ['vec3i32_18',['vec3i32',['../group__tz__core.html#gaa2f4237a48572fed764fab053fc886c9',1,'tz']]], + ['vec3ui_19',['vec3ui',['../group__tz__core.html#ga19dd8bf4ec1e7bc5fdebd46be0a05a24',1,'tz']]], + ['vec3ui32_20',['vec3ui32',['../group__tz__core.html#ga1c71a24411b5ee614390bceb07fbaf15',1,'tz']]], + ['vec4_21',['vec4',['../group__tz__core.html#gaae09d3e76514192ebe00d5a551a61326',1,'tz']]], + ['vec4float128_22',['Vec4Float128',['../group__tz__gl__vk__graphics__pipeline__fixed.html#gga486655233c597343f461a27c5316d087aeb8909da84a3e8acc08c00ad1c61f9b7',1,'tz::gl::vk2']]], + ['vec4float64_23',['Vec4Float64',['../group__tz__gl__vk__graphics__pipeline__fixed.html#gga486655233c597343f461a27c5316d087a39af6f9354b09edb13fbd0c1c77130f9',1,'tz::gl::vk2']]], + ['vec4i_24',['vec4i',['../group__tz__core.html#ga7752a7bdae2b4e236f3137656785b211',1,'tz']]], + ['vec4i32_25',['vec4i32',['../group__tz__core.html#gab092759570d8b1513cc23e0c216042f7',1,'tz']]], + ['vec4ui_26',['vec4ui',['../group__tz__core.html#gab8a3005166aaed11a1867c89f69026a0',1,'tz']]], + ['vec4ui32_27',['vec4ui32',['../group__tz__core.html#ga41b71720e61b245bed6d6aaddb17a906',1,'tz']]], + ['vector_28',['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_204_20_3e_29',['vector< float, 4 >',['../classtz_1_1vector.html',1,'tz']]], + ['vector_3c_20std_3a_3auint32_5ft_2c_202_20_3e_30',['vector< std::uint32_t, 2 >',['../classtz_1_1vector.html',1,'tz']]], + ['vector_3c_20unsigned_20int_2c_202_20_3e_31',['vector< unsigned int, 2 >',['../classtz_1_1vector.html',1,'tz']]], + ['vector_3c_20unsigned_20int_2c_203_20_3e_32',['vector< unsigned int, 3 >',['../classtz_1_1vector.html',1,'tz']]], + ['version_33',['version',['../structtz_1_1version.html',1,'tz::version'],['../structtz_1_1initialise__info.html#ad869820ee345fd5b23e8afe5ef4bf40d',1,'tz::initialise_info::version()']]], + ['vertex_34',['vertex',['../group__tz__gl__ogl2__shader.html#gga6f74da2ab2ba8d9a9e73815fa16ac5f4a2b5bc093b09bd81f51de433bde9d202a',1,'tz::gl::ogl2']]], + ['vertex_5farray_35',['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_36',['vertex_count',['../structtz_1_1gl_1_1vk2_1_1_vulkan_command_1_1_draw.html#aa20ea4668944d738431db311f2a67ea5',1,'tz::gl::vk2::VulkanCommand::Draw']]], + ['vertexbuffer_37',['VertexBuffer',['../group__tz__gl__vk__buffer.html#gga0c6ff78fc058c3e209ba59dc1b2c02a6a10461f19cdb5aadba2fc9986be6400bd',1,'tz::gl::vk2']]], + ['vertexbufferread_38',['VertexBufferRead',['../group__tz__gl__vk__graphics__pipeline__render__pass.html#ggaa5dd0142a36cd59d14dff54eed67c3dfaec21703627e9de694102e22b1f2542c0',1,'tz::gl::vk2']]], + ['vertexindexinput_39',['VertexIndexInput',['../group__tz__gl__vk__graphics__pipeline.html#ggaa581c5a329a76e48f41ca02bd263251aa1311d08fb1f8b78c1be3ebb4c53c0e80',1,'tz::gl::vk2']]], + ['vertexinputformat_40',['VertexInputFormat',['../group__tz__gl__vk__graphics__pipeline__fixed.html#ga486655233c597343f461a27c5316d087',1,'tz::gl::vk2']]], + ['vertexinputstate_41',['VertexInputState',['../structtz_1_1gl_1_1vk2_1_1_vertex_input_state.html',1,'tz::gl::vk2']]], + ['vertexpipelineresourcewrite_42',['VertexPipelineResourceWrite',['../group__tz__gl__vk__extension.html#gga6744c8f7d1276d6d9ae861b21c489505ab77badc545def5f132a116dcfab8e272',1,'tz::gl::vk2']]], + ['vertexshader_43',['VertexShader',['../group__tz__gl__vk__graphics__pipeline.html#ggaa581c5a329a76e48f41ca02bd263251aaeb3ca4dac3e206977e0b7d998eefcc33',1,'tz::gl::vk2']]], + ['view_44',['view',['../group__tz__core.html#ga26c5e69afcfbedae7d168b332682483f',1,'tz']]], + ['viewport_5fregion_45',['viewport_region',['../structtz_1_1gl_1_1viewport__region.html',1,'tz::gl']]], + ['viewportstate_46',['ViewportState',['../structtz_1_1gl_1_1vk2_1_1_viewport_state.html',1,'tz::gl::vk2']]], + ['vulkan_47',['Vulkan',['../group__tz__gl2__graphicsapi__vk.html',1,'']]], + ['vulkan_20backend_48',['Vulkan Backend',['../group__tz__gl__vk.html',1,'']]], + ['vulkan_20frontend_49',['Vulkan Frontend',['../group__tz__gl2__graphicsapi__vk__frontend.html',1,'']]], + ['vulkancommand_50',['VulkanCommand',['../structtz_1_1gl_1_1vk2_1_1_vulkan_command.html',1,'tz::gl::vk2']]], + ['vulkandebugmessenger_51',['VulkanDebugMessenger',['../classtz_1_1gl_1_1vk2_1_1_vulkan_debug_messenger.html',1,'tz::gl::vk2']]], + ['vulkaninstance_52',['VulkanInstance',['../classtz_1_1gl_1_1vk2_1_1_vulkan_instance.html',1,'tz::gl::vk2']]], + ['vulkaninstanceinfo_53',['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..9186c4c56a --- /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_11',['Window',['../group__tz__wsi__window.html',1,'']]], + ['window_12',['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_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#gaa8a7c8f4b4100e13296148889dacc02d',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_5finfo_18',['window_info',['../structtz_1_1wsi_1_1window__info.html',1,'tz::wsi']]], + ['window_5fmanager_19',['window_manager',['../structtz_1_1wsi_1_1window__manager.html',1,'tz::wsi']]], + ['window_5foutput_20',['window_output',['../classtz_1_1gl_1_1window__output.html',1,'tz::gl']]], + ['window_5fwinapi_21',['window_winapi',['../classtz_1_1wsi_1_1impl_1_1window__winapi.html',1,'tz::wsi::impl']]], + ['window_5fx11_22',['window_x11',['../classtz_1_1wsi_1_1impl_1_1window__x11.html',1,'tz::wsi::impl']]], + ['windowsurface_23',['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_24',['wireframe_mode',['../structtz_1_1gl_1_1renderer__edit_1_1render__config.html#a1f284abaf7a4ca67423539505b8b572c',1,'tz::gl::renderer_edit::render_config::wireframe_mode()'],['../structtz_1_1gl_1_1render__state_1_1_graphics.html#a5289b1d526838e9d3e855ec3ea0b7b55',1,'tz::gl::render_state::Graphics::wireframe_mode()']]], + ['with_5fattachment_25',['with_attachment',['../classtz_1_1gl_1_1vk2_1_1_render_pass_builder.html#aacae02f036f07e6f321ac35420819ffe',1,'tz::gl::vk2::RenderPassBuilder']]], + ['with_5fbinding_26',['with_binding',['../classtz_1_1gl_1_1vk2_1_1_descriptor_layout_builder.html#a35bee4b07c0c343b53520a5f9c693691',1,'tz::gl::vk2::DescriptorLayoutBuilder']]], + ['with_5fcolour_5fattachment_27',['with_colour_attachment',['../classtz_1_1gl_1_1vk2_1_1_subpass_builder.html#ae944eb1b322cc08eb4a9f7105cdab265',1,'tz::gl::vk2::SubpassBuilder']]], + ['with_5fdepth_5fstencil_5fattachment_28',['with_depth_stencil_attachment',['../classtz_1_1gl_1_1vk2_1_1_subpass_builder.html#af3b5e86fed158d329db4b084556eab85',1,'tz::gl::vk2::SubpassBuilder']]], + ['with_5finput_5fattachment_29',['with_input_attachment',['../classtz_1_1gl_1_1vk2_1_1_subpass_builder.html#a732e8dc67451e314bae38faf24cd1fa6',1,'tz::gl::vk2::SubpassBuilder']]], + ['with_5fmore_30',['with_more',['../classtz_1_1vector.html#a2ca6acb21aba2f36f341688ffa7e7101',1,'tz::vector::with_more(T &&end) const'],['../classtz_1_1vector.html#ac484780fbef820de4004781a119a56d1',1,'tz::vector::with_more(const vector< T, S2 > &end) const']]], + ['with_5fsubpass_31',['with_subpass',['../classtz_1_1gl_1_1vk2_1_1_render_pass_builder.html#a2d7d398247571d6314e727923d8f7160',1,'tz::gl::vk2::RenderPassBuilder']]], + ['write_32',['Write',['../structtz_1_1gl_1_1vk2_1_1_descriptor_set_1_1_write.html',1,'tz::gl::vk2::DescriptorSet']]], + ['write_5finfos_33',['write_infos',['../structtz_1_1gl_1_1vk2_1_1_descriptor_set_1_1_write.html#af4094e04b87ad5da6c8c8861bf9dfb73',1,'tz::gl::vk2::DescriptorSet::Write']]] +]; 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..eb6e0f02e6 --- /dev/null +++ b/search/all_2.js @@ -0,0 +1,60 @@ +var searchData= +[ + ['c_2b_2b_20api_20reference_0',['C++ API Reference',['../group__tz__cpp.html',1,'']]], + ['callback_1',['callback',['../classtz_1_1callback.html#a85749b9e53db2369605d02d48bd9d967',1,'tz::callback::callback()'],['../classtz_1_1callback.html',1,'tz::callback< Args >']]], + ['callback_5fhandle_2',['callback_handle',['../group__tz__core.html#gac216f70e5e67728d93138613a7e03f4b',1,'tz']]], + ['callback_5ftype_3',['callback_type',['../structtz_1_1detail_1_1callback__type.html',1,'tz::detail']]], + ['cas_4',['cas',['../group__tzsl__atomic.html#ga17a4dea83f60906651d0b557ad770bbc',1,'tz::atomic']]], + ['ceil_5',['ceil',['../group__tzsl__math.html#ga8028220d2f0dd80f9111d54f1079bcc7',1,'tz::math']]], + ['claims_5fkeyboard_6',['claims_keyboard',['../group__tz__dbgui.html#gae9289fba934f3184929dea07db97e28f',1,'tz::dbgui']]], + ['claims_5fmouse_7',['claims_mouse',['../group__tz__dbgui.html#ga36e08fae37ee7e26149c1ba247f54ce9',1,'tz::dbgui']]], + ['clamp_8',['clamp',['../group__tzsl__math.html#ga42282f727b67dab6da08e0366ba7787e',1,'tz::math']]], + ['clamp_5fto_5fedge_9',['clamp_to_edge',['../group__tz__gl__ogl2__image.html#gga52bed615aea0b883aeb6702716f95e5ba7ff5ead6fef18ca5f63119754ac76c3e',1,'tz::gl::ogl2']]], + ['clamptoborder_10',['ClampToBorder',['../group__tz__gl__vk__image.html#gga8d6daa8ff20537f40f5e1145342c2d4dafb07f88f6f11cc5ab9c951290716f147',1,'tz::gl::vk2']]], + ['clamptoedge_11',['ClampToEdge',['../group__tz__gl__vk__image.html#gga8d6daa8ff20537f40f5e1145342c2d4da74556551231333c36debc3d373261134',1,'tz::gl::vk2']]], + ['clear_12',['Clear',['../group__tz__gl__vk__graphics__pipeline__render__pass.html#ggaa1e0e627270d80ef86624590afc5a03fadc30bc0c7914db5918da4263fce93ad2',1,'tz::gl::vk2']]], + ['clear_13',['clear',['../classtz_1_1gl_1_1vk2_1_1_descriptor_pool.html#acd851070777e0879bfd7054ce510ed8d',1,'tz::gl::vk2::DescriptorPool::clear()'],['../classtz_1_1gl_1_1vk2_1_1_descriptor_layout_builder.html#a9859251d15b9bbe21a08b13855b075fa',1,'tz::gl::vk2::DescriptorLayoutBuilder::clear()'],['../classtz_1_1gl_1_1ogl2_1_1framebuffer.html#a1e682cc908ff6243ac981746c88de982',1,'tz::gl::ogl2::framebuffer::clear()'],['../classtz_1_1_polymorphic_list.html#a4b4801429d2e32a6d7a7c6c25ac26adc',1,'tz::PolymorphicList::clear()'],['../classtz_1_1basic__list.html#a5a9fe1832b83930a03bdc598b6f48f42',1,'tz::basic_list::clear()']]], + ['clear_5fcolour_14',['clear_colour',['../structtz_1_1gl_1_1render__state_1_1_graphics.html#afdbf39b5e5e727154eb35092a5f3329e',1,'tz::gl::render_state::Graphics']]], + ['clicked_15',['clicked',['../group__tz__wsi__mouse.html#gga089bafa0df7fa17353dbf27087a1f65ba90c655064697116004fbac6936e898d1',1,'tz::wsi']]], + ['clone_5fresized_16',['clone_resized',['../group__tz__gl__ogl2__buffers.html#ga66311328d0ac73108c1dac80a670255b',1,'tz::gl::ogl2::buffer_helper']]], + ['code_17',['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_18',['colour_attachment_count',['../classtz_1_1gl_1_1ogl2_1_1framebuffer.html#a899e633ce1e2005e942c7e417d8208ce',1,'tz::gl::ogl2::framebuffer']]], + ['colour_5fattachments_19',['colour_attachments',['../structtz_1_1gl_1_1ogl2_1_1framebuffer__info.html#a0324e63f72ec4d93575ccb38fadd7de1',1,'tz::gl::ogl2::framebuffer_info::colour_attachments()'],['../structtz_1_1gl_1_1vk2_1_1_render_pass_info_1_1_subpass.html#a78935dad7d990fd89a296c5413c5e785',1,'tz::gl::vk2::RenderPassInfo::Subpass::colour_attachments()']]], + ['colour_5fdepth_5fload_20',['colour_depth_load',['../structtz_1_1gl_1_1vk2_1_1_attachment.html#a9628702d918a421bec8187e149534448',1,'tz::gl::vk2::Attachment']]], + ['colour_5fdepth_5fstore_21',['colour_depth_store',['../structtz_1_1gl_1_1vk2_1_1_attachment.html#a9979e498a459dc213e34d613f2d5c9be',1,'tz::gl::vk2::Attachment']]], + ['colourattachment_22',['ColourAttachment',['../group__tz__gl__vk__image.html#gga4ca55be3d1c101900d800a78deeb595fa19c3378429e6e0fce64ea1de4290a6d5',1,'ColourAttachment()tz::gl::vk2'],['../group__tz__gl__vk__image.html#gga6ecb2d248a682aac08d93f4a7078161ea19c3378429e6e0fce64ea1de4290a6d5',1,'ColourAttachment()tz::gl::vk2']]], + ['colourattachmentoutput_23',['ColourAttachmentOutput',['../group__tz__gl__vk__graphics__pipeline.html#ggaa581c5a329a76e48f41ca02bd263251aaec356eeffd7d26280475eadca9140604',1,'tz::gl::vk2']]], + ['colourattachmentread_24',['ColourAttachmentRead',['../group__tz__gl__vk__graphics__pipeline__render__pass.html#ggaa5dd0142a36cd59d14dff54eed67c3dfa94913a4c01c391312dd5de73eda8f3e2',1,'tz::gl::vk2']]], + ['colourattachmentwrite_25',['ColourAttachmentWrite',['../group__tz__gl__vk__graphics__pipeline__render__pass.html#ggaa5dd0142a36cd59d14dff54eed67c3dfa2f4e5868ed1ef1abb6e450f2040633f7',1,'tz::gl::vk2']]], + ['colourblendlogicaloperations_26',['ColourBlendLogicalOperations',['../group__tz__gl__vk__extension.html#gga6744c8f7d1276d6d9ae861b21c489505a5c5e6dcae77164cee63d668af3b3bc9e',1,'tz::gl::vk2']]], + ['colourblendstate_27',['ColourBlendState',['../structtz_1_1gl_1_1vk2_1_1_colour_blend_state.html',1,'tz::gl::vk2']]], + ['column_28',['Column',['../classtz_1_1matrix.html#a9e61aa087f278ef2733ad65644796e80',1,'tz::matrix']]], + ['command_20buffers_20and_20pools_29',['Command Buffers and Pools',['../group__tz__gl__vk__commands.html',1,'']]], + ['command_5fbuffers_30',['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_31',['command_count',['../classtz_1_1gl_1_1vk2_1_1_command_buffer.html#a67c7bfe9c4368600d35d8b8484b06972',1,'tz::gl::vk2::CommandBuffer']]], + ['commandbuffer_32',['CommandBuffer',['../classtz_1_1gl_1_1vk2_1_1_command_buffer.html',1,'tz::gl::vk2']]], + ['commandbufferdata_33',['CommandBufferData',['../structtz_1_1gl_1_1vk2_1_1_command_buffer_data.html',1,'tz::gl::vk2']]], + ['commandbufferrecording_34',['CommandBufferRecording',['../classtz_1_1gl_1_1vk2_1_1_command_buffer_recording.html',1,'tz::gl::vk2']]], + ['commandpool_35',['CommandPool',['../classtz_1_1gl_1_1vk2_1_1_command_pool.html',1,'tz::gl::vk2']]], + ['commandpoolinfo_36',['CommandPoolInfo',['../structtz_1_1gl_1_1vk2_1_1_command_pool_info.html',1,'tz::gl::vk2']]], + ['common_5frenderer_5fdbgui_37',['common_renderer_dbgui',['../group__tz__gl2__renderer.html#ga9c3b9173cecb5e05ffa86811213c5ab0',1,'tz::gl']]], + ['compile_38',['compile',['../classtz_1_1gl_1_1ogl2_1_1shader__module.html#a0566183e70bb23740967df9e69c5afd4',1,'tz::gl::ogl2::shader_module']]], + ['compile_5fresult_39',['compile_result',['../structtz_1_1gl_1_1ogl2_1_1shader__module_1_1compile__result.html',1,'tz::gl::ogl2::shader_module']]], + ['compute_40',['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,'compute()tz::gl::ogl2']]], + ['compute_41',['Compute',['../structtz_1_1gl_1_1render__state_1_1_compute.html',1,'tz::gl::render_state']]], + ['compute_5fconfig_42',['compute_config',['../structtz_1_1gl_1_1renderer__edit_1_1compute__config.html',1,'tz::gl::renderer_edit']]], + ['computepipeline_43',['ComputePipeline',['../classtz_1_1gl_1_1vk2_1_1_compute_pipeline.html',1,'tz::gl::vk2']]], + ['computepipelineinfo_44',['ComputePipelineInfo',['../structtz_1_1gl_1_1vk2_1_1_compute_pipeline_info.html',1,'tz::gl::vk2']]], + ['contains_45',['contains',['../classtz_1_1gl_1_1vk2_1_1_descriptor_pool.html#ab3ba99062df8e90d09abccd6c0f6e6c6',1,'tz::gl::vk2::DescriptorPool::contains()'],['../classtz_1_1enum__field.html#abec7d6a4a2b4b81600760dd74f5b23c3',1,'tz::enum_field::contains(const enum_field< E > &field) const'],['../classtz_1_1enum__field.html#ae84e799eabd0c60f79eafdfa86b3d0d7',1,'tz::enum_field::contains(E type) const'],['../classtz_1_1basic__list.html#a296a4bc78b4a32394ee4e7c4f7d5140b',1,'tz::basic_list::contains()']]], + ['context_46',['context',['../structtz_1_1gl_1_1vk2_1_1_render_pass_info_1_1_subpass.html#a281d5c3c591828e87bc3405bd2911ecd',1,'tz::gl::vk2::RenderPassInfo::Subpass::context()'],['../structtz_1_1gl_1_1vk2_1_1_vulkan_command_1_1_bind_descriptor_sets.html#a86f62f989223c979fc35e98b4d88bcd1',1,'tz::gl::vk2::VulkanCommand::BindDescriptorSets::context()']]], + ['copy_47',['copy',['../group__tz__gl__ogl2__buffers.html#ga20a62c3c2f993f7680765d90634a7584',1,'tz::gl::ogl2::buffer_helper']]], + ['core_20functionality_48',['Core Functionality',['../group__tz__core.html',1,'']]], + ['cos_49',['cos',['../group__tzsl__math.html#ga2001fa3e32e884b9923308b485da6702',1,'tz::math']]], + ['count_50',['count',['../classtz_1_1enum__field.html#a74cd18aeadeffdaa17bd22068e34dc59',1,'tz::enum_field::count()'],['../structtz_1_1gl_1_1vk2_1_1_descriptor_layout_info_1_1_binding_info.html#ad41f8b98daabff26fc3692e064a1cf7b',1,'tz::gl::vk2::DescriptorLayoutInfo::BindingInfo::count()']]], + ['create_5frenderer_51',['create_renderer',['../classtz_1_1gl_1_1device.html#a8ac3063b712ef664852318e14830e64d',1,'tz::gl::device']]], + ['create_5fwindow_52',['create_window',['../group__tz__wsi__window.html#gac6059674ffff19966225cea5a7367a38',1,'tz::wsi']]], + ['cross_53',['cross',['../group__tzsl__math.html#ga7fd37ee5cfa25fcc727390773273eb88',1,'tz::math']]], + ['cull_5fmode_54',['cull_mode',['../structtz_1_1gl_1_1vk2_1_1_rasteriser_state.html#aaa4460c60b44ffb1f3e80197ac4fcc28',1,'tz::gl::vk2::RasteriserState']]], + ['cullmode_55',['CullMode',['../group__tz__gl__vk__graphics__pipeline__fixed.html#gaf55856ce9f281f90908bac12e0061e16',1,'tz::gl::vk2']]], + ['current_5flayout_56',['current_layout',['../structtz_1_1gl_1_1vk2_1_1_render_pass_info_1_1_attachment_reference.html#acae49fa7dc339f1ec0023e1e1c8495e4',1,'tz::gl::vk2::RenderPassInfo::AttachmentReference']]] +]; diff --git a/search/all_3.js b/search/all_3.js new file mode 100644 index 0000000000..1501e8247e --- /dev/null +++ b/search/all_3.js @@ -0,0 +1,104 @@ +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_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()']]], + ['days_3',['days',['../classtz_1_1duration.html#a9ebbab08c04bf01f2a14d6f65dc795f0',1,'tz::duration']]], + ['dbgui_4',['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_5',['Debug UI',['../group__tz__dbgui.html',1,'']]], + ['debug_5fget_5fname_6',['debug_get_name',['../classtz_1_1gl_1_1renderer__info.html#aad262d25b64ee45c5cd79faf8c6d5af0',1,'tz::gl::renderer_info']]], + ['debug_5fname_7',['debug_name',['../classtz_1_1gl_1_1renderer__info.html#a92f4e4d9f25acb3151987066df17db48',1,'tz::gl::renderer_info']]], + ['debugbeginlabel_8',['DebugBeginLabel',['../structtz_1_1gl_1_1vk2_1_1_vulkan_command_1_1_debug_begin_label.html',1,'tz::gl::vk2::VulkanCommand']]], + ['debugendlabel_9',['DebugEndLabel',['../structtz_1_1gl_1_1vk2_1_1_vulkan_command_1_1_debug_end_label.html',1,'tz::gl::vk2::VulkanCommand']]], + ['debugging_10',['Debugging',['../group__tzsl__debug.html',1,'']]], + ['debugmessenger_11',['DebugMessenger',['../group__tz__gl__vk__extension.html#ggaab3eb58740575c989d5eab8c3fd877a7ad69051b615fff4b893472a8289678385',1,'tz::gl::vk2']]], + ['debugnameable_12',['DebugNameable',['../classtz_1_1gl_1_1vk2_1_1_debug_nameable.html',1,'tz::gl::vk2']]], + ['debugnameable_3c_20vk_5fobject_5ftype_5fbuffer_20_3e_13',['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_14',['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_15',['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_16',['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_17',['DebugNameable< VK_OBJECT_TYPE_SEMAPHORE >',['../classtz_1_1gl_1_1vk2_1_1_debug_nameable.html',1,'tz::gl::vk2']]], + ['decompose_5fquaternion_18',['decompose_quaternion',['../group__tzsl__matrix.html#ga382271ea9bd62c983a9cc777d6c0baad',1,'tz::matrix']]], + ['delay_19',['delay',['../classtz_1_1delay.html#a8b18e64689f16949afe24964e132fe58',1,'tz::delay::delay()'],['../classtz_1_1delay.html',1,'tz::delay']]], + ['depth_5fbounds_5ftesting_20',['depth_bounds_testing',['../structtz_1_1gl_1_1vk2_1_1_depth_stencil_state.html#a8a69c0546708e59f2d62a97eb84dad78',1,'tz::gl::vk2::DepthStencilState']]], + ['depth_5fclamp_21',['depth_clamp',['../structtz_1_1gl_1_1vk2_1_1_rasteriser_state.html#ae4a83452fed0f5066719116dc1ccf1e5',1,'tz::gl::vk2::RasteriserState']]], + ['depth_5fcompare_5foperation_22',['depth_compare_operation',['../structtz_1_1gl_1_1vk2_1_1_depth_stencil_state.html#a0b4a3e700422e3e61fd80f022b474cd1',1,'tz::gl::vk2::DepthStencilState']]], + ['depth_5fstencil_5fattachment_23',['depth_stencil_attachment',['../structtz_1_1gl_1_1vk2_1_1_render_pass_info_1_1_subpass.html#a906565d089e012b5ee05dc5c2fa68472',1,'tz::gl::vk2::RenderPassInfo::Subpass']]], + ['depth_5ftesting_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#gga6ecb2d248a682aac08d93f4a7078161ea652fd1408b3de263e32147770a48931e',1,'DepthStencilAttachment()tz::gl::vk2'],['../group__tz__gl__vk__image.html#gga4ca55be3d1c101900d800a78deeb595fa652fd1408b3de263e32147770a48931e',1,'DepthStencilAttachment()tz::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#a9ef5579debbf8a3d6d758c714edaf3b8',1,'tz::gl::vk2::DescriptorLayout::DescriptorLayout()'],['../classtz_1_1gl_1_1vk2_1_1_descriptor_layout.html',1,'tz::gl::vk2::DescriptorLayout']]], + ['descriptorlayoutbuilder_39',['DescriptorLayoutBuilder',['../classtz_1_1gl_1_1vk2_1_1_descriptor_layout_builder.html#ab2892131f4b7b43aed19eda352dfef81',1,'tz::gl::vk2::DescriptorLayoutBuilder::DescriptorLayoutBuilder(DescriptorLayoutInfo existing_info)'],['../classtz_1_1gl_1_1vk2_1_1_descriptor_layout_builder.html#a44093ba76ad98d8c6209143c8f4de242',1,'tz::gl::vk2::DescriptorLayoutBuilder::DescriptorLayoutBuilder()=default'],['../classtz_1_1gl_1_1vk2_1_1_descriptor_layout_builder.html',1,'tz::gl::vk2::DescriptorLayoutBuilder']]], + ['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']]], + ['determinant_48',['determinant',['../group__tzsl__matrix.html#ga8da6239534e090803b41e5c853042977',1,'tz::matrix']]], + ['device_49',['device',['../structtz_1_1gl_1_1vk2_1_1_sampler_info.html#ae7a557f6dedbc5ce99635b0fd62691ee',1,'tz::gl::vk2::SamplerInfo::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_fence_info.html#a18b3aa2916e1759baf8ec26eacacba2c',1,'tz::gl::vk2::FenceInfo::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_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()'],['../classtz_1_1gl_1_1device.html',1,'tz::gl::device']]], + ['device_5fcommand_5fpool_50',['device_command_pool',['../classtz_1_1gl_1_1device__command__pool.html',1,'tz::gl']]], + ['device_5fcommon_51',['device_common',['../classtz_1_1gl_1_1device__common.html',1,'tz::gl']]], + ['device_5fcommon_3c_20renderer_5fogl_20_3e_52',['device_common< renderer_ogl >',['../classtz_1_1gl_1_1device__common.html',1,'tz::gl']]], + ['device_5fcommon_3c_20renderer_5fvulkan2_20_3e_53',['device_common< renderer_vulkan2 >',['../classtz_1_1gl_1_1device__common.html',1,'tz::gl']]], + ['device_5fdescriptor_5fpool_54',['device_descriptor_pool',['../classtz_1_1gl_1_1device__descriptor__pool.html',1,'tz::gl']]], + ['device_5fogl_55',['device_ogl',['../classtz_1_1gl_1_1device__ogl.html',1,'tz::gl']]], + ['device_5frender_5fscheduler_5fogl_56',['device_render_scheduler_ogl',['../classtz_1_1gl_1_1device__render__scheduler__ogl.html',1,'tz::gl']]], + ['device_5frender_5fsync_57',['device_render_sync',['../classtz_1_1gl_1_1device__render__sync.html',1,'tz::gl']]], + ['device_5fsupports_5fflags_58',['device_supports_flags',['../structtz_1_1gl_1_1vk2_1_1_descriptor_layout_info.html#a2e5cab5844cce37fcc8a06c1436f33e6',1,'tz::gl::vk2::DescriptorLayoutInfo']]], + ['device_5fvulkan2_59',['device_vulkan2',['../classtz_1_1gl_1_1device__vulkan2.html',1,'tz::gl']]], + ['device_5fvulkan_5fbase_60',['device_vulkan_base',['../classtz_1_1gl_1_1device__vulkan__base.html',1,'tz::gl']]], + ['device_5fwindow_61',['device_window',['../classtz_1_1gl_1_1device__window.html',1,'tz::gl']]], + ['deviceextension_62',['DeviceExtension',['../group__tz__gl__vk__extension.html#ga56bb45f4b48b35c621dc90ea70227158',1,'tz::gl::vk2']]], + ['devicefeature_63',['DeviceFeature',['../group__tz__gl__vk__extension.html#ga6744c8f7d1276d6d9ae861b21c489505',1,'tz::gl::vk2']]], + ['devicefeatureinfo_64',['DeviceFeatureInfo',['../structtz_1_1gl_1_1vk2_1_1detail_1_1_device_feature_info.html',1,'tz::gl::vk2::detail']]], + ['dimensions_65',['dimensions',['../structtz_1_1gl_1_1vk2_1_1image__info.html#af8102f2b0bda5a33254c6213950e67a6',1,'tz::gl::vk2::image_info::dimensions()'],['../structtz_1_1wsi_1_1window__info.html#a9a9be15bc17a5d71fb31b89eb8f7d13b',1,'tz::wsi::window_info::dimensions()'],['../structtz_1_1wsi_1_1monitor.html#aab9b77f0a9ab9b9f8f417b7cf8c8d09c',1,'tz::wsi::monitor::dimensions()'],['../structtz_1_1initialise__info.html#aa1b701a1fbe1219e58ca9e4257834b10',1,'tz::initialise_info::dimensions()'],['../structtz_1_1gl_1_1image__info.html#a62eb6099efbe4416fbc20c45a06fb38b',1,'tz::gl::image_info::dimensions()'],['../structtz_1_1gl_1_1vk2_1_1_framebuffer_info.html#a8e99742083bfc0c1e4d98f696323dea7',1,'tz::gl::vk2::FramebufferInfo::dimensions()'],['../structtz_1_1gl_1_1ogl2_1_1render__buffer__info.html#a19bd3ca678419ccb8443b1be18a79fe8',1,'tz::gl::ogl2::render_buffer_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_1framebuffer__info.html#aecc4286ec0828ee80ebfb992946732b3',1,'tz::gl::ogl2::framebuffer_info::dimensions()'],['../structtz_1_1gl_1_1renderer__edit_1_1image__resize.html#a80b3e618fd1d8f8c1f26490c6260f204',1,'tz::gl::renderer_edit::image_resize::dimensions()']]], + ['dispatch_66',['dispatch',['../classtz_1_1gl_1_1vk2_1_1_command_buffer_recording.html#a3c305e3576f093dad51bd911c6dbab60',1,'tz::gl::vk2::CommandBufferRecording']]], + ['dispatch_67',['Dispatch',['../structtz_1_1gl_1_1vk2_1_1_vulkan_command_1_1_dispatch.html',1,'tz::gl::vk2::VulkanCommand']]], + ['distance_68',['distance',['../group__tzsl__math.html#ga81780532b6bb411b2b550c09b76b7f93',1,'tz::math']]], + ['done_69',['done',['../classtz_1_1delay.html#abecd402d7755f73c4a61a33b77af4963',1,'tz::delay']]], + ['dontcare_70',['DontCare',['../group__tz__gl__vk__graphics__pipeline__render__pass.html#ggab92f36711ba7bb90caf0e4a39748ed7da60a3629ef6a8f991f45d7a85f2458544',1,'DontCare()tz::gl::vk2'],['../group__tz__gl__vk__graphics__pipeline__render__pass.html#ggaa1e0e627270d80ef86624590afc5a03fa60a3629ef6a8f991f45d7a85f2458544',1,'DontCare()tz::gl::vk2']]], + ['dot_71',['dot',['../group__tzsl__math.html#gae3a061e3c170f530fbc99969abdeb333',1,'tz::math::dot()'],['../classtz_1_1vector.html#a074e671fe11952ee602c6b60d542fc75',1,'tz::vector::dot()']]], + ['double_5fclicked_72',['double_clicked',['../group__tz__wsi__mouse.html#gga089bafa0df7fa17353dbf27087a1f65bac587d5d54676217aeecb4b993c3186cf',1,'tz::wsi']]], + ['draw_73',['draw',['../classtz_1_1gl_1_1vk2_1_1_command_buffer_recording.html#acd2074bf1faa8b35502ec823cfde1abf',1,'tz::gl::vk2::CommandBufferRecording::draw()'],['../classtz_1_1gl_1_1ogl2_1_1vertex__array.html#ad53896fed3856db5c3a2fce42fb120bf',1,'tz::gl::ogl2::vertex_array::draw()']]], + ['draw_74',['Draw',['../structtz_1_1gl_1_1vk2_1_1_vulkan_command_1_1_draw.html',1,'tz::gl::vk2::VulkanCommand']]], + ['draw_5fbuffer_75',['draw_buffer',['../structtz_1_1gl_1_1render__state_1_1_graphics.html#a3f7566566d5ad5403bdfc19813b85126',1,'tz::gl::render_state::Graphics']]], + ['draw_5findexed_76',['draw_indexed',['../classtz_1_1gl_1_1ogl2_1_1vertex__array.html#a0866c26d8a2d6e47b1e14d86cef0500f',1,'tz::gl::ogl2::vertex_array::draw_indexed()'],['../classtz_1_1gl_1_1vk2_1_1_command_buffer_recording.html#ad5539795d16fdb9fc6d507d38a45123c',1,'tz::gl::vk2::CommandBufferRecording::draw_indexed(VulkanCommand::DrawIndexed draw)']]], + ['draw_5findexed_5findirect_77',['draw_indexed_indirect',['../classtz_1_1gl_1_1vk2_1_1_command_buffer_recording.html#a883d311ab6e1f1c1f29260129179d0e0',1,'tz::gl::vk2::CommandBufferRecording']]], + ['draw_5findexed_5findirect_5fcommand_78',['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_79',['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_indirect()tz::gl::ogl2']]], + ['draw_5findirect_5fbuffer_80',['draw_indirect_buffer',['../group__tz__gl2__res.html#ggaacaeec69fc5b83e204af317250a47eb8a728c7ac13a50ff63ede85d62daaea87d',1,'draw_indirect_buffer()tz::gl'],['../group__tz__gl__vk__buffer.html#gga0c6ff78fc058c3e209ba59dc1b2c02a6a728c7ac13a50ff63ede85d62daaea87d',1,'draw_indirect_buffer()tz::gl::vk2']]], + ['draw_5findirect_5fcommand_81',['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_82',['draw_indirect_count',['../group__tz__gl2__renderer.html#ggac6f74feb8cd57f49c051f5d83a12be5da33cd60667ba40af9abe3d4c9346ea1eb',1,'tz::gl']]], + ['drawindexed_83',['DrawIndexed',['../structtz_1_1gl_1_1vk2_1_1_vulkan_command_1_1_draw_indexed.html',1,'tz::gl::vk2::VulkanCommand']]], + ['drawindexedindirect_84',['DrawIndexedIndirect',['../structtz_1_1gl_1_1vk2_1_1_vulkan_command_1_1_draw_indexed_indirect.html',1,'tz::gl::vk2::VulkanCommand']]], + ['drawindexedindirectcommand_85',['DrawIndexedIndirectCommand',['../structtz_1_1draw_1_1_draw_indexed_indirect_command.html',1,'tz::draw']]], + ['drawindexedindirectcount_86',['DrawIndexedIndirectCount',['../structtz_1_1gl_1_1vk2_1_1_vulkan_command_1_1_draw_indexed_indirect_count.html',1,'tz::gl::vk2::VulkanCommand']]], + ['drawindirect_87',['DrawIndirect',['../group__tz__gl__vk__graphics__pipeline.html#ggaa581c5a329a76e48f41ca02bd263251aa95b0e6b8c7aa6af632295afda7a926bc',1,'DrawIndirect()tz::gl::vk2'],['../structtz_1_1gl_1_1vk2_1_1_vulkan_command_1_1_draw_indirect.html',1,'tz::gl::vk2::VulkanCommand::DrawIndirect']]], + ['drawindirectcommand_88',['DrawIndirectCommand',['../structtz_1_1draw_1_1_draw_indirect_command.html',1,'tz::draw']]], + ['drawindirectcount_89',['DrawIndirectCount',['../group__tz__gl__vk__extension.html#gga6744c8f7d1276d6d9ae861b21c489505a215e219c44e85364464e51a55db84847',1,'DrawIndirectCount()tz::gl::vk2'],['../structtz_1_1gl_1_1vk2_1_1_vulkan_command_1_1_draw_indirect_count.html',1,'tz::gl::vk2::VulkanCommand::DrawIndirectCount']]], + ['dst_90',['dst',['../structtz_1_1gl_1_1vk2_1_1_vulkan_command_1_1_buffer_copy_image.html#ae77ba4232185e07315aba61908c4e58c',1,'tz::gl::vk2::VulkanCommand::BufferCopyImage::dst()'],['../structtz_1_1gl_1_1vk2_1_1_vulkan_command_1_1_buffer_copy_buffer.html#ab25083e4d84c146bfb7cf38f5f37dc0b',1,'tz::gl::vk2::VulkanCommand::BufferCopyBuffer::dst()'],['../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_91',['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_92',['duration',['../classtz_1_1duration.html',1,'tz']]], + ['dynamic_93',['dynamic',['../group__tz__gl__ogl2__buffers.html#ggae0f51febb963a7dc9fce3cc2208559a6ab72f3bd391ba731a35708bfd8cd8a68f',1,'tz::gl::ogl2']]], + ['dynamic_5ffixed_94',['dynamic_fixed',['../group__tz__gl2__res.html#ggac9293366fa49e7f476827595ca80fbbbacb427c755a59fa5b397f351f7a4969a0',1,'tz::gl']]], + ['dynamic_5fvariable_95',['dynamic_variable',['../group__tz__gl2__res.html#ggac9293366fa49e7f476827595ca80fbbbae031d8708165b6976dd3c8833bb706d4',1,'tz::gl']]], + ['dynamicrendering_96',['DynamicRendering',['../group__tz__gl__vk__extension.html#gga6744c8f7d1276d6d9ae861b21c489505a25013a5dfa918c9d7f1ad4e596648514',1,'tz::gl::vk2']]], + ['dynamicrenderingrun_97',['DynamicRenderingRun',['../classtz_1_1gl_1_1vk2_1_1_command_buffer_recording_1_1_dynamic_rendering_run.html',1,'tz::gl::vk2::CommandBufferRecording']]], + ['dynamicrenderingruninfo_98',['DynamicRenderingRunInfo',['../structtz_1_1gl_1_1vk2_1_1_dynamic_rendering_run_info.html',1,'tz::gl::vk2']]], + ['dynamicrenderingstate_99',['DynamicRenderingState',['../structtz_1_1gl_1_1vk2_1_1_graphics_pipeline_info_1_1_dynamic_rendering_state.html',1,'tz::gl::vk2::GraphicsPipelineInfo']]], + ['dynamicstate_100',['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..29ca3af572 --- /dev/null +++ b/search/all_4.js @@ -0,0 +1,42 @@ +var searchData= +[ + ['earlyfragmenttests_0',['EarlyFragmentTests',['../group__tz__gl__vk__graphics__pipeline.html#ggaa581c5a329a76e48f41ca02bd263251aa5ad09049db5ad41b32b78a92294484c7',1,'tz::gl::vk2']]], + ['edit_1',['edit',['../classtz_1_1gl_1_1renderer__ogl.html#a191c8012bb11868f5934fd61fbacf168',1,'tz::gl::renderer_ogl']]], + ['edit_5fside_5feffects_2',['edit_side_effects',['../structtz_1_1gl_1_1edit__side__effects.html',1,'tz::gl']]], + ['editrequest_3',['EditRequest',['../classtz_1_1gl_1_1vk2_1_1_descriptor_set_1_1_edit_request.html',1,'tz::gl::vk2::DescriptorSet']]], + ['elapsed_4',['elapsed',['../classtz_1_1delay.html#a58f202ee61907e36e13d89e2c8c4d950',1,'tz::delay']]], + ['element_5foffset_5',['element_offset',['../structtz_1_1gl_1_1vk2_1_1_vertex_input_state_1_1_attribute.html#afd7569bdf329b77573d60fc6cd44cced',1,'tz::gl::vk2::VertexInputState::Attribute']]], + ['emplace_6',['emplace',['../classtz_1_1_polymorphic_list.html#abcd45264b9a32adcfde7d7469d526bac',1,'tz::PolymorphicList::emplace()'],['../classtz_1_1basic__list.html#af3feb8b0f4a28360f8cb2b79550c9eb5',1,'tz::basic_list::emplace()']]], + ['empty_7',['empty',['../classtz_1_1enum__field.html#abfb91b134d35e4f0454cd6eecf859b88',1,'tz::enum_field::empty()'],['../classtz_1_1basic__list.html#a7dd603cfac91d0de0a80fa7a3f92ad5e',1,'tz::basic_list::empty()']]], + ['enable_5fvalidation_5flayers_8',['enable_validation_layers',['../structtz_1_1gl_1_1vk2_1_1_vulkan_instance_info.html#ae57359ac237cb9596e822af3a6478b7f',1,'tz::gl::vk2::VulkanInstanceInfo']]], + ['end_9',['end',['../classtz_1_1enum__field.html#a23110e1ac51df35ef76022ba30bd2a24',1,'tz::enum_field::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#a92f4bc051ebc80adea4dab7424b8676d',1,'tz::enum_field::end()'],['../classtz_1_1_polymorphic_list.html#a005d33c6203712c5304224285b389c50',1,'tz::PolymorphicList::end()'],['../classtz_1_1_polymorphic_list.html#a01e936a09d95b4898311f84ddc356e97',1,'tz::PolymorphicList::end() const']]], + ['end_5fframe_10',['end_frame',['../group__tz__core.html#ga3444884fd2ee290340864428de1df82f',1,'tz']]], + ['enddynamicrendering_11',['EndDynamicRendering',['../structtz_1_1gl_1_1vk2_1_1_vulkan_command_1_1_end_dynamic_rendering.html',1,'tz::gl::vk2::VulkanCommand']]], + ['endrenderpass_12',['EndRenderPass',['../structtz_1_1gl_1_1vk2_1_1_vulkan_command_1_1_end_render_pass.html',1,'tz::gl::vk2::VulkanCommand']]], + ['engine_5finfo_13',['engine_info',['../structtz_1_1engine__info.html',1,'tz']]], + ['enum_5ffield_14',['enum_field',['../classtz_1_1enum__field.html#a991dd804357b394f7036c3c86ffd2649',1,'tz::enum_field::enum_field()=default'],['../classtz_1_1enum__field.html#a5454e8b8f31861b47b412554d4e2a9df',1,'tz::enum_field::enum_field(std::initializer_list< E > types)'],['../classtz_1_1enum__field.html#ab03fd94decf6143e89651bbe5eaa0c02',1,'tz::enum_field::enum_field(E type)'],['../classtz_1_1enum__field.html',1,'tz::enum_field< E >']]], + ['enum_5ffield_3c_20accessflag_20_3e_15',['enum_field< AccessFlag >',['../classtz_1_1enum__field.html',1,'tz']]], + ['enum_5ffield_3c_20application_5fflag_20_3e_16',['enum_field< application_flag >',['../classtz_1_1enum__field.html',1,'tz']]], + ['enum_5ffield_3c_20bufferusage_20_3e_17',['enum_field< BufferUsage >',['../classtz_1_1enum__field.html',1,'tz']]], + ['enum_5ffield_3c_20commandpoolflag_20_3e_18',['enum_field< CommandPoolFlag >',['../classtz_1_1enum__field.html',1,'tz']]], + ['enum_5ffield_3c_20descriptorflag_20_3e_19',['enum_field< DescriptorFlag >',['../classtz_1_1enum__field.html',1,'tz']]], + ['enum_5ffield_3c_20deviceextension_20_3e_20',['enum_field< DeviceExtension >',['../classtz_1_1enum__field.html',1,'tz']]], + ['enum_5ffield_3c_20devicefeature_20_3e_21',['enum_field< DeviceFeature >',['../classtz_1_1enum__field.html',1,'tz']]], + ['enum_5ffield_3c_20dynamicstatetype_20_3e_22',['enum_field< DynamicStateType >',['../classtz_1_1enum__field.html',1,'tz']]], + ['enum_5ffield_3c_20imageaspectflag_20_3e_23',['enum_field< ImageAspectFlag >',['../classtz_1_1enum__field.html',1,'tz']]], + ['enum_5ffield_3c_20imageusage_20_3e_24',['enum_field< ImageUsage >',['../classtz_1_1enum__field.html',1,'tz']]], + ['enum_5ffield_3c_20instanceextension_20_3e_25',['enum_field< InstanceExtension >',['../classtz_1_1enum__field.html',1,'tz']]], + ['enum_5ffield_3c_20queuefamilytype_20_3e_26',['enum_field< QueueFamilyType >',['../classtz_1_1enum__field.html',1,'tz']]], + ['enum_5ffield_3c_20renderer_5foption_20_3e_27',['enum_field< renderer_option >',['../classtz_1_1enum__field.html',1,'tz']]], + ['enum_5ffield_3c_20resource_5fflag_20_3e_28',['enum_field< resource_flag >',['../classtz_1_1enum__field.html',1,'tz']]], + ['equalto_29',['EqualTo',['../group__tz__gl__vk__graphics__pipeline__fixed.html#gga93e2cb3a5e44484b0548e28496de69c7a0242c502bd906e05171e64bad31c7c21',1,'tz::gl::vk2']]], + ['erase_30',['erase',['../classtz_1_1basic__list.html#a68e81beb140765454649325ea15418b9',1,'tz::basic_list::erase(Iterator first, Iterator last)'],['../classtz_1_1basic__list.html#af77955ee7383d5cae6bb09fae8a104e6',1,'tz::basic_list::erase(Iterator position)']]], + ['error_31',['error',['../group__tz__core.html#ga51d5f1707ccebf785a59cbb6a90b0fad',1,'tz']]], + ['event_32',['event',['../structtz_1_1gl_1_1event.html',1,'tz::gl']]], + ['exchange_33',['exchange',['../group__tzsl__atomic.html#gac66c88e078d10e049838618e5c5d80f6',1,'tz::atomic']]], + ['execution_5fcomplete_5ffence_34',['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']]], + ['exp_35',['exp',['../group__tzsl__math.html#ga0b3e83e179fee3b947ff6725d85ea9bc',1,'tz::math']]], + ['exp2_36',['exp2',['../group__tzsl__math.html#ga62b92e38309339005fea6213dfda3454',1,'tz::math']]], + ['extensions_37',['extensions',['../structtz_1_1gl_1_1vk2_1_1_vulkan_instance_info.html#ac0600b7dfc2ae1e5322f413626c2269d',1,'tz::gl::vk2::VulkanInstanceInfo::extensions()'],['../structtz_1_1gl_1_1vk2_1_1_logical_device_info.html#ac6e1aabf78d0e11a8cbb420ceb1a4136',1,'tz::gl::vk2::LogicalDeviceInfo::extensions()']]], + ['extensions_20and_20features_38',['Extensions and Features',['../group__tz__gl__vk__extension.html',1,'']]] +]; diff --git a/search/all_5.js b/search/all_5.js new file mode 100644 index 0000000000..5ca66cfe8e --- /dev/null +++ b/search/all_5.js @@ -0,0 +1,49 @@ +var searchData= +[ + ['fail_5faccessdenied_0',['Fail_AccessDenied',['../classtz_1_1gl_1_1vk2_1_1hardware_1_1_queue.html#a85b458bfb664176d140abf3b6b627e67aaea27d8b72d8ffa293cbf65f97b70e30',1,'tz::gl::vk2::hardware::Queue']]], + ['fail_5ffatalerror_1',['Fail_FatalError',['../classtz_1_1gl_1_1vk2_1_1hardware_1_1_queue.html#a85b458bfb664176d140abf3b6b627e67aca1a7c2d3dbabec931605566d7db0117',1,'tz::gl::vk2::hardware::Queue']]], + ['fail_5foutofdate_2',['Fail_OutOfDate',['../classtz_1_1gl_1_1vk2_1_1hardware_1_1_queue.html#a85b458bfb664176d140abf3b6b627e67a840624fba8a877312dbd12ff0481e17d',1,'tz::gl::vk2::hardware::Queue']]], + ['fail_5fsurfacelost_3',['Fail_SurfaceLost',['../classtz_1_1gl_1_1vk2_1_1hardware_1_1_queue.html#a85b458bfb664176d140abf3b6b627e67a33ac27a04865222ea13822bd532d6973',1,'tz::gl::vk2::hardware::Queue']]], + ['fallback_5fallocator_4',['fallback_allocator',['../classtz_1_1fallback__allocator.html',1,'tz']]], + ['fatalerror_5',['FatalError',['../structtz_1_1gl_1_1vk2_1_1_descriptor_pool_1_1_allocation_result.html#abad85d19de3197a840dc5e69ad797c54af245a0dc66dc8cd7d835771034eb4b86',1,'tz::gl::vk2::DescriptorPool::AllocationResult']]], + ['features_6',['features',['../structtz_1_1gl_1_1vk2_1_1_logical_device_info.html#a3b5dc703c3eb8b8be92a16ce9a566741',1,'tz::gl::vk2::LogicalDeviceInfo']]], + ['fence_7',['Fence',['../classtz_1_1gl_1_1vk2_1_1_fence.html',1,'tz::gl::vk2']]], + ['fenceinfo_8',['FenceInfo',['../structtz_1_1gl_1_1vk2_1_1_fence_info.html',1,'tz::gl::vk2']]], + ['field_9',['field',['../structtz_1_1gl_1_1vk2_1_1_queue_request.html#abba7d549a963a57d7733ed196dd6859b',1,'tz::gl::vk2::QueueRequest']]], + ['fifo_10',['Fifo',['../group__tz__gl__vk__presentation.html#gga8e6e925d93013e81273325bc8764577aaa0476ca4d7283b340d24c53c16270958',1,'tz::gl::vk2']]], + ['fiforelaxed_11',['FifoRelaxed',['../group__tz__gl__vk__presentation.html#gga8e6e925d93013e81273325bc8764577aa492bb3d1da50c48c7ae3a1f699f4c3ed',1,'tz::gl::vk2']]], + ['fill_12',['Fill',['../group__tz__gl__vk__graphics__pipeline__fixed.html#ggaaeda985d06849d890d7ba2902688cd01adb3e3f51c9107e26c9bccf9a188ce2ed',1,'tz::gl::vk2']]], + ['filled_13',['filled',['../classtz_1_1vector.html#a0f398914ccdf06e34a58a8b07f09374c',1,'tz::vector']]], + ['final_5flayout_14',['final_layout',['../structtz_1_1gl_1_1vk2_1_1_attachment.html#acae8a7a40a8b5dd37361a3060e1c01c6',1,'tz::gl::vk2::Attachment']]], + ['fingerprint_5finfo_5ft_15',['fingerprint_info_t',['../structtz_1_1gl_1_1device__command__pool_1_1fingerprint__info__t.html',1,'tz::gl::device_command_pool']]], + ['first_5finstance_16',['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_17',['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_18',['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_19',['Fixed Pipeline State Values',['../group__tz__gl__vk__graphics__pipeline__fixed.html',1,'']]], + ['flags_20',['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_21',['floor',['../group__tzsl__math.html#ga1c27f29cb88aa0f88b330125c402290f',1,'tz::math']]], + ['format_22',['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()'],['../structtz_1_1gl_1_1vk2_1_1_attachment.html#a54ef773663f34f07254b54e709255de7',1,'tz::gl::vk2::Attachment::format()'],['../structtz_1_1gl_1_1vk2_1_1image__info.html#a9dd894dd0eadbbaffdde5009b277aef0',1,'tz::gl::vk2::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_1ogl2_1_1image__info.html#ac43acae706fbe92099ed75cdf7d4d5b6',1,'tz::gl::ogl2::image_info::format()'],['../structtz_1_1gl_1_1vk2_1_1_vertex_input_state_1_1_attribute.html#a1d378c3169ddde3c6ebe95ce5af6e1b5',1,'tz::gl::vk2::VertexInputState::Attribute::format()']]], + ['format_5fstring_23',['format_string',['../structtz_1_1detail_1_1format__string.html',1,'tz::detail']]], + ['formatdata_24',['FormatData',['../structtz_1_1gl_1_1ogl2_1_1_format_data.html',1,'tz::gl::ogl2']]], + ['fract_25',['fract',['../group__tzsl__math.html#gae4a7499ca85d03fd9f68e58f378227d6',1,'tz::math']]], + ['fragment_26',['fragment',['../group__tz__gl__ogl2__shader.html#gga6f74da2ab2ba8d9a9e73815fa16ac5f4a02e918fc72837d7c2689be88684dceb1',1,'tz::gl::ogl2']]], + ['fragmentedpool_27',['FragmentedPool',['../structtz_1_1gl_1_1vk2_1_1_descriptor_pool_1_1_allocation_result.html#abad85d19de3197a840dc5e69ad797c54ae95f85b8630e52cf6e5f6aa542bec654',1,'tz::gl::vk2::DescriptorPool::AllocationResult']]], + ['fragmentshader_28',['FragmentShader',['../group__tz__gl__vk__graphics__pipeline.html#ggaa581c5a329a76e48f41ca02bd263251aa90a9bb4e665932b1781da33fc2f32922',1,'tz::gl::vk2']]], + ['fragmentshaderresourcewrite_29',['FragmentShaderResourceWrite',['../group__tz__gl__vk__extension.html#gga6744c8f7d1276d6d9ae861b21c489505a70e29cc30c58871bc15535cb09d4ee87',1,'tz::gl::vk2']]], + ['framebuffer_30',['framebuffer',['../structtz_1_1gl_1_1vk2_1_1_vulkan_command_1_1_begin_render_pass.html#a0d726e5259950517b292d3a0620db647',1,'tz::gl::vk2::VulkanCommand::BeginRenderPass::framebuffer()'],['../structtz_1_1gl_1_1vk2_1_1_vulkan_command_1_1_end_render_pass.html#ac32dec8f9c51d60004dd2844a17a3692',1,'tz::gl::vk2::VulkanCommand::EndRenderPass::framebuffer()'],['../classtz_1_1gl_1_1ogl2_1_1framebuffer.html#af1250568a185e34b802fbe5cc5f86f8d',1,'tz::gl::ogl2::framebuffer::framebuffer()'],['../classtz_1_1gl_1_1ogl2_1_1framebuffer.html',1,'tz::gl::ogl2::framebuffer']]], + ['framebuffer_31',['Framebuffer',['../classtz_1_1gl_1_1vk2_1_1_framebuffer.html',1,'tz::gl::vk2']]], + ['framebuffer_5finfo_32',['framebuffer_info',['../structtz_1_1gl_1_1ogl2_1_1framebuffer__info.html',1,'tz::gl::ogl2']]], + ['framebuffer_5ftexture_33',['framebuffer_texture',['../group__tz__gl__ogl2__framebuffer.html#ga0fa9020fa6ae934e10f13a3793ec6c46',1,'tz::gl::ogl2']]], + ['framebufferdata_34',['FramebufferData',['../structtz_1_1gl_1_1vk2_1_1_framebuffer_data.html',1,'tz::gl::vk2']]], + ['framebufferinfo_35',['FramebufferInfo',['../structtz_1_1gl_1_1vk2_1_1_framebuffer_info.html',1,'tz::gl::vk2']]], + ['framebuffers_36',['Framebuffers',['../group__tz__gl__ogl2__framebuffer.html',1,'']]], + ['from_5fmany_37',['from_many',['../classtz_1_1gl_1_1buffer__resource.html#aa2d8aea7debdaf9f6dcdc92ac9c96cf0',1,'tz::gl::buffer_resource']]], + ['from_5fmemory_38',['from_memory',['../classtz_1_1gl_1_1image__resource.html#ac0f3c710c722dc14defca36b10d2397c',1,'tz::gl::image_resource']]], + ['from_5fone_39',['from_one',['../classtz_1_1gl_1_1buffer__resource.html#ab407ea843abea43d94853c2711b109bb',1,'tz::gl::buffer_resource']]], + ['from_5funinitialised_40',['from_uninitialised',['../classtz_1_1gl_1_1image__resource.html#abcfde01f8ab68048439810a68248f10c',1,'tz::gl::image_resource']]], + ['front_41',['front',['../classtz_1_1enum__field.html#a12e8aef51551fef43b8b6aaf28d46de5',1,'tz::enum_field::front()'],['../classtz_1_1basic__list.html#aa0d28f5edea40afa101b1a3ccddcc57c',1,'tz::basic_list::front() const'],['../classtz_1_1basic__list.html#ab6527e144764014dd2f77cb3ffbe8670',1,'tz::basic_list::front()'],['../structtz_1_1gl_1_1vk2_1_1_depth_stencil_state.html#a4208d7ae144e8c483e6166e0d71d9009',1,'tz::gl::vk2::DepthStencilState::front()']]], + ['frontculling_42',['FrontCulling',['../group__tz__gl__vk__graphics__pipeline__fixed.html#ggaf55856ce9f281f90908bac12e0061e16a1292c8b012a45fb6b03a5354925777e2',1,'tz::gl::vk2']]], + ['fullscreen_5fcube_43',['fullscreen_cube',['../group__tzsl__mesh.html#ga8e7cfc30c9609b6b3bfe041cd39dae19',1,'tz::mesh']]], + ['fullscreen_5fquad_44',['fullscreen_quad',['../group__tzsl__mesh.html#ga58bd542614c3571580c36e49cbad8081',1,'tz::mesh']]], + ['fullscreen_5ftriangle_45',['fullscreen_triangle',['../group__tzsl__mesh.html#ga250af04d0386c860d1a2e202ca77de6c',1,'tz::mesh']]] +]; diff --git a/search/all_6.js b/search/all_6.js new file mode 100644 index 0000000000..75d1276353 --- /dev/null +++ b/search/all_6.js @@ -0,0 +1,69 @@ +var searchData= +[ + ['game_5finfo_0',['game_info',['../structtz_1_1gl_1_1vk2_1_1_vulkan_instance_info.html#a7f4f6b78d9dc91c26ddbb71c5ac89676',1,'tz::gl::vk2::VulkanInstanceInfo::game_info()'],['../structtz_1_1dbgui_1_1init__info.html#a004b821a277cfa2ea7e52a97a905b3f9',1,'tz::dbgui::init_info::game_info()'],['../structtz_1_1game__info.html',1,'tz::game_info']]], + ['game_5fmenu_1',['game_menu',['../group__tz__dbgui.html#ga518691e82438163cf313898a842f02df',1,'tz::dbgui']]], + ['general_2',['General',['../group__tz__gl__vk__image.html#gga4ca55be3d1c101900d800a78deeb595fa0db377921f4ce762c62526131097968f',1,'tz::gl::vk2']]], + ['geometryshader_3',['GeometryShader',['../group__tz__gl__vk__graphics__pipeline.html#ggaa581c5a329a76e48f41ca02bd263251aa87fd5b66e314d52345d46590e7124805',1,'tz::gl::vk2']]], + ['get_4',['get',['../group__tz__gl__vk.html#ga6b2997a4d85a7a421f621c046553eb9e',1,'tz::gl::vk2']]], + ['get_5faccess_5',['get_access',['../classtz_1_1gl_1_1iresource.html#a054af6f7995a7faed0be74939673020f',1,'tz::gl::iresource::get_access()'],['../classtz_1_1gl_1_1resource.html#ad764c68472eddf7fee03644eaa2beb70',1,'tz::gl::resource::get_access()']]], + ['get_5fall_5fdevices_6',['get_all_devices',['../group__tz__gl__vk.html#gaa3cb0c8cac3957bc69faeed650da8e5b',1,'tz::gl::vk2']]], + ['get_5fattachment_5fviews_7',['get_attachment_views',['../classtz_1_1gl_1_1vk2_1_1_framebuffer.html#a2d5cb498b767d8c327318b3fc0994498',1,'tz::gl::vk2::Framebuffer::get_attachment_views() const'],['../classtz_1_1gl_1_1vk2_1_1_framebuffer.html#a9304c07d1bca779bc5b8863a0e41125a',1,'tz::gl::vk2::Framebuffer::get_attachment_views()']]], + ['get_5fbindings_8',['get_bindings',['../classtz_1_1gl_1_1vk2_1_1_descriptor_layout.html#a553861e3a7facb291f5de6a2c518aea1',1,'tz::gl::vk2::DescriptorLayout']]], + ['get_5fbindless_5fhandle_9',['get_bindless_handle',['../classtz_1_1gl_1_1ogl2_1_1image.html#a82ae5c9ca2e7230cd4a6eb68bed34de0',1,'tz::gl::ogl2::image']]], + ['get_5fchars_5ftyped_10',['get_chars_typed',['../group__tz__wsi__keyboard.html#ga68b8d4b1bb580c2d72d35901e31e9bb5',1,'tz::wsi']]], + ['get_5fcommand_5fbuffer_11',['get_command_buffer',['../classtz_1_1gl_1_1vk2_1_1_command_buffer_recording.html#a6678f3d4ee65c534f273547942dbc208',1,'tz::gl::vk2::CommandBufferRecording']]], + ['get_5fcomponent_12',['get_component',['../classtz_1_1gl_1_1renderer__ogl.html#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)'],['../classtz_1_1gl_1_1_resource_storage.html#ae859e1b772545ac79cf1541c651823c8',1,'tz::gl::ResourceStorage::get_component(resource_handle handle)'],['../classtz_1_1gl_1_1_resource_storage.html#af7948e8b4db9633cda6fd2e48ed4f1f6',1,'tz::gl::ResourceStorage::get_component(resource_handle handle) const']]], + ['get_5fdevice_13',['get_device',['../group__tz__gl2.html#gad7664ebf0e7dba60c61f1f711a60863b',1,'tz::gl::get_device()'],['../classtz_1_1gl_1_1vk2_1_1_sampler.html#a2f50c7294da0e3af598c0e3eea7e002a',1,'tz::gl::vk2::Sampler::get_device()'],['../classtz_1_1gl_1_1vk2_1_1_render_pass_builder.html#a0c8a6e7ff8cf14acd4121ed10008f32e',1,'tz::gl::vk2::RenderPassBuilder::get_device()'],['../classtz_1_1gl_1_1vk2_1_1_image.html#a049cd08ea548cf18a48359df5439f790',1,'tz::gl::vk2::Image::get_device()'],['../classtz_1_1gl_1_1vk2_1_1_framebuffer.html#a5ac49b6a1f5126e55e2d44e86733aea2',1,'tz::gl::vk2::Framebuffer::get_device()'],['../classtz_1_1gl_1_1vk2_1_1_descriptor_pool.html#ac2721cb1eeb043e531ceeeceadc318f9',1,'tz::gl::vk2::DescriptorPool::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_command_buffer.html#a123b44fb90533da0c9285a7dd1f7fe52',1,'tz::gl::vk2::CommandBuffer::get_device()'],['../classtz_1_1gl_1_1vk2_1_1_buffer.html#ad3210893be0901d09f53d94648362b9b',1,'tz::gl::vk2::Buffer::get_device()']]], + ['get_5fdimensions_14',['get_dimensions',['../classtz_1_1gl_1_1ogl2_1_1image.html#a34bdb1917898f67e8c8f919febe9dbd1',1,'tz::gl::ogl2::image::get_dimensions()'],['../classtz_1_1gl_1_1vk2_1_1_swapchain.html#aa4bc2e3f56802d15f6de066d24ee3e6d',1,'tz::gl::vk2::Swapchain::get_dimensions()'],['../classtz_1_1grid__view.html#aff54dec99ee4b951d188216597bf6ccc',1,'tz::grid_view::get_dimensions()'],['../classtz_1_1gl_1_1vk2_1_1_image.html#ab86308630123a604d436f4d25f87066e',1,'tz::gl::vk2::Image::get_dimensions()'],['../classtz_1_1gl_1_1ogl2_1_1framebuffer.html#a46f104a52a55fedc7f4ca7653ac54cb4',1,'tz::gl::ogl2::framebuffer::get_dimensions()'],['../classtz_1_1gl_1_1vk2_1_1_framebuffer.html#ae9c90abe38622c91b95fdb8ce73670d7',1,'tz::gl::vk2::Framebuffer::get_dimensions()']]], + ['get_5fextensions_15',['get_extensions',['../classtz_1_1gl_1_1vk2_1_1_logical_device.html#aa8e581e0199c5ed305291e569c3196be',1,'tz::gl::vk2::LogicalDevice']]], + ['get_5ffeatures_16',['get_features',['../classtz_1_1gl_1_1vk2_1_1_logical_device.html#aa8d935b7f0b3783f17c3093cce7b86e7',1,'tz::gl::vk2::LogicalDevice']]], + ['get_5fflags_17',['get_flags',['../classtz_1_1gl_1_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_5fhardware_19',['get_hardware',['../classtz_1_1gl_1_1vk2_1_1_logical_device.html#acda5876065dd357359b3528553dac464',1,'tz::gl::vk2::LogicalDevice']]], + ['get_5fimage_5fformat_20',['get_image_format',['../classtz_1_1gl_1_1vk2_1_1_swapchain.html#a01d41578f33880b720b3b7217db994ea',1,'tz::gl::vk2::Swapchain']]], + ['get_5fimage_5fviews_21',['get_image_views',['../classtz_1_1gl_1_1vk2_1_1_swapchain.html#adbd9b4c388fd8100536a66ad2d1e0b3d',1,'tz::gl::vk2::Swapchain::get_image_views()'],['../classtz_1_1gl_1_1vk2_1_1_swapchain.html#a9a069aadd6476ab2b89ab07b32ca929a',1,'tz::gl::vk2::Swapchain::get_image_views() const']]], + ['get_5fimages_22',['get_images',['../classtz_1_1gl_1_1vk2_1_1_swapchain.html#a96c1b6e9908255c892041e61f4ce2f66',1,'tz::gl::vk2::Swapchain::get_images()'],['../classtz_1_1gl_1_1vk2_1_1_swapchain.html#afe252ffdbcd30be51991b2cab05c8833',1,'tz::gl::vk2::Swapchain::get_images() const']]], + ['get_5finfo_23',['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_24',['get_instance',['../classtz_1_1gl_1_1vk2_1_1_physical_device.html#aa07d19e3e31cfd8d5d40ed83d01b4dcd',1,'tz::gl::vk2::PhysicalDevice']]], + ['get_5fkey_5fname_25',['get_key_name',['../group__tz__wsi__keyboard.html#ga71b029972073b41a5e63b852262af5be',1,'tz::wsi']]], + ['get_5flayout_26',['get_layout',['../classtz_1_1gl_1_1vk2_1_1_image.html#a245936d112b069e1e36da99391af5476',1,'tz::gl::vk2::Image::get_layout()'],['../classtz_1_1gl_1_1vk2_1_1_descriptor_set.html#a8655f41149275ec1624eb38740b55086',1,'tz::gl::vk2::DescriptorSet::get_layout()']]], + ['get_5fmandatory_5fcolour_5fattachment_5fformats_27',['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_28',['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_29',['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_30',['get_mandatory_sampled_image_formats',['../namespacetz_1_1gl_1_1vk2_1_1format__traits.html#abe8f1c1644982b2e797f9445c5f62636',1,'tz::gl::vk2::format_traits']]], + ['get_5fmonitors_31',['get_monitors',['../group__tz__wsi__monitor.html#gaf49b534da37be19431f74183eacfe56a',1,'tz::wsi']]], + ['get_5foptions_32',['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_33',['get_output',['../classtz_1_1gl_1_1renderer.html#a99aec0f5f60ec5bd7ba09ab787892158',1,'tz::gl::renderer::get_output()'],['../classtz_1_1gl_1_1renderer__info.html#a977778c921d2c7dc53177af58f722f91',1,'tz::gl::renderer_info::get_output()'],['../classtz_1_1gl_1_1renderer.html#aab07a9b72cfc7ab37421755d85c90113',1,'tz::gl::renderer::get_output()']]], + ['get_5fpass_34',['get_pass',['../classtz_1_1gl_1_1vk2_1_1_framebuffer.html#ab59610c1f9b168a6f133232a0e6d98b9',1,'tz::gl::vk2::Framebuffer']]], + ['get_5fpipeline_5fcontext_35',['get_pipeline_context',['../classtz_1_1gl_1_1vk2_1_1_subpass_builder.html#af18ad5c9a271c11f597ea08dcfd615d8',1,'tz::gl::vk2::SubpassBuilder']]], + ['get_5fpresent_5fmode_36',['get_present_mode',['../classtz_1_1gl_1_1vk2_1_1_swapchain.html#a4b1fdde7f90b64fb7f9f094fa08dac05',1,'tz::gl::vk2::Swapchain']]], + ['get_5frenderer_37',['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_38',['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_39',['get_resource',['../classtz_1_1gl_1_1renderer.html#a5c3320f862a5e3fd2de7482698a6038b',1,'tz::gl::renderer::get_resource()'],['../classtz_1_1gl_1_1renderer__info.html#ad50e1153d25e16c91a5dcb6f4201ec51',1,'tz::gl::renderer_info::get_resource()'],['../classtz_1_1gl_1_1renderer.html#ae3ecf1274073c37779559badd1872fd9',1,'tz::gl::renderer::get_resource()'],['../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_40',['get_resources',['../classtz_1_1gl_1_1renderer__info.html#aad33d729130cc8619cc736850ea91525',1,'tz::gl::renderer_info']]], + ['get_5fsampler_41',['get_sampler',['../classtz_1_1gl_1_1ogl2_1_1image.html#a96efa74dba6d1ba2af2a5125f16a05c3',1,'tz::gl::ogl2::image']]], + ['get_5fset_42',['get_set',['../classtz_1_1gl_1_1vk2_1_1_descriptor_set_1_1_edit_request.html#a281052e52ef1343f6769bce6b2159420',1,'tz::gl::vk2::DescriptorSet::EditRequest']]], + ['get_5fset_5fedits_43',['get_set_edits',['../classtz_1_1gl_1_1vk2_1_1_descriptor_pool_1_1_update_request.html#ae70b5908cb95506dd0af648ee6c34501',1,'tz::gl::vk2::DescriptorPool::UpdateRequest']]], + ['get_5fstate_44',['get_state',['../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()']]], + ['get_5fsupported_5fextensions_45',['get_supported_extensions',['../classtz_1_1gl_1_1vk2_1_1_physical_device.html#a9bbd0557b43b2c2605e36c0e5a70a59c',1,'tz::gl::vk2::PhysicalDevice']]], + ['get_5fsupported_5ffeatures_46',['get_supported_features',['../classtz_1_1gl_1_1vk2_1_1_physical_device.html#af8c939fb4265bf1c015f987d9c4c0380',1,'tz::gl::vk2::PhysicalDevice']]], + ['get_5fsupported_5fsurface_5fformats_47',['get_supported_surface_formats',['../classtz_1_1gl_1_1vk2_1_1_physical_device.html#a82c0bb8a3ae825acf9fa4894fe8bd326',1,'tz::gl::vk2::PhysicalDevice']]], + ['get_5fsupported_5fsurface_5fpresent_5fmodes_48',['get_supported_surface_present_modes',['../classtz_1_1gl_1_1vk2_1_1_physical_device.html#a3136ce2d7b7d952609e2ea9404f26335',1,'tz::gl::vk2::PhysicalDevice']]], + ['get_5ftarget_49',['get_target',['../classtz_1_1gl_1_1ogl2_1_1buffer.html#a88865542c959df85656e7b449468c8c1',1,'tz::gl::ogl2::buffer']]], + ['get_5ftype_50',['get_type',['../classtz_1_1gl_1_1resource.html#a1ce1477776828a3bec4e957d2c908a18',1,'tz::gl::resource::get_type()'],['../classtz_1_1gl_1_1vk2_1_1_shader_module.html#a7e6c83e267b4bd1c7bc502211aee08d5',1,'tz::gl::vk2::ShaderModule::get_type()'],['../classtz_1_1gl_1_1iresource.html#a1511ed9713102a7b141271c75b1b4633',1,'tz::gl::iresource::get_type()']]], + ['get_5fusage_51',['get_usage',['../classtz_1_1gl_1_1vk2_1_1_buffer.html#ac84676ea5d9d5f459cb9c385a1032729',1,'tz::gl::vk2::Buffer']]], + ['get_5fvalue_52',['get_value',['../classtz_1_1gl_1_1vk2_1_1_timeline_semaphore.html#a31afde1d634e5b7e5e2ae3292e9ace1b',1,'tz::gl::vk2::TimelineSemaphore']]], + ['get_5fwindow_53',['get_window',['../group__tz__wsi__window.html#ga9e50b4d537b0154de05ba6de39042b2b',1,'tz::wsi']]], + ['get_5fwindow_5fformat_54',['get_window_format',['../classtz_1_1gl_1_1device.html#af3bb467ad3c470d6f4352b4ff1a63607',1,'tz::gl::device']]], + ['gold_55',['gold',['../group__tzsl__noise.html#gaf2147086d053b3049440a65a705e3841',1,'tz::noise']]], + ['graphics_56',['Graphics',['../graphics.html',1,'']]], + ['graphics_57',['graphics',['../structtz_1_1gl_1_1render__state.html#a48bc0d47e4ce6f6bc9d3889d0045b2fc',1,'tz::gl::render_state']]], + ['graphics_58',['Graphics',['../structtz_1_1gl_1_1render__state_1_1_graphics.html',1,'tz::gl::render_state']]], + ['graphics_20library_59',['Graphics Library',['../group__tz__gl2.html',1,'']]], + ['graphics_20pipeline_60',['Graphics Pipeline',['../group__tz__gl__vk__graphics__pipeline.html',1,'']]], + ['graphicspipeline_61',['GraphicsPipeline',['../classtz_1_1gl_1_1vk2_1_1_graphics_pipeline.html',1,'tz::gl::vk2']]], + ['graphicspipelineinfo_62',['GraphicsPipelineInfo',['../structtz_1_1gl_1_1vk2_1_1_graphics_pipeline_info.html',1,'tz::gl::vk2']]], + ['greaterthan_63',['GreaterThan',['../group__tz__gl__vk__graphics__pipeline__fixed.html#gga93e2cb3a5e44484b0548e28496de69c7af6d044fe1f01fb0c956b80099e2a3072',1,'tz::gl::vk2']]], + ['greaterthanorequal_64',['GreaterThanOrEqual',['../group__tz__gl__vk__graphics__pipeline__fixed.html#gga93e2cb3a5e44484b0548e28496de69c7a25c44812e9d75f685d2a0b815dea1ebe',1,'tz::gl::vk2']]], + ['grid_5fview_65',['grid_view',['../classtz_1_1grid__view.html#ae011be6078a7b9b6a35ec4de5367670c',1,'tz::grid_view::grid_view(std::span< T > data, unsigned int length)'],['../classtz_1_1grid__view.html#a55938dc4566d1435fd2362e3bef7a4ae',1,'tz::grid_view::grid_view(std::span< T > data, tz::vec2ui dimensions)'],['../classtz_1_1grid__view.html',1,'tz::grid_view< T, N >']]] +]; diff --git a/search/all_7.js b/search/all_7.js new file mode 100644 index 0000000000..4ab5fbc584 --- /dev/null +++ b/search/all_7.js @@ -0,0 +1,15 @@ +var searchData= +[ + ['handle_0',['handle',['../classtz_1_1handle.html',1,'tz']]], + ['handle_3c_20detail_3a_3arenderer_5ftag_20_3e_1',['handle< detail::renderer_tag >',['../classtz_1_1handle.html',1,'tz']]], + ['handle_3c_20iresource_20_3e_2',['handle< iresource >',['../classtz_1_1handle.html',1,'tz']]], + ['has_5fdepth_5fattachment_3',['has_depth_attachment',['../classtz_1_1gl_1_1ogl2_1_1framebuffer.html#a9bffd7e6b5321dbeba5ff1055b5f47f2',1,'tz::gl::ogl2::framebuffer']]], + ['has_5fever_5frecorded_4',['has_ever_recorded',['../classtz_1_1gl_1_1vk2_1_1_command_buffer.html#af1184d8a0d83461bf90fc04dcd62d3bb',1,'tz::gl::vk2::CommandBuffer']]], + ['has_5fvalid_5fdevice_5',['has_valid_device',['../structtz_1_1gl_1_1vk2_1_1_descriptor_layout_info.html#aedc42a2278d1afcd8b542fa1ce2ade0c',1,'tz::gl::vk2::DescriptorLayoutInfo::has_valid_device()'],['../structtz_1_1gl_1_1vk2_1_1_descriptor_pool_info.html#a51692a2e9f8a598c7ee5d90b84ddd1ea',1,'tz::gl::vk2::DescriptorPoolInfo::has_valid_device()'],['../structtz_1_1gl_1_1vk2_1_1_render_pass_info.html#a7ccf96ec76452a363bc1d490754d5ba0',1,'tz::gl::vk2::RenderPassInfo::has_valid_device()']]], + ['has_5fwindow_6',['has_window',['../group__tz__wsi__window.html#ga17b7e39ac40d1f9b2c39c6b536049442',1,'tz::wsi']]], + ['hash_3c_20tz_3a_3avector_3c_20t_2c_20s_20_3e_20_3e_7',['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']]], + ['home_8',['Home',['../index.html',1,'']]], + ['hostread_9',['HostRead',['../group__tz__gl__vk__graphics__pipeline__render__pass.html#ggaa5dd0142a36cd59d14dff54eed67c3dfaa43bd7aae3f6e001a2ee1490421f8d90',1,'tz::gl::vk2']]], + ['hostwrite_10',['HostWrite',['../group__tz__gl__vk__graphics__pipeline__render__pass.html#ggaa5dd0142a36cd59d14dff54eed67c3dfa509b9f909831ef70e6c1ec59a3b340e9',1,'tz::gl::vk2']]], + ['hours_11',['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..a95a5b538f --- /dev/null +++ b/search/all_8.js @@ -0,0 +1,83 @@ +var searchData= +[ + ['icomponent_0',['icomponent',['../classtz_1_1gl_1_1icomponent.html',1,'tz::gl']]], + ['identity_1',['identity',['../classtz_1_1matrix.html#ac3c2819f55748e942c0b31473befba0f',1,'tz::matrix']]], + ['image_2',['Image',['../classtz_1_1gl_1_1vk2_1_1_image.html#a9749cb054c3afbc18d56331793c7c247',1,'tz::gl::vk2::Image']]], + ['image_3',['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()'],['../group__tz__gl2__res.html#gga4a7818551bb2ef3d04edb95ec731d041a78805a221a988e79ef3f42d7c5bfd418',1,'image()tz::gl'],['../classtz_1_1gl_1_1ogl2_1_1image.html',1,'tz::gl::ogl2::image']]], + ['image_4',['Image',['../classtz_1_1gl_1_1vk2_1_1_image.html',1,'tz::gl::vk2']]], + ['image_5faspects_5',['image_aspects',['../structtz_1_1gl_1_1vk2_1_1_vulkan_command_1_1_buffer_copy_image.html#a6e202dd142f2048d57785500b0764373',1,'tz::gl::vk2::VulkanCommand::BufferCopyImage::image_aspects()'],['../structtz_1_1gl_1_1vk2_1_1_vulkan_command_1_1_transition_image_layout.html#a222df56b11ad097bb6f2db067220b636',1,'tz::gl::vk2::VulkanCommand::TransitionImageLayout::image_aspects()'],['../structtz_1_1gl_1_1vk2_1_1_vulkan_command_1_1_image_copy_image.html#a0e407b294c7e6ee5ef34c9cc7ee4aa13',1,'tz::gl::vk2::VulkanCommand::ImageCopyImage::image_aspects()']]], + ['image_5fcomponent_5fogl_6',['image_component_ogl',['../classtz_1_1gl_1_1image__component__ogl.html',1,'tz::gl']]], + ['image_5fcomponent_5fvulkan_7',['image_component_vulkan',['../classtz_1_1gl_1_1image__component__vulkan.html',1,'tz::gl']]], + ['image_5fcopy_5fimage_8',['image_copy_image',['../classtz_1_1gl_1_1vk2_1_1_command_buffer_recording.html#a25b7a8e42401dd2af896c3c9459e112e',1,'tz::gl::vk2::CommandBufferRecording']]], + ['image_5ffilter_5flinear_9',['image_filter_linear',['../group__tz__gl2__res.html#ggaacaeec69fc5b83e204af317250a47eb8a8a9b1b3e43c4113ad451ec193bd68017',1,'tz::gl']]], + ['image_5ffilter_5fnearest_10',['image_filter_nearest',['../group__tz__gl2__res.html#ggaacaeec69fc5b83e204af317250a47eb8ad63423e4b6b9917dff5b8aa8fe18d037',1,'tz::gl']]], + ['image_5fformat_11',['image_format',['../group__tz__gl__vk__image.html#gaf7d399489dcebca1c95d5852c8d7ec6e',1,'tz::gl::vk2::image_format()'],['../group__tz__gl2.html#ga79b99b79311ee4f6dd10a6dfada3a235',1,'tz::gl::image_format()']]], + ['image_5fhandle_12',['image_handle',['../structtz_1_1gl_1_1renderer__edit_1_1image__resize.html#aa8671b845a680750c4ba6f65a5baca78',1,'tz::gl::renderer_edit::image_resize']]], + ['image_5findex_13',['image_index',['../structtz_1_1gl_1_1vk2_1_1_swapchain_image_info.html#adf625a0862f94f5073b0615b7a069361',1,'tz::gl::vk2::SwapchainImageInfo']]], + ['image_5finfo_14',['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_15',['image_mip_linear',['../group__tz__gl2__res.html#ggaacaeec69fc5b83e204af317250a47eb8ae25261ba757fcd9064544e84356773b8',1,'tz::gl']]], + ['image_5fmip_5fnearest_16',['image_mip_nearest',['../group__tz__gl2__res.html#ggaacaeec69fc5b83e204af317250a47eb8a69dc2a032867f1fbbdbe7902a7a9c318',1,'tz::gl']]], + ['image_5foutput_17',['image_output',['../classtz_1_1gl_1_1image__output.html',1,'tz::gl']]], + ['image_5foutput_5finfo_18',['image_output_info',['../structtz_1_1gl_1_1image__output__info.html',1,'tz::gl']]], + ['image_5fresize_19',['image_resize',['../classtz_1_1gl_1_1_renderer_edit_builder.html#ae26ce64c12ecca5c355f85869e666ded',1,'tz::gl::RendererEditBuilder::image_resize()'],['../structtz_1_1gl_1_1renderer__edit_1_1image__resize.html',1,'tz::gl::renderer_edit::image_resize']]], + ['image_5fresource_20',['image_resource',['../classtz_1_1gl_1_1image__resource.html',1,'tz::gl']]], + ['image_5ftiling_21',['image_tiling',['../structtz_1_1gl_1_1vk2_1_1image__info.html#a3ff1e5d047eaaacc299e3327b9cd9a91',1,'tz::gl::vk2::image_info']]], + ['image_5fview_22',['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_23',['image_wrap_clamp_edge',['../group__tz__gl2__res.html#ggaacaeec69fc5b83e204af317250a47eb8abd6818f6b1e5e41a1f1169b95f55b328',1,'tz::gl']]], + ['image_5fwrap_5fmirrored_5frepeat_24',['image_wrap_mirrored_repeat',['../group__tz__gl2__res.html#ggaacaeec69fc5b83e204af317250a47eb8a3f3f8f65235766b00d473480e8eecaa7',1,'tz::gl']]], + ['image_5fwrap_5frepeat_25',['image_wrap_repeat',['../group__tz__gl2__res.html#ggaacaeec69fc5b83e204af317250a47eb8a51625ecb1d2582b8ba7de2809f6a0de6',1,'tz::gl']]], + ['imageacquisition_26',['ImageAcquisition',['../structtz_1_1gl_1_1vk2_1_1_swapchain_1_1_image_acquisition.html',1,'tz::gl::vk2::Swapchain']]], + ['imageacquisitionresult_27',['ImageAcquisitionResult',['../structtz_1_1gl_1_1vk2_1_1_swapchain_1_1_image_acquisition_result.html',1,'tz::gl::vk2::Swapchain']]], + ['imageaspectflag_28',['ImageAspectFlag',['../group__tz__gl__vk__image.html#ga93db24e9eb1cffe51979bd8a141ddc77',1,'tz::gl::vk2']]], + ['imagecopyimage_29',['ImageCopyImage',['../structtz_1_1gl_1_1vk2_1_1_vulkan_command_1_1_image_copy_image.html',1,'tz::gl::vk2::VulkanCommand']]], + ['imagelayout_30',['ImageLayout',['../group__tz__gl__vk__image.html#ga4ca55be3d1c101900d800a78deeb595f',1,'tz::gl::vk2']]], + ['images_2c_20samplers_20and_20formats_31',['Images, Samplers and Formats',['../group__tz__gl__ogl2__image.html',1,'(Global Namespace)'],['../group__tz__gl__vk__image.html',1,'(Global Namespace)']]], + ['imagetiling_32',['ImageTiling',['../group__tz__gl__vk__image.html#ga41ec6a06ba8bf8e03f80cf81eb99b46a',1,'tz::gl::vk2']]], + ['imageusage_33',['ImageUsage',['../group__tz__gl__vk__image.html#ga6ecb2d248a682aac08d93f4a7078161e',1,'tz::gl::vk2']]], + ['imageview_34',['ImageView',['../classtz_1_1gl_1_1vk2_1_1_image_view.html',1,'tz::gl::vk2']]], + ['imageviewinfo_35',['ImageViewInfo',['../structtz_1_1gl_1_1vk2_1_1_image_view_info.html',1,'tz::gl::vk2']]], + ['imagewriteinfo_36',['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_37',['ImGuiTabTZ',['../structtz_1_1dbgui_1_1_im_gui_tab_t_z.html',1,'tz::dbgui']]], + ['imguivertex_38',['ImGuiVertex',['../struct_im_gui_vertex.html',1,'']]], + ['immediate_39',['Immediate',['../group__tz__gl__vk__presentation.html#gga8e6e925d93013e81273325bc8764577aa43f6615bbb2c40a5306ff804094420b1',1,'tz::gl::vk2']]], + ['importedshaderheader_40',['ImportedShaderHeader',['../group__tz__gl2.html#ga3ee0cdb60ccb74d5177791420ec65930',1,'imported_shaders.hpp']]], + ['importedshadersource_41',['ImportedShaderSource',['../group__tz__gl2.html#gae00537ceb6a96a5c3e5ccb74855c39e1',1,'imported_shaders.hpp']]], + ['importedtextdata_42',['ImportedTextData',['../group__tz__core.html#ga5716aac48c79a21fe8e66ebdc6c39177',1,'imported_text.hpp']]], + ['importedtextheader_43',['ImportedTextHeader',['../group__tz__core.html#ga4f3e8bda82a6d0f26e688f5c6a2eb921',1,'imported_text.hpp']]], + ['index_44',['index',['../group__tz__gl__ogl2__buffers.html#gga2d4cfcc22205d2276ef7347cf6e1c1eda6a992d5529f459a44fee58c733255e86',1,'tz::gl::ogl2']]], + ['index_5fbuffer_45',['index_buffer',['../structtz_1_1gl_1_1render__state_1_1_graphics.html#a64ef20d768cadd103a1d45e814683008',1,'tz::gl::render_state::Graphics::index_buffer()'],['../group__tz__gl__vk__buffer.html#gga0c6ff78fc058c3e209ba59dc1b2c02a6aab150dddbaa3966d354cc6dcd7418ea9',1,'index_buffer()tz::gl::vk2'],['../group__tz__gl2__res.html#ggaacaeec69fc5b83e204af317250a47eb8aab150dddbaa3966d354cc6dcd7418ea9',1,'index_buffer()tz::gl']]], + ['indexbufferread_46',['IndexBufferRead',['../group__tz__gl__vk__graphics__pipeline__render__pass.html#ggaa5dd0142a36cd59d14dff54eed67c3dfac52fe3a67d19e52c2d8be1c1085af208',1,'tz::gl::vk2']]], + ['indirectbufferread_47',['IndirectBufferRead',['../group__tz__gl__vk__graphics__pipeline__render__pass.html#ggaa5dd0142a36cd59d14dff54eed67c3dfa4656386f11c44452e8d3dd44b23c8bc2',1,'tz::gl::vk2']]], + ['info_48',['info',['../group__tz__core.html#ga1134f9d409701427b780589ca9fd48e5',1,'tz::engine_info']]], + ['info_5flog_49',['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_50',['init_info',['../structtz_1_1dbgui_1_1init__info.html',1,'tz::dbgui']]], + ['init_5fstate_51',['init_state',['../structtz_1_1core_1_1detail_1_1init__state.html',1,'tz::core::detail']]], + ['initial_5flayout_52',['initial_layout',['../structtz_1_1gl_1_1vk2_1_1_attachment.html#aecb5fd7bb6dac0c3e07a4877da865bec',1,'tz::gl::vk2::Attachment']]], + ['initialise_53',['initialise',['../group__tz__core.html#ga96f115f23731621af2e77904b1115fad',1,'tz::initialise()'],['../group__tz__gl__ogl2.html#ga191a25d7af220adb7cbecb11c18aba9d',1,'tz::gl::ogl2::initialise()'],['../group__tz__gl__vk.html#ga008f58719ad31f39af59d4f017aaea9e',1,'tz::gl::vk2::initialise()']]], + ['initialise_5finfo_54',['initialise_info',['../structtz_1_1initialise__info.html',1,'tz']]], + ['initially_5fsignalled_55',['initially_signalled',['../structtz_1_1gl_1_1vk2_1_1_fence_info.html#a22f2ab9e2e0152fde4949ea49dbd0cc4',1,'tz::gl::vk2::FenceInfo']]], + ['input_5fattachments_56',['input_attachments',['../structtz_1_1gl_1_1vk2_1_1_render_pass_info_1_1_subpass.html#a13ad7749e9612be5d0e8221c7d14288d',1,'tz::gl::vk2::RenderPassInfo::Subpass']]], + ['input_5frate_57',['input_rate',['../structtz_1_1gl_1_1vk2_1_1_vertex_input_state_1_1_binding.html#a37caf3785a283d47e9e9b5f8eea0cd60',1,'tz::gl::vk2::VertexInputState::Binding']]], + ['inputattachment_58',['InputAttachment',['../group__tz__gl__vk__image.html#gga6ecb2d248a682aac08d93f4a7078161ea261d965f5dd43c6873489b68730dbe57',1,'tz::gl::vk2']]], + ['inputattachmentread_59',['InputAttachmentRead',['../group__tz__gl__vk__graphics__pipeline__render__pass.html#ggaa5dd0142a36cd59d14dff54eed67c3dfa37bc3fb1753f31a1bfd76b475531d179',1,'tz::gl::vk2']]], + ['inputattachmentreference_60',['InputAttachmentReference',['../structtz_1_1gl_1_1vk2_1_1_render_pass_info_1_1_input_attachment_reference.html',1,'tz::gl::vk2::RenderPassInfo']]], + ['inputdelta_61',['InputDelta',['../structtz_1_1dbgui_1_1_input_delta.html',1,'tz::dbgui']]], + ['inputs_20and_20outputs_62',['Inputs and Outputs',['../group__tz__gl2__io.html',1,'']]], + ['instance_5fcount_63',['instance_count',['../structtz_1_1gl_1_1vk2_1_1_vulkan_command_1_1_draw.html#a365324b668b406ae92f340c15ecd30cb',1,'tz::gl::vk2::VulkanCommand::Draw']]], + ['instanceextension_64',['InstanceExtension',['../group__tz__gl__vk__extension.html#gaab3eb58740575c989d5eab8c3fd877a7',1,'tz::gl::vk2']]], + ['interfaceiterator_65',['InterfaceIterator',['../classtz_1_1_interface_iterator.html',1,'tz']]], + ['internaldeviceinfo_66',['InternalDeviceInfo',['../structtz_1_1gl_1_1vk2_1_1_internal_device_info.html',1,'tz::gl::vk2']]], + ['inverse_67',['inverse',['../group__tzsl__matrix.html#ga5acabab4299f3a83255b29951529b723',1,'tz::matrix::inverse()'],['../classtz_1_1matrix.html#a7e433fe3e699b5408379853e995047d7',1,'tz::matrix::inverse()']]], + ['inverse_5fsqrt_68',['inverse_sqrt',['../group__tzsl__math.html#gada52dfc780717ed2093173a1d7fc2756',1,'tz::math']]], + ['ioutput_69',['ioutput',['../classtz_1_1gl_1_1ioutput.html',1,'tz::gl']]], + ['iresource_70',['iresource',['../classtz_1_1gl_1_1iresource.html',1,'tz::gl']]], + ['is_5fbindless_71',['is_bindless',['../classtz_1_1gl_1_1ogl2_1_1image.html#abbbbeecb6616cc854440f88583e11739',1,'tz::gl::ogl2::image']]], + ['is_5finfinity_72',['is_infinity',['../group__tzsl__math.html#ga9fad99521b5db2890038926308391384',1,'tz::math']]], + ['is_5finitialised_73',['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_74',['is_key_down',['../group__tz__wsi__keyboard.html#ga5e31e075f6fd53e6c03dce80ea5f3b7e',1,'tz::wsi']]], + ['is_5fmouse_5fbutton_5fdown_75',['is_mouse_button_down',['../group__tz__wsi__mouse.html#ga922f648e394c766866b9f09677f52a97',1,'tz::wsi']]], + ['is_5fnan_76',['is_nan',['../group__tzsl__math.html#gafb0b592c454e7f033ea85f46819d149a',1,'tz::math']]], + ['is_5fnull_77',['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_78',['is_recording',['../classtz_1_1gl_1_1vk2_1_1_command_buffer.html#a721538a81ab301429e1eea581ca9a012',1,'tz::gl::vk2::CommandBuffer']]], + ['is_5fsignalled_79',['is_signalled',['../classtz_1_1gl_1_1vk2_1_1_fence.html#ac7ef0b27a987a0522a39a6bbdb071a90',1,'tz::gl::vk2::Fence']]] +]; diff --git a/search/all_9.js b/search/all_9.js new file mode 100644 index 0000000000..3cde991de5 --- /dev/null +++ b/search/all_9.js @@ -0,0 +1,11 @@ +var searchData= +[ + ['job_20system_0',['Job System',['../group__tz__core__job.html',1,'']]], + ['job_5fhandle_1',['job_handle',['../group__tz__core__job.html#ga2c5cfc90c91e1461b27bc405190e7dc6',1,'tz']]], + ['job_5fhandle_5ftag_2',['job_handle_tag',['../structtz_1_1detail_1_1job__handle__tag.html',1,'tz::detail']]], + ['job_5fsystem_3',['job_system',['../group__tz__core__job.html#ga32270a811cb4a5c1229ee22ce3d62cd7',1,'tz']]], + ['job_5fsystem_5fstdasync_4',['job_system_stdasync',['../classtz_1_1impl_1_1job__system__stdasync.html',1,'tz::impl']]], + ['job_5fsystem_5ft_5',['job_system_t',['../group__tz__core__job.html#ga039d3352a9976c2d496c4c6f020633ad',1,'tz']]], + ['job_5fsystem_5fthreadpool_5flfq_6',['job_system_threadpool_lfq',['../classtz_1_1impl_1_1job__system__threadpool__lfq.html',1,'tz::impl']]], + ['job_5ft_7',['job_t',['../group__tz__core__job.html#ga086493d1ebc9430b0a89b1ed4c5a6ad1',1,'tz']]] +]; diff --git a/search/all_a.js b/search/all_a.js new file mode 100644 index 0000000000..db38f53864 --- /dev/null +++ b/search/all_a.js @@ -0,0 +1,8 @@ +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']]], + ['keys_5fdown_4',['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..72430f4fcc --- /dev/null +++ b/search/all_b.js @@ -0,0 +1,26 @@ +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']]], + ['left_2',['left',['../group__tz__wsi__mouse.html#ggaf90a65771c2d2d40e2d8a35f27288e23a811882fecd5c7618d7099ebbd39ea254',1,'tz::wsi']]], + ['length_3',['length',['../classtz_1_1basic__list.html#ad2ed5fb6f960712dc66a7dca73100b56',1,'tz::basic_list::length()'],['../classtz_1_1vector.html#ad21a340f4595f568eefe21d3038c8234',1,'tz::vector::length()']]], + ['lerp_4',['lerp',['../group__tzsl__math.html#gaa303ee7efac3c557a14203c3583656f6',1,'tz::math']]], + ['lessthan_5',['LessThan',['../group__tz__gl__vk__graphics__pipeline__fixed.html#gga93e2cb3a5e44484b0548e28496de69c7ac6d9d7bb9939f62f01c80f8b1251501c',1,'tz::gl::vk2']]], + ['lessthanorequal_6',['LessThanOrEqual',['../group__tz__gl__vk__graphics__pipeline__fixed.html#gga93e2cb3a5e44484b0548e28496de69c7a4ab671acbbaacb0db7d8477cfe4f4e0b',1,'tz::gl::vk2']]], + ['limits_7',['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_8',['Line',['../group__tz__gl__vk__graphics__pipeline__fixed.html#ggaaeda985d06849d890d7ba2902688cd01a4803e6b9e63dabf04de980788d6a13c4',1,'tz::gl::vk2']]], + ['linear_9',['linear',['../group__tz__gl__ogl2__image.html#ggadabff1825f7cf36d8fada93ee1164a31a9a932b3cb396238423eb2f33ec17d6aa',1,'tz::gl::ogl2']]], + ['linear_10',['Linear',['../group__tz__gl__vk__image.html#gga41ec6a06ba8bf8e03f80cf81eb99b46aa32a843da6ea40ab3b17a3421ccdf671b',1,'tz::gl::vk2']]], + ['linear_5fallocator_11',['linear_allocator',['../classtz_1_1linear__allocator.html',1,'tz']]], + ['link_12',['link',['../classtz_1_1gl_1_1ogl2_1_1shader.html#ae19573903c49062b248032857ec14355',1,'tz::gl::ogl2::shader']]], + ['link_5fresult_13',['link_result',['../structtz_1_1gl_1_1ogl2_1_1shader_1_1link__result.html',1,'tz::gl::ogl2::shader']]], + ['ln_14',['ln',['../group__tzsl__math.html#gaa3a474353fb7c18a671fb285c38f12fa',1,'tz::math']]], + ['load_15',['Load',['../group__tz__gl__vk__graphics__pipeline__render__pass.html#ggaa1e0e627270d80ef86624590afc5a03faf19dbf2edb3a0bd74b0524d960ff21eb',1,'tz::gl::vk2']]], + ['loadop_16',['LoadOp',['../group__tz__gl__vk__graphics__pipeline__render__pass.html#gaa1e0e627270d80ef86624590afc5a03f',1,'tz::gl::vk2']]], + ['log_17',['log',['../group__tzsl__math.html#gaa8fbf2fd8ac5c0c3e7a3ad51cfe5acca',1,'tz::math']]], + ['logical_5fdevice_18',['logical_device',['../structtz_1_1gl_1_1vk2_1_1_render_pass_info.html#a1dc269fba5204ec4558be348e043353e',1,'tz::gl::vk2::RenderPassInfo::logical_device()'],['../structtz_1_1gl_1_1vk2_1_1_pipeline_layout_info.html#a54a3f0e47bb70c14d39bf1e57551e85d',1,'tz::gl::vk2::PipelineLayoutInfo::logical_device()'],['../structtz_1_1gl_1_1vk2_1_1_descriptor_pool_info.html#aec347e650449b8bb1e4d2ddba4e7312e',1,'tz::gl::vk2::DescriptorPoolInfo::logical_device()'],['../structtz_1_1gl_1_1vk2_1_1_descriptor_layout_info.html#af62a5ae0b0d0ecd5936c4efc36569cf7',1,'tz::gl::vk2::DescriptorLayoutInfo::logical_device()']]], + ['logicaldevice_19',['LogicalDevice',['../classtz_1_1gl_1_1vk2_1_1_logical_device.html#a2bee85f2a05cbf3653a887f471745cdb',1,'tz::gl::vk2::LogicalDevice::LogicalDevice()'],['../classtz_1_1gl_1_1vk2_1_1_logical_device.html',1,'tz::gl::vk2::LogicalDevice']]], + ['logicaldeviceinfo_20',['LogicalDeviceInfo',['../structtz_1_1gl_1_1vk2_1_1_logical_device_info.html',1,'tz::gl::vk2']]], + ['lookup_5ffilter_21',['lookup_filter',['../group__tz__gl__ogl2__image.html#gadabff1825f7cf36d8fada93ee1164a31',1,'tz::gl::ogl2']]], + ['lookupfilter_22',['LookupFilter',['../group__tz__gl__vk__image.html#ga24cb95974e796673bd262b86ee9cfa89',1,'tz::gl::vk2']]] +]; diff --git a/search/all_c.js b/search/all_c.js new file mode 100644 index 0000000000..5b6a9cd7b8 --- /dev/null +++ b/search/all_c.js @@ -0,0 +1,51 @@ +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,'']]], + ['make_5fbindless_4',['make_bindless',['../classtz_1_1gl_1_1ogl2_1_1image.html#a1db429d2f9d112084f5ff4a3dbf29111',1,'tz::gl::ogl2::image']]], + ['make_5fedit_5frequest_5',['make_edit_request',['../classtz_1_1gl_1_1vk2_1_1_descriptor_set.html#aad4dfda61c3b097013b675089501ddcb',1,'tz::gl::vk2::DescriptorSet']]], + ['make_5fupdate_5frequest_6',['make_update_request',['../classtz_1_1gl_1_1vk2_1_1_descriptor_pool.html#aa4ca5a9b707fa4a15e150105e7ce7d44',1,'tz::gl::vk2::DescriptorPool']]], + ['mallocator_7',['mallocator',['../classtz_1_1mallocator.html',1,'tz']]], + ['map_8',['map',['../classtz_1_1gl_1_1vk2_1_1_buffer.html#a6f7131c56890d0966bb2e3ea74bc2eb1',1,'tz::gl::vk2::Buffer::map()'],['../classtz_1_1gl_1_1ogl2_1_1buffer.html#a7b2564baa2398de6d15d056d9fc1df20',1,'tz::gl::ogl2::buffer::map() const'],['../classtz_1_1gl_1_1ogl2_1_1buffer.html#a6a152a5570d321dfaafb8622e4ec0e29',1,'tz::gl::ogl2::buffer::map()']]], + ['map_5fas_9',['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()']]], + ['mat2_10',['mat2',['../group__tz__core.html#ga668b6f90e97691172a3677c8519432b4',1,'tz']]], + ['mat3_11',['mat3',['../group__tz__core.html#ga3faadeb0d0e0fcd28ca591416d83fa84',1,'tz']]], + ['mat4_12',['mat4',['../group__tz__core.html#ga1f1e59ed90427ee9f69f95d8a2409bf0',1,'tz']]], + ['mathematical_20operations_13',['Mathematical Operations',['../group__tzsl__math.html',1,'']]], + ['matrix_14',['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)'],['../classtz_1_1matrix.html',1,'tz::matrix< T, R, C >']]], + ['matrix_20operations_15',['Matrix Operations',['../group__tzsl__matrix.html',1,'']]], + ['matrix_3c_20float_2c_204_2c_204_20_3e_16',['matrix< float, 4, 4 >',['../classtz_1_1matrix.html',1,'tz']]], + ['max_17',['max',['../group__tzsl__atomic.html#ga7be084073b7420420cd5f5b5b9f81db6',1,'tz::atomic::max()'],['../group__tzsl__math.html#gaace435adbf3045892fcff015ae6446ae',1,'tz::math::max()']]], + ['max_5fdepth_5fbounds_18',['max_depth_bounds',['../structtz_1_1gl_1_1vk2_1_1_depth_stencil_state.html#a58c3f50ea28733e7f2aa58925fa483ae',1,'tz::gl::vk2::DepthStencilState']]], + ['max_5fsets_19',['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_20',['maybe_depth_attachment',['../structtz_1_1gl_1_1ogl2_1_1framebuffer__info.html#ae7762196e1cb2dca0e5906eda2e03c66',1,'tz::gl::ogl2::framebuffer_info']]], + ['maybe_5fowned_5fptr_21',['maybe_owned_ptr',['../classtz_1_1maybe__owned__ptr.html',1,'tz']]], + ['memblk_22',['memblk',['../structtz_1_1memblk.html',1,'tz']]], + ['memory_20utility_23',['Memory Utility',['../group__tz__core__memory.html',1,'']]], + ['micros_24',['micros',['../classtz_1_1duration.html#a77132d356c4f747078fd4574e778a1a8',1,'tz::duration']]], + ['middle_25',['middle',['../group__tz__wsi__mouse.html#ggaf90a65771c2d2d40e2d8a35f27288e23a4a548addbfb239bbd12f5afe11a4b6dc',1,'tz::wsi']]], + ['millis_26',['millis',['../classtz_1_1duration.html#a7e77d183a8aeecf8e36a6a7b76947f8b',1,'tz::duration']]], + ['min_27',['min',['../group__tzsl__math.html#ga4bd7bdfcb0408f324b5e80a7c233a2ed',1,'tz::math::min()'],['../group__tzsl__atomic.html#ga86e1a113d8ee0dd644704f091bcb1b13',1,'tz::atomic::min()']]], + ['min_5fdepth_5fbounds_28',['min_depth_bounds',['../structtz_1_1gl_1_1vk2_1_1_depth_stencil_state.html#a61412b4f256eebf85bd2c8107925e9ea',1,'tz::gl::vk2::DepthStencilState']]], + ['min_5ffilter_29',['min_filter',['../structtz_1_1gl_1_1vk2_1_1_sampler_info.html#a26b190b5d299f701755da83412eed998',1,'tz::gl::vk2::SamplerInfo::min_filter()'],['../structtz_1_1gl_1_1ogl2_1_1sampler.html#af36a7a7d1dacbfe3677125b80a6c02bb',1,'tz::gl::ogl2::sampler::min_filter()']]], + ['minutes_30',['minutes',['../classtz_1_1duration.html#a03ae7d13037cac61ff6c60852d1d20fc',1,'tz::duration']]], + ['mip_5flevels_31',['mip_levels',['../structtz_1_1gl_1_1vk2_1_1image__info.html#aa5d7724a2fdf258894349ed434c342f2',1,'tz::gl::vk2::image_info']]], + ['miplookupfilter_32',['MipLookupFilter',['../group__tz__gl__vk__image.html#ga4023d87f2b0f64e5fc17ededf9e1a712',1,'tz::gl::vk2']]], + ['mirrored_5frepeat_33',['mirrored_repeat',['../group__tz__gl__ogl2__image.html#gga52bed615aea0b883aeb6702716f95e5ba301defc6e7425fc63ef35c7827d43b44',1,'tz::gl::ogl2']]], + ['mirroredrepeat_34',['MirroredRepeat',['../group__tz__gl__vk__image.html#gga8d6daa8ff20537f40f5e1145342c2d4da12ce4a5977988214a6b098b8cb0bf695',1,'tz::gl::vk2']]], + ['mod_35',['mod',['../group__tzsl__math.html#ga9e6708981e516e127c8e7f9e078aa50a',1,'tz::math']]], + ['model_36',['model',['../group__tz__core.html#ga8eee7d1f58cb6eefcc220bc2026ba7e1',1,'tz']]], + ['modules_37',['modules',['../structtz_1_1gl_1_1vk2_1_1_shader_info.html#ad001f2e367292069e9993df2e02cebc7',1,'tz::gl::vk2::ShaderInfo::modules()'],['../structtz_1_1gl_1_1ogl2_1_1shader__info.html#a756a0fe26b2d4ec298dabeae07d003ab',1,'tz::gl::ogl2::shader_info::modules()']]], + ['monitor_38',['monitor',['../structtz_1_1wsi_1_1monitor.html',1,'tz::wsi']]], + ['monitors_39',['Monitors',['../group__tz__wsi__monitor.html',1,'']]], + ['mouse_20input_40',['Mouse Input',['../group__tz__wsi__mouse.html',1,'']]], + ['mouse_5fbutton_41',['mouse_button',['../group__tz__wsi__mouse.html#gaf90a65771c2d2d40e2d8a35f27288e23',1,'tz::wsi']]], + ['mouse_5fbutton_5fstate_42',['mouse_button_state',['../group__tz__wsi__mouse.html#ga089bafa0df7fa17353dbf27087a1f65b',1,'tz::wsi']]], + ['mouse_5fposition_43',['mouse_position',['../structtz_1_1wsi_1_1mouse__state.html#a20cc90fea16314dd5eff2dbc1c273427',1,'tz::wsi::mouse_state']]], + ['mouse_5fstate_44',['mouse_state',['../structtz_1_1wsi_1_1mouse__state.html',1,'tz::wsi']]], + ['multidrawindirect_45',['MultiDrawIndirect',['../group__tz__gl__vk__extension.html#gga6744c8f7d1276d6d9ae861b21c489505abea0d690193c82d29c896d859a91d8ff',1,'tz::gl::vk2']]], + ['multisamplestate_46',['MultisampleState',['../structtz_1_1gl_1_1vk2_1_1_multisample_state.html',1,'tz::gl::vk2']]], + ['mvp_47',['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..9c7966524d --- /dev/null +++ b/search/all_d.js @@ -0,0 +1,20 @@ +var searchData= +[ + ['name_0',['name',['../structtz_1_1initialise__info.html#a768e62c7d1e79dfb74783ab7088d8f7d',1,'tz::initialise_info::name()'],['../structtz_1_1wsi_1_1monitor.html#ac3dd95c4ff12a83e5ee7dfc793d46fb3',1,'tz::wsi::monitor::name()']]], + ['nanos_1',['nanos',['../classtz_1_1duration.html#a2a250959a205d0533fa459eb7635141d',1,'tz::duration']]], + ['nearest_2',['nearest',['../group__tz__gl__ogl2__image.html#ggadabff1825f7cf36d8fada93ee1164a31ad879c351426770bc0b13c3628db1e636',1,'tz::gl::ogl2']]], + ['no_5fclear_5foutput_3',['no_clear_output',['../group__tz__gl2__renderer.html#ggac6f74feb8cd57f49c051f5d83a12be5da2203bd6a7850fb82fd5e59beddc2533d',1,'tz::gl']]], + ['no_5fdepth_5ftesting_4',['no_depth_testing',['../group__tz__gl2__renderer.html#ggac6f74feb8cd57f49c051f5d83a12be5daee30a7f521c17e0d4e97d6b247540301',1,'tz::gl']]], + ['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']]], + ['noise_20functions_8',['Noise Functions',['../group__tzsl__noise.html',1,'']]], + ['noneneeded_9',['NoneNeeded',['../group__tz__gl__vk__graphics__pipeline__render__pass.html#ggaa5dd0142a36cd59d14dff54eed67c3dfa8de1f22edd904226836321deb96d7f1d',1,'tz::gl::vk2']]], + ['nonsolidfillrasteriser_10',['NonSolidFillRasteriser',['../group__tz__gl__vk__extension.html#gga6744c8f7d1276d6d9ae861b21c489505a50df80e0d2daa3c2a0fbf8a994ad3a62',1,'tz::gl::vk2']]], + ['normalise_11',['normalise',['../group__tzsl__math.html#ga7e9161c4554681c9e3455f2044d74378',1,'tz::math::normalise()'],['../classtz_1_1vector.html#a6c5d76ac6e6c423a3939a68a104a2476',1,'tz::vector::normalise()']]], + ['normalised_12',['normalised',['../classtz_1_1vector.html#a7d3f52f2b2eee13ed28869b1d5775a40',1,'tz::vector']]], + ['notequalto_13',['NotEqualTo',['../group__tz__gl__vk__graphics__pipeline__fixed.html#gga93e2cb3a5e44484b0548e28496de69c7a0961129d84d9d8f6aa4138a3e5022a1d',1,'tz::gl::vk2']]], + ['null_14',['null',['../classtz_1_1gl_1_1vk2_1_1_swapchain.html#a4a22a47532955e0b373b671bf4e310dc',1,'tz::gl::vk2::Swapchain::null()'],['../classtz_1_1gl_1_1image__resource.html#ad7b2f90494cadde953d63ff92a1c7568',1,'tz::gl::image_resource::null()'],['../classtz_1_1gl_1_1buffer__resource.html#adc992b7120e61ca9e84236b84a96b760',1,'tz::gl::buffer_resource::null()'],['../classtz_1_1gl_1_1vk2_1_1_logical_device.html#a29a6419aa0f11bc338774da7ec9db6ed',1,'tz::gl::vk2::LogicalDevice::null()'],['../classtz_1_1gl_1_1ogl2_1_1vertex__array.html#a39da177cf71a9462d79fcc82230ee702',1,'tz::gl::ogl2::vertex_array::null()'],['../classtz_1_1gl_1_1ogl2_1_1shader.html#a189789a1dd30c80d8e0c1b8be0b0c7ee',1,'tz::gl::ogl2::shader::null()'],['../classtz_1_1gl_1_1ogl2_1_1image.html#a47abf1514f9156f568d16abfa09ceb64',1,'tz::gl::ogl2::image::null()'],['../classtz_1_1gl_1_1ogl2_1_1framebuffer.html#a1043574f330dd12e7bcc56bf41291e91',1,'tz::gl::ogl2::framebuffer::null()'],['../classtz_1_1gl_1_1ogl2_1_1buffer.html#a198db31e0a5081dca6a29fdedfcb2e7d',1,'tz::gl::ogl2::buffer::null()']]], + ['null_5fallocator_15',['null_allocator',['../classtz_1_1null__allocator.html',1,'tz']]], + ['nullhand_5ft_16',['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..999c20cf20 --- /dev/null +++ b/search/all_e.js @@ -0,0 +1,28 @@ +var searchData= +[ + ['old_5fswapchain_0',['old_swapchain',['../structtz_1_1gl_1_1vk2_1_1_swapchain_info.html#a3250b11e92a4f4f5bc8ed7dd00c8a26d',1,'tz::gl::vk2::SwapchainInfo']]], + ['opengl_1',['OpenGL',['../group__tz__gl2__graphicsapi__ogl.html',1,'']]], + ['opengl_20backend_2',['OpenGL Backend',['../group__tz__gl__ogl2.html',1,'']]], + ['opengl_20frontend_3',['OpenGL Frontend',['../group__tz__gl2__graphicsapi__ogl__frontend.html',1,'']]], + ['operator_20e_4',['operator E',['../classtz_1_1enum__field.html#a3327eb996a17b1b537c9dd0f4ca7b4ff',1,'tz::enum_field']]], + ['operator_20vector_3c_20x_2c_20s_20_3e_5',['operator vector< X, S >',['../classtz_1_1vector.html#a07e3d24a2740e69ab8d7b3d3fbf1cae9',1,'tz::vector']]], + ['operator_28_29_6',['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_7',['operator*',['../classtz_1_1vector.html#a1376ec726cece78821351e04454f64e3',1,'tz::vector::operator*()'],['../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_8',['operator*=',['../classtz_1_1vector.html#ab2a0d283be965ec4bb87b05ee3deb889',1,'tz::vector::operator*=()'],['../classtz_1_1matrix.html#adfc1ddaf3f1eff63ec42a908a0e73ab1',1,'tz::matrix::operator*=(const matrix< T, R, C > &matrix)'],['../classtz_1_1matrix.html#af19be9672620b0e0b00e7df4a6d92779',1,'tz::matrix::operator*=(T scalar)']]], + ['operator_2b_9',['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_10',['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_11',['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_12',['operator-=',['../classtz_1_1vector.html#af6a75286d40b914f9bbca886bdbbcaa6',1,'tz::vector::operator-=()'],['../classtz_1_1matrix.html#af1555e763f45c1f616f9d765257e84ae',1,'tz::matrix::operator-=(const matrix< T, R, C > &matrix)'],['../classtz_1_1matrix.html#a8969d5837a080b67a520381b859ebbe6',1,'tz::matrix::operator-=(T scalar)']]], + ['operator_2f_13',['operator/',['../classtz_1_1vector.html#a0258c2f1b18c602fa0d3e6f111d9a302',1,'tz::vector']]], + ['operator_2f_3d_14',['operator/=',['../classtz_1_1vector.html#a3bf18e76e10c2744051757ac69d28ea1',1,'tz::vector']]], + ['operator_3d_3d_15',['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_16',['operator[]',['../classtz_1_1vector.html#a2e0545e0185d4952cb6e0064ec292c7d',1,'tz::vector::operator[]()'],['../classtz_1_1matrix.html#a6cc8213a09be28cac68d613ed5633675',1,'tz::matrix::operator[](std::size_t row_idx)'],['../classtz_1_1matrix.html#a473b176cd8b03837b3e904f4fa5c5d1d',1,'tz::matrix::operator[](std::size_t row_idx) const'],['../classtz_1_1vector.html#a567ecbdc46da683e1e1fa1e140d57185',1,'tz::vector::operator[]()'],['../classtz_1_1_polymorphic_list.html#a1c35e09a69492845e176f0b4533fbc9d',1,'tz::PolymorphicList::operator[](std::size_t idx)'],['../classtz_1_1_polymorphic_list.html#ac9d9ca26cd70c5cdf6f45678fccdcfe1',1,'tz::PolymorphicList::operator[](std::size_t idx) const'],['../classtz_1_1basic__list.html#ae1e36e4ebc67ca42f3549c8866a4f26d',1,'tz::basic_list::operator[](std::size_t index)'],['../classtz_1_1basic__list.html#a18c4f56a2797760ab7ab7a4ef3b65736',1,'tz::basic_list::operator[](std::size_t index) const']]], + ['operator_7c_17',['operator|',['../classtz_1_1enum__field.html#a2aecfc1eb743a60eb38d612bee21797c',1,'tz::enum_field']]], + ['operator_7c_3d_18',['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_19',['Optimal',['../group__tz__gl__vk__image.html#gga41ec6a06ba8bf8e03f80cf81eb99b46aacb61fef1e5e79e07a80421cb9a073a80',1,'tz::gl::vk2']]], + ['or_20',['or',['../group__tzsl__atomic.html#ga95e7e3ef54161ce397ae4496aa09be0c',1,'tz::atomic']]], + ['orthographic_21',['orthographic',['../group__tz__core.html#ga234891ef18cb4fd49558abc807e172e2',1,'tz']]], + ['outputmanager_22',['OutputManager',['../classtz_1_1gl_1_1_output_manager.html#adc7d95d64b3331d874c482a08b2471d5',1,'tz::gl::OutputManager::OutputManager()'],['../classtz_1_1gl_1_1_output_manager.html',1,'tz::gl::OutputManager']]], + ['overloaded_23',['overloaded',['../structtz_1_1gl_1_1overloaded.html',1,'tz::gl']]], + ['span_3c_20const_20t_20_3e_24',['span< const T >',['../classtz_1_1basic__list.html#a54c9f1226a0ac27cd0f51485e3991181',1,'tz::basic_list']]] +]; diff --git a/search/all_f.js b/search/all_f.js new file mode 100644 index 0000000000..2d324b2422 --- /dev/null +++ b/search/all_f.js @@ -0,0 +1,40 @@ +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']]], + ['perspective_2',['perspective',['../group__tz__core.html#gab069a1e647b9e13ac337c87fa7b5a7cc',1,'tz']]], + ['physical_5fdevice_3',['physical_device',['../structtz_1_1gl_1_1vk2_1_1_logical_device_info.html#ad24f7891d2eee485a1a8cf01a1477f92',1,'tz::gl::vk2::LogicalDeviceInfo']]], + ['physicaldevice_4',['PhysicalDevice',['../classtz_1_1gl_1_1vk2_1_1_physical_device.html#a1af757e82fdc5ebc851cf9489fdb5c25',1,'tz::gl::vk2::PhysicalDevice::PhysicalDevice()'],['../classtz_1_1gl_1_1vk2_1_1_physical_device.html',1,'tz::gl::vk2::PhysicalDevice']]], + ['physicaldeviceinfo_5',['PhysicalDeviceInfo',['../structtz_1_1gl_1_1vk2_1_1_physical_device_info.html',1,'tz::gl::vk2']]], + ['physicaldevicesurfacecapabilityinfo_6',['PhysicalDeviceSurfaceCapabilityInfo',['../structtz_1_1gl_1_1vk2_1_1_physical_device_surface_capability_info.html',1,'tz::gl::vk2']]], + ['physicaldevicevendor_7',['PhysicalDeviceVendor',['../group__tz__gl__vk.html#ga50848b0c20c1ec0f873eddc129dbecd7',1,'tz::gl::vk2']]], + ['pipeline_8',['pipeline',['../structtz_1_1gl_1_1vk2_1_1_vulkan_command_1_1_bind_pipeline.html#af61bd11bebba3d7c26caaf05c5488b77',1,'tz::gl::vk2::VulkanCommand::BindPipeline']]], + ['pipeline_9',['Pipeline',['../classtz_1_1gl_1_1vk2_1_1_pipeline.html',1,'tz::gl::vk2']]], + ['pipeline_5flayout_10',['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_11',['PipelineCache',['../classtz_1_1gl_1_1vk2_1_1_pipeline_cache.html',1,'tz::gl::vk2']]], + ['pipelinecontext_12',['PipelineContext',['../group__tz__gl__vk__graphics__pipeline__render__pass.html#ga58cefe5ecfeac91929d767bdb56f943b',1,'tz::gl::vk2']]], + ['pipelinedata_13',['PipelineData',['../structtz_1_1gl_1_1vk2_1_1_pipeline_data.html',1,'tz::gl::vk2']]], + ['pipelinelayout_14',['PipelineLayout',['../classtz_1_1gl_1_1vk2_1_1_pipeline_layout.html',1,'tz::gl::vk2']]], + ['pipelinelayoutinfo_15',['PipelineLayoutInfo',['../structtz_1_1gl_1_1vk2_1_1_pipeline_layout_info.html',1,'tz::gl::vk2']]], + ['pipelinestage_16',['PipelineStage',['../group__tz__gl__vk__graphics__pipeline.html#gaa581c5a329a76e48f41ca02bd263251a',1,'tz::gl::vk2']]], + ['pipelinestate_17',['PipelineState',['../structtz_1_1gl_1_1vk2_1_1_pipeline_state.html',1,'tz::gl::vk2']]], + ['point_18',['Point',['../group__tz__gl__vk__graphics__pipeline__fixed.html#ggaaeda985d06849d890d7ba2902688cd01a2a3cd5946cfd317eb99c3d32e35e2d4c',1,'tz::gl::vk2']]], + ['polygon_5fmode_19',['polygon_mode',['../structtz_1_1gl_1_1vk2_1_1_rasteriser_state.html#a791ff910d8069973e2ac715a7fbf0a34',1,'tz::gl::vk2::RasteriserState']]], + ['polygonmode_20',['PolygonMode',['../group__tz__gl__vk__graphics__pipeline__fixed.html#gaaeda985d06849d890d7ba2902688cd01',1,'tz::gl::vk2']]], + ['polymorphiclist_21',['PolymorphicList',['../classtz_1_1_polymorphic_list.html#abc16be83e1ee23b79e3f6025015cc036',1,'tz::PolymorphicList::PolymorphicList()'],['../classtz_1_1_polymorphic_list.html',1,'tz::PolymorphicList< T, Allocator >']]], + ['poollimits_22',['PoolLimits',['../structtz_1_1gl_1_1vk2_1_1_descriptor_pool_info_1_1_pool_limits.html',1,'tz::gl::vk2::DescriptorPoolInfo']]], + ['pooloutofmemory_23',['PoolOutOfMemory',['../structtz_1_1gl_1_1vk2_1_1_descriptor_pool_1_1_allocation_result.html#abad85d19de3197a840dc5e69ad797c54a59ea7060f6bf874416655509987eaa47',1,'tz::gl::vk2::DescriptorPool::AllocationResult']]], + ['pop_5flast_5fkey_24',['pop_last_key',['../structtz_1_1wsi_1_1keyboard__state.html#aff2a1e6ef218cd37ac2628ae96b20492',1,'tz::wsi::keyboard_state']]], + ['pow_25',['pow',['../group__tzsl__math.html#ga9f34e69d9b60f40eff093810b901758f',1,'tz::math']]], + ['precomputed_20meshes_26',['Precomputed Meshes',['../group__tzsl__mesh.html',1,'']]], + ['present_27',['present',['../classtz_1_1gl_1_1vk2_1_1hardware_1_1_queue.html#aa4f3d7a351fe699cd90ea6457c64caee',1,'tz::gl::vk2::hardware::Queue']]], + ['present_28',['Present',['../group__tz__gl__vk__image.html#gga4ca55be3d1c101900d800a78deeb595fadd058df87f5c88e3285a28ad7406a3c6',1,'tz::gl::vk2']]], + ['present_5fimage_29',['present_image',['../classtz_1_1gl_1_1device__command__pool.html#ab1098fdc258d74a3017f6eae5f2b2e18',1,'tz::gl::device_command_pool']]], + ['present_5fmode_30',['present_mode',['../structtz_1_1gl_1_1vk2_1_1_swapchain_info.html#a36db578d14d66370bc66718ef6ad9ebd',1,'tz::gl::vk2::SwapchainInfo']]], + ['present_5fsupport_31',['present_support',['../structtz_1_1gl_1_1vk2_1_1_queue_request.html#a14749d3d7e932216e42c76500bb4645a',1,'tz::gl::vk2::QueueRequest']]], + ['presentation_20and_20window_20surface_20interation_20_28wsi_29_32',['Presentation and Window Surface Interation (WSI)',['../group__tz__gl__vk__presentation.html',1,'']]], + ['presentinfo_33',['PresentInfo',['../structtz_1_1gl_1_1vk2_1_1hardware_1_1_queue_1_1_present_info.html',1,'tz::gl::vk2::hardware::Queue']]], + ['presentresult_34',['PresentResult',['../classtz_1_1gl_1_1vk2_1_1hardware_1_1_queue.html#a85b458bfb664176d140abf3b6b627e67',1,'tz::gl::vk2::hardware::Queue']]], + ['printf_35',['printf',['../group__tzsl__debug.html#ga401528dfbbe8d1188886cc571d1265b6',1,'tz::debug']]], + ['ptr_36',['ptr',['../structtz_1_1memblk.html#a1fbc7ecd17b8e88fafd516f747371d5d',1,'tz::memblk']]] +]; diff --git a/search/classes_0.js b/search/classes_0.js new file mode 100644 index 0000000000..29f30a93be --- /dev/null +++ b/search/classes_0.js @@ -0,0 +1,11 @@ +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']]], + ['assetstoragecommon_3',['AssetStorageCommon',['../classtz_1_1gl_1_1_asset_storage_common.html',1,'tz::gl']]], + ['assetstoragecommon_3c_20iresource_20_3e_4',['AssetStorageCommon< iresource >',['../classtz_1_1gl_1_1_asset_storage_common.html',1,'tz::gl']]], + ['attachment_5',['Attachment',['../structtz_1_1gl_1_1vk2_1_1_attachment.html',1,'tz::gl::vk2']]], + ['attachmentreference_6',['AttachmentReference',['../structtz_1_1gl_1_1vk2_1_1_render_pass_info_1_1_attachment_reference.html',1,'tz::gl::vk2::RenderPassInfo']]], + ['attribute_7',['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..3ec68f129b --- /dev/null +++ b/search/classes_1.js @@ -0,0 +1,51 @@ +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_20smartpointer_2c_20std_3a_3aallocator_3c_20std_3a_3aunique_5fptr_3c_20t_20_3e_20_3e_20_3e_7',['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_8',['basic_list< std::uint32_t >',['../classtz_1_1basic__list.html',1,'tz']]], + ['basic_5flist_3c_20tz_3a_3abasic_5flist_20_3e_9',['basic_list< tz::basic_list >',['../classtz_1_1basic__list.html',1,'tz']]], + ['basic_5flist_3c_20tz_3a_3agl_3a_3aicomponent_20_2a_20_3e_10',['basic_list< tz::gl::icomponent * >',['../classtz_1_1basic__list.html',1,'tz']]], + ['basic_5flist_3c_20tz_3a_3agl_3a_3aogl2_3a_3ashader_5fmodule_5finfo_20_3e_11',['basic_list< tz::gl::ogl2::shader_module_info >',['../classtz_1_1basic__list.html',1,'tz']]], + ['basic_5flist_3c_20tz_3a_3agl_3a_3avk2_3a_3aattachment_20_3e_12',['basic_list< tz::gl::vk2::Attachment >',['../classtz_1_1basic__list.html',1,'tz']]], + ['basic_5flist_3c_20tz_3a_3agl_3a_3avk2_3a_3acommandbuffer_20_3e_13',['basic_list< tz::gl::vk2::CommandBuffer >',['../classtz_1_1basic__list.html',1,'tz']]], + ['basic_5flist_3c_20tz_3a_3agl_3a_3avk2_3a_3adescriptorlayoutinfo_3a_3abindinginfo_20_3e_14',['basic_list< tz::gl::vk2::DescriptorLayoutInfo::BindingInfo >',['../classtz_1_1basic__list.html',1,'tz']]], + ['basic_5flist_3c_20tz_3a_3agl_3a_3avk2_3a_3adescriptorset_20_3e_15',['basic_list< tz::gl::vk2::DescriptorSet >',['../classtz_1_1basic__list.html',1,'tz']]], + ['basic_5flist_3c_20tz_3a_3agl_3a_3avk2_3a_3ahardware_3a_3aqueue_3a_3asubmitinfo_3a_3asignalinfo_20_3e_16',['basic_list< tz::gl::vk2::hardware::Queue::SubmitInfo::SignalInfo >',['../classtz_1_1basic__list.html',1,'tz']]], + ['basic_5flist_3c_20tz_3a_3agl_3a_3avk2_3a_3ahardware_3a_3aqueue_3a_3asubmitinfo_3a_3awaitinfo_20_3e_17',['basic_list< tz::gl::vk2::hardware::Queue::SubmitInfo::WaitInfo >',['../classtz_1_1basic__list.html',1,'tz']]], + ['basic_5flist_3c_20tz_3a_3agl_3a_3avk2_3a_3aimageview_20_2a_20_3e_18',['basic_list< tz::gl::vk2::ImageView * >',['../classtz_1_1basic__list.html',1,'tz']]], + ['basic_5flist_3c_20tz_3a_3agl_3a_3avk2_3a_3arenderpassinfo_3a_3aattachmentreference_20_3e_19',['basic_list< tz::gl::vk2::RenderPassInfo::AttachmentReference >',['../classtz_1_1basic__list.html',1,'tz']]], + ['basic_5flist_3c_20tz_3a_3agl_3a_3avk2_3a_3arenderpassinfo_3a_3ainputattachmentreference_20_3e_20',['basic_list< tz::gl::vk2::RenderPassInfo::InputAttachmentReference >',['../classtz_1_1basic__list.html',1,'tz']]], + ['basic_5flist_3c_20tz_3a_3agl_3a_3avk2_3a_3arenderpassinfo_3a_3asubpass_20_3e_21',['basic_list< tz::gl::vk2::RenderPassInfo::Subpass >',['../classtz_1_1basic__list.html',1,'tz']]], + ['basic_5flist_3c_20tz_3a_3agl_3a_3avk2_3a_3ashadermoduleinfo_20_3e_22',['basic_list< tz::gl::vk2::ShaderModuleInfo >',['../classtz_1_1basic__list.html',1,'tz']]], + ['basic_5flist_3c_20tz_3a_3agl_3a_3avk2_3a_3avertexinputstate_3a_3aattribute_20_3e_23',['basic_list< tz::gl::vk2::VertexInputState::Attribute >',['../classtz_1_1basic__list.html',1,'tz']]], + ['basic_5flist_3c_20tz_3a_3agl_3a_3avk2_3a_3avertexinputstate_3a_3abinding_20_3e_24',['basic_list< tz::gl::vk2::VertexInputState::Binding >',['../classtz_1_1basic__list.html',1,'tz']]], + ['basic_5flist_3c_20vkpipelineshaderstagecreateinfo_20_3e_25',['basic_list< VkPipelineShaderStageCreateInfo >',['../classtz_1_1basic__list.html',1,'tz']]], + ['basic_5flist_3c_20vkrect2d_20_3e_26',['basic_list< VkRect2D >',['../classtz_1_1basic__list.html',1,'tz']]], + ['basic_5flist_3c_20vkviewport_20_3e_27',['basic_list< VkViewport >',['../classtz_1_1basic__list.html',1,'tz']]], + ['basic_5flist_3c_20write_20_3e_28',['basic_list< Write >',['../classtz_1_1basic__list.html',1,'tz']]], + ['begindynamicrendering_29',['BeginDynamicRendering',['../structtz_1_1gl_1_1vk2_1_1_vulkan_command_1_1_begin_dynamic_rendering.html',1,'tz::gl::vk2::VulkanCommand']]], + ['beginrenderpass_30',['BeginRenderPass',['../structtz_1_1gl_1_1vk2_1_1_vulkan_command_1_1_begin_render_pass.html',1,'tz::gl::vk2::VulkanCommand']]], + ['binarysemaphore_31',['BinarySemaphore',['../classtz_1_1gl_1_1vk2_1_1_binary_semaphore.html',1,'tz::gl::vk2']]], + ['bindbuffer_32',['BindBuffer',['../structtz_1_1gl_1_1vk2_1_1_vulkan_command_1_1_bind_buffer.html',1,'tz::gl::vk2::VulkanCommand']]], + ['binddescriptorsets_33',['BindDescriptorSets',['../structtz_1_1gl_1_1vk2_1_1_vulkan_command_1_1_bind_descriptor_sets.html',1,'tz::gl::vk2::VulkanCommand']]], + ['bindindexbuffer_34',['BindIndexBuffer',['../structtz_1_1gl_1_1vk2_1_1_vulkan_command_1_1_bind_index_buffer.html',1,'tz::gl::vk2::VulkanCommand']]], + ['binding_35',['Binding',['../structtz_1_1gl_1_1vk2_1_1_vertex_input_state_1_1_binding.html',1,'tz::gl::vk2::VertexInputState']]], + ['bindinginfo_36',['BindingInfo',['../structtz_1_1gl_1_1vk2_1_1_descriptor_layout_info_1_1_binding_info.html',1,'tz::gl::vk2::DescriptorLayoutInfo']]], + ['bindpipeline_37',['BindPipeline',['../structtz_1_1gl_1_1vk2_1_1_vulkan_command_1_1_bind_pipeline.html',1,'tz::gl::vk2::VulkanCommand']]], + ['buffer_38',['buffer',['../classtz_1_1gl_1_1ogl2_1_1buffer.html',1,'tz::gl::ogl2']]], + ['buffer_39',['Buffer',['../classtz_1_1gl_1_1vk2_1_1_buffer.html',1,'tz::gl::vk2']]], + ['buffer_5fcomponent_5fogl_40',['buffer_component_ogl',['../classtz_1_1gl_1_1buffer__component__ogl.html',1,'tz::gl']]], + ['buffer_5fcomponent_5fvulkan_41',['buffer_component_vulkan',['../classtz_1_1gl_1_1buffer__component__vulkan.html',1,'tz::gl']]], + ['buffer_5finfo_42',['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_43',['buffer_resize',['../structtz_1_1gl_1_1renderer__edit_1_1buffer__resize.html',1,'tz::gl::renderer_edit']]], + ['buffer_5fresource_44',['buffer_resource',['../classtz_1_1gl_1_1buffer__resource.html',1,'tz::gl']]], + ['buffercopybuffer_45',['BufferCopyBuffer',['../structtz_1_1gl_1_1vk2_1_1_vulkan_command_1_1_buffer_copy_buffer.html',1,'tz::gl::vk2::VulkanCommand']]], + ['buffercopyimage_46',['BufferCopyImage',['../structtz_1_1gl_1_1vk2_1_1_vulkan_command_1_1_buffer_copy_image.html',1,'tz::gl::vk2::VulkanCommand']]], + ['bufferwriteinfo_47',['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..a8e8145428 --- /dev/null +++ b/search/classes_10.js @@ -0,0 +1,8 @@ +var searchData= +[ + ['queue_0',['Queue',['../classtz_1_1gl_1_1vk2_1_1hardware_1_1_queue.html',1,'tz::gl::vk2::hardware']]], + ['queuefamilyinfo_1',['QueueFamilyInfo',['../structtz_1_1gl_1_1vk2_1_1_queue_family_info.html',1,'tz::gl::vk2']]], + ['queueinfo_2',['QueueInfo',['../structtz_1_1gl_1_1vk2_1_1hardware_1_1_queue_info.html',1,'tz::gl::vk2::hardware']]], + ['queuerequest_3',['QueueRequest',['../structtz_1_1gl_1_1vk2_1_1_queue_request.html',1,'tz::gl::vk2']]], + ['queuestorage_4',['QueueStorage',['../classtz_1_1gl_1_1vk2_1_1_queue_storage.html',1,'tz::gl::vk2']]] +]; diff --git a/search/classes_11.js b/search/classes_11.js new file mode 100644 index 0000000000..d7e61007e6 --- /dev/null +++ b/search/classes_11.js @@ -0,0 +1,31 @@ +var searchData= +[ + ['rasteriserstate_0',['RasteriserState',['../structtz_1_1gl_1_1vk2_1_1_rasteriser_state.html',1,'tz::gl::vk2']]], + ['render_5fbuffer_1',['render_buffer',['../classtz_1_1gl_1_1ogl2_1_1render__buffer.html',1,'tz::gl::ogl2']]], + ['render_5fbuffer_5finfo_2',['render_buffer_info',['../structtz_1_1gl_1_1ogl2_1_1render__buffer__info.html',1,'tz::gl::ogl2']]], + ['render_5fconfig_3',['render_config',['../structtz_1_1gl_1_1renderer__edit_1_1render__config.html',1,'tz::gl::renderer_edit']]], + ['render_5fstate_4',['render_state',['../structtz_1_1gl_1_1render__state.html',1,'tz::gl']]], + ['render_5ftarget_5ft_5',['render_target_t',['../structtz_1_1gl_1_1renderer__output__manager_1_1render__target__t.html',1,'tz::gl::renderer_output_manager']]], + ['renderer_6',['renderer',['../classtz_1_1gl_1_1renderer.html',1,'tz::gl']]], + ['renderer_5fcommand_5fprocessor_7',['renderer_command_processor',['../classtz_1_1gl_1_1renderer__command__processor.html',1,'tz::gl']]], + ['renderer_5fdescriptor_5fmanager_8',['renderer_descriptor_manager',['../classtz_1_1gl_1_1renderer__descriptor__manager.html',1,'tz::gl']]], + ['renderer_5fedit_9',['renderer_edit',['../structtz_1_1gl_1_1renderer__edit.html',1,'tz::gl']]], + ['renderer_5finfo_10',['renderer_info',['../classtz_1_1gl_1_1renderer__info.html',1,'tz::gl']]], + ['renderer_5fogl_11',['renderer_ogl',['../classtz_1_1gl_1_1renderer__ogl.html',1,'tz::gl']]], + ['renderer_5fogl_5fbase_12',['renderer_ogl_base',['../structtz_1_1gl_1_1renderer__ogl__base.html',1,'tz::gl']]], + ['renderer_5foutput_5fmanager_13',['renderer_output_manager',['../classtz_1_1gl_1_1renderer__output__manager.html',1,'tz::gl']]], + ['renderer_5fpipeline_14',['renderer_pipeline',['../classtz_1_1gl_1_1renderer__pipeline.html',1,'tz::gl']]], + ['renderer_5fresource_5fmanager_15',['renderer_resource_manager',['../classtz_1_1gl_1_1renderer__resource__manager.html',1,'tz::gl']]], + ['renderer_5ftag_16',['renderer_tag',['../structtz_1_1gl_1_1detail_1_1renderer__tag.html',1,'tz::gl::detail']]], + ['renderer_5fvulkan2_17',['renderer_vulkan2',['../classtz_1_1gl_1_1renderer__vulkan2.html',1,'tz::gl']]], + ['renderer_5fvulkan_5fbase_18',['renderer_vulkan_base',['../structtz_1_1gl_1_1renderer__vulkan__base.html',1,'tz::gl']]], + ['renderereditbuilder_19',['RendererEditBuilder',['../classtz_1_1gl_1_1_renderer_edit_builder.html',1,'tz::gl']]], + ['renderpass_20',['RenderPass',['../classtz_1_1gl_1_1vk2_1_1_render_pass.html',1,'tz::gl::vk2']]], + ['renderpassbuilder_21',['RenderPassBuilder',['../classtz_1_1gl_1_1vk2_1_1_render_pass_builder.html',1,'tz::gl::vk2']]], + ['renderpassinfo_22',['RenderPassInfo',['../structtz_1_1gl_1_1vk2_1_1_render_pass_info.html',1,'tz::gl::vk2']]], + ['renderpassrun_23',['RenderPassRun',['../classtz_1_1gl_1_1vk2_1_1_command_buffer_recording_1_1_render_pass_run.html',1,'tz::gl::vk2::CommandBufferRecording']]], + ['resource_24',['resource',['../classtz_1_1gl_1_1resource.html',1,'tz::gl']]], + ['resource_5freference_25',['resource_reference',['../structtz_1_1gl_1_1renderer__edit_1_1resource__reference.html',1,'tz::gl::renderer_edit']]], + ['resource_5fwrite_26',['resource_write',['../structtz_1_1gl_1_1renderer__edit_1_1resource__write.html',1,'tz::gl::renderer_edit']]], + ['resourcestorage_27',['ResourceStorage',['../classtz_1_1gl_1_1_resource_storage.html',1,'tz::gl']]] +]; diff --git a/search/classes_12.js b/search/classes_12.js new file mode 100644 index 0000000000..561b33770f --- /dev/null +++ b/search/classes_12.js @@ -0,0 +1,33 @@ +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']]], + ['source_5floc_19',['source_loc',['../structtz_1_1detail_1_1source__loc.html',1,'tz::detail']]], + ['stack_5fallocator_20',['stack_allocator',['../classtz_1_1stack__allocator.html',1,'tz']]], + ['static_5ffor_5ft_21',['static_for_t',['../structtz_1_1static__for__t.html',1,'tz']]], + ['static_5ffor_5ft_3c_20n_2c_20n_20_3e_22',['static_for_t< N, N >',['../structtz_1_1static__for__t_3_01_n_00_01_n_01_4.html',1,'tz']]], + ['submitinfo_23',['SubmitInfo',['../structtz_1_1gl_1_1vk2_1_1hardware_1_1_queue_1_1_submit_info.html',1,'tz::gl::vk2::hardware::Queue']]], + ['subpass_24',['Subpass',['../structtz_1_1gl_1_1vk2_1_1_render_pass_info_1_1_subpass.html',1,'tz::gl::vk2::RenderPassInfo']]], + ['subpassbuilder_25',['SubpassBuilder',['../classtz_1_1gl_1_1vk2_1_1_subpass_builder.html',1,'tz::gl::vk2']]], + ['swapchain_26',['Swapchain',['../classtz_1_1gl_1_1vk2_1_1_swapchain.html',1,'tz::gl::vk2']]], + ['swapchainextent_27',['SwapchainExtent',['../structtz_1_1gl_1_1vk2_1_1_physical_device_surface_capability_info_1_1_swapchain_extent.html',1,'tz::gl::vk2::PhysicalDeviceSurfaceCapabilityInfo']]], + ['swapchainimageinfo_28',['SwapchainImageInfo',['../structtz_1_1gl_1_1vk2_1_1_swapchain_image_info.html',1,'tz::gl::vk2']]], + ['swapchaininfo_29',['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..a96b48baf6 --- /dev/null +++ b/search/classes_13.js @@ -0,0 +1,9 @@ +var searchData= +[ + ['timeline_5ft_0',['timeline_t',['../structtz_1_1gl_1_1timeline__t.html',1,'tz::gl']]], + ['timelinesemaphore_1',['TimelineSemaphore',['../classtz_1_1gl_1_1vk2_1_1_timeline_semaphore.html',1,'tz::gl::vk2']]], + ['topazplatformdata_2',['TopazPlatformData',['../structtz_1_1dbgui_1_1_topaz_platform_data.html',1,'tz::dbgui']]], + ['topazrenderdata_3',['TopazRenderData',['../structtz_1_1dbgui_1_1_topaz_render_data.html',1,'tz::dbgui']]], + ['topazshaderrenderdata_4',['TopazShaderRenderData',['../structtz_1_1dbgui_1_1_topaz_shader_render_data.html',1,'tz::dbgui']]], + ['transitionimagelayout_5',['TransitionImageLayout',['../structtz_1_1gl_1_1vk2_1_1_vulkan_command_1_1_transition_image_layout.html',1,'tz::gl::vk2::VulkanCommand']]] +]; 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..07180ea6b3 --- /dev/null +++ b/search/classes_15.js @@ -0,0 +1,17 @@ +var searchData= +[ + ['vector_0',['vector',['../classtz_1_1vector.html',1,'tz']]], + ['vector_3c_20float_2c_204_20_3e_1',['vector< float, 4 >',['../classtz_1_1vector.html',1,'tz']]], + ['vector_3c_20std_3a_3auint32_5ft_2c_202_20_3e_2',['vector< std::uint32_t, 2 >',['../classtz_1_1vector.html',1,'tz']]], + ['vector_3c_20unsigned_20int_2c_202_20_3e_3',['vector< unsigned int, 2 >',['../classtz_1_1vector.html',1,'tz']]], + ['vector_3c_20unsigned_20int_2c_203_20_3e_4',['vector< unsigned int, 3 >',['../classtz_1_1vector.html',1,'tz']]], + ['version_5',['version',['../structtz_1_1version.html',1,'tz']]], + ['vertex_5farray_6',['vertex_array',['../classtz_1_1gl_1_1ogl2_1_1vertex__array.html',1,'tz::gl::ogl2']]], + ['vertexinputstate_7',['VertexInputState',['../structtz_1_1gl_1_1vk2_1_1_vertex_input_state.html',1,'tz::gl::vk2']]], + ['viewport_5fregion_8',['viewport_region',['../structtz_1_1gl_1_1viewport__region.html',1,'tz::gl']]], + ['viewportstate_9',['ViewportState',['../structtz_1_1gl_1_1vk2_1_1_viewport_state.html',1,'tz::gl::vk2']]], + ['vulkancommand_10',['VulkanCommand',['../structtz_1_1gl_1_1vk2_1_1_vulkan_command.html',1,'tz::gl::vk2']]], + ['vulkandebugmessenger_11',['VulkanDebugMessenger',['../classtz_1_1gl_1_1vk2_1_1_vulkan_debug_messenger.html',1,'tz::gl::vk2']]], + ['vulkaninstance_12',['VulkanInstance',['../classtz_1_1gl_1_1vk2_1_1_vulkan_instance.html',1,'tz::gl::vk2']]], + ['vulkaninstanceinfo_13',['VulkanInstanceInfo',['../structtz_1_1gl_1_1vk2_1_1_vulkan_instance_info.html',1,'tz::gl::vk2']]] +]; diff --git a/search/classes_16.js b/search/classes_16.js new file mode 100644 index 0000000000..b228df5765 --- /dev/null +++ b/search/classes_16.js @@ -0,0 +1,14 @@ +var searchData= +[ + ['waitinfo_0',['WaitInfo',['../structtz_1_1gl_1_1vk2_1_1hardware_1_1_queue_1_1_submit_info_1_1_wait_info.html',1,'tz::gl::vk2::hardware::Queue::SubmitInfo']]], + ['wgl_5ffunction_5fdata_1',['wgl_function_data',['../structtz_1_1wsi_1_1impl_1_1wgl__function__data.html',1,'tz::wsi::impl']]], + ['window_2',['window',['../structtz_1_1wsi_1_1window.html',1,'tz::wsi']]], + ['window_5fhandle_5ftag_3',['window_handle_tag',['../structtz_1_1wsi_1_1detail_1_1window__handle__tag.html',1,'tz::wsi::detail']]], + ['window_5finfo_4',['window_info',['../structtz_1_1wsi_1_1window__info.html',1,'tz::wsi']]], + ['window_5fmanager_5',['window_manager',['../structtz_1_1wsi_1_1window__manager.html',1,'tz::wsi']]], + ['window_5foutput_6',['window_output',['../classtz_1_1gl_1_1window__output.html',1,'tz::gl']]], + ['window_5fwinapi_7',['window_winapi',['../classtz_1_1wsi_1_1impl_1_1window__winapi.html',1,'tz::wsi::impl']]], + ['window_5fx11_8',['window_x11',['../classtz_1_1wsi_1_1impl_1_1window__x11.html',1,'tz::wsi::impl']]], + ['windowsurface_9',['WindowSurface',['../classtz_1_1gl_1_1vk2_1_1_window_surface.html',1,'tz::gl::vk2']]], + ['write_10',['Write',['../structtz_1_1gl_1_1vk2_1_1_descriptor_set_1_1_write.html',1,'tz::gl::vk2::DescriptorSet']]] +]; diff --git a/search/classes_17.js b/search/classes_17.js new file mode 100644 index 0000000000..01db355ace --- /dev/null +++ b/search/classes_17.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['x11_5fdisplay_5fdata_0',['x11_display_data',['../structtz_1_1wsi_1_1impl_1_1x11__display__data.html',1,'tz::wsi::impl']]] +]; diff --git a/search/classes_2.js b/search/classes_2.js new file mode 100644 index 0000000000..b798398f5b --- /dev/null +++ b/search/classes_2.js @@ -0,0 +1,16 @@ +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']]], + ['colourblendstate_2',['ColourBlendState',['../structtz_1_1gl_1_1vk2_1_1_colour_blend_state.html',1,'tz::gl::vk2']]], + ['commandbuffer_3',['CommandBuffer',['../classtz_1_1gl_1_1vk2_1_1_command_buffer.html',1,'tz::gl::vk2']]], + ['commandbufferdata_4',['CommandBufferData',['../structtz_1_1gl_1_1vk2_1_1_command_buffer_data.html',1,'tz::gl::vk2']]], + ['commandbufferrecording_5',['CommandBufferRecording',['../classtz_1_1gl_1_1vk2_1_1_command_buffer_recording.html',1,'tz::gl::vk2']]], + ['commandpool_6',['CommandPool',['../classtz_1_1gl_1_1vk2_1_1_command_pool.html',1,'tz::gl::vk2']]], + ['commandpoolinfo_7',['CommandPoolInfo',['../structtz_1_1gl_1_1vk2_1_1_command_pool_info.html',1,'tz::gl::vk2']]], + ['compile_5fresult_8',['compile_result',['../structtz_1_1gl_1_1ogl2_1_1shader__module_1_1compile__result.html',1,'tz::gl::ogl2::shader_module']]], + ['compute_9',['Compute',['../structtz_1_1gl_1_1render__state_1_1_compute.html',1,'tz::gl::render_state']]], + ['compute_5fconfig_10',['compute_config',['../structtz_1_1gl_1_1renderer__edit_1_1compute__config.html',1,'tz::gl::renderer_edit']]], + ['computepipeline_11',['ComputePipeline',['../classtz_1_1gl_1_1vk2_1_1_compute_pipeline.html',1,'tz::gl::vk2']]], + ['computepipelineinfo_12',['ComputePipelineInfo',['../structtz_1_1gl_1_1vk2_1_1_compute_pipeline_info.html',1,'tz::gl::vk2']]] +]; diff --git a/search/classes_3.js b/search/classes_3.js new file mode 100644 index 0000000000..778576e02d --- /dev/null +++ b/search/classes_3.js @@ -0,0 +1,49 @@ +var searchData= +[ + ['debugbeginlabel_0',['DebugBeginLabel',['../structtz_1_1gl_1_1vk2_1_1_vulkan_command_1_1_debug_begin_label.html',1,'tz::gl::vk2::VulkanCommand']]], + ['debugendlabel_1',['DebugEndLabel',['../structtz_1_1gl_1_1vk2_1_1_vulkan_command_1_1_debug_end_label.html',1,'tz::gl::vk2::VulkanCommand']]], + ['debugnameable_2',['DebugNameable',['../classtz_1_1gl_1_1vk2_1_1_debug_nameable.html',1,'tz::gl::vk2']]], + ['debugnameable_3c_20vk_5fobject_5ftype_5fbuffer_20_3e_3',['DebugNameable< VK_OBJECT_TYPE_BUFFER >',['../classtz_1_1gl_1_1vk2_1_1_debug_nameable.html',1,'tz::gl::vk2']]], + ['debugnameable_3c_20vk_5fobject_5ftype_5ffence_20_3e_4',['DebugNameable< VK_OBJECT_TYPE_FENCE >',['../classtz_1_1gl_1_1vk2_1_1_debug_nameable.html',1,'tz::gl::vk2']]], + ['debugnameable_3c_20vk_5fobject_5ftype_5fimage_20_3e_5',['DebugNameable< VK_OBJECT_TYPE_IMAGE >',['../classtz_1_1gl_1_1vk2_1_1_debug_nameable.html',1,'tz::gl::vk2']]], + ['debugnameable_3c_20vk_5fobject_5ftype_5fimage_5fview_20_3e_6',['DebugNameable< VK_OBJECT_TYPE_IMAGE_VIEW >',['../classtz_1_1gl_1_1vk2_1_1_debug_nameable.html',1,'tz::gl::vk2']]], + ['debugnameable_3c_20vk_5fobject_5ftype_5fsemaphore_20_3e_7',['DebugNameable< VK_OBJECT_TYPE_SEMAPHORE >',['../classtz_1_1gl_1_1vk2_1_1_debug_nameable.html',1,'tz::gl::vk2']]], + ['delay_8',['delay',['../classtz_1_1delay.html',1,'tz']]], + ['depthstencilstate_9',['DepthStencilState',['../structtz_1_1gl_1_1vk2_1_1_depth_stencil_state.html',1,'tz::gl::vk2']]], + ['descriptordata_10',['DescriptorData',['../structtz_1_1gl_1_1vk2_1_1_descriptor_data.html',1,'tz::gl::vk2']]], + ['descriptorlayout_11',['DescriptorLayout',['../classtz_1_1gl_1_1vk2_1_1_descriptor_layout.html',1,'tz::gl::vk2']]], + ['descriptorlayoutbuilder_12',['DescriptorLayoutBuilder',['../classtz_1_1gl_1_1vk2_1_1_descriptor_layout_builder.html',1,'tz::gl::vk2']]], + ['descriptorlayoutinfo_13',['DescriptorLayoutInfo',['../structtz_1_1gl_1_1vk2_1_1_descriptor_layout_info.html',1,'tz::gl::vk2']]], + ['descriptorpool_14',['DescriptorPool',['../classtz_1_1gl_1_1vk2_1_1_descriptor_pool.html',1,'tz::gl::vk2']]], + ['descriptorpoolinfo_15',['DescriptorPoolInfo',['../structtz_1_1gl_1_1vk2_1_1_descriptor_pool_info.html',1,'tz::gl::vk2']]], + ['descriptorset_16',['DescriptorSet',['../classtz_1_1gl_1_1vk2_1_1_descriptor_set.html',1,'tz::gl::vk2']]], + ['device_17',['device',['../classtz_1_1gl_1_1device.html',1,'tz::gl']]], + ['device_5fcommand_5fpool_18',['device_command_pool',['../classtz_1_1gl_1_1device__command__pool.html',1,'tz::gl']]], + ['device_5fcommon_19',['device_common',['../classtz_1_1gl_1_1device__common.html',1,'tz::gl']]], + ['device_5fcommon_3c_20renderer_5fogl_20_3e_20',['device_common< renderer_ogl >',['../classtz_1_1gl_1_1device__common.html',1,'tz::gl']]], + ['device_5fcommon_3c_20renderer_5fvulkan2_20_3e_21',['device_common< renderer_vulkan2 >',['../classtz_1_1gl_1_1device__common.html',1,'tz::gl']]], + ['device_5fdescriptor_5fpool_22',['device_descriptor_pool',['../classtz_1_1gl_1_1device__descriptor__pool.html',1,'tz::gl']]], + ['device_5fogl_23',['device_ogl',['../classtz_1_1gl_1_1device__ogl.html',1,'tz::gl']]], + ['device_5frender_5fscheduler_5fogl_24',['device_render_scheduler_ogl',['../classtz_1_1gl_1_1device__render__scheduler__ogl.html',1,'tz::gl']]], + ['device_5frender_5fsync_25',['device_render_sync',['../classtz_1_1gl_1_1device__render__sync.html',1,'tz::gl']]], + ['device_5fvulkan2_26',['device_vulkan2',['../classtz_1_1gl_1_1device__vulkan2.html',1,'tz::gl']]], + ['device_5fvulkan_5fbase_27',['device_vulkan_base',['../classtz_1_1gl_1_1device__vulkan__base.html',1,'tz::gl']]], + ['device_5fwindow_28',['device_window',['../classtz_1_1gl_1_1device__window.html',1,'tz::gl']]], + ['devicefeatureinfo_29',['DeviceFeatureInfo',['../structtz_1_1gl_1_1vk2_1_1detail_1_1_device_feature_info.html',1,'tz::gl::vk2::detail']]], + ['dispatch_30',['Dispatch',['../structtz_1_1gl_1_1vk2_1_1_vulkan_command_1_1_dispatch.html',1,'tz::gl::vk2::VulkanCommand']]], + ['draw_31',['Draw',['../structtz_1_1gl_1_1vk2_1_1_vulkan_command_1_1_draw.html',1,'tz::gl::vk2::VulkanCommand']]], + ['draw_5findexed_5findirect_5fcommand_32',['draw_indexed_indirect_command',['../structtz_1_1gl_1_1ogl2_1_1draw__indexed__indirect__command.html',1,'tz::gl::ogl2::draw_indexed_indirect_command'],['../structtz_1_1gl_1_1vk2_1_1draw__indexed__indirect__command.html',1,'tz::gl::vk2::draw_indexed_indirect_command']]], + ['draw_5findirect_5fcommand_33',['draw_indirect_command',['../structtz_1_1gl_1_1ogl2_1_1draw__indirect__command.html',1,'tz::gl::ogl2::draw_indirect_command'],['../structtz_1_1gl_1_1vk2_1_1draw__indirect__command.html',1,'tz::gl::vk2::draw_indirect_command']]], + ['drawindexed_34',['DrawIndexed',['../structtz_1_1gl_1_1vk2_1_1_vulkan_command_1_1_draw_indexed.html',1,'tz::gl::vk2::VulkanCommand']]], + ['drawindexedindirect_35',['DrawIndexedIndirect',['../structtz_1_1gl_1_1vk2_1_1_vulkan_command_1_1_draw_indexed_indirect.html',1,'tz::gl::vk2::VulkanCommand']]], + ['drawindexedindirectcommand_36',['DrawIndexedIndirectCommand',['../structtz_1_1draw_1_1_draw_indexed_indirect_command.html',1,'tz::draw']]], + ['drawindexedindirectcount_37',['DrawIndexedIndirectCount',['../structtz_1_1gl_1_1vk2_1_1_vulkan_command_1_1_draw_indexed_indirect_count.html',1,'tz::gl::vk2::VulkanCommand']]], + ['drawindirect_38',['DrawIndirect',['../structtz_1_1gl_1_1vk2_1_1_vulkan_command_1_1_draw_indirect.html',1,'tz::gl::vk2::VulkanCommand']]], + ['drawindirectcommand_39',['DrawIndirectCommand',['../structtz_1_1draw_1_1_draw_indirect_command.html',1,'tz::draw']]], + ['drawindirectcount_40',['DrawIndirectCount',['../structtz_1_1gl_1_1vk2_1_1_vulkan_command_1_1_draw_indirect_count.html',1,'tz::gl::vk2::VulkanCommand']]], + ['duration_41',['duration',['../classtz_1_1duration.html',1,'tz']]], + ['dynamicrenderingrun_42',['DynamicRenderingRun',['../classtz_1_1gl_1_1vk2_1_1_command_buffer_recording_1_1_dynamic_rendering_run.html',1,'tz::gl::vk2::CommandBufferRecording']]], + ['dynamicrenderingruninfo_43',['DynamicRenderingRunInfo',['../structtz_1_1gl_1_1vk2_1_1_dynamic_rendering_run_info.html',1,'tz::gl::vk2']]], + ['dynamicrenderingstate_44',['DynamicRenderingState',['../structtz_1_1gl_1_1vk2_1_1_graphics_pipeline_info_1_1_dynamic_rendering_state.html',1,'tz::gl::vk2::GraphicsPipelineInfo']]], + ['dynamicstate_45',['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..7672a074c6 --- /dev/null +++ b/search/classes_4.js @@ -0,0 +1,24 @@ +var searchData= +[ + ['edit_5fside_5feffects_0',['edit_side_effects',['../structtz_1_1gl_1_1edit__side__effects.html',1,'tz::gl']]], + ['editrequest_1',['EditRequest',['../classtz_1_1gl_1_1vk2_1_1_descriptor_set_1_1_edit_request.html',1,'tz::gl::vk2::DescriptorSet']]], + ['enddynamicrendering_2',['EndDynamicRendering',['../structtz_1_1gl_1_1vk2_1_1_vulkan_command_1_1_end_dynamic_rendering.html',1,'tz::gl::vk2::VulkanCommand']]], + ['endrenderpass_3',['EndRenderPass',['../structtz_1_1gl_1_1vk2_1_1_vulkan_command_1_1_end_render_pass.html',1,'tz::gl::vk2::VulkanCommand']]], + ['engine_5finfo_4',['engine_info',['../structtz_1_1engine__info.html',1,'tz']]], + ['enum_5ffield_5',['enum_field',['../classtz_1_1enum__field.html',1,'tz']]], + ['enum_5ffield_3c_20accessflag_20_3e_6',['enum_field< AccessFlag >',['../classtz_1_1enum__field.html',1,'tz']]], + ['enum_5ffield_3c_20application_5fflag_20_3e_7',['enum_field< application_flag >',['../classtz_1_1enum__field.html',1,'tz']]], + ['enum_5ffield_3c_20bufferusage_20_3e_8',['enum_field< BufferUsage >',['../classtz_1_1enum__field.html',1,'tz']]], + ['enum_5ffield_3c_20commandpoolflag_20_3e_9',['enum_field< CommandPoolFlag >',['../classtz_1_1enum__field.html',1,'tz']]], + ['enum_5ffield_3c_20descriptorflag_20_3e_10',['enum_field< DescriptorFlag >',['../classtz_1_1enum__field.html',1,'tz']]], + ['enum_5ffield_3c_20deviceextension_20_3e_11',['enum_field< DeviceExtension >',['../classtz_1_1enum__field.html',1,'tz']]], + ['enum_5ffield_3c_20devicefeature_20_3e_12',['enum_field< DeviceFeature >',['../classtz_1_1enum__field.html',1,'tz']]], + ['enum_5ffield_3c_20dynamicstatetype_20_3e_13',['enum_field< DynamicStateType >',['../classtz_1_1enum__field.html',1,'tz']]], + ['enum_5ffield_3c_20imageaspectflag_20_3e_14',['enum_field< ImageAspectFlag >',['../classtz_1_1enum__field.html',1,'tz']]], + ['enum_5ffield_3c_20imageusage_20_3e_15',['enum_field< ImageUsage >',['../classtz_1_1enum__field.html',1,'tz']]], + ['enum_5ffield_3c_20instanceextension_20_3e_16',['enum_field< InstanceExtension >',['../classtz_1_1enum__field.html',1,'tz']]], + ['enum_5ffield_3c_20queuefamilytype_20_3e_17',['enum_field< QueueFamilyType >',['../classtz_1_1enum__field.html',1,'tz']]], + ['enum_5ffield_3c_20renderer_5foption_20_3e_18',['enum_field< renderer_option >',['../classtz_1_1enum__field.html',1,'tz']]], + ['enum_5ffield_3c_20resource_5fflag_20_3e_19',['enum_field< resource_flag >',['../classtz_1_1enum__field.html',1,'tz']]], + ['event_20',['event',['../structtz_1_1gl_1_1event.html',1,'tz::gl']]] +]; diff --git a/search/classes_5.js b/search/classes_5.js new file mode 100644 index 0000000000..70f8c3dc67 --- /dev/null +++ b/search/classes_5.js @@ -0,0 +1,14 @@ +var searchData= +[ + ['fallback_5fallocator_0',['fallback_allocator',['../classtz_1_1fallback__allocator.html',1,'tz']]], + ['fence_1',['Fence',['../classtz_1_1gl_1_1vk2_1_1_fence.html',1,'tz::gl::vk2']]], + ['fenceinfo_2',['FenceInfo',['../structtz_1_1gl_1_1vk2_1_1_fence_info.html',1,'tz::gl::vk2']]], + ['fingerprint_5finfo_5ft_3',['fingerprint_info_t',['../structtz_1_1gl_1_1device__command__pool_1_1fingerprint__info__t.html',1,'tz::gl::device_command_pool']]], + ['format_5fstring_4',['format_string',['../structtz_1_1detail_1_1format__string.html',1,'tz::detail']]], + ['formatdata_5',['FormatData',['../structtz_1_1gl_1_1ogl2_1_1_format_data.html',1,'tz::gl::ogl2']]], + ['framebuffer_6',['framebuffer',['../classtz_1_1gl_1_1ogl2_1_1framebuffer.html',1,'tz::gl::ogl2']]], + ['framebuffer_7',['Framebuffer',['../classtz_1_1gl_1_1vk2_1_1_framebuffer.html',1,'tz::gl::vk2']]], + ['framebuffer_5finfo_8',['framebuffer_info',['../structtz_1_1gl_1_1ogl2_1_1framebuffer__info.html',1,'tz::gl::ogl2']]], + ['framebufferdata_9',['FramebufferData',['../structtz_1_1gl_1_1vk2_1_1_framebuffer_data.html',1,'tz::gl::vk2']]], + ['framebufferinfo_10',['FramebufferInfo',['../structtz_1_1gl_1_1vk2_1_1_framebuffer_info.html',1,'tz::gl::vk2']]] +]; diff --git a/search/classes_6.js b/search/classes_6.js new file mode 100644 index 0000000000..f9114f9227 --- /dev/null +++ b/search/classes_6.js @@ -0,0 +1,8 @@ +var searchData= +[ + ['game_5finfo_0',['game_info',['../structtz_1_1game__info.html',1,'tz']]], + ['graphics_1',['Graphics',['../structtz_1_1gl_1_1render__state_1_1_graphics.html',1,'tz::gl::render_state']]], + ['graphicspipeline_2',['GraphicsPipeline',['../classtz_1_1gl_1_1vk2_1_1_graphics_pipeline.html',1,'tz::gl::vk2']]], + ['graphicspipelineinfo_3',['GraphicsPipelineInfo',['../structtz_1_1gl_1_1vk2_1_1_graphics_pipeline_info.html',1,'tz::gl::vk2']]], + ['grid_5fview_4',['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..e3dc5b2d75 --- /dev/null +++ b/search/classes_7.js @@ -0,0 +1,7 @@ +var searchData= +[ + ['handle_0',['handle',['../classtz_1_1handle.html',1,'tz']]], + ['handle_3c_20detail_3a_3arenderer_5ftag_20_3e_1',['handle< detail::renderer_tag >',['../classtz_1_1handle.html',1,'tz']]], + ['handle_3c_20iresource_20_3e_2',['handle< iresource >',['../classtz_1_1handle.html',1,'tz']]], + ['hash_3c_20tz_3a_3avector_3c_20t_2c_20s_20_3e_20_3e_3',['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']]] +]; diff --git a/search/classes_8.js b/search/classes_8.js new file mode 100644 index 0000000000..902d07a96e --- /dev/null +++ b/search/classes_8.js @@ -0,0 +1,30 @@ +var searchData= +[ + ['icomponent_0',['icomponent',['../classtz_1_1gl_1_1icomponent.html',1,'tz::gl']]], + ['image_1',['image',['../classtz_1_1gl_1_1ogl2_1_1image.html',1,'tz::gl::ogl2']]], + ['image_2',['Image',['../classtz_1_1gl_1_1vk2_1_1_image.html',1,'tz::gl::vk2']]], + ['image_5fcomponent_5fogl_3',['image_component_ogl',['../classtz_1_1gl_1_1image__component__ogl.html',1,'tz::gl']]], + ['image_5fcomponent_5fvulkan_4',['image_component_vulkan',['../classtz_1_1gl_1_1image__component__vulkan.html',1,'tz::gl']]], + ['image_5finfo_5',['image_info',['../structtz_1_1gl_1_1image__info.html',1,'tz::gl::image_info'],['../structtz_1_1gl_1_1ogl2_1_1image__info.html',1,'tz::gl::ogl2::image_info'],['../structtz_1_1gl_1_1vk2_1_1image__info.html',1,'tz::gl::vk2::image_info']]], + ['image_5foutput_6',['image_output',['../classtz_1_1gl_1_1image__output.html',1,'tz::gl']]], + ['image_5foutput_5finfo_7',['image_output_info',['../structtz_1_1gl_1_1image__output__info.html',1,'tz::gl']]], + ['image_5fresize_8',['image_resize',['../structtz_1_1gl_1_1renderer__edit_1_1image__resize.html',1,'tz::gl::renderer_edit']]], + ['image_5fresource_9',['image_resource',['../classtz_1_1gl_1_1image__resource.html',1,'tz::gl']]], + ['imageacquisition_10',['ImageAcquisition',['../structtz_1_1gl_1_1vk2_1_1_swapchain_1_1_image_acquisition.html',1,'tz::gl::vk2::Swapchain']]], + ['imageacquisitionresult_11',['ImageAcquisitionResult',['../structtz_1_1gl_1_1vk2_1_1_swapchain_1_1_image_acquisition_result.html',1,'tz::gl::vk2::Swapchain']]], + ['imagecopyimage_12',['ImageCopyImage',['../structtz_1_1gl_1_1vk2_1_1_vulkan_command_1_1_image_copy_image.html',1,'tz::gl::vk2::VulkanCommand']]], + ['imageview_13',['ImageView',['../classtz_1_1gl_1_1vk2_1_1_image_view.html',1,'tz::gl::vk2']]], + ['imageviewinfo_14',['ImageViewInfo',['../structtz_1_1gl_1_1vk2_1_1_image_view_info.html',1,'tz::gl::vk2']]], + ['imagewriteinfo_15',['ImageWriteInfo',['../structtz_1_1gl_1_1vk2_1_1_descriptor_set_1_1_write_1_1_image_write_info.html',1,'tz::gl::vk2::DescriptorSet::Write']]], + ['imguitabtz_16',['ImGuiTabTZ',['../structtz_1_1dbgui_1_1_im_gui_tab_t_z.html',1,'tz::dbgui']]], + ['imguivertex_17',['ImGuiVertex',['../struct_im_gui_vertex.html',1,'']]], + ['init_5finfo_18',['init_info',['../structtz_1_1dbgui_1_1init__info.html',1,'tz::dbgui']]], + ['init_5fstate_19',['init_state',['../structtz_1_1core_1_1detail_1_1init__state.html',1,'tz::core::detail']]], + ['initialise_5finfo_20',['initialise_info',['../structtz_1_1initialise__info.html',1,'tz']]], + ['inputattachmentreference_21',['InputAttachmentReference',['../structtz_1_1gl_1_1vk2_1_1_render_pass_info_1_1_input_attachment_reference.html',1,'tz::gl::vk2::RenderPassInfo']]], + ['inputdelta_22',['InputDelta',['../structtz_1_1dbgui_1_1_input_delta.html',1,'tz::dbgui']]], + ['interfaceiterator_23',['InterfaceIterator',['../classtz_1_1_interface_iterator.html',1,'tz']]], + ['internaldeviceinfo_24',['InternalDeviceInfo',['../structtz_1_1gl_1_1vk2_1_1_internal_device_info.html',1,'tz::gl::vk2']]], + ['ioutput_25',['ioutput',['../classtz_1_1gl_1_1ioutput.html',1,'tz::gl']]], + ['iresource_26',['iresource',['../classtz_1_1gl_1_1iresource.html',1,'tz::gl']]] +]; diff --git a/search/classes_9.js b/search/classes_9.js new file mode 100644 index 0000000000..1c611c4c1c --- /dev/null +++ b/search/classes_9.js @@ -0,0 +1,6 @@ +var searchData= +[ + ['job_5fhandle_5ftag_0',['job_handle_tag',['../structtz_1_1detail_1_1job__handle__tag.html',1,'tz::detail']]], + ['job_5fsystem_5fstdasync_1',['job_system_stdasync',['../classtz_1_1impl_1_1job__system__stdasync.html',1,'tz::impl']]], + ['job_5fsystem_5fthreadpool_5flfq_2',['job_system_threadpool_lfq',['../classtz_1_1impl_1_1job__system__threadpool__lfq.html',1,'tz::impl']]] +]; diff --git a/search/classes_a.js b/search/classes_a.js new file mode 100644 index 0000000000..7b16ec1fbf --- /dev/null +++ b/search/classes_a.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['keyboard_5fstate_0',['keyboard_state',['../structtz_1_1wsi_1_1keyboard__state.html',1,'tz::wsi']]] +]; diff --git a/search/classes_b.js b/search/classes_b.js new file mode 100644 index 0000000000..fde749fd9a --- /dev/null +++ b/search/classes_b.js @@ -0,0 +1,7 @@ +var searchData= +[ + ['linear_5fallocator_0',['linear_allocator',['../classtz_1_1linear__allocator.html',1,'tz']]], + ['link_5fresult_1',['link_result',['../structtz_1_1gl_1_1ogl2_1_1shader_1_1link__result.html',1,'tz::gl::ogl2::shader']]], + ['logicaldevice_2',['LogicalDevice',['../classtz_1_1gl_1_1vk2_1_1_logical_device.html',1,'tz::gl::vk2']]], + ['logicaldeviceinfo_3',['LogicalDeviceInfo',['../structtz_1_1gl_1_1vk2_1_1_logical_device_info.html',1,'tz::gl::vk2']]] +]; diff --git a/search/classes_c.js b/search/classes_c.js new file mode 100644 index 0000000000..ddad51dd92 --- /dev/null +++ b/search/classes_c.js @@ -0,0 +1,12 @@ +var searchData= +[ + ['mallocator_0',['mallocator',['../classtz_1_1mallocator.html',1,'tz']]], + ['matrix_1',['matrix',['../classtz_1_1matrix.html',1,'tz']]], + ['matrix_3c_20float_2c_204_2c_204_20_3e_2',['matrix< float, 4, 4 >',['../classtz_1_1matrix.html',1,'tz']]], + ['maybe_5fowned_5fptr_3',['maybe_owned_ptr',['../classtz_1_1maybe__owned__ptr.html',1,'tz']]], + ['memblk_4',['memblk',['../structtz_1_1memblk.html',1,'tz']]], + ['monitor_5',['monitor',['../structtz_1_1wsi_1_1monitor.html',1,'tz::wsi']]], + ['mouse_5fstate_6',['mouse_state',['../structtz_1_1wsi_1_1mouse__state.html',1,'tz::wsi']]], + ['multisamplestate_7',['MultisampleState',['../structtz_1_1gl_1_1vk2_1_1_multisample_state.html',1,'tz::gl::vk2']]], + ['mvp_8',['MVP',['../structtz_1_1space_1_1_m_v_p.html',1,'tz::space']]] +]; diff --git a/search/classes_d.js b/search/classes_d.js new file mode 100644 index 0000000000..76b4dd2aed --- /dev/null +++ b/search/classes_d.js @@ -0,0 +1,5 @@ +var searchData= +[ + ['null_5fallocator_0',['null_allocator',['../classtz_1_1null__allocator.html',1,'tz']]], + ['nullhand_5ft_1',['nullhand_t',['../structtz_1_1nullhand__t.html',1,'tz']]] +]; diff --git a/search/classes_e.js b/search/classes_e.js new file mode 100644 index 0000000000..48f1a45f21 --- /dev/null +++ b/search/classes_e.js @@ -0,0 +1,5 @@ +var searchData= +[ + ['outputmanager_0',['OutputManager',['../classtz_1_1gl_1_1_output_manager.html',1,'tz::gl']]], + ['overloaded_1',['overloaded',['../structtz_1_1gl_1_1overloaded.html',1,'tz::gl']]] +]; diff --git a/search/classes_f.js b/search/classes_f.js new file mode 100644 index 0000000000..372310a1de --- /dev/null +++ b/search/classes_f.js @@ -0,0 +1,15 @@ +var searchData= +[ + ['physicaldevice_0',['PhysicalDevice',['../classtz_1_1gl_1_1vk2_1_1_physical_device.html',1,'tz::gl::vk2']]], + ['physicaldeviceinfo_1',['PhysicalDeviceInfo',['../structtz_1_1gl_1_1vk2_1_1_physical_device_info.html',1,'tz::gl::vk2']]], + ['physicaldevicesurfacecapabilityinfo_2',['PhysicalDeviceSurfaceCapabilityInfo',['../structtz_1_1gl_1_1vk2_1_1_physical_device_surface_capability_info.html',1,'tz::gl::vk2']]], + ['pipeline_3',['Pipeline',['../classtz_1_1gl_1_1vk2_1_1_pipeline.html',1,'tz::gl::vk2']]], + ['pipelinecache_4',['PipelineCache',['../classtz_1_1gl_1_1vk2_1_1_pipeline_cache.html',1,'tz::gl::vk2']]], + ['pipelinedata_5',['PipelineData',['../structtz_1_1gl_1_1vk2_1_1_pipeline_data.html',1,'tz::gl::vk2']]], + ['pipelinelayout_6',['PipelineLayout',['../classtz_1_1gl_1_1vk2_1_1_pipeline_layout.html',1,'tz::gl::vk2']]], + ['pipelinelayoutinfo_7',['PipelineLayoutInfo',['../structtz_1_1gl_1_1vk2_1_1_pipeline_layout_info.html',1,'tz::gl::vk2']]], + ['pipelinestate_8',['PipelineState',['../structtz_1_1gl_1_1vk2_1_1_pipeline_state.html',1,'tz::gl::vk2']]], + ['polymorphiclist_9',['PolymorphicList',['../classtz_1_1_polymorphic_list.html',1,'tz']]], + ['poollimits_10',['PoolLimits',['../structtz_1_1gl_1_1vk2_1_1_descriptor_pool_info_1_1_pool_limits.html',1,'tz::gl::vk2::DescriptorPoolInfo']]], + ['presentinfo_11',['PresentInfo',['../structtz_1_1gl_1_1vk2_1_1hardware_1_1_queue_1_1_present_info.html',1,'tz::gl::vk2::hardware::Queue']]] +]; diff --git a/search/close.svg b/search/close.svg new file mode 100644 index 0000000000..a933eea1a2 --- /dev/null +++ b/search/close.svg @@ -0,0 +1,31 @@ + + + + + + image/svg+xml + + + + + + + + diff --git a/search/concepts_0.js b/search/concepts_0.js new file mode 100644 index 0000000000..609d038f54 --- /dev/null +++ b/search/concepts_0.js @@ -0,0 +1,19 @@ +var searchData= +[ + ['action_0',['action',['../concepttz_1_1action.html',1,'tz']]], + ['allocator_1',['allocator',['../concepttz_1_1allocator.html',1,'tz']]], + ['arithmetic_2',['arithmetic',['../concepttz_1_1arithmetic.html',1,'tz']]], + ['buffer_5fcomponent_5ftype_3',['buffer_component_type',['../concepttz_1_1gl_1_1buffer__component__type.html',1,'tz::gl']]], + ['const_5ftype_4',['const_type',['../concepttz_1_1const__type.html',1,'tz']]], + ['device_5ftype_5',['device_type',['../concepttz_1_1gl_1_1device__type.html',1,'tz::gl']]], + ['enum_5fclass_6',['enum_class',['../concepttz_1_1enum__class.html',1,'tz']]], + ['function_7',['function',['../concepttz_1_1function.html',1,'tz']]], + ['image_5fcomponent_5ftype_8',['image_component_type',['../concepttz_1_1gl_1_1image__component__type.html',1,'tz::gl']]], + ['job_5fsystem_5ftype_9',['job_system_type',['../concepttz_1_1job__system__type.html',1,'tz']]], + ['native_5favailable_10',['native_available',['../concepttz_1_1native__available.html',1,'tz']]], + ['nullable_11',['nullable',['../concepttz_1_1nullable.html',1,'tz']]], + ['number_12',['number',['../concepttz_1_1number.html',1,'tz']]], + ['renderer_5ftype_13',['renderer_type',['../concepttz_1_1gl_1_1renderer__type.html',1,'tz::gl']]], + ['trivially_5fcopyable_14',['trivially_copyable',['../concepttz_1_1trivially__copyable.html',1,'tz']]], + ['window_5fapi_15',['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..35977d2cef --- /dev/null +++ b/search/enums_0.js @@ -0,0 +1,6 @@ +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()']]] +]; 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..7e6247f51a --- /dev/null +++ b/search/enums_4.js @@ -0,0 +1,9 @@ +var searchData= +[ + ['image_5fformat_0',['image_format',['../group__tz__gl2.html#ga79b99b79311ee4f6dd10a6dfada3a235',1,'tz::gl::image_format()'],['../group__tz__gl__vk__image.html#gaf7d399489dcebca1c95d5852c8d7ec6e',1,'tz::gl::vk2::image_format()']]], + ['imageaspectflag_1',['ImageAspectFlag',['../group__tz__gl__vk__image.html#ga93db24e9eb1cffe51979bd8a141ddc77',1,'tz::gl::vk2']]], + ['imagelayout_2',['ImageLayout',['../group__tz__gl__vk__image.html#ga4ca55be3d1c101900d800a78deeb595f',1,'tz::gl::vk2']]], + ['imagetiling_3',['ImageTiling',['../group__tz__gl__vk__image.html#ga41ec6a06ba8bf8e03f80cf81eb99b46a',1,'tz::gl::vk2']]], + ['imageusage_4',['ImageUsage',['../group__tz__gl__vk__image.html#ga6ecb2d248a682aac08d93f4a7078161e',1,'tz::gl::vk2']]], + ['instanceextension_5',['InstanceExtension',['../group__tz__gl__vk__extension.html#gaab3eb58740575c989d5eab8c3fd877a7',1,'tz::gl::vk2']]] +]; diff --git a/search/enums_5.js b/search/enums_5.js new file mode 100644 index 0000000000..a876095c1c --- /dev/null +++ b/search/enums_5.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['key_0',['key',['../group__tz__wsi__keyboard.html#ga6c853393f015f781b34a6f1cde094e85',1,'tz::wsi']]] +]; diff --git a/search/enums_6.js b/search/enums_6.js new file mode 100644 index 0000000000..02396e93a3 --- /dev/null +++ b/search/enums_6.js @@ -0,0 +1,6 @@ +var searchData= +[ + ['loadop_0',['LoadOp',['../group__tz__gl__vk__graphics__pipeline__render__pass.html#gaa1e0e627270d80ef86624590afc5a03f',1,'tz::gl::vk2']]], + ['lookup_5ffilter_1',['lookup_filter',['../group__tz__gl__ogl2__image.html#gadabff1825f7cf36d8fada93ee1164a31',1,'tz::gl::ogl2']]], + ['lookupfilter_2',['LookupFilter',['../group__tz__gl__vk__image.html#ga24cb95974e796673bd262b86ee9cfa89',1,'tz::gl::vk2']]] +]; diff --git a/search/enums_7.js b/search/enums_7.js new file mode 100644 index 0000000000..9b816b5d19 --- /dev/null +++ b/search/enums_7.js @@ -0,0 +1,6 @@ +var searchData= +[ + ['miplookupfilter_0',['MipLookupFilter',['../group__tz__gl__vk__image.html#ga4023d87f2b0f64e5fc17ededf9e1a712',1,'tz::gl::vk2']]], + ['mouse_5fbutton_1',['mouse_button',['../group__tz__wsi__mouse.html#gaf90a65771c2d2d40e2d8a35f27288e23',1,'tz::wsi']]], + ['mouse_5fbutton_5fstate_2',['mouse_button_state',['../group__tz__wsi__mouse.html#ga089bafa0df7fa17353dbf27087a1f65b',1,'tz::wsi']]] +]; diff --git a/search/enums_8.js b/search/enums_8.js new file mode 100644 index 0000000000..0210bc9572 --- /dev/null +++ b/search/enums_8.js @@ -0,0 +1,8 @@ +var searchData= +[ + ['physicaldevicevendor_0',['PhysicalDeviceVendor',['../group__tz__gl__vk.html#ga50848b0c20c1ec0f873eddc129dbecd7',1,'tz::gl::vk2']]], + ['pipelinecontext_1',['PipelineContext',['../group__tz__gl__vk__graphics__pipeline__render__pass.html#ga58cefe5ecfeac91929d767bdb56f943b',1,'tz::gl::vk2']]], + ['pipelinestage_2',['PipelineStage',['../group__tz__gl__vk__graphics__pipeline.html#gaa581c5a329a76e48f41ca02bd263251a',1,'tz::gl::vk2']]], + ['polygonmode_3',['PolygonMode',['../group__tz__gl__vk__graphics__pipeline__fixed.html#gaaeda985d06849d890d7ba2902688cd01',1,'tz::gl::vk2']]], + ['presentresult_4',['PresentResult',['../classtz_1_1gl_1_1vk2_1_1hardware_1_1_queue.html#a85b458bfb664176d140abf3b6b627e67',1,'tz::gl::vk2::hardware::Queue']]] +]; diff --git a/search/enums_9.js b/search/enums_9.js new file mode 100644 index 0000000000..10d1538caa --- /dev/null +++ b/search/enums_9.js @@ -0,0 +1,7 @@ +var searchData= +[ + ['renderer_5foption_0',['renderer_option',['../group__tz__gl2__renderer.html#gac6f74feb8cd57f49c051f5d83a12be5d',1,'tz::gl']]], + ['resource_5faccess_1',['resource_access',['../group__tz__gl2__res.html#gac9293366fa49e7f476827595ca80fbbb',1,'tz::gl']]], + ['resource_5fflag_2',['resource_flag',['../group__tz__gl2__res.html#gaacaeec69fc5b83e204af317250a47eb8',1,'tz::gl']]], + ['resource_5ftype_3',['resource_type',['../group__tz__gl2__res.html#ga4a7818551bb2ef3d04edb95ec731d041',1,'tz::gl']]] +]; diff --git a/search/enums_a.js b/search/enums_a.js new file mode 100644 index 0000000000..16d7852be9 --- /dev/null +++ b/search/enums_a.js @@ -0,0 +1,9 @@ +var searchData= +[ + ['samplecount_0',['SampleCount',['../group__tz__gl__vk__image.html#ga88492153134eeee9b8cb8c117b55473d',1,'tz::gl::vk2']]], + ['sampleraddressmode_1',['SamplerAddressMode',['../group__tz__gl__vk__image.html#ga8d6daa8ff20537f40f5e1145342c2d4d',1,'tz::gl::vk2']]], + ['shader_5ftype_2',['shader_type',['../group__tz__gl__ogl2__shader.html#ga6f74da2ab2ba8d9a9e73815fa16ac5f4',1,'tz::gl::ogl2']]], + ['shadertype_3',['ShaderType',['../group__tz__gl__vk__graphics__pipeline__shader.html#gaa9de8cdcc58245f0d43c98fef1a1ddcb',1,'tz::gl::vk2']]], + ['storeop_4',['StoreOp',['../group__tz__gl__vk__graphics__pipeline__render__pass.html#gab92f36711ba7bb90caf0e4a39748ed7d',1,'tz::gl::vk2']]], + ['surfacepresentmode_5',['SurfacePresentMode',['../group__tz__gl__vk__presentation.html#ga8e6e925d93013e81273325bc8764577a',1,'tz::gl::vk2']]] +]; diff --git a/search/enums_b.js b/search/enums_b.js new file mode 100644 index 0000000000..fab3021c31 --- /dev/null +++ b/search/enums_b.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['vertexinputformat_0',['VertexInputFormat',['../group__tz__gl__vk__graphics__pipeline__fixed.html#ga486655233c597343f461a27c5316d087',1,'tz::gl::vk2']]] +]; diff --git a/search/enumvalues_0.js b/search/enumvalues_0.js new file mode 100644 index 0000000000..b5f25eceaf --- /dev/null +++ b/search/enumvalues_0.js @@ -0,0 +1,11 @@ +var searchData= +[ + ['allcommands_0',['AllCommands',['../group__tz__gl__vk__graphics__pipeline.html#ggaa581c5a329a76e48f41ca02bd263251aacf92f78ac1cdeee1e78e8b2866abe474',1,'tz::gl::vk2']]], + ['allgraphics_1',['AllGraphics',['../group__tz__gl__vk__graphics__pipeline.html#ggaa581c5a329a76e48f41ca02bd263251aa576ad90e86113d352899b3369a9c5b15',1,'tz::gl::vk2']]], + ['allocationsuccess_2',['AllocationSuccess',['../structtz_1_1gl_1_1vk2_1_1_descriptor_pool_1_1_allocation_result.html#abad85d19de3197a840dc5e69ad797c54a6f8ab75df1f61fe1d74b80230950e6a0',1,'tz::gl::vk2::DescriptorPool::AllocationResult']]], + ['allreads_3',['AllReads',['../group__tz__gl__vk__graphics__pipeline__render__pass.html#ggaa5dd0142a36cd59d14dff54eed67c3dfa8ab0a7cae3cbaff41e05a64461e3d3dc',1,'tz::gl::vk2']]], + ['allwrites_4',['AllWrites',['../group__tz__gl__vk__graphics__pipeline__render__pass.html#ggaa5dd0142a36cd59d14dff54eed67c3dfa87c699210d01c41d2f2e4d26a26467b9',1,'tz::gl::vk2']]], + ['alpha_5fblending_5',['alpha_blending',['../group__tz__gl2__renderer.html#ggac6f74feb8cd57f49c051f5d83a12be5da9c2fd878595ad8136ed219ece90dfef9',1,'tz::gl']]], + ['alwaysfalse_6',['AlwaysFalse',['../group__tz__gl__vk__graphics__pipeline__fixed.html#gga93e2cb3a5e44484b0548e28496de69c7a8cec5cec7e1bd101eefe8dde47c99289',1,'tz::gl::vk2']]], + ['alwaystrue_7',['AlwaysTrue',['../group__tz__gl__vk__graphics__pipeline__fixed.html#gga93e2cb3a5e44484b0548e28496de69c7a65db12e33585aff2007aad58b62b7bcd',1,'tz::gl::vk2']]] +]; diff --git a/search/enumvalues_1.js b/search/enumvalues_1.js new file mode 100644 index 0000000000..5c10956e6c --- /dev/null +++ b/search/enumvalues_1.js @@ -0,0 +1,8 @@ +var searchData= +[ + ['backculling_0',['BackCulling',['../group__tz__gl__vk__graphics__pipeline__fixed.html#ggaf55856ce9f281f90908bac12e0061e16ae801bd1e6bd89372f391535221e71cf3',1,'tz::gl::vk2']]], + ['bindlessdescriptors_1',['BindlessDescriptors',['../group__tz__gl__vk__extension.html#gga6744c8f7d1276d6d9ae861b21c489505aa470c5a1e7f7f5154881cbc29acff30c',1,'tz::gl::vk2']]], + ['bothculling_2',['BothCulling',['../group__tz__gl__vk__graphics__pipeline__fixed.html#ggaf55856ce9f281f90908bac12e0061e16a41356deeb07cbbcf9da994b364f45374',1,'tz::gl::vk2']]], + ['bottom_3',['Bottom',['../group__tz__gl__vk__graphics__pipeline.html#ggaa581c5a329a76e48f41ca02bd263251aa2ad9d63b69c4a10a5cc9cad923133bc4',1,'tz::gl::vk2']]], + ['buffer_4',['buffer',['../group__tz__gl2__res.html#gga4a7818551bb2ef3d04edb95ec731d041a7f2db423a49b305459147332fb01cf87',1,'tz::gl']]] +]; diff --git a/search/enumvalues_10.js b/search/enumvalues_10.js new file mode 100644 index 0000000000..07548e000d --- /dev/null +++ b/search/enumvalues_10.js @@ -0,0 +1,15 @@ +var searchData= +[ + ['tessellation_5fcontrol_0',['tessellation_control',['../group__tz__gl__ogl2__shader.html#gga6f74da2ab2ba8d9a9e73815fa16ac5f4a020b3c0169faf87abaa8931b92883373',1,'tz::gl::ogl2']]], + ['tessellation_5fevaluation_1',['tessellation_evaluation',['../group__tz__gl__ogl2__shader.html#gga6f74da2ab2ba8d9a9e73815fa16ac5f4a2859aa43f543537a942fcca51e45b974',1,'tz::gl::ogl2']]], + ['tessellationcontrolshader_2',['TessellationControlShader',['../group__tz__gl__vk__graphics__pipeline.html#ggaa581c5a329a76e48f41ca02bd263251aae1bc6b887951aa3ad70f1cdebd02aa7c',1,'tz::gl::vk2']]], + ['tessellationevaluationshader_3',['TessellationEvaluationShader',['../group__tz__gl__vk__graphics__pipeline.html#ggaa581c5a329a76e48f41ca02bd263251aa8dbef1b4099311308f1297f6fb54c1b8',1,'tz::gl::vk2']]], + ['tessellationshaders_4',['TessellationShaders',['../group__tz__gl__vk__extension.html#gga6744c8f7d1276d6d9ae861b21c489505a0fc969c0579e0ecc3324615f8eff626d',1,'tz::gl::vk2']]], + ['timelinesemaphores_5',['TimelineSemaphores',['../group__tz__gl__vk__extension.html#gga6744c8f7d1276d6d9ae861b21c489505a2ba71b83fa5ce2f8870a1259a92cd76b',1,'tz::gl::vk2']]], + ['top_6',['Top',['../group__tz__gl__vk__graphics__pipeline.html#ggaa581c5a329a76e48f41ca02bd263251aaa4ffdcf0dc1f31b9acaf295d75b51d00',1,'tz::gl::vk2']]], + ['transfercommands_7',['TransferCommands',['../group__tz__gl__vk__graphics__pipeline.html#ggaa581c5a329a76e48f41ca02bd263251aa6ceeb738294823c48050af12328d0606',1,'tz::gl::vk2']]], + ['transferdestination_8',['TransferDestination',['../group__tz__gl__vk__buffer.html#gga0c6ff78fc058c3e209ba59dc1b2c02a6a9cecc9065ff3b79e09391fcbfb7b9ce9',1,'TransferDestination()tz::gl::vk2'],['../group__tz__gl__vk__image.html#gga4ca55be3d1c101900d800a78deeb595fa9cecc9065ff3b79e09391fcbfb7b9ce9',1,'TransferDestination()tz::gl::vk2'],['../group__tz__gl__vk__image.html#gga6ecb2d248a682aac08d93f4a7078161ea9cecc9065ff3b79e09391fcbfb7b9ce9',1,'TransferDestination()tz::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,'TransferSource()tz::gl::vk2'],['../group__tz__gl__vk__image.html#gga4ca55be3d1c101900d800a78deeb595fa8c4df84c9e73cf86122034f85efac361',1,'TransferSource()tz::gl::vk2'],['../group__tz__gl__vk__image.html#gga6ecb2d248a682aac08d93f4a7078161ea8c4df84c9e73cf86122034f85efac361',1,'TransferSource()tz::gl::vk2']]] +]; diff --git a/search/enumvalues_11.js b/search/enumvalues_11.js new file mode 100644 index 0000000000..cabaa164eb --- /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,'undefined()tz::gl'],['../group__tz__gl__vk__image.html#ggaf7d399489dcebca1c95d5852c8d7ec6ea5e543256c480ac577d30f76f9120eb74',1,'undefined()tz::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_2.js b/search/enumvalues_2.js new file mode 100644 index 0000000000..ba0ce860da --- /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,'ColourAttachment()tz::gl::vk2'],['../group__tz__gl__vk__image.html#gga6ecb2d248a682aac08d93f4a7078161ea19c3378429e6e0fce64ea1de4290a6d5',1,'ColourAttachment()tz::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..b5e4f90512 --- /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,'DepthStencilAttachment()tz::gl::vk2'],['../group__tz__gl__vk__image.html#gga6ecb2d248a682aac08d93f4a7078161ea652fd1408b3de263e32147770a48931e',1,'DepthStencilAttachment()tz::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']]], + ['dontcare_4',['DontCare',['../group__tz__gl__vk__graphics__pipeline__render__pass.html#ggaa1e0e627270d80ef86624590afc5a03fa60a3629ef6a8f991f45d7a85f2458544',1,'DontCare()tz::gl::vk2'],['../group__tz__gl__vk__graphics__pipeline__render__pass.html#ggab92f36711ba7bb90caf0e4a39748ed7da60a3629ef6a8f991f45d7a85f2458544',1,'DontCare()tz::gl::vk2']]], + ['double_5fclicked_5',['double_clicked',['../group__tz__wsi__mouse.html#gga089bafa0df7fa17353dbf27087a1f65bac587d5d54676217aeecb4b993c3186cf',1,'tz::wsi']]], + ['draw_5findirect_6',['draw_indirect',['../group__tz__gl__ogl2__buffers.html#gga2d4cfcc22205d2276ef7347cf6e1c1edabe98195f011ff22c0afcb8e499f015bf',1,'tz::gl::ogl2']]], + ['draw_5findirect_5fbuffer_7',['draw_indirect_buffer',['../group__tz__gl2__res.html#ggaacaeec69fc5b83e204af317250a47eb8a728c7ac13a50ff63ede85d62daaea87d',1,'draw_indirect_buffer()tz::gl'],['../group__tz__gl__vk__buffer.html#gga0c6ff78fc058c3e209ba59dc1b2c02a6a728c7ac13a50ff63ede85d62daaea87d',1,'draw_indirect_buffer()tz::gl::vk2']]], + ['draw_5findirect_5fcount_8',['draw_indirect_count',['../group__tz__gl2__renderer.html#ggac6f74feb8cd57f49c051f5d83a12be5da33cd60667ba40af9abe3d4c9346ea1eb',1,'tz::gl']]], + ['drawindirect_9',['DrawIndirect',['../group__tz__gl__vk__graphics__pipeline.html#ggaa581c5a329a76e48f41ca02bd263251aa95b0e6b8c7aa6af632295afda7a926bc',1,'tz::gl::vk2']]], + ['drawindirectcount_10',['DrawIndirectCount',['../group__tz__gl__vk__extension.html#gga6744c8f7d1276d6d9ae861b21c489505a215e219c44e85364464e51a55db84847',1,'tz::gl::vk2']]], + ['dynamic_11',['dynamic',['../group__tz__gl__ogl2__buffers.html#ggae0f51febb963a7dc9fce3cc2208559a6ab72f3bd391ba731a35708bfd8cd8a68f',1,'tz::gl::ogl2']]], + ['dynamic_5ffixed_12',['dynamic_fixed',['../group__tz__gl2__res.html#ggac9293366fa49e7f476827595ca80fbbbacb427c755a59fa5b397f351f7a4969a0',1,'tz::gl']]], + ['dynamic_5fvariable_13',['dynamic_variable',['../group__tz__gl2__res.html#ggac9293366fa49e7f476827595ca80fbbbae031d8708165b6976dd3c8833bb706d4',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..a7fe7b9aa1 --- /dev/null +++ b/search/enumvalues_8.js @@ -0,0 +1,18 @@ +var searchData= +[ + ['image_0',['image',['../group__tz__gl2__res.html#gga4a7818551bb2ef3d04edb95ec731d041a78805a221a988e79ef3f42d7c5bfd418',1,'tz::gl']]], + ['image_5ffilter_5flinear_1',['image_filter_linear',['../group__tz__gl2__res.html#ggaacaeec69fc5b83e204af317250a47eb8a8a9b1b3e43c4113ad451ec193bd68017',1,'tz::gl']]], + ['image_5ffilter_5fnearest_2',['image_filter_nearest',['../group__tz__gl2__res.html#ggaacaeec69fc5b83e204af317250a47eb8ad63423e4b6b9917dff5b8aa8fe18d037',1,'tz::gl']]], + ['image_5fmip_5flinear_3',['image_mip_linear',['../group__tz__gl2__res.html#ggaacaeec69fc5b83e204af317250a47eb8ae25261ba757fcd9064544e84356773b8',1,'tz::gl']]], + ['image_5fmip_5fnearest_4',['image_mip_nearest',['../group__tz__gl2__res.html#ggaacaeec69fc5b83e204af317250a47eb8a69dc2a032867f1fbbdbe7902a7a9c318',1,'tz::gl']]], + ['image_5fwrap_5fclamp_5fedge_5',['image_wrap_clamp_edge',['../group__tz__gl2__res.html#ggaacaeec69fc5b83e204af317250a47eb8abd6818f6b1e5e41a1f1169b95f55b328',1,'tz::gl']]], + ['image_5fwrap_5fmirrored_5frepeat_6',['image_wrap_mirrored_repeat',['../group__tz__gl2__res.html#ggaacaeec69fc5b83e204af317250a47eb8a3f3f8f65235766b00d473480e8eecaa7',1,'tz::gl']]], + ['image_5fwrap_5frepeat_7',['image_wrap_repeat',['../group__tz__gl2__res.html#ggaacaeec69fc5b83e204af317250a47eb8a51625ecb1d2582b8ba7de2809f6a0de6',1,'tz::gl']]], + ['immediate_8',['Immediate',['../group__tz__gl__vk__presentation.html#gga8e6e925d93013e81273325bc8764577aa43f6615bbb2c40a5306ff804094420b1',1,'tz::gl::vk2']]], + ['index_9',['index',['../group__tz__gl__ogl2__buffers.html#gga2d4cfcc22205d2276ef7347cf6e1c1eda6a992d5529f459a44fee58c733255e86',1,'tz::gl::ogl2']]], + ['index_5fbuffer_10',['index_buffer',['../group__tz__gl2__res.html#ggaacaeec69fc5b83e204af317250a47eb8aab150dddbaa3966d354cc6dcd7418ea9',1,'index_buffer()tz::gl'],['../group__tz__gl__vk__buffer.html#gga0c6ff78fc058c3e209ba59dc1b2c02a6aab150dddbaa3966d354cc6dcd7418ea9',1,'index_buffer()tz::gl::vk2']]], + ['indexbufferread_11',['IndexBufferRead',['../group__tz__gl__vk__graphics__pipeline__render__pass.html#ggaa5dd0142a36cd59d14dff54eed67c3dfac52fe3a67d19e52c2d8be1c1085af208',1,'tz::gl::vk2']]], + ['indirectbufferread_12',['IndirectBufferRead',['../group__tz__gl__vk__graphics__pipeline__render__pass.html#ggaa5dd0142a36cd59d14dff54eed67c3dfa4656386f11c44452e8d3dd44b23c8bc2',1,'tz::gl::vk2']]], + ['inputattachment_13',['InputAttachment',['../group__tz__gl__vk__image.html#gga6ecb2d248a682aac08d93f4a7078161ea261d965f5dd43c6873489b68730dbe57',1,'tz::gl::vk2']]], + ['inputattachmentread_14',['InputAttachmentRead',['../group__tz__gl__vk__graphics__pipeline__render__pass.html#ggaa5dd0142a36cd59d14dff54eed67c3dfa37bc3fb1753f31a1bfd76b475531d179',1,'tz::gl::vk2']]] +]; diff --git a/search/enumvalues_9.js b/search/enumvalues_9.js new file mode 100644 index 0000000000..f581295e9a --- /dev/null +++ b/search/enumvalues_9.js @@ -0,0 +1,11 @@ +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__vk__image.html#gga41ec6a06ba8bf8e03f80cf81eb99b46aa32a843da6ea40ab3b17a3421ccdf671b',1,'tz::gl::vk2']]], + ['linear_6',['linear',['../group__tz__gl__ogl2__image.html#ggadabff1825f7cf36d8fada93ee1164a31a9a932b3cb396238423eb2f33ec17d6aa',1,'tz::gl::ogl2']]], + ['load_7',['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..6d86ff4b6c --- /dev/null +++ b/search/enumvalues_b.js @@ -0,0 +1,12 @@ +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_5fdepth_5ftesting_2',['no_depth_testing',['../group__tz__gl2__renderer.html#ggac6f74feb8cd57f49c051f5d83a12be5daee30a7f521c17e0d4e97d6b247540301',1,'tz::gl']]], + ['no_5fpresent_3',['no_present',['../group__tz__gl2__renderer.html#ggac6f74feb8cd57f49c051f5d83a12be5da8c583826577e40349f4d932f07107a8e',1,'tz::gl']]], + ['noclicked_4',['noclicked',['../group__tz__wsi__mouse.html#gga089bafa0df7fa17353dbf27087a1f65bac40b9c441c245ba7a4537352a73f5b90',1,'tz::wsi']]], + ['noculling_5',['NoCulling',['../group__tz__gl__vk__graphics__pipeline__fixed.html#ggaf55856ce9f281f90908bac12e0061e16a6913ff808b22b8502cdcf790839eeaa0',1,'tz::gl::vk2']]], + ['noneneeded_6',['NoneNeeded',['../group__tz__gl__vk__graphics__pipeline__render__pass.html#ggaa5dd0142a36cd59d14dff54eed67c3dfa8de1f22edd904226836321deb96d7f1d',1,'tz::gl::vk2']]], + ['nonsolidfillrasteriser_7',['NonSolidFillRasteriser',['../group__tz__gl__vk__extension.html#gga6744c8f7d1276d6d9ae861b21c489505a50df80e0d2daa3c2a0fbf8a994ad3a62',1,'tz::gl::vk2']]], + ['notequalto_8',['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..4b0c4d3ae3 --- /dev/null +++ b/search/enumvalues_d.js @@ -0,0 +1,8 @@ +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']]], + ['point_2',['Point',['../group__tz__gl__vk__graphics__pipeline__fixed.html#ggaaeda985d06849d890d7ba2902688cd01a2a3cd5946cfd317eb99c3d32e35e2d4c',1,'tz::gl::vk2']]], + ['pooloutofmemory_3',['PoolOutOfMemory',['../structtz_1_1gl_1_1vk2_1_1_descriptor_pool_1_1_allocation_result.html#abad85d19de3197a840dc5e69ad797c54a59ea7060f6bf874416655509987eaa47',1,'tz::gl::vk2::DescriptorPool::AllocationResult']]], + ['present_4',['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..6cca847175 --- /dev/null +++ b/search/enumvalues_e.js @@ -0,0 +1,8 @@ +var searchData= +[ + ['render_5fwait_0',['render_wait',['../group__tz__gl2__renderer.html#ggac6f74feb8cd57f49c051f5d83a12be5da53620d781237787604432a229f2d8af7',1,'tz::gl']]], + ['renderer_5foutput_1',['renderer_output',['../group__tz__gl2__res.html#ggaacaeec69fc5b83e204af317250a47eb8a8875c7873ad9469ba236f17af49ab331',1,'tz::gl']]], + ['repeat_2',['repeat',['../group__tz__gl__ogl2__image.html#gga52bed615aea0b883aeb6702716f95e5ba32cf6da134a8b268cf4ab6b79a9a5ad9',1,'tz::gl::ogl2']]], + ['repeat_3',['Repeat',['../group__tz__gl__vk__image.html#gga8d6daa8ff20537f40f5e1145342c2d4da7020426cfb0a204051be4b3053d2acc8',1,'tz::gl::vk2']]], + ['right_4',['right',['../group__tz__wsi__mouse.html#ggaf90a65771c2d2d40e2d8a35f27288e23a7c4f29407893c334a6cb7a87bf045c0d',1,'tz::wsi']]] +]; diff --git a/search/enumvalues_f.js b/search/enumvalues_f.js new file mode 100644 index 0000000000..1a893710eb --- /dev/null +++ b/search/enumvalues_f.js @@ -0,0 +1,15 @@ +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_5ffixed_6',['static_fixed',['../group__tz__gl2__res.html#ggac9293366fa49e7f476827595ca80fbbbacef5a454d703f41abcc7b138d3739664',1,'static_fixed()tz::gl'],['../group__tz__gl__ogl2__buffers.html#ggae0f51febb963a7dc9fce3cc2208559a6acef5a454d703f41abcc7b138d3739664',1,'static_fixed()tz::gl::ogl2']]], + ['storagebuffer_7',['StorageBuffer',['../group__tz__gl__vk__buffer.html#gga0c6ff78fc058c3e209ba59dc1b2c02a6a439f57c2c466c89db942b3de48298b2b',1,'tz::gl::vk2']]], + ['storageimage_8',['StorageImage',['../group__tz__gl__vk__image.html#gga6ecb2d248a682aac08d93f4a7078161eaa078fa7ad769f9e7b53b8c42e3b7bbab',1,'tz::gl::vk2']]], + ['store_9',['Store',['../group__tz__gl__vk__graphics__pipeline__render__pass.html#ggab92f36711ba7bb90caf0e4a39748ed7dafdb0c388de01d545017cdf9ccf00eb72',1,'tz::gl::vk2']]], + ['success_5fnoissue_10',['Success_NoIssue',['../classtz_1_1gl_1_1vk2_1_1hardware_1_1_queue.html#a85b458bfb664176d140abf3b6b627e67a87f6de9428b91fd7feaecc6df574ad08',1,'tz::gl::vk2::hardware::Queue']]], + ['success_5fsuboptimal_11',['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..ce9f27d1d1 --- /dev/null +++ b/search/functions_0.js @@ -0,0 +1,22 @@ +var searchData= +[ + ['abs_0',['abs',['../group__tzsl__math.html#gaea23f121347bc1e839b7b6ffd0a2fae1',1,'tz::math']]], + ['acos_1',['acos',['../group__tzsl__math.html#ga75c1b4fe699f4acece8c43888870e5fb',1,'tz::math']]], + ['acosh_2',['acosh',['../group__tzsl__math.html#ga4d44f9362d7141ba65c9ab8b964e1ff8',1,'tz::math']]], + ['acquire_5fimage_3',['acquire_image',['../classtz_1_1gl_1_1device__window.html#a692cd28b2be1c18e04d60d2f834b2dc4',1,'tz::gl::device_window::acquire_image()'],['../classtz_1_1gl_1_1vk2_1_1_swapchain.html#a96bd4cf27464216c5294b65c939ae525',1,'tz::gl::vk2::Swapchain::acquire_image()']]], + ['add_4',['add',['../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_5fdependency_6',['add_dependency',['../classtz_1_1gl_1_1renderer__info.html#a67cee96b537c3155396b7e537648e208',1,'tz::gl::renderer_info']]], + ['add_5fresource_7',['add_resource',['../classtz_1_1gl_1_1renderer__info.html#a754e0e44d92be27ecf399501ba318d53',1,'tz::gl::renderer_info']]], + ['add_5fset_5fedit_8',['add_set_edit',['../classtz_1_1gl_1_1vk2_1_1_descriptor_pool_1_1_update_request.html#a9eadabf90c16c3d2cc228868752da65a',1,'tz::gl::vk2::DescriptorPool::UpdateRequest']]], + ['allocate_5fbuffers_9',['allocate_buffers',['../classtz_1_1gl_1_1vk2_1_1_command_pool.html#a791dba923c7069be7b684d58c62017fe',1,'tz::gl::vk2::CommandPool']]], + ['allocate_5fsets_10',['allocate_sets',['../classtz_1_1gl_1_1vk2_1_1_descriptor_pool.html#a08339d22389d1d308abbce0ea80a4be8',1,'tz::gl::vk2::DescriptorPool']]], + ['and_11',['and',['../group__tzsl__atomic.html#gafe35966b39ca9b843aee1df9bf0e8dcc',1,'tz::atomic']]], + ['append_12',['append',['../classtz_1_1basic__list.html#a2da568b03a98882cfd70dbc9ef726f29',1,'tz::basic_list']]], + ['append_5frange_13',['append_range',['../classtz_1_1basic__list.html#ae49735e774b1d312a5fbe8f383a54af5',1,'tz::basic_list']]], + ['asin_14',['asin',['../group__tzsl__math.html#ga303ccf32c2a3bd51916059746e13d4fb',1,'tz::math']]], + ['asinh_15',['asinh',['../group__tzsl__math.html#ga3cea91edf9f9b37f5aaeb8b20eeed9a8',1,'tz::math']]], + ['assert_16',['assert',['../group__tz__core.html#ga35faea66fc04dfa33238c863eb740c34',1,'tz::assert()'],['../group__tzsl__debug.html#ga46aa856e72453e84675e0a867438b8d0',1,'tz::debug::assert()']]], + ['atan_17',['atan',['../group__tzsl__math.html#gab6513224bd4ea1a83d9e1e78083a5899',1,'tz::math']]], + ['atanh_18',['atanh',['../group__tzsl__math.html#ga6321494f7f16de62c6693d5ec61aafd0',1,'tz::math']]] +]; diff --git a/search/functions_1.js b/search/functions_1.js new file mode 100644 index 0000000000..bb66dca2a7 --- /dev/null +++ b/search/functions_1.js @@ -0,0 +1,21 @@ +var searchData= +[ + ['back_0',['back',['../classtz_1_1basic__list.html#a7997b2e322ea17998655cbbb4846ae69',1,'tz::basic_list::back()'],['../classtz_1_1enum__field.html#ac7bf408eb8998817ef105243093e5edc',1,'tz::enum_field::back()'],['../classtz_1_1basic__list.html#ada048725d4c9628619d5fb8ff984c6d3',1,'tz::basic_list::back()']]], + ['basic_5fbind_1',['basic_bind',['../classtz_1_1gl_1_1ogl2_1_1buffer.html#af4b9c7ba42660acf5cb50dc79117f2ae',1,'tz::gl::ogl2::buffer']]], + ['basic_5flist_2',['basic_list',['../classtz_1_1basic__list.html#a9b24154d8d989de8f583fde2be983f8b',1,'tz::basic_list::basic_list(std::initializer_list< T > elements)'],['../classtz_1_1basic__list.html#aaf16b4ba68943da253217bfaf205eaeb',1,'tz::basic_list::basic_list()=default']]], + ['begin_3',['begin',['../classtz_1_1basic__list.html#ac840df6f261cf90d09d979996b0df270',1,'tz::basic_list::begin()'],['../classtz_1_1basic__list.html#ab0aaf74450ac8ef20c0787cfb893db5a',1,'tz::basic_list::begin() const'],['../classtz_1_1enum__field.html#a1497269447babbdf90e3d705938c461c',1,'tz::enum_field::begin() const'],['../classtz_1_1enum__field.html#ac167b735311acfe124dfb4c619bd6d1a',1,'tz::enum_field::begin()'],['../classtz_1_1_polymorphic_list.html#a513535554bf5116e539e356764b812b3',1,'tz::PolymorphicList::begin()'],['../classtz_1_1_polymorphic_list.html#ad6f049474f8d35b6accbb19d6e66524b',1,'tz::PolymorphicList::begin() const']]], + ['begin_5fframe_4',['begin_frame',['../group__tz__core.html#gae00451643399562c92b48a05a40896b7',1,'tz']]], + ['bind_5',['bind',['../classtz_1_1gl_1_1ogl2_1_1vertex__array.html#aaf01a3edf3e63668020174f78199b3b8',1,'tz::gl::ogl2::vertex_array::bind()'],['../classtz_1_1gl_1_1ogl2_1_1framebuffer.html#ac35f4fd02a725fa84a6e3fbdeaec4e09',1,'tz::gl::ogl2::framebuffer::bind()']]], + ['bind_5fbuffer_6',['bind_buffer',['../classtz_1_1gl_1_1vk2_1_1_command_buffer_recording.html#aa015012eda3e9de92f3a5adbaff798bd',1,'tz::gl::vk2::CommandBufferRecording']]], + ['bind_5fbuffers_7',['bind_buffers',['../classtz_1_1gl_1_1_resource_storage.html#ad52eafd3a054c5e4489c026c94a6c81a',1,'tz::gl::ResourceStorage']]], + ['bind_5fdescriptor_5fsets_8',['bind_descriptor_sets',['../classtz_1_1gl_1_1vk2_1_1_command_buffer_recording.html#ac9e417b34e2a883b34ab2099a82acd54',1,'tz::gl::vk2::CommandBufferRecording']]], + ['bind_5fimage_5fbuffer_9',['bind_image_buffer',['../classtz_1_1gl_1_1_resource_storage.html#a71e4a2bb72688cea1a4849a8f0705a42',1,'tz::gl::ResourceStorage']]], + ['bind_5fpipeline_10',['bind_pipeline',['../classtz_1_1gl_1_1vk2_1_1_command_buffer_recording.html#a8bbeeef67dcb9b04b17bf5abde907e01',1,'tz::gl::vk2::CommandBufferRecording']]], + ['bind_5fto_5fresource_5fid_11',['bind_to_resource_id',['../classtz_1_1gl_1_1ogl2_1_1buffer.html#a2f38aa4dfb4a6f0504bee1a44e0bbee6',1,'tz::gl::ogl2::buffer']]], + ['binding_5fcount_12',['binding_count',['../structtz_1_1gl_1_1vk2_1_1_descriptor_layout_info.html#a8af57d3237c4127b4d5c16624aa44306',1,'tz::gl::vk2::DescriptorLayoutInfo::binding_count()'],['../classtz_1_1gl_1_1vk2_1_1_descriptor_layout.html#a58c4419f2d78c1a6cc93100d3937480c',1,'tz::gl::vk2::DescriptorLayout::binding_count()']]], + ['buffer_13',['buffer',['../classtz_1_1gl_1_1ogl2_1_1buffer.html#ad983e40068db50252e23d62e928e17a1',1,'tz::gl::ogl2::buffer']]], + ['buffer_5fcopy_5fbuffer_14',['buffer_copy_buffer',['../classtz_1_1gl_1_1vk2_1_1_command_buffer_recording.html#a42ed45f3524b6bfe1c98de341b8b88de',1,'tz::gl::vk2::CommandBufferRecording']]], + ['buffer_5fcopy_5fimage_15',['buffer_copy_image',['../classtz_1_1gl_1_1vk2_1_1_command_buffer_recording.html#a245b299b9c5cf4248e7ae19c63f63a8d',1,'tz::gl::vk2::CommandBufferRecording']]], + ['buffer_5fresize_16',['buffer_resize',['../classtz_1_1gl_1_1_renderer_edit_builder.html#a1bac636b2eaad5c37e49d7dcf290dc04',1,'tz::gl::RendererEditBuilder']]], + ['build_17',['build',['../classtz_1_1gl_1_1_renderer_edit_builder.html#a693855ee726f0d71eab5c0144f4016a8',1,'tz::gl::RendererEditBuilder::build()'],['../classtz_1_1gl_1_1vk2_1_1_descriptor_layout_builder.html#a255b1e89de7ebac50241ccef4f995aba',1,'tz::gl::vk2::DescriptorLayoutBuilder::build()'],['../classtz_1_1gl_1_1vk2_1_1_subpass_builder.html#a2f4293bd1783d6dd12a94126622d5f36',1,'tz::gl::vk2::SubpassBuilder::build()'],['../classtz_1_1gl_1_1vk2_1_1_render_pass_builder.html#ac2c1deaa48c76a66920eb7bd4bce8034',1,'tz::gl::vk2::RenderPassBuilder::build()']]] +]; diff --git a/search/functions_10.js b/search/functions_10.js new file mode 100644 index 0000000000..b019c92a9f --- /dev/null +++ b/search/functions_10.js @@ -0,0 +1,37 @@ +var searchData= +[ + ['scale_0',['scale',['../group__tz__core.html#gac4e79331e3b84c5a36360169f7f6d4c8',1,'tz']]], + ['seconds_1',['seconds',['../classtz_1_1duration.html#adec2e357a7d098cbc4356752c3f188f5',1,'tz::duration']]], + ['set_5fbuffer_2',['set_buffer',['../classtz_1_1gl_1_1vk2_1_1_descriptor_set_1_1_edit_request.html#af6639d543f2c4a73fca182ca2209c5c5',1,'tz::gl::vk2::DescriptorSet::EditRequest']]], + ['set_5fdata_3',['set_data',['../classtz_1_1gl_1_1ogl2_1_1image.html#a7244f6f3bbb421d3f3a7f770ab70c886',1,'tz::gl::ogl2::image']]], + ['set_5fdevice_4',['set_device',['../classtz_1_1gl_1_1vk2_1_1_render_pass_builder.html#ab5db592cbee7e8e81892b8c46eaa1909',1,'tz::gl::vk2::RenderPassBuilder::set_device()'],['../classtz_1_1gl_1_1vk2_1_1_descriptor_layout_builder.html#a8718cf9f569caf8dac4d4a08741925d0',1,'tz::gl::vk2::DescriptorLayoutBuilder::set_device()']]], + ['set_5fimage_5',['set_image',['../classtz_1_1gl_1_1vk2_1_1_descriptor_set_1_1_edit_request.html#a668978b923a9ae87def22035f27e86e8',1,'tz::gl::vk2::DescriptorSet::EditRequest']]], + ['set_5foptions_6',['set_options',['../classtz_1_1gl_1_1renderer__info.html#acd63326412fa7a90e2abe5021f5202fb',1,'tz::gl::renderer_info']]], + ['set_5foutput_7',['set_output',['../classtz_1_1gl_1_1renderer__info.html#abbd793271fd70297cf47034425c09cc6',1,'tz::gl::renderer_info']]], + ['set_5fpipeline_5fcontext_8',['set_pipeline_context',['../classtz_1_1gl_1_1vk2_1_1_subpass_builder.html#aea69c768e6d657c9e4e25102c0031dec',1,'tz::gl::vk2::SubpassBuilder']]], + ['set_5frender_5ftarget_9',['set_render_target',['../classtz_1_1gl_1_1_output_manager.html#aab56ee1c79ecceba987b04b8e28b873b',1,'tz::gl::OutputManager']]], + ['shader_10',['shader',['../classtz_1_1gl_1_1renderer__info.html#aeb3875b54266b94702791aa71c4a6d85',1,'tz::gl::renderer_info::shader()'],['../classtz_1_1gl_1_1renderer__info.html#a42cf8fe8b97e01596794242ce9ecdaba',1,'tz::gl::renderer_info::shader() const'],['../classtz_1_1gl_1_1ogl2_1_1shader.html#a3bfa7cd0552e027f9cde2e1aee0287d7',1,'tz::gl::ogl2::shader::shader()']]], + ['shader_5fmodule_11',['shader_module',['../classtz_1_1gl_1_1ogl2_1_1shader__module.html#a65e736dec375d272b4887010998e0647',1,'tz::gl::ogl2::shader_module']]], + ['shadermanager_12',['ShaderManager',['../classtz_1_1gl_1_1_shader_manager.html#ae2b9fa51036eab3ed06803a31cdd3278',1,'tz::gl::ShaderManager::ShaderManager()'],['../classtz_1_1gl_1_1_shader_manager.html#a02c2d7d722419d8f8de9d48bbab4ab6a',1,'tz::gl::ShaderManager::ShaderManager(const shader_info &sinfo)']]], + ['shadermodule_13',['ShaderModule',['../classtz_1_1gl_1_1vk2_1_1_shader_module.html#a28f43a6e19604fc3034d5a95d16f6f96',1,'tz::gl::vk2::ShaderModule']]], + ['sign_14',['sign',['../group__tzsl__math.html#ga456f66d300ef1a241332db1b3a4adc3f',1,'tz::math']]], + ['signal_15',['signal',['../classtz_1_1gl_1_1vk2_1_1_timeline_semaphore.html#a07294686a9c9007d9eea477648ddb307',1,'tz::gl::vk2::TimelineSemaphore']]], + ['simplex_16',['simplex',['../group__tzsl__noise.html#ga3281f996870e4b9f9a9173cd645d5be5',1,'tz::noise']]], + ['sin_17',['sin',['../group__tzsl__math.html#ga8c0f033ba72fe4acebee70271cfb2449',1,'tz::math']]], + ['size_18',['size',['../classtz_1_1_polymorphic_list.html#a4ff3d2bc56929abcbea5811bff6bdbd7',1,'tz::PolymorphicList::size()'],['../classtz_1_1gl_1_1ogl2_1_1buffer.html#a0d4d708c2123da8a7fe330d9d71c958f',1,'tz::gl::ogl2::buffer::size()'],['../classtz_1_1gl_1_1vk2_1_1_buffer.html#a64c97088f04d5773f96498281c9332f9',1,'tz::gl::vk2::Buffer::size()']]], + ['smooth_5fstep_19',['smooth_step',['../group__tzsl__math.html#gae657986f8605cc005b02cbfdf92cd39c',1,'tz::math']]], + ['span_20',['span',['../classtz_1_1grid__view.html#a3100812fc7c72fa1adc98472dfc7cf1d',1,'tz::grid_view::span()'],['../classtz_1_1grid__view.html#aa3adae7901af54ce2b0e502fa5da8858',1,'tz::grid_view::span() const']]], + ['sqrt_21',['sqrt',['../group__tzsl__math.html#gaa2770f89b7066b4c45909e272d9e0b36',1,'tz::math']]], + ['state_22',['state',['../classtz_1_1gl_1_1renderer__info.html#a9668d8e987599dab6ba1817a42b32f9f',1,'tz::gl::renderer_info::state() const'],['../classtz_1_1gl_1_1renderer__info.html#ae1be194d9378f3f5d2076255533d4136',1,'tz::gl::renderer_info::state()']]], + ['static_5ffind_23',['static_find',['../group__tz__core__algorithms.html#gac864efe5932f846519806594da168044',1,'tz']]], + ['step_24',['step',['../group__tzsl__math.html#ga2d878b167178a4a3a07fc30818195451',1,'tz::math']]], + ['submit_25',['submit',['../classtz_1_1gl_1_1vk2_1_1hardware_1_1_queue.html#a8a26295a1157308783f3606ddd47922e',1,'tz::gl::vk2::hardware::Queue']]], + ['success_26',['success',['../structtz_1_1gl_1_1vk2_1_1_descriptor_pool_1_1_allocation_result.html#a424868084bfa9a4cb8f3eb6e81bcb1cc',1,'tz::gl::vk2::DescriptorPool::AllocationResult::success()'],['../structtz_1_1gl_1_1vk2_1_1_command_pool_1_1_allocation_result.html#acff115e3d6b614f7cd176afcf1f430a5',1,'tz::gl::vk2::CommandPool::AllocationResult::success()']]], + ['supported_27',['supported',['../classtz_1_1gl_1_1vk2_1_1_timeline_semaphore.html#af457dd163f8a75cf2f136cc49cf5d3bd',1,'tz::gl::vk2::TimelineSemaphore']]], + ['supports_5fimage_5fcolour_5fformat_28',['supports_image_colour_format',['../classtz_1_1gl_1_1vk2_1_1_physical_device.html#a988cc3ea73caa2a2e772db01d056afd0',1,'tz::gl::vk2::PhysicalDevice']]], + ['supports_5fimage_5fdepth_5fformat_29',['supports_image_depth_format',['../classtz_1_1gl_1_1vk2_1_1_physical_device.html#a768d8f636ffe994ccbe90dd05534d86c',1,'tz::gl::vk2::PhysicalDevice']]], + ['supports_5fimage_5fsampled_5fformat_30',['supports_image_sampled_format',['../classtz_1_1gl_1_1vk2_1_1_physical_device.html#a7ccfe2ddbd54d7fade6451e6bb037d4b',1,'tz::gl::vk2::PhysicalDevice']]], + ['swapchain_31',['Swapchain',['../classtz_1_1gl_1_1vk2_1_1_swapchain.html#a21e69ef871b919a44c4b7d998170c298',1,'tz::gl::vk2::Swapchain']]], + ['swizzle_32',['swizzle',['../classtz_1_1vector.html#a8eb40003afd7a439c49c08810da3d119',1,'tz::vector']]], + ['system_5ftime_33',['system_time',['../group__tz__core.html#ga57c5c4c9d059495d76bb70ac7632755e',1,'tz']]] +]; diff --git a/search/functions_11.js b/search/functions_11.js new file mode 100644 index 0000000000..704666b136 --- /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()']]], + ['timelinesemaphore_2',['TimelineSemaphore',['../classtz_1_1gl_1_1vk2_1_1_timeline_semaphore.html#ae4480f9d0ce9716aadc581aa0769c2ea',1,'tz::gl::vk2::TimelineSemaphore']]], + ['to_5ffit_5flayout_3',['to_fit_layout',['../structtz_1_1gl_1_1vk2_1_1_descriptor_pool_info.html#ac78c3e3e5641dd67c83df522f8b2ed36',1,'tz::gl::vk2::DescriptorPoolInfo']]], + ['to_5fstring_4',['to_string',['../structtz_1_1engine__info.html#ae525f220090f75d39410072151bbb47f',1,'tz::engine_info::to_string()'],['../structtz_1_1game__info.html#a2f9afa9909fef88c043bd648c26b8cb5',1,'tz::game_info::to_string()']]], + ['to_5fwrite_5flist_5',['to_write_list',['../classtz_1_1gl_1_1vk2_1_1_descriptor_set_1_1_edit_request.html#a9c1d0d78df69b3ea2317e07bddb925b9',1,'tz::gl::vk2::DescriptorSet::EditRequest']]], + ['total_5fcolour_5fattachment_5fcount_6',['total_colour_attachment_count',['../structtz_1_1gl_1_1vk2_1_1_render_pass_info.html#a6b297fd26ffa2f186988fc661cdc40e4',1,'tz::gl::vk2::RenderPassInfo']]], + ['total_5finput_5fattachment_5fcount_7',['total_input_attachment_count',['../structtz_1_1gl_1_1vk2_1_1_render_pass_info.html#a05532d112562a54c89eb7ad4ce722b01',1,'tz::gl::vk2::RenderPassInfo']]], + ['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..fbce6c3bc4 --- /dev/null +++ b/search/functions_12.js @@ -0,0 +1,7 @@ +var searchData= +[ + ['unmap_0',['unmap',['../classtz_1_1gl_1_1ogl2_1_1buffer.html#a481748197cd593bb075e007b84bfba79',1,'tz::gl::ogl2::buffer::unmap()'],['../classtz_1_1gl_1_1vk2_1_1_buffer.html#aaa1d3c3487d41c2ee041f6f2d054edf2',1,'tz::gl::vk2::Buffer::unmap()']]], + ['unsignal_1',['unsignal',['../classtz_1_1gl_1_1vk2_1_1_fence.html#a080cf8b09fac04e088098854772d9951',1,'tz::gl::vk2::Fence']]], + ['update_5fsets_2',['update_sets',['../classtz_1_1gl_1_1vk2_1_1_descriptor_pool.html#a4b369fb5533bf5c1faccde6b2e4065fb',1,'tz::gl::vk2::DescriptorPool::update_sets(UpdateRequest update_request)'],['../classtz_1_1gl_1_1vk2_1_1_descriptor_pool.html#ab99505bc197bd835c0a7026f5591138a',1,'tz::gl::vk2::DescriptorPool::update_sets(const DescriptorSet::WriteList &writes)']]], + ['use_3',['use',['../classtz_1_1gl_1_1ogl2_1_1shader.html#aa2fe4a134158ffbd322f513cf3ad5521',1,'tz::gl::ogl2::shader::use()'],['../classtz_1_1gl_1_1_shader_manager.html#a5e03637f5d12b0734ec1688442e757a0',1,'tz::gl::ShaderManager::use()']]] +]; diff --git a/search/functions_13.js b/search/functions_13.js new file mode 100644 index 0000000000..d82158a415 --- /dev/null +++ b/search/functions_13.js @@ -0,0 +1,9 @@ +var searchData= +[ + ['valid_0',['valid',['../structtz_1_1gl_1_1vk2_1_1_framebuffer_info.html#a13d747ebb95030a11b81a5b8ada449a0',1,'tz::gl::vk2::FramebufferInfo::valid()'],['../structtz_1_1gl_1_1vk2_1_1_graphics_pipeline_info.html#ac8f560b25cb670c3cb4a41121c542d5c',1,'tz::gl::vk2::GraphicsPipelineInfo::valid() const']]], + ['valid_5fdevice_1',['valid_device',['../structtz_1_1gl_1_1vk2_1_1_graphics_pipeline_info.html#a8537647952eb07d190af2c496290435c',1,'tz::gl::vk2::GraphicsPipelineInfo']]], + ['values_5fmake_5fsense_2',['values_make_sense',['../structtz_1_1gl_1_1vk2_1_1_render_pass_info.html#a6e0f6d3e4801750361964ec51d5f3072',1,'tz::gl::vk2::RenderPassInfo']]], + ['vector_3',['vector',['../classtz_1_1vector.html#a5efa543162acadcb85301793704f8906',1,'tz::vector::vector(Ts &&... ts)'],['../classtz_1_1vector.html#a49c817041f4f5dcd9fc1d91d20e2f3e9',1,'tz::vector::vector(std::array< T, S > data)'],['../classtz_1_1vector.html#a1da36184e32badfd9843e01def06bb36',1,'tz::vector::vector()=default']]], + ['vertex_5farray_4',['vertex_array',['../classtz_1_1gl_1_1ogl2_1_1vertex__array.html#a5f965b5a60d0a2cc1c0623d63a81fd26',1,'tz::gl::ogl2::vertex_array']]], + ['view_5',['view',['../group__tz__core.html#ga26c5e69afcfbedae7d168b332682483f',1,'tz']]] +]; diff --git a/search/functions_14.js b/search/functions_14.js new file mode 100644 index 0000000000..0ed02a8595 --- /dev/null +++ b/search/functions_14.js @@ -0,0 +1,16 @@ +var searchData= +[ + ['wait_5ffor_0',['wait_for',['../classtz_1_1gl_1_1vk2_1_1_timeline_semaphore.html#a2e0c459f3ba40c42be24886a3ee51102',1,'tz::gl::vk2::TimelineSemaphore']]], + ['wait_5funtil_5fidle_1',['wait_until_idle',['../classtz_1_1gl_1_1vk2_1_1_logical_device.html#a467dc1131247e4bb9e97e5274e860bc7',1,'tz::gl::vk2::LogicalDevice']]], + ['wait_5funtil_5fsignalled_2',['wait_until_signalled',['../classtz_1_1gl_1_1vk2_1_1_fence.html#a89b2a5c13856021cc045c2223d4d9539',1,'tz::gl::vk2::Fence']]], + ['window_3',['window',['../group__tz__core.html#gab3acf7c6e5c5d2d15ac34272799744f0',1,'tz']]], + ['window_5fcount_4',['window_count',['../group__tz__wsi__window.html#ga3d49f486afecfee1fe0739a193267915',1,'tz::wsi']]], + ['windowsurface_5',['WindowSurface',['../classtz_1_1gl_1_1vk2_1_1_window_surface.html#adc8f618fa1ee901c61e87f02ae7f3445',1,'tz::gl::vk2::WindowSurface']]], + ['with_5fattachment_6',['with_attachment',['../classtz_1_1gl_1_1vk2_1_1_render_pass_builder.html#aacae02f036f07e6f321ac35420819ffe',1,'tz::gl::vk2::RenderPassBuilder']]], + ['with_5fbinding_7',['with_binding',['../classtz_1_1gl_1_1vk2_1_1_descriptor_layout_builder.html#a35bee4b07c0c343b53520a5f9c693691',1,'tz::gl::vk2::DescriptorLayoutBuilder']]], + ['with_5fcolour_5fattachment_8',['with_colour_attachment',['../classtz_1_1gl_1_1vk2_1_1_subpass_builder.html#ae944eb1b322cc08eb4a9f7105cdab265',1,'tz::gl::vk2::SubpassBuilder']]], + ['with_5fdepth_5fstencil_5fattachment_9',['with_depth_stencil_attachment',['../classtz_1_1gl_1_1vk2_1_1_subpass_builder.html#af3b5e86fed158d329db4b084556eab85',1,'tz::gl::vk2::SubpassBuilder']]], + ['with_5finput_5fattachment_10',['with_input_attachment',['../classtz_1_1gl_1_1vk2_1_1_subpass_builder.html#a732e8dc67451e314bae38faf24cd1fa6',1,'tz::gl::vk2::SubpassBuilder']]], + ['with_5fmore_11',['with_more',['../classtz_1_1vector.html#a2ca6acb21aba2f36f341688ffa7e7101',1,'tz::vector::with_more(T &&end) const'],['../classtz_1_1vector.html#ac484780fbef820de4004781a119a56d1',1,'tz::vector::with_more(const vector< T, S2 > &end) const']]], + ['with_5fsubpass_12',['with_subpass',['../classtz_1_1gl_1_1vk2_1_1_render_pass_builder.html#a2d7d398247571d6314e727923d8f7160',1,'tz::gl::vk2::RenderPassBuilder']]] +]; diff --git a/search/functions_15.js b/search/functions_15.js new file mode 100644 index 0000000000..d120e86a39 --- /dev/null +++ b/search/functions_15.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['xor_0',['xor',['../group__tzsl__atomic.html#ga7be1a0f30393cbdf216e5515d6fde1b0',1,'tz::atomic']]] +]; diff --git a/search/functions_16.js b/search/functions_16.js new file mode 100644 index 0000000000..306644b951 --- /dev/null +++ b/search/functions_16.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['zero_0',['zero',['../classtz_1_1vector.html#a0b3b989ec3fc4a0af094f76e1d2204b2',1,'tz::vector']]] +]; diff --git a/search/functions_2.js b/search/functions_2.js new file mode 100644 index 0000000000..42b966140c --- /dev/null +++ b/search/functions_2.js @@ -0,0 +1,23 @@ +var searchData= +[ + ['callback_0',['callback',['../classtz_1_1callback.html#a85749b9e53db2369605d02d48bd9d967',1,'tz::callback']]], + ['cas_1',['cas',['../group__tzsl__atomic.html#ga17a4dea83f60906651d0b557ad770bbc',1,'tz::atomic']]], + ['ceil_2',['ceil',['../group__tzsl__math.html#ga8028220d2f0dd80f9111d54f1079bcc7',1,'tz::math']]], + ['claims_5fkeyboard_3',['claims_keyboard',['../group__tz__dbgui.html#gae9289fba934f3184929dea07db97e28f',1,'tz::dbgui']]], + ['claims_5fmouse_4',['claims_mouse',['../group__tz__dbgui.html#ga36e08fae37ee7e26149c1ba247f54ce9',1,'tz::dbgui']]], + ['clamp_5',['clamp',['../group__tzsl__math.html#ga42282f727b67dab6da08e0366ba7787e',1,'tz::math']]], + ['clear_6',['clear',['../classtz_1_1basic__list.html#a5a9fe1832b83930a03bdc598b6f48f42',1,'tz::basic_list::clear()'],['../classtz_1_1gl_1_1vk2_1_1_descriptor_pool.html#acd851070777e0879bfd7054ce510ed8d',1,'tz::gl::vk2::DescriptorPool::clear()'],['../classtz_1_1gl_1_1vk2_1_1_descriptor_layout_builder.html#a9859251d15b9bbe21a08b13855b075fa',1,'tz::gl::vk2::DescriptorLayoutBuilder::clear()'],['../classtz_1_1gl_1_1ogl2_1_1framebuffer.html#a1e682cc908ff6243ac981746c88de982',1,'tz::gl::ogl2::framebuffer::clear()'],['../classtz_1_1_polymorphic_list.html#a4b4801429d2e32a6d7a7c6c25ac26adc',1,'tz::PolymorphicList::clear()']]], + ['clone_5fresized_7',['clone_resized',['../group__tz__gl__ogl2__buffers.html#ga66311328d0ac73108c1dac80a670255b',1,'tz::gl::ogl2::buffer_helper']]], + ['colour_5fattachment_5fcount_8',['colour_attachment_count',['../classtz_1_1gl_1_1ogl2_1_1framebuffer.html#a899e633ce1e2005e942c7e417d8208ce',1,'tz::gl::ogl2::framebuffer']]], + ['command_5fcount_9',['command_count',['../classtz_1_1gl_1_1vk2_1_1_command_buffer.html#a67c7bfe9c4368600d35d8b8484b06972',1,'tz::gl::vk2::CommandBuffer']]], + ['common_5frenderer_5fdbgui_10',['common_renderer_dbgui',['../group__tz__gl2__renderer.html#ga9c3b9173cecb5e05ffa86811213c5ab0',1,'tz::gl']]], + ['compile_11',['compile',['../classtz_1_1gl_1_1ogl2_1_1shader__module.html#a0566183e70bb23740967df9e69c5afd4',1,'tz::gl::ogl2::shader_module']]], + ['compute_12',['compute',['../classtz_1_1gl_1_1_renderer_edit_builder.html#a34deef028a6a13e0c17055174e3ea9c1',1,'tz::gl::RendererEditBuilder']]], + ['contains_13',['contains',['../classtz_1_1gl_1_1vk2_1_1_descriptor_pool.html#ab3ba99062df8e90d09abccd6c0f6e6c6',1,'tz::gl::vk2::DescriptorPool::contains()'],['../classtz_1_1enum__field.html#abec7d6a4a2b4b81600760dd74f5b23c3',1,'tz::enum_field::contains(const enum_field< E > &field) const'],['../classtz_1_1enum__field.html#ae84e799eabd0c60f79eafdfa86b3d0d7',1,'tz::enum_field::contains(E type) const'],['../classtz_1_1basic__list.html#a296a4bc78b4a32394ee4e7c4f7d5140b',1,'tz::basic_list::contains()']]], + ['copy_14',['copy',['../group__tz__gl__ogl2__buffers.html#ga20a62c3c2f993f7680765d90634a7584',1,'tz::gl::ogl2::buffer_helper']]], + ['cos_15',['cos',['../group__tzsl__math.html#ga2001fa3e32e884b9923308b485da6702',1,'tz::math']]], + ['count_16',['count',['../classtz_1_1enum__field.html#a74cd18aeadeffdaa17bd22068e34dc59',1,'tz::enum_field']]], + ['create_5frenderer_17',['create_renderer',['../classtz_1_1gl_1_1device.html#a8ac3063b712ef664852318e14830e64d',1,'tz::gl::device']]], + ['create_5fwindow_18',['create_window',['../group__tz__wsi__window.html#gac6059674ffff19966225cea5a7367a38',1,'tz::wsi']]], + ['cross_19',['cross',['../group__tzsl__math.html#ga7fd37ee5cfa25fcc727390773273eb88',1,'tz::math']]] +]; diff --git a/search/functions_3.js b/search/functions_3.js new file mode 100644 index 0000000000..131143a4a3 --- /dev/null +++ b/search/functions_3.js @@ -0,0 +1,27 @@ +var searchData= +[ + ['data_0',['data',['../classtz_1_1basic__list.html#af8197a468d2e4ca683280b99eb2c83b4',1,'tz::basic_list::data()'],['../classtz_1_1vector.html#a0efc07fae32cc2bfa2b2150f30bf7bc8',1,'tz::vector::data() const'],['../classtz_1_1vector.html#a58f744948751f1306d7e95ae61273b74',1,'tz::vector::data()'],['../classtz_1_1gl_1_1iresource.html#a4efedec0ff8764ec37a647a6b34cc27b',1,'tz::gl::iresource::data() const =0'],['../classtz_1_1gl_1_1iresource.html#a2034c319803f53dc374f4dc57f7e89e7',1,'tz::gl::iresource::data()=0'],['../classtz_1_1gl_1_1resource.html#a9578c37147e86fe368e4b4191d8dd8fc',1,'tz::gl::resource::data() const final'],['../classtz_1_1gl_1_1resource.html#a21ab68fe797184ae314b626f72a98062',1,'tz::gl::resource::data() final'],['../classtz_1_1basic__list.html#a32759f2f577643e9e013c4f16dd4f78f',1,'tz::basic_list::data()']]], + ['data_5fas_1',['data_as',['../classtz_1_1gl_1_1iresource.html#a1031b5190ca48fc22b1ac0dbe4b29dcd',1,'tz::gl::iresource::data_as() const'],['../classtz_1_1gl_1_1iresource.html#a9ca9a48d880b6cb785f24639a206ca6c',1,'tz::gl::iresource::data_as()']]], + ['days_2',['days',['../classtz_1_1duration.html#a9ebbab08c04bf01f2a14d6f65dc795f0',1,'tz::duration']]], + ['dbgui_3',['dbgui',['../classtz_1_1gl_1_1iresource.html#a3a908f4cbc961b740062f5d001cfe1ee',1,'tz::gl::iresource::dbgui()'],['../classtz_1_1gl_1_1resource.html#aab282aa2e01daa9fec11e78a4895033c',1,'tz::gl::resource::dbgui()'],['../classtz_1_1gl_1_1buffer__resource.html#a1a9a921e465982e11da32771c35d5199',1,'tz::gl::buffer_resource::dbgui()'],['../classtz_1_1gl_1_1image__resource.html#a2c23cc9b2996385456e84a3b89b5301a',1,'tz::gl::image_resource::dbgui()']]], + ['debug_5fget_5fname_4',['debug_get_name',['../classtz_1_1gl_1_1renderer__info.html#aad262d25b64ee45c5cd79faf8c6d5af0',1,'tz::gl::renderer_info']]], + ['debug_5fname_5',['debug_name',['../classtz_1_1gl_1_1renderer__info.html#a92f4e4d9f25acb3151987066df17db48',1,'tz::gl::renderer_info']]], + ['decompose_5fquaternion_6',['decompose_quaternion',['../group__tzsl__matrix.html#ga382271ea9bd62c983a9cc777d6c0baad',1,'tz::matrix']]], + ['delay_7',['delay',['../classtz_1_1delay.html#a8b18e64689f16949afe24964e132fe58',1,'tz::delay']]], + ['descriptor_5fcount_8',['descriptor_count',['../classtz_1_1gl_1_1vk2_1_1_descriptor_layout.html#accc746a50caa61641bb14fc4f8fadc6a',1,'tz::gl::vk2::DescriptorLayout']]], + ['descriptor_5fcount_5fof_9',['descriptor_count_of',['../classtz_1_1gl_1_1vk2_1_1_descriptor_layout.html#a4dcee1b2805e6163351ea0aefbcc3305',1,'tz::gl::vk2::DescriptorLayout']]], + ['descriptorlayout_10',['DescriptorLayout',['../classtz_1_1gl_1_1vk2_1_1_descriptor_layout.html#a9ef5579debbf8a3d6d758c714edaf3b8',1,'tz::gl::vk2::DescriptorLayout']]], + ['descriptorlayoutbuilder_11',['DescriptorLayoutBuilder',['../classtz_1_1gl_1_1vk2_1_1_descriptor_layout_builder.html#ab2892131f4b7b43aed19eda352dfef81',1,'tz::gl::vk2::DescriptorLayoutBuilder::DescriptorLayoutBuilder(DescriptorLayoutInfo existing_info)'],['../classtz_1_1gl_1_1vk2_1_1_descriptor_layout_builder.html#a44093ba76ad98d8c6209143c8f4de242',1,'tz::gl::vk2::DescriptorLayoutBuilder::DescriptorLayoutBuilder()=default']]], + ['destroy_5frenderer_12',['destroy_renderer',['../classtz_1_1gl_1_1device.html#a6e5026b0eafd4a9bd7e8f5242b7c4899',1,'tz::gl::device']]], + ['destroy_5fwindow_13',['destroy_window',['../group__tz__wsi__window.html#ga54f16c6122b5d08eef234586de422eef',1,'tz::wsi']]], + ['determinant_14',['determinant',['../group__tzsl__matrix.html#ga8da6239534e090803b41e5c853042977',1,'tz::matrix']]], + ['device_5fsupports_5fflags_15',['device_supports_flags',['../structtz_1_1gl_1_1vk2_1_1_descriptor_layout_info.html#a2e5cab5844cce37fcc8a06c1436f33e6',1,'tz::gl::vk2::DescriptorLayoutInfo']]], + ['dispatch_16',['dispatch',['../classtz_1_1gl_1_1vk2_1_1_command_buffer_recording.html#a3c305e3576f093dad51bd911c6dbab60',1,'tz::gl::vk2::CommandBufferRecording']]], + ['distance_17',['distance',['../group__tzsl__math.html#ga81780532b6bb411b2b550c09b76b7f93',1,'tz::math']]], + ['done_18',['done',['../classtz_1_1delay.html#abecd402d7755f73c4a61a33b77af4963',1,'tz::delay']]], + ['dot_19',['dot',['../group__tzsl__math.html#gae3a061e3c170f530fbc99969abdeb333',1,'tz::math::dot()'],['../classtz_1_1vector.html#a074e671fe11952ee602c6b60d542fc75',1,'tz::vector::dot()']]], + ['draw_20',['draw',['../classtz_1_1gl_1_1vk2_1_1_command_buffer_recording.html#acd2074bf1faa8b35502ec823cfde1abf',1,'tz::gl::vk2::CommandBufferRecording::draw()'],['../classtz_1_1gl_1_1ogl2_1_1vertex__array.html#ad53896fed3856db5c3a2fce42fb120bf',1,'tz::gl::ogl2::vertex_array::draw()']]], + ['draw_5findexed_21',['draw_indexed',['../classtz_1_1gl_1_1vk2_1_1_command_buffer_recording.html#ad5539795d16fdb9fc6d507d38a45123c',1,'tz::gl::vk2::CommandBufferRecording::draw_indexed()'],['../classtz_1_1gl_1_1ogl2_1_1vertex__array.html#a0866c26d8a2d6e47b1e14d86cef0500f',1,'tz::gl::ogl2::vertex_array::draw_indexed()']]], + ['draw_5findexed_5findirect_22',['draw_indexed_indirect',['../classtz_1_1gl_1_1vk2_1_1_command_buffer_recording.html#a883d311ab6e1f1c1f29260129179d0e0',1,'tz::gl::vk2::CommandBufferRecording']]], + ['draw_5findirect_23',['draw_indirect',['../classtz_1_1gl_1_1vk2_1_1_command_buffer_recording.html#a3eebf5124e99fc760f29698edcda6577',1,'tz::gl::vk2::CommandBufferRecording']]] +]; diff --git a/search/functions_4.js b/search/functions_4.js new file mode 100644 index 0000000000..968385f21c --- /dev/null +++ b/search/functions_4.js @@ -0,0 +1,15 @@ +var searchData= +[ + ['edit_0',['edit',['../classtz_1_1gl_1_1renderer__ogl.html#a191c8012bb11868f5934fd61fbacf168',1,'tz::gl::renderer_ogl']]], + ['elapsed_1',['elapsed',['../classtz_1_1delay.html#a58f202ee61907e36e13d89e2c8c4d950',1,'tz::delay']]], + ['emplace_2',['emplace',['../classtz_1_1basic__list.html#af3feb8b0f4a28360f8cb2b79550c9eb5',1,'tz::basic_list::emplace()'],['../classtz_1_1_polymorphic_list.html#abcd45264b9a32adcfde7d7469d526bac',1,'tz::PolymorphicList::emplace()']]], + ['empty_3',['empty',['../classtz_1_1basic__list.html#a7dd603cfac91d0de0a80fa7a3f92ad5e',1,'tz::basic_list::empty()'],['../classtz_1_1enum__field.html#abfb91b134d35e4f0454cd6eecf859b88',1,'tz::enum_field::empty()']]], + ['end_4',['end',['../classtz_1_1_polymorphic_list.html#a01e936a09d95b4898311f84ddc356e97',1,'tz::PolymorphicList::end() const'],['../classtz_1_1_polymorphic_list.html#a005d33c6203712c5304224285b389c50',1,'tz::PolymorphicList::end()'],['../classtz_1_1enum__field.html#a92f4bc051ebc80adea4dab7424b8676d',1,'tz::enum_field::end()'],['../classtz_1_1enum__field.html#a23110e1ac51df35ef76022ba30bd2a24',1,'tz::enum_field::end() const'],['../classtz_1_1basic__list.html#a647d9ad1f6dcfb9e86d5a98da3e6d90e',1,'tz::basic_list::end() const'],['../classtz_1_1basic__list.html#a2eabfdf0380450d59fff93772dbe9761',1,'tz::basic_list::end()']]], + ['end_5fframe_5',['end_frame',['../group__tz__core.html#ga3444884fd2ee290340864428de1df82f',1,'tz']]], + ['enum_5ffield_6',['enum_field',['../classtz_1_1enum__field.html#a991dd804357b394f7036c3c86ffd2649',1,'tz::enum_field::enum_field()=default'],['../classtz_1_1enum__field.html#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_7',['erase',['../classtz_1_1basic__list.html#af77955ee7383d5cae6bb09fae8a104e6',1,'tz::basic_list::erase(Iterator position)'],['../classtz_1_1basic__list.html#a68e81beb140765454649325ea15418b9',1,'tz::basic_list::erase(Iterator first, Iterator last)']]], + ['error_8',['error',['../group__tz__core.html#ga51d5f1707ccebf785a59cbb6a90b0fad',1,'tz']]], + ['exchange_9',['exchange',['../group__tzsl__atomic.html#gac66c88e078d10e049838618e5c5d80f6',1,'tz::atomic']]], + ['exp_10',['exp',['../group__tzsl__math.html#ga0b3e83e179fee3b947ff6725d85ea9bc',1,'tz::math']]], + ['exp2_11',['exp2',['../group__tzsl__math.html#ga62b92e38309339005fea6213dfda3454',1,'tz::math']]] +]; diff --git a/search/functions_5.js b/search/functions_5.js new file mode 100644 index 0000000000..ffa525d121 --- /dev/null +++ b/search/functions_5.js @@ -0,0 +1,12 @@ +var searchData= +[ + ['filled_0',['filled',['../classtz_1_1vector.html#a0f398914ccdf06e34a58a8b07f09374c',1,'tz::vector']]], + ['floor_1',['floor',['../group__tzsl__math.html#ga1c27f29cb88aa0f88b330125c402290f',1,'tz::math']]], + ['fract_2',['fract',['../group__tzsl__math.html#gae4a7499ca85d03fd9f68e58f378227d6',1,'tz::math']]], + ['framebuffer_3',['framebuffer',['../classtz_1_1gl_1_1ogl2_1_1framebuffer.html#af1250568a185e34b802fbe5cc5f86f8d',1,'tz::gl::ogl2::framebuffer']]], + ['from_5fmany_4',['from_many',['../classtz_1_1gl_1_1buffer__resource.html#aa2d8aea7debdaf9f6dcdc92ac9c96cf0',1,'tz::gl::buffer_resource']]], + ['from_5fmemory_5',['from_memory',['../classtz_1_1gl_1_1image__resource.html#ac0f3c710c722dc14defca36b10d2397c',1,'tz::gl::image_resource']]], + ['from_5fone_6',['from_one',['../classtz_1_1gl_1_1buffer__resource.html#ab407ea843abea43d94853c2711b109bb',1,'tz::gl::buffer_resource']]], + ['from_5funinitialised_7',['from_uninitialised',['../classtz_1_1gl_1_1image__resource.html#abcfde01f8ab68048439810a68248f10c',1,'tz::gl::image_resource']]], + ['front_8',['front',['../classtz_1_1basic__list.html#ab6527e144764014dd2f77cb3ffbe8670',1,'tz::basic_list::front()'],['../classtz_1_1basic__list.html#aa0d28f5edea40afa101b1a3ccddcc57c',1,'tz::basic_list::front() const'],['../classtz_1_1enum__field.html#a12e8aef51551fef43b8b6aaf28d46de5',1,'tz::enum_field::front()']]] +]; diff --git a/search/functions_6.js b/search/functions_6.js new file mode 100644 index 0000000000..0df6166449 --- /dev/null +++ b/search/functions_6.js @@ -0,0 +1,57 @@ +var searchData= +[ + ['game_5fmenu_0',['game_menu',['../group__tz__dbgui.html#ga518691e82438163cf313898a842f02df',1,'tz::dbgui']]], + ['get_1',['get',['../group__tz__gl__vk.html#ga6b2997a4d85a7a421f621c046553eb9e',1,'tz::gl::vk2']]], + ['get_5faccess_2',['get_access',['../classtz_1_1gl_1_1resource.html#ad764c68472eddf7fee03644eaa2beb70',1,'tz::gl::resource::get_access()'],['../classtz_1_1gl_1_1iresource.html#a054af6f7995a7faed0be74939673020f',1,'tz::gl::iresource::get_access()']]], + ['get_5fall_5fdevices_3',['get_all_devices',['../group__tz__gl__vk.html#gaa3cb0c8cac3957bc69faeed650da8e5b',1,'tz::gl::vk2']]], + ['get_5fattachment_5fviews_4',['get_attachment_views',['../classtz_1_1gl_1_1vk2_1_1_framebuffer.html#a9304c07d1bca779bc5b8863a0e41125a',1,'tz::gl::vk2::Framebuffer::get_attachment_views()'],['../classtz_1_1gl_1_1vk2_1_1_framebuffer.html#a2d5cb498b767d8c327318b3fc0994498',1,'tz::gl::vk2::Framebuffer::get_attachment_views() const']]], + ['get_5fbindings_5',['get_bindings',['../classtz_1_1gl_1_1vk2_1_1_descriptor_layout.html#a553861e3a7facb291f5de6a2c518aea1',1,'tz::gl::vk2::DescriptorLayout']]], + ['get_5fbindless_5fhandle_6',['get_bindless_handle',['../classtz_1_1gl_1_1ogl2_1_1image.html#a82ae5c9ca2e7230cd4a6eb68bed34de0',1,'tz::gl::ogl2::image']]], + ['get_5fchars_5ftyped_7',['get_chars_typed',['../group__tz__wsi__keyboard.html#ga68b8d4b1bb580c2d72d35901e31e9bb5',1,'tz::wsi']]], + ['get_5fcommand_5fbuffer_8',['get_command_buffer',['../classtz_1_1gl_1_1vk2_1_1_command_buffer_recording.html#a6678f3d4ee65c534f273547942dbc208',1,'tz::gl::vk2::CommandBufferRecording']]], + ['get_5fcomponent_9',['get_component',['../classtz_1_1gl_1_1renderer__ogl.html#a437b2e68e0af94193d6310191fb3e770',1,'tz::gl::renderer_ogl::get_component(resource_handle handle)'],['../classtz_1_1gl_1_1renderer__ogl.html#a4536f9408510194599a41fe7d983cfad',1,'tz::gl::renderer_ogl::get_component(resource_handle handle) const'],['../classtz_1_1gl_1_1_resource_storage.html#af7948e8b4db9633cda6fd2e48ed4f1f6',1,'tz::gl::ResourceStorage::get_component(resource_handle handle) const'],['../classtz_1_1gl_1_1_resource_storage.html#ae859e1b772545ac79cf1541c651823c8',1,'tz::gl::ResourceStorage::get_component(resource_handle handle)']]], + ['get_5fdevice_10',['get_device',['../classtz_1_1gl_1_1vk2_1_1_buffer.html#ad3210893be0901d09f53d94648362b9b',1,'tz::gl::vk2::Buffer::get_device()'],['../classtz_1_1gl_1_1vk2_1_1_command_buffer.html#a123b44fb90533da0c9285a7dd1f7fe52',1,'tz::gl::vk2::CommandBuffer::get_device()'],['../classtz_1_1gl_1_1vk2_1_1_descriptor_layout_builder.html#ae53402ebbe109aeee79e1a9f7272244f',1,'tz::gl::vk2::DescriptorLayoutBuilder::get_device()'],['../classtz_1_1gl_1_1vk2_1_1_descriptor_pool.html#ac2721cb1eeb043e531ceeeceadc318f9',1,'tz::gl::vk2::DescriptorPool::get_device()'],['../classtz_1_1gl_1_1vk2_1_1_framebuffer.html#a5ac49b6a1f5126e55e2d44e86733aea2',1,'tz::gl::vk2::Framebuffer::get_device()'],['../classtz_1_1gl_1_1vk2_1_1_image.html#a049cd08ea548cf18a48359df5439f790',1,'tz::gl::vk2::Image::get_device()'],['../classtz_1_1gl_1_1vk2_1_1_render_pass_builder.html#a0c8a6e7ff8cf14acd4121ed10008f32e',1,'tz::gl::vk2::RenderPassBuilder::get_device()'],['../classtz_1_1gl_1_1vk2_1_1_sampler.html#a2f50c7294da0e3af598c0e3eea7e002a',1,'tz::gl::vk2::Sampler::get_device()'],['../group__tz__gl2.html#gad7664ebf0e7dba60c61f1f711a60863b',1,'tz::gl::get_device()']]], + ['get_5fdimensions_11',['get_dimensions',['../classtz_1_1gl_1_1vk2_1_1_framebuffer.html#ae9c90abe38622c91b95fdb8ce73670d7',1,'tz::gl::vk2::Framebuffer::get_dimensions()'],['../classtz_1_1gl_1_1vk2_1_1_swapchain.html#aa4bc2e3f56802d15f6de066d24ee3e6d',1,'tz::gl::vk2::Swapchain::get_dimensions()'],['../classtz_1_1gl_1_1vk2_1_1_image.html#ab86308630123a604d436f4d25f87066e',1,'tz::gl::vk2::Image::get_dimensions()'],['../classtz_1_1gl_1_1ogl2_1_1image.html#a34bdb1917898f67e8c8f919febe9dbd1',1,'tz::gl::ogl2::image::get_dimensions()'],['../classtz_1_1gl_1_1ogl2_1_1framebuffer.html#a46f104a52a55fedc7f4ca7653ac54cb4',1,'tz::gl::ogl2::framebuffer::get_dimensions()'],['../classtz_1_1grid__view.html#aff54dec99ee4b951d188216597bf6ccc',1,'tz::grid_view::get_dimensions()']]], + ['get_5fextensions_12',['get_extensions',['../classtz_1_1gl_1_1vk2_1_1_logical_device.html#aa8e581e0199c5ed305291e569c3196be',1,'tz::gl::vk2::LogicalDevice']]], + ['get_5ffeatures_13',['get_features',['../classtz_1_1gl_1_1vk2_1_1_logical_device.html#aa8d935b7f0b3783f17c3093cce7b86e7',1,'tz::gl::vk2::LogicalDevice']]], + ['get_5fflags_14',['get_flags',['../classtz_1_1gl_1_1iresource.html#a3b1b6a30f2554e43d806fb5d5210d9be',1,'tz::gl::iresource::get_flags()'],['../classtz_1_1gl_1_1resource.html#a55bd3e603dbf280dcdca33f614e4bd6d',1,'tz::gl::resource::get_flags()']]], + ['get_5fformat_15',['get_format',['../classtz_1_1gl_1_1vk2_1_1_image.html#ae297678ee7676e19c89767fc8de77c1f',1,'tz::gl::vk2::Image::get_format()'],['../classtz_1_1gl_1_1ogl2_1_1image.html#a26ac283997ded3fa47999bfab0fcc66b',1,'tz::gl::ogl2::image::get_format()']]], + ['get_5fhardware_16',['get_hardware',['../classtz_1_1gl_1_1vk2_1_1_logical_device.html#acda5876065dd357359b3528553dac464',1,'tz::gl::vk2::LogicalDevice']]], + ['get_5fimage_5fformat_17',['get_image_format',['../classtz_1_1gl_1_1vk2_1_1_swapchain.html#a01d41578f33880b720b3b7217db994ea',1,'tz::gl::vk2::Swapchain']]], + ['get_5fimage_5fviews_18',['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_19',['get_images',['../classtz_1_1gl_1_1vk2_1_1_swapchain.html#a96c1b6e9908255c892041e61f4ce2f66',1,'tz::gl::vk2::Swapchain::get_images()'],['../classtz_1_1gl_1_1vk2_1_1_swapchain.html#afe252ffdbcd30be51991b2cab05c8833',1,'tz::gl::vk2::Swapchain::get_images() const']]], + ['get_5finfo_20',['get_info',['../classtz_1_1gl_1_1vk2_1_1_physical_device.html#a137b5674d71035b2e60524cb15aefbe5',1,'tz::gl::vk2::PhysicalDevice::get_info()'],['../classtz_1_1gl_1_1vk2_1_1_descriptor_layout_builder.html#a412428cf619428455121135e27094117',1,'tz::gl::vk2::DescriptorLayoutBuilder::get_info()']]], + ['get_5finstance_21',['get_instance',['../classtz_1_1gl_1_1vk2_1_1_physical_device.html#aa07d19e3e31cfd8d5d40ed83d01b4dcd',1,'tz::gl::vk2::PhysicalDevice']]], + ['get_5fkey_5fname_22',['get_key_name',['../group__tz__wsi__keyboard.html#ga71b029972073b41a5e63b852262af5be',1,'tz::wsi']]], + ['get_5flayout_23',['get_layout',['../classtz_1_1gl_1_1vk2_1_1_image.html#a245936d112b069e1e36da99391af5476',1,'tz::gl::vk2::Image::get_layout()'],['../classtz_1_1gl_1_1vk2_1_1_descriptor_set.html#a8655f41149275ec1624eb38740b55086',1,'tz::gl::vk2::DescriptorSet::get_layout()']]], + ['get_5fmandatory_5fcolour_5fattachment_5fformats_24',['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_25',['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_26',['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_27',['get_mandatory_sampled_image_formats',['../namespacetz_1_1gl_1_1vk2_1_1format__traits.html#abe8f1c1644982b2e797f9445c5f62636',1,'tz::gl::vk2::format_traits']]], + ['get_5fmonitors_28',['get_monitors',['../group__tz__wsi__monitor.html#gaf49b534da37be19431f74183eacfe56a',1,'tz::wsi']]], + ['get_5foptions_29',['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_30',['get_output',['../classtz_1_1gl_1_1renderer.html#a99aec0f5f60ec5bd7ba09ab787892158',1,'tz::gl::renderer::get_output() const'],['../classtz_1_1gl_1_1renderer.html#aab07a9b72cfc7ab37421755d85c90113',1,'tz::gl::renderer::get_output()'],['../classtz_1_1gl_1_1renderer__info.html#a977778c921d2c7dc53177af58f722f91',1,'tz::gl::renderer_info::get_output()']]], + ['get_5fpass_31',['get_pass',['../classtz_1_1gl_1_1vk2_1_1_framebuffer.html#ab59610c1f9b168a6f133232a0e6d98b9',1,'tz::gl::vk2::Framebuffer']]], + ['get_5fpipeline_5fcontext_32',['get_pipeline_context',['../classtz_1_1gl_1_1vk2_1_1_subpass_builder.html#af18ad5c9a271c11f597ea08dcfd615d8',1,'tz::gl::vk2::SubpassBuilder']]], + ['get_5fpresent_5fmode_33',['get_present_mode',['../classtz_1_1gl_1_1vk2_1_1_swapchain.html#a4b1fdde7f90b64fb7f9f094fa08dac05',1,'tz::gl::vk2::Swapchain']]], + ['get_5frenderer_34',['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_35',['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_36',['get_resource',['../classtz_1_1gl_1_1renderer__ogl.html#a75bf5e8fb1a40adbf0569c59720fc47f',1,'tz::gl::renderer_ogl::get_resource()'],['../classtz_1_1gl_1_1renderer__info.html#ad50e1153d25e16c91a5dcb6f4201ec51',1,'tz::gl::renderer_info::get_resource()'],['../classtz_1_1gl_1_1renderer.html#a5c3320f862a5e3fd2de7482698a6038b',1,'tz::gl::renderer::get_resource(tz::gl::resource_handle rh) const'],['../classtz_1_1gl_1_1renderer.html#ae3ecf1274073c37779559badd1872fd9',1,'tz::gl::renderer::get_resource(tz::gl::resource_handle rh)'],['../classtz_1_1gl_1_1renderer__ogl.html#a983661fb15999c0b43ff72f449d6bf48',1,'tz::gl::renderer_ogl::get_resource()']]], + ['get_5fresources_37',['get_resources',['../classtz_1_1gl_1_1renderer__info.html#aad33d729130cc8619cc736850ea91525',1,'tz::gl::renderer_info']]], + ['get_5fsampler_38',['get_sampler',['../classtz_1_1gl_1_1ogl2_1_1image.html#a96efa74dba6d1ba2af2a5125f16a05c3',1,'tz::gl::ogl2::image']]], + ['get_5fset_39',['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_40',['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_41',['get_state',['../classtz_1_1gl_1_1renderer__ogl.html#aac4e76798fc197ebfa7790607da7d0af',1,'tz::gl::renderer_ogl::get_state()'],['../classtz_1_1gl_1_1renderer.html#a964d9415ecb24b8c3d8f99542acc6ffb',1,'tz::gl::renderer::get_state()']]], + ['get_5fsupported_5fextensions_42',['get_supported_extensions',['../classtz_1_1gl_1_1vk2_1_1_physical_device.html#a9bbd0557b43b2c2605e36c0e5a70a59c',1,'tz::gl::vk2::PhysicalDevice']]], + ['get_5fsupported_5ffeatures_43',['get_supported_features',['../classtz_1_1gl_1_1vk2_1_1_physical_device.html#af8c939fb4265bf1c015f987d9c4c0380',1,'tz::gl::vk2::PhysicalDevice']]], + ['get_5fsupported_5fsurface_5fformats_44',['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_45',['get_supported_surface_present_modes',['../classtz_1_1gl_1_1vk2_1_1_physical_device.html#a3136ce2d7b7d952609e2ea9404f26335',1,'tz::gl::vk2::PhysicalDevice']]], + ['get_5ftarget_46',['get_target',['../classtz_1_1gl_1_1ogl2_1_1buffer.html#a88865542c959df85656e7b449468c8c1',1,'tz::gl::ogl2::buffer']]], + ['get_5ftype_47',['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_48',['get_usage',['../classtz_1_1gl_1_1vk2_1_1_buffer.html#ac84676ea5d9d5f459cb9c385a1032729',1,'tz::gl::vk2::Buffer']]], + ['get_5fvalue_49',['get_value',['../classtz_1_1gl_1_1vk2_1_1_timeline_semaphore.html#a31afde1d634e5b7e5e2ae3292e9ace1b',1,'tz::gl::vk2::TimelineSemaphore']]], + ['get_5fwindow_50',['get_window',['../group__tz__wsi__window.html#ga9e50b4d537b0154de05ba6de39042b2b',1,'tz::wsi']]], + ['get_5fwindow_5fformat_51',['get_window_format',['../classtz_1_1gl_1_1device.html#af3bb467ad3c470d6f4352b4ff1a63607',1,'tz::gl::device']]], + ['gold_52',['gold',['../group__tzsl__noise.html#gaf2147086d053b3049440a65a705e3841',1,'tz::noise']]], + ['grid_5fview_53',['grid_view',['../classtz_1_1grid__view.html#ae011be6078a7b9b6a35ec4de5367670c',1,'tz::grid_view::grid_view(std::span< T > data, unsigned int length)'],['../classtz_1_1grid__view.html#a55938dc4566d1435fd2362e3bef7a4ae',1,'tz::grid_view::grid_view(std::span< T > data, tz::vec2ui dimensions)']]] +]; diff --git a/search/functions_7.js b/search/functions_7.js new file mode 100644 index 0000000000..fed49ab5ea --- /dev/null +++ b/search/functions_7.js @@ -0,0 +1,8 @@ +var searchData= +[ + ['has_5fdepth_5fattachment_0',['has_depth_attachment',['../classtz_1_1gl_1_1ogl2_1_1framebuffer.html#a9bffd7e6b5321dbeba5ff1055b5f47f2',1,'tz::gl::ogl2::framebuffer']]], + ['has_5fever_5frecorded_1',['has_ever_recorded',['../classtz_1_1gl_1_1vk2_1_1_command_buffer.html#af1184d8a0d83461bf90fc04dcd62d3bb',1,'tz::gl::vk2::CommandBuffer']]], + ['has_5fvalid_5fdevice_2',['has_valid_device',['../structtz_1_1gl_1_1vk2_1_1_descriptor_layout_info.html#aedc42a2278d1afcd8b542fa1ce2ade0c',1,'tz::gl::vk2::DescriptorLayoutInfo::has_valid_device()'],['../structtz_1_1gl_1_1vk2_1_1_descriptor_pool_info.html#a51692a2e9f8a598c7ee5d90b84ddd1ea',1,'tz::gl::vk2::DescriptorPoolInfo::has_valid_device()'],['../structtz_1_1gl_1_1vk2_1_1_render_pass_info.html#a7ccf96ec76452a363bc1d490754d5ba0',1,'tz::gl::vk2::RenderPassInfo::has_valid_device()']]], + ['has_5fwindow_3',['has_window',['../group__tz__wsi__window.html#ga17b7e39ac40d1f9b2c39c6b536049442',1,'tz::wsi']]], + ['hours_4',['hours',['../classtz_1_1duration.html#a9abef28fbe6122cce28c0948f606e549',1,'tz::duration']]] +]; diff --git a/search/functions_8.js b/search/functions_8.js new file mode 100644 index 0000000000..4fe748cd74 --- /dev/null +++ b/search/functions_8.js @@ -0,0 +1,21 @@ +var searchData= +[ + ['identity_0',['identity',['../classtz_1_1matrix.html#ac3c2819f55748e942c0b31473befba0f',1,'tz::matrix']]], + ['image_1',['Image',['../classtz_1_1gl_1_1vk2_1_1_image.html#a9749cb054c3afbc18d56331793c7c247',1,'tz::gl::vk2::Image']]], + ['image_2',['image',['../classtz_1_1gl_1_1ogl2_1_1image.html#ac20bf3b1847956d4b3b56160e3c0fa8d',1,'tz::gl::ogl2::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__vk.html#ga008f58719ad31f39af59d4f017aaea9e',1,'tz::gl::vk2::initialise()'],['../group__tz__gl__ogl2.html#ga191a25d7af220adb7cbecb11c18aba9d',1,'tz::gl::ogl2::initialise()'],['../group__tz__core.html#ga96f115f23731621af2e77904b1115fad',1,'tz::initialise()']]], + ['inverse_7',['inverse',['../group__tzsl__matrix.html#ga5acabab4299f3a83255b29951529b723',1,'tz::matrix::inverse()'],['../classtz_1_1matrix.html#a7e433fe3e699b5408379853e995047d7',1,'tz::matrix::inverse()']]], + ['inverse_5fsqrt_8',['inverse_sqrt',['../group__tzsl__math.html#gada52dfc780717ed2093173a1d7fc2756',1,'tz::math']]], + ['is_5fbindless_9',['is_bindless',['../classtz_1_1gl_1_1ogl2_1_1image.html#abbbbeecb6616cc854440f88583e11739',1,'tz::gl::ogl2::image']]], + ['is_5finfinity_10',['is_infinity',['../group__tzsl__math.html#ga9fad99521b5db2890038926308391384',1,'tz::math']]], + ['is_5finitialised_11',['is_initialised',['../group__tz__core.html#ga4197bca3cce79edb5652963d5bd7c1f0',1,'tz::is_initialised()'],['../group__tz__gl__ogl2.html#gadb3c9422dbeed2aa29746cc76e69595f',1,'tz::gl::ogl2::is_initialised()']]], + ['is_5fkey_5fdown_12',['is_key_down',['../group__tz__wsi__keyboard.html#ga5e31e075f6fd53e6c03dce80ea5f3b7e',1,'tz::wsi']]], + ['is_5fmouse_5fbutton_5fdown_13',['is_mouse_button_down',['../group__tz__wsi__mouse.html#ga922f648e394c766866b9f09677f52a97',1,'tz::wsi']]], + ['is_5fnan_14',['is_nan',['../group__tzsl__math.html#gafb0b592c454e7f033ea85f46819d149a',1,'tz::math']]], + ['is_5fnull_15',['is_null',['../classtz_1_1gl_1_1vk2_1_1_swapchain.html#a3b79708061815cb17a57911986fc267f',1,'tz::gl::vk2::Swapchain::is_null()'],['../classtz_1_1gl_1_1vk2_1_1_logical_device.html#aa47297f3958f89e97c01eef4e37167b0',1,'tz::gl::vk2::LogicalDevice::is_null()'],['../classtz_1_1gl_1_1ogl2_1_1vertex__array.html#a8dda442e0b38c14f4c091073b431c87d',1,'tz::gl::ogl2::vertex_array::is_null()'],['../classtz_1_1gl_1_1ogl2_1_1shader.html#a51d7596169244c8fb6414302e2f1b1ef',1,'tz::gl::ogl2::shader::is_null()'],['../classtz_1_1gl_1_1ogl2_1_1image.html#ac0f5d8d365b93ee6282751e94f8973e8',1,'tz::gl::ogl2::image::is_null()'],['../classtz_1_1gl_1_1ogl2_1_1framebuffer.html#adf2c7cbf8d99d4989162683c264a49f5',1,'tz::gl::ogl2::framebuffer::is_null()'],['../classtz_1_1gl_1_1ogl2_1_1buffer.html#a6b58eda5496da5d8bd70a05fe2bbad6e',1,'tz::gl::ogl2::buffer::is_null()']]], + ['is_5frecording_16',['is_recording',['../classtz_1_1gl_1_1vk2_1_1_command_buffer.html#a721538a81ab301429e1eea581ca9a012',1,'tz::gl::vk2::CommandBuffer']]], + ['is_5fsignalled_17',['is_signalled',['../classtz_1_1gl_1_1vk2_1_1_fence.html#ac7ef0b27a987a0522a39a6bbdb071a90',1,'tz::gl::vk2::Fence']]] +]; diff --git a/search/functions_9.js b/search/functions_9.js new file mode 100644 index 0000000000..d24684bbb4 --- /dev/null +++ b/search/functions_9.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['job_5fsystem_0',['job_system',['../group__tz__core__job.html#ga32270a811cb4a5c1229ee22ce3d62cd7',1,'tz']]] +]; diff --git a/search/functions_a.js b/search/functions_a.js new file mode 100644 index 0000000000..8450be0739 --- /dev/null +++ b/search/functions_a.js @@ -0,0 +1,9 @@ +var searchData= +[ + ['length_0',['length',['../classtz_1_1basic__list.html#ad2ed5fb6f960712dc66a7dca73100b56',1,'tz::basic_list::length()'],['../classtz_1_1vector.html#ad21a340f4595f568eefe21d3038c8234',1,'tz::vector::length()']]], + ['lerp_1',['lerp',['../group__tzsl__math.html#gaa303ee7efac3c557a14203c3583656f6',1,'tz::math']]], + ['link_2',['link',['../classtz_1_1gl_1_1ogl2_1_1shader.html#ae19573903c49062b248032857ec14355',1,'tz::gl::ogl2::shader']]], + ['ln_3',['ln',['../group__tzsl__math.html#gaa3a474353fb7c18a671fb285c38f12fa',1,'tz::math']]], + ['log_4',['log',['../group__tzsl__math.html#gaa8fbf2fd8ac5c0c3e7a3ad51cfe5acca',1,'tz::math']]], + ['logicaldevice_5',['LogicalDevice',['../classtz_1_1gl_1_1vk2_1_1_logical_device.html#a2bee85f2a05cbf3653a887f471745cdb',1,'tz::gl::vk2::LogicalDevice']]] +]; diff --git a/search/functions_b.js b/search/functions_b.js new file mode 100644 index 0000000000..7e0ea2527f --- /dev/null +++ b/search/functions_b.js @@ -0,0 +1,17 @@ +var searchData= +[ + ['magnitude_0',['magnitude',['../group__tzsl__math.html#gac19fd8cac0bb9c24bc0c123b19527b20',1,'tz::math']]], + ['make_5fbindless_1',['make_bindless',['../classtz_1_1gl_1_1ogl2_1_1image.html#a1db429d2f9d112084f5ff4a3dbf29111',1,'tz::gl::ogl2::image']]], + ['make_5fedit_5frequest_2',['make_edit_request',['../classtz_1_1gl_1_1vk2_1_1_descriptor_set.html#aad4dfda61c3b097013b675089501ddcb',1,'tz::gl::vk2::DescriptorSet']]], + ['make_5fupdate_5frequest_3',['make_update_request',['../classtz_1_1gl_1_1vk2_1_1_descriptor_pool.html#aa4ca5a9b707fa4a15e150105e7ce7d44',1,'tz::gl::vk2::DescriptorPool']]], + ['map_4',['map',['../classtz_1_1gl_1_1ogl2_1_1buffer.html#a6a152a5570d321dfaafb8622e4ec0e29',1,'tz::gl::ogl2::buffer::map()'],['../classtz_1_1gl_1_1ogl2_1_1buffer.html#a7b2564baa2398de6d15d056d9fc1df20',1,'tz::gl::ogl2::buffer::map() const'],['../classtz_1_1gl_1_1vk2_1_1_buffer.html#a6f7131c56890d0966bb2e3ea74bc2eb1',1,'tz::gl::vk2::Buffer::map()']]], + ['map_5fas_5',['map_as',['../classtz_1_1gl_1_1ogl2_1_1buffer.html#a7a362343c3222975998cb78e2b3d619c',1,'tz::gl::ogl2::buffer::map_as()'],['../classtz_1_1gl_1_1ogl2_1_1buffer.html#ab7cb7eefd87892b60164efc34f878ee7',1,'tz::gl::ogl2::buffer::map_as() const'],['../classtz_1_1gl_1_1vk2_1_1_buffer.html#a238ec50ea5cc40a351e1ebe487ce86db',1,'tz::gl::vk2::Buffer::map_as()']]], + ['matrix_6',['matrix',['../classtz_1_1matrix.html#ab93aae54ae663d225ed18bed1dde22ef',1,'tz::matrix::matrix(std::array< std::array< T, R >, C > data)'],['../classtz_1_1matrix.html#a08597e418e20c292ea54f4b845a6a35a',1,'tz::matrix::matrix()=default']]], + ['max_7',['max',['../group__tzsl__atomic.html#ga7be084073b7420420cd5f5b5b9f81db6',1,'tz::atomic::max()'],['../group__tzsl__math.html#gaace435adbf3045892fcff015ae6446ae',1,'tz::math::max()']]], + ['micros_8',['micros',['../classtz_1_1duration.html#a77132d356c4f747078fd4574e778a1a8',1,'tz::duration']]], + ['millis_9',['millis',['../classtz_1_1duration.html#a7e77d183a8aeecf8e36a6a7b76947f8b',1,'tz::duration']]], + ['min_10',['min',['../group__tzsl__atomic.html#ga86e1a113d8ee0dd644704f091bcb1b13',1,'tz::atomic::min()'],['../group__tzsl__math.html#ga4bd7bdfcb0408f324b5e80a7c233a2ed',1,'tz::math::min()']]], + ['minutes_11',['minutes',['../classtz_1_1duration.html#a03ae7d13037cac61ff6c60852d1d20fc',1,'tz::duration']]], + ['mod_12',['mod',['../group__tzsl__math.html#ga9e6708981e516e127c8e7f9e078aa50a',1,'tz::math']]], + ['model_13',['model',['../group__tz__core.html#ga8eee7d1f58cb6eefcc220bc2026ba7e1',1,'tz']]] +]; diff --git a/search/functions_c.js b/search/functions_c.js new file mode 100644 index 0000000000..c4edf50ab8 --- /dev/null +++ b/search/functions_c.js @@ -0,0 +1,7 @@ +var searchData= +[ + ['nanos_0',['nanos',['../classtz_1_1duration.html#a2a250959a205d0533fa459eb7635141d',1,'tz::duration']]], + ['normalise_1',['normalise',['../classtz_1_1vector.html#a6c5d76ac6e6c423a3939a68a104a2476',1,'tz::vector::normalise()'],['../group__tzsl__math.html#ga7e9161c4554681c9e3455f2044d74378',1,'tz::math::normalise()']]], + ['normalised_2',['normalised',['../classtz_1_1vector.html#a7d3f52f2b2eee13ed28869b1d5775a40',1,'tz::vector']]], + ['null_3',['null',['../classtz_1_1gl_1_1ogl2_1_1buffer.html#a198db31e0a5081dca6a29fdedfcb2e7d',1,'tz::gl::ogl2::buffer::null()'],['../classtz_1_1gl_1_1ogl2_1_1framebuffer.html#a1043574f330dd12e7bcc56bf41291e91',1,'tz::gl::ogl2::framebuffer::null()'],['../classtz_1_1gl_1_1ogl2_1_1image.html#a47abf1514f9156f568d16abfa09ceb64',1,'tz::gl::ogl2::image::null()'],['../classtz_1_1gl_1_1ogl2_1_1shader.html#a189789a1dd30c80d8e0c1b8be0b0c7ee',1,'tz::gl::ogl2::shader::null()'],['../classtz_1_1gl_1_1ogl2_1_1vertex__array.html#a39da177cf71a9462d79fcc82230ee702',1,'tz::gl::ogl2::vertex_array::null()'],['../classtz_1_1gl_1_1vk2_1_1_logical_device.html#a29a6419aa0f11bc338774da7ec9db6ed',1,'tz::gl::vk2::LogicalDevice::null()'],['../classtz_1_1gl_1_1vk2_1_1_swapchain.html#a4a22a47532955e0b373b671bf4e310dc',1,'tz::gl::vk2::Swapchain::null()'],['../classtz_1_1gl_1_1buffer__resource.html#adc992b7120e61ca9e84236b84a96b760',1,'tz::gl::buffer_resource::null()'],['../classtz_1_1gl_1_1image__resource.html#ad7b2f90494cadde953d63ff92a1c7568',1,'tz::gl::image_resource::null()']]] +]; diff --git a/search/functions_d.js b/search/functions_d.js new file mode 100644 index 0000000000..da46ea7edb --- /dev/null +++ b/search/functions_d.js @@ -0,0 +1,22 @@ +var searchData= +[ + ['operator_20e_0',['operator E',['../classtz_1_1enum__field.html#a3327eb996a17b1b537c9dd0f4ca7b4ff',1,'tz::enum_field']]], + ['operator_20vector_3c_20x_2c_20s_20_3e_1',['operator vector< X, S >',['../classtz_1_1vector.html#a07e3d24a2740e69ab8d7b3d3fbf1cae9',1,'tz::vector']]], + ['operator_28_29_2',['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_3',['operator*',['../classtz_1_1matrix.html#a84396c16d731c3149b28b25b30d336f8',1,'tz::matrix::operator*(const tz::vector< T, C > &vec) const'],['../classtz_1_1matrix.html#ac4219cdde5e6e91a5b4caa2467880585',1,'tz::matrix::operator*(const matrix< T, R, C > &matrix) const'],['../classtz_1_1matrix.html#a75498bf523552ad8c2be4c3f28c0001c',1,'tz::matrix::operator*(T scalar) const'],['../classtz_1_1vector.html#a1376ec726cece78821351e04454f64e3',1,'tz::vector::operator*(T scalar) const']]], + ['operator_2a_3d_4',['operator*=',['../classtz_1_1vector.html#ab2a0d283be965ec4bb87b05ee3deb889',1,'tz::vector::operator*=()'],['../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_5',['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_6',['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_7',['operator-',['../classtz_1_1matrix.html#a2a47a5460741f8d28808af856bd917f3',1,'tz::matrix::operator-(const matrix< T, R, C > &matrix) const'],['../classtz_1_1matrix.html#a711f29498d5f14bc5f99aace71ebbc8f',1,'tz::matrix::operator-(T scalar) const'],['../classtz_1_1vector.html#acfd142fe7cde54b417bd39252f7c9b1a',1,'tz::vector::operator-(const vector< T, S > &rhs) const']]], + ['operator_2d_3d_8',['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_9',['operator/',['../classtz_1_1vector.html#a0258c2f1b18c602fa0d3e6f111d9a302',1,'tz::vector']]], + ['operator_2f_3d_10',['operator/=',['../classtz_1_1vector.html#a3bf18e76e10c2744051757ac69d28ea1',1,'tz::vector']]], + ['operator_3d_3d_11',['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_12',['operator[]',['../classtz_1_1basic__list.html#a18c4f56a2797760ab7ab7a4ef3b65736',1,'tz::basic_list::operator[]()'],['../classtz_1_1matrix.html#a6cc8213a09be28cac68d613ed5633675',1,'tz::matrix::operator[](std::size_t row_idx)'],['../classtz_1_1matrix.html#a473b176cd8b03837b3e904f4fa5c5d1d',1,'tz::matrix::operator[](std::size_t row_idx) const'],['../classtz_1_1vector.html#a2e0545e0185d4952cb6e0064ec292c7d',1,'tz::vector::operator[](std::size_t idx)'],['../classtz_1_1vector.html#a567ecbdc46da683e1e1fa1e140d57185',1,'tz::vector::operator[](std::size_t idx) const'],['../classtz_1_1_polymorphic_list.html#a1c35e09a69492845e176f0b4533fbc9d',1,'tz::PolymorphicList::operator[](std::size_t idx)'],['../classtz_1_1_polymorphic_list.html#ac9d9ca26cd70c5cdf6f45678fccdcfe1',1,'tz::PolymorphicList::operator[](std::size_t idx) const'],['../classtz_1_1basic__list.html#ae1e36e4ebc67ca42f3549c8866a4f26d',1,'tz::basic_list::operator[]()']]], + ['operator_7c_13',['operator|',['../classtz_1_1enum__field.html#a2aecfc1eb743a60eb38d612bee21797c',1,'tz::enum_field']]], + ['operator_7c_3d_14',['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_15',['or',['../group__tzsl__atomic.html#ga95e7e3ef54161ce397ae4496aa09be0c',1,'tz::atomic']]], + ['orthographic_16',['orthographic',['../group__tz__core.html#ga234891ef18cb4fd49558abc807e172e2',1,'tz']]], + ['outputmanager_17',['OutputManager',['../classtz_1_1gl_1_1_output_manager.html#adc7d95d64b3331d874c482a08b2471d5',1,'tz::gl::OutputManager']]], + ['span_3c_20const_20t_20_3e_18',['span< const T >',['../classtz_1_1basic__list.html#a54c9f1226a0ac27cd0f51485e3991181',1,'tz::basic_list']]] +]; diff --git a/search/functions_e.js b/search/functions_e.js new file mode 100644 index 0000000000..85460d91bf --- /dev/null +++ b/search/functions_e.js @@ -0,0 +1,11 @@ +var searchData= +[ + ['perspective_0',['perspective',['../group__tz__core.html#gab069a1e647b9e13ac337c87fa7b5a7cc',1,'tz']]], + ['physicaldevice_1',['PhysicalDevice',['../classtz_1_1gl_1_1vk2_1_1_physical_device.html#a1af757e82fdc5ebc851cf9489fdb5c25',1,'tz::gl::vk2::PhysicalDevice']]], + ['polymorphiclist_2',['PolymorphicList',['../classtz_1_1_polymorphic_list.html#abc16be83e1ee23b79e3f6025015cc036',1,'tz::PolymorphicList']]], + ['pop_5flast_5fkey_3',['pop_last_key',['../structtz_1_1wsi_1_1keyboard__state.html#aff2a1e6ef218cd37ac2628ae96b20492',1,'tz::wsi::keyboard_state']]], + ['pow_4',['pow',['../group__tzsl__math.html#ga9f34e69d9b60f40eff093810b901758f',1,'tz::math']]], + ['present_5',['present',['../classtz_1_1gl_1_1vk2_1_1hardware_1_1_queue.html#aa4f3d7a351fe699cd90ea6457c64caee',1,'tz::gl::vk2::hardware::Queue']]], + ['present_5fimage_6',['present_image',['../classtz_1_1gl_1_1device__command__pool.html#ab1098fdc258d74a3017f6eae5f2b2e18',1,'tz::gl::device_command_pool']]], + ['printf_7',['printf',['../group__tzsl__debug.html#ga401528dfbbe8d1188886cc571d1265b6',1,'tz::debug']]] +]; diff --git a/search/functions_f.js b/search/functions_f.js new file mode 100644 index 0000000000..456d293c2d --- /dev/null +++ b/search/functions_f.js @@ -0,0 +1,24 @@ +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']]], + ['render_6',['render',['../classtz_1_1gl_1_1renderer.html#a5e5f72e20e10be732eb3a744e34058f3',1,'tz::gl::renderer::render()'],['../classtz_1_1gl_1_1renderer.html#a78496d2be55890b00a2b14767ac22bbc',1,'tz::gl::renderer::render(std::size_t tri_count)'],['../classtz_1_1gl_1_1renderer__ogl.html#a28e3f2beda21a1c597681760d3734ae4',1,'tz::gl::renderer_ogl::render()']]], + ['render_5fstate_7',['render_state',['../classtz_1_1gl_1_1_renderer_edit_builder.html#a93c4ffa0d35525ace09a54ce897f028d',1,'tz::gl::RendererEditBuilder']]], + ['renderer_5fcount_8',['renderer_count',['../classtz_1_1gl_1_1device.html#aa2adea5cb25d9712f1fe2b22dba3eec7',1,'tz::gl::device']]], + ['renderer_5fogl_9',['renderer_ogl',['../classtz_1_1gl_1_1renderer__ogl.html#ad8f5c88c01550694021d6d15e8b1222b',1,'tz::gl::renderer_ogl']]], + ['renderpass_10',['RenderPass',['../classtz_1_1gl_1_1vk2_1_1_render_pass.html#ad43e05dd5535ca6430dbba0cfee87b01',1,'tz::gl::vk2::RenderPass']]], + ['renderpassrun_11',['RenderPassRun',['../classtz_1_1gl_1_1vk2_1_1_command_buffer_recording_1_1_render_pass_run.html#a4ad32a0a245c359f4c59f043b3565ff5',1,'tz::gl::vk2::CommandBufferRecording::RenderPassRun']]], + ['report_12',['report',['../group__tz__core.html#gab9cfea70c99d9d2b1dd82bebee489377',1,'tz']]], + ['reset_13',['reset',['../classtz_1_1delay.html#ab4828a83cde0cd8739937a533dd91b60',1,'tz::delay']]], + ['resize_14',['resize',['../classtz_1_1basic__list.html#a0a3896bd6babdbde094588b846fa8f5e',1,'tz::basic_list']]], + ['resource_5fcount_15',['resource_count',['../classtz_1_1gl_1_1renderer__ogl.html#a5b49989a7d61aa1ef55727206f1db63a',1,'tz::gl::renderer_ogl::resource_count()'],['../classtz_1_1gl_1_1renderer.html#a9761939bb33ca72dddf9c03d669eac8d',1,'tz::gl::renderer::resource_count()'],['../classtz_1_1gl_1_1renderer__info.html#a65c015b1bd2c1dbf9bddf72f2d2a22ee',1,'tz::gl::renderer_info::resource_count()']]], + ['resource_5fcount_5fof_16',['resource_count_of',['../classtz_1_1gl_1_1_resource_storage.html#a7434d0c28fc3e936ea2da36b6e5cd020',1,'tz::gl::ResourceStorage']]], + ['resourcestorage_17',['ResourceStorage',['../classtz_1_1gl_1_1_resource_storage.html#ab57f9e4401a87f4fa877d0cdd69204ed',1,'tz::gl::ResourceStorage']]], + ['rotate_18',['rotate',['../group__tz__core.html#gac0457238d0094915eda4df542774a9e8',1,'tz']]], + ['round_19',['round',['../group__tzsl__math.html#ga39cc0a661ddc88ab512b639cb38d4928',1,'tz::math']]], + ['run_20',['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..dc35abeed0 --- /dev/null +++ b/search/groups_0.js @@ -0,0 +1,6 @@ +var searchData= +[ + ['algorithms_0',['Algorithms',['../group__tz__core__algorithms.html',1,'']]], + ['allocators_1',['Allocators',['../group__tz__core__memory__allocator.html',1,'']]], + ['atomic_20operations_2',['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..6ff3f7c261 --- /dev/null +++ b/search/groups_1.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['buffers_0',['Buffers',['../group__tz__gl__ogl2__buffers.html',1,'(Global Namespace)'],['../group__tz__gl__vk__buffer.html',1,'(Global Namespace)']]] +]; diff --git a/search/groups_10.js b/search/groups_10.js new file mode 100644 index 0000000000..b602985d14 --- /dev/null +++ b/search/groups_10.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['tzsl_20api_20reference_0',['TZSL API Reference',['../group__tzsl.html',1,'']]] +]; diff --git a/search/groups_11.js b/search/groups_11.js new file mode 100644 index 0000000000..f4859e8ee1 --- /dev/null +++ b/search/groups_11.js @@ -0,0 +1,6 @@ +var searchData= +[ + ['vulkan_0',['Vulkan',['../group__tz__gl2__graphicsapi__vk.html',1,'']]], + ['vulkan_20backend_1',['Vulkan Backend',['../group__tz__gl__vk.html',1,'']]], + ['vulkan_20frontend_2',['Vulkan Frontend',['../group__tz__gl2__graphicsapi__vk__frontend.html',1,'']]] +]; diff --git a/search/groups_12.js b/search/groups_12.js new file mode 100644 index 0000000000..2305a4d48c --- /dev/null +++ b/search/groups_12.js @@ -0,0 +1,5 @@ +var searchData= +[ + ['window_0',['Window',['../group__tz__wsi__window.html',1,'']]], + ['window_20system_20integration_1',['Window System Integration',['../group__tz__wsi.html',1,'']]] +]; diff --git a/search/groups_2.js b/search/groups_2.js new file mode 100644 index 0000000000..3de29da627 --- /dev/null +++ b/search/groups_2.js @@ -0,0 +1,6 @@ +var searchData= +[ + ['c_2b_2b_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..85bfc922c0 --- /dev/null +++ b/search/groups_5.js @@ -0,0 +1,5 @@ +var searchData= +[ + ['fixed_20pipeline_20state_20values_0',['Fixed Pipeline State Values',['../group__tz__gl__vk__graphics__pipeline__fixed.html',1,'']]], + ['framebuffers_1',['Framebuffers',['../group__tz__gl__ogl2__framebuffer.html',1,'']]] +]; diff --git a/search/groups_6.js b/search/groups_6.js new file mode 100644 index 0000000000..82bfb3d3cf --- /dev/null +++ b/search/groups_6.js @@ -0,0 +1,5 @@ +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,'']]] +]; diff --git a/search/groups_7.js b/search/groups_7.js new file mode 100644 index 0000000000..b738de33d8 --- /dev/null +++ b/search/groups_7.js @@ -0,0 +1,5 @@ +var searchData= +[ + ['images_2c_20samplers_20and_20formats_0',['Images, Samplers and Formats',['../group__tz__gl__ogl2__image.html',1,'(Global Namespace)'],['../group__tz__gl__vk__image.html',1,'(Global Namespace)']]], + ['inputs_20and_20outputs_1',['Inputs and Outputs',['../group__tz__gl2__io.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..2c838ebc0d --- /dev/null +++ b/search/groups_a.js @@ -0,0 +1,9 @@ +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,'']]], + ['monitors_4',['Monitors',['../group__tz__wsi__monitor.html',1,'']]], + ['mouse_20input_5',['Mouse Input',['../group__tz__wsi__mouse.html',1,'']]] +]; diff --git a/search/groups_b.js b/search/groups_b.js new file mode 100644 index 0000000000..d0de9d01b8 --- /dev/null +++ b/search/groups_b.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['noise_20functions_0',['Noise Functions',['../group__tzsl__noise.html',1,'']]] +]; diff --git a/search/groups_c.js b/search/groups_c.js new file mode 100644 index 0000000000..80f7f91c27 --- /dev/null +++ b/search/groups_c.js @@ -0,0 +1,6 @@ +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,'']]] +]; diff --git a/search/groups_d.js b/search/groups_d.js new file mode 100644 index 0000000000..5509ff97fb --- /dev/null +++ b/search/groups_d.js @@ -0,0 +1,5 @@ +var searchData= +[ + ['precomputed_20meshes_0',['Precomputed Meshes',['../group__tzsl__mesh.html',1,'']]], + ['presentation_20and_20window_20surface_20interation_20_28wsi_29_1',['Presentation and Window Surface Interation (WSI)',['../group__tz__gl__vk__presentation.html',1,'']]] +]; diff --git a/search/groups_e.js b/search/groups_e.js new file mode 100644 index 0000000000..83ef55ff35 --- /dev/null +++ b/search/groups_e.js @@ -0,0 +1,7 @@ +var searchData= +[ + ['render_20passes_0',['Render Passes',['../group__tz__gl__vk__graphics__pipeline__render__pass.html',1,'']]], + ['renderer_20implementation_1',['renderer Implementation',['../group__tz__gl2__graphicsapi__ogl__frontend__renderer.html',1,'']]], + ['renderers_2',['Renderers',['../group__tz__gl2__renderer.html',1,'']]], + ['resources_3',['Resources',['../group__tz__gl2__res.html',1,'']]] +]; diff --git a/search/groups_f.js b/search/groups_f.js new file mode 100644 index 0000000000..a0752c881d --- /dev/null +++ b/search/groups_f.js @@ -0,0 +1,6 @@ +var searchData= +[ + ['shader_20programs_20and_20modules_0',['Shader Programs and Modules',['../group__tz__gl__vk__graphics__pipeline__shader.html',1,'']]], + ['shaders_1',['Shaders',['../group__tz__gl__ogl2__shader.html',1,'']]], + ['synchronisation_20primitives_2',['Synchronisation Primitives',['../group__tz__gl__vk__sync.html',1,'']]] +]; diff --git a/search/mag.svg b/search/mag.svg new file mode 100644 index 0000000000..9f46b301eb --- /dev/null +++ b/search/mag.svg @@ -0,0 +1,37 @@ + + + + + + image/svg+xml + + + + + + + + + diff --git a/search/mag_d.svg b/search/mag_d.svg new file mode 100644 index 0000000000..b9a814c78d --- /dev/null +++ b/search/mag_d.svg @@ -0,0 +1,37 @@ + + + + + + image/svg+xml + + + + + + + + + diff --git a/search/mag_sel.svg b/search/mag_sel.svg new file mode 100644 index 0000000000..03626f64a0 --- /dev/null +++ b/search/mag_sel.svg @@ -0,0 +1,74 @@ + + + + + + + + image/svg+xml + + + + + + + + + + + diff --git a/search/mag_seld.svg b/search/mag_seld.svg new file mode 100644 index 0000000000..6e720dcc91 --- /dev/null +++ b/search/mag_seld.svg @@ -0,0 +1,74 @@ + + + + + + + + image/svg+xml + + + + + + + + + + + diff --git a/search/namespaces_0.js b/search/namespaces_0.js new file mode 100644 index 0000000000..2d1f556674 --- /dev/null +++ b/search/namespaces_0.js @@ -0,0 +1,12 @@ +var searchData= +[ + ['atomic_0',['atomic',['../namespacetz_1_1atomic.html',1,'tz']]], + ['debug_1',['debug',['../namespacetz_1_1debug.html',1,'tz']]], + ['format_5ftraits_2',['format_traits',['../namespacetz_1_1gl_1_1vk2_1_1format__traits.html',1,'tz::gl::vk2']]], + ['math_3',['math',['../namespacetz_1_1math.html',1,'tz']]], + ['matrix_4',['matrix',['../namespacetz_1_1matrix.html',1,'tz']]], + ['mesh_5',['mesh',['../namespacetz_1_1mesh.html',1,'tz']]], + ['noise_6',['noise',['../namespacetz_1_1noise.html',1,'tz']]], + ['present_5ftraits_7',['present_traits',['../namespacetz_1_1gl_1_1vk2_1_1present__traits.html',1,'tz::gl::vk2']]], + ['window_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..d2fc69cfee --- /dev/null +++ b/search/pages_0.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['graphics_0',['Graphics',['../graphics.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..7455d128a2 --- /dev/null +++ b/search/pages_2.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['shaders_0',['Shaders',['../shaders.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..e103a26217 --- /dev/null +++ b/search/search.js @@ -0,0 +1,816 @@ +/* + @licstart The following is the entire license notice for the JavaScript code in this file. + + The MIT License (MIT) + + Copyright (C) 1997-2020 by Dimitri van Heesch + + Permission is hereby granted, free of charge, to any person obtaining a copy of this software + and associated documentation files (the "Software"), to deal in the Software without restriction, + including without limitation the rights to use, copy, modify, merge, publish, distribute, + sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is + furnished to do so, subject to the following conditions: + + The above copyright notice and this permission notice shall be included in all copies or + substantial portions of the Software. + + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING + BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND + NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, + DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + + @licend The above is the entire license notice for the JavaScript code in this file + */ +function convertToId(search) +{ + var result = ''; + for (i=0;i do a search + { + this.Search(); + } + } + + this.OnSearchSelectKey = function(evt) + { + var e = (evt) ? evt : window.event; // for IE + if (e.keyCode==40 && this.searchIndex0) // Up + { + this.searchIndex--; + this.OnSelectItem(this.searchIndex); + } + else if (e.keyCode==13 || e.keyCode==27) + { + this.OnSelectItem(this.searchIndex); + this.CloseSelectionWindow(); + this.DOMSearchField().focus(); + } + return false; + } + + // --------- Actions + + // Closes the results window. + this.CloseResultsWindow = function() + { + this.DOMPopupSearchResultsWindow().style.display = 'none'; + this.DOMSearchClose().style.display = 'none'; + this.Activate(false); + } + + this.CloseSelectionWindow = function() + { + this.DOMSearchSelectWindow().style.display = 'none'; + } + + // Performs a search. + this.Search = function() + { + this.keyTimeout = 0; + + // strip leading whitespace + var searchValue = this.DOMSearchField().value.replace(/^ +/, ""); + + var code = searchValue.toLowerCase().charCodeAt(0); + var idxChar = searchValue.substr(0, 1).toLowerCase(); + if ( 0xD800 <= code && code <= 0xDBFF && searchValue > 1) // surrogate pair + { + idxChar = searchValue.substr(0, 2); + } + + var jsFile; + + var idx = indexSectionsWithContent[this.searchIndex].indexOf(idxChar); + if (idx!=-1) + { + var hexCode=idx.toString(16); + jsFile = this.resultsPath + indexSectionNames[this.searchIndex] + '_' + hexCode + '.js'; + } + + var loadJS = function(url, impl, loc){ + var scriptTag = document.createElement('script'); + scriptTag.src = url; + scriptTag.onload = impl; + scriptTag.onreadystatechange = impl; + loc.appendChild(scriptTag); + } + + var domPopupSearchResultsWindow = this.DOMPopupSearchResultsWindow(); + var domSearchBox = this.DOMSearchBox(); + var domPopupSearchResults = this.DOMPopupSearchResults(); + var domSearchClose = this.DOMSearchClose(); + var resultsPath = this.resultsPath; + + var handleResults = function() { + document.getElementById("Loading").style.display="none"; + if (typeof searchData !== 'undefined') { + createResults(resultsPath); + document.getElementById("NoMatches").style.display="none"; + } + + searchResults.Search(searchValue); + + if (domPopupSearchResultsWindow.style.display!='block') + { + domSearchClose.style.display = 'inline-block'; + var left = getXPos(domSearchBox) + 150; + var top = getYPos(domSearchBox) + 20; + domPopupSearchResultsWindow.style.display = 'block'; + left -= domPopupSearchResults.offsetWidth; + var maxWidth = document.body.clientWidth; + var maxHeight = document.body.clientHeight; + var width = 300; + if (left<10) left=10; + if (width+left+8>maxWidth) width=maxWidth-left-8; + var height = 400; + if (height+top+8>maxHeight) height=maxHeight-top-8; + domPopupSearchResultsWindow.style.top = top + 'px'; + domPopupSearchResultsWindow.style.left = left + 'px'; + domPopupSearchResultsWindow.style.width = width + 'px'; + domPopupSearchResultsWindow.style.height = height + 'px'; + } + } + + if (jsFile) { + loadJS(jsFile, handleResults, this.DOMPopupSearchResultsWindow()); + } else { + handleResults(); + } + + this.lastSearchValue = searchValue; + } + + // -------- Activation Functions + + // Activates or deactivates the search panel, resetting things to + // their default values if necessary. + this.Activate = function(isActive) + { + if (isActive || // open it + this.DOMPopupSearchResultsWindow().style.display == 'block' + ) + { + this.DOMSearchBox().className = 'MSearchBoxActive'; + this.searchActive = true; + } + else if (!isActive) // directly remove the panel + { + this.DOMSearchBox().className = 'MSearchBoxInactive'; + this.searchActive = false; + this.lastSearchValue = '' + this.lastResultsPage = ''; + this.DOMSearchField().value = ''; + } + } +} + +// ----------------------------------------------------------------------- + +// The class that handles everything on the search results page. +function SearchResults(name) +{ + // The number of matches from the last run of . + this.lastMatchCount = 0; + this.lastKey = 0; + this.repeatOn = false; + + // Toggles the visibility of the passed element ID. + this.FindChildElement = function(id) + { + var parentElement = document.getElementById(id); + var element = parentElement.firstChild; + + while (element && element!=parentElement) + { + if (element.nodeName.toLowerCase() == 'div' && element.className == 'SRChildren') + { + return element; + } + + if (element.nodeName.toLowerCase() == 'div' && element.hasChildNodes()) + { + element = element.firstChild; + } + else if (element.nextSibling) + { + element = element.nextSibling; + } + else + { + do + { + element = element.parentNode; + } + while (element && element!=parentElement && !element.nextSibling); + + if (element && element!=parentElement) + { + element = element.nextSibling; + } + } + } + } + + this.Toggle = function(id) + { + var element = this.FindChildElement(id); + if (element) + { + if (element.style.display == 'block') + { + element.style.display = 'none'; + } + else + { + element.style.display = 'block'; + } + } + } + + // Searches for the passed string. If there is no parameter, + // it takes it from the URL query. + // + // Always returns true, since other documents may try to call it + // and that may or may not be possible. + this.Search = function(search) + { + if (!search) // get search word from URL + { + search = window.location.search; + search = search.substring(1); // Remove the leading '?' + search = unescape(search); + } + + search = search.replace(/^ +/, ""); // strip leading spaces + search = search.replace(/ +$/, ""); // strip trailing spaces + search = search.toLowerCase(); + search = convertToId(search); + + var resultRows = document.getElementsByTagName("div"); + var matches = 0; + + var i = 0; + while (i < resultRows.length) + { + var row = resultRows.item(i); + if (row.className == "SRResult") + { + var rowMatchName = row.id.toLowerCase(); + rowMatchName = rowMatchName.replace(/^sr\d*_/, ''); // strip 'sr123_' + + if (search.length<=rowMatchName.length && + rowMatchName.substr(0, search.length)==search) + { + row.style.display = 'block'; + matches++; + } + else + { + row.style.display = 'none'; + } + } + i++; + } + document.getElementById("Searching").style.display='none'; + if (matches == 0) // no results + { + document.getElementById("NoMatches").style.display='block'; + } + else // at least one result + { + document.getElementById("NoMatches").style.display='none'; + } + this.lastMatchCount = matches; + return true; + } + + // return the first item with index index or higher that is visible + this.NavNext = function(index) + { + var focusItem; + while (1) + { + var focusName = 'Item'+index; + focusItem = document.getElementById(focusName); + if (focusItem && focusItem.parentNode.parentNode.style.display=='block') + { + break; + } + else if (!focusItem) // last element + { + break; + } + focusItem=null; + index++; + } + return focusItem; + } + + this.NavPrev = function(index) + { + var focusItem; + while (1) + { + var focusName = 'Item'+index; + focusItem = document.getElementById(focusName); + if (focusItem && focusItem.parentNode.parentNode.style.display=='block') + { + break; + } + else if (!focusItem) // last element + { + break; + } + focusItem=null; + index--; + } + return focusItem; + } + + this.ProcessKeys = function(e) + { + if (e.type == "keydown") + { + this.repeatOn = false; + this.lastKey = e.keyCode; + } + else if (e.type == "keypress") + { + if (!this.repeatOn) + { + if (this.lastKey) this.repeatOn = true; + return false; // ignore first keypress after keydown + } + } + else if (e.type == "keyup") + { + this.lastKey = 0; + this.repeatOn = false; + } + return this.lastKey!=0; + } + + this.Nav = function(evt,itemIndex) + { + var e = (evt) ? evt : window.event; // for IE + if (e.keyCode==13) return true; + if (!this.ProcessKeys(e)) return false; + + if (this.lastKey==38) // Up + { + var newIndex = itemIndex-1; + var focusItem = this.NavPrev(newIndex); + if (focusItem) + { + var child = this.FindChildElement(focusItem.parentNode.parentNode.id); + if (child && child.style.display == 'block') // children visible + { + var n=0; + var tmpElem; + while (1) // search for last child + { + tmpElem = document.getElementById('Item'+newIndex+'_c'+n); + if (tmpElem) + { + focusItem = tmpElem; + } + else // found it! + { + break; + } + n++; + } + } + } + if (focusItem) + { + focusItem.focus(); + } + else // return focus to search field + { + document.getElementById("MSearchField").focus(); + } + } + else if (this.lastKey==40) // Down + { + var newIndex = itemIndex+1; + var focusItem; + var item = document.getElementById('Item'+itemIndex); + var elem = this.FindChildElement(item.parentNode.parentNode.id); + if (elem && elem.style.display == 'block') // children visible + { + focusItem = document.getElementById('Item'+itemIndex+'_c0'); + } + if (!focusItem) focusItem = this.NavNext(newIndex); + if (focusItem) focusItem.focus(); + } + else if (this.lastKey==39) // Right + { + var item = document.getElementById('Item'+itemIndex); + var elem = this.FindChildElement(item.parentNode.parentNode.id); + if (elem) elem.style.display = 'block'; + } + else if (this.lastKey==37) // Left + { + var item = document.getElementById('Item'+itemIndex); + var elem = this.FindChildElement(item.parentNode.parentNode.id); + if (elem) elem.style.display = 'none'; + } + else if (this.lastKey==27) // Escape + { + searchBox.CloseResultsWindow(); + document.getElementById("MSearchField").focus(); + } + else if (this.lastKey==13) // Enter + { + return true; + } + return false; + } + + this.NavChild = function(evt,itemIndex,childIndex) + { + var e = (evt) ? evt : window.event; // for IE + if (e.keyCode==13) return true; + if (!this.ProcessKeys(e)) return false; + + if (this.lastKey==38) // Up + { + if (childIndex>0) + { + var newIndex = childIndex-1; + document.getElementById('Item'+itemIndex+'_c'+newIndex).focus(); + } + else // already at first child, jump to parent + { + document.getElementById('Item'+itemIndex).focus(); + } + } + else if (this.lastKey==40) // Down + { + var newIndex = childIndex+1; + var elem = document.getElementById('Item'+itemIndex+'_c'+newIndex); + if (!elem) // last child, jump to parent next parent + { + elem = this.NavNext(itemIndex+1); + } + if (elem) + { + elem.focus(); + } + } + else if (this.lastKey==27) // Escape + { + searchBox.CloseResultsWindow(); + document.getElementById("MSearchField").focus(); + } + else if (this.lastKey==13) // Enter + { + return true; + } + return false; + } +} + +function setKeyActions(elem,action) +{ + elem.setAttribute('onkeydown',action); + elem.setAttribute('onkeypress',action); + elem.setAttribute('onkeyup',action); +} + +function setClassAttr(elem,attr) +{ + elem.setAttribute('class',attr); + elem.setAttribute('className',attr); +} + +function createResults(resultsPath) +{ + var results = document.getElementById("SRResults"); + results.innerHTML = ''; + for (var e=0; e + + + + + + +Topaz: src/tz/gl/impl/vulkan/detail/semaphore.hpp Source File + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    Topaz 4.0.0.2 +
    +
    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:67
    +
    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..4e1574191f --- /dev/null +++ b/shader_8hpp_source.html @@ -0,0 +1,123 @@ + + + + + + + +Topaz: src/tz/gl/shader.hpp Source File + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    Topaz 4.0.0.2 +
    +
    C++20 Graphics Engine
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    shader.hpp
    +
    +
    +
    +
    + + + + diff --git a/shaders.html b/shaders.html new file mode 100644 index 0000000000..6d32d1dcaa --- /dev/null +++ b/shaders.html @@ -0,0 +1,360 @@ + + + + + + + +Topaz: Shaders + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    Topaz 4.0.0.2 +
    +
    C++20 Graphics Engine
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    Shaders
    +
    +
    +

    +Topaz Shader Language

    +

    +Introduction

    +

    TZSL is a high-level shader language with a syntax very similar to that of GLSL. A tool named tzslc ships with the engine, which can be used to build tzsl shaders to output SPIRV, GLSL shaders or SPIRV encoded within a C++ header.

    +

    TZSL Shaders come in five types:

      +
    • Vertex Shaders, which specify the locations of individual vertices.
        +
      • There are no vertex buffers, so vertex-pulling is a must.
      • +
      • Vertex shaders must exist, unless a compute shader exists.
      • +
      • If a vertex shader exists, a fragment shader must also exist.
      • +
      +
    • +
    • Tessellation Control Shaders, which specify how much tessellation is applied to triangles.
        +
      • These are optional. However, if it does exist, a tessellation evaluation shader must also exist.
      • +
      +
    • +
    • Tessellation Evaluation Shaders, which computes interpolated positions for tessellated triangles.
        +
      • These are optional. However, if it does exist, a tessellation control shader must also exist.
      • +
      +
    • +
    • Fragment Shaders, which processes fragments into a set of colours and optionally depth value.
        +
      • Fragment shaders must exist, unless a compute shader exists.
      • +
      • If a fragment shader exists, a vertex shader must also exist.
      • +
      +
    • +
    • Compute Shaders, which can be used to perform general-purpose computation on the GPU.
        +
      • If there is no vertex or fragment shader, there must be a compute shader.
      • +
      • If a compute shader exists, there must be no other shaders in the shader program.
      • +
      +
    • +
    +

    TZSL Shaders have first-class support in the engine's build system. When specifying your application in CMake, you can specify tzsl shader files. When the application needs to be built, the shaders are compiled into specially-encoded C++ headers which you can include in your application at compile-time. This is known as a TZSL Header Import.

    +

    +Language

    +

    +Inputs

    +

    Fragment shaders may have inputs. These are variable passed from the output of a vertex shader. Because Topaz does not deal with input state (there are no vertex buffers), vertex shaders cannot have inputs. Compute shaders cannot have inputs either, but that is normal. Every input must have an index, type and name.

    +

    Syntax: input(id = x) variable_type variable_name; Example: input(id = 0) vec2 texcoord;

    +

    +Outputs

    +

    Vertex and fragment shaders may have any number of outputs. These are similar to out variables from GLSL, although the syntax is slightly different. Every output must have an index, type and name.

    +

    Syntax: output(id = x) variable_type variable_name; Example: output(id = 0) vec3 frag_colour;

    +

    +Resources

    +

    When writing a shader, you will know about the shader resources it has access to. You might be used to the following syntaxes in OpenGL:

    uniform sampler2D my_image;
    +
    layout(binding = 0) uniform MyUniformBuffer
    +
    {
    +
    ...
    +
    } buf;
    +

    Note that the syntax for specifying image and buffer resources are quite different. Because image and buffer resources are first-class objects as far as Topaz renderers are concerned, the syntax is unified and obvious:

    resource(id = 0) const texture my_image;
    +
    resource(id = 0) const buffer MyUniformBuffer
    +
    {
    +
    ...
    +
    } buf;
    +

    Note that specifying resource ids for shader resources is mandatory, regardless of resource type. The resource id is constant and corresponds to the tz::gl::resource_handle when being specified to a renderer. This means that resources have unique identifiers. That is, if a vertex shader specifies an image resource at id 0, and again in a fragment shader (within the same shader program), they both refer to the same resource.

    +

    Note: The example above is actually ill-formed – An image and buffer resource are specified, but they share the same id which is impossible; a resource is either a buffer or an image resource, never both.

    +

    +Preprocessor Definitions

    +

    A number of preprocessor definitions are guaranteed to be exist for all TZSL shaders. These are always defined, but their value depends on the build parameters of the target program.

    +

    Below are the defines whose value depends on the render-api:

    + + + + + + +
    Define Value (OpenGL) Value (Vulkan)
    TZ_VULKAN 0 1
    TZ_OGL 1 0
    +

    Below are the defines whose value depends on the build-config:

    + + + + +
    Define Value (Debug) Value (Release) Value (Profile)
    TZ_DEBUG 1 0 0
    +

    Just for clarity, these are preprocessor definitions as in GLSL or C. These are useful if you want your shader to act differently on certain build configurations, but without having to write different shaders.

    +

    +Example Fragment Shader

    +
    shader(type = fragment);
    +
    output(id = 0) vec4 frag_colour;
    +
    +
    void main()
    +
    {
    +
    // Output is a solid colour. Red if we're on Vulkan, otherwise white.
    +
    #if TZ_VULKAN
    +
    frag_colour = vec4(1.0, 0.0, 0.0, 1.0);
    +
    #else
    +
    frag_colour = vec4(1.0, 1.0, 1.0, 1.0);
    +
    #endif
    +
    }
    +

    +Library API

    +

    TZSL ships with a small library providing the essentials. It is a fully documented module: TZSL API Reference

    +

    +IO Blocks

    +

    Below are the input and output blocks for each programmable shader type. Each shader stage has a fixed-set of input and output variables, in the in:: and out:: namespaces respectively. These are not the same as input and output language specifiers.

    + +Vertex Shader + + + + + + + + + + + +
    Variable GLSL Equivalent
    in::vertex_id gl_VertexID
    in::instance_id gl_InstanceID
    in::draw_id gl_DrawID
    out::position gl_Position
    +
    +
    + +Tessellation Control Shader + + + + + + + + + + + + + +
    Variable GLSL Equivalent
    in::input_length gl_PatchVerticesIn
    in::primitive_id gl_PrimitiveID
    in::invocation_id gl_InvocationID
    out::inner_tessellate gl_TessLevelInner
    out::outer_tessellate gl_TessLevelOuter
    +
    +
    + +Tessellation Evaluation Shader + + + + + + + + + + + +
    Variable GLSL Equivalent
    in::tess_coord gl_TessCoord
    in::patch_size gl_PatchVerticesIn
    in::primitive_id gl_PrimitiveID
    out::position gl_Position
    +
    +
    + +Fragment Shader + + + + + + + +
    Variable GLSL Equivalent
    in::fragment_coord gl_FragCoord
    out::fragment_depth gl_FragDepth
    +
    +
    + +Compute Shader + + + + + + + + + + + +
    Variable GLSL Equivalent
    in::workgroup_count gl_NumWorkGroups
    in::workgroup_id gl_WorkGroupID
    in::local_id gl_LocalInvocationID
    in::global_id gl_GlobalInvocationID
    +
    +

    +TZSL Header Imports

    +

    Note that this feature is optional. If you don't like it, you can completely ignore it.

    +

    Say you have a project structure similar to the file tree below:

    + + + + + + + + + + + +
    Projects/MyGame
    CMakeLists.txt
    main.cpp
    my_shader.vertex.tzsl
    my_shader.fragment.tzsl
    +

    Using a header import, you can access the shaders at compile-time within main.cpp.

    +

    +CMakeLists.txt

    +
    add_app(
    +
    TARGET MyGame
    +
    SOURCE_FILES main.cpp
    +
    SHADER_SOURCES
    +
    my_shader.vertex.tzsl
    +
    my_shader.fragment.tzsl
    +
    )
    +

    +main.cpp

    +
    #include "tz/gl/imported_shaders.hpp"
    +
    #include <string_view>
    +
    +
    // Includes the compiled tzsl c++ header within this translation unit.
    +
    // NOTE: This is only doable if you specified the shader files within `add_application` in the build system.
    +
    #include ImportedShaderHeader(my_shader, vertex)
    +
    #include ImportedShaderHeader(my_shader, fragment)
    +
    int main()
    +
    {
    +
    constexpr std::string_view vtx_src = ImportedShaderSource(my_shader, vertex);
    +
    constexpr std::string_view frg_src = ImportedShaderSource(my_shader, fragment);
    +
    // Note: The contents of the string depend on the current render-api. However, this is guaranteed to be compatible with tz::gl::ShaderInfo::set_shader(...).
    +
    // For the curious: In Vulkan, the string contains SPIRV. In OpenGL, the string contains GLSL source.
    +
    }
    +
    #define ImportedShaderSource(shader_name, shader_type)
    Retrieves a token representing a std::string_view which contains the shader's compiled results.
    Definition: imported_shaders.hpp:31
    +

    +

    +Example Shader: tz_dynamic_triangle_demo.fragment.tzsl

    +

    The following is the fragment shader used by tz_dynamic_triangle_demo:

    shader(type = fragment);
    +
    +
    resource(id = 1) const texture tex_sampler[1];
    +
    input(id = 0) vec2 texcoord;
    +
    output(id = 0) vec4 output_colour;
    +
    +
    void main()
    +
    {
    +
    output_colour = texture(tex_sampler[0], texcoord);
    +
    }
    +

    +Analysis

    +
      +
    • The shader contains a type declaration at the top, like all shaders. This informs tzslc that this is a fragment shader.
    • +
    • The shader uses a single resource, an array of samplers with index 1.
    • +
    • The shader has one input and one output, both with index 0.
        +
      • As you might expect, output 0 goes to the colour attachment 0, and input 0 is the first output from the vertex shader.
      • +
      +
    • +
    +
    +
    +
    + + + + diff --git a/shaders__documentation_8hpp_source.html b/shaders__documentation_8hpp_source.html new file mode 100644 index 0000000000..fbcb25c3b9 --- /dev/null +++ b/shaders__documentation_8hpp_source.html @@ -0,0 +1,124 @@ + + + + + + + +Topaz: src/shaders_documentation.hpp Source File + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    Topaz 4.0.0.2 +
    +
    C++20 Graphics Engine
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    shaders_documentation.hpp
    +
    +
    +
    1
    +
    +
    + + + + 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..07765dbfdd --- /dev/null +++ b/stack_8hpp_source.html @@ -0,0 +1,146 @@ + + + + + + + +Topaz: src/tz/core/memory/allocators/stack.hpp Source File + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    Topaz 4.0.0.2 +
    +
    C++20 Graphics Engine
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    stack.hpp
    +
    +
    +
    1#ifndef TOPAZ_CORE_ALLOCATORS_STACK_HPP
    +
    2#define TOPAZ_CORE_ALLOCATORS_STACK_HPP
    +
    3#include "tz/core/memory/allocators/linear.hpp"
    +
    4
    +
    5namespace tz
    +
    6{
    +
    14 template<std::size_t S>
    + +
    16 {
    +
    17 public:
    + +
    19 private:
    +
    20 alignas(alignof(std::max_align_t)) char data[S];
    +
    21 };
    +
    22
    + +
    24}
    +
    25
    +
    26#include "tz/core/memory/allocators/stack.inl"
    +
    27#endif // TOPAZ_CORE_ALLOCATORS_STACK_HPP
    +
    An allocator which operates on a pre-allocated buffer of variable size.
    Definition: linear.hpp:17
    +
    An allocator which has its own fixed-size buffer on the stack from which memory is sub-allocated.
    Definition: stack.hpp:16
    +
    Definition: types.hpp:73
    +
    +
    + + + + diff --git a/static_8hpp_source.html b/static_8hpp_source.html new file mode 100644 index 0000000000..1803e64152 --- /dev/null +++ b/static_8hpp_source.html @@ -0,0 +1,176 @@ + + + + + + + +Topaz: src/tz/core/algorithms/static.hpp Source File + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    Topaz 4.0.0.2 +
    +
    C++20 Graphics Engine
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    static.hpp
    +
    +
    +
    1#include "tz/core/types.hpp"
    +
    2#include <cstdint>
    +
    3#include <tuple>
    +
    4#include <variant>
    +
    5
    +
    6namespace tz
    +
    7{
    +
    8 template<int F, int L>
    + +
    10 {
    +
    11 template<typename Functor>
    +
    12 static inline constexpr void apply(const Functor& f)
    +
    13 {
    +
    14 if(F < L)
    +
    15 {
    +
    16 f(std::integral_constant<int, F>{});
    + +
    18 }
    +
    19 }
    +
    20
    +
    21 template<typename Functor>
    +
    22 void operator()(const Functor& f) const
    +
    23 {
    +
    24 apply(f);
    +
    25 }
    +
    26 };
    +
    27
    +
    41 template<int N>
    +
    42 struct static_for_t<N, N>
    +
    43 {
    +
    44 template<typename Functor>
    +
    45 static inline constexpr void apply([[maybe_unused]] const Functor& f){}
    +
    46 };
    +
    47
    +
    48 template<int F, int L>
    +
    49 inline constexpr static_for_t<F, L> static_for = {};
    +
    50
    +
    58 template<typename needle, typename... haystack>
    +
    59 constexpr bool static_find()
    +
    60 {
    +
    61 bool b = false;
    +
    62 static_for<0, sizeof...(haystack)>([&b]([[maybe_unused]] auto i) constexpr
    +
    63 {
    +
    64 if constexpr(std::is_same<std::decay_t<decltype(std::get<i.value>(std::declval<std::tuple<haystack...>>()))>, needle>::value)
    +
    65 {
    +
    66 b = true;
    +
    67 }
    +
    68 });
    +
    69 return b;
    +
    70 }
    +
    71}
    +
    constexpr bool static_find()
    Check if a needle is found in a haystack at compile-time.
    Definition: static.hpp:59
    +
    Definition: static.hpp:10
    +
    +
    + + + + diff --git a/struct_im_gui_vertex.html b/struct_im_gui_vertex.html new file mode 100644 index 0000000000..ae703e567f --- /dev/null +++ b/struct_im_gui_vertex.html @@ -0,0 +1,123 @@ + + + + + + + +Topaz: ImGuiVertex Struct Reference + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    Topaz 4.0.0.2 +
    +
    C++20 Graphics Engine
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    ImGuiVertex 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..4e07bb857b --- /dev/null +++ b/structstd_1_1hash_3_01tz_1_1vector_3_01_t_00_01_s_01_4_01_4.html @@ -0,0 +1,123 @@ + + + + + + + +Topaz: std::hash< tz::vector< T, S > > Struct Template Reference + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    Topaz 4.0.0.2 +
    +
    C++20 Graphics Engine
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    std::hash< tz::vector< T, S > > Struct Template 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..e57e34cd5e --- /dev/null +++ b/structtz_1_1core_1_1detail_1_1init__state.html @@ -0,0 +1,123 @@ + + + + + + + +Topaz: tz::core::detail::init_state Struct Reference + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    Topaz 4.0.0.2 +
    +
    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..7ac0f47a22 --- /dev/null +++ b/structtz_1_1dbgui_1_1_im_gui_tab_t_z.html @@ -0,0 +1,123 @@ + + + + + + + +Topaz: tz::dbgui::ImGuiTabTZ Struct Reference + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    Topaz 4.0.0.2 +
    +
    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..eb85372fdd --- /dev/null +++ b/structtz_1_1dbgui_1_1_input_delta.html @@ -0,0 +1,123 @@ + + + + + + + +Topaz: tz::dbgui::InputDelta Struct Reference + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    Topaz 4.0.0.2 +
    +
    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..734d9b421a --- /dev/null +++ b/structtz_1_1dbgui_1_1_topaz_platform_data.html @@ -0,0 +1,123 @@ + + + + + + + +Topaz: tz::dbgui::TopazPlatformData Struct Reference + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    Topaz 4.0.0.2 +
    +
    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..1e3f021dc8 --- /dev/null +++ b/structtz_1_1dbgui_1_1_topaz_render_data.html @@ -0,0 +1,123 @@ + + + + + + + +Topaz: tz::dbgui::TopazRenderData Struct Reference + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    Topaz 4.0.0.2 +
    +
    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..76cd2c8805 --- /dev/null +++ b/structtz_1_1dbgui_1_1_topaz_shader_render_data.html @@ -0,0 +1,123 @@ + + + + + + + +Topaz: tz::dbgui::TopazShaderRenderData Struct Reference + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    Topaz 4.0.0.2 +
    +
    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..4963649dc5 --- /dev/null +++ b/structtz_1_1dbgui_1_1init__info.html @@ -0,0 +1,133 @@ + + + + + + + +Topaz: tz::dbgui::init_info Struct Reference + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    Topaz 4.0.0.2 +
    +
    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..dd27f552e0 --- /dev/null +++ b/structtz_1_1detail_1_1callback__type.html @@ -0,0 +1,123 @@ + + + + + + + +Topaz: tz::detail::callback_type Struct Reference + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    Topaz 4.0.0.2 +
    +
    C++20 Graphics Engine
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    tz::detail::callback_type Struct Reference
    +
    +
    +
    +
    + + + + diff --git a/structtz_1_1detail_1_1format__string.html b/structtz_1_1detail_1_1format__string.html new file mode 100644 index 0000000000..1d039aadc9 --- /dev/null +++ b/structtz_1_1detail_1_1format__string.html @@ -0,0 +1,130 @@ + + + + + + + +Topaz: tz::detail::format_string Struct Reference + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    Topaz 4.0.0.2 +
    +
    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..f9ffdf8fba --- /dev/null +++ b/structtz_1_1detail_1_1job__handle__tag.html @@ -0,0 +1,123 @@ + + + + + + + +Topaz: tz::detail::job_handle_tag Struct Reference + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    Topaz 4.0.0.2 +
    +
    C++20 Graphics Engine
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    tz::detail::job_handle_tag Struct Reference
    +
    +
    +
    +
    + + + + diff --git a/structtz_1_1detail_1_1source__loc.html b/structtz_1_1detail_1_1source__loc.html new file mode 100644 index 0000000000..d8ca8d4b6e --- /dev/null +++ b/structtz_1_1detail_1_1source__loc.html @@ -0,0 +1,123 @@ + + + + + + + +Topaz: tz::detail::source_loc Struct Reference + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    Topaz 4.0.0.2 +
    +
    C++20 Graphics Engine
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    tz::detail::source_loc Struct Reference
    +
    +
    +
    +
    + + + + diff --git a/structtz_1_1draw_1_1_draw_indexed_indirect_command.html b/structtz_1_1draw_1_1_draw_indexed_indirect_command.html new file mode 100644 index 0000000000..9eec155e80 --- /dev/null +++ b/structtz_1_1draw_1_1_draw_indexed_indirect_command.html @@ -0,0 +1,123 @@ + + + + + + + +Topaz: tz::draw::DrawIndexedIndirectCommand Struct Reference + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    Topaz 4.0.0.2 +
    +
    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..9b979cf093 --- /dev/null +++ b/structtz_1_1draw_1_1_draw_indirect_command.html @@ -0,0 +1,123 @@ + + + + + + + +Topaz: tz::draw::DrawIndirectCommand Struct Reference + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    Topaz 4.0.0.2 +
    +
    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..496649c624 --- /dev/null +++ b/structtz_1_1engine__info.html @@ -0,0 +1,174 @@ + + + + + + + +Topaz: tz::engine_info Struct Reference + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    Topaz 4.0.0.2 +
    +
    C++20 Graphics Engine
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + + +
    + +

    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 Functions

    (Note that these are not member functions.)

    +
    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_1game__info.html b/structtz_1_1game__info.html new file mode 100644 index 0000000000..40487c20e4 --- /dev/null +++ b/structtz_1_1game__info.html @@ -0,0 +1,172 @@ + + + + + + + +Topaz: tz::game_info Struct Reference + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    Topaz 4.0.0.2 +
    +
    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..2569b9aee1 --- /dev/null +++ b/structtz_1_1gl_1_1buffer__info.html @@ -0,0 +1,123 @@ + + + + + + + +Topaz: tz::gl::buffer_info Struct Reference + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    Topaz 4.0.0.2 +
    +
    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..ad555e3848 --- /dev/null +++ b/structtz_1_1gl_1_1detail_1_1renderer__tag.html @@ -0,0 +1,123 @@ + + + + + + + +Topaz: tz::gl::detail::renderer_tag Struct Reference + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    Topaz 4.0.0.2 +
    +
    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..655e2cf8fe --- /dev/null +++ b/structtz_1_1gl_1_1device__command__pool_1_1fingerprint__info__t.html @@ -0,0 +1,123 @@ + + + + + + + +Topaz: tz::gl::device_command_pool::fingerprint_info_t Struct Reference + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    Topaz 4.0.0.2 +
    +
    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..79ab7f105f --- /dev/null +++ b/structtz_1_1gl_1_1edit__side__effects.html @@ -0,0 +1,123 @@ + + + + + + + +Topaz: tz::gl::edit_side_effects Struct Reference + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    Topaz 4.0.0.2 +
    +
    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..1d6bc6b400 --- /dev/null +++ b/structtz_1_1gl_1_1event.html @@ -0,0 +1,123 @@ + + + + + + + +Topaz: tz::gl::event Struct Reference + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    Topaz 4.0.0.2 +
    +
    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..1cc67046cd --- /dev/null +++ b/structtz_1_1gl_1_1image__info.html @@ -0,0 +1,152 @@ + + + + + + + +Topaz: tz::gl::image_info Struct Reference + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    Topaz 4.0.0.2 +
    +
    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_fixed
     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..dd19542a1d --- /dev/null +++ b/structtz_1_1gl_1_1image__output__info.html @@ -0,0 +1,123 @@ + + + + + + + +Topaz: tz::gl::image_output_info Struct Reference + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    Topaz 4.0.0.2 +
    +
    C++20 Graphics Engine
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    tz::gl::image_output_info Struct Reference
    +
    +
    +
    +
    + + + + diff --git a/structtz_1_1gl_1_1ogl2_1_1_format_data.html b/structtz_1_1gl_1_1ogl2_1_1_format_data.html new file mode 100644 index 0000000000..4a088bf462 --- /dev/null +++ b/structtz_1_1gl_1_1ogl2_1_1_format_data.html @@ -0,0 +1,131 @@ + + + + + + + +Topaz: tz::gl::ogl2::FormatData Struct Reference + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    Topaz 4.0.0.2 +
    +
    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..a19bba8039 --- /dev/null +++ b/structtz_1_1gl_1_1ogl2_1_1buffer__info.html @@ -0,0 +1,148 @@ + + + + + + + +Topaz: tz::gl::ogl2::buffer_info Struct Reference + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    Topaz 4.0.0.2 +
    +
    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..378d1bb4fb --- /dev/null +++ b/structtz_1_1gl_1_1ogl2_1_1draw__indexed__indirect__command.html @@ -0,0 +1,123 @@ + + + + + + + +Topaz: tz::gl::ogl2::draw_indexed_indirect_command Struct Reference + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    Topaz 4.0.0.2 +
    +
    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..7719ca0d13 --- /dev/null +++ b/structtz_1_1gl_1_1ogl2_1_1draw__indirect__command.html @@ -0,0 +1,123 @@ + + + + + + + +Topaz: tz::gl::ogl2::draw_indirect_command Struct Reference + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    Topaz 4.0.0.2 +
    +
    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..e5ecdc89e1 --- /dev/null +++ b/structtz_1_1gl_1_1ogl2_1_1framebuffer__info.html @@ -0,0 +1,148 @@ + + + + + + + +Topaz: tz::gl::ogl2::framebuffer_info Struct Reference + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    Topaz 4.0.0.2 +
    +
    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..ee9ee838ac --- /dev/null +++ b/structtz_1_1gl_1_1ogl2_1_1image__info.html @@ -0,0 +1,148 @@ + + + + + + + +Topaz: tz::gl::ogl2::image_info Struct Reference + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    Topaz 4.0.0.2 +
    +
    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..5efb16960a --- /dev/null +++ b/structtz_1_1gl_1_1ogl2_1_1render__buffer__info.html @@ -0,0 +1,137 @@ + + + + + + + +Topaz: tz::gl::ogl2::render_buffer_info Struct Reference + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    Topaz 4.0.0.2 +
    +
    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..cbf194f382 --- /dev/null +++ b/structtz_1_1gl_1_1ogl2_1_1sampler.html @@ -0,0 +1,156 @@ + + + + + + + +Topaz: tz::gl::ogl2::sampler Struct Reference + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    Topaz 4.0.0.2 +
    +
    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..81ef158cc2 --- /dev/null +++ b/structtz_1_1gl_1_1ogl2_1_1shader_1_1link__result.html @@ -0,0 +1,144 @@ + + + + + + + +Topaz: tz::gl::ogl2::shader::link_result Struct Reference + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    Topaz 4.0.0.2 +
    +
    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..80c0dc21ea --- /dev/null +++ b/structtz_1_1gl_1_1ogl2_1_1shader__info.html @@ -0,0 +1,140 @@ + + + + + + + +Topaz: tz::gl::ogl2::shader_info Struct Reference + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    Topaz 4.0.0.2 +
    +
    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..6c92c8d1ad --- /dev/null +++ b/structtz_1_1gl_1_1ogl2_1_1shader__module_1_1compile__result.html @@ -0,0 +1,144 @@ + + + + + + + +Topaz: tz::gl::ogl2::shader_module::compile_result Struct Reference + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    Topaz 4.0.0.2 +
    +
    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..156970a4f6 --- /dev/null +++ b/structtz_1_1gl_1_1ogl2_1_1shader__module__info.html @@ -0,0 +1,144 @@ + + + + + + + +Topaz: tz::gl::ogl2::shader_module_info Struct Reference + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    Topaz 4.0.0.2 +
    +
    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..62a8a165c1 --- /dev/null +++ b/structtz_1_1gl_1_1overloaded.html @@ -0,0 +1,129 @@ + + + + + + + +Topaz: tz::gl::overloaded< Ts > Struct Template Reference + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    Topaz 4.0.0.2 +
    +
    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..08354e987e577a1e9ee8ac7534c39cc2b0036ca0 GIT binary patch literal 569 zcmeAS@N?(olHy`uVBq!ia0vp^6M#5?gBeI3Ea0&NQqloFA+G=b{|7Q(y!l$%e`vXd zfo6fk^fNCG95?_J51w>+1yGK&B*-tA0mugfbEer>7#J9jc)B=-R4~4sd$Dh|0guaZ z{kcE?>+chv+8`{HKXqyDmZGDYMk)mxk}Fzg-t;=)Q6wAGp`r}J%UXT~pSrj=+M}q+ zoP(Er!jt|p9J&4RPZPSWoq{8OxwiG#n9I+pH@-ektcY{hoxPF{lhzyQUb*w{w`#TH zi^Zy+H=i@TGVM*W)6&!5s^wzCbYJmL>rs);tG<6<@rsV-q&d&0@tm#K@Ytlb|C@^B zL?;!=jf*DCyy?VnK-Y#LK{ZUc%0|pM%J;?o^HFZ6Ia8-II{0ugI=B#tkK7kEGLGh) zp|aMQ%QMIYh>s{<`CfH!oAnaA8!qSPtCap|3aGiMv_&)gUi6!EyYsR(?s>^I5oKQw zP7E;j_HFaAGN1gX?Cws*uX* + + + + + + +Topaz: tz::gl::render_state Struct Reference + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    Topaz 4.0.0.2 +
    +
    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..875b940764 --- /dev/null +++ b/structtz_1_1gl_1_1render__state_1_1_compute.html @@ -0,0 +1,133 @@ + + + + + + + +Topaz: tz::gl::render_state::Compute Struct Reference + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    Topaz 4.0.0.2 +
    +
    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..d846aca29d --- /dev/null +++ b/structtz_1_1gl_1_1render__state_1_1_graphics.html @@ -0,0 +1,149 @@ + + + + + + + +Topaz: tz::gl::render_state::Graphics Struct Reference + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    Topaz 4.0.0.2 +
    +
    C++20 Graphics Engine
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    + +
    tz::gl::render_state::Graphics Struct Reference
    +
    +
    + + + + + + + + + + + + + + + + + +

    +Data Fields

    +resource_handle index_buffer = tz::nullhand
     If an index buffer is used, this refers to the buffer resource. It must have resource_flag::index_buffer. If there is no index buffer, this is nullhand.
     
    +resource_handle draw_buffer = tz::nullhand
     If a draw-indirect buffer is used, this refers to the buffer resource. It must have resource_flag::draw_indirect_buffer. If there is no draw buffer, this is nullhand.
     
    +tz::vec4 clear_colour = tz::vec4::zero()
     Normalised RGBA floating point colour.
     
    +std::size_t tri_count = 0
     number of triangles to be rendered in the next draw call.
     
    +bool wireframe_mode = false
     whether wireframe mode is enabled or not.
     
    +
    +
    + + + + diff --git a/structtz_1_1gl_1_1renderer__edit.html b/structtz_1_1gl_1_1renderer__edit.html new file mode 100644 index 0000000000..03c9061e87 --- /dev/null +++ b/structtz_1_1gl_1_1renderer__edit.html @@ -0,0 +1,147 @@ + + + + + + + +Topaz: tz::gl::renderer_edit Struct Reference + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    Topaz 4.0.0.2 +
    +
    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  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..b5338924c2 --- /dev/null +++ b/structtz_1_1gl_1_1renderer__edit_1_1buffer__resize.html @@ -0,0 +1,144 @@ + + + + + + + +Topaz: tz::gl::renderer_edit::buffer_resize Struct Reference + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    Topaz 4.0.0.2 +
    +
    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..ee9fccc276 --- /dev/null +++ b/structtz_1_1gl_1_1renderer__edit_1_1compute__config.html @@ -0,0 +1,140 @@ + + + + + + + +Topaz: tz::gl::renderer_edit::compute_config Struct Reference + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    Topaz 4.0.0.2 +
    +
    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..ed7bbbbca2 --- /dev/null +++ b/structtz_1_1gl_1_1renderer__edit_1_1image__resize.html @@ -0,0 +1,144 @@ + + + + + + + +Topaz: tz::gl::renderer_edit::image_resize Struct Reference + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    Topaz 4.0.0.2 +
    +
    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_1render__config.html b/structtz_1_1gl_1_1renderer__edit_1_1render__config.html new file mode 100644 index 0000000000..20c5f905a7 --- /dev/null +++ b/structtz_1_1gl_1_1renderer__edit_1_1render__config.html @@ -0,0 +1,140 @@ + + + + + + + +Topaz: tz::gl::renderer_edit::render_config Struct Reference + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    Topaz 4.0.0.2 +
    +
    C++20 Graphics Engine
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    + +
    tz::gl::renderer_edit::render_config Struct Reference
    +
    +
    + +

    Represents an edit to the fixed-function renderer state. + More...

    + +

    #include <renderer.hpp>

    + + + + + +

    +Data Fields

    +std::optional< bool > wireframe_mode = std::nullopt
     Whether triangles should only have their outlines drawn, instead of filled.
     
    +

    Detailed Description

    +

    Represents an edit to the fixed-function renderer state.

    +
    +
    + + + + diff --git a/structtz_1_1gl_1_1renderer__edit_1_1resource__reference.html b/structtz_1_1gl_1_1renderer__edit_1_1resource__reference.html new file mode 100644 index 0000000000..1ff1a39725 --- /dev/null +++ b/structtz_1_1gl_1_1renderer__edit_1_1resource__reference.html @@ -0,0 +1,123 @@ + + + + + + + +Topaz: tz::gl::renderer_edit::resource_reference Struct Reference + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    Topaz 4.0.0.2 +
    +
    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..bd88c02492 --- /dev/null +++ b/structtz_1_1gl_1_1renderer__edit_1_1resource__write.html @@ -0,0 +1,123 @@ + + + + + + + +Topaz: tz::gl::renderer_edit::resource_write Struct Reference + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    Topaz 4.0.0.2 +
    +
    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..b6ec75376b --- /dev/null +++ b/structtz_1_1gl_1_1renderer__edit_1_1scissor.html @@ -0,0 +1,123 @@ + + + + + + + +Topaz: tz::gl::renderer_edit::scissor Struct Reference + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    Topaz 4.0.0.2 +
    +
    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..1470ff2de6 --- /dev/null +++ b/structtz_1_1gl_1_1renderer__ogl__base.html @@ -0,0 +1,132 @@ + + + + + + + +Topaz: tz::gl::renderer_ogl_base Struct Reference + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    Topaz 4.0.0.2 +
    +
    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..9f7da8c9c6f86fb37d147b269a2cd5a06913ee5c GIT binary patch literal 660 zcmeAS@N?(olHy`uVBq!ia0vp^(}6gEgBeIFuMu|#QqloFA+G=b{|7Q(y!l$%e`vXd zfo6fk^fNCG95?_J51w>+1yGK&B*-tA0mugfbEer>7#Nu3JzX3_Dj46+eZB6n0#8f3 zr*0fW_(DtI9d-s&U#u*Q_Z#>a=;z)E*^terW=B?B`o&c2BnC z{d}*F=Em;NtL{s5pV?Dx|2=Zo{03E{)|_Uugj{(yHH*);kA1(sGWdP?giFcR)$1!J zvaQ~BbGprsANSi!xA}FiPMyyGB<|XpklZU@Ha|{}$+b4#Ft23em9jr-3)-{iCoV59 zj@3=&{S%WJ_RZ|^Ce@(l&e^>>%io>*c>2$+*M?6kW%K>k1ope$j_;Q)*(|5J^1|i# zCb|8_>mHe?tn{BR#t4KZY+q&U!!=??dhzq91OOzVi+D=f5ODDUrn6hhv`m+1M5$+GSvC% zF?`4_Vr+!dYTjhd`9dDwkM_>5-~UF|dy@Utt@q#m&YS#X|K%r2 ip8MIJbr~M}_=SCgdChNj?!Tb)$KdJe=d#Wzp$P!bt3rMN literal 0 HcmV?d00001 diff --git a/structtz_1_1gl_1_1renderer__output__manager_1_1render__target__t.html b/structtz_1_1gl_1_1renderer__output__manager_1_1render__target__t.html new file mode 100644 index 0000000000..bd7b20aa22 --- /dev/null +++ b/structtz_1_1gl_1_1renderer__output__manager_1_1render__target__t.html @@ -0,0 +1,123 @@ + + + + + + + +Topaz: tz::gl::renderer_output_manager::render_target_t Struct Reference + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    Topaz 4.0.0.2 +
    +
    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..55f0efd622 --- /dev/null +++ b/structtz_1_1gl_1_1renderer__vulkan__base.html @@ -0,0 +1,137 @@ + + + + + + + +Topaz: tz::gl::renderer_vulkan_base Struct Reference + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    Topaz 4.0.0.2 +
    +
    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..58951714e478e040bc73c99ac0a6aa8c632c419e GIT binary patch literal 2658 zcmcguc{r4N8y-uPgY;DzL}kqqVKT{@Y-1R*9NC61uicOsvJ2HIgc%IRb`BwXV@YW& zoyhoiV;d}Mvy3YCU^w0NR*K_~w_j&(#uIu^T&;7g)ZBS-H0^$M? z2t){BZfpyl6A%cO?_nO0(eBor1rG@uOM8>Oy*-dFQ(4&b*A$5itl*VEEmX5wZfJX4_D$K9E5TLa>6q{x95Uzglh*zsCBzhL-FX)0<%h7?l)hj$wjCwVuT8gE6oHNx(~ra8;}fQjNp z?^0B4Zw}aXXA-u3rdaxq&-wt%R?7Oi0p^W$Z+>tdf?g8gZPr$(ttz_N7h%BGcgh}k zsmVWjBXIGle_&3;>0-I+QbuMiSsj}?i5(fOqT7>Cooc0}O?|#ur9!k%Lo$)2=nZ`_ z!zUfvo>=LwYow)QuDa#e<`lHxEz?gwO3B@c@h4&-GUC4xka>8*7U<5|aqRoZ6(w76iXx(v=$9rkOb7y}r zn<6YSyf=kEi?@H8WGSXy`GOYaXcEurZF@*MoEZj~MLSDKd`DB6fPHOz=|&=BVNgLi zrTt3dP15#T-h0kw#12*{v$jKjF*A?4G$^;GkY&}+a+Yg45#l`<+7w4IaFS<@vSNZc!Pud0H*tV>= za=0q}xe;dk)MzWL1Gc(ogXgkmkDh@hNXCj)w8a$HR2@kOh;m=8iRPhJ280E1g7W!& z!Znl=f>~B2WLSFjvCgUj!OoohC<4wUU;IUOMN3cC&s+$(c_;OemdeEOK%1rz$}6}9 z?$Y<(!v2*FZwZ`BZreBvLK);@$w4hPaNMwTm%7a`T!(EsN0qkRDMp&stzJv=SJ~XG@OM>1g(9tSqg@aSTE;Sk zvi;<`8r1OTedW7zYPS#78`SBVw8Sq!6gJw|$V;x)G;!_~?d*XUnty6TJNemzw7eLU zqfCOLwphZ2{m`Qr9saj5Vi*%;KAa(*LtTfS#M~e${8r*SkBbb>k`1`6fgs5#;AKJU z_{XG-ank5;#L6)c5L_OH2esU!zYV}FJO)*O7PMJb%j7!2j#)Gz`Q@W6*3t92yMHyI zsh5#fErG2IB_I}3FyuuFGTMIQ zTJP`(dCZ6JEkMMN@pp=G^qrU&G%1ohVct5SkczNum91j8U%+nD$55A~W*c>?LTG7E zJwL2Bw&diM#oZtmucf(&@f3{8X(U*y8W)e+u9KuVt^)1GO;H+d(Mqw+ z7JhE;ldZt-5^|LM0!tj|__CCo?;tDD_e5U1MJ0n^3xV1k z)FSkLTcCG8MovZ$EJx(5!+X)8j;?O!qA`olPkl>A>2wvL65` z^GAm5yl}(SR{lv@L4?3YixkzOT`VYAudWkL-g~(vgQ`w(1;q7cQoH3h$FK+o9iybT zQMWX$<`$OKzN_}E*J`W$FeHl~YyIhI{AlY?v*-kz7eQHvG5HRp3R8^9<6A_E`-c#9kX3Qn-9jk+x e{hvQ@j>>cW6u~Qld<6atLJ%e><2oac#Qy?ud>-Zi literal 0 HcmV?d00001 diff --git a/structtz_1_1gl_1_1schedule.html b/structtz_1_1gl_1_1schedule.html new file mode 100644 index 0000000000..12837773ac --- /dev/null +++ b/structtz_1_1gl_1_1schedule.html @@ -0,0 +1,123 @@ + + + + + + + +Topaz: tz::gl::schedule Struct Reference + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    Topaz 4.0.0.2 +
    +
    C++20 Graphics Engine
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    tz::gl::schedule Struct Reference
    +
    +
    +
    +
    + + + + diff --git a/structtz_1_1gl_1_1scissor__region.html b/structtz_1_1gl_1_1scissor__region.html new file mode 100644 index 0000000000..0da0f7186b --- /dev/null +++ b/structtz_1_1gl_1_1scissor__region.html @@ -0,0 +1,123 @@ + + + + + + + +Topaz: tz::gl::scissor_region Struct Reference + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    Topaz 4.0.0.2 +
    +
    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..8c88ff0619 --- /dev/null +++ b/structtz_1_1gl_1_1shader__meta.html @@ -0,0 +1,123 @@ + + + + + + + +Topaz: tz::gl::shader_meta Struct Reference + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    Topaz 4.0.0.2 +
    +
    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..8560412733 --- /dev/null +++ b/structtz_1_1gl_1_1timeline__t.html @@ -0,0 +1,129 @@ + + + + + + + +Topaz: tz::gl::timeline_t Struct Reference + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    Topaz 4.0.0.2 +
    +
    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..c7d4b5dd53330219fc89c7763b92def20d16b44b GIT binary patch literal 572 zcmeAS@N?(olHy`uVBq!ia0vp^l|UT8!3-q1+O=ANlyrbki0l9V|AEXGZ@!lHA6jl< zpjjX>{mhF42Mz$mgC|{H0hHq`3GxeO0P?}WoN4wI1_s9Co-U3d6^w7^-ko+>fup5; zw$c0lM`p|OCis}0-F9p9SDEF#8Z})i_ncgobStb{C2MkG)vC2$44+)Fj6eH6`)=#X z9edjM%&zd7_A;^R^tATeM}IbC$lW;h`Mgcok(jruySX=?3k%Jbjtp7*)9>r~*7K{s zX>T<+I&bgEiOxTag8p?+4pL)MT$eljd#<43ZPV#f-b`t?wN$yJCO1*nf8C*1dh6)+Oqp85OPexCDp zbE228+k5kJ&NGKej_K86mu5{!jaKN4oB5*bSIV}(LEVg!t522WQ%mvv4FO#oZ<5t;x1 literal 0 HcmV?d00001 diff --git a/structtz_1_1gl_1_1viewport__region.html b/structtz_1_1gl_1_1viewport__region.html new file mode 100644 index 0000000000..0cac9334af --- /dev/null +++ b/structtz_1_1gl_1_1viewport__region.html @@ -0,0 +1,123 @@ + + + + + + + +Topaz: tz::gl::viewport_region Struct Reference + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    Topaz 4.0.0.2 +
    +
    C++20 Graphics Engine
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    tz::gl::viewport_region Struct Reference
    +
    +
    +
    +
    + + + + diff --git a/structtz_1_1gl_1_1vk2_1_1_attachment.html b/structtz_1_1gl_1_1vk2_1_1_attachment.html new file mode 100644 index 0000000000..f2a18add99 --- /dev/null +++ b/structtz_1_1gl_1_1vk2_1_1_attachment.html @@ -0,0 +1,168 @@ + + + + + + + +Topaz: tz::gl::vk2::Attachment Struct Reference + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    Topaz 4.0.0.2 +
    +
    C++20 Graphics Engine
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + + +
    + +

    Specifies some data about an attachment. + More...

    + +

    #include <render_pass.hpp>

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

    +Data Fields

    +image_format format = image_format::undefined
     Specifies the format of the attachment. When used in a RenderPass, its LogicalDevice must support this format. See PhysicalDevice::supports_image_colour_format.
     
    +SampleCount sample_count = SampleCount::One
     Specifies the number of samples per pixel. See SampleCount.
     
    +LoadOp colour_depth_load = LoadOp::Clear
     Specifies load operation for colour and depth when it is first used at the beginning of the subpass. See LoadOp.
     
    +StoreOp colour_depth_store = StoreOp::Store
     Specifies store operation for colour and depth when it is last used at the end of the subpass. See StoreOp.
     
    +LoadOp stencil_load = LoadOp::DontCare
     Specifies load operation for stencil when it is first used at the beginning of the subpass. See LoadOp.
     
    +StoreOp stencil_store = StoreOp::DontCare
     Specifies store operation for stencil when it is last used at the end of the subpass. See StoreOp.
     
    +ImageLayout initial_layout = ImageLayout::Undefined
     Specifies what the layout the attached image will be in when render pass begins.
     
    +ImageLayout final_layout = ImageLayout::Undefined
     Specifies what the layout the attached image will be in when the render pass ends.
     
    +

    Detailed Description

    +

    Specifies some data about an attachment.

    +
    +
    + + + + diff --git a/structtz_1_1gl_1_1vk2_1_1_colour_blend_state.html b/structtz_1_1gl_1_1vk2_1_1_colour_blend_state.html new file mode 100644 index 0000000000..a2279b6c69 --- /dev/null +++ b/structtz_1_1gl_1_1vk2_1_1_colour_blend_state.html @@ -0,0 +1,130 @@ + + + + + + + +Topaz: tz::gl::vk2::ColourBlendState Struct Reference + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    Topaz 4.0.0.2 +
    +
    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..89be3bb860 --- /dev/null +++ b/structtz_1_1gl_1_1vk2_1_1_command_buffer_data.html @@ -0,0 +1,123 @@ + + + + + + + +Topaz: tz::gl::vk2::CommandBufferData Struct Reference + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    Topaz 4.0.0.2 +
    +
    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..055e9cc7ae --- /dev/null +++ b/structtz_1_1gl_1_1vk2_1_1_command_pool_1_1_allocation.html @@ -0,0 +1,140 @@ + + + + + + + +Topaz: tz::gl::vk2::CommandPool::Allocation Struct Reference + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    Topaz 4.0.0.2 +
    +
    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..83695a7f00 --- /dev/null +++ b/structtz_1_1gl_1_1vk2_1_1_command_pool_1_1_allocation_result.html @@ -0,0 +1,160 @@ + + + + + + + +Topaz: tz::gl::vk2::CommandPool::AllocationResult Struct Reference + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    Topaz 4.0.0.2 +
    +
    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..4eb905b768 --- /dev/null +++ b/structtz_1_1gl_1_1vk2_1_1_command_pool_info.html @@ -0,0 +1,144 @@ + + + + + + + +Topaz: tz::gl::vk2::CommandPoolInfo Struct Reference + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    Topaz 4.0.0.2 +
    +
    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..e823476a3e --- /dev/null +++ b/structtz_1_1gl_1_1vk2_1_1_compute_pipeline_info.html @@ -0,0 +1,123 @@ + + + + + + + +Topaz: tz::gl::vk2::ComputePipelineInfo Struct Reference + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    Topaz 4.0.0.2 +
    +
    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..fd3554f524 --- /dev/null +++ b/structtz_1_1gl_1_1vk2_1_1_depth_stencil_state.html @@ -0,0 +1,172 @@ + + + + + + + +Topaz: tz::gl::vk2::DepthStencilState Struct Reference + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    Topaz 4.0.0.2 +
    +
    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..7ae2f780e9 --- /dev/null +++ b/structtz_1_1gl_1_1vk2_1_1_descriptor_data.html @@ -0,0 +1,123 @@ + + + + + + + +Topaz: tz::gl::vk2::DescriptorData Struct Reference + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    Topaz 4.0.0.2 +
    +
    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..519b6df15c --- /dev/null +++ b/structtz_1_1gl_1_1vk2_1_1_descriptor_layout_info.html @@ -0,0 +1,167 @@ + + + + + + + +Topaz: tz::gl::vk2::DescriptorLayoutInfo Struct Reference + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    Topaz 4.0.0.2 +
    +
    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..b406abb0a6 --- /dev/null +++ b/structtz_1_1gl_1_1vk2_1_1_descriptor_layout_info_1_1_binding_info.html @@ -0,0 +1,141 @@ + + + + + + + +Topaz: tz::gl::vk2::DescriptorLayoutInfo::BindingInfo Struct Reference + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    Topaz 4.0.0.2 +
    +
    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..020ee6377f --- /dev/null +++ b/structtz_1_1gl_1_1vk2_1_1_descriptor_pool_1_1_allocation.html @@ -0,0 +1,140 @@ + + + + + + + +Topaz: tz::gl::vk2::DescriptorPool::Allocation Struct Reference + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    Topaz 4.0.0.2 +
    +
    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..2602640195 --- /dev/null +++ b/structtz_1_1gl_1_1vk2_1_1_descriptor_pool_1_1_allocation_result.html @@ -0,0 +1,211 @@ + + + + + + + +Topaz: tz::gl::vk2::DescriptorPool::AllocationResult Struct Reference + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    Topaz 4.0.0.2 +
    +
    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..2b90e18f27 --- /dev/null +++ b/structtz_1_1gl_1_1vk2_1_1_descriptor_pool_info.html @@ -0,0 +1,231 @@ + + + + + + + +Topaz: tz::gl::vk2::DescriptorPoolInfo Struct Reference + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    Topaz 4.0.0.2 +
    +
    C++20 Graphics Engine
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + + +
    + +

    Specifies creation flags for a descriptor pool. + More...

    + +

    #include <descriptors.hpp>

    + + + + + +

    +Data Structures

    struct  PoolLimits
     Structure specifying limits for a DescriptorPool. More...
     
    + + + + +

    +Public Member Functions

    bool has_valid_device () const
     Query as to whether the provided LogicalDevice is valid.
     
    + + + + +

    +Static Public Member Functions

    static DescriptorPoolInfo to_fit_layout (const DescriptorLayout &descriptor_layout, std::size_t quantity)
     Create a PoolInfo large enough such that quantity descriptor sets each matching layout can be allocated.
     
    + + + + + + + +

    +Data Fields

    +PoolLimits limits
     Specifies the limits for the created pool.
     
    +const LogicalDevicelogical_device
     LogicalDevice which will be used to create the pool.
     
    +

    Detailed Description

    +

    Specifies creation flags for a descriptor pool.

    +

    Member Function Documentation

    + +

    ◆ has_valid_device()

    + +
    +
    + + + + + + + +
    bool tz::gl::vk2::DescriptorPoolInfo::has_valid_device () const
    +
    + +

    Query as to whether the provided LogicalDevice is valid.

    +

    This is the case if the LogicalDevice is not nullptr nor a null device.

    + +
    +
    + +

    ◆ to_fit_layout()

    + +
    +
    + + + + + +
    + + + + + + + + + + + + + + + + + + +
    DescriptorPoolInfo tz::gl::vk2::DescriptorPoolInfo::to_fit_layout (const DescriptorLayoutdescriptor_layout,
    std::size_t quantity 
    )
    +
    +static
    +
    + +

    Create a PoolInfo large enough such that quantity descriptor sets each matching layout can be allocated.

    +
    Parameters
    + + + +
    descriptor_layoutLayout from which the capacities of the pool will be specified.
    quantitynumber of sets using layout which can fit in the pool.
    +
    +
    + +
    +
    +
    +
    + + + + diff --git a/structtz_1_1gl_1_1vk2_1_1_descriptor_pool_info_1_1_pool_limits.html b/structtz_1_1gl_1_1vk2_1_1_descriptor_pool_info_1_1_pool_limits.html new file mode 100644 index 0000000000..476cf69c46 --- /dev/null +++ b/structtz_1_1gl_1_1vk2_1_1_descriptor_pool_info_1_1_pool_limits.html @@ -0,0 +1,148 @@ + + + + + + + +Topaz: tz::gl::vk2::DescriptorPoolInfo::PoolLimits Struct Reference + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    Topaz 4.0.0.2 +
    +
    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..6158f43191 --- /dev/null +++ b/structtz_1_1gl_1_1vk2_1_1_descriptor_set_1_1_write.html @@ -0,0 +1,162 @@ + + + + + + + +Topaz: tz::gl::vk2::DescriptorSet::Write Struct Reference + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    Topaz 4.0.0.2 +
    +
    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..f5326f7440 --- /dev/null +++ b/structtz_1_1gl_1_1vk2_1_1_descriptor_set_1_1_write_1_1_buffer_write_info.html @@ -0,0 +1,148 @@ + + + + + + + +Topaz: tz::gl::vk2::DescriptorSet::Write::BufferWriteInfo Struct Reference + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    Topaz 4.0.0.2 +
    +
    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..f7eb8c73a8 --- /dev/null +++ b/structtz_1_1gl_1_1vk2_1_1_descriptor_set_1_1_write_1_1_image_write_info.html @@ -0,0 +1,144 @@ + + + + + + + +Topaz: tz::gl::vk2::DescriptorSet::Write::ImageWriteInfo Struct Reference + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    Topaz 4.0.0.2 +
    +
    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..dc4e957a47 --- /dev/null +++ b/structtz_1_1gl_1_1vk2_1_1_dynamic_rendering_run_info.html @@ -0,0 +1,123 @@ + + + + + + + +Topaz: tz::gl::vk2::DynamicRenderingRunInfo Struct Reference + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    Topaz 4.0.0.2 +
    +
    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..4bd7a071da --- /dev/null +++ b/structtz_1_1gl_1_1vk2_1_1_dynamic_state.html @@ -0,0 +1,130 @@ + + + + + + + +Topaz: tz::gl::vk2::DynamicState Struct Reference + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    Topaz 4.0.0.2 +
    +
    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..98130bd93f --- /dev/null +++ b/structtz_1_1gl_1_1vk2_1_1_fence_info.html @@ -0,0 +1,144 @@ + + + + + + + +Topaz: tz::gl::vk2::FenceInfo Struct Reference + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    Topaz 4.0.0.2 +
    +
    C++20 Graphics Engine
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + + +
    + +

    Specifies creation flags for a Fence. + More...

    + +

    #include <fence.hpp>

    + + + + + + + + +

    +Data Fields

    +const LogicalDevicedevice
     Owning LogicalDevice. Must not be null.
     
    +bool initially_signalled = false
     True if the Fence should initially be signalled, otherwise false. By default, this is false.
     
    +

    Detailed Description

    +

    Specifies creation flags for a Fence.

    +
    +
    + + + + diff --git a/structtz_1_1gl_1_1vk2_1_1_framebuffer_data.html b/structtz_1_1gl_1_1vk2_1_1_framebuffer_data.html new file mode 100644 index 0000000000..53fe4da72b --- /dev/null +++ b/structtz_1_1gl_1_1vk2_1_1_framebuffer_data.html @@ -0,0 +1,123 @@ + + + + + + + +Topaz: tz::gl::vk2::FramebufferData Struct Reference + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    Topaz 4.0.0.2 +
    +
    C++20 Graphics Engine
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    tz::gl::vk2::FramebufferData Struct Reference
    +
    +
    +
    +
    + + + + diff --git a/structtz_1_1gl_1_1vk2_1_1_framebuffer_info.html b/structtz_1_1gl_1_1vk2_1_1_framebuffer_info.html new file mode 100644 index 0000000000..55cb4b7cb5 --- /dev/null +++ b/structtz_1_1gl_1_1vk2_1_1_framebuffer_info.html @@ -0,0 +1,156 @@ + + + + + + + +Topaz: tz::gl::vk2::FramebufferInfo Struct Reference + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    Topaz 4.0.0.2 +
    +
    C++20 Graphics Engine
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + + +
    + +

    Specifies creation flags for a Framebuffer. + More...

    + +

    #include <framebuffer.hpp>

    + + + + + +

    +Public Member Functions

    +bool valid () const
     Query as to whether this info is valid and can be used to create a Framebuffer.
     
    + + + + + + + + + + +

    +Data Fields

    +const RenderPassrender_pass
     RenderPass that will target the frame buffer.
     
    +tz::basic_list< ImageView * > attachments
     List of output attachments from the RenderPass.
     
    +tz::vector< std::uint32_t, 2 > dimensions
     Dimensions of the frame buffer.
     
    +

    Detailed Description

    +

    Specifies creation flags for a Framebuffer.

    +
    +
    + + + + diff --git a/structtz_1_1gl_1_1vk2_1_1_graphics_pipeline_info.html b/structtz_1_1gl_1_1vk2_1_1_graphics_pipeline_info.html new file mode 100644 index 0000000000..3e89fdd587 --- /dev/null +++ b/structtz_1_1gl_1_1vk2_1_1_graphics_pipeline_info.html @@ -0,0 +1,150 @@ + + + + + + + +Topaz: tz::gl::vk2::GraphicsPipelineInfo Struct Reference + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    Topaz 4.0.0.2 +
    +
    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..72e7da8389 --- /dev/null +++ b/structtz_1_1gl_1_1vk2_1_1_graphics_pipeline_info_1_1_dynamic_rendering_state.html @@ -0,0 +1,123 @@ + + + + + + + +Topaz: tz::gl::vk2::GraphicsPipelineInfo::DynamicRenderingState Struct Reference + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    Topaz 4.0.0.2 +
    +
    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..bacb5f0d55 --- /dev/null +++ b/structtz_1_1gl_1_1vk2_1_1_image_view_info.html @@ -0,0 +1,123 @@ + + + + + + + +Topaz: tz::gl::vk2::ImageViewInfo Struct Reference + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    Topaz 4.0.0.2 +
    +
    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..94b2f2c456 --- /dev/null +++ b/structtz_1_1gl_1_1vk2_1_1_internal_device_info.html @@ -0,0 +1,123 @@ + + + + + + + +Topaz: tz::gl::vk2::InternalDeviceInfo Struct Reference + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    Topaz 4.0.0.2 +
    +
    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..f95e2e86db --- /dev/null +++ b/structtz_1_1gl_1_1vk2_1_1_logical_device_info.html @@ -0,0 +1,181 @@ + + + + + + + +Topaz: tz::gl::vk2::LogicalDeviceInfo Struct Reference + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    Topaz 4.0.0.2 +
    +
    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..85706adf98 --- /dev/null +++ b/structtz_1_1gl_1_1vk2_1_1_multisample_state.html @@ -0,0 +1,130 @@ + + + + + + + +Topaz: tz::gl::vk2::MultisampleState Struct Reference + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    Topaz 4.0.0.2 +
    +
    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..8d6768fcc0 --- /dev/null +++ b/structtz_1_1gl_1_1vk2_1_1_physical_device_info.html @@ -0,0 +1,123 @@ + + + + + + + +Topaz: tz::gl::vk2::PhysicalDeviceInfo Struct Reference + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    Topaz 4.0.0.2 +
    +
    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..1a8218536c --- /dev/null +++ b/structtz_1_1gl_1_1vk2_1_1_physical_device_surface_capability_info.html @@ -0,0 +1,131 @@ + + + + + + + +Topaz: tz::gl::vk2::PhysicalDeviceSurfaceCapabilityInfo Struct Reference + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    Topaz 4.0.0.2 +
    +
    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..47ec60f9ec --- /dev/null +++ b/structtz_1_1gl_1_1vk2_1_1_physical_device_surface_capability_info_1_1_swapchain_extent.html @@ -0,0 +1,123 @@ + + + + + + + +Topaz: tz::gl::vk2::PhysicalDeviceSurfaceCapabilityInfo::SwapchainExtent Struct Reference + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    Topaz 4.0.0.2 +
    +
    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..30c9f7f3a1 --- /dev/null +++ b/structtz_1_1gl_1_1vk2_1_1_pipeline_data.html @@ -0,0 +1,123 @@ + + + + + + + +Topaz: tz::gl::vk2::PipelineData Struct Reference + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    Topaz 4.0.0.2 +
    +
    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..c507987c0a --- /dev/null +++ b/structtz_1_1gl_1_1vk2_1_1_pipeline_layout_info.html @@ -0,0 +1,144 @@ + + + + + + + +Topaz: tz::gl::vk2::PipelineLayoutInfo Struct Reference + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    Topaz 4.0.0.2 +
    +
    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..9971009536 --- /dev/null +++ b/structtz_1_1gl_1_1vk2_1_1_pipeline_state.html @@ -0,0 +1,123 @@ + + + + + + + +Topaz: tz::gl::vk2::PipelineState Struct Reference + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    Topaz 4.0.0.2 +
    +
    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..bb07fd06c1 --- /dev/null +++ b/structtz_1_1gl_1_1vk2_1_1_queue_family_info.html @@ -0,0 +1,123 @@ + + + + + + + +Topaz: tz::gl::vk2::QueueFamilyInfo Struct Reference + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    Topaz 4.0.0.2 +
    +
    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..ca0869bda8 --- /dev/null +++ b/structtz_1_1gl_1_1vk2_1_1_queue_request.html @@ -0,0 +1,137 @@ + + + + + + + +Topaz: tz::gl::vk2::QueueRequest Struct Reference + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    Topaz 4.0.0.2 +
    +
    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..8b9e60d596 --- /dev/null +++ b/structtz_1_1gl_1_1vk2_1_1_rasteriser_state.html @@ -0,0 +1,165 @@ + + + + + + + +Topaz: tz::gl::vk2::RasteriserState Struct Reference + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    Topaz 4.0.0.2 +
    +
    C++20 Graphics Engine
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + + +
    + +

    Configures how the geometry shaped by input data is transformed into fragments. + More...

    + +

    #include <fixed_function.hpp>

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

    +Data Fields

    bool depth_clamp = false
     Fragments that are beyond the near and far planes are clipped to them instead of being discarded. This may be useful for shadow mapping.
     
    +PolygonMode polygon_mode = PolygonMode::Fill
     Describe how fragments are generated from geometry. See PolygonMode for more information.
     
    +CullMode cull_mode = CullMode::NoCulling
     Describe the culling behaviour. See CullMode for more information.
     
    +

    Detailed Description

    +

    Configures how the geometry shaped by input data is transformed into fragments.

    +

    Field Documentation

    + +

    ◆ depth_clamp

    + +
    +
    + + + + +
    bool tz::gl::vk2::RasteriserState::depth_clamp = false
    +
    + +

    Fragments that are beyond the near and far planes are clipped to them instead of being discarded. This may be useful for shadow mapping.

    +
    Note
    This must be supported by the relevant PhysicalDevice.
    + +
    +
    +
    +
    + + + + diff --git a/structtz_1_1gl_1_1vk2_1_1_render_pass_info.html b/structtz_1_1gl_1_1vk2_1_1_render_pass_info.html new file mode 100644 index 0000000000..79b255a3b6 --- /dev/null +++ b/structtz_1_1gl_1_1vk2_1_1_render_pass_info.html @@ -0,0 +1,182 @@ + + + + + + + +Topaz: tz::gl::vk2::RenderPassInfo Struct Reference + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    Topaz 4.0.0.2 +
    +
    C++20 Graphics Engine
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + + +
    + +

    Specifies creation flags for a RenderPass. + More...

    + +

    #include <render_pass.hpp>

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

    +Data Structures

    struct  AttachmentReference
     Structure which specifies a reference to an existing RenderPassInfo attachment, and the layout it should be in when referenced. More...
     
    struct  InputAttachmentReference
     A specialised AttachmentReference which is suitable to reference input attachments. More...
     
    struct  Subpass
     Specifies information about a RenderPass subpass. More...
     
    + + + + + + + + + + + + + +

    +Public Member Functions

    +std::size_t total_input_attachment_count () const
     Retrieve the total number of times an input attachment is referenced throughout all subpasses.
     
    +std::size_t total_colour_attachment_count () const
     Retrieve the total number of times a colour attachment is refererenced throughout all subpasses.
     
    +bool has_valid_device () const
     Query as to whether this->logical_device is a non-nullptr and non-null LogicalDevice which is suitable to create the resultant RenderPass.
     
    +bool values_make_sense () const
     Iterate through the subpasses and ensure they reference attachments which exist. If this returns false, the resultant RenderPass will almost certainly be invalid.
     
    + + + + + + + + + + +

    +Data Fields

    +tz::basic_list< Attachmentattachments
     List of all attachments. These attachments are referenced throughout the subpasses.
     
    +tz::basic_list< Subpasssubpasses
     List of all subpasses, in order.
     
    +const LogicalDevicelogical_device = nullptr
     LogicalDevice which will be used to create the RenderPass. It must point to a valid device.
     
    +

    Detailed Description

    +

    Specifies creation flags for a RenderPass.

    +

    See RenderPassBuilder to help populate this structure.

    +
    +
    + + + + diff --git a/structtz_1_1gl_1_1vk2_1_1_render_pass_info_1_1_attachment_reference.html b/structtz_1_1gl_1_1vk2_1_1_render_pass_info_1_1_attachment_reference.html new file mode 100644 index 0000000000..029cbc1460 --- /dev/null +++ b/structtz_1_1gl_1_1vk2_1_1_render_pass_info_1_1_attachment_reference.html @@ -0,0 +1,144 @@ + + + + + + + +Topaz: tz::gl::vk2::RenderPassInfo::AttachmentReference Struct Reference + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    Topaz 4.0.0.2 +
    +
    C++20 Graphics Engine
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    + +
    tz::gl::vk2::RenderPassInfo::AttachmentReference Struct Reference
    +
    +
    + +

    Structure which specifies a reference to an existing RenderPassInfo attachment, and the layout it should be in when referenced. + More...

    + +

    #include <render_pass.hpp>

    + + + + + + + + +

    +Data Fields

    +std::uint32_t attachment_idx
     Reference to the attachment such that we refer to RenderPassInfo::attachments[attachment_idx]. This must be less than the total number of attachments.
     
    +ImageLayout current_layout
     Specifies the layout which the attachment will be in during the subpass.
     
    +

    Detailed Description

    +

    Structure which specifies a reference to an existing RenderPassInfo attachment, and the layout it should be in when referenced.

    +
    +
    + + + + diff --git a/structtz_1_1gl_1_1vk2_1_1_render_pass_info_1_1_input_attachment_reference.html b/structtz_1_1gl_1_1vk2_1_1_render_pass_info_1_1_input_attachment_reference.html new file mode 100644 index 0000000000..95ce749dfc --- /dev/null +++ b/structtz_1_1gl_1_1vk2_1_1_render_pass_info_1_1_input_attachment_reference.html @@ -0,0 +1,130 @@ + + + + + + + +Topaz: tz::gl::vk2::RenderPassInfo::InputAttachmentReference Struct Reference + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    Topaz 4.0.0.2 +
    +
    C++20 Graphics Engine
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    tz::gl::vk2::RenderPassInfo::InputAttachmentReference Struct Reference
    +
    +
    + +

    A specialised AttachmentReference which is suitable to reference input attachments. + More...

    + +

    #include <render_pass.hpp>

    +

    Detailed Description

    +

    A specialised AttachmentReference which is suitable to reference input attachments.

    +
    +
    + + + + diff --git a/structtz_1_1gl_1_1vk2_1_1_render_pass_info_1_1_subpass.html b/structtz_1_1gl_1_1vk2_1_1_render_pass_info_1_1_subpass.html new file mode 100644 index 0000000000..f86710370f --- /dev/null +++ b/structtz_1_1gl_1_1vk2_1_1_render_pass_info_1_1_subpass.html @@ -0,0 +1,153 @@ + + + + + + + +Topaz: tz::gl::vk2::RenderPassInfo::Subpass Struct Reference + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    Topaz 4.0.0.2 +
    +
    C++20 Graphics Engine
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    + +
    tz::gl::vk2::RenderPassInfo::Subpass Struct Reference
    +
    +
    + +

    Specifies information about a RenderPass subpass. + More...

    + +

    #include <render_pass.hpp>

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

    +Data Fields

    +PipelineContext context = PipelineContext::graphics
     Specifies how this subpass binds to the graphics pipeline.
     
    +tz::basic_list< InputAttachmentReferenceinput_attachments
     List of all attachments which will be input attachments during this subpass.
     
    +tz::basic_list< AttachmentReferencecolour_attachments
     List of all attachments which will be colour attachments during this subpass.
     
    +std::optional< AttachmentReferencedepth_stencil_attachment = std::nullopt
     Optional reference to an attachment which will be the depth-stencil attachment during this subpass.
     
    +

    Detailed Description

    +

    Specifies information about a RenderPass subpass.

    +

    See SubpassBuilder to help populate this structure.

    +
    +
    + + + + diff --git a/structtz_1_1gl_1_1vk2_1_1_sampler_info.html b/structtz_1_1gl_1_1vk2_1_1_sampler_info.html new file mode 100644 index 0000000000..2ed35d7b07 --- /dev/null +++ b/structtz_1_1gl_1_1vk2_1_1_sampler_info.html @@ -0,0 +1,160 @@ + + + + + + + +Topaz: tz::gl::vk2::SamplerInfo Struct Reference + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    Topaz 4.0.0.2 +
    +
    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..e33384b140 --- /dev/null +++ b/structtz_1_1gl_1_1vk2_1_1_shader_info.html @@ -0,0 +1,144 @@ + + + + + + + +Topaz: tz::gl::vk2::ShaderInfo Struct Reference + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    Topaz 4.0.0.2 +
    +
    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..b42c9c3918 --- /dev/null +++ b/structtz_1_1gl_1_1vk2_1_1_shader_module_info.html @@ -0,0 +1,148 @@ + + + + + + + +Topaz: tz::gl::vk2::ShaderModuleInfo Struct Reference + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    Topaz 4.0.0.2 +
    +
    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..03663031cb --- /dev/null +++ b/structtz_1_1gl_1_1vk2_1_1_shader_pipeline_data.html @@ -0,0 +1,123 @@ + + + + + + + +Topaz: tz::gl::vk2::ShaderPipelineData Struct Reference + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    Topaz 4.0.0.2 +
    +
    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..70446e67c2 --- /dev/null +++ b/structtz_1_1gl_1_1vk2_1_1_swapchain_1_1_image_acquisition.html @@ -0,0 +1,149 @@ + + + + + + + +Topaz: tz::gl::vk2::Swapchain::ImageAcquisition Struct Reference + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    Topaz 4.0.0.2 +
    +
    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..7b0624702e --- /dev/null +++ b/structtz_1_1gl_1_1vk2_1_1_swapchain_1_1_image_acquisition_result.html @@ -0,0 +1,123 @@ + + + + + + + +Topaz: tz::gl::vk2::Swapchain::ImageAcquisitionResult Struct Reference + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    Topaz 4.0.0.2 +
    +
    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..ac00d837c4 --- /dev/null +++ b/structtz_1_1gl_1_1vk2_1_1_swapchain_image_info.html @@ -0,0 +1,144 @@ + + + + + + + +Topaz: tz::gl::vk2::SwapchainImageInfo Struct Reference + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    Topaz 4.0.0.2 +
    +
    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..72b3f93460 --- /dev/null +++ b/structtz_1_1gl_1_1vk2_1_1_swapchain_info.html @@ -0,0 +1,156 @@ + + + + + + + +Topaz: tz::gl::vk2::SwapchainInfo Struct Reference + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    Topaz 4.0.0.2 +
    +
    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..8c73de53a2 --- /dev/null +++ b/structtz_1_1gl_1_1vk2_1_1_vertex_input_state.html @@ -0,0 +1,143 @@ + + + + + + + +Topaz: tz::gl::vk2::VertexInputState Struct Reference + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    Topaz 4.0.0.2 +
    +
    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..cee0b87530 --- /dev/null +++ b/structtz_1_1gl_1_1vk2_1_1_vertex_input_state_1_1_attribute.html @@ -0,0 +1,152 @@ + + + + + + + +Topaz: tz::gl::vk2::VertexInputState::Attribute Struct Reference + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    Topaz 4.0.0.2 +
    +
    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..61fe71b17e --- /dev/null +++ b/structtz_1_1gl_1_1vk2_1_1_vertex_input_state_1_1_binding.html @@ -0,0 +1,148 @@ + + + + + + + +Topaz: tz::gl::vk2::VertexInputState::Binding Struct Reference + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    Topaz 4.0.0.2 +
    +
    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..c6fb06de03 --- /dev/null +++ b/structtz_1_1gl_1_1vk2_1_1_viewport_state.html @@ -0,0 +1,131 @@ + + + + + + + +Topaz: tz::gl::vk2::ViewportState Struct Reference + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    Topaz 4.0.0.2 +
    +
    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..9adf4b5f58 --- /dev/null +++ b/structtz_1_1gl_1_1vk2_1_1_vulkan_command.html @@ -0,0 +1,202 @@ + + + + + + + +Topaz: tz::gl::vk2::VulkanCommand Struct Reference + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    Topaz 4.0.0.2 +
    +
    C++20 Graphics Engine
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + + +
    + +

    Contains all the possible commands which can be recorded within a CommandBuffer. + More...

    + +

    #include <command.hpp>

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

    +Data Structures

    struct  BeginDynamicRendering
     
    struct  BeginRenderPass
     Record a beginning of some RenderPass. More...
     
    struct  BindBuffer
     Bind a vertex or index Buffer. More...
     
    struct  BindDescriptorSets
     Record a bind of one of more DescriptorSet See CommandBufferRecording::bind_descriptor_sets for usage. More...
     
    struct  BindIndexBuffer
     Bind an index buffer. More...
     
    struct  BindPipeline
     Record a bind of a GraphicsPipeline. More...
     
    struct  BufferCopyBuffer
     Record a copy from one Buffer to another. More...
     
    struct  BufferCopyImage
     Record a copy from one Buffer to an Image. More...
     
    struct  DebugBeginLabel
     
    struct  DebugEndLabel
     
    struct  Dispatch
     
    struct  Draw
     Record a non-indexed draw. More...
     
    struct  DrawIndexed
     Record an indexed draw. More...
     
    struct  DrawIndexedIndirect
     Record an indexed indirect draw. More...
     
    struct  DrawIndexedIndirectCount
     
    struct  DrawIndirect
     Record an unindexed indirect draw. More...
     
    struct  DrawIndirectCount
     
    struct  EndDynamicRendering
     
    struct  EndRenderPass
     Record the ending of some RenderPass. More...
     
    struct  ImageCopyImage
     Copy data from one image to another. More...
     
    struct  SetScissorDynamic
     
    struct  TransitionImageLayout
     Transition an image layout via recording a pipeline barrier into the CommandBuffer. More...
     
    + + + + +

    +Public Types

    +using variant = std::variant< Dispatch, Draw, DrawIndexed, DrawIndirect, DrawIndirectCount, DrawIndexedIndirect, DrawIndexedIndirectCount, BindIndexBuffer, BindPipeline, BindDescriptorSets, BeginRenderPass, EndRenderPass, BeginDynamicRendering, EndDynamicRendering, BufferCopyBuffer, BufferCopyImage, ImageCopyImage, BindBuffer, TransitionImageLayout, SetScissorDynamic, DebugBeginLabel, DebugEndLabel >
     variant type which has alternatives for every single possible recordable command type.
     
    +

    Detailed Description

    +

    Contains all the possible commands which can be recorded within a CommandBuffer.

    +
    +
    + + + + diff --git a/structtz_1_1gl_1_1vk2_1_1_vulkan_command_1_1_begin_dynamic_rendering.html b/structtz_1_1gl_1_1vk2_1_1_vulkan_command_1_1_begin_dynamic_rendering.html new file mode 100644 index 0000000000..edcf59f8bb --- /dev/null +++ b/structtz_1_1gl_1_1vk2_1_1_vulkan_command_1_1_begin_dynamic_rendering.html @@ -0,0 +1,123 @@ + + + + + + + +Topaz: tz::gl::vk2::VulkanCommand::BeginDynamicRendering Struct Reference + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    Topaz 4.0.0.2 +
    +
    C++20 Graphics Engine
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    tz::gl::vk2::VulkanCommand::BeginDynamicRendering Struct Reference
    +
    +
    +
    +
    + + + + diff --git a/structtz_1_1gl_1_1vk2_1_1_vulkan_command_1_1_begin_render_pass.html b/structtz_1_1gl_1_1vk2_1_1_vulkan_command_1_1_begin_render_pass.html new file mode 100644 index 0000000000..14905b5007 --- /dev/null +++ b/structtz_1_1gl_1_1vk2_1_1_vulkan_command_1_1_begin_render_pass.html @@ -0,0 +1,141 @@ + + + + + + + +Topaz: tz::gl::vk2::VulkanCommand::BeginRenderPass Struct Reference + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    Topaz 4.0.0.2 +
    +
    C++20 Graphics Engine
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    + +
    tz::gl::vk2::VulkanCommand::BeginRenderPass Struct Reference
    +
    +
    + +

    Record a beginning of some RenderPass. + More...

    + +

    #include <command.hpp>

    + + + + + +

    +Data Fields

    +Framebufferframebuffer
     Framebuffer containing the RenderPass.
     
    +

    Detailed Description

    +

    Record a beginning of some RenderPass.

    +

    See CommandBufferRecording::RenderPassRun for usage.

    +
    +
    + + + + diff --git a/structtz_1_1gl_1_1vk2_1_1_vulkan_command_1_1_bind_buffer.html b/structtz_1_1gl_1_1vk2_1_1_vulkan_command_1_1_bind_buffer.html new file mode 100644 index 0000000000..de661b467d --- /dev/null +++ b/structtz_1_1gl_1_1vk2_1_1_vulkan_command_1_1_bind_buffer.html @@ -0,0 +1,140 @@ + + + + + + + +Topaz: tz::gl::vk2::VulkanCommand::BindBuffer Struct Reference + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    Topaz 4.0.0.2 +
    +
    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..5e650a1457 --- /dev/null +++ b/structtz_1_1gl_1_1vk2_1_1_vulkan_command_1_1_bind_descriptor_sets.html @@ -0,0 +1,152 @@ + + + + + + + +Topaz: tz::gl::vk2::VulkanCommand::BindDescriptorSets Struct Reference + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    Topaz 4.0.0.2 +
    +
    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..97b874f155 --- /dev/null +++ b/structtz_1_1gl_1_1vk2_1_1_vulkan_command_1_1_bind_index_buffer.html @@ -0,0 +1,131 @@ + + + + + + + +Topaz: tz::gl::vk2::VulkanCommand::BindIndexBuffer Struct Reference + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    Topaz 4.0.0.2 +
    +
    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..1f4dc5f4fe --- /dev/null +++ b/structtz_1_1gl_1_1vk2_1_1_vulkan_command_1_1_bind_pipeline.html @@ -0,0 +1,141 @@ + + + + + + + +Topaz: tz::gl::vk2::VulkanCommand::BindPipeline Struct Reference + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    Topaz 4.0.0.2 +
    +
    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..074f4bac29 --- /dev/null +++ b/structtz_1_1gl_1_1vk2_1_1_vulkan_command_1_1_buffer_copy_buffer.html @@ -0,0 +1,153 @@ + + + + + + + +Topaz: tz::gl::vk2::VulkanCommand::BufferCopyBuffer Struct Reference + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    Topaz 4.0.0.2 +
    +
    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..ae1375048a --- /dev/null +++ b/structtz_1_1gl_1_1vk2_1_1_vulkan_command_1_1_buffer_copy_image.html @@ -0,0 +1,149 @@ + + + + + + + +Topaz: tz::gl::vk2::VulkanCommand::BufferCopyImage Struct Reference + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    Topaz 4.0.0.2 +
    +
    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..3cdbd42a7a --- /dev/null +++ b/structtz_1_1gl_1_1vk2_1_1_vulkan_command_1_1_debug_begin_label.html @@ -0,0 +1,123 @@ + + + + + + + +Topaz: tz::gl::vk2::VulkanCommand::DebugBeginLabel Struct Reference + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    Topaz 4.0.0.2 +
    +
    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..326bf51028 --- /dev/null +++ b/structtz_1_1gl_1_1vk2_1_1_vulkan_command_1_1_debug_end_label.html @@ -0,0 +1,123 @@ + + + + + + + +Topaz: tz::gl::vk2::VulkanCommand::DebugEndLabel Struct Reference + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    Topaz 4.0.0.2 +
    +
    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..6de3eb96f2 --- /dev/null +++ b/structtz_1_1gl_1_1vk2_1_1_vulkan_command_1_1_dispatch.html @@ -0,0 +1,123 @@ + + + + + + + +Topaz: tz::gl::vk2::VulkanCommand::Dispatch Struct Reference + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    Topaz 4.0.0.2 +
    +
    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..12c61b3e2f --- /dev/null +++ b/structtz_1_1gl_1_1vk2_1_1_vulkan_command_1_1_draw.html @@ -0,0 +1,153 @@ + + + + + + + +Topaz: tz::gl::vk2::VulkanCommand::Draw Struct Reference + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    Topaz 4.0.0.2 +
    +
    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..e6a7d0acaf --- /dev/null +++ b/structtz_1_1gl_1_1vk2_1_1_vulkan_command_1_1_draw_indexed.html @@ -0,0 +1,131 @@ + + + + + + + +Topaz: tz::gl::vk2::VulkanCommand::DrawIndexed Struct Reference + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    Topaz 4.0.0.2 +
    +
    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..e8c176b0d7 --- /dev/null +++ b/structtz_1_1gl_1_1vk2_1_1_vulkan_command_1_1_draw_indexed_indirect.html @@ -0,0 +1,131 @@ + + + + + + + +Topaz: tz::gl::vk2::VulkanCommand::DrawIndexedIndirect Struct Reference + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    Topaz 4.0.0.2 +
    +
    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..69cabbc5db --- /dev/null +++ b/structtz_1_1gl_1_1vk2_1_1_vulkan_command_1_1_draw_indexed_indirect_count.html @@ -0,0 +1,123 @@ + + + + + + + +Topaz: tz::gl::vk2::VulkanCommand::DrawIndexedIndirectCount Struct Reference + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    Topaz 4.0.0.2 +
    +
    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..e329b84419 --- /dev/null +++ b/structtz_1_1gl_1_1vk2_1_1_vulkan_command_1_1_draw_indirect.html @@ -0,0 +1,131 @@ + + + + + + + +Topaz: tz::gl::vk2::VulkanCommand::DrawIndirect Struct Reference + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    Topaz 4.0.0.2 +
    +
    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..adfa640405 --- /dev/null +++ b/structtz_1_1gl_1_1vk2_1_1_vulkan_command_1_1_draw_indirect_count.html @@ -0,0 +1,123 @@ + + + + + + + +Topaz: tz::gl::vk2::VulkanCommand::DrawIndirectCount Struct Reference + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    Topaz 4.0.0.2 +
    +
    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..c9dceb2a30 --- /dev/null +++ b/structtz_1_1gl_1_1vk2_1_1_vulkan_command_1_1_end_dynamic_rendering.html @@ -0,0 +1,123 @@ + + + + + + + +Topaz: tz::gl::vk2::VulkanCommand::EndDynamicRendering Struct Reference + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    Topaz 4.0.0.2 +
    +
    C++20 Graphics Engine
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    tz::gl::vk2::VulkanCommand::EndDynamicRendering Struct Reference
    +
    +
    +
    +
    + + + + diff --git a/structtz_1_1gl_1_1vk2_1_1_vulkan_command_1_1_end_render_pass.html b/structtz_1_1gl_1_1vk2_1_1_vulkan_command_1_1_end_render_pass.html new file mode 100644 index 0000000000..da809e31c1 --- /dev/null +++ b/structtz_1_1gl_1_1vk2_1_1_vulkan_command_1_1_end_render_pass.html @@ -0,0 +1,141 @@ + + + + + + + +Topaz: tz::gl::vk2::VulkanCommand::EndRenderPass Struct Reference + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    Topaz 4.0.0.2 +
    +
    C++20 Graphics Engine
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    + +
    tz::gl::vk2::VulkanCommand::EndRenderPass Struct Reference
    +
    +
    + +

    Record the ending of some RenderPass. + More...

    + +

    #include <command.hpp>

    + + + + + +

    +Data Fields

    +Framebufferframebuffer
     Framebuffer containing the RenderPass.
     
    +

    Detailed Description

    +

    Record the ending of some RenderPass.

    +

    See CommandBufferRecording::RenderPassRun for usage.

    +
    +
    + + + + diff --git a/structtz_1_1gl_1_1vk2_1_1_vulkan_command_1_1_image_copy_image.html b/structtz_1_1gl_1_1vk2_1_1_vulkan_command_1_1_image_copy_image.html new file mode 100644 index 0000000000..022a5e6d6d --- /dev/null +++ b/structtz_1_1gl_1_1vk2_1_1_vulkan_command_1_1_image_copy_image.html @@ -0,0 +1,149 @@ + + + + + + + +Topaz: tz::gl::vk2::VulkanCommand::ImageCopyImage Struct Reference + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    Topaz 4.0.0.2 +
    +
    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..f0c9cca0ec --- /dev/null +++ b/structtz_1_1gl_1_1vk2_1_1_vulkan_command_1_1_set_scissor_dynamic.html @@ -0,0 +1,123 @@ + + + + + + + +Topaz: tz::gl::vk2::VulkanCommand::SetScissorDynamic Struct Reference + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    Topaz 4.0.0.2 +
    +
    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..a920d098e6 --- /dev/null +++ b/structtz_1_1gl_1_1vk2_1_1_vulkan_command_1_1_transition_image_layout.html @@ -0,0 +1,173 @@ + + + + + + + +Topaz: tz::gl::vk2::VulkanCommand::TransitionImageLayout Struct Reference + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    Topaz 4.0.0.2 +
    +
    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..681d842d0b --- /dev/null +++ b/structtz_1_1gl_1_1vk2_1_1_vulkan_instance_info.html @@ -0,0 +1,152 @@ + + + + + + + +Topaz: tz::gl::vk2::VulkanInstanceInfo Struct Reference + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    Topaz 4.0.0.2 +
    +
    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..f8050236c1 --- /dev/null +++ b/structtz_1_1gl_1_1vk2_1_1buffer__info.html @@ -0,0 +1,152 @@ + + + + + + + +Topaz: tz::gl::vk2::buffer_info Struct Reference + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    Topaz 4.0.0.2 +
    +
    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..ef34791a52 --- /dev/null +++ b/structtz_1_1gl_1_1vk2_1_1detail_1_1_device_feature_info.html @@ -0,0 +1,123 @@ + + + + + + + +Topaz: tz::gl::vk2::detail::DeviceFeatureInfo Struct Reference + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    Topaz 4.0.0.2 +
    +
    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..efba16048f --- /dev/null +++ b/structtz_1_1gl_1_1vk2_1_1draw__indexed__indirect__command.html @@ -0,0 +1,123 @@ + + + + + + + +Topaz: tz::gl::vk2::draw_indexed_indirect_command Struct Reference + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    Topaz 4.0.0.2 +
    +
    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..68934f0fd9 --- /dev/null +++ b/structtz_1_1gl_1_1vk2_1_1draw__indirect__command.html @@ -0,0 +1,123 @@ + + + + + + + +Topaz: tz::gl::vk2::draw_indirect_command Struct Reference + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    Topaz 4.0.0.2 +
    +
    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..8bb6cea012 --- /dev/null +++ b/structtz_1_1gl_1_1vk2_1_1hardware_1_1_queue_1_1_present_info.html @@ -0,0 +1,148 @@ + + + + + + + +Topaz: tz::gl::vk2::hardware::Queue::PresentInfo Struct Reference + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    Topaz 4.0.0.2 +
    +
    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..ad5cbf4052 --- /dev/null +++ b/structtz_1_1gl_1_1vk2_1_1hardware_1_1_queue_1_1_submit_info.html @@ -0,0 +1,160 @@ + + + + + + + +Topaz: tz::gl::vk2::hardware::Queue::SubmitInfo Struct Reference + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    Topaz 4.0.0.2 +
    +
    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..e970326a09 --- /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,123 @@ + + + + + + + +Topaz: tz::gl::vk2::hardware::Queue::SubmitInfo::SignalInfo Struct Reference + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    Topaz 4.0.0.2 +
    +
    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..3db9063b04 --- /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,137 @@ + + + + + + + +Topaz: tz::gl::vk2::hardware::Queue::SubmitInfo::WaitInfo Struct Reference + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    Topaz 4.0.0.2 +
    +
    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..f6e36c26d9 --- /dev/null +++ b/structtz_1_1gl_1_1vk2_1_1hardware_1_1_queue_info.html @@ -0,0 +1,123 @@ + + + + + + + +Topaz: tz::gl::vk2::hardware::QueueInfo Struct Reference + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    Topaz 4.0.0.2 +
    +
    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..34b3a1b8d5 --- /dev/null +++ b/structtz_1_1gl_1_1vk2_1_1image__info.html @@ -0,0 +1,172 @@ + + + + + + + +Topaz: tz::gl::vk2::image_info Struct Reference + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    Topaz 4.0.0.2 +
    +
    C++20 Graphics Engine
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + + +
    + +

    Specifies creation flags for an Image. + More...

    + +

    #include <image.hpp>

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

    +Data Fields

    +const LogicalDevicedevice
     LogicalDevice owning this image. Must not be null.
     
    +image_format format
     Format of the image.
     
    +tz::vec2ui dimensions
     Dimensions of the image, in pixels.
     
    +ImageUsageField usage
     Field of expected usages of the image. For example, if you wish to transition the image to ImageLayout::TransferTo then this usage field must contain ImageUsage::TransferDestination.
     
    +MemoryResidency residency
     Describes where the image is laid out in memory.
     
    +std::uint32_t mip_levels = 1
     Specifies how many mip levels there are. Default 1.
     
    +std::uint32_t array_layers = 1
     Specifies how many layers there are. Default 1.
     
    +SampleCount sample_count = SampleCount::One
     Specifies how many times the image is sampled per pixel. Default 1.
     
    +ImageTiling image_tiling = ImageTiling::Optimal
     Specifies image tiling. Default ImageTiling::Optimal.
     
    +

    Detailed Description

    +

    Specifies creation flags for an Image.

    +
    +
    + + + + diff --git a/structtz_1_1initialise__info.html b/structtz_1_1initialise__info.html new file mode 100644 index 0000000000..19c80c9414 --- /dev/null +++ b/structtz_1_1initialise__info.html @@ -0,0 +1,213 @@ + + + + + + + +Topaz: tz::initialise_info Struct Reference + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    Topaz 4.0.0.2 +
    +
    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_1memblk.html b/structtz_1_1memblk.html new file mode 100644 index 0000000000..e49ab1db4b --- /dev/null +++ b/structtz_1_1memblk.html @@ -0,0 +1,144 @@ + + + + + + + +Topaz: tz::memblk Struct Reference + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    Topaz 4.0.0.2 +
    +
    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..c245757899 --- /dev/null +++ b/structtz_1_1nullhand__t.html @@ -0,0 +1,123 @@ + + + + + + + +Topaz: tz::nullhand_t Struct Reference + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    Topaz 4.0.0.2 +
    +
    C++20 Graphics Engine
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    tz::nullhand_t 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..1ef69ddcc8 --- /dev/null +++ b/structtz_1_1space_1_1_m_v_p.html @@ -0,0 +1,128 @@ + + + + + + + +Topaz: tz::space::MVP Struct Reference + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    Topaz 4.0.0.2 +
    +
    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..4684412dca --- /dev/null +++ b/structtz_1_1static__for__t.html @@ -0,0 +1,123 @@ + + + + + + + +Topaz: tz::static_for_t< F, L > Struct Template Reference + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    Topaz 4.0.0.2 +
    +
    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..e5df2a72a9 --- /dev/null +++ b/structtz_1_1static__for__t_3_01_n_00_01_n_01_4.html @@ -0,0 +1,137 @@ + + + + + + + +Topaz: tz::static_for_t< N, N > Struct Template Reference + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    Topaz 4.0.0.2 +
    +
    C++20 Graphics Engine
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    tz::static_for_t< N, N > Struct Template Reference
    +
    +
    + +

    Compute a compile-time for-loop. + More...

    + +

    #include <static.hpp>

    +

    Detailed Description

    +
    template<int N>
    +struct tz::static_for_t< N, N >

    Compute a compile-time for-loop.

    +

    Use tz::static_for as a value, i.e: inline constexpr static_for_t static_for = {};

    +

    Equivalent to:

    for(std::size_t i = begin; i < end; i++)
    +
    {
    + +
    }
    +
    function concept which constrains F to any type that can be called with Args... to produce a Result.
    Definition: types.hpp:38
    +
    +
    + + + + diff --git a/structtz_1_1version.html b/structtz_1_1version.html new file mode 100644 index 0000000000..d305eb7834 --- /dev/null +++ b/structtz_1_1version.html @@ -0,0 +1,123 @@ + + + + + + + +Topaz: tz::version Struct Reference + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    Topaz 4.0.0.2 +
    +
    C++20 Graphics Engine
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    tz::version Struct Reference
    +
    +
    +
    +
    + + + + 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..78ba1d0572 --- /dev/null +++ b/structtz_1_1wsi_1_1detail_1_1window__handle__tag.html @@ -0,0 +1,123 @@ + + + + + + + +Topaz: tz::wsi::detail::window_handle_tag Struct Reference + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    Topaz 4.0.0.2 +
    +
    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..3c6948f12d --- /dev/null +++ b/structtz_1_1wsi_1_1impl_1_1wgl__function__data.html @@ -0,0 +1,123 @@ + + + + + + + +Topaz: tz::wsi::impl::wgl_function_data Struct Reference + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    Topaz 4.0.0.2 +
    +
    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..9a6e4f2994 --- /dev/null +++ b/structtz_1_1wsi_1_1impl_1_1x11__display__data.html @@ -0,0 +1,123 @@ + + + + + + + +Topaz: tz::wsi::impl::x11_display_data Struct Reference + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    Topaz 4.0.0.2 +
    +
    C++20 Graphics Engine
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    tz::wsi::impl::x11_display_data Struct Reference
    +
    +
    +
    +
    + + + + diff --git a/structtz_1_1wsi_1_1keyboard__state.html b/structtz_1_1wsi_1_1keyboard__state.html new file mode 100644 index 0000000000..51666f24a7 --- /dev/null +++ b/structtz_1_1wsi_1_1keyboard__state.html @@ -0,0 +1,181 @@ + + + + + + + +Topaz: tz::wsi::keyboard_state Struct Reference + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    Topaz 4.0.0.2 +
    +
    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..1a33f093ed --- /dev/null +++ b/structtz_1_1wsi_1_1monitor.html @@ -0,0 +1,144 @@ + + + + + + + +Topaz: tz::wsi::monitor Struct Reference + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    Topaz 4.0.0.2 +
    +
    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..083f2c17d2 --- /dev/null +++ b/structtz_1_1wsi_1_1mouse__state.html @@ -0,0 +1,149 @@ + + + + + + + +Topaz: tz::wsi::mouse_state Struct Reference + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    Topaz 4.0.0.2 +
    +
    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..e1783b73b3 --- /dev/null +++ b/structtz_1_1wsi_1_1window.html @@ -0,0 +1,131 @@ + + + + + + + +Topaz: tz::wsi::window Struct Reference + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    Topaz 4.0.0.2 +
    +
    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..b47dfb5132 --- /dev/null +++ b/structtz_1_1wsi_1_1window__info.html @@ -0,0 +1,148 @@ + + + + + + + +Topaz: tz::wsi::window_info Struct Reference + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    Topaz 4.0.0.2 +
    +
    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..afc0651f40 --- /dev/null +++ b/structtz_1_1wsi_1_1window__manager.html @@ -0,0 +1,123 @@ + + + + + + + +Topaz: tz::wsi::window_manager Struct Reference + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    Topaz 4.0.0.2 +
    +
    C++20 Graphics Engine
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    tz::wsi::window_manager Struct Reference
    +
    +
    +
    +
    + + + + diff --git a/swapchain_8hpp_source.html b/swapchain_8hpp_source.html new file mode 100644 index 0000000000..e259ff87f6 --- /dev/null +++ b/swapchain_8hpp_source.html @@ -0,0 +1,224 @@ + + + + + + + +Topaz: src/tz/gl/impl/vulkan/detail/swapchain.hpp Source File + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    Topaz 4.0.0.2 +
    +
    C++20 Graphics Engine
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    swapchain.hpp
    +
    +
    +
    1#ifndef TOPAZ_GL_IMPL_BACKEND_VK2_SWAPCHAIN_HPP
    +
    2#define TOPAZ_GL_IMPL_BACKEND_VK2_SWAPCHAIN_HPP
    +
    3#include "tz/gl/impl/vulkan/detail/logical_device.hpp"
    +
    4#include "tz/gl/impl/vulkan/detail/image_view.hpp"
    +
    5
    +
    6namespace tz::gl::vk2
    +
    7{
    +
    8 class Swapchain;
    + +
    14 {
    + + + + +
    24 const Swapchain* old_swapchain = nullptr;
    +
    25 };
    +
    26
    + +
    32 {
    +
    33 public:
    + +
    39 {
    + +
    43 const Fence* signal_fence = nullptr;
    +
    45 std::uint64_t timeout = std::numeric_limits<std::uint64_t>::max();
    +
    46 };
    +
    47
    + +
    49 {
    +
    50 enum class AcquisitionResultType
    +
    51 {
    +
    52 AcquireSuccess,
    +
    53 Suboptimal,
    +
    54 ErrorOutOfDate,
    +
    55 ErrorSurfaceLost,
    +
    56 ErrorUnknown
    +
    57 };
    +
    58 std::uint32_t image_index;
    +
    59 AcquisitionResultType type;
    +
    60 };
    + +
    65 Swapchain(const Swapchain& copy) = delete;
    +
    66 Swapchain(Swapchain&& move);
    +
    67 ~Swapchain();
    +
    68 Swapchain& operator=(const Swapchain& rhs) = delete;
    +
    69 Swapchain& operator=(Swapchain&& rhs);
    +
    70
    +
    71 const LogicalDevice& get_device() const;
    + +
    77
    +
    82 static Swapchain null();
    +
    87 bool is_null() const;
    +
    88 using NativeType = VkSwapchainKHR;
    +
    89 NativeType native() const;
    +
    94 std::span<const Image> get_images() const;
    +
    99 std::span<Image> get_images();
    +
    104 std::span<const ImageView> get_image_views() const;
    +
    109 std::span<ImageView> get_image_views();
    + + + +
    125 void refresh();
    +
    126 private:
    +
    127 Swapchain();
    +
    128 void initialise_images();
    +
    129
    +
    130 VkSwapchainKHR swapchain;
    +
    131 SwapchainInfo info;
    +
    132 tz::vec2ui dimensions;
    +
    133 std::vector<Image> swapchain_images;
    +
    134 std::vector<ImageView> swapchain_image_views;
    +
    135 };
    +
    136}
    +
    137
    +
    138#endif // TOPAZ_GL_IMPL_BACKEND_VK2_SWAPCHAIN_HPP
    +
    Synchronisation primitive which is not interactable on the host and which has two states:
    Definition: semaphore.hpp:22
    +
    Synchronisation primitive which is useful to detect completion of a GPU operation,...
    Definition: fence.hpp:26
    +
    Logical interface to an existing PhysicalDevice.
    Definition: logical_device.hpp:95
    +
    Swapchains are infrastructures which represent GPU images we will render to before they can be presen...
    Definition: swapchain.hpp:32
    +
    image_format get_image_format() const
    Retrieve the image_format of the swapchain images.
    Definition: swapchain.cpp:219
    +
    bool is_null() const
    Query as to whether the Swapchain is null.
    Definition: swapchain.cpp:189
    +
    static Swapchain null()
    Create a Swapchain which doesn't do anything.
    Definition: swapchain.cpp:184
    +
    SurfacePresentMode get_present_mode() const
    Retrieve the present mode used by the swapchain.
    Definition: swapchain.cpp:224
    +
    ImageAcquisitionResult acquire_image(const ImageAcquisition &acquire)
    Retrieve a presentable image index.
    Definition: swapchain.cpp:146
    +
    std::span< const ImageView > get_image_views() const
    Retrieve a span of all ImageViews corresponding to an image associated with this Swapchain.
    Definition: swapchain.cpp:209
    +
    tz::vec2ui get_dimensions() const
    Retrieve the dimensions of the swapchain images.
    Definition: swapchain.cpp:229
    +
    std::span< const Image > get_images() const
    Retrieve a span of all presentable images associated with this Swapchain.
    Definition: swapchain.cpp:199
    + +
    image_format
    Various image formats are supported.
    Definition: image_format.hpp:35
    +
    SurfacePresentMode
    Supported Presentation mode supported for a WindowSurface.
    Definition: tz_vulkan.hpp:240
    +
    Specify information about a request to acquire the next available presentable image.
    Definition: swapchain.hpp:39
    +
    std::uint64_t timeout
    Specifies number of nanoseconds which can pass before failing if no presentable images are available....
    Definition: swapchain.hpp:45
    +
    const Fence * signal_fence
    Fence to signal when the image has been retrieved. If not required, this can be nullptr.
    Definition: swapchain.hpp:43
    +
    const BinarySemaphore * signal_semaphore
    Semaphore to signal when the image has been retrieved. If not required, this can be nullptr.
    Definition: swapchain.hpp:41
    + +
    Specifies parameters of a newly created Swapchain.
    Definition: swapchain.hpp:14
    +
    const Swapchain * old_swapchain
    Pointer to swapchain which this will replace, if any. Defaults to nullptr.
    Definition: swapchain.hpp:24
    +
    SurfacePresentMode present_mode
    Specifies the presentation mode the Swapchain will use. This must be satisfied by the PhysicalDevice ...
    Definition: swapchain.hpp:22
    +
    const LogicalDevice * device
    Pointer to a valid LogicalDevice. This must not be null.
    Definition: swapchain.hpp:16
    +
    std::uint32_t swapchain_image_count_minimum
    Minimum number of swapchain images. This must be satisfied by the PhysicalDevice corresponding to dev...
    Definition: swapchain.hpp:18
    +
    image_format format
    Specifies the format the swapchain image(s) will be created with.
    Definition: swapchain.hpp:20
    +
    +
    + + + + diff --git a/sync_off.png b/sync_off.png new file mode 100644 index 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..b56f46ec05 --- /dev/null +++ b/tabs.css @@ -0,0 +1,62 @@ +.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; +} + +.tabs3 .tablist a { + padding: 0 10px; +} + +.tablist a:hover { + background-image: var(--nav-gradient-hover-image); + background-repeat:repeat-x; + color: var(--nav-text-hover-color); + text-shadow: var(--nav-text-hover-shadow); + text-decoration: none; +} + +.tablist li.current a { + background-image: var(--nav-gradient-active-image); + background-repeat:repeat-x; + color: var(--nav-text-active-color); + text-shadow: var(--nav-text-active-shadow); +} + diff --git a/time_8hpp_source.html b/time_8hpp_source.html new file mode 100644 index 0000000000..be35c3e200 --- /dev/null +++ b/time_8hpp_source.html @@ -0,0 +1,266 @@ + + + + + + + +Topaz: src/tz/core/time.hpp Source File + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    Topaz 4.0.0.2 +
    +
    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
    +
    void assert(bool condition, detail::format_string fmt="<No message>", Args &&... args)
    Assert on a condition.
    Definition: debug.inl:33
    +
    duration system_time()
    Retrieve a duration corresponding to the time passed since epoch.
    Definition: time.cpp:6
    +
    +
    + + + + diff --git a/types_8hpp_source.html b/types_8hpp_source.html new file mode 100644 index 0000000000..a93e3c9ee6 --- /dev/null +++ b/types_8hpp_source.html @@ -0,0 +1,201 @@ + + + + + + + +Topaz: src/tz/core/types.hpp Source File + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    Topaz 4.0.0.2 +
    +
    C++20 Graphics Engine
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    types.hpp
    +
    +
    +
    1#ifndef TOPAZ_CORE_TYPES_HPP
    +
    2#define TOPAZ_CORE_TYPES_HPP
    +
    3#include <type_traits>
    +
    4#include <concepts>
    +
    5#include "tz/core/memory/memblk.hpp"
    +
    6
    +
    7namespace tz
    +
    8{
    +
    12 template<typename T>
    +
    13 concept arithmetic = std::is_arithmetic_v<std::decay_t<T>>;
    +
    14
    +
    15 template<typename T>
    +
    16 concept const_type = std::is_const_v<T>;
    +
    17
    +
    18 template<typename T>
    +
    19 concept enum_class = std::is_enum_v<T> && !std::is_convertible_v<T, int>;
    +
    20
    +
    24 template<typename T>
    +
    25 concept number = requires
    +
    26 {
    +
    27 requires arithmetic<T>;
    +
    28 requires !std::is_same_v<std::remove_cvref_t<T>, bool>;
    +
    29 requires !std::is_same_v<std::remove_cvref_t<T>, char>;
    +
    30 };
    +
    31
    +
    37 template<typename F, typename Result, typename... Args>
    +
    38 concept function = requires(F f, Args... args)
    +
    39 {
    +
    40 {f(args...)} -> std::convertible_to<Result>;
    +
    41 };
    +
    42
    +
    46 template<typename F, typename... Args>
    +
    47 concept action = function<F, void, Args...>;
    +
    48
    +
    49 template<typename T>
    +
    50 constexpr bool copyable = requires { requires std::copyable<T>; };
    +
    51
    +
    52 template<typename T>
    +
    53 constexpr bool moveable = requires { requires std::movable<T>; };
    +
    54
    +
    55 template<typename T>
    +
    56 concept trivially_copyable = std::is_trivially_copyable_v<T>;
    +
    57
    +
    58 template<typename T>
    +
    59 concept nullable = requires(const T t)
    +
    60 {
    +
    61 //{decltype(t)::null()};
    +
    62 {t.is_null()} -> std::same_as<bool>;
    +
    63 };
    +
    64
    +
    65 template<typename T>
    +
    66 concept native_available = requires(T t)
    +
    67 {
    +
    68 T::NativeType;
    +
    69 {t.native()} -> std::same_as<typename T::NativeType>;
    +
    70 };
    +
    71
    +
    72 template<typename T>
    +
    73 concept allocator = requires(T t, tz::memblk blk, std::size_t sz)
    +
    74 {
    +
    75 {t.allocate(sz)} -> std::same_as<tz::memblk>;
    +
    76 {t.deallocate(blk)} -> std::same_as<void>;
    +
    77 {t.owns(blk)} -> std::same_as<bool>;
    +
    78 };
    +
    79}
    +
    80
    +
    81#endif // TOPAZ_CORE_TYPES_HPP
    +
    Just like a tz::function, except will never return anything.
    Definition: types.hpp:47
    +
    Definition: types.hpp:73
    +
    An integral type or a floating-point type (including char and bool).
    Definition: types.hpp:13
    +
    Definition: types.hpp:16
    +
    Definition: types.hpp:19
    +
    function concept which constrains F to any type that can be called with Args... to produce a Result.
    Definition: types.hpp:38
    +
    Definition: types.hpp:66
    +
    Definition: types.hpp:59
    +
    A number is any arithmetic type excluding char and bool.
    Definition: types.hpp:25
    +
    Definition: types.hpp:56
    +
    A non-owning, contiguous block of memory.
    Definition: memblk.hpp:12
    +
    +
    + + + + diff --git a/tz.png b/tz.png new file mode 100644 index 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..c29540b8b2 --- /dev/null +++ b/tz_8hpp_source.html @@ -0,0 +1,176 @@ + + + + + + + +Topaz: src/tz/tz.hpp Source File + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    Topaz 4.0.0.2 +
    +
    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
    +
    51 enum class application_flag
    +
    52 {
    +
    53 window_hidden,
    +
    54 window_noresize,
    +
    55 window_transparent,
    +
    56 };
    +
    57
    +
    58 using application_flags = tz::enum_field<application_flag>;
    +
    59
    + +
    65 {
    +
    67 const char* name = "Untitled";
    +
    69 tz::version version = {1, 0, 0, tz::version_type::normal};
    +
    71 tz::vec2ui dimensions = {800u, 600u};
    + +
    74 };
    +
    80 void initialise(initialise_info init = {});
    +
    87 void terminate();
    +
    93 void begin_frame();
    +
    99 void end_frame();
    + +
    113 bool is_initialised();
    +
    114}
    +
    115#include "tz/tz.inl"
    +
    116
    +
    137#endif // TZ_CORE_TZ_HPP
    +
    Container for enum values, useful for vintage bitfield types.
    Definition: enum_field.hpp:16
    + +
    tz::wsi::window & window()
    Retrieve the application window.
    Definition: tz.cpp:108
    +
    Specifies everything needed to initialise the engine.
    Definition: tz.hpp:65
    +
    const char * name
    Definition: tz.hpp:67
    +
    application_flags flags
    Definition: tz.hpp:73
    +
    tz::vec2ui dimensions
    Definition: tz.hpp:71
    +
    Definition: version.hpp:17
    +
    Represents an application window.
    Definition: window.hpp:40
    +
    +
    + + + + diff --git a/tz__core_8hpp_source.html b/tz__core_8hpp_source.html new file mode 100644 index 0000000000..65fbcf6852 --- /dev/null +++ b/tz__core_8hpp_source.html @@ -0,0 +1,140 @@ + + + + + + + +Topaz: src/tz/core/tz_core.hpp Source File + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    Topaz 4.0.0.2 +
    +
    C++20 Graphics Engine
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    tz_core.hpp
    +
    +
    +
    1#ifndef TZ_HPP
    +
    2#define TZ_HPP
    +
    3
    +
    4namespace tz::core
    +
    5{
    +
    6
    +
    24 void initialise();
    +
    25 void terminate();
    +
    26
    +
    27 namespace detail
    +
    28 {
    +
    29 bool is_initialised();
    +
    30 }
    +
    31
    +
    37}
    +
    38
    +
    39#endif // TZ_HPP
    +
    +
    + + + + diff --git a/tz__gl_8hpp_source.html b/tz__gl_8hpp_source.html new file mode 100644 index 0000000000..22eec0a54a --- /dev/null +++ b/tz__gl_8hpp_source.html @@ -0,0 +1,135 @@ + + + + + + + +Topaz: src/tz/gl/tz_gl.hpp Source File + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    Topaz 4.0.0.2 +
    +
    C++20 Graphics Engine
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    tz_gl.hpp
    +
    +
    +
    1#ifndef TOPAZ_GL2_TZ_GL_HPP
    +
    2#define TOPAZ_GL2_TZ_GL_HPP
    +
    3#include "tz/core/data/version.hpp"
    +
    4#include <array>
    +
    5
    +
    6namespace tz::gl
    +
    7{
    +
    70 void initialise();
    +
    71 void terminate();
    +
    72}
    +
    73
    +
    74#endif // TOPAZ_GL2_TZ_GL_HPP
    +
    +
    + + + + diff --git a/tz__opengl_8hpp_source.html b/tz__opengl_8hpp_source.html new file mode 100644 index 0000000000..ec9496901d --- /dev/null +++ b/tz__opengl_8hpp_source.html @@ -0,0 +1,151 @@ + + + + + + + +Topaz: src/tz/gl/impl/opengl/detail/tz_opengl.hpp Source File + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    Topaz 4.0.0.2 +
    +
    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
    +
    void initialise()
    Initialise the OpenGL backend.
    Definition: tz_opengl.cpp:22
    +
    void terminate()
    Terminate the OpenGL backend.
    Definition: tz_opengl.cpp:43
    +
    bool is_initialised()
    Query as to whether the OpenGL backend has been initialised or not.
    Definition: tz_opengl.cpp:50
    +
    Definition: version.hpp:17
    +
    +
    + + + + diff --git a/tz__vulkan_8hpp_source.html b/tz__vulkan_8hpp_source.html new file mode 100644 index 0000000000..2ad3f85f9a --- /dev/null +++ b/tz__vulkan_8hpp_source.html @@ -0,0 +1,287 @@ + + + + + + + +Topaz: src/tz/gl/impl/vulkan/detail/tz_vulkan.hpp Source File + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    Topaz 4.0.0.2 +
    +
    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 {
    + + +
    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 */
    + +
    257 };
    +
    258
    +
    263 namespace present_traits
    +
    264 {
    +
    269 constexpr std::span<const SurfacePresentMode> get_mandatory_present_modes()
    +
    270 {
    +
    271 return {safe_present_modes};
    +
    272 }
    +
    273 }
    +
    274}
    +
    275#endif // TZ_VULKAN
    +
    276#endif // TOPAZ_GL_IMPL_BACKEND_VK2_TZ_VULKAN_HPP
    + +
    Definition: tz_vulkan.hpp:132
    +
    Represents a vulkan instance, which acts as a reference to all per-application state.
    Definition: tz_vulkan.hpp:200
    +
    Represents a Vulkan-friendly interface to an existing OS window.
    Definition: tz_vulkan.hpp:153
    +
    tz::wsi::window & window()
    Retrieve the application window.
    Definition: tz.cpp:108
    +
    SurfacePresentMode
    Supported Presentation mode supported for a WindowSurface.
    Definition: tz_vulkan.hpp:240
    + + + + +
    const VulkanInstance & get()
    Retrieve a reference to the current Vulkan Instance.
    Definition: tz_vulkan.cpp:38
    +
    void terminate()
    Terminate the vulkan backend.
    Definition: tz_vulkan.cpp:30
    +
    constexpr std::span< const SurfacePresentMode > get_mandatory_present_modes()
    Retrieve a span of all SurfacePresentModes which are guaranteed to be supported on any machine.
    Definition: tz_vulkan.hpp:269
    +
    Contains basic information about the target game/application.
    Definition: game_info.hpp:18
    +
    Specifies creation flags for a VulkanInstance.
    Definition: tz_vulkan.hpp:182
    +
    const tz::wsi::window * window
    Window from which to create a WindowSurface. If nullptr is passed, no WindowSurface is created....
    Definition: tz_vulkan.hpp:188
    +
    tz::game_info game_info
    Information about the application.
    Definition: tz_vulkan.hpp:184
    +
    InstanceExtensionList extensions
    List of extensions to enable. Empty by default.
    Definition: tz_vulkan.hpp:186
    +
    bool enable_validation_layers
    Whether we should attempt to load validation layers or not.
    Definition: tz_vulkan.hpp:190
    +
    Definition: version.hpp:17
    +
    Represents an application window.
    Definition: window.hpp:40
    +
    +
    + + + + diff --git a/usergroup0.html b/usergroup0.html new file mode 100644 index 0000000000..3fd950d29f --- /dev/null +++ b/usergroup0.html @@ -0,0 +1,132 @@ + + + + + + + +Topaz: API + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    Topaz 4.0.0.2 +
    +
    C++20 Graphics Engine
    +
    +
    + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    API
    +
    +
    + +
    +
    + + + + diff --git a/vector_8hpp_source.html b/vector_8hpp_source.html new file mode 100644 index 0000000000..2594da6b1c --- /dev/null +++ b/vector_8hpp_source.html @@ -0,0 +1,256 @@ + + + + + + + +Topaz: src/tz/core/data/vector.hpp Source File + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    Topaz 4.0.0.2 +
    +
    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;
    +
    106 vector<T, S>& operator/=(T scalar);
    +
    112 vector<T, S> operator/(T scalar) const;
    +
    113
    +
    119 bool operator==(const vector<T, S>& rhs) const;
    +
    124 std::span<const T> data() const;
    +
    129 std::span<T> data();
    +
    135 T dot(const vector<T, S>& rhs) const;
    +
    140 T length() const;
    +
    145 void normalise();
    +
    150 vector<T, S> normalised() const;
    +
    151
    +
    163 template<int... indices>
    +
    164 vector<T, sizeof...(indices)> swizzle() const;
    +
    165
    +
    174 vector<T, S + 1> with_more(T&& end) const;
    +
    184 template<std::size_t S2>
    +
    185 vector<T, S + S2> with_more(const vector<T, S2>& end) const;
    +
    186
    +
    190 template<tz::number X, typename = std::enable_if_t<!std::is_same_v<T, X>>>
    +
    191 operator vector<X, S>() const;
    +
    192 private:
    +
    193 std::array<T, S> vec;
    +
    194 };
    +
    195
    +
    201 using vec1 = vector<float, 1>;
    + + + +
    208
    + + + +
    215
    + + + +
    222
    + + + +
    229
    + + + +
    236
    +
    237
    +
    238 template<typename T = float>
    +
    239 vector<T, 3> cross(const vector<T, 3>& lhs, const vector<T, 3>& rhs);
    +
    240
    +
    244}
    +
    245
    +
    246namespace std
    +
    247{
    +
    248 template<tz::number T, std::size_t S>
    +
    249 struct hash<tz::vector<T, S>>
    +
    250 {
    +
    251 std::size_t operator()(const tz::vector<T, S>& v) const
    +
    252 {
    +
    253 std::size_t ret = 0;
    +
    254 for(const T& t : v.data())
    +
    255 {
    +
    256 ret |= std::hash<T>{}(t);
    +
    257 }
    +
    258 return ret;
    +
    259 }
    +
    260 };
    +
    261}
    +
    262
    +
    263#include "tz/core/data/vector.inl"
    +
    264#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:82
    +
    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:127
    +
    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:115
    +
    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:34
    +
    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:26
    +
    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:66
    +
    vector()=default
    Default-constructed vectors have indeterminate values.
    +
    vector< T, S+1 > with_more(T &&end) const
    Create a new vector, with a single extra element appended to the end.
    Definition: vector.inl:184
    +
    vector< T, S > & operator/=(T scalar)
    Divide each element of the current vector by the given value.
    Definition: vector.inl:74
    +
    const T & operator[](std::size_t idx) const
    Retrieve the element value at the given index.
    Definition: vector.inl:12
    +
    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:149
    +
    vector< T, S > normalised() const
    Create a copy of the vector, normalise it and return the result.
    Definition: vector.inl:163
    +
    vector< T, sizeof...(indices)> swizzle() const
    Perform vector swizzling.
    Definition: vector.inl:172
    +
    vector< T, S > & operator*=(T scalar)
    Multiply each element of the current vector by the given value.
    Definition: vector.inl:58
    +
    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:50
    +
    T length() const
    Retrieve the magnitude of the current vector.
    Definition: vector.inl:138
    +
    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:42
    +
    bool operator==(const vector< T, S > &rhs) const
    Equate the current vector with the given vector.
    Definition: vector.inl:90
    +
    A number is any arithmetic type excluding char and bool.
    Definition: types.hpp:25
    +
    +
    + + + + diff --git a/version_8hpp_source.html b/version_8hpp_source.html new file mode 100644 index 0000000000..2aa8cde296 --- /dev/null +++ b/version_8hpp_source.html @@ -0,0 +1,191 @@ + + + + + + + +Topaz: src/tz/core/data/version.hpp Source File + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    Topaz 4.0.0.2 +
    +
    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{
    +
    9 enum class version_type
    +
    10 {
    +
    11 normal,
    +
    12 alpha,
    +
    13 beta,
    +
    14 rc
    +
    15 };
    +
    16 struct version
    +
    17 {
    +
    18 unsigned int major, minor, patch;
    +
    19 version_type type;
    +
    20
    +
    21
    +
    22 std::string to_string() const
    +
    23 {
    +
    24 const char* suffix;
    +
    25 switch(this->type)
    +
    26 {
    +
    27 case version_type::alpha:
    +
    28 suffix = "alpha";
    +
    29 break;
    +
    30 case version_type::beta:
    +
    31 suffix = "beta";
    +
    32 break;
    +
    33 case version_type::rc:
    +
    34 suffix = "rc";
    +
    35 break;
    +
    36 default:
    +
    37 suffix = "";
    +
    38 break;
    +
    39 }
    +
    40 return std::to_string(this->major) + "." + std::to_string(this->minor) + "." + std::to_string(this->patch) + std::string{" "} + suffix;
    +
    41 }
    +
    42
    +
    43 static version from_string(std::string_view sv)
    +
    44 {
    +
    45 version ret;
    +
    46 std::sscanf(sv.data(), "%u.%u.%u", &ret.major, &ret.minor, &ret.patch);
    +
    47 return ret;
    +
    48 }
    +
    49
    +
    50 static version from_binary_string(unsigned int ver_numeral)
    +
    51 {
    +
    52 return
    +
    53 {
    +
    54 .major = (ver_numeral >> 12) & 0xF,
    +
    55 .minor = (ver_numeral >> 8) & 0xF,
    +
    56 .patch = (ver_numeral >> 4) & 0xF,
    +
    57 .type = static_cast<version_type>(ver_numeral & 0xF)
    +
    58 };
    +
    59 }
    +
    60
    +
    61 bool operator==(const version& rhs) const = default;
    +
    62 };
    +
    63
    +
    64 version get_version();
    +
    65}
    +
    66
    +
    67#endif // TZ_DATA_VERSION_HPP
    +
    Definition: version.hpp:17
    +
    +
    + + + + diff --git a/vertex__array_8hpp_source.html b/vertex__array_8hpp_source.html new file mode 100644 index 0000000000..64429e57e5 --- /dev/null +++ b/vertex__array_8hpp_source.html @@ -0,0 +1,173 @@ + + + + + + + +Topaz: src/tz/gl/impl/opengl/detail/vertex_array.hpp Source File + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    Topaz 4.0.0.2 +
    +
    C++20 Graphics Engine
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    vertex_array.hpp
    +
    +
    +
    1#ifndef TOPAZ_GL_IMPL_BACKEND_OGL2_VERTEX_ARRAY_HPP
    +
    2#define TOPAZ_GL_IMPL_BACKEND_OGL2_VERTEX_ARRAY_HPP
    +
    3#if TZ_OGL
    +
    4#include "tz/gl/impl/opengl/detail/tz_opengl.hpp"
    +
    5
    +
    6namespace tz::gl::ogl2
    +
    7{
    +
    8 class buffer;
    + +
    14 {
    +
    15 public:
    + +
    20 vertex_array(const vertex_array& copy) = delete;
    + + +
    23 vertex_array& operator=(const vertex_array& rhs) = delete;
    +
    24 vertex_array& operator=(vertex_array&& rhs);
    +
    25
    +
    29 void bind();
    +
    34 void draw(unsigned int triangle_count, bool tessellation = false);
    +
    39 void draw_indexed(unsigned int triangle_count, const buffer& index_buffer, bool tessellation = false);
    +
    40
    +
    41 void draw_indirect(unsigned int draw_count, const buffer& draw_indirect_buffer, bool tessellation = false);
    +
    42 void draw_indirect_count(unsigned int max_draw_count, const buffer& draw_indirect_buffer, std::uintptr_t draw_commands_offset, bool tessellation = false);
    +
    43 void draw_indexed_indirect(unsigned int draw_count, const buffer& index_buffer, const buffer& draw_indirect_buffer, bool tessellation = false);
    +
    44 void draw_indexed_indirect_count(unsigned int max_draw_count, const buffer& index_buffer, const buffer& draw_indirect_buffer, std::uintptr_t draw_commands_offset, bool tessellation = false);
    +
    48 static vertex_array null();
    +
    52 bool is_null() const;
    +
    53 private:
    +
    54 vertex_array(std::nullptr_t);
    +
    55
    +
    56 GLuint vao;
    +
    57 };
    +
    58}
    +
    59
    +
    60#endif // TZ_OGL
    +
    61#endif // TOPAZ_GL_IMPL_BACKEND_OGL2_VERTEX_ARRAY_HPP
    +
    Documentation for OpenGL buffers.
    Definition: buffer.hpp:57
    +
    Wrapper for an OpenGL VAO.
    Definition: vertex_array.hpp:14
    +
    void draw_indexed(unsigned int triangle_count, const buffer &index_buffer, bool tessellation=false)
    Emit a single draw call, drawing a set number of triangles, assuming an index buffer has already been...
    Definition: vertex_array.cpp:47
    +
    static vertex_array null()
    Retrieve the Null vertex_array.
    Definition: vertex_array.cpp:98
    +
    vertex_array()
    Create a new VAO.
    Definition: vertex_array.cpp:8
    +
    bool is_null() const
    Query as to whether this is a null vertex array, which is equivalent to vertex_array::null().
    +
    void bind()
    Bind the VAO, causing subsequent GL commands using VAO state to use this.
    Definition: vertex_array.cpp:34
    +
    void draw(unsigned int triangle_count, bool tessellation=false)
    Emit a single draw call, drawing a set number of triangles.
    Definition: vertex_array.cpp:40
    + + + + + +
    +
    + + + + diff --git a/vulkan_2convert_8hpp_source.html b/vulkan_2convert_8hpp_source.html new file mode 100644 index 0000000000..d0aeea3663 --- /dev/null +++ b/vulkan_2convert_8hpp_source.html @@ -0,0 +1,140 @@ + + + + + + + +Topaz: src/tz/gl/impl/vulkan/convert.hpp Source File + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    Topaz 4.0.0.2 +
    +
    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_2detail_2buffer_8hpp_source.html b/vulkan_2detail_2buffer_8hpp_source.html new file mode 100644 index 0000000000..a9f1179c1b --- /dev/null +++ b/vulkan_2detail_2buffer_8hpp_source.html @@ -0,0 +1,223 @@ + + + + + + + +Topaz: src/tz/gl/impl/vulkan/detail/buffer.hpp Source File + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    Topaz 4.0.0.2 +
    +
    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;
    + +
    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;
    + +
    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
    +
    void unmap()
    Unmap the buffer, causing any pointers created from Buffer::map to be invalidated.
    Definition: buffer.cpp:147
    +
    BufferUsageField get_usage() const
    Retrieve all usages of this buffer.
    Definition: buffer.cpp:115
    +
    const LogicalDevice & get_device() const
    Retrieve the LogicalDevice used to create the buffer.
    Definition: buffer.cpp:109
    +
    Definition: debugname.hpp:10
    +
    Logical interface to an existing PhysicalDevice.
    Definition: logical_device.hpp:95
    +
    BufferUsage
    Specifies allowed usages for a Buffer.
    Definition: buffer.hpp:15
    + + + + + + + +
    Specifies creation flags for a Buffer.
    Definition: buffer.hpp:40
    +
    std::size_t size_bytes
    Size of the buffer, in bytes.
    Definition: buffer.hpp:44
    +
    MemoryResidency residency
    Describes where in memory buffer data will lie.
    Definition: buffer.hpp:48
    +
    const LogicalDevice * device
    Owning device. Must not be nullptr or null.
    Definition: buffer.hpp:42
    +
    BufferUsageField usage
    Field containing all usages of the buffer.
    Definition: buffer.hpp:46
    +
    +
    + + + + diff --git a/vulkan_2detail_2framebuffer_8hpp_source.html b/vulkan_2detail_2framebuffer_8hpp_source.html new file mode 100644 index 0000000000..1b68b42d87 --- /dev/null +++ b/vulkan_2detail_2framebuffer_8hpp_source.html @@ -0,0 +1,205 @@ + + + + + + + +Topaz: src/tz/gl/impl/vulkan/detail/framebuffer.hpp Source File + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    Topaz 4.0.0.2 +
    +
    C++20 Graphics Engine
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    framebuffer.hpp
    +
    +
    +
    1#ifndef TOPAZ_GL_IMPL_BACKEND_Vk2_FRAMEBUFFER_HPP
    +
    2#define TOPAZ_GL_IMPL_BACKEND_Vk2_FRAMEBUFFER_HPP
    +
    3#if TZ_VULKAN
    +
    4#include "tz/gl/impl/vulkan/detail/render_pass.hpp"
    +
    5#include "tz/gl/impl/vulkan/detail/image_view.hpp"
    +
    6
    +
    7namespace tz::gl::vk2
    +
    8{
    +
    9
    + +
    15 {
    +
    17 bool valid() const;
    +
    18
    + + + +
    25 };
    +
    26
    + +
    32 {
    +
    33 public:
    + +
    35 Framebuffer(const Framebuffer& copy) = delete;
    + + +
    38
    +
    39 Framebuffer& operator=(const Framebuffer& rhs) = delete;
    +
    40 Framebuffer& operator=(Framebuffer&& rhs);
    +
    41
    + +
    51 const RenderPass& get_pass() const;
    +
    56 const LogicalDevice& get_device() const;
    + + +
    67 void set_render_pass(RenderPass& render_pass);
    +
    68
    +
    69 using NativeType = VkFramebuffer;
    +
    70 NativeType native() const;
    +
    71 private:
    +
    72 FramebufferInfo info;
    +
    73 VkFramebuffer framebuffer;
    +
    74 };
    +
    75
    + +
    77 {
    +
    78 FramebufferData() = default;
    + +
    80 {
    +
    81 *this = std::move(move);
    +
    82 }
    +
    83 FramebufferData& operator=(FramebufferData&& rhs)
    +
    84 {
    +
    85 std::swap(this->render_pass, rhs.render_pass);
    +
    86 std::swap(this->framebuffers, rhs.framebuffers);
    +
    87 for(auto& fb : this->framebuffers)
    +
    88 {
    +
    89 fb.set_render_pass(this->render_pass);
    +
    90 }
    +
    91 return *this;
    +
    92 }
    +
    93 RenderPass render_pass = RenderPass::null();
    +
    94 std::vector<Framebuffer> framebuffers = {};
    +
    95 };
    +
    96}
    +
    97
    +
    98#endif // TZ_VULKAN
    +
    99#endif // TOPAZ_GL_IMPL_BACKEND_Vk2_FRAMEBUFFER_HPP
    +
    Custom list, feature subset of std::vector.
    Definition: basic_list.hpp:21
    +
    Represents a render target for a RenderPass.
    Definition: framebuffer.hpp:32
    +
    tz::basic_list< const ImageView * > get_attachment_views() const
    Retrieve a list of imageviews corresponding to each attachment.
    Definition: framebuffer.cpp:100
    +
    const LogicalDevice & get_device() const
    Retrieve the LogicalDevice that spawned this Framebuffer.
    Definition: framebuffer.cpp:95
    +
    const RenderPass & get_pass() const
    Retrieve the RenderPass that this Framebuffer expects to act as a target for.
    Definition: framebuffer.cpp:89
    +
    tz::vec2ui get_dimensions() const
    Retrieve the width and height of the framebuffer.
    Definition: framebuffer.cpp:84
    +
    Logical interface to an existing PhysicalDevice.
    Definition: logical_device.hpp:95
    +
    Represents a collection of attachments and subpasses and describes how the attachments are used throu...
    Definition: render_pass.hpp:188
    +
    Definition: vector.hpp:18
    +
    Definition: framebuffer.hpp:77
    +
    Specifies creation flags for a Framebuffer.
    Definition: framebuffer.hpp:15
    +
    bool valid() const
    Query as to whether this info is valid and can be used to create a Framebuffer.
    Definition: framebuffer.cpp:6
    +
    tz::basic_list< ImageView * > attachments
    List of output attachments from the RenderPass.
    Definition: framebuffer.hpp:22
    +
    tz::vector< std::uint32_t, 2 > dimensions
    Dimensions of the frame buffer.
    Definition: framebuffer.hpp:24
    +
    const RenderPass * render_pass
    RenderPass that will target the frame buffer.
    Definition: framebuffer.hpp:20
    +
    +
    + + + + diff --git a/vulkan_2detail_2image_8hpp_source.html b/vulkan_2detail_2image_8hpp_source.html new file mode 100644 index 0000000000..90b90d5fbd --- /dev/null +++ b/vulkan_2detail_2image_8hpp_source.html @@ -0,0 +1,320 @@ + + + + + + + +Topaz: src/tz/gl/impl/vulkan/detail/image.hpp Source File + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    Topaz 4.0.0.2 +
    +
    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 {
    + + + + +
    139 MemoryResidency residency;
    +
    141 std::uint32_t mip_levels = 1;
    +
    143 std::uint32_t array_layers = 1;
    +
    145 SampleCount sample_count = SampleCount::One;
    + +
    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:67
    +
    Definition: debugname.hpp:10
    +
    Represents an Image owned by the Vulkan API.
    Definition: image.hpp:155
    +
    const LogicalDevice & get_device() const
    Retrieve the LogicalDevice that 'owns' the image.
    Definition: image.cpp:200
    +
    ImageLayout get_layout() const
    Retrieve the current layout of the image.
    Definition: image.cpp:190
    +
    tz::vec2ui get_dimensions() const
    Retrieve the dimensions of the image.
    Definition: image.cpp:195
    +
    image_format get_format() const
    Retrieve the underlying format of the image.
    Definition: image.cpp:185
    +
    Logical interface to an existing PhysicalDevice.
    Definition: logical_device.hpp:95
    +
    Swapchains are infrastructures which represent GPU images we will render to before they can be presen...
    Definition: swapchain.hpp:32
    +
    Represents a single hardware Queue.
    Definition: queue.hpp:70
    + +
    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/vulkan_2detail_2sampler_8hpp_source.html b/vulkan_2detail_2sampler_8hpp_source.html new file mode 100644 index 0000000000..a967e0ce52 --- /dev/null +++ b/vulkan_2detail_2sampler_8hpp_source.html @@ -0,0 +1,206 @@ + + + + + + + +Topaz: src/tz/gl/impl/vulkan/detail/sampler.hpp Source File + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    Topaz 4.0.0.2 +
    +
    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
    + +
    49 {
    + +
    52
    + + +
    57 MipLookupFilter mipmap_mode;
    + + + +
    64 };
    +
    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..649efe351a --- /dev/null +++ b/wgl__ext_8hpp_source.html @@ -0,0 +1,154 @@ + + + + + + + +Topaz: src/tz/wsi/impl/windows/detail/wgl_ext.hpp Source File + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    Topaz 4.0.0.2 +
    +
    C++20 Graphics Engine
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    wgl_ext.hpp
    +
    +
    +
    1#ifndef TOPAZ_WSI_IMPL_WINDOWS_WGL_EXT_HPP
    +
    2#define TOPAZ_WSI_IMPL_WINDOWS_WGL_EXT_HPP
    +
    3
    +
    4// These would all be provided by gl/wglext.h, however that seems to require the Windows SDK which is an utterly overkill dependency to bring in for a few signatures, so I brought them in manually
    +
    5typedef BOOL (WINAPI * PFNWGLCHOOSEPIXELFORMATARBPROC)(HDC,const int*,const FLOAT*,UINT,int*,UINT*);
    +
    6typedef HGLRC (WINAPI * PFNWGLCREATECONTEXTATTRIBSARBPROC)(HDC,HGLRC,const int*);
    +
    7typedef BOOL (WINAPI * PFNWGLSWAPINTERVALEXTPROC)(int);
    +
    8typedef const char* (WINAPI * PFNWGLGETEXTENSIONSSTRINGARBPROC)(HDC);
    +
    9
    +
    10#define WGL_DRAW_TO_WINDOW_ARB 0x2001
    +
    11#define WGL_ACCELERATION_ARB 0x2003
    +
    12#define WGL_TRANSPARENT_ARB 0x200A
    +
    13#define WGL_SUPPORT_OPENGL_ARB 0x2010
    +
    14#define WGL_DOUBLE_BUFFER_ARB 0x2011
    +
    15#define WGL_PIXEL_TYPE_ARB 0x2013
    +
    16#define WGL_COLOR_BITS_ARB 0x2014
    +
    17#define WGL_ALPHA_BITS_ARB 0x201B
    +
    18#define WGL_DEPTH_BITS_ARB 0x2022
    +
    19#define WGL_STENCIL_BITS_ARB 0x2023
    +
    20
    +
    21#define WGL_FULL_ACCELERATION_EXT 0x2027
    +
    22#define WGL_TYPE_RGBA_ARB 0x202b
    +
    23#define WGL_CONTEXT_MAJOR_VERSION_ARB 0x2091
    +
    24#define WGL_CONTEXT_MINOR_VERSION_ARB 0x2092
    +
    25#define WGL_CONTEXT_FLAGS_ARB 0x2094
    +
    26#define WGL_FRAMEBUFFER_SRGB_CAPABLE_ARB 0x20a9
    +
    27#define WGL_CONTEXT_PROFILE_MASK_ARB 0x9126
    +
    28#define WGL_CONTEXT_CORE_PROFILE_BIT_ARB 0x00000001
    +
    29#define WGL_CONTEXT_DEBUG_BIT_ARB 0x00000001
    +
    30
    +
    31#endif // TOPAZ_WSI_IMPL_WINDOWS_WGL_EXT_HPP
    +
    +
    + + + + diff --git a/winapi_8hpp_source.html b/winapi_8hpp_source.html new file mode 100644 index 0000000000..1602aa3a25 --- /dev/null +++ b/winapi_8hpp_source.html @@ -0,0 +1,130 @@ + + + + + + + +Topaz: src/tz/wsi/impl/windows/detail/winapi.hpp Source File + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    Topaz 4.0.0.2 +
    +
    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..df9c4f8f0e --- /dev/null +++ b/window_8hpp_source.html @@ -0,0 +1,192 @@ + + + + + + + +Topaz: src/tz/wsi/window.hpp Source File + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    Topaz 4.0.0.2 +
    +
    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 = {});
    + + + +
    104 std::size_t window_count();
    +
    105}
    +
    106
    +
    107#endif // TZ_WSI_WINDOW_HPP
    +
    Definition: handle.hpp:16
    +
    Definition: window.hpp:10
    +
    void error(detail::format_string fmt="<No message>", Args &&... args)
    Breakpoint if a debugger is present.
    Definition: debug.inl:45
    +
    tz::wsi::window & window()
    Retrieve the application window.
    Definition: tz.cpp:108
    +
    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..b08b38ffa1 --- /dev/null +++ b/wsi_8hpp_source.html @@ -0,0 +1,136 @@ + + + + + + + +Topaz: src/tz/wsi/wsi.hpp Source File + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    Topaz 4.0.0.2 +
    +
    C++20 Graphics Engine
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    wsi.hpp
    +
    +
    +
    1#ifndef TZ_WSI_TGE_HPP
    +
    2#define TZ_WSI_TGE_HPP
    +
    3#include "tz/core/data/handle.hpp"
    +
    4
    +
    5namespace tz::wsi
    +
    6{
    +
    7 void initialise();
    +
    8 void terminate();
    +
    9 void update();
    +
    10
    +
    40}
    +
    41
    +
    42#endif // TZ_WSI_TGE_HPP
    +
    +
    + + + + diff --git a/wsi__linux_8hpp_source.html b/wsi__linux_8hpp_source.html new file mode 100644 index 0000000000..b8cbf30576 --- /dev/null +++ b/wsi__linux_8hpp_source.html @@ -0,0 +1,146 @@ + + + + + + + +Topaz: src/tz/wsi/impl/linux/wsi_linux.hpp Source File + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    Topaz 4.0.0.2 +
    +
    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..958ad18449 --- /dev/null +++ b/wsi__windows_8hpp_source.html @@ -0,0 +1,152 @@ + + + + + + + +Topaz: src/tz/wsi/impl/windows/wsi_windows.hpp Source File + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    Topaz 4.0.0.2 +
    +
    C++20 Graphics Engine
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    wsi_windows.hpp
    +
    +
    +
    1#ifndef TZ_WSI_IMPL_WINDOWS_TGE_HPP
    +
    2#define TZ_WSI_IMPL_WINDOWS_TGE_HPP
    +
    3#ifdef _WIN32
    +
    4#include "tz/wsi/impl/windows/detail/winapi.hpp"
    +
    5#include "tz/wsi/impl/windows/detail/wgl_ext.hpp"
    +
    6#include <gl/GL.h>
    +
    7
    +
    8namespace tz::wsi::impl
    +
    9{
    +
    10 constexpr char wndclass_name[] = "Topaz WSI";
    +
    11
    +
    12 void initialise_windows();
    +
    13 void terminate_windows();
    +
    14 void update_windows();
    +
    15 LRESULT wndproc(HWND hwnd, UINT msg, WPARAM wparam, LPARAM lparam);
    +
    16
    + +
    18 {
    +
    19 PFNWGLCHOOSEPIXELFORMATARBPROC wgl_choose_pixel_format_arb = nullptr;
    +
    20 PFNWGLCREATECONTEXTATTRIBSARBPROC wgl_create_context_attribs_arb = nullptr;
    +
    21 PFNWGLSWAPINTERVALEXTPROC wgl_swap_interval_ext = nullptr;
    +
    22 bool operator==(const wgl_function_data& rhs) const = default;
    +
    23 };
    +
    24 wgl_function_data get_wgl_functions();
    +
    25}
    +
    26
    +
    27#endif // _WIN32
    +
    28#endif // TZ_WSI_IMPL_WINDOWS_TGE_HPP
    +
    Definition: wsi_windows.hpp:18
    +
    +
    + + + +